最近在做單片機中的國密算法測試, 基于國產(chǎn)單片機, 測非對稱加密和對稱加密 , 所以給自己一個記錄哦
一般來說加密算法有摘要算法、對稱加密算法、非對稱加密算法這三種類型,常見的加密算法及分類如下表:
密碼分類國產(chǎn)商用密碼國際商用密碼?-------
摘要算法SM3MD5、SHA-1、SHA-2、MAC
對稱加密算法SM1(雜湊 HASH)、SM4、SM7、ZUC(祖沖之算法)、SSF446DES、3DES、AES、RC5、RC6、RC4
非對稱加密算法SM2(橢圓曲線)、SM9(標(biāo)識密碼算法,IBC) 、RSA、Rabin、DH、DSA、ECC
密碼算法?-------
分組密碼:SM4 (CBC/CTR/GCM), AES (CBC/CTR/GCM)
序列密碼:ZUC/ZUC-256, ChaCha20, RC4
哈希函數(shù): SM3, SHA-224/256/384/512, SHA-1, MD5
公鑰密碼:SM2加密/簽名, SM9加密/簽名
MAC算法:HMAC, GHASH
密鑰導(dǎo)出函數(shù):PBKDF2、HKDF
隨機數(shù)生成器:Intel RDRAND, HASH_DRBG (NIST.SP.800-90A)
SM1、SM2、SM3、SM4、SM9? -------
SM1、SM2、SM3、SM4、SM9是中國國家密碼管理局發(fā)布的四個密碼算法標(biāo)準(zhǔn)。SM1是一種對稱密碼算法,SM2是一種非對稱密碼算法,SM3是一種哈希函數(shù),SM4是一種分組對稱密碼算法,SM9是一種標(biāo)識密碼算法。
SM1算法采用分組加密模式,將明文分成多個固定長度的數(shù)據(jù)塊,每個數(shù)據(jù)塊分別進行加密操作。SM1的加密過程中包括了置換、代換、線性變換等步驟,從而保證了加密的強度和安全性。
SM2算法是一種基于橢圓曲線密碼體制的公鑰密碼算法,可以用于數(shù)字簽名、密鑰協(xié)商、加密和解密等操作。SM2的安全性基于離散對數(shù)問題的難度,通過橢圓曲線的運算實現(xiàn)加密和解密操作。
SM3算法是一種哈希函數(shù),用于對任意長度的消息進行摘要操作,可以生成一個固定長度的消息摘要。SM3算法采用了置換、代換、移位、加法等操作,可以保證摘要的強度和唯一性。
SM4算法是一種分組對稱密碼算法,采用Feistel結(jié)構(gòu),將明文分成多個數(shù)據(jù)塊,每個數(shù)據(jù)塊分別進行加密操作。SM4算法采用了S盒、置換、線性變換等操作,從而保證了加密的強度和安全性。
SM9算法是一種基于標(biāo)識的密碼算法(簡稱“IBC”),由數(shù)字簽名算法、標(biāo)識加密算法、密鑰協(xié)商協(xié)議三部分組成,相比于傳統(tǒng)密碼體系,SM9密碼系統(tǒng)最大的優(yōu)勢就是無需證書、易于使用、易于管理、總體擁有成本低。SM9算法的應(yīng)用十分廣泛,可以實現(xiàn)各類數(shù)據(jù)的加密、身份認(rèn)證等安全服務(wù);由于它的易用性和高安全性,非常適合海量設(shè)備間的安全通信,在保障移動互聯(lián)網(wǎng)、大數(shù)據(jù)、工業(yè)互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、車聯(lián)網(wǎng)等領(lǐng)域的數(shù)據(jù)安全有著得天獨厚的優(yōu)勢。
證書和數(shù)字信封?-------
數(shù)字證書:X.509證書, CRL證書注銷列表, CSR (PKCS #10) 證書簽名請求
私鑰加密:基于SM4/SM3口令加密的PEM格式私鑰 (PKCS #8)
數(shù)字信封:SM2密碼消息 (GM/T 0010-2012)
單片機上算法應(yīng)用 -------
另外支持單片機的SM2有人搞嗎?
還有國外單片機與國產(chǎn)單片機上測試有搞過的嗎 stm32 arterytek? /??gigadevice
----
國家商用密碼管理辦公室制定了一系列密碼標(biāo)準(zhǔn),包括SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖沖之密碼算法(ZUC)那等等。(SM是商密的意思)
其中SM1、SM4、SM7、祖沖之密碼(ZUC)是對稱算法;SM2、SM9是非對稱算法;SM3是哈希算法。目前,這些算法已廣泛應(yīng)用于各個領(lǐng)域中,期待有一天會有采用國密算法的區(qū)塊鏈應(yīng)用出現(xiàn)。
其中SM1、SM7算法不公開,調(diào)用該算法時,需要通過加密芯片的接口進行調(diào)用;
-----
X.509?是密碼學(xué)里公鑰證書的格式標(biāo)準(zhǔn)。
sm2做簽名驗簽等; -公鑰加密私鑰解密 ,私鑰簽名公鑰驗簽
sm3做校驗數(shù)據(jù)完整性
sm4做數(shù)據(jù)加密
其他待研究?-------
hmac / sm7??
-----
證書鏈驗證過程
證書鏈驗證過程通常涉及多個步驟,主要目的是確認(rèn)證書的完整性和可信度。這個過程從客戶端開始,逐步驗證證書鏈中的每個證書。以下是詳細(xì)信息:123
客戶端首先驗證服務(wù)器證書的簽名。這涉及使用服務(wù)器證書中包含的CA的公鑰來解密證書上的數(shù)字簽名,并驗證簽名使用的哈希算法是否與CA證書中聲明的算法一致。如果簽名驗證成功,則表明服務(wù)器證書是可信的。
驗證通過后,客戶端會繼續(xù)驗證證書鏈中的下一個環(huán)節(jié),即從服務(wù)器證書中獲取下一個CA的證書,然后重復(fù)相同的驗證過程。
客戶端還會驗證根證書,即證書鏈的起點。這通常涉及在本地緩存一些全球公認(rèn)的根證書,并使用這些根證書來驗證服務(wù)器證書中提到的CA的簽名。如果根證書驗證成功,則整個證書鏈被認(rèn)為有效。
這個過程確保了證書的來源是可驗證和可信的。如果所有驗證步驟都成功完成,則表明服務(wù)器是可信的。
-----
gitee和github上的庫?sm_on_mcu?