国密算法系列之对称分组加密算法SM4
国密系列算法中的SM4为对称分组加密算法,在信息安全领域中用于对消息进行加密,保护消息的私密性。
国际标准的常用对称分组加密算法有DES,AES等。
本文采用图解的方式介绍SM4算法。
SM4算法图解
整体流程
SM4算法的块长度为128位,**长度也为128位,加密过程如以下动画所示,解密过程和加密过程结构相同,仅轮**逆序使用。
轮函数
从上图看出,**扩展和加密过程中,都用到了轮函数,其中ABCDEZ均为长度为4字节的字,轮函数的结构如下图所示:
变换
变换为轮函数中的非线性变换过程,即将AA的四个字节并行进行S盒替换,以字节0xEF为例, 它被替换为S盒中的第E行,第F列对应的值0x84,SM4的S盒如下:
L变换
L变换为为轮函数中的线性变换过程,对于加密过程的轮函数,L变换为:
对于**扩展过程的轮函数,L’变换为: