OpenSSL生成 SM2公私钥

OpenSSL生成 SM2公私钥

当前形势
  1. 国密局字[2011]50号“关于做好公钥密码算法升级工作的通知”, 要求新投入运行并使用公钥密码的信息系统,应使用SM2椭圆曲线密码算法,已投入运行并使用公钥密码的信息系统,应尽快进行系统升级,并使用SM2椭圆曲线密码算法。
  2. 由于现行大多国外CA场商的非国密数字证书。
  3. 国内各机构都在大力推行国密改造。
OpenSSL
  1. OpenSSL 软件 - 一个强大的、商业级的、功能齐全的工具包,用于通用加密和安全通信。
  2. 官网:https://www.openssl.org/
安装方式一(下载源码、手动编译安装、比较麻烦建议选择方式二)
  1. 下载时版本选择需要高于1.1.1才支持SM2国密
    OpenSSL生成 SM2公私钥_第1张图片

OpenSSL生成 SM2公私钥_第2张图片
OpenSSL生成 SM2公私钥_第3张图片
OpenSSL生成 SM2公私钥_第4张图片
OpenSSL生成 SM2公私钥_第5张图片
4. 具体手动安装过程参考:https://blog.csdn.net/zkz10086/article/details/81567509

安装方式二(推荐:比较方便,直接下载别人现在安装包)
  1. 下载地址,同理高于1.1.1版本才支持SM2国密
  2. http://slproweb.com/products/Win32OpenSSL.html
  3. https://pan.baidu.com/s/12yJiaCxQvQdu_cI7MBZVuw?pwd=dghe
    OpenSSL生成 SM2公私钥_第6张图片
  4. 根据电脑操作系统选择64位、32位下载安装,开发人员建议下载完整的
  5. 安装完成需要随处命令行使用,配置一下环境变更即可;不配置也行,直接在安装目录bin下打开命令行即可
    OpenSSL生成 SM2公私钥_第7张图片
  6. 查看命令是否生效
    OpenSSL生成 SM2公私钥_第8张图片
生成SM2公私钥
  1. 为了方便直接进入到WinOpenSSL安装目录bin下面,调出cmd命令窗:
    OpenSSL生成 SM2公私钥_第9张图片
  2. 进入openssl命令行:
openssl
  1. 打开Win64OpenSSL软件,首先生成私钥:
ecparam -genkey -name SM2 -out priv.key
  1. 通过私钥生成公钥:
ec -in priv.key -pubout -out pub.key
  1. 私钥为pkcs#1格式,若为JAVA对接需要转为pkcs#8格式:
pkcs8 -topk8 -inform PEM -in priv.key -outform pem -nocrypt -out pri_key_pkcs8.pem
  1. 最终使用文件:priv.key、pri_key_pkcs8.pem(私钥,自已保存好)、pub.key(公钥,交换给通讯对方)
    OpenSSL生成 SM2公私钥_第10张图片
签名验签(私钥签名、公钥验签)
  1. 验证我们生成出来的公私钥。私钥签名后的数据,公钥验签能够成功说明公私钥对匹配。
  2. 建立一个待签名的文件plain.txt
  3. 使用私钥对文件plain.txt进行签名(sm2_file.sign签名值,plain.txt待签名数据)
dgst -sign priv.key -sha1 -out sm2_file.sign plain.txt
  1. 使用公钥进行验证签名
dgst -verify pub.key -sha1 -signature sm2_file.sign plain.txt
  1. 验证通过
    OpenSSL生成 SM2公私钥_第11张图片

你可能感兴趣的:(笔记,安全,SM2,公私钥,国密,国密改造)