密码学_SM4国密算法

 

目录

 

 简介

两类参数

加密流程

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。
 

加密流程

密码学_SM4国密算法_第1张图片

 

RKi和Ki+4的生成方法

Xi+4的生成方法

S-Box盒
密码学_SM4国密算法_第2张图片

 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

作图不易,引用请转载,学海无涯,发现错误请指正!

你可能感兴趣的:(加密算法,密码学)