目录

简介

两类参数

加密流程

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

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

密码学_SM4国密算法相关推荐

  1. 密码学系列 - 国密算法

    国密即国家密码局认定的国产密码算法.主要有SM1,SM2,SM3,SM4,SM9.密钥长度和分组长度均为128位. 国密算法种类 SM1 为对称加密.其加密强度与AES相当.该算法不公开,调用该算法时 ...

  2. 密码学系列 - 国密算法SM1/SSF33

    国密分组密码 SM1分组密码和SSF33分组密码均为国密分组密码标标准,SM1和SSF33的密钥长度和分组长度均为128比特. 目前这两个分组密码标准的算法尚未公开,其实现仅可以通过硬件芯片的方式获得 ...

  3. sm4 的s盒_SM4国密算法Java版

    根据 国密SM4 文档 编写的一个Java 加密解密样例package javasm4; /** * * @author Jeen */ public class JavaSM4 { public s ...

  4. 国密算法 SM2公钥密码 SM3杂凑算法 SM4分组密码 python代码完整实现

    包含SM2公钥密码.SM3杂凑算法和SM4分组密码的国密算法完整工具包完成了.此前分别发布过上述三个算法的代码: SM2:国密算法 SM2 公钥加密 非对称加密 数字签名 密钥协商 python实现完 ...

  5. rsa签名算法实现_国密算法在链化未来区块链中的运用

    密码学是区块链的基础,区块链中大量采用了密码学算法,包括对称加密,非对称加密,单向散列算法,数字签名等技术. 为了实现密码学技术的自主可控,中国也定义了自己的国密标准,2020年央行颁布的<金融 ...

  6. 奇妙的安全旅行之国密算法

    hi,大家好,我是开发者FTD.今天我们来介绍一下我们国家密码局制定的加密算法 - 国密算法. 为什么要制定国密算法? 密码算法是保障信息安全的核心技术,尤其是我国最关键的银行业核心领域长期以来都是沿 ...

  7. 基于https国密算法构建安全数据传输链路

    网络数据安全得到前所未有的重视 HTTPS成为解决传输安全问题利器 大家都知道,HTTP 本身是明文传输的,没有经过任何安全处理,网站HTTPS解决方案通过在HTTP协议之上引入证书服务,完美解决网站 ...

  8. 嵌入式设备中支持国密算法的方法

    如今国密系列算法的应用已不仅仅局限于金融和电信等领域,诸如车载设备,消费类电子设备等越来越多的产品开始要求有国密算法的支持.但是国密算法的开源资料和应用案例少之又少,如何快速高效的在自己的设备中加入国 ...

  9. 国密算法SM3与SM4简介与应用

    点击上方蓝字可直接关注!方便下次阅读.如果对你有帮助,麻烦点个在看或点个赞,感谢~ 最近0基础在学习国密算法的相关应用,故此和大家分享下自己的一些经历. 程序平台: Ubuntu16.04  x64 ...

最新文章

  1. Linux面试最常见的5个基本问题
  2. 网易云海外推流部署实践
  3. Linux中netstat工具详解
  4. appium和airtest_关于Airtest自动化测试工具
  5. DyFPN:浙大华为诺亚西湖大学等提出用于目标检测的动态特征金字塔,减少40%的FLOPs!...
  6. Java并发编程-AQS源码之条件队列
  7. 修改百度搜索结果的标题
  8. cocos2d之z轴位置示例
  9. python3 协程_Python3 异步神器-协程(Coroutine)
  10. dbeaver连接Oracle数据库
  11. 虚拟软盘启动OS方法
  12. kettle案例21-将字段值设置为常量
  13. 英文面试:自我介绍篇
  14. java读取文件服务器文件,java读取远程服务器文件
  15. 区块链、NFT与元宇宙中的稀缺性技术
  16. 手机几款超级好用的APP你都认识吗
  17. 强烈推荐 GitHub 上值得前端学习的开源实战项目
  18. 【超完全源码】我写了一个平台官网网站免费分享源码
  19. Openlayers 地图监听事件
  20. 位运算判断奇偶-C语言

热门文章

  1. JAVA用数据留给出师表排序,如果诸葛亮会编程,用Java写出师表...
  2. 美国大学生数学建模竞赛选题、经验以及准备材料
  3. 【UnityShader】光线追踪体积光
  4. 基于C语言实现的流星雨模拟课程设计
  5. 中南大学实验室安全知识 网上学习6小时的小工具,小技巧
  6. 教你快速高效接入SDK——SDK接入抽象层的设计
  7. 用计算机归零,windows自带的计算器清零快捷键是哪个?
  8. Linux 的目录树
  9. Leetcode 507: 完美数
  10. 分布式事务的BASE理论