当前位置: 首页 > article >正文

SM4笔记整理

文章目录

  • 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/


http://www.kler.cn/a/441809.html

相关文章:

  • OSI5GWIFI自组网协议层次对比
  • 智能新浪潮:亚马逊云科技发布Amazon Nova模型
  • PyTorch使用教程(10)-torchinfo.summary网络结构可视化详细说明
  • 【22】Word:小李-高新技术企业政策❗
  • Python----Python高级(文件操作open,os模块对于文件操作,shutil模块 )
  • gitlab使用多数据库
  • 深度学习之 Deep Video Super-Resolution (VSRNet)
  • 黑神话无缘TGA2024年度游戏的原因
  • Redis经典面试题
  • [免费]SpringBoot+Vue校园社团管理系统(优质版)【论文+源码+SQL脚本】
  • centos7扩容ext4文件系统类型硬盘
  • element中input框添加@keyup.enter.native,按enter后刷新页面
  • MySQL数据库备份,恢复
  • EasyExcel 动态设置表格的背景颜色和排列
  • Ubuntu 上cutecom使用指南
  • 【Mysql优化】EXPLAIN 返回列详解:深入 SQL 查询优化的工具
  • 复习打卡MySQL篇03
  • 一篇文章解决HarmonyOS开发USB调试设备连接失败
  • 【精】Linux虚拟机 Docker 配置阿里云镜像加速
  • 深入理解 HTTP 协议:从基础到实践全解析
  • C++ 并发专题 - C++线程同步的几种方法
  • Mysql 笔记2 emp dept HRs
  • DCDC降压模块
  • MyBatis 核心知识与实践
  • AndroidStudio——安卓项目结构与文件介绍
  • ubuntu+ros新手笔记(二):古月·ROS2入门21讲学习笔记