關於國密算法 SM1,SM2,SM3,SM4 的筆記
摘自:https://www.cnblogs.com/TaiYangXiManYouZhe/p/4317519.html php
國密即國家密碼局認定的國產密碼算法。主要有SM1,SM2,SM3,SM4。密鑰長度和分組長度均爲128位。html
SM1 爲對稱加密。其加密強度與AES至關。該算法不公開,調用該算法時,須要經過加密芯片的接口進行調用。算法
SM2爲非對稱加密,基於ECC。該算法已公開。因爲該算法基於ECC,故其簽名速度與祕鑰生成速度都快於RSA。ECC 256位(SM2採用的就是ECC 256位的一種)安全強度比RSA 2048位高,但運算速度快於RSA。安全
SM3 消息摘要。能夠用MD5做爲對比理解。該算法已公開。校驗結果爲256位。多線程
SM4 無線局域網標準的分組數據算法。對稱加密,密鑰長度和分組長度均爲128位。加密
因爲SM一、SM4加解密的分組大小爲128bit,故對消息進行加解密時,若消息長度過長,須要進行分組,要消息長度不足,則要進行填充。spa
SM2,SM3,SM4的相關文檔能夠參考以下連接:線程
http://218.241.108.63/wiki/index.php/首頁htm
SM2,SM3,SM4的C代碼以下:blog
補充:
當使用特定的芯片進行SM1或其餘國密算法加密時,若用多個線程調用加密卡的API時,要考慮芯片對於多線程的支持狀況。