草庐IT

国密SM2

全部标签

SM4分组密码算法

对称加密算法SM4SM4算法介绍一、SM4加密流程二、轮函数F1.合成置换T3.非线性变换τ2.线性变换L4.加密的结果总结SM4算法介绍SM4.0于2013年3月被列为国家密码行业标准“GM/T0002-2012《SM4分组密码算法》(原SMS4分组密码算法)”。2016年被列入国家标准(GB/T32907-2016)在商用密码体系中,SM4主要用于数据加密,其算法公开,分组长度与密钥长度均为128bit。加密算法与密钥扩展算法都采用32轮非线性迭代结构,采用非平衡Feistel。每一轮需要一个轮密钥。以字(32bit)为单位加密。M4算法加/解密算法的结构相同,只是使用轮密钥相反,其中解密

【密码算法 之十四】非对称算法,ECC椭圆曲线算法 之 ECDSA、ECDH、SM2、SM9等

文章目录1.ECC椭圆曲线1.1曲线类型1.2曲线标准1.3表示方法1.4曲线运算1.4.1点加(PointAddition)1.4.2点乘(PointMultiplication)1.4.3倍点(PointDouble)2.ECDSA2.1私钥签名2.2公钥验签3.ECDH4.SM24.1数字签名4.2秘钥交换4.3加密4.4解密5.SM96.总结1.ECC椭圆曲线  ECC(EllipticCurveCryptography),就是椭圆曲线密码算法,它是基于椭圆曲线数学理论实现的一种非对称加密算法。相比RSA,ECC优势是可以使用更短的密钥,来实现与RSA相当或更高的安全,RSA加密算法也

商用密码应用与安全性评估要点笔记(SM4算法)

1、SM4算法简介    SM4是我国发布的分组密码算法,属于对称密码的一种。SM4在2006年公开发布,2012年成为行业标准(GMT0002-2012SM4分组密码算法),并于2021年成为国际标准。    SM2分组长度为128bit、密钥长度为128bit、采用32轮非线性迭代结构(非平衡Feistel结构)。由于采用了Feistel结构,使得SM4数据解密和数据加密的算法结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。2、算法描述    SM4的S盒为固定的8bit输入8bit输出的置换。    2.1加密算法    由32轮迭代运算使用轮密钥为(rk0,rk1,r

国密算法 SM4加密算法 Python完整实现

SM4介绍SM4算法是一种对称加密算法,也被称为国密算法。它是由中国密码学家设计的,已被列入国家密码局的标准。SM4算法使用128位的密钥和分组大小,使用32轮迭代加密,可以用于加密数据和验证消息认证码。它的加密效率很高,安全性也很好,被广泛应用于各种安全领域,如电子商务、移动通信和云计算等。算法实现流程图加密算法密钥扩展算法其中,K0~K3的生成过程如下:设输入的密钥为MK=(MK0,MK1,MK2,MK3),则(K0,K1,K2,K3)=(MK0^FK0,MK1^FK1,MK2^FK2,MK3^FK3)注:CKi以及FKi为常数;i的取值为i=0,1,…31,共生成32个子密钥。源码加密S

Java SM4加密解密

依赖org.bouncycastlebcprov-jdk15on1.59SM4工具类publicclassSm4Util{static{Security.addProvider(newBouncyCastleProvider());}privatestaticfinalStringENCODING="UTF-8";publicstaticfinalStringALGORITHM_NAME="SM4";//加密算法/分组加密模式/分组填充方式//PKCS5Padding-以8个字节为一组进行分组加密//定义分组加密模式使用:PKCS5PaddingpublicstaticfinalStringA

国密算法(SM3)java语言的实现:利用bcprov和huttol库来实现SM3算法,国产哈希算法

SM3简介:SM3是国产哈希算法SM3采用的一种密码散列函数标准,由国家密码管理局于2010年12月17日发布。相关标准为“GM/T0004-2012《SM3密码杂凑算法》”。在商用密码体系中,SM3主要用于数字签名及验证、消息认证码生成及验证、随机数生成等,其算法公开。据国家密码管理局表示,其安全性及效率与SHA-256相当。消息和摘要:散列函数的输入数据,通常被称为消息(message);而它的输出结果,经常被称为消息摘要(messagedigest)或摘要(digest)。密码散列函数的特点:一个理想的密码散列函数应该有四个主要的特性:对于任何一个给定的消息,它都很容易就能运算出散列数值

国密算法java语言的实现:利用bcprov和hutool库分别实现国密SM4算法工具类,对称密钥

SM4算法成为行业标准:SM4分组密码算法是2012年3月21日实施的一项行业标准;2021年6月25日,我国SM4分组密码算法作为国际标准ISO/IEC18033-3:2010/AMD1:2021《信息技术安全技术加密算法第3部分:分组密码补篇1:SM4》,由国际标准化组织ISO/IEC正式发布;中文名SM4分组密码算法标准号GM/T0002-2012实施日期2012-03-21发布日期2012-03-21技术归口国家密码管理局批准发布部门国家密码管理局。SM4算法的重要性是我国提出的分组密码算法,而且得到了国际的认可;是继SM2/SM9数字签名算法、SM3密码杂凑算法、祖冲之密码算法和SM

国密SM2算法的加密签名消息语法封装解析p7格式signedData

前文可参考:SM2算法的加密签名消息语法规范(三)如何构造signedData_天对地,雨对风的博客-CSDN博客系列。这里直接讲opensslasn1解析和封装的部分代码。国密 p7格式标准,参考:GMT0010-20121、p7签名结构: 编写结构体GMTSignedData.h#ifndef_GMTSignedData_H#define_GMTSignedData_H#include#include#include#include#include#include#ifdef__cplusplusextern"C"{#endif/*oidrefertoGM/T0006*/#defineOI

国密算法-SM2

        国密算法是国家密码局制定标准的一系列算法,包括SM1、SM2、SM3、SM4等。其中,SM1是采用硬件实现的,不予讨论;SM2是非对称加密算法;SM3是摘要算法;SM4是对称加密算法。本篇贴出SM2 Java版本实现生成公私钥及加解密、签名验签代码,供大家一起讨论学习,所有的代码实现都是基于BC库来做的。        BC库是实现加解密算法的基础库,我们首先要在代码里引入BC库           org.bouncycastle      bcprov-jdk15on      1.69        下面是整个工具类,实现密钥生成,加解密及签名验签功能importorg.

Delphi SM2/SM4国密算法

  最近忙个医保平台的项目,涉及SM2/SM4的签名,验签,加密,解密的业务操作过程。毕竟现在用Delpih的人不是很多,懂这方面的技术的人也更少,能涉及密码算法的少之更少,网上也能搜到一些开源的代码,也由于使用的人少,未加通过业务系统来验证,所以存在不少Bug。   本来想省事,网上也有卖封装好的DLL的人,可对于一个老鸟级的程序员来说,是莫大的侮辱。其实想了很多办法,最终还是用原生态的pasical语言解决了SM2签名,验签,SM4加密解密的问题。第一种解决思路:用医保中心提供的java工具,搭建签名,加密服务,用Delphi用过API调用。这个方式在实际业务中被否了,因为对于客户端的改造