首页
学习
活动
专区
圈层
工具
发布

什么是国密(SM2)算法

作为国密算法家族的核心成员,SM2在数字签名、密钥交换和公钥加密等领域具有广泛应用,其安全性和效率已通过国际标准化组织(ISO)的认证,成为全球认可的密码标准之一。...加密时首先生成临时椭圆曲线密钥对,通过密钥派生函数(KDF)生成会话密钥,再使用SM4算法加密明文,最终输出包含曲线点坐标和密文的数据包。...**政务系统安全**:- 国家电子政务外网全面部署SM2算法证书- 省级政务云平台采用SM2实现跨部门数据安全共享- 实际部署显示,10万并发用户场景下SM2的CPU负载比RSA降低72%3....**工业控制系统**:- 电力调度系统使用SM2实现厂站端身份认证- 轨道交通信号系统采用SM2加密列车控制指令- 实测表明SM2在工业嵌入式设备的响应延迟小于10ms### 五、标准化进程与国际认可SM2...**参数选择**:必须使用国密局批准的椭圆曲线参数,禁止自定义曲线2. **随机数生成**:签名过程中的随机数k必须满足密码学安全要求3.

2.2K11

详解国密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的流程有几点不同: 对消息的处理不同,国密签名算法对消息进行了处理,然后才计算摘要。...其中 ZA 的计算涉及到命名曲线参数的a、b、G、P A5、A6的运算和ECDSA的第3、4步不一样 国密签名过程中,如果出现不合法的值,需要返回到A3步,重新生成随机数,直到值合法。

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

    详解国密SM2的加密和解密

    在上一篇文章《解读国密非对称加密算法SM2》介绍了国密非对称算法SM2,在文章中说到,如果现有的网络库中已经实现ECC算法,只需加入SM2命名曲线的参数即可。...但在实现ECC_SM4_SM3这个密码套件中,在密钥交换过程中,存在客户端将Pre-Master Secret使用 SM2 公钥加密后传给服务器端的步骤。所以我们需要实现 SM2 的加密和解密。...如何使用 SM2 算法进行加密和解密,可以参考的资料是《GMT 0003.4-2012 SM2椭圆曲线公钥密码算法第4部分:公钥加密算法》。...先来看看国密文档中关于加密流程的描述: ? 在A1步骤中,需要注意不能使用C语言中简单的随机数函数,因为这里 k 是一个很大的数字,有32字节,在GmSSL是用 BIGNUM 结构来表示的。...国密文档中关于解密流程的描述: ? 实现了加密流程后,解密流程的实现就简单了,这里不再过多描述。

    7.2K40

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

    本文先介绍非对称加密算法,然后聊一聊椭圆曲线密码算法(Elliptic Curve Cryptography,ECC),最后才是本文的主题国密非对称加密算法SM2。...在进行国密算法开发的这段时间,我主要参考的书籍是《深入浅出HTTPS:从原理到实战》,微信读书上也有电子版,如果你也是进行网络安全方面的开发,建议你读一读。这篇文章中的密码学基础知识也是来自此书。...说到这儿,和国密SM2算法有什么关系? 国密SM2算法 SM2算法就是一种ECC算法,准确来说,就是设计了一条ECC命名曲线。这算抄袭么?...小结 本文从非对称密码算法开始,逐步介绍到国密SM2算法。我们可以看到,SM2并不是一个全新设计的算法,而是借助现有的ECC理论,设计了一条命名曲线。...也不是,因为SM2算法不仅用在加解密,还用在数字签名、密钥协商中,国密标准另外定义了数字签名算法、密钥交换协议、公钥加密算法,所以要把这些都实现完整,才算实现完全了国密SM2算法。

    6.4K20

    使用 Nginx 配置国密 SM2 证书的完整方法

    国密SM2算法是我国自主研发的商用密码算法标准,在Nginx中配置SM2证书可以实现HTTPS通信的国产化加密。以下是详细的配置方法和步骤。...一、准备工作1.获取国密SM2证书国密SSL证书通常包含签名证书和加密证书两部分,申请后您将获得以下文件:domain.com_sign.crt:签名证书文件domain.com_sign.key:签名证书私钥文件...domain.com_encrypt.crt:加密证书文件domain.com_encrypt.key:加密证书私钥文件2.安装国密版Nginx由于官方Nginx不支持国密算法,需要下载并编译支持SM2...五、SM2/RSA双证书配置(可选)为确保浏览器兼容性,可以同时配置SM2国密证书和RSA国际证书:server{listen443ssl;server_namedomain.com;#RSA国际证书ssl_certificate...六、注意事项证书兼容性:国密SM2证书主要在国内浏览器支持,国际浏览器如Chrome/Firefox会提示"证书不受信任",这是正常现象。

    3.9K30

    国密 SM2 公钥加密密文格式记录

    背景最近发现,使用外部开源的国密库(https://github.com/duanhongyi/gmssl)进行 SM2 加密之后无法在腾讯云 KMS 系统上做解密,于是笔者针对这个问题做了一些调研、分析...SM2的公钥和密文格式SM2 公钥加密产生的密文是一个字节串,它可以被分为三个主要部分:C1、C2、C3,其中C1是随机数计算出的椭圆曲线、C2是密文数据、C3是SM3杂凑值,C1固定为64字节,C2的长度与明文相同...通过查阅 SM2 相关的文档,我们找到了其 ASN1 的对象定义:基于这个定义,我们可以进行如下的编码,来实现对裸密文的 ASN1 格式编码:# 定义SM2 Ciphertext结构class SM2_...,返回C1, C3, C2 SM2密文主要由C1、C2、C3三部分构成, 其中C1是随机数计算出的椭圆曲线、C2是密文数据、C3是SM3杂凑值, C1固定为64字节,C2的长度与明文相同...,返回C1, C3, C2 SM2密文主要由C1、C2、C3三部分构成, 其中C1是随机数计算出的椭圆曲线、C2是密文数据、C3是SM3杂凑值, C1固定为64字节,C2的长度与明文相同

    5.2K168

    国密SM2算法加解密字符串加密解密文件

    【算法介绍】 国密SM2算法是一种由中国国家密码管理局发布的非对称加密算法,基于椭圆曲线密码学体系,具有较高的安全性和效率。...SM2算法特点 高安全性:SM2算法基于椭圆曲线密码学,相比传统算法如RSA,在同等密钥长度下提供了更高的安全性。...高效率:SM2算法的计算量相对较小,适合在资源受限的环境中使用,如移动设备或嵌入式系统。 广泛适用性:不仅适用于数据加密,还广泛应用于数字签名、密钥协商等场景,满足多种信息安全需求。...标准化:SM2算法已被国际电信联盟(ITU-T)和国际标准化组织(ISO)认可为国际标准,体现了其国际认可度和影响力。 应用场景 数据加密:使用公钥加密敏感数据,确保数据在传输过程中的安全性。...密钥交换:在双方通信前,通过SM2算法安全地交换密钥,为后续的数据加密提供基础。 总之,SM2算法以其高安全性、高效率和广泛适用性,在信息安全领域发挥着重要作用。

    1.1K10

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

    网上有很多网友问国密算法SM2怎么使用?什么是压缩公钥和非压缩公钥?xB和yB这参数是什么?怎么使用SM2做加解密?如何签名和验签?有没有工具来验证下?...这里分享个自己用QT造的一个小工具,简单好用,同时也增加支持了SM3、SM4国密算法。且有详细的过程日志,可以保存为文件。用来对SM2国密算法做加解密和签名,验签,秘钥生成再合适不过了。...国密sm2使用的是固定的值"1234567812345678"。 a,b,xG和yG是椭圆曲线算法选定的椭圆曲线参数。后面有说明。这几个都是个固定值。 xA和yA这个就是公钥的前后两段。...TRUE); *privkeylen = big_to_bytes(32, key1, (char *)privkey, TRUE); ...... p,a,b,Gx,Gy,n为椭圆曲线参数,国密...SM2算法是ECC算法的一种,相当于是设计了一条ECC命名曲线。 为什么要大力推广国密算法,当然是因为安全了。

    6.3K20

    #国密sm2,sm4(前台vue,后台java)加解密

    js端加密(使用sm-crypto) 引入依赖: const sm4 = require('sm-crypto').sm4 const sm2 = require('sm-crypto'...).sm2 sm2加密: sm2加密类似RSA,有公钥和私钥,这里前端使用公钥加密,加密有两种模式,适配后端这里改为C1C2C3模式。...const cipherMode = 0 // 1 - C1C3C2,0 - C1C2C3,默认为1 sm2Encrypt(data) { // sm2...解密 // JS加密产生的密文 String cipherData = "0477109887984ca6250635e6e30a58d11efe71abd998271808ec611366197698106b128ef699fe7fa09449bb7ca9527d674cc865a93a4e3593770ecd3ab06291aee81f5459b8500c284e5391956a83ddb2a90f298968a97828b0802749d5e5bbaa1c519489d4a37215ae0d5f7ef0b3a9a2e8dc1ce485544397a66923811c2f44a0...使用hutool解密 SM2 sm2 = new SM2(ECKeyUtil.toSm2PrivateParams(privateKey), null); sm2.setMode

    6K30

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

    GMSSL模块介绍 GmSSL是一个开源的加密包的python实现,支持SM2/SM3/SM4等国密(国家商用密码)算法、项目采用对商业应用友好的类BSD开源许可证,开源且可以用于闭源的商业应用。...,对ECC算法而言一般没有亚指数攻击算法 SM2椭圆曲线公钥密码算法:我国自主知识产权的商用密码算法,是ECC(Elliptic Curve Cryptosystem)算法的一种,基于椭圆曲线离散对数问题...gmssl是包含国密SM2算法的Python实现, 提供了 encrypt、 decrypt等函数用于加密解密, 用法如下: 1....sign = sm2_crypt.sign(data, random_hex_str) # 16进制 assert sm2_crypt.verify(sign, data) # 16进制 SM4算法 国密...gmssl是包含国密SM4算法的Python实现, 提供了 encrypt_ecb、 decrypt_ecb、 encrypt_cbc、 decrypt_cbc等函数用于加密解密, 用法如下: 1.

    8.5K20

    国密算法

    其中,国密算法的一个典型代表是SM2、SM3、SM4: SM2: 一种非对称加密算法,用于数字签名和密钥交换。 SM3: 一种哈希函数算法,用于产生消息摘要,类似于SHA-256。...二、国密算法使用范围 国密算法的使用例子可以涵盖多个领域,以下是一些典型的应用场景: 加密通信: 在安全通信中,可以使用国密算法进行数据的加密和解密。...例如,使用SM2进行非对称加密,确保在网络通信中传输的数据的机密性。 数字签名: 国密算法中的SM2可用于生成数字签名,用于验证消息的真实性和完整性。这在电子文件签名、身份认证等场景中很有用。...身份认证: 利用国密算法进行身份认证,特别是在需要高度安全性的场合,如金融交易或政府系统访问。 密钥交换: 在安全通信中,SM2可用于密钥交换,确保通信双方能够安全地协商会话密钥。...例如,一些金融机构可能采用国密算法来保护在线交易的安全,政府机构可能在数据传输中使用国密算法来确保信息的机密性。 三、国密算法使用示例 以下是使用国密算法的简单示例代码,包括C#、Java和C++。

    1.9K10

    初识国密算法

    国密算法是国家商用密码算法的简称,由国家密码管理局管理和发布标准。...GMT正式标准 里面包含了SM2/SM3/SM4等密码算法标准及其应用规范。“SM”代表“商密”,即用于商用的、不涉及国家秘密的密码技术。.../SM3/SM4/SM9/ZUC等国密(国家商用密码)算法、SM2国密数字证书及基于SM2证书的SSL/TLS安全通信协议,支持国密硬件密码设备,提供符合国密规范的编程接口与命令行工具,可以用于构建PKI.../CA、安全通信、数据加密等符合国密标准的安全应用。...集成国密算法到产品。国密算法只是一套算法标准,其作用还要体现在具体产品中。要推广国密算法,客户端(如浏览器、邮件客户端、加密卡等)和服务器端(如 Web 服务器、邮件服务器等)都需要推进。

    5.2K31

    什么是国密改造?国密SSL证书起什么作用?

    《密码法》及相关法律法规明确了商用密码应用与安全性评估的法定要求,为确保信息系统合规,各行业需依照GB/T39786的技术要求推动信息系统的国密改造。 国密SSL证书在国密改造中起什么作用呢?...沃通国密SSL证书采用国家密码管理局公布的SM2算法体系,支持国产密码算法及国密SSL安全协议,实现国密HTTPS加密通信以及服务器身份认证。...工作机制和RSA算法的SSL证书一样,但遵循国家的标准规范和监管体系,依赖支持国密算法的软件应用环境。沃通CA提供的成熟实践方案,面向Web应用实现网络通信层面的国密算法改造。...沃通CA提供国密SSL证书、国密客户端证书等国密数字证书产品,结合支持国密算法的国密浏览器(客户端)、国密网关(服务器端)、国密Ukey构成“国密四要素”,通过“国密四要素”的应用实现HTTPS国密通信加密...沃通国密SSL证书配置“双证书”服务模式,目前已经在十几个省市国密改造项目中成熟应用。

    3.3K60

    python国密gmssl

    是一个开源的加密包的python实现,支持SM2/SM3/SM4等国密(国家商用密码)算法、项目采用对商业应用友好的类BSD开源许可证,开源且可以用于闭源的商业应用。...安装 pip install gmssl SM2算法 RSA算法的危机在于其存在亚指数算法,对ECC算法而言一般没有亚指数攻击算法 SM2椭圆曲线公钥密码算法:我国自主知识产权的商用密码算法,是ECC...gmssl是包含国密SM2算法的Python实现, 提供了 encrypt、 decrypt等函数用于加密解密, 用法如下: 1....= sm2_crypt.sign_with_sm3(data) # 16进制 assert sm2_crypt.verify_with_sm3(sign, data) # 16进制 SM4算法 国密...gmssl是包含国密SM4算法的Python实现, 提供了 encrypt_ecb、 decrypt_ecb、 encrypt_cbc、 decrypt_cbc等函数用于加密解密, 用法如下: 1.

    91610

    国密算法介绍

    最近听到项目中要推动使用国密算法,所以来了解一下,以备不时之需~ 国密简介 国密算法是国家商用密码管理办公室制定的一系列密码标准,包括SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖冲之密码算法...自2011年7月1日起,投入运行并使用公钥密码的信息系统,应使用SM2算法。”经过多年的发展这些国密算法在国内各行各业都有了广泛的应用,为国内各行业的信息安全提供了可靠的保障。...这里分享一下一个支持国密SM2/SM3/SM4/SM9/ZUC/SSL的密码工具箱 GmSSL(点击跳转到官网)。...GmSSL GitHub 地址:https://github.com/guanzhi/GmSSL.git GmSSL是一个开源的密码工具箱,支持SM2/SM3/SM4/SM9/ZUC等国密(国家商用密码...)算法、SM2国密数字证书及基于SM2证书的SSL/TLS安全通信协议,支持国密硬件密码设备,提供符合国密规范的编程接口与命令行工具,可以用于构建PKI/CA、安全通信、数据加密等符合国密标准的安全应用

    3K30

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

    这里分享个自己用QT造的一个小工具,简单好用,同时也增加支持了SM3、SM4国密算法。且有详细的过程日志,可以保存为文件。用来对SM2国密算法做加解密和签名,验签,秘钥生成再合适不过了。...完整版的下载: sm2国密算法工具完整版,包含sm2,sm3和sm4-QT文档类资源-CSDN下载 工具源码的下载: sm2国密算法加解密、签名、验签QT工具源码(包含sm2,sm3和sm4源代码)-C...国密sm2使用的是固定的值”1234567812345678″。 a,b,xG和yG是椭圆曲线算法选定的椭圆曲线参数。后面有说明。这几个都是个固定值。 xA和yA这个就是公钥的前后两段。...TRUE); *privkeylen = big_to_bytes(32, key1, (char *)privkey, TRUE); ...... p,a,b,Gx,Gy,n为椭圆曲线参数,国密...SM2算法是ECC算法的一种,相当于是设计了一条ECC命名曲线。 为什么要大力推广国密算法,当然是因为安全了。

    3.1K10
    领券