關於國密算法 SM1,SM2,SM3,SM4 的筆記


國密即國家密碼局認定的國產密碼算法。主要有SM1,SM2,SM3,SM4。密鑰長度和分組長度均為128位。

SM1 為對稱加密。其加密強度與AES相當。該算法不公開,調用該算法時,需要通過加密芯片的接口進行調用。

SM2為非對稱加密,基於ECC。該算法已公開。由於該算法基於ECC,故其簽名速度與秘鑰生成速度都快於RSA。ECC 256位(SM2采用的就是ECC 256位的一種)安全強度比RSA 2048位高,但運算速度快於RSA。

SM3 消息摘要。可以用MD5作為對比理解。該算法已公開。校驗結果為256位。

SM4 無線局域網標准的分組數據算法。對稱加密,密鑰長度和分組長度均為128位。

 

由於SM1、SM4加解密的分組大小為128bit,故對消息進行加解密時,若消息長度過長,需要進行分組,要消息長度不足,則要進行填充。

 

SM2,SM3,SM4的相關文檔可以參考如下鏈接:

http://218.241.108.63/wiki/index.php/首頁

 

SM2,SM3,SM4的C代碼如下:

http://files.cnblogs.com/files/TaiYangXiManYouZhe/Sm2_sm3_sm4_c%E8%AF%AD%E8%A8%80%E5%AE%9E%E7%8E%B0.zip

 

補充:

當使用特定的芯片進行SM1或其他國密算法加密時,若用多個線程調用加密卡的API時,要考慮芯片對於多線程的支持情況。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM