SM4密码核心知识点
一、基本参数
分组长度:128比特
密钥长度:128比特,分为4个32比特字
加解密算法:非线性迭代
加解密运算轮数(迭代次数):32轮
密钥扩展算法轮数:32轮
轮密钥长度:32比特
加密、解密算法结构相同,轮密钥使用顺序相反
解密密钥是加密密钥的逆序
系统参数FK:4个32比特字
固定参数CK:32个32比特字
二、轮函数
加密算法与解密算法:32轮非线性迭代(非平衡的Feistel结构)
合成置换T:
,可逆变换,由非线性变换
和线性变换
复合而成
由4个并行的S盒构成
非线性变换
的输出是线性变换
的输入
三、算法
加密算法:
32次迭代运算和1次反序变换R组成;
1个固定字,5项异或,循环左移位数分别为:2、10、18、24;
使用S盒(非线性变换)、循环左移、异或等运算。
解密算法:
与加密算法结构相同,轮密钥使用顺序相反。
密钥扩展算法:
与加密算法合成置换中线性变换不一样,循环左移位数:13、23;
加密密钥先与系统参数FK异或,经过扩展算法与固定参数结合生成轮密钥。