文章目录
- 1. 介绍
- 2. 算法定义
- 3. 迭代运算
- 3.1 轮函数F
- 3.2 合成置换T
- 4. SM4秘钥生成
- 4.1 具体步骤
- 4.2 系统参数FK
- 4.2 固定参数CK
- 5. 参考资料
以下内容为信息安全开发过程中,SM4对称加密算法的笔记。
对称加密算法汇总介绍:对称加密算法和模式
1. 介绍
SMS4分组加密算法是中国无线标准中使用的分组加密算法,在2012年确定为国家密码行业标准,更名为SM4。
SM4 密码算法是一个分组算法,该算法的分组长度为128比特,密钥长度为128比特。加密算法与密钥扩展算法均采用非线性迭代结构,运算轮数均为32轮。数据解密和数据加密的算法结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。
2. 算法定义
①:X1~X4为输入的明文,后面的Xi( 4 < i <= 35)依次根据前面的输入与轮秘钥rki进行F运算运算得到,具体可见下面迭代运算。
②:这一步反序变换,就是把第一步迭代运算的结果,以字为单位调换,去X35,X34,X33,X32结果为加密密文。
3. 迭代运算
3.1 轮函数F
函数功能:返回第一个参数与合成置换T异或的结果。
3.2 合成置换T
包含两部分,非线性变换τ与线性变换L
非线性转换τ:由4个并行的S盒构成,这里是将输入的32bit数据,依次转换为4个8bit数据,在对4个数据进行S盒变换,变换结束后重新合并为32bit数据
S盒表:
线性变换L:
4. SM4秘钥生成
4.1 具体步骤
- 先根据输入秘钥MK与系统参数FK(分别异或运算),计算K0~K3(一个中间参数),对应步骤(6)
- 根据步骤(7)公式计算轮秘钥rki,这里与迭代运算中的轮函数F类似,只能线性运算不同,τ变换保持一致。
PS:MKi宽度为32bit
4.2 系统参数FK
4.2 固定参数CK
5. 参考资料
https://www.bilibili.com/video/BV1LS4y167r3/