您的位置:首頁>正文

常見的加密演算法之ECC加密

ECC-Elliptic Curve Cryptography, 中文名為橢圓加密演算法。 由Koblitz和Miller兩人於1985年提出。 ECC加密演算法是一種公開金鑰加密技術, 以橢圓曲線理論為基礎。 利用有限域上橢圓曲線的點構成的Abel群離散對數難解性, 實現加密、解密和數位簽章。 將橢圓曲線中的加法運算與離散對數中的模乘運算相對應, 就可以建立基於橢圓曲線的對應密碼體制。

公開金鑰密碼體制根據其所依據的難題一般分為三類:大整數分解問題類、離散對數問題類、橢圓曲線類。 有時也把橢圓曲線類歸為離散對數類。

ECC加密演算法安全性能

目前主流的數位簽章方案是基於大整數因數分解問題的RSA加密演算法, 其特點是數學原理簡單。 在應用過程中容易實現, 但其單位安全強度相對較低, 目前用國際上公認的對於RSA加密演算法最有效的攻擊方法一般數域篩(NFS)方法去破譯和攻擊RSA加密演算法, 它的破譯或求解難度是亞指數級的,

其複雜度T(n)=o(exp{(1.92+0(1))(1nn) I(n)(1nn)z/3))。 而對於ECC加密演算法, 目前最有效的攻擊方法其破譯和求解的難度是指數級的, 其複雜度T(n)=0(explnn/P(max), 其中P~是ECC交換群的階的最大素因數, 也就是在相同的金鑰長度條件下, ECC加密演算法的安全性要遠遠超過RSA加密演算法。

ECC加密演算法的計算量小並且處理速度快。 在一定的相同的計算資源條件下, 雖然在RSA中可以通過選取較小的公開金鑰(可以小到3)的方法提高公開金鑰處理速度, 即提高加密和簽名驗證的速度, 使其在加密和簽名驗證速度上與ECC有可比性,但在私密金鑰的處理速度上(解密和簽名), ECC遠比RSA、DSA快得多。 同時ECC系統的金鑰生成速度比RSA快百倍以上, 以163位元的ECC加密演算法與1024位元的RSA加密演算法比較,

ECC加密演算法的簽名時間為3.0ms, 金鑰對生成時間為3.8ms, 但RSA加密演算法卻分別高達228.4ms和4708.3ms, 因此在相同條件下, CC加密演算法則有更高的加密性能。

ECC加密演算法的存儲空間佔用小:ECC加密演算法的金鑰尺寸和系統參數與RSA相比要小得多, 160位元ECC加密演算法與1024位元RSA具有相同的安全強度, 210位元ECC加密演算法則與2048位元RSA具有相同的安全強度, 意味著它所占的存貯空間要小得多。

ECC加密演算法的頻寬要求低, 當對長消息進行加解密時, 兩類密碼系統有相同的頻寬要求, 但應用于短消息時ECC加密演算法頻寬要求卻低得多, 而數位簽章正是基於短消息的通訊傳輸, 因此基於ECC加密演算法的數位簽章系統頻寬要求比RSA低很多, 易於在各種網路環境下推廣應用。 此外, ECC加密演算法的靈活性要高於RSA演算法, 它可以通過改變參數設置獲得不同的曲線, 具有豐富的群結構和多選擇性。

隨著網路應用的迅速發展, 網路安全問題日益受到人們的重視, 而傳統的基於RSA加密演算法的數位簽章體制在電腦技術快速發展的情況下,

其安全性已經受到了嚴重的威脅。 ECC加密演算法由於其安全、高效的特點日益受到人們的重視, 在數位簽章等安全領域已經有一定程度的應用, 可以預見隨著網路技術的進一步發展, ECC加密演算法的應用前景將會更加廣闊。

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

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示