国密算法系列之对称分组加密算法SM4

国密系列算法中的SM4为对称分组加密算法,在信息安全领域中用于对消息进行加密,保护消息的私密性。
国际标准的常用对称分组加密算法有DES,AES等。
本文采用图解的方式介绍SM4算法。

SM4算法图解

整体流程

SM4算法的块长度为128位,密钥长度也为128位,加密过程如以下动画所示,解密过程和加密过程结构相同,仅轮密钥逆序使用。
国密算法系列之对称分组加密算法SM4_第1张图片

轮函数

从上图看出,密钥扩展和加密过程中,都用到了轮函数 Z=F(A,B,C,D,E) Z = F ( A , B , C , D , E ) ,其中ABCDEZ均为长度为4字节的字,轮函数的结构如下图所示:
国密算法系列之对称分组加密算法SM4_第2张图片

τ τ 变换

τ τ 变换为轮函数中的非线性变换过程,即将AA的四个字节并行进行S盒替换,以字节0xEF为例, 它被替换为S盒中的第E行,第F列对应的值0x84,SM4的S盒如下:
国密算法系列之对称分组加密算法SM4_第3张图片

L变换

L变换为为轮函数中的线性变换过程,对于加密过程的轮函数,L变换为:

L(BB)=BB(BB<<<2)(BB<<<10)(BB<<<18)(BB<<<24) L ( B B ) = B B ⊕ ( B B <<< 2 ) ⊕ ( B B <<< 10 ) ⊕ ( B B <<< 18 ) ⊕ ( B B <<< 24 )

对于密钥扩展过程的轮函数,L’变换为:
L(BB)=BB(BB<<<13)(BB<<<23) L ( B B ) = B B ⊕ ( B B <<< 13 ) ⊕ ( B B <<< 23 )

你可能感兴趣的:(密码学)