天天看點

SM2橢圓曲線公鑰密碼算法ABC

  國家密碼管理局于2010年12月17日釋出了SM2橢圓曲線公鑰密碼算法,并要求為對現有基于RSA算法的電子認證系統、密鑰管理系統、應用系統進行更新改造。關于算法标準,請參見《國家密碼管理局公告(第 21 号)》,網址為​​http://www.oscca.gov.cn/​​。   SM2算法是一種什麼樣的加密算法,有什麼特點,如何進行應用?本文整理在SM2應用實踐中遇到的問題,供大家分享。 SM2算法和RSA算法有什麼關系?   SM2算法和RSA算法都是公鑰密碼算法,SM2算法是一種更先進安全的算法,在我們國家商用密碼體系中被用來替換RSA算法。 為什麼要采用SM2算法替換RSA算法?   随着密碼技術和計算技術的發展,目前常用的1024位RSA算法面臨嚴重的安全威脅,我們國家密碼管理部門經過研究,決定采用SM2橢圓曲線算法替換RSA算法。SM2算法在安全性、性能上都具有優勢,參見表1算法攻破時間,表2算法性能。

RSA密鑰強度 橢圓曲線密鑰強度 攻破時間(年)
512 106 104,已被攻破
768 132 108,已被攻破
1024 160 1011
2048 210 1020

表1 算法攻破時間

算法 簽名速度(次/秒) 驗簽速度(次/秒)
1024位RSA 2792 51224
2048位RSA 455 15122
256位SM2 4095 871

表2 算法性能

SM2和橢圓曲線算法是什麼關系?   一提起曲線,大家就會想到方程,橢圓曲線算法是通過方程确定的,SM2算法采用的橢圓曲線方程為:   y2 = x3 + ax + b   在SM2算法标準中,通過指定a、b系數,确定了唯一的标準曲線。同時,為了将曲線映射為加密算法,SM2标準中還确定了其它參數,供算法程式使用。 橢圓曲線算法是什麼原理?   本文不探讨橢圓曲線的數學理論,僅通過圖示展示算法原理。請參見下圖:

圖1 橢圓曲線算法原理

繼續閱讀