SM4算法

由于实现简单,SM4算法非常适合在智能数据卡、物联网传感节点等对面积和成本要求比较严格的场合使用。SM4算法是对称加密算法,也是分组算法,其分组长度和密钥长度均为128比特,即加密强度为128位。加密算法和密钥扩展算法都采用32轮非线性迭代结构。SM4算法如图所示,具体步骤如下:

时间: 2024-12-28 13:51:23

SM4算法的相关文章

SM4算法及实现方式——第一部分

==国密算法的实现方式·第一部分== 一.SM4是什么 写在前面 这段时间的博客是作者本科毕业设计的周期性小报告,考虑到公开可浏览,故写成了这种略带密码学科普性的博客,在提交周期性工作汇报的同时分享一些学习密码学时的心得,欢迎大家批评指正. 本系列主要内容为SM2/3/4/9系列算法的简单介绍和python的实现方式,也可能有时会添加一些为其它同学做的小玩意,请相信作者都是字字手码,尽量让对密码学有兴趣的同学们都能看懂.python版本为3.6.6,有编程基础者约一周可上手,推荐小甲鱼系列丛书,

SM4算法的长数据加密——第二部分

==国密算法的实现方式·第二部分== 一.SM4的长明数据加密 长数据加密其实很简单,大概想一下,把数据分成与组长相等的数据段,分别加密,然后拼起来,就大功告成了!没错就是这么简单,不过这只是其中一种加密方式,在讲述分组密码的长数据加密时,通常会讲到工作模式: 1.分组密码的工作模式 ECB-电码本(Electronic Code Book)模式: 这是最简单的.直接使用分组密码算法的工作模式,就如同上文提到的那样,将明文分组填充至分组长度,分别加密再按原顺序连接成密文.工作描述如下图: 这种模

自己封装的openssl+国密算法的C++接口

Digest #ifndef _DIGESTCALC_H #define _DIGESTCALC_H /********************************** /* 使用示例:(sm3算法) /* DigestCalc hashcl; /* hashcl.Init(DigestCalc::alg_id::sm3); /* hashcl.Update(in,inl); /* vector<unsigned int> out(hashcl.GetHashLength()); /* h

【原创】SM4password算法源代码接口具体解释

近期几天想把cryptdb的加密算法换成国产的sm4加密算法.所以花了时间研究了一下sm4的源代码和基本原理,避免忘记,写下这篇博客以作记录. 先介绍一下SM4算法,SM4是我们自己国家的一个分组password算法.是国家password管理局于2012年公布的. 网址戳→_→:http://www.cnnic.net.cn/jscx/mixbz/sm4/ 详细的password标准和算法官方有很详尽的PDF文档以供查阅,戳→_→:http://218.241.108.63/wiki/imag

2017-2018-2 20179204《网络攻防实践》第十三周学习总结 python实现国密算法

国密商用算法是指国密SM系列算法,包括基于椭圆曲线的非对称公钥密码SM2算法.密码杂凑SM3算法.分组密码SM4算法,还有只以IP核形式提供的非公开算法流程的对称密码SM1算法等. 第1节 SM2非对称密码算法原理 国密SM2算法是商用的ECC椭圆曲线公钥密码算法,其具有公钥加密.密钥交换以及数字签名的功能.椭圆曲线参数并没有给出推荐的曲线,曲线参数的产生需要利用一定的算法产生.但在实际使用中,国密局推荐使用素数域256 位椭圆曲线,其曲线方程为y^2= x^3+ax+b.参数如下: 其中p是大

Centos7 编译安装 Openssl 1.1.1 支持国密标准

OpenSSL项目新版本增加了中国SM2/SM3/SM4算法的支持: SM2椭圆曲线: https://github.com/openssl/openssl/pull/4793 SM3哈希摘要: https://github.com/openssl/openssl/pull/4616 SM4对称加密: https://github.com/openssl/openssl/pull/4552 参考: 中国×××制定的商业密码算法标准 <GM/T 0006-2012 密码应用标识规范>定义国密算法

20165234 《基于Python的GMSSL实现》课程设计个人报告

课程设计中承担的任务 实现SM4算法 完成SM4算法的代码 from gmssl.sm4 import CryptSM4, SM4_ENCRYPT, SM4_DECRYPT key = b'3l5butlj26hvv313' value = b'111' # bytes类型 iv = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' # bytes类型 crypt_sm4 = CryptSM4() crypt_

同步FIFO设计Spec

为什么要写Spec文档: 记得刚进公司实习的时候,导师安排我写一个SM4算法AHB接口模块,要求写代码前 写出详细的设计文档,详细到什么程度呢,看着文档就能把代码写好,作为一个只 在学校写过数字钟的小白来说有点不太理解,后面看的Spec多了,好的Spec的确能够看 着Spec把代码给敲了,能够方便别人理解你的设计思路,特别是当你遇到一份注释不太 清楚,逻辑难懂的代码时,是多么渴望来一份Spec帮助理解. 网页上编辑图和格式不是很方便,就写的简单点吧 1.同步FIFO(First In First

区块链余供应链金融白皮书

2018区块链与供应链金融白皮书 前言 供应链金融发展的目标是为了依托供应链核心企业,对产业上下游相关企业提供全面的金融服务,最终能够降低整个供应链运作成本,并通过金融资本和实体经济的协作,构筑银行.企业和供应链的互利共存.持续发展的产业生态.融资便利性和低成本是产业生态繁荣的内驱力.目前供应链金融在国内仍处于初级阶段,存在信息孤岛.核心企业的信任无法有效传递.融资难融资贵等诸多痛点. 而区块链以其数据难以篡改性.数据可溯源等技术特性,在融资的便利性与融资成本方面具有创新突破的潜力.区块链技术的