首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

详解国密SM2的数字签名

在《解读国密非对称加密算法SM2》一文中,我讲到过非对称加密算法的用途之一就是数字签名。本文就来聊一聊国密SM2的数字签名算法。...在前面的文章我说过,SM2实际上就是一种椭圆曲线(EC)密码算法,所以这里先详细说说标准的ECDSA算法,然后再说说SM2数字签名算法和ECDSA算法有哪些差别。...在现有的ECDSA算法基础上修改,增加对SM2签名算法的支持,相对比较容易,下面就说说SM2数字签名算法。...SM2数字签名算法 SM2数字签名算法在《GMT 0003.2-2012 SM2椭圆曲线公钥密码算法第2部分:数字签名算法》这份文档中有详细的描述。其中签名的流程为: ?...小结 本文主要阐述了SM2数字签名算法,它并不神秘,如果参考着ECDSA来实现,从技术角度讲并不是很复杂。

11.5K20

小程序安全键盘&SM2解密方式

小程序安全键盘&SM2解密方式 转载请著名出处:https://www.cnblogs.com/funnyzpc/p/17572445.html SM2基本信息 私钥(primary key) 6082011f17b21dab7da93f2dc1a739b530b969171c7116bebb0535a953e20bae.../developers.weixin.qq.com/miniprogram/dev/framework/open-ability/safe-password.html) 关键内容: 'V02_' + sm2...基本信息 先看看 SM2 Encrypt/Decrypt 格式选择里面有四种模式,其中C1C3C2是SM2的其中一种模式 ASN1是SM2的文本编码方式,事实上这些也是微信键盘所使用的编码加密方式...加密前也可能是加密后做的编码行为 3.基于[2]知道开发需要一套能实现SM2以及ASN1编码的功能的库 首先准备一个实现库,这里我用的是gmhelper(感谢 Lijun Liao ) // 用到的三方库...String dec_str = new String(decryptData, StandardCharsets.UTF_8); System.out.println("SM2

58241
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    解读国密非对称加密算法SM2

    因为我的数学知识有限,对于算法涉及的一些复杂的理论知识,也是不懂,所以本文不会涉及理论,仅仅从编程的角度解读一下SM2。...说到这儿,和国密SM2算法有什么关系? 国密SM2算法 SM2算法就是一种ECC算法,准确来说,就是设计了一条ECC命名曲线。这算抄袭么?...小结 本文从非对称密码算法开始,逐步介绍到国密SM2算法。我们可以看到,SM2并不是一个全新设计的算法,而是借助现有的ECC理论,设计了一条命名曲线。...这样,在已经实现了ECC算法的网络库上增加SM2算法的支持就非常简单,只需要将曲线参数添加即可。 但这是否就已经完全实现了SM2算法呢?...也不是,因为SM2算法不仅用在加解密,还用在数字签名、密钥协商中,国密标准另外定义了数字签名算法、密钥交换协议、公钥加密算法,所以要把这些都实现完整,才算实现完全了国密SM2算法。

    5.2K20

    详解国密SM2的加密和解密

    在上一篇文章《解读国密非对称加密算法SM2》介绍了国密非对称算法SM2,在文章中说到,如果现有的网络库中已经实现ECC算法,只需加入SM2命名曲线的参数即可。...但在实现ECC_SM4_SM3这个密码套件中,在密钥交换过程中,存在客户端将Pre-Master Secret使用 SM2 公钥加密后传给服务器端的步骤。所以我们需要实现 SM2 的加密和解密。...如何使用 SM2 算法进行加密和解密,可以参考的资料是《GMT 0003.4-2012 SM2椭圆曲线公钥密码算法第4部分:公钥加密算法》。...如果我们内部使用,当然可以根据它们各自的长度(对于指定SM2曲线和SM3哈希算法,x1, y1, C3的长度是固定的)来拆分,但这样不够灵活,万一换了命名曲线或哈希算法呢?...在ECC_SM4_SM3密码套件中,SM2用于密钥交换(客户端生成Pre-Master Secret,加密后传输给服务器端)。当然,如果在程序中直接使用SM2加密信用卡卡号之类的小数据也是可以的。

    5.8K40

    从零玩转前后端加解密之SM2

    前言SM2是国家密码管理局于2010年12月17日发布的椭圆曲线公钥密码算法。SM2算法和RSA算法都是公钥密码算法,SM2算法是一种更先进安全的算法,在我们国家商用密码体系中被用来替换RSA算法。...随着密码技术和计算机技术的发展,目前常用的1024位RSA算法面临严重的安全威胁,我们国家密码管理部门经过研究,决定采用SM2椭圆曲线算法替换RSA算法。...SM2算法和RSA算法比较SM2性能更优更安全:密码复杂度高、处理速度快、机器性能消耗更小详细参考: https://www.ecaa.org.cn/667.htmlSM2...解密加密速度较快 一般 加密长度限制无 117 后端代码实现添加 sm2...https://github.com/JuneAndGreen/sm-crypto#readme前端代码实现 - vue安装依赖npm install --save sm-crypto 获取密钥对const sm2

    96040

    SM2 (含SM3、SM4)国密算法工具QT版,彻底搞懂sm2算法的使用

    网上有很多网友问算法SM2怎么使用?什么是压缩公钥和非压缩公钥?xB和yB这参数是什么?怎么使用SM2做加解密?如何签名和验签?有没有工具来验证下?...用来对SM2国密算法做加解密和签名,验签,秘钥生成再合适不过了。 需要工具的和使用上的疑问的都可以在留言区留言和评论,工具免费提供。也可以在个人的csdn资源中下载。...完整版的下载: sm2国密算法工具完整版,包含sm2,sm3和sm4-QT文档类资源-CSDN下载 工具源码的下载: sm2国密算法加解密、签名、验签QT工具源码(包含sm2,sm3和sm4源代码)-C...查阅《GMT 0003-2012》这份标准文档,有SM2算法的设计背景知识供解读。...SM2算法是ECC算法的一种,相当于是设计了一条ECC命名曲线。 为什么要大力推广国密算法,当然是因为安全了。

    1.6K10

    SM 国密算法踩坑指南

    SM2算法 SM2 国密算法是一种非对称加密算法,基于 ECC(椭圆加密算法), SM2 算法对标我们常用的国际算法 RSA。 但是 SM2 算法由于基于 ECC,签名速度与秘钥速度都快于 RSA。...SM2 私钥:B17EACC0BB629AB92C591287F2FA4589D10CD1E13BD4BDFDC9589A940F937C7C SM2 公钥,SM2 椭圆曲线上的一个点,由横坐标与纵坐标两个分量构成...SM2 数字签名算法 SM2 签名算法还是比较复杂,这里只截取数字签名的生成、验证算法原理。...详细文档可以搜索:『GB/T32918.2—2016 信息安全技术 SM2椭圆曲线公钥 密码算法 第2部分:数字签名算法』 sm2 加签 数字签名生成算法,即加签流程: 加签流程图如下: sm2 验签...sm2 加密算法 SM2解密算法 SM2 加密数据 SM2 加密数据将会产生三个值: C1 为随机产生的公钥 C2 为密文,与明文长度等长 C3 为 SM3 算法对明文数计算得到消息摘要

    6.9K22

    python实现sm2和sm4国密(国家商用密码)算法

    GMSSL模块介绍 GmSSL是一个开源的加密包的python实现,支持SM2/SM3/SM4等国密(国家商用密码)算法、项目采用对商业应用友好的类BSD开源许可证,开源且可以用于闭源的商业应用。...安装模块 pip install gmssl #https://github.com/duanhongyi/gmssl/blob/master/README.md官方文档 SM2算法 RSA算法的危机在于其存在亚指数算法...,对ECC算法而言一般没有亚指数攻击算法 SM2椭圆曲线公钥密码算法:我国自主知识产权的商用密码算法,是ECC(Elliptic Curve Cryptosystem)算法的一种,基于椭圆曲线离散对数问题...gmssl是包含国密SM2算法的Python实现, 提供了 encrypt、 decrypt等函数用于加密解密, 用法如下: 1....初始化CryptSM2 import base64 import binascii from gmssl import sm2, func #16进制的公钥和私钥 private_key = '00B9AB0B828FF68872F21A837FC303668428DEA11DCD1B24429D0C99E24EED83D5

    6.6K20

    区块链密码基础之签名算法(一)

    4.4 国密SM2替代 SM2是国家密码管理局于2010年12月17日发布的椭圆曲线公钥密码算法,其中包含5个部分,总则、数字签名算法、密钥交换协议、公钥加密算法、参数定义。...4.4.1 SM2的参数选择 SM2选择的曲线方程和参数如下: 4.4.2 SM2签名算法 使用上面SM2椭圆曲线公钥密码算法推荐参数,提出了SM2签名算法可满足多种密码应用中的身份鉴别和数据完整性...SM2签名算法具体如下 图6 Bob以“同或门”为例对混淆电路进行解密 4.4.3 SM2和ECDSA的应用于区块链的比较 SM2和ECDSA都是使用椭圆曲线的签名算法,其思想来源都是来自于DSA,...但是由于算法的设计不同,其特性还是有一些差异,下面对ECDSA和SM2进行比较。...数字签名增加了合理性检查,检查r+k是否等于n SM2数字签名的s具有线性关系,可以构造特殊需求的签名 综合以上分析SM2签名算法与ECDSA算法相比较,虽然安全性在同一个级别上,但是SM2算法具有更好的合理性检查提高了安全性

    1.8K10

    PKI - 一文读懂SM1、SM2、SM3、SM4等国密算法

    目前我国主要使用公开的SM2、SM3、SM4作为商用密码算法。...SM2算法与RSA算法不同的是,SM2算法是基于椭圆曲线上点群离散对数难题,相对于RSA算法,256位的SM2密码强度已经比2048位的RSA密码强度要高,但运算速度快于RSA。...以下是对SM2、SM3和SM4算法安全性的进一步分析: SM2算法的安全性 SM2算法是一个基于椭圆曲线的公钥密码算法,其安全性主要依赖于椭圆曲线离散对数问题的难度。...非对称加密SM2 使用随机生成的密钥对加密或解密 String text = "我是一段测试aaaa"; SM2 sm2 = SmUtil.sm2(); // 公钥加密,私钥解密 String encryptStr..."; KeyPair pair = SecureUtil.generateKeyPair("SM2"); final SM2 sm2 = new SM2(pair.getPrivate(), pair.getPublic

    9K10

    【密码学(3)】-国密系列1-SM2

    SM2算法概念 SM2算法和RSA算法都是公钥密码算法,SM2算法是一种更先进安全的算法,在我们国家商用密码体系中被用来替换RSA算法。 SM2为非对称加密,基于ECC。该算法已公开。...ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度快于RSA。...SM2原理 (1)曲线参数 SM2标准推荐使用256位素域Fp上的椭圆曲线y2=x3 + ax + b,其中: (2)密钥生成算法 Alice选择随机数dA做为私钥,其中0 Alice计算公钥PA=dA...此外,若要不断提高安全强度,则必须增加密钥长度,SM2算法密钥长度增长速度较慢(例如:224-256-384),而RSA算法密钥长度则需呈倍数增长(例如:1024-2048-4096),这使得SM2算法的安全性能表现更佳...256位的 SM2 算法相对于2048位的RSA 算法可以传输更少的数据,也就意味着更少的传输时间。

    1.1K40

    国密算法介绍

    2010年底,国家密码管理局公布了我国自主研制的“椭圆曲线公钥密码算法”(SM2算法)。...这里分享一下一个支持国密SM2/SM3/SM4/SM9/ZUC/SSL的密码工具箱 GmSSL(点击跳转到官网)。...)算法、SM2国密数字证书及基于SM2证书的SSL/TLS安全通信协议,支持国密硬件密码设备,提供符合国密规范的编程接口与命令行工具,可以用于构建PKI/CA、安全通信、数据加密等符合国密标准的安全应用...ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度快于RSA。...SM2算法与RSA算法不同的是,SM2算法是基于椭圆曲线上点群离散对数难题,相对于RSA算法,256位的SM2密码强度已经比2048位的RSA密码强度要高。

    2.1K30
    领券