国家商用密码算法介绍

数据安全 数据安全 2395 人阅读 | 0 人回复

发表于 2022-12-19 12:27:57 | 显示全部楼层 |阅读模式

一、国家商用密码
国家商用密码算法简称国密算法,是由国家密码管理局认定和公布的密码算法标准以及应用规范,其中部分密码算法已经成为国际标准,SM系列密码即商业密码,用于商业不涉及国家秘密的密码技术。

我将我之前总结的资料整理成pdf版本放在了百度云盘上,感兴趣的可以关注囧囧妹公众号,回复“密码学常识”来获取。


二、密码介绍

商用密码算法主要涉及三大类:





      • 对称加解密
      • 非对称算法
      • 杂凑算法

【对称算法】

国密对称算法主要有SM1、SM4、SM7、ZUC(祖冲之算法),其中SM1和SM7算法是不公开的。
SM1算法是一种分组加密算法,分组长度和密钥长度都是128位,密码算法仅以IP核的方式存于芯片之上。SM4算法与SM1比较相似,也是一种分组加密算法,分组长度与密钥长度都是128bit。加密算法与密钥扩展算法均采用32轮非线性迭代结构,以字(32位)为单位进行加密运算,每一次迭代运算均为一轮变换函数F。SM4算法加/解密算法的结构相同,只是使用轮密钥相反,其中解密轮密钥是加密轮密钥的逆序。SM7也是一种分组密码算法,其算法不公开,分组长度和密钥长度也是128bit。SM7适用于非接触式IC卡,应用包括身份识别类应用(门禁卡、工作证、参赛证),票务类应用(大型赛事门票、展会门票),支付与通卡类应用(积分消费卡、校园一卡通、企业一卡通等)。zuc算法密钥长度是128bit,由128比特种子密钥和128比特初始向量共同作用产生32比特位宽的密钥流,所以zuc算法也是流密码算法,在生成密钥流时,zuc算法采用128比特的初始密钥和128比特的IV作为输入参数,共同决定 LFSR里寄存器的初始状态,随着电路时钟的变化,LFSR的状态被比特重组之后输入非线性函数F,每一拍时钟输出一个32比特的密钥流Z。随后,密钥流与明文按位异或生成密文。

【非对称算法】

国密非对称算法主要有SM2和SM9。

SM2算法是基于椭圆曲线(ECC)密码的公钥密码算法,密钥长度为256bit,包括数字签名验签、公钥加密和密钥交换,用于替换RSA国际算法。

SM9算法是一种标识加密算法,基于一个唯一标识作为公钥省去了使用数字证书交换公钥的流程,可以替代目前的PKI/CA体系,个人非常看好该算法,了解到的目前奥联对该算法的业务开发非常成熟。



【杂凑算法】国迷杂凑算法主要有SM3。SM3算法主要用于数字签名及验证、消息认证码生成及验证、随机数生成等,其算法公开,在SM2和SM9中使用。据国家密码管理局表示,其安全性及效率与SHA-256相当。


三、源码源码地址:
  1. http://www.scctc.org.cn/templates/Download/index.aspx?nodeid=71
复制代码

这是几个开源的商密算法,还是相当不错的,里面包含了源码、示例、免责等,可以非常方便的移植到嵌入式中,这个很重要,之前有做嵌入式项目时就用的这套,但是要有高性能时还是需要硬件算力来支持。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则