国密SM4对称算法实现说明(原SMS4无线局域网算法标准)

来源:互联网 发布:朝鲜学汉语吗 知乎 编辑:程序博客网 时间:2024/05/09 03:04

转自: http://blog.csdn.net/goldboar/article/details/7483926


最近浏览了一下国密办的官方网站,新公布了国密算法标准,其中有SM4算法,说明为原SMS4算法,既无线局域网标准的分组数据算法,可参考

http://www.oscca.gov.cn/News/201204/News_1228.htm 公告说明,但不能下载标准文档 。
    SM4为对称算法,密钥长度和分组长度均为128位。按原SMS4的标准描述:加密算法与密钥扩展算法都采用32轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。
    看了一下,算法中还描述了类似于DES算中的S盒变换。那如何来设计这个算法,在网上查询一下实现的代码还是满多的,按之前的经验参照Xyssl算法风格和网上查询的示例代码实现C语言实现代码。在此非常感谢Xyssl和
http://hi.baidu.com/numax/blog/item/80addfefddfb93e4cf1b3e61.html这位版主。
    改造后的代码实现了ECB和CBC两种加密模式,未处理数据填充Padding,使用时数据设置为16的倍数。源代码请参考CSDN的资源链接:

http://download.csdn.net/detail/goldboar/4244270,使用VC6实现,测试数据通过。


添加: 20160913 

 

对称加密和分组加密中的四种模式(ECB、CBC、CFB、OFB)



0 0
原创粉丝点击