密码学基础-公钥密码与RSA、SM2算法设计原理

国密算法SM2的优势、原理和应用场景 专注AI生成Java函数的FuncGPT(慧函数)是飞算SoFlu软件机器人推出的函数AI 生成器,支持所有类型函数创建,通过自然语言描述Java函数需求,实时生成高质量、高可读性的Java函数代码。期待与你的互动与讨论。综上所述,这段代码具有良好的代码可读性和健壮度,并且使用了标准的Java类库和BouncyCastle提供的类库,确保了代码的正确性和安全性。2、对于SM2加密算法的实现,使用了BouncyCastle提供的SM2Engine类和相关的参数类,确保了加密算法的正确性和安全性。 阅读详情
引言

在数字化社会中,信息安全的核心挑战之一是如何在不安全的通信渠道中实现安全的数据传输与身份验证。公钥密码学(Public Key Cryptography)通过“非对称加密”思想,彻底改变了传统密码学的密钥管理难题。从全球广泛应用的RSA算法到中国自主研发的SM2国密算法,公钥密码技术不断演进,成为数字签名、密钥协商、区块链等场景的基石。本文将深入解析公钥密码的核心逻辑,并对比剖析RSA与SM2算法的设计原理与独特优势。


一、公钥密码学:非对称加密的革命

1. 核心思想

公钥密码学使用一对数学关联的密钥:

  • 公钥(Public Key):公开分发,用于加密或验证签名。

  • 私钥(Private Key):严格保密,用于解密或生成签名。
    其核心突破在于解决了对称加密中密钥分发的安全性问题。

2. 核心功能
  • 加密与解密:公钥加密数据,私钥解密。

  • 数字签名:私钥生成签名,公钥验证签名。

  • 密钥协商:双方通过公钥交换生成共享密钥(如TLS握手)。

3. 安全性基石

公钥密码的安全性依赖于数学难题的复杂性:

  • RSA:大整数质因数分解的困难性。

  • ECC(椭圆曲线密码学):椭圆曲线离散对数问题(ECDLP)的难解性。


二、RSA算法:经典公钥密码的标杆

1. 历史背景

RSA由Rivest、Shamir和Adleman于1977年提出,是首个既能加密又能签名的公钥算法,至今仍是SSL/TLS、数字证书等领域的主流选择。

2. 算法设计原理
(1)密钥生成
  1. 随机选择两个大质数pp和qq,计算N=p×qN=p×q。

  2. 计算欧拉函数ϕ(N)=(p−1)(q−1)ϕ(N)=(p−1)(q−1)。

  3. 选择整数ee(通常为65537),满足1<e<ϕ(N)1<e<ϕ(N)且与ϕ(N)ϕ(N)互质。

  4. 计算dd使得e×d≡1mod  ϕ(N)e×d≡1modϕ(N),即dd为ee的模逆元。

  • 公钥:(N,e)(N,e)

  • 私钥:(N,d)(N,d)

(2)加密与解密
  • 加密:明文mm转换为整数后计算密文c=memod  Nc=memodN。

  • 解密:计算m=cdmod  Nm=cdmodN。

(3)数字签名
  • 签名生成:对消息哈希值H(m)H(m)计算s=H(m)dmod  Ns=H(m)dmodN。

  • 签名验证:验证semod  NsemodN是否等于H(m)H(m)。

3. 安全性分析
  • 攻击威胁:若量子计算机可高效分解大整数,RSA将失效(需转向抗量子算法)。

  • 密钥长度:推荐使用3072位及以上密钥以抵御现代算力攻击。


三、SM2算法:中国密码标准的自主创新

1. 背景与意义

SM2算法由中国国家密码管理局(OSCCA)于2010年发布,基于**椭圆曲线密码学(ECC)**设计,是我国商用密码体系的核心算法之一。其目标是替代RSA等国际算法,实现密码技术的自主可控。

2. 算法设计原理
(1)椭圆曲线基础
  • 定义:SM2采用标准椭圆曲线方程y2=x3+ax+by2=x3+ax+b,并指定一组公开参数(如基点GG)。

  • 核心难题:已知基点GG和公钥P=k×GP=k×G,求解私钥kk(椭圆曲线离散对数问题)。

(2)密钥生成
  1. 随机生成私钥dd(256位整数,1≤d≤n−11≤d≤n−1,nn为基点阶数)。

  2. 计算公钥P=d×GP=d×G。

(3)加密与解密
  • 加密:

    1. 生成随机数kk,计算点C1=k×GC1=k×G。

    2. 计算共享密钥S=k×PS=k×P,并派生对称密钥加密明文。

    3. 输出密文(C1,C2,C3)(C1,C2,C3)。

  • 解密:

    1. 计算共享密钥S=d×C1S=d×C1。

    2. 使用SS解密密文部分C2C2。

(4)数字签名(SM2签名流程)
  1. 计算消息哈希值Z=H(m)Z=H(m)。

  2. 生成随机数kk,计算点(x,y)=k×G(x,y)=k×G。

  3. 计算r=(x+Z)mod  nr=(x+Z)modn,若r=0r=0则重新生成kk。

  4. 计算s=(1+d)−1×(k−r×d)mod  ns=(1+d)−1×(k−r×d)modn。

  5. 输出签名(r,s)(r,s)。

3. 优势与特点
  • 安全性高:256位SM2密钥安全性相当于3072位RSA。

  • 计算效率高:椭圆曲线运算速度更快,适合移动设备。

  • 国产化支持:符合中国密码行业标准(GM/T 0003-2012)。


四、RSA vs SM2:对比与选择

维度RSASM2
数学基础大整数分解难题椭圆曲线离散对数问题(ECDLP)
密钥长度3072位(等效256位ECC)256位
计算速度加密/解密慢,签名较快加密/解密快,资源占用低
标准化国际通用(PKCS#1, X.509)中国国标(GM/T 0003)
抗量子能力易受量子攻击(Shor算法)当前无有效量子攻击方法

五、应用场景与国产化价值

1. 典型应用
  • RSA:SSL/TLS证书、SSH认证、电子邮件加密(PGP)。

  • SM2:电子政务系统、金融支付(如银联芯片卡)、物联网设备认证。

2. 国产化战略意义
  • 技术自主:摆脱对RSA等国际算法的依赖,防范潜在后门风险。

  • 生态建设:推动国产密码芯片、HSM(硬件安全模块)产业发展。


六、未来挑战与研究方向

  1. 量子计算威胁:需布局抗量子密码算法(如基于格的NIST后量子标准)。

  2. 算法优化:提升SM2在复杂场景下的性能(如大规模并发签名)。

  3. 国际标准化:推动SM2成为国际通用标准(如ISO/IEC 14888-3)。


结语

公钥密码学是数字信任的基石,而RSA与SM2分别代表了经典与创新的技术路线。RSA的广泛应用验证了其可靠性,而SM2作为中国密码技术的突破,正以更高的效率和安全性引领国产化替代浪潮。在技术自主与全球化并行的今天,深入理解这两大算法,不仅是技术人员的必修课,更是守护数字主权的重要一环。

附录:

SM2椭圆曲线公钥密码算法--密钥对与数字签名 SM2算法全称是SM2椭圆曲线公钥密码算法(SM是商用密码的拼音缩写),是一种基于“椭圆曲线”的密码ECC(Elliptic Curve Cryptography)。2016年,SM2成为中国国家密码标准。 在商用密码体系中,SM2主要用于替换RSA加密算法。主要介绍SM2国密密钥对与数字签名算法原理。 阅读详情

相关推荐

SM2 公钥加密算法

SM2公钥加密算法以其高效性和安全性,在中国国内得到了广泛应用和推广。它不仅满足了高安全性和效率的要求,还通过简短的密钥长度和快速的计算速度,在现代密码学应用中占据了重要地位。

百态·数智思维 | 聚焦大数据、量化与未来AI 3237

4.Java开源RSA/SM2非对称加密算法对比介绍

- 支持RSA(1024/2048/3072/4096)/AES(128/192/256)/SHA-1/SHA-256/SHA-512/SHA-3/MD5/PGP/HMAC-SHA256/HMAC-SHA512等国际通用的加密算法; - 支持SM2/SM3/SM4/HMAC-SM3等国密算法; - 还支持国密和国际加密算法的统一抽象与封装,并封装了国际/国密组合使用的一些实践; - 本加解密组件基于BouncyCastle做了二次封装,并已开源,期待着有一天我们也有自己的国产的更优实现

编码之旅 2789

国密算法学习整理

第1章 解读DES和SM4、RSA和SM2及SM3 第2章 谈PBOC3.0中使用的国密SM2算法 第1章:解读DES和SM4、RSA和SM2及SM3 1.1概念说明: 国密算法是由国家密码局发布,包含SM1\ SM2\ SM3\ SM4\ SSF33算法,其中SM1是硬件实现的算法,这里不与讨论,而SM2、SM3、SM4等可以使用软件实现,这里后续重点研究。另外国际算法由美国的安全

liuxiaoxiaocsdn的博客 1万+

SM2-RSA两种加密方式

SM2-RSA两种加密方式

qq_37782946的博客 3315

深入了解 SM2 算法:中国的密码学标准

SM2算法是一种基于椭圆曲线密码的公钥加密算法,由国家密码管理局发布。它包括数字签名、密钥交换和公钥加密三个部分。本文将详细介绍SM2算法的原理、实现以及应用场景。

LWJLWJ_的博客 6545

密码学-2-RSA签名验签方案

重温上节所述的签名流程,其中散列值==>>签名(签名 ==>> 散列值)的过程中,使用私钥签名(公钥验签),这个地方涉及到了非对称加密算法,这也是非对称算法的用途之一,即数字签名。 常见用作数字签名的非对称算法:SM2(国密) 、 RSA、DSA、ECDSA(国际算法)。本文对常见的几种签名算法进行分析,内容深度只会涉及到签名流程,对于算法的具体原理实现,将会一带而过,如对算法原理有兴趣,可以私聊。 由于RSA加密算法,相对于对称加密算法来说效率较低,目前RSA常用来加密小数据,

汽车电子开发 6163

SM2椭圆曲线公钥密码算法(Python实现)

Python实现SM2椭圆曲线公钥密码算法

m0_51913750的博客 1万+

国密(国产密码)SM2、SM3、SM4 C#实现

参考:http://www.voidcn.com/article/p-zlnqwzbd-cm.html 这两天与联通对接流量卡实名相关接口。他们用到了国密SM3,一个比较冷门的加密(或者说是签名)方式。顺带我也了解了下SM2、SM3、SM4:本文只做了SM2、SM3、SM4 代码补充 国产密码算法(国密算法)是指国家密码局认定的国产商用密码算法,在金融领域目...

oopxiajun博客专栏 61万+

非对称加密算法(RSA、ECC、SM2)——密码学基础

非对称加密是现代密码学的基石,它使用一对密钥(公钥和私钥)进行加密和解密操作。与传统的对称加密不同,非对称加密解决了密钥分发的难题,为互联网安全通信奠定了基础。

开源AI 专属 UI——papyrai-ui。《千界明彻录》(故事形式构建元思维)——胡说小说。更多思辨内容在公众号。 4242

网络安全之密码学与加密技术

密码技术一、密码学1.1 加密技术 一、密码学 密码学(在西欧语文中之源于希腊语kryptós,“隐藏的”,和gráphein,“书写”)是研究如何隐密地传递信息的学科。在现代特别指对信息以及其传输的数学性研究,常被认为是数学和计算机科学的分支,和信息论也密切相关。 密码学包含了三个要素:明文,密钥和密文 信息加密和解密的主要的实现方式是对数据本身的加密和解密,以及对**传输途径(信道)**的加密和解密 密码学衍生出的两个重要学科:密码编码学和密码分析学,分别研究数据的加密和解密 1.1 加密技术 分

kingx3的博客 5336

【算法】加密解密算法(DES、3DES、SM2、SM3、SM4)以及RSA加密算法

DES 算法的安全性在一定程度上受到了量子计算和大数据技术的冲击,因为它的密钥长度较短,容易被暴力破解。3DES 算法使用 3 条 56 位的密钥对数据进行三次加密,增加了密钥长度,提高了。SM4 算法的密钥长度为 128 位,加密过程包括 128 位的分组和 8 轮加密操作。3DES 算法的加密过程分为三个步骤:先使用第一个密钥进行加密,然后使用第二个密钥进行解密,最后使用第三个密钥进行加密。加密过程如下:将明文转换为数字表示,然后将数字表示的明文乘以一个加密密钥(公钥),再对结果取模,得到密文。

wjianwei666的专栏 4231

密码学算法之 SM2国密算法

一、SM2 国密算法介绍: &quot;&quot;&quot; SM2 国密非对称加密算法,属于椭圆曲线密码体制(ECC) Author:John 基于椭圆曲线的离散对数难题,目前 SM2 256 bit 加密算法是相当安全的,相当于 RSA 2048 bit 及以上的安全性 有公钥、私钥之分,公钥给别人,可以在一定范围内公开,私钥留给自己,必须保密。由私钥可以计算公钥;由公钥计算私钥,是相当困难的,现阶段是不可能 加密过...

BlackNight168的博客 3万+

从零打造M328晶体管测试仪:硬件DIY与烧录避坑指南

本文是一份详尽的M328晶体管测试仪DIY指南,涵盖从硬件选型、PCB设计、焊接组装到固件烧录的全过程。重点解析了使用AVR单片机与Arduino IDE环境时,如何正确设置熔丝位以避免“白屏”等常见问题,并提供了使用ISP编程器进行烧录的实操步骤与校准方法,帮助电子爱好者成功打造属于自己的高性价比元件测试工具。

weixin_29243063的博客 475

【国密算法】SM2椭圆曲线公钥密码算法原理、数据加密、签名、验签、解密(详解与应用)

SM2算法全称是SM2椭圆曲线公钥密码算法(SM是商用密码的拼音缩写),是一种基于“椭圆曲线”的密码 ECC(Elliptic CurveCryptography)。推出的国产化算法,和RSA算法一样,同属于非对称算法体系,而且是椭圆曲线加密(ECC)算法的一种。通俗点理解就是私钥是一个随机数生成的,命名为d,公钥是用d进行G运算,就是上文提到的G点,去计算2G,3G。GF(p):p就是其中的质数,比如p是20,那GF(20)就是0,1,2,…AB重叠的计算公式(2A运算):2A取与曲线的交点然后做对称。

A的博客 3921

无网络环境部署:手动获取并安装OneNote for Windows 10完整指南

本文提供了一份详尽的OneNote for Windows 10离线安装指南。针对无网络或内网隔离环境,详细介绍了如何从官方渠道获取正确的产品ID,利用第三方工具下载纯净的.appxbundle安装包,并解决系统兼容性与依赖框架问题。最后,通过PowerShell管理员命令完成安全部署,是IT管理员和高级用户在离线环境下部署UWP应用的实用参考。

loss4bartender的博客 496

STC8H8K64U ADC采样实战:从蜂鸣器控制到电压测量(附完整代码)

本文以STC8H8K64U单片机为核心,通过两个实战案例详细讲解ADC采样的应用。首先介绍如何利用ADC采样值动态控制蜂鸣器响度,实现模拟PWM效果;其次深入探讨高精度外部电压测量的方法,包括硬件连接、两点校准技巧以及软件滤波,旨在帮助开发者从理论到实践全面掌握ADC功能。

weixin_29159441的博客 562

国密SM1\ SM2\ SM3\ SM4\ SSF33算法和国际RSA算法的对应关系

安全是智能卡的核心,而算法是安全的基础。   国密算法由国家密码局发布,包含SM1\ SM2\ SM3\ SM4\ SSF33算法;国际算法由美国的安全局发布,是现今最通用的商用算法。今天小钞就以分组密码算法(DES和SM4)、公钥密码算法(RSA和SM2)、摘要算法(SM3)为例,和大家谈谈国际算法和国密算法的区别。   分组密码算法——国际DES、国产SM4

小明的专栏 3万+

从OAuth到DID:Web4.0身份验证协议的技术演进图谱

在数字身份体系从Web2.0向Web4.0跨越的进程中,身份验证协议正经历着从中心化授权到自主主权的范式转移。本文通过对比OAuth 2.0、OpenID Connect等传统方案与W3C DID、ION等去中心化协议的技术架构,揭示身份验证技术在性能、安全、隐私三大维度的代际差异。基于对GitHub、欧盟数字身份钱包等典型系统的实测数据分析,量化评估中心化授权服务器的单点故障风险与DID链上验证的吞吐量瓶颈。结合零知识证明、分布式密钥管理等前沿技术,为开发者提供面向Web4.0的渐进式身份架构迁移策略。

水务人 834

SM2算法概述

2021SC@SDUSC SM2算法概述 SM2椭圆曲线公钥密码算法是我国自主设计的公钥密码算法,包括SM2-1椭圆曲线数字签名算法,SM2-2椭圆曲线密钥交换协议,SM2-3椭圆曲线公钥加密算法,分别用于实现数字签名密钥协商和数据加密等功能。 SM2标准包括总则,数字签名算法,密钥交换协议,公钥加密算法四个部分,并在每个部分的附录详细说明了实现的相关细节及示例。SM2算法主要考虑素域Fp和F2m上的椭圆曲线,分别介绍了这两类域的表示,运算,以及域上的椭圆曲线的点的表示,运算和多倍点计算算法。然后介.

vincy_yeha的博客 1万+

Flink CDC 1.18.1 Oracle 数据同步到postgresql

8、修改Flink的配置文件,主要是各种服务的绑定地址,默认为localhost,统统改为0.0.0.0,如:rest.address: 0.0.0.0 #localhost。将flink-sql-connector-oracle-cdc-3.0.1.jar复制到flink-1.18.1/lib目录中。6、下载 flink-connector-jdbc-3.1.1-1.17.jar,postgresql-42.7.3.jar。7、安装postgresql就不说了,相信你已经有了数据库了。

ynzhangyao的专栏 1800

先进封装Interposer仿真步骤及说明

摘要: Interposer仿真是2.5D/3DIC封装设计的关键环节,涵盖信号完整性(SI)、电源完整性(PI)、热及结构应力分析。流程分为五个阶段:1)前处理,定义层叠结构与材料属性;2)参数提取,通过3D电磁建模获取TSV、传输线等寄生参数;3)仿真设置,选择求解器并设定频率范围;4)结果分析,评估信号损耗、阻抗及电源网络性能;5)后处理,进行多物理场协同仿真并生成模型。核心挑战在于多尺度与多物理场耦合,需优先确保高速信号与电源网络的仿真精度。常用工具包括Ansys HFSS、Cadence Sigr

DSY_0324的博客 1351

公钥密码体制

公钥密码体制的基本概念;RSA公钥加密原理;ElGamal公钥加密原理;椭圆曲线密码系统;SM2算法。

qq_51394408的博客 1407

杰理JL7033C芯片运行SoundFont音色库教程

本教程介绍如何在杰理JL7033C芯片上移植TinySoundFont音色库,实现MIDI播放功能。关键步骤包括:获取TinySoundFont开源代码,创建音色库声音播放数据流,封装核心功能文件。硬件需配备外部PSRAM和NOR FLASH存储音色库,软件使用杰理SDK和工具链。移植后系统可支持40个voice,满足MIDI播放和电子琴演奏需求。教程详细说明了代码移植过程,包括音色库文件处理、内存配置和音频流水线设置。

qq_42014563的博客 611

Python:SM2

SM2?

退堂鼓演奏家 1万+

[Dify实战] OA 公文排版助手:自动格式化、编号、生成摘要-带配套资源

摘要: Dify 公文排版助手通过自动化解决公文处理中的格式混乱、编号错漏等问题。支持标题层级自动编号、摘要生成、要素补全等功能,输出标准化Markdown格式。核心流程包括输入原文、智能识别、自动排版与要素输出,适用于通知、纪要等场景。实施需统一模板规则,规范输入格式,并通过试跑优化纠错率与处理效率。关键价值在于减少人工返工,提升排版一致性,未来可对接OA系统实现全流程自动化。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 472

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

上一篇: 密码学基础-密码杂凑函数与SM3算法设计原理
下一篇: 密码学基础-标识密码算法与SM9算法设计原理
destiny12__
博客等级 码龄9年 69粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值