原文標(biāo)題:嵌入式算法---國家商用密碼SM算法
1、國家商用密碼
數(shù)據(jù)加密和解密涉及的算法大致可分為以下三大類:單向散列算法(雜湊算法),對稱加密算法,公開密鑰加密算法(非對稱加密算法)。大部分算法出自國外,事實上我國國家密碼管理局也發(fā)布了一系列國產(chǎn)商用密碼算法,即SM系列,但是簡稱國密算法,命名上太過隨意。
國密算法包括 SM1、SM2、SM3 、SM4、SM7、SM9、ZUC(祖沖之加密算法),其中SM1 和 SM7 算法不公開,其余算法已成為 ISO/IEC 國際標(biāo)準(zhǔn)。
2、國密算法有哪些
SM1、SM4、SM7、ZUC是對稱算法,SM2、SM9是非對稱算法,SM3是哈希算法,與國際通用算法的關(guān)系如下:
2.1 SM1對稱加密算法
SM1 算法是分組密碼算法,對稱加密,分組長度和密鑰長度都為 128 位,算法安全保密強度及相關(guān)軟硬件實現(xiàn)性能與 AES 相當(dāng)。該算法不公開,僅以IP核的形式存在于芯片中,需要通過加密芯片的接口進(jìn)行調(diào)用,諸如智能IC卡、智能密碼鑰匙、加密卡等安全產(chǎn)品,廣泛應(yīng)用于電子政務(wù)、電子商務(wù)及國民經(jīng)濟(jì)的各個應(yīng)用領(lǐng)域。
2.2 SM2公鑰密碼算法
SM2為橢圓曲線(ECC)公鑰加密算法,非對稱加密,用來替換 RSA 算法,在不少政府網(wǎng)站會見到此類加密算法。
2.3 SM3雜湊算法
SM3 為密碼雜湊算法,采用密碼散列(hash)函數(shù)標(biāo)準(zhǔn),用于替代 MD5/SHA-1/SHA-2 等國際算法,是在 SHA-256 基礎(chǔ)上改進(jìn)實現(xiàn)的一種算法,消息分組長度為 512 位,摘要值長度為 256 位。在商用密碼體系中,SM3 主要用于數(shù)字簽名及驗證、消息認(rèn)證碼生成及驗證、隨機數(shù)生成等。據(jù)國家密碼管理局表示,其安全性及效率要高于 MD5 算法和 SHA-1 算法,與 SHA-256 相當(dāng)。在SM2,SM9標(biāo)準(zhǔn)中使用。
2.4 SM4對稱加密算法
SM4 為無線局域網(wǎng)標(biāo)準(zhǔn)的分組加密算法,對稱加密,用于替代 DES/AES 等國際算法,SM4 算法與 AES 算法具有相同的密鑰長度和分組長度,均為 128 位,故對消息進(jìn)行加解密時,若消息長度過長,需要進(jìn)行分組,要消息長度不足,則要進(jìn)行填充。加密算法與密鑰擴(kuò)展算法都采用 32 輪非線性迭代結(jié)構(gòu),解密算法與加密算法的結(jié)構(gòu)相同,只是輪密鑰的使用順序相反,解密輪密鑰是加密輪密鑰的逆序。
2.5 SM7對稱加密算法
SM7 算法不公開,是一種分組密碼算法, 分組長度為128比特,密鑰長度為128比特。SM7適用于非接觸式IC卡,應(yīng)用包括身份識別類應(yīng)用(門禁卡、工作證、參賽證),票務(wù)類應(yīng)用(大型賽事門票、展會門票),支付類應(yīng)用(積分消費卡、校園一卡通、企業(yè)一卡通等)。
2.6 SM9標(biāo)識密碼算法
SM9 為標(biāo)識加密算法(Identity-Based Cryptography),非對稱加密,標(biāo)識加密將用戶的標(biāo)識(如微信號、郵件地址、手機號碼等)作為公鑰,省略了交換數(shù)字證書和公鑰過程,使得安全系統(tǒng)變得易于部署和管理,適用于互聯(lián)網(wǎng)應(yīng)用的各種新興應(yīng)用的安全保障,如基于云技術(shù)的密碼服務(wù)、電子郵件安全、智能終端保護(hù)、物聯(lián)網(wǎng)安全、云存儲安全等等。這些安全應(yīng)用可采用手機號碼或郵件地址作為公鑰,實現(xiàn)數(shù)據(jù)加密、身份認(rèn)證、通話加密、通道加密等。在商用密碼體系中,SM9 主要用于用戶的身份認(rèn)證,據(jù)新華網(wǎng)公開報道,SM9 的加密強度等同于 3072 位密鑰的 RSA 加密算法。
2.7 ZUC祖沖之流密碼算法
ZUC 為流密碼算法,對稱加密,該機密性算法可適用于 3GPP LTE 通信中的加密和解密,該算法包括祖沖之算法(ZUC)、機密性算法(128-EEA3)和完整性算法(128-EIA3)三個部分。用來替換RC4算法。
3、源碼
商密算法中除SM1和SM7不公開外,其他幾個開源。商用密碼源碼地址:
http://www.scctc.org.cn/templates/General/index.aspx?nodeid=73
包括源碼、范例,免責(zé)聲明等信息,可以很方便的移植到C嵌入式軟件中。
4、小節(jié)
密碼算法作為國家戰(zhàn)略資源,在大數(shù)據(jù)和云計算的時代,對信息的保護(hù)尤其重要。國家商密算法可以替代部分常用的非國產(chǎn)算法,但應(yīng)用不是很普及。