news 2026/9/2 17:29:35

sm2加密算法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
sm2加密算法

Sm2背景

SM2算法全称是SM2椭圆曲线公钥密码算法(SM是商用密码的拼音缩写),是一种基于“椭圆曲线”的密码ECC(Elliptic CurveCryptography)。2016年,SM2成为中国国家密码标准。在商用密码体系中,SM2主要用于替换RSA加密算法。

SM2算法是中国国家密码局推出的国产化算法,和RSA算法一样,同属于非对称算法体系,而且是椭圆曲线加密(ECC)算法的一种。但与RSA算法不同的是:RSA算法是基于大整数分解数学难题,SM2算法是基于椭圆曲线上点群离散对数难

相较于RSA算法,SM2算法的优点如下:

安全性高:192位的SM2密码强度已经比RSA的20.48位密码强度要高,

存储空间小。SM2算法的密码一般使用192~256位RSA算法的密码一般需要2048~4096位。

签名速度快:SM2算法在私钥运算上的速度远大于RSA算法。

国产算法:由国家密码管理部门制订规范,不存在不可公开的密码。目前普遍认为在国内被广泛使用的RSA的1024位算法不再安全,国家密码管理局下发了通知:自2011年7月1日起,投入运行并使用公钥密码的信息系统应使用SM2椭圆曲线公钥密码算法。

二、椭圆曲线运算

国密SM2的算法基础是椭圆曲线,公式:

椭圆曲线加法

椭圆曲线加法:过曲线上的两点A、B画一条直线,找到直线与椭圆曲线的交点,交点关于x轴对称位置的点,定义为A+B,即为加法。如下图所示:A+B=C

二倍运算:上述方法无法解释A +A,即两点重合的情况。因此在这种情况下,将椭圆曲线在A点的切线,与椭圆曲线的交点,交点关于x轴对称位置的点,定义为A +A,即2A,即为二倍运算。

综上,定义了A+B、2A运算,因此给定椭圆曲线的某一点G,可以求出2G、3G(即G +2G)、4...。.即:当给定G点时,已知x,求xG点并不困难。反之,已知xG点,求x则非常困难。此即为椭圆曲线加密算法背后的数学原理。

三、有限域上的椭圆曲线运算

椭圆曲线要形成一条光滑的曲线,要求x,y取值均为实数,即实数域上的椭圆曲线。但椭圆曲线加密算法,并非使用实数域,而是使用有限域。按数论定义,有限域GF(p)指给定某个质数p,由0、1、..p-1共p个元素组成的整数集合中定义的加减乘除运算。

假设椭圆曲线为y2= x3+x+1,其在有限域GF(23)上时,写作:y2=X3+ X+1(mod 23)

此时,椭圆曲线不再是一条光滑曲线,而是一些不连续的点,如下图所示。以点(1,7)为例,72=13+1+1=3 (mod 23)。如此还有如下点:

相关公式如下:有限域GF(p)上的椭圆曲线y2 = x3+ ax +b,若P(Xp, Yp), Q(Xq, Yq),则R(Xr,Yr)= P+Q由如下规则确定:

Xr =(A2 -Xp - Xq) mod p

Yr=(A(Xp- Xr) - Yp) mod p

其中入=(Yq- Yp)/(Xq - Xp) mod p(若P≠Q),

入= (3xp2 + a)/2Yp mod p(若P=Q

因此,有限域GF(23)上的椭圆曲线y2=x3+X+ 1 (mod 23),假设以(0,1)为G点,计算2G、3G、4G...xG等等,方法如下:计算2G:

入=(3x02+ 1)/2x1 mod 23 = (1/2) mod 23 =12Xr = (122 - 0 -0) mod 23=6

Y=(12(0 - 6) - 1) mod 23=19即2G为点(6,19)

四sm2算法

密钥对生成

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 21:50:14

关于“此电脑”的小工具,让你的Windows的瞬间不一样

今天给大家推荐两款处理“此电脑”的实用软件,感兴趣的小伙伴们赶紧保存吧! ONE MyComputerManager 最近我打开“此电脑”,发现里面有三个网盘的快捷方式,简直让我这个有点强迫症的人受不了。 因此,我找到了今天要推…

作者头像 李华
网站建设 2026/9/2 23:26:22

企业估值中的AI驱动的自动化科学文献综述平台评估

企业估值中的AI驱动的自动化科学文献综述平台评估 关键词:企业估值、AI驱动、自动化科学文献综述平台、评估指标、应用场景 摘要:本文聚焦于企业估值领域中AI驱动的自动化科学文献综述平台的评估。首先介绍了研究的背景,包括目的、预期读者、…

作者头像 李华
网站建设 2026/9/2 15:18:17

Python安装新选择:Miniconda + 清华源极速配置AI开发环境

Python安装新选择:Miniconda 清华源极速配置AI开发环境 在人工智能项目日益复杂的今天,一个常见的场景是:你刚从GitHub上克隆了一个热门的深度学习项目,满怀期待地运行 pip install -r requirements.txt,结果却卡在某…

作者头像 李华
网站建设 2026/9/2 6:25:36

写给生产环境的 MySQL 高级用法:性能、兼容与真实踩坑

这 10 个 MySQL 高级用法,能让你的 SQL 更高效、更优雅 在日常开发中,很多 MySQL 查询**“能跑就行”,但在数据量变大、逻辑变复杂后,SQL 的可读性、性能和可维护性**就会迅速成为瓶颈。 本文结合真实业务场景,总结 10 个 MySQL 高级用法,不仅能显著提升查询效率,还能…

作者头像 李华
网站建设 2026/9/2 23:38:49

从“价值对齐”到“价值共生”:AI元人文构想的范式革命与路径探索

从“价值对齐”到“价值共生”:AI元人文构想的范式革命与路径探索核心立场:拥抱以数值透明表征价值,反对以数值暗地优化价值。引言:智能时代的价值绝境与范式突围我们正站在智能时代的断层线上。人工智能,特别是大型语…

作者头像 李华
网站建设 2026/9/2 19:10:45

ACL实验null

1.全网互通; 2、PC1可以访问Telnet R1,不能ping R1 3、PC1不能访问Telnet R2,但可以ping R2 4、PC2和PC1相反3、实验思路1、配置地址 2、配置静态路由,实现全网通 3、配置Telnet,并测试 4、配置ACL,并测试四…

作者头像 李华