目录
简介
两类参数
加密流程
RKi和Ki+4的生成方法
Xi+4的生成方法编辑
左移的概念
简介
在商用密码体系中,SM4主要用于数据加密,其算法公开,分组长度与密钥长度均为128bit,加密算法与密钥扩展算法都采用32轮非线性迭代结构,S盒为固定的8比特输入8比特输出。
SM4属于对称加密中的分组加密 128位的明文组,分为4个字,一个字32位(8个16进制),密钥长度128位 32轮运算 每一轮32位的密钥参与运算.
两类参数
运算过程中会用到的两类参数,不用管什么意思用就行了。
参数一:系统参数FK(是不变的):
FK0=(A3B1BAC6) FK1=(56AA3350) FK2=(677D9197) FK3=(B27022DC)
参数二:固定参数32个CK值(是不变的):
这些值分别对应,CK0,CK1,CK2.....CK31
00070E15,1C232A31,383F464D,545B6269,
70777E85,8C939AA1,A8AFB6BD,C4CBD2D9,
E0E7EEF5,FC030A11,181F262D,343B4249,
50575E65,6C737A81,888F969D,A4ABB2B9,
C0C7CED5,DCE3EAF1,F8FF060D,141B2229,
30373E45,,4C535A61,686F767D,848B9299,
A0A7AEB5,BCC3CAD1,D8DFE6ED,F4FB0209,
10171E25,2C333A41,484F565D,646B7279。
加密流程
RKi和Ki+4的生成方法
Xi+4的生成方法
S-Box盒
S-Box盒的代换原理
其每一个16进制的前四位对应Sbox的行,后四位对应Sbox的列。定位到行列的对应值之后,将其替换:
比如一个字a0a1a2a3的值为: 88 99 AF 2E
88 对应8行8列 的 A3
99 对应9行9列 的 93
AF 对应A行F列 的5F
2E 对应2行E列 的AC
所以经过代换后,a0a1a2a3的值:88 99 AF 2E 转换为s0s1s2s3的值:A3 93 5F AC
左移的概念
所谓左移,就是将二进制数向左移动,向右补齐的操作
举例:88 99 AF 2E的二进制为:10001000 10011001 10101111 00101110
假设我们将它左移3位,其结果为
01000100 11001101 01111001 01110100
作图不易,引用请转载,学海无涯,发现错误请指正!