國家密碼管理局于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 橢圓曲線算法原理