谈谈PBOC3.0中使用的国密SM2算法】的更多相关文章

转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/39780825 作者:小马 一 知识准备 SM2是国密局推出的一种他们自己说具有自主知识产权的非对称商用password算法.本身是基于ECC椭圆曲线算法的.所以要讲sm2, 先要弄懂ECC. 全然理解ECC算法须要一定的数学功底.由于涉及到射影平面坐标系,齐次方程求解, 曲线的运算规则等概念. 这里不做过多的数学分析(主要是我自己也没有全然整明确). 想要深入了解ECC的我推荐网…
首先说明用Java自带的解析x509证书类,是不能解析sm2算法的证书,执行会抛出异常. 用开源库bouncycastle能够解析.详细代码 private byte[] getCSPK(byte[] csCert)     {         InputStream inStream = new ByteArrayInputStream(csCert);         ASN1Sequence seq = null;         ASN1InputStream aIn;        …
密信浏览器( MeSince Browser )是基于Chromium开源项目开发的国密安全浏览器,支持国密算法和国密SSL证书,同时也支持国际算法及全球信任SSL证书:密信浏览器使用界面清新,干净.简洁.无广告,提供简洁.快速的浏览体验,满足国密安全合规需求.目前,密信浏览器支持Windows 32位和64位系统,未来将逐步推出Linux.Mac及移动端版本. 密信浏览器的主要特性 1.兼容国密标准和国际标准密信浏览器遵循国家标准<GM/T 0024-2014: SSL VPN技术规范>,支…
先参考这篇文章 Linux实现树莓派3B的国密SM9算法交叉编译——(二)miracl库的测试与静态库的生成 进行miracl库的交叉编译测试,并生成miracl静态链接库. 这篇文章主要介绍基于miracl静态链接库实现国密SM9算法,并进一步生成国密SM9算法的动态链接库,以实现python调用国密SM9算法. 一.国密SM9算法介绍 标识密码算法SM9(IBC)实现,包括密钥生成.签名验签.密钥交换和加解密等SM9标准中提到的所有功能.该实现基于 Miracl密码库 采用C语言编写,可支持…
先参考这篇文章 Linux实现树莓派3B的国密SM9算法交叉编译——(一)环境部署.简单测试与eclipse工程项目测试 部署好环境,并简单测试交叉编译环境是否安装成功,最后实现在Eclipse上进行交叉编译. 这篇文章主要介绍在Eclipse上进行miracl的交叉编译测试与生成miracl静态库,方便后续实现国密SM9算法. 一.MIRACL库介绍 MIRACL(Multiprecision Integer and RationalArithmetic C/c++ Library)是一套由S…
转:https://blog.csdn.net/xuq09/article/details/91815366 The GmSSL Project网址:http://gmssl.org/docs/quickstart.html 在网上闲逛时发现一个工具.SSL支持国密算法.看着比较高大上.还没有用呢.记下来.备用. 快速上手指南介绍GmSSL的编译.安装和gmssl命令行工具的基本指令. 下载源代码(zip),解压缩至当前工作目录 $ unzip GmSSL-master.zip 编译与安装 Li…
摘要:本文不对SM2做过多的介绍,主要介绍java bouncycastle库关于SM2的相关API的使用及注意事项 1. SM2 签名: 注意: 1)签名格式ASN1(描述了一种对数据进行表示.编码.传输和解码的数据格式),包括两个大整数. 2)注意USER_ID的一致性(规范默认是"1234567812345678"),否则影响验签. 主要代码 SM2Signer localSM2Signer = new SM2Signer(); Security.addProvider(new…
公用类算法: PCIKeyPair.java /** * @Author: dzy * @Date: 2018/9/27 14:18 * @Describe: 公私钥对 */ @Data @AllArgsConstructor @NoArgsConstructor public class PCIKeyPair { private String priKey; //私钥 private String pubKey; //公钥 } CommonUtils.java import org.apach…
什么是sm3,是一种类似于sha256的哈希算法,是咱们国家的哈希标准算法: 最近在使用sm3算法时,同样的一份数据,调用同样的sm3接口,发现得到的结果是不一样的: 那么在应用过的过程中,如果同样的算法出的结果不一样,那验证签名业务就会不过,出问题: 最后发现是sm3算法在内部使用了unsigned long, 这里要注意 long, 在 windows64平台下占用4个字节 : 而long, 在linux64平台下占用8个字节: 这种差异直接导致了windows和linux结果的差异: 原s…
首先参考 Linux下编译并使用miracl密码库 该博文在linux下编译Miracl库. 编译完了,自然是要用的,下面介绍两种在C程序中使用miracl库的方法. 方法一: 1. 源码编译完后的必需的文件是两个头文件miracl.h和mirdef.h以及编译后的静态函数库miracl.a,需要在自己写的C程序中使用. 2. 输入如下代码,命名为main.c mkdir miracl-test cd miracl-test nano main.c #include "miracl.h"…