首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    详解国密SM2的数字签名

    在《解读国密非对称加密算法SM2》一文,我讲到过非对称加密算法的用途之一就是数字签名。本文就来聊一聊国密SM2的数字签名算法。...在《解读国密非对称加密算法SM2》一文,我们已经知道,对于椭圆曲线密码算法而言,最重要的是选择一条命名曲线,包括几个重要的参数:p、a、b、G(x,y)和n。...在《详解国密SM2的加密和解密》一文,我们已经谈过密钥对的生成,这里再重复一下: 选择一个随机数作为私钥d, 1 < d < n -1 基于私钥生成公钥,P(x, y) = d * G(x, y) 签名生成...虽然SM2数字签名算法的计算步骤有所差别,但ECDSA的基本运算,比如大数的加减乘除、曲线的乘积、取模运算都可以重用,所以实现起来也不是很困难。 验证签名的流程: ? ?...在开发SM2数字签名算法时,我们可以参考附录A的示例,保证每个步骤的数据能对上,这样最终的结果就不会出错。

    11.5K20

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

    基本信息 先看看 SM2 Encrypt/Decrypt 格式选择里面有四种模式,其中C1C3C2是SM2的其中一种模式 ASN1是SM2的文本编码方式,事实上这些也是微信键盘所使用的编码加密方式...私钥解密 上面我们通过工具及自定义编码方式得到了最后的密文 这个密文怎么解 需要先理一下思路: 1.由于明文在加密的过程做了HEX,所以肯定涉及到解16进制编码 2.由于ASN1是一种文本编码方式,...这个东东可能是是在SM2加密前也可能是加密后做的编码行为 3.基于[2]知道开发需要一套能实现SM2以及ASN1编码的功能的库 首先准备一个实现库,这里我用的是gmhelper(感谢 Lijun Liao...; import java.security.cert.Certificate; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate...; import java.security.cert.Certificate; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate

    58741

    详解国密SM2的加密和解密

    在上一篇文章《解读国密非对称加密算法SM2》介绍了国密非对称算法SM2,在文章说到,如果现有的网络库已经实现ECC算法,只需加入SM2命名曲线的参数即可。...但在实现ECC_SM4_SM3这个密码套件,在密钥交换过程,存在客户端将Pre-Master Secret使用 SM2 公钥加密后传给服务器端的步骤。所以我们需要实现 SM2 的加密和解密。...如何使用 SM2 算法进行加密和解密,可以参考的资料是《GMT 0003.4-2012 SM2椭圆曲线公钥密码算法第4部分:公钥加密算法》。...我在本地实现了SM2的加密和解密,使用 《GMT 0003.4-2012》文档附录的数据进行测试,也都通过,但在与第三方服务器端对接时,总是解密失败,后来才发现是因为这个原因。...在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...https://github.com/JuneAndGreen/sm-crypto#readme前端代码实现 - vue安装依赖npm install --save sm-crypto 获取密钥对const sm2...generateKeyPairHex(256, SecureRandom)let verifyResult = sm2.verifyPublicKey(publicKey) // 验证公钥加密解密// 这里使用Java

    96440

    sm2和sm4加密算法浅析

    sm2和sm4加密算法浅析 一: SM2 简介:SM2是国家密码管理局于2010年12月17日发布的椭圆曲线公钥密码算法 ,SM2为非对称加密,基于ECC。该算法已公开。...SM2和RSA算法比较 SM2性能更优更安全:密码复杂度高、处理速度快、机器性能消耗更小 ①:加密算法以及流程: 输入:需要发送的消息为比特串M,klen为M的比特长度。...y2) 8.输出密文C = C1 ∥ C2 ∥ C3 加密算法流程: ②:解密算法以及流程 klen为密文中C2的比特长度,对密文C=C1 ∥ C2 ∥ C3 进行解密,需要实现以下步骤 1.从C取出比特串...C1=(x2,y2),按本文本第1部分4.2.5和4.2.4给出的细节,将坐标x2、y2的数据类型转 换为比特串 4.计算t=KDF(x2 ∥y2, klen),若t为全0比特串,则报错并退出 5.从C取出比特串...C2,计算M′ = C2 ⊕t 6.计算u = Hash(x2 ∥ M′ ∥ y2),从C取出比特串C3,若u ̸= C3,则报错并退出 7.输出明文M′ 解密算法流程: ③:SM2椭圆曲线公钥密码算法推荐曲线参数

    1.2K20

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

    说到这儿,和国密SM2算法有什么关系? 国密SM2算法 SM2算法就是一种ECC算法,准确来说,就是设计了一条ECC命名曲线。这算抄袭么?...在《GMT 0003-2012》这份标准,有SM2算法的设计背景知识,有兴趣的可以了解,对于开发者而言,最重要的是《GMT 0005-2012》标准的曲线参数: p、a、b、G(x,y)和n ?...小结 本文从非对称密码算法开始,逐步介绍到国密SM2算法。我们可以看到,SM2并不是一个全新设计的算法,而是借助现有的ECC理论,设计了一条命名曲线。...这样,在已经实现了ECC算法的网络库上增加SM2算法的支持就非常简单,只需要将曲线参数添加即可。 但这是否就已经完全实现了SM2算法呢?...也不是,因为SM2算法不仅用在加解密,还用在数字签名、密钥协商,国密标准另外定义了数字签名算法、密钥交换协议、公钥加密算法,所以要把这些都实现完整,才算实现完全了国密SM2算法。

    5.2K20

    长安链ChainMaker国密TLS设计与实现

    支持的签名算法 LOCAL_SUPPORTED_SIGNATURE_ALGORITHMS 列表Java netty 通过 netty-tcnative 调用openssl底层密码功能。...目前 netty-tcnative 已支持macOS、linux、windows以及linux_aarch等平台,并在长安链chainmaker-java-sdk实现了平台兼容性,用户只要下载长安链官方...OpenSSL 在 1.1.1 版本引入了国密算法的实现,但是仅仅提供了算法接口,没有把国密算法引入到任何通信协议中去支持。长安链国密openssl把国密算法的支持加入到X509协议。...按PKCS8标准实现SM2私钥的编码序列化; 2. 按PKIX定义的公钥编码方式实现SM2算法公钥的序列化; 3. 实现ECC编码的SM2签名的序列化; 4....将SM2算法、SM3算法、SM2-SM3算法套件、SM2曲线的OID引入到X509的逻辑。 完成了X509协议的国密支持后,进一步改造了TLS协议,主要包括: 1.

    1.6K20

    腾讯Kona国密套件:从基础算法到安全协议

    : KonaCrypto,它是一个Java Cryptography Extension(JCE)实现,遵循标准的Java Cryptography Architecture(JCA)框架实现了国密基础算法...特性 下面将会介绍腾讯Kona国密套件的主要特性: 基础算法簇 腾讯Kona国密套件的KonaCrypto实现了国密的基础算法簇,包括SM2,SM3和SM4。...密钥对生成,SM2签名,SM2加密和SM2密钥交换等特性。...公钥基础设施(PKI) 腾讯Kona国密套件的KonaPKIX基于JDK的Public Key Infrastructure(PKI)特性实现了对使用国密算法(SM2椭圆曲线和SM3withSM2签名算法...需要了解的是,当使用ECDHE密码套件时,客户端也必须提供双证书,这是SM2密钥交换算法所要求的,也是与TLS协议的ECDHE密码套件的一个明显区别。

    4.9K21

    KonaJDK 助力微服务国密算法使用特性一览

    、Runtime运行时以及执行引擎在云业务的性能分析及优化 国密SM2/SM3/SM4算法支持JCE Provider TencentSMProvider 随着国密算法等商密算法国家标准的推出,云上客户对于...Java 版本的国密算法需求越来越多。...KonaJDK8 内置了国密算法的 JCE Provider, Java 用户只需要使用 JCE API 即可使用国密 SM2/SM3/SM4 算法。...,包含公钥与私钥,并返回公钥给 Consumer ; 针对 SM4 生成秘钥并返回给 Consumer : 获取SM2/SM4加密的密文并解密 使用 SM3 计算 hash digest 注意上图的代码已经包含了使用...参考链接 https://github.com/Tencent/TencentKona-8/releases 往期 推荐 《2020年腾讯云KonaJDK开源贡献总结》 《KonaJDK赋能云上Java

    73730

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

    Pre Java - 深入理解加密解密和签名算法 概述 国密即国家密码局认定的国产密码算法。主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位。...国密算法从SM1-SM4分别实现了对称、非对称、摘要等算法功能,目前已普遍应用于日常工作生活的各个方面,如工作中使用的VPN,金融业务的资金流转、刷卡支付,以及门禁设施、身份认证等。...此外,SM2算法在设计时也考虑了多种攻击手段,并采用了相应的防护措施,从而确保了其在实际应用的安全性。 SM3算法的安全性 SM3算法是一个密码杂凑算法,主要用于数字签名和消息认证等场景。...综上所述,国密算法SM2、SM3和SM4算法都具有较高的安全性,可以满足不同场景下的密码应用需求。在实际应用,可以根据具体的需求和场景选择合适的算法进行使用。...在Java中使用 Hutool针对Bouncy Castle做了简化包装,用于实现国密算法SM2、SM3、SM4。

    9.5K10

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

    网上有很多网友问算法SM2怎么使用?什么是压缩公钥和非压缩公钥?xB和yB这参数是什么?怎么使用SM2做加解密?如何签名和验签?有没有工具来验证下?...完整版的下载: sm2国密算法工具完整版,包含sm2,sm3和sm4-QT文档类资源-CSDN下载 工具源码的下载: sm2国密算法加解密、签名、验签QT工具源码(包含sm2,sm3和sm4源代码)-C...ECC,打点次数(d)就是私钥,这通常是一个随机数,公钥就是最终点(F),包含(x,y)两个分量,通常组合成一个数字来传输和存储。...密码学把正向计算是很容易的,但若要有效的执行反向则很困难的算法叫做陷门函数。...在RSA的章节已经介绍过,RSA会随着因式分解的数字变大而变得越有效率,对于私钥增长的需求决定了RSA并不能算作一个完美的陷门函数。

    1.6K10

    SM 国密算法踩坑指南

    SM2算法 SM2 国密算法是一种非对称加密算法,基于 ECC(椭圆加密算法), SM2 算法对标我们常用的国际算法 RSA。 但是 SM2 算法由于基于 ECC,签名速度与秘钥速度都快于 RSA。...SM2 数字签名算法 SM2 签名算法还是比较复杂,这里只截取数字签名的生成、验证算法原理。...sm2 加密算法 SM2解密算法 SM2 加密数据 SM2 加密数据将会产生三个值: C1 为随机产生的公钥 C2 为密文,与明文长度等长 C3 为 SM3 算法对明文数计算得到消息摘要...SM2 算法联调测试的时候,这一点比较头疼,下面讲下这次国密改造碰到一些问题。...这就比较蛋疼,所以调试双方国密算法一致性过程,建议先确认加签、加密输出格式,搞清楚这个,联调就比较简单了。

    6.9K22
    领券