Aligagago 发表于 2022-5-5 18:16

APM32F407支持国密算法,助力国产安全可控 ——SM2

本帖最后由 Aligagago 于 2022-5-5 18:15 编辑

#技术资源# #申请原创#
在了解SM2(非对称加密算法)之前,先给大家科普下什么是对称加密和非对称加密。对称加密:指信息的发送方和接收方采用同一个密钥去进行数据的加密和解密。
非对称加密:指需要两个不同的密钥(公开密钥public key、私有密钥private key)进行加解密,如果用公开密钥对数据进行加密,只有对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有对应的公开密钥才能解密。
SM2详解:SM2 是由国家密码管理局于 2010年12月17日发布,相关标准为“GM/T0003-2012 《SM2 椭圆曲线公钥密码算法》 ”其算法公开。是我国自主设计的公钥密码算法。在国际标准的 ECC 椭圆曲线密码理论基础上进行自主研发设计,具备 ECC 算法的性能特点更加安全先进。具有抗攻击性强、CPU占用少、内存占用少、网络消耗低、加密速度快等功能特性。


SM2RSA
算法结构基本椭圆曲线(ECC)基于特殊的可逆模幂运算
计算复杂度完全指数级亚指数级
公钥位数256bit2048bit
秘钥生成速度较RSA算法快百倍以上慢
解密加密速度较快一般
安全性:      ECC算法的单位安全强度远高于RSA算法,可用较少的计算能力提供比RSA算法更高的安全强度,而所需的密钥长度却远比RSA算法低。目前基于ECC的SM2 证书普遍采用256位密钥长度,加密强度等同于 3072 位 RSA证书,远高于业界普遍采用的2048位RSA证书。此外,为了提高安全强度必须不断增加密钥长度,ECC算法密钥长度增长速度较慢,而RSA算法密钥长度则需呈倍数增长。
对称秘钥长度(bit)ECC秘钥长度(bit)RSA秘钥长度(bit)保密年限
8016010242010
12222420482030
12825630722040
19238476802080
256512153602120
高效性:   在TLS握手过程中,更长的密钥意味着必须来回发送更多数据以验证连接,产生更大性能损耗和时间延迟。因此,ECC算法能够以较小的密钥和较少的数据传递建立HTTPS连接,确保相同安全强度的前提下提升连接速度。
函数描述:
函数描述
SM2_Cinfig初始化ECC算法参数,执行其余函数前必须配置此函数。
SM2_Gen_KeyPair生成一对密钥,公钥(32Bytes)和私钥(64Bytes)
SM2_Encryption加密明文(1-2048 Bytes),生成密文,输出为:(04 || C1 || C2 || C3).
SM2_Decryption解密密文(98-2145 Bytes),生成明文。
SM2_Preprocess签名预处理,输入Message and ID,生成 e: pointer to the H256.
SM2_Signature签名,输入e值,生成signature.R(32Bytes)signature.S(32Bytes)
SM2_Verify验签,返回验签结果(SM2_VERIFY_SUCESS)
注:
1.密文输出顺序为 C1,C2,C3(旧标准),C1,C3,C2(新标准GM/T 0009-2012)。2.04为压缩标识(1Byte),C1为公钥xy分量(64Bytes),C2为加密数据(与明文长度一致),C3为摘要值(32Bytes)。
参考资料:
[*]国家密码管理局:https://www.sca.gov.cn/
[*]密码标准委员会:http://www.gmbz.org.cn/

caigang13 发表于 2022-5-5 20:51

比较看好非对称加密

Aligagago 发表于 2022-5-6 11:38

caigang13 发表于 2022-5-5 20:51
比较看好非对称加密

大家各有优缺点,后续会讲两者取长补短的应用。
页: [1]
查看完整版本: APM32F407支持国密算法,助力国产安全可控 ——SM2