关于国密算法SM4的流程

关于国密算法SM4的流程

 

   原来用于无线局域网的国密算法SMS4被定义为SM4作为密码行业标准发布。SM4是一个分组对称密钥算法,明文、密钥、密文都是16字节,加密和解密密钥相同。通过32次循环的非线性迭代轮函数来实现加密和解密。其中包括非线性变换S盒,以及由移位异或构成的线性变换。除了256字节的S盒之外,还定义了另外两组参数FK以及CK(具体数据参考密码局网站)。基本过程是首先把16字节密钥按照4字节一组分成4组,然后根据密钥扩展算法,生成32组4字节轮密钥;再把输入的16字节数据也按照4字节一组分成4组然后进行循环运算(这点和AES算法类似)。以下是一个简单的加密demo流程。(特别说明:本程序未经编译验证,仅供理解SM4流程参考

 

 

 

 

U32 CK[32] = {}; // CK参数

U32 FK[4] = {}; // FK参数


版权声明:本文为bill20100829原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。