openssl生成SM2公私钥对命令详解

这篇具有很好参考价值的文章主要介绍了openssl生成SM2公私钥对命令详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        (1)获得openssl支持椭圆曲线算法列表

        命令:openssl ecparam -list_curves
        返回结果:
  secp112r1 : SECG/WTLS curve over a 112 bit prime field
  secp112r2 : SECG curve over a 112 bit prime field
  secp128r1 : SECG curve over a 128 bit prime field
  secp128r2 : SECG curve over a 128 bit prime field
  secp160k1 : SECG curve over a 160 bit prime field
  secp160r1 : SECG curve over a 160 bit prime field
  secp160r2 : SECG/WTLS curve over a 160 bit prime field
  secp192k1 : SECG curve over a 192 bit prime field
  secp224k1 : SECG curve over a 224 bit prime field
  secp224r1 : NIST/SECG curve over a 224 bit prime field
  secp256k1 : SECG curve over a 256 bit prime field
  secp384r1 : NIST/SECG curve over a 384 bit prime field
  secp521r1 : NIST/SECG curve over a 521 bit prime field
  prime192v1: NIST/X9.62/SECG curve over a 192 bit prime field
  prime192v2: X9.62 curve over a 192 bit prime field
  prime192v3: X9.62 curve over a 192 bit prime field
  prime239v1: X9.62 curve over a 239 bit prime field
  prime239v2: X9.62 curve over a 239 bit prime field
  prime239v3: X9.62 curve over a 239 bit prime field
  prime256v1: X9.62/SECG curve over a 256 bit prime field
  sect113r1 : SECG curve over a 113 bit binary field
  sect113r2 : SECG curve over a 113 bit binary field
  sect131r1 : SECG/WTLS curve over a 131 bit binary field
  sect131r2 : SECG curve over a 131 bit binary field
  sect163k1 : NIST/SECG/WTLS curve over a 163 bit binary field
  sect163r1 : SECG curve over a 163 bit binary field
  sect163r2 : NIST/SECG curve over a 163 bit binary field
  sect193r1 : SECG curve over a 193 bit binary field
  sect193r2 : SECG curve over a 193 bit binary field
  sect233k1 : NIST/SECG/WTLS curve over a 233 bit binary field
  sect233r1 : NIST/SECG/WTLS curve over a 233 bit binary field
  sect239k1 : SECG curve over a 239 bit binary field
  sect283k1 : NIST/SECG curve over a 283 bit binary field
  sect283r1 : NIST/SECG curve over a 283 bit binary field
  sect409k1 : NIST/SECG curve over a 409 bit binary field
  sect409r1 : NIST/SECG curve over a 409 bit binary field
  sect571k1 : NIST/SECG curve over a 571 bit binary field
  sect571r1 : NIST/SECG curve over a 571 bit binary field
  c2pnb163v1: X9.62 curve over a 163 bit binary field
  c2pnb163v2: X9.62 curve over a 163 bit binary field
  c2pnb163v3: X9.62 curve over a 163 bit binary field
  c2pnb176v1: X9.62 curve over a 176 bit binary field
  c2tnb191v1: X9.62 curve over a 191 bit binary field
  c2tnb191v2: X9.62 curve over a 191 bit binary field
  c2tnb191v3: X9.62 curve over a 191 bit binary field
  c2pnb208w1: X9.62 curve over a 208 bit binary field
  c2tnb239v1: X9.62 curve over a 239 bit binary field
  c2tnb239v2: X9.62 curve over a 239 bit binary field
  c2tnb239v3: X9.62 curve over a 239 bit binary field
  c2pnb272w1: X9.62 curve over a 272 bit binary field
  c2pnb304w1: X9.62 curve over a 304 bit binary field
  c2tnb359v1: X9.62 curve over a 359 bit binary field
  c2pnb368w1: X9.62 curve over a 368 bit binary field
  c2tnb431r1: X9.62 curve over a 431 bit binary field
  wap-wsg-idm-ecid-wtls1: WTLS curve over a 113 bit binary field
  wap-wsg-idm-ecid-wtls3: NIST/SECG/WTLS curve over a 163 bit binary field
  wap-wsg-idm-ecid-wtls4: SECG curve over a 113 bit binary field
  wap-wsg-idm-ecid-wtls5: X9.62 curve over a 163 bit binary field
  wap-wsg-idm-ecid-wtls6: SECG/WTLS curve over a 112 bit prime field
  wap-wsg-idm-ecid-wtls7: SECG/WTLS curve over a 160 bit prime field
  wap-wsg-idm-ecid-wtls8: WTLS curve over a 112 bit prime field
  wap-wsg-idm-ecid-wtls9: WTLS curve over a 160 bit prime field
  wap-wsg-idm-ecid-wtls10: NIST/SECG/WTLS curve over a 233 bit binary field
  wap-wsg-idm-ecid-wtls11: NIST/SECG/WTLS curve over a 233 bit binary field
  wap-wsg-idm-ecid-wtls12: WTLS curve over a 224 bit prime field
  Oakley-EC2N-3:
        IPSec/IKE/Oakley curve #3 over a 155 bit binary field.
        Not suitable for ECDSA.
        Questionable extension field!
  Oakley-EC2N-4:
        IPSec/IKE/Oakley curve #4 over a 185 bit binary field.
        Not suitable for ECDSA.
        Questionable extension field!
  brainpoolP160r1: RFC 5639 curve over a 160 bit prime field
  brainpoolP160t1: RFC 5639 curve over a 160 bit prime field
  brainpoolP192r1: RFC 5639 curve over a 192 bit prime field
  brainpoolP192t1: RFC 5639 curve over a 192 bit prime field
  brainpoolP224r1: RFC 5639 curve over a 224 bit prime field
  brainpoolP224t1: RFC 5639 curve over a 224 bit prime field
  brainpoolP256r1: RFC 5639 curve over a 256 bit prime field
  brainpoolP256t1: RFC 5639 curve over a 256 bit prime field
  brainpoolP320r1: RFC 5639 curve over a 320 bit prime field
  brainpoolP320t1: RFC 5639 curve over a 320 bit prime field
  brainpoolP384r1: RFC 5639 curve over a 384 bit prime field
  brainpoolP384t1: RFC 5639 curve over a 384 bit prime field
  brainpoolP512r1: RFC 5639 curve over a 512 bit prime field
  brainpoolP512t1: RFC 5639 curve over a 512 bit prime field
  SM2       : SM2 curve over a 256 bit prime field
  --------------------
          可以看到最后一行表明当前版本openssl支持SM2,实际上openssl从1.1.1版本开始支持SM2算法。

        (2)生成SM2私钥文件
          命令:openssl ecparam -outform pem -out sm2PriKey.pem -name sm2 -genkey
          返回结果:
-----BEGIN PRIVATE KEY-----
MIGIAgEAMBQGCCqBHM9VAYItBggqgRzPVQGCLQRtMGsCAQEEII4ojT2hPeJ7lPRw
Yio6nrMgG+8uobZe3C6P1WIFJU4joUQDQgAEmzNGkBbTRx/2EhpYSt6WJq3qYGk7
zQSKQWDbNPsBU39j07Kzn3QBYpIa9E50VTSnFxsaUxWbZikEuLWg66xqBQ==
-----END PRIVATE KEY-----

        (3)查看私钥文件
          命令:openssl ec -in sm2PriKey.pem -text
          返回结果:
read EC key
Private-Key: (256 bit)
priv:
    8e:28:8d:3d:a1:3d:e2:7b:94:f4:70:62:2a:3a:9e:
    b3:20:1b:ef:2e:a1:b6:5e:dc:2e:8f:d5:62:05:25:
    4e:23
pub:
    04:9b:33:46:90:16:d3:47:1f:f6:12:1a:58:4a:de:
    96:26:ad:ea:60:69:3b:cd:04:8a:41:60:db:34:fb:
    01:53:7f:63:d3:b2:b3:9f:74:01:62:92:1a:f4:4e:
    74:55:34:a7:17:1b:1a:53:15:9b:66:29:04:b8:b5:
    a0:eb:ac:6a:05
ASN1 OID: SM2
writing EC key
-----BEGIN SM2 PRIVATE KEY-----
MHcCAQEEII4ojT2hPeJ7lPRwYio6nrMgG+8uobZe3C6P1WIFJU4joAoGCCqBHM9V
AYItoUQDQgAEmzNGkBbTRx/2EhpYSt6WJq3qYGk7zQSKQWDbNPsBU39j07Kzn3QB
YpIa9E50VTSnFxsaUxWbZikEuLWg66xqBQ==
-----END SM2 PRIVATE KEY-----

        这里私钥文件中包含公钥及私钥具体信息,可以看到私钥为8E28......4E23共32字节长度,公钥为9B33......6A05共64字节。

        (4)生成SM2 公钥文件
          命令:openssl ec -in sm2PriKey.pem -pubout -out sm2PubKey.pem
          返回结果:
read EC key
writing EC key
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEmxmSy4HOD2d2sakaJTw0QFhRGZs2
5umcKzmg12FAsYNjVRmtLxcbydzTMELGKpHHle//IZ0Eqx7P15IKiyoK/g==
-----END PUBLIC KEY-----

        (5)使用ASN1dump工具查看密钥具体编码

        私钥编码如下图,OID为1.2.156.10197.1.301也就是SM2算法。这里可能需要注意,在有些工具中无法正常处理06082A811CCF5501822D06082A811CCF5501822D的算法标识,而应该是接受06072A8648CE3D020106082A811CCF5501822D的公私钥算法标识。现在的办法是手工修改下,确保能够使用。

sm2公私钥生成工具,# 密评实践,# 密码应用安全性评估,# 国密标准,安全,信息安全工程师

sm2公私钥生成工具,# 密评实践,# 密码应用安全性评估,# 国密标准,安全,信息安全工程师文章来源地址https://www.toymoban.com/news/detail-755206.html

到了这里,关于openssl生成SM2公私钥对命令详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenSSL 3.1.1 ECC 加密、解密、签名、验签(国密 sm2、sm3)

    openssl 3 默认废弃了 旧版本 (opessl 1.x) 的部分api 导致部分旧ecc 代码无法使用(可以通过配置编译选项打开) ,这里展示如何使用新接口用ECC 进行加密解密。 新接口是真的方便,基本上你都不需要懂啥密码学知识,对我们这种密码白痴来说太好了 头文件 生成密钥对 导出公

    2024年02月05日
    浏览(33)
  • 国密GmSSL v2版本命令行方式生成国密sm2私钥、公钥、签名和验证签名

    GmSSL是国密算法的工具库(主要包含SM2、SM3、SM4和国密SSL证书生成等功能),项目本身是OpenSSL的分支,但是截至文章发布为止,OpenSSL主分支的国密算法并不完善,目前并不支持签名和解签,所以国密算法这块还是需要使用GmSSL工具库。 网上现在并没有v2版本的GmSSL可用的命令

    2024年02月09日
    浏览(33)
  • openssl+ SM2 + linux 签名开发实例(C++)

    SM2是中国国家密码管理局发布的椭圆曲线密码算法标准,用于数字签名、密钥交换和公钥加密等安全通信场景。以下是SM2签名的理论基础相关知识点: 椭圆曲线密码学(Elliptic Curve Cryptography,ECC): SM2基于椭圆曲线密码学,该密码学利用椭圆曲线上的数学运算实现加密和签

    2024年02月04日
    浏览(27)
  • C++调用openssl实现国标sm2签名算法的使用

    SM2算法基于ECC椭圆曲线算法,广泛用于区块链、HTTPS 等需要非对称加密的场景。是基于椭圆曲线数学理论实现的一种非对称加密算法。相比RSA,ECC优势是可以使用更短的密钥,来实现与RSA相当或更高的安全。 下面链接可以了解一些关于SM2的基础知识。 椭圆曲线加密算法(E

    2024年01月24日
    浏览(25)
  • openssl+ SM2 + linux 签名校验开发实例(C++)

    SM2的校验过程是使用椭圆曲线上的公钥验证签名的有效性。以下是SM2校验的理论基础相关知识点: SM2签名算法: SM2的校验基于椭圆曲线数字签名算法(ECDSA)。在签名算法中,签名者使用私钥对消息的哈希值进行签名,而验证者使用相应的公钥、签名值和消息的哈希值进行验

    2024年01月22日
    浏览(34)
  • 基于openssl国密算法SM2搭建CA及颁发证书

    一、环境说明: 1.操作系统:CentOS 7.9 2.openssl : OpenSSL 1.1.1q  5 Jul 2022 二、搭建私有CA 1. 创建CA目录,在目录下创建相关目录如下: 在CA下生成证书索引库文件: 指定颁发第一个证书的序列号: 2. 生成SM2私钥 生成证书: 3.ca自签名证书生成完毕。将该证书后缀改为crt,导入到

    2024年02月12日
    浏览(31)
  • openssl SM2(ECC)自签服务端和客户端证书

    参考文章:https://www.golinuxcloud.com/openssl-generate-ecc-certificate/#5_Create_CA_certificate_with_ECC_Key (228条消息) openssl 制作SM2多级证书链_酷ying的博客-CSDN博客_openssl sm2 sm3 csr 1、在当前目录创建存储证书文件夹,配置openssl.cnf所需要的文件,将openssl.cnf文件放到当前目录(编译openssl源码包会

    2024年02月11日
    浏览(26)
  • 国密算法SM2 密钥对的生成

            椭圆曲线密码编码学(ECC)是一种理论性很强的学科。后来随着计算科学和密码学的发展,被应用到了公钥密码体制这个领域中。椭圆曲线密码体制最早是由Kobiliz和Millr于185年提出的,是迄今为止安全性最高的一种算法,它的安全性是基于有限域椭圆曲线离散对数(Elipt

    2023年04月08日
    浏览(24)
  • java生成sm2使用hutool生成公钥私钥

    首先引入maven依赖 然后运行以下代码 就可以得到私钥和公钥 公钥提供给通讯方验签 下面是签名的代码 验签代码 加密 解密 好了,以上就是sm2util的使用介绍了,hutool还有很多强大的工具类,方便程序员们的调用

    2024年02月10日
    浏览(27)
  • 国密:生成SM2秘钥、加解密及加验签

    国密改造已经持续了很长时间了,相信很多从事金融科技类的程序猿都遇到过这个需求。这篇文章就为大家带来笔者对于国密改造的一些经验,主要是代码层面,有兴趣的同学可以研究下国密的算法模型! 注:本文所用到的工具类并非笔者所写! 目录 一、国密简述 二、依赖

    2024年02月03日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包