当前位置: 首页>数据库>正文

whaosoftの国密算法

最近在做单片机中的国密算法测试, 基于国产单片机, 测非对称加密和对称加密 , 所以给自己一个记录哦

一般来说加密算法有摘要算法、对称加密算法、非对称加密算法这三种类型,常见的加密算法及分类如下表:

密码分类国产商用密码国际商用密码?-------

摘要算法SM3MD5、SHA-1、SHA-2、MAC

对称加密算法SM1(杂凑 HASH)、SM4、SM7、ZUC(祖冲之算法)、SSF446DES、3DES、AES、RC5、RC6、RC4

非对称加密算法SM2(椭圆曲线)、SM9(标识密码算法,IBC) 、RSA、Rabin、DH、DSA、ECC

密码算法?-------

分组密码:SM4 (CBC/CTR/GCM), AES (CBC/CTR/GCM)

序列密码:ZUC/ZUC-256, ChaCha20, RC4

哈希函数: SM3, SHA-224/256/384/512, SHA-1, MD5

公钥密码:SM2加密/签名, SM9加密/签名

MAC算法:HMAC, GHASH

密钥导出函数:PBKDF2、HKDF

随机数生成器:Intel RDRAND, HASH_DRBG (NIST.SP.800-90A)

SM1、SM2、SM3、SM4、SM9? -------

SM1、SM2、SM3、SM4、SM9是中国国家密码管理局发布的四个密码算法标准。SM1是一种对称密码算法,SM2是一种非对称密码算法,SM3是一种哈希函数,SM4是一种分组对称密码算法,SM9是一种标识密码算法。

SM1算法采用分组加密模式,将明文分成多个固定长度的数据块,每个数据块分别进行加密操作。SM1的加密过程中包括了置换、代换、线性变换等步骤,从而保证了加密的强度和安全性。

SM2算法是一种基于椭圆曲线密码体制的公钥密码算法,可以用于数字签名、密钥协商、加密和解密等操作。SM2的安全性基于离散对数问题的难度,通过椭圆曲线的运算实现加密和解密操作。

SM3算法是一种哈希函数,用于对任意长度的消息进行摘要操作,可以生成一个固定长度的消息摘要。SM3算法采用了置换、代换、移位、加法等操作,可以保证摘要的强度和唯一性。

SM4算法是一种分组对称密码算法,采用Feistel结构,将明文分成多个数据块,每个数据块分别进行加密操作。SM4算法采用了S盒、置换、线性变换等操作,从而保证了加密的强度和安全性。

SM9算法是一种基于标识的密码算法(简称“IBC”),由数字签名算法、标识加密算法、密钥协商协议三部分组成,相比于传统密码体系,SM9密码系统最大的优势就是无需证书、易于使用、易于管理、总体拥有成本低。SM9算法的应用十分广泛,可以实现各类数据的加密、身份认证等安全服务;由于它的易用性和高安全性,非常适合海量设备间的安全通信,在保障移动互联网、大数据、工业互联网、物联网、车联网等领域的数据安全有着得天独厚的优势。

证书和数字信封?-------

数字证书:X.509证书, CRL证书注销列表, CSR (PKCS #10) 证书签名请求

私钥加密:基于SM4/SM3口令加密的PEM格式私钥 (PKCS #8)

数字信封:SM2密码消息 (GM/T 0010-2012)

单片机上算法应用 -------

另外支持单片机的SM2有人搞吗

还有国外单片机与国产单片机上测试有搞过的吗 stm32 arterytek? /??gigadevice

----

国家商用密码管理办公室制定了一系列密码标准,包括SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖冲之密码算法(ZUC)那等等。(SM是商密的意思)

其中SM1、SM4、SM7、祖冲之密码(ZUC)是对称算法;SM2、SM9是非对称算法;SM3是哈希算法。目前,这些算法已广泛应用于各个领域中,期待有一天会有采用国密算法的区块链应用出现。

其中SM1、SM7算法不公开,调用该算法时,需要通过加密芯片的接口进行调用;

-----

X.509?是密码学里公钥证书的格式标准。

sm2做签名验签等; -公钥加密私钥解密 ,私钥签名公钥验签

sm3做校验数据完整性

sm4做数据加密

其他待研究?-------

hmac / sm7??

-----

证书链验证过程

证书链验证过程通常涉及多个步骤,主要目的是确认证书的完整性和可信度。这个过程从客户端开始,逐步验证证书链中的每个证书。以下是详细信息:123

客户端首先验证服务器证书的签名。这涉及使用服务器证书中包含的CA的公钥来解密证书上的数字签名,并验证签名使用的哈希算法是否与CA证书中声明的算法一致。如果签名验证成功,则表明服务器证书是可信的。

验证通过后,客户端会继续验证证书链中的下一个环节,即从服务器证书中获取下一个CA的证书,然后重复相同的验证过程。

客户端还会验证根证书,即证书链的起点。这通常涉及在本地缓存一些全球公认的根证书,并使用这些根证书来验证服务器证书中提到的CA的签名。如果根证书验证成功,则整个证书链被认为有效。

这个过程确保了证书的来源是可验证和可信的。如果所有验证步骤都成功完成,则表明服务器是可信的。

-----

gitee和github上的库?sm_on_mcu


https://www.xamrdz.com/database/63n1997486.html

相关文章: