1. 程式人生 > >SM2橢圓曲線公鑰密碼算法

SM2橢圓曲線公鑰密碼算法

left lock 沃通ca width 數據 是什麽 理論 我們 實現

國家必須要有屬於自己的一套加密機制才行。。。好復雜。分享下看哪位看得懂其中的原理

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