RSA算法的危機在於其純在壓指數算法,對ECC算法而言通常沒有亞指數攻擊算法算法
SM2橢圓曲線公鑰密碼算法:我國自主知識產權的商用密碼算法,是ECC(Elliptic Curve Cryptosystem)算法的一種,基於橢圓曲線離散對數問題,計算複雜度是指數級,求解難度較大,同等安全程度要求下,橢圓曲線密碼較其餘公鑰秒速昂發所需密鑰長度小不少。安全
ECC算法描述:編碼
一、用戶A選定一條適合加密的橢圓曲線Ep(a,b)(如:y2=x3+ax+b),並取橢圓曲線上一點,做爲基點G。 二、用戶A選擇一個私有密鑰k,並生成公開密鑰(公鑰PB)K=kG。 三、用戶A將Ep(a,b)和點(公鑰)K,G傳給用戶B。 四、用戶B接到信息後 ,將待傳輸的明文(M)編碼到Ep(a,b)上一點M,併產生一個隨機整數r(r<n)。加密開始 五、用戶B計算點C1=M+rK;C2=rG。 六、用戶B將C一、C2傳給用戶A。 七、用戶A接到信息後,計算C1-kC2,結果就是點M。由於C1-kC2=M+rK-k(rG)=M+rK-r(kG)=M 再對點M進行解碼就能夠獲得明文。加密
密碼學中,描述一條Fp上的橢圓曲線,經常使用到六個參量: T=(p,a,b,G,n,h)。 (p 、a 、b 用來肯定一條橢圓曲線,G爲基點,n爲點G的階,h 是橢圓曲線上全部點的個數m與n相除的整數部分)ip
這幾個參量取值的選擇,直接影響了加密的安全性。參量值通常要求知足如下幾個條件:密碼
一、p 固然越大越安全,但越大,計算速度會變慢,200位左右能夠知足通常安全要求;密碼學
二、p≠n×h;安全性
三、pt≠1 (mod n),1≤t<20; 四、4a3+27b2≠0 (mod p); 五、n 爲素數; 六、h≤4。生成