一.注意要点 1:输入字符串的的编码双方保持统一,如:UTF8: 2:HASH计算输出结果 byte[] 数组转String 时,编码要统一,如:转16进制小写字符串.当然也可以转Base64. 3:如果是16进制字符串,双方大小写要统一. 二.C# 先看一个常见代码: public static String Md5Hash(String str) { MD5 md = MD5.Create(); byte[] bytes = Encoding.UTF8.GetBytes(str); byte…
OpenSSL 1.1.1 国密算法支持 https://www.openssl.org/ https://github.com/openssl/openssl OpenSSL 1.1.1 新特性: 开始支持国密SM2/SM3/SM4加密算法(仅支持算法,未支持国密套件) 参考英文博客: https://www.openssl.org/blog/blog/2018/09/11/release111/ OpenSSL项目最近6个月添加了许多新特性, 包括对中国SM2/SM3/SM4算法的支持: S…
原文地址:科普一下SM系列国密算法(从零开始学区块链 189) 众所周知,为了保障商用密码的安全性,国家商用密码管理办公室制定了一系列密码标准,包括SM1(SCB2).SM2.SM3.SM4.SM7.SM9.祖冲之密码算法(ZUC)那等等.其中SM1.SM4.SM7.祖冲之密码(ZUC)是对称算法:SM2.SM9是非对称算法:SM3是哈希算法.目前,这些算法已广泛应用于各个领域中,期待有一天会有采用国密算法的区块链应用出现.其中SM1.SM7算法不公开,调用该算法时,需要通过加密芯片的接口进行调…
通常我们遇到过的X509证书都是基于RSA-SHA1算法的,目前国家在大力推行国密算法,未来银行发行的IC卡也都是基于PBOC3.0支持国密算法的,因此我们来学习一下如何验证SM2国密证书的合法性.至于SM2与SM3的算法实现不在本文讨论范围之内,可以用openssl.BouncyCastle.Crypto.dll等第三方库来实现. SM2国密证书与RSA证书一样,一般内容都是以BASE64格式编码的,以网上下载的一个自签名证书为例: MIIB5jCCAZECAQAwVDELMAkGA1UEBh…
国密SM4对称算法实现说明(原SMS4无线局域网算法标准) SM4分组密码算法,原名SMS4,国家密码管理局于2012年3月21日发布:http://www.oscca.gov.cn/News/201204/News_1228.htm ,但不能下载标准文档. SM4为对称算法,密钥长度和分组长度均为128位.按原SMS4的标准描述:加密算法与密钥扩展算法都采用32轮非线性迭代结构.解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序. 该算法网上的C语言实现如下:…
摘要:本文不对SM2做过多的介绍,主要介绍java bouncycastle库关于SM2的相关API的使用及注意事项 1. SM2 签名: 注意: 1)签名格式ASN1(描述了一种对数据进行表示.编码.传输和解码的数据格式),包括两个大整数. 2)注意USER_ID的一致性(规范默认是"1234567812345678"),否则影响验签. 主要代码 SM2Signer localSM2Signer = new SM2Signer(); Security.addProvider(new…
转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/39780825 作者:小马 一 知识准备 SM2是国密局推出的一种他们自己说具有自主知识产权的非对称商用password算法.本身是基于ECC椭圆曲线算法的.所以要讲sm2, 先要弄懂ECC. 全然理解ECC算法须要一定的数学功底.由于涉及到射影平面坐标系,齐次方程求解, 曲线的运算规则等概念. 这里不做过多的数学分析(主要是我自己也没有全然整明确). 想要深入了解ECC的我推荐网…
Talk is cheap, show me your code. 代码也看了,蛋也扯了,之后总该做点什么.响应国家政策,把我们的国密算法融合进去吧--  先附两张bccsp下国密算法的设计实现图. 一 国密算法软实现,将sm2内嵌到sw中 二 国密算法硬件实现,通过pkcs11的方式调用支持国密算法的加密机或者加密卡 这两种实现方式的具体设计可以去hyperledger的jira上查找,都是FAB-5496的子任务. 这两种方式各有优缺点,硬件实现上来说密钥可能更加安全可控,效率上也会高一点,…
比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom 国密算法是指国家密码管理局制定的自主可控的国产算法,包括一系列密码学算法:SM1.SM2.SM3.SM4.SM7.SM9.以及祖冲之算法.最常用的三种商用密码算法是 SM2椭圆曲线公钥密码算法.SM3密码杂凑算法以及 SM4分组密码算法. 其中,SM2 算法属于椭圆曲线公钥密码系统,相较于 RSA 公钥密码…
国密即国家密码局认定的国产密码算法.主要有SM1,SM2,SM3,SM4.密钥长度和分组长度均为128位. SM1 为对称加密.其加密强度与AES相当.该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用. SM2为非对称加密,基于ECC.该算法已公开.由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA.ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度快于RSA. SM3 消息摘要.可以用MD5作为对比理解.该算法已公开.校验结…