SM2橢圓曲線公鑰密碼算法
國家必須要有屬於自己的一套加密機制才行。。。好復雜。分享下看哪位看得懂其中的原理
國家密碼管理局於2010年12月17日發布了SM2橢圓曲線公鑰密碼算法,並要求為對現有基於RSA算法的電子認證系統、密鑰管理系統、應用系統進行升級改造。關於算法標準,請參見《國家密碼管理局公告(第 21 號)》,網址為 www.oscca.gov.cn/
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 橢圓曲線算法原理
上圖為方程:y2 = x3–x的曲線。
1、P點為基點;
2、通過P點做切線,交與點 2P點,在2P’點做豎線,交與2P點,2P點即為P點的2倍點;
3、進一步,P點和2P點之間做直線,交與3P’點,在3P’點做豎線,交與3P點,3P點即為P點的3倍點;
4、同理,可以計算出P點的4、5、6、… 倍點;
5、如果給定圖上Q點是P的一個倍點,請問Q是P的幾倍點呢?
6、直觀上理解,正向計算一個倍點是容易的,反向計算一個點是P的幾倍點則困難的多。
在橢圓曲線算法中,將倍數d做為私鑰,將Q做為公鑰。當然,橢圓曲線算法還有更嚴格的計算過程,相對圖示要復雜的多。
SM2算法可以進行哪些密碼應用?
SM2算法做為公鑰算法,可以完成簽名、密鑰交換以及加密應用。SM2算法標準確定了標準過程:
1、簽名、驗簽計算過程;
2、加密、解密計算過程;
3、密鑰協商計算過程。
需要說明,其他國家的標準和SM2確定的計算過程存在差異,也就是說相互之間是不兼容的。
SM2算法速度快嗎?
簡單講,SM2簽名速度快,驗簽速度慢,這點和RSA算法的特性正好相反。參見表2。
另外,加解密速度和驗簽速度相當。
SM2簽名算法支持多大的數據量,簽名結果為多少字節?
簽名原始數據量長度無限制,簽名結果為64字節。
SM2加密算法支持多大的數據量,加密結果增加多少字節?
支持近128G字節數據長度,加密結果增加96個字節。
SM2相關算法有哪些?
SM2為國家密碼管理局公布的公鑰算法,其加密強度為256位。其它幾個重要的商用密碼算法包括:
SM1,對稱加密算法,加密強度為128位,采用硬件實現;
SM3,密碼雜湊算法,雜湊值長度為32字節,和SM2算法同期公布,參見《國家密碼管理局公告(第 22 號)》;
SMS4,對稱加密算法,隨WAPI標準一起公布,可使用軟件實現,加密強度為128位。
沃通CA做中國數字證書領域行業的領跑者 buy.wosign.com
SM2橢圓曲線公鑰密碼算法