ECC-Elliptic Curve Cryptography, 中文名為橢圓加密演算法。 由Koblitz和Miller兩人於1985年提出。 ECC加密演算法是一種公開金鑰加密技術, 以橢圓曲線理論為基礎。 利用有限域上橢圓曲線的點構成的Abel群離散對數難解性, 實現加密、解密和數位簽章。 將橢圓曲線中的加法運算與離散對數中的模乘運算相對應, 就可以建立基於橢圓曲線的對應密碼體制。
公開金鑰密碼體制根據其所依據的難題一般分為三類:大整數分解問題類、離散對數問題類、橢圓曲線類。 有時也把橢圓曲線類歸為離散對數類。
ECC加密演算法安全性能
目前主流的數位簽章方案是基於大整數因數分解問題的RSA加密演算法, 其特點是數學原理簡單。 在應用過程中容易實現, 但其單位安全強度相對較低, 目前用國際上公認的對於RSA加密演算法最有效的攻擊方法一般數域篩(NFS)方法去破譯和攻擊RSA加密演算法, 它的破譯或求解難度是亞指數級的,
ECC加密演算法的計算量小並且處理速度快。 在一定的相同的計算資源條件下, 雖然在RSA中可以通過選取較小的公開金鑰(可以小到3)的方法提高公開金鑰處理速度, 即提高加密和簽名驗證的速度, 使其在加密和簽名驗證速度上與ECC有可比性,但在私密金鑰的處理速度上(解密和簽名), ECC遠比RSA、DSA快得多。 同時ECC系統的金鑰生成速度比RSA快百倍以上, 以163位元的ECC加密演算法與1024位元的RSA加密演算法比較,
ECC加密演算法的存儲空間佔用小:ECC加密演算法的金鑰尺寸和系統參數與RSA相比要小得多, 160位元ECC加密演算法與1024位元RSA具有相同的安全強度, 210位元ECC加密演算法則與2048位元RSA具有相同的安全強度, 意味著它所占的存貯空間要小得多。
ECC加密演算法的頻寬要求低, 當對長消息進行加解密時, 兩類密碼系統有相同的頻寬要求, 但應用于短消息時ECC加密演算法頻寬要求卻低得多, 而數位簽章正是基於短消息的通訊傳輸, 因此基於ECC加密演算法的數位簽章系統頻寬要求比RSA低很多, 易於在各種網路環境下推廣應用。 此外, ECC加密演算法的靈活性要高於RSA演算法, 它可以通過改變參數設置獲得不同的曲線, 具有豐富的群結構和多選擇性。
隨著網路應用的迅速發展, 網路安全問題日益受到人們的重視, 而傳統的基於RSA加密演算法的數位簽章體制在電腦技術快速發展的情況下,
ECC加密演算法在數位簽章中的應用
由於ECC加密演算法是建立在公開金鑰加密體系基礎上的, 所以它不但可以應用於通信加密, 而且還可以應用於數位簽章領域。 設橢圓曲線公開金鑰密碼系統參數為(Fq,E,a,b,r,G), 其中, Fq是有限域, E是Fq上的橢圓曲線, a,b是橢圓曲線E的係數, r是一個大的素數, G是橢圓曲線E上秩為r的點。
1、金鑰的產生
用戶A隨機選擇一個[1, r一1]之間的整數作為私密金鑰s, 計算點V=sG, 其中(G, V)是公開金鑰。 並令V=(X。,Y。)。
2、簽字過程
(1)利用IEEE _1363中的FE2IP程式將Z化成一整數i;
(2)計算c=imodr;(若c=0,則重新選取私密金鑰s)
(3)m為消息,計算d=u-1(m+sc)modr;(若d=0,則重新選取私密金鑰s)
(4)m的數位簽章為(c,d).
3、檢驗過程
(1)若c不在[1,r-1]內或 不在[1,r-1]內,則簽名為假簽名;
(2)計算h=d-1modr,h1=mhmodr,h2=chmodr;
(3)計算橢圓曲線E(Fq)上的曲線點P=h1G+h2W。若P=0,則簽名為假簽名,否則令P=(Xp,Yp);
(4)利用FE2IP程式將Xp,化成一整數i’;並計算c’=i’modr;
(5)如果c=c’,則簽名為真,否則。簽名為假。
作業系統支援
ECC加密演算法以後支援所有作業系統、所有流覽器和各種移動終端,主要有:
(1) Mozilla NSS 3.11以上版本支持
(2) OpenSSL 1.0以上版本支援
(3) 微軟CryptoAPI Vista/Win7/Win8都支持
(4) BouncyCastle 1.32以上版本支持
(5) JSSE 6 以上版本支持
(6) BSAFE 4.0 以上版本支持
(7) 各種版本的IE流覽器、火狐流覽器、穀歌流覽器和蘋果流覽器都支援
(8) 安卓系統(2.1以上版本)、蘋果IOS(5.0以上版本) 、Window Phone(各種版本)都支持
文章轉載https://www.trustauth.cn/baike/24356.html
並令V=(X。,Y。)。2、簽字過程
(1)利用IEEE _1363中的FE2IP程式將Z化成一整數i;
(2)計算c=imodr;(若c=0,則重新選取私密金鑰s)
(3)m為消息,計算d=u-1(m+sc)modr;(若d=0,則重新選取私密金鑰s)
(4)m的數位簽章為(c,d).
3、檢驗過程
(1)若c不在[1,r-1]內或 不在[1,r-1]內,則簽名為假簽名;
(2)計算h=d-1modr,h1=mhmodr,h2=chmodr;
(3)計算橢圓曲線E(Fq)上的曲線點P=h1G+h2W。若P=0,則簽名為假簽名,否則令P=(Xp,Yp);
(4)利用FE2IP程式將Xp,化成一整數i’;並計算c’=i’modr;
(5)如果c=c’,則簽名為真,否則。簽名為假。
作業系統支援
ECC加密演算法以後支援所有作業系統、所有流覽器和各種移動終端,主要有:
(1) Mozilla NSS 3.11以上版本支持
(2) OpenSSL 1.0以上版本支援
(3) 微軟CryptoAPI Vista/Win7/Win8都支持
(4) BouncyCastle 1.32以上版本支持
(5) JSSE 6 以上版本支持
(6) BSAFE 4.0 以上版本支持
(7) 各種版本的IE流覽器、火狐流覽器、穀歌流覽器和蘋果流覽器都支援
(8) 安卓系統(2.1以上版本)、蘋果IOS(5.0以上版本) 、Window Phone(各種版本)都支持
文章轉載https://www.trustauth.cn/baike/24356.html