草庐IT

SM4国密算法原理及python代码实现

SM4简介SM4.0(原名SMS4.0)是中华人民共和国政府采用的一种分组密码标准,由国家密码管理局于2012年3月21日发布。相关标准为“GM/T0002-2012《SM4分组密码算法》(原SMS4分组密码算法)”。在商用密码体系中,SM4主要用于数据加密,其算法公开,分组长度与密钥长度均为128bit,加密算法与密钥扩展算法都采用32轮非线性迭代结构,S盒为固定的8比特输入8比特输出。SM4.0中的指令长度被提升到大于64K(即64×1024)的水平,这是SM3.0规格(渲染指令长度允许大于512)的128倍。算法原理基本构建输入明文(x0,x1,x2,x3)128位,共四个32位字。输入

SM3加密与解密校验

SM3密码杂凑算法是中国国家密码管理局2010年公布的中国商用密码杂凑算法标准。具体算法标准原始文本参见参考文献[1]。该算法于2012年发布为密码行业标准(GM/T0004-2012),2016年发布为国家密码杂凑算法标准(GB/T32905-2016)。SM3适用于商用密码应用中的数字签名和验证,是在[SHA-256]基础上改进实现的一种算法,其安全性和SHA-256相当。SM3和MD5的迭代过程类似,也采用Merkle-Damgard结构。消息分组长度为512位,摘要值长度为256位。整个算法的执行过程可以概括成四个步骤:消息填充、消息扩展、迭代压缩、输出结果。消息填充SM3的消息扩展步

SM3加密与解密校验

SM3密码杂凑算法是中国国家密码管理局2010年公布的中国商用密码杂凑算法标准。具体算法标准原始文本参见参考文献[1]。该算法于2012年发布为密码行业标准(GM/T0004-2012),2016年发布为国家密码杂凑算法标准(GB/T32905-2016)。SM3适用于商用密码应用中的数字签名和验证,是在[SHA-256]基础上改进实现的一种算法,其安全性和SHA-256相当。SM3和MD5的迭代过程类似,也采用Merkle-Damgard结构。消息分组长度为512位,摘要值长度为256位。整个算法的执行过程可以概括成四个步骤:消息填充、消息扩展、迭代压缩、输出结果。消息填充SM3的消息扩展步

国密算法SM2、SM3的使用

一、SM2、SM3介绍:1.SM2是非对称加密算法        它是基于椭圆曲线密码的公钥密码算法标准,其秘钥长度256bit,包含数字签名、密钥交换和公钥加密,用于替换RSA/DH/ECDSA/ECDH等国际算法。可以满足电子认证服务系统等应用需求,由国家密码管理局于2010年12月17号发布。2.SM3是一种密码杂凑算法        用于替代MD5/SHA-1/SHA-2等国际算法,适用于数字签名和验证、消息认证码的生成与验证以及随机数的生成,可以满足电子认证服务系统等应用需求,于2010年12月17日发布。它是在SHA-256基础上改进实现的一种算法,采用Merkle-Damgard

国密算法SM2、SM3的使用

一、SM2、SM3介绍:1.SM2是非对称加密算法        它是基于椭圆曲线密码的公钥密码算法标准,其秘钥长度256bit,包含数字签名、密钥交换和公钥加密,用于替换RSA/DH/ECDSA/ECDH等国际算法。可以满足电子认证服务系统等应用需求,由国家密码管理局于2010年12月17号发布。2.SM3是一种密码杂凑算法        用于替代MD5/SHA-1/SHA-2等国际算法,适用于数字签名和验证、消息认证码的生成与验证以及随机数的生成,可以满足电子认证服务系统等应用需求,于2010年12月17日发布。它是在SHA-256基础上改进实现的一种算法,采用Merkle-Damgard

no such algorithm:sm4 for provider BC报错解决方法

在报错方法中做以下操作1.判断bc类是否已经存在(Security.getProvider(BouncyCastleProvider.PROVIDER_NAME)==null)若存在打印打印其版本号-doubleversion=Security.getProvider(BouncyCastleProvider.PROVIDER_NAME).getVersion();查看version版本号是否是你引入的jar包版本若不是执行2,3步若不存在执行第三步引入bc类2.删除:Security.removeProvider(BouncyCastleProvider.PROVIDER_NAME);3.引

no such algorithm:sm4 for provider BC报错解决方法

在报错方法中做以下操作1.判断bc类是否已经存在(Security.getProvider(BouncyCastleProvider.PROVIDER_NAME)==null)若存在打印打印其版本号-doubleversion=Security.getProvider(BouncyCastleProvider.PROVIDER_NAME).getVersion();查看version版本号是否是你引入的jar包版本若不是执行2,3步若不存在执行第三步引入bc类2.删除:Security.removeProvider(BouncyCastleProvider.PROVIDER_NAME);3.引

vue普通加密以及国密SM2、SM3、sm4的使用

相关网址sm-crypto:https://www.npmjs.com/package/sm-crypto介绍1.SM2是非对称加密算法它是基于椭圆曲线密码的公钥密码算法标准,其秘钥长度256bit,包含数字签名、密钥交换和公钥加密,用于替换RSA/DH/ECDSA/ECDH等国际算法。可以满足电子认证服务系统等应用需求,由国家密码管理局于2010年12月17号发布。2.SM3是一种密码杂凑算法用于替代MD5/SHA-1/SHA-2等国际算法,适用于数字签名和验证、消息认证码的生成与验证以及随机数的生成,可以满足电子认证服务系统等应用需求,于2010年12月17日发布。它是在SHA-256基础

vue普通加密以及国密SM2、SM3、sm4的使用

相关网址sm-crypto:https://www.npmjs.com/package/sm-crypto介绍1.SM2是非对称加密算法它是基于椭圆曲线密码的公钥密码算法标准,其秘钥长度256bit,包含数字签名、密钥交换和公钥加密,用于替换RSA/DH/ECDSA/ECDH等国际算法。可以满足电子认证服务系统等应用需求,由国家密码管理局于2010年12月17号发布。2.SM3是一种密码杂凑算法用于替代MD5/SHA-1/SHA-2等国际算法,适用于数字签名和验证、消息认证码的生成与验证以及随机数的生成,可以满足电子认证服务系统等应用需求,于2010年12月17日发布。它是在SHA-256基础

国密算法(SM2)java语言的实现:利用bcprov库来实现SM2算法,非对称算法

SM2算法简介随着密码技术和计算机技术的发展,目前常用的1024位RSA算法面临严重的安全威胁,我们国家密码管理部门经过研究,决定采用SM2椭圆曲线算法替换RSA算法。SM2是非对称加密算法;SM2是基于椭圆曲线密码的公钥密码算法标准;SM2是国密算法,用于替换RSA/DH/ECDSA/ECDH等国际算法;SM2算法由国家密码管理局于2010年12月17日发布;SM2推荐了一条256位的曲线作为标准曲线;SM2算法在很多方面都优于RSA算法;SM2性能更优更安全:密码复杂度高、处理速度快、机器性能消耗更小;SM2标准:SM2标准包括总则,数字签名算法,密钥交换协议,公钥加密算法四个部分。SM2