国际上常见的对称加密算法有DES、3DES、AES、RC4、SNOW;国密对称密码算法指的是SM1、SM4、SM7、ZUC。SM1和SM7密码算法未公开。SM4和ZUC已公开,可以获得其开源代码。其中DES、3DES、AES、SM1、SM4、SM7属于分组算法,RC4、SNOW、ZUC属于分组加密。
对称加密算法加密过程与解密过程使用相同的或者容易互相推导得出的密钥,即加密和解密两方的密钥是“对称”的。分组加密是对称加密的典型代表,在多种应用场景中都会用到。本文重点分析保密性应用场景,并利用C语言和Java语言实现相关代码。
SM4算法流程
算法概述
SM4算法是我国发布的商用密码算法中的一种分组密码算法,于2006年公开发布。并于2012年3月发布为密码行业标准,2016年8月转为国家标准。
SM4密码算法是一个分组算法。该算法的分组长度为128bit,密钥长度为128bit,具体包括密钥扩展算法、加密算法和解密算法。密钥扩展算法与加密算法有一定的相似性,都采用32轮非线性迭代结构。数据加密算法和数据解密算法结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。由于密钥扩展算法、加密算法和解密算法有共性的模块,所以SM4密码算法与AES密码算法相比实现起来相对容易。
共性模块
共性模块主要是合成置换T,其中T是一个可逆变换,由非线性变换和线性变换L复合而成,即T(x)=L(
(x))。

本文对比分析了国密SM4和AES分组加密算法,介绍了SM4算法的流程,包括非线性变换τ和线性变换L,以及密钥扩展和加密解密过程。SM4算法与AES有共性模块,实现相对容易,适用于保密性应用场景。
最低0.47元/天 解锁文章
3235

被折叠的 条评论
为什么被折叠?



