当前位置: 首页 > news >正文

非对称加密:为什么RSA让“公开传密”成为可能

在1977年之前,加密世界遵循一个铁律:想要安全通信,必须先秘密交换密钥。无论是凯撒密码还是二战时的恩尼格玛机,都依赖发送方和接收方预先共享同一把“钥匙”。但RSA算法的出现颠覆了这一规则——它让陌生人可以在完全公开的环境下建立安全通信,而无需事先约定任何秘密。

今天,RSA(Rivest-Shamir-Adleman)算法支撑着HTTPS、数字签名、SSH等关键技术,成为现代互联网的加密基石。但它是如何做到“公开传密”的?背后的数学原理又是什么?

一、非对称加密

非对称加密,也称为公钥加密,是一种使用一对密钥(公钥和私钥)进行加密和解密的密码学方法。与对称加密(如 AES)不同,非对称加密的公钥和私钥在数学上相关,但不能互相推导,使得通信更安全。

  • 公钥(Public Key):公开给所有人,用于加密数据验证签名
  • 私钥(Private Key):严格保密,用于解密数据生成签名

类比:想象一个带锁的邮箱,任何人都能往里面投递信件(公钥加密),但只有你有钥匙能打开查看(私钥解密)。

二、RSA秘钥的生成过程

1、选择两个大质数 p p p q q q

2、两个大质数相乘得到 N = p × q N = p \times q N=p×q

3、计算欧拉函数 ϕ ( p , q ) = ( p − 1 ) × ( q − 1 ) \phi(p,q) = (p-1) \times (q-1) ϕ(p,q)=(p1)×(q1)

4、选择公钥 E E E E E E 需要满足 (1) 1 < E < ϕ ( p , q ) 1 < E < \phi(p,q) 1<E<ϕ(p,q) (2) E E E ϕ ( p , q ) \phi(p,q) ϕ(p,q) 互质,即 G C D ( E , ϕ ( p , q ) ) = 1 GCD(E,\phi(p,q)) = 1 GCD(E,ϕ(p,q))=1

5、获得私钥 D D D D D D 需要满足 ( D × E ) % T = 1 (D \times E) \% T = 1 (D×E)%T=1

注意 E E E D D D 都不需要是质数

最终秘钥
  • 公钥:(E, N)
  • 私钥:(D, N)
举个例子

1、选择两个质数 61 和 67

2、计算模数 N = 61 * 67 = 4087

3、计算欧拉函数 ϕ \phi ϕ = 60 * 66 = 3960

4、选择公钥 E = 17

5、获得私钥 D = 233

获得公钥 (17,4087) 私钥 (233, 4087)

三、如何加密解密

假设我现在要加密一个单词 DOG,可以发现他的ASCII码是 68 79 71 。那么用公钥加密也是一件简单的事情。

加密:

明文 m m m加密 c = m E mod  N c = m^E \ \text{mod} \ N c=mE mod N密文 c c c
68 6 8 17 mod  4087 68^{17} \ \text{mod} \ 4087 6817 mod 40873284
79 7 9 17 mod  4087 79^{17} \ \text{mod} \ 4087 7917 mod 4087453
71 7 1 17 mod  4087 71^{17} \ \text{mod} \ 4087 7117 mod 40874085

获得加密后的密文 3284 453 4085

解密:

密文解密 m = c D m o d N m= c^{D} \ mod \ N m=cD mod N明文 m m m
3284 328 7 233 mod  4087 3287^{233} \ \text{mod} \ 4087 3287233 mod 408768
453 45 3 233 mod  4087 453^{233} \ \text{mod} \ 4087 453233 mod 408779
4085 408 5 233 mod  4087 4085^{233} \ \text{mod} \ 4087 4085233 mod 408771

明文公钥加密后被私钥破解。

四、为什么非对称加密难以破解

RSA加密的核心在于于大整数的质因数分解问题。公钥包含模数 N = q * ppq 是大质数,而私钥需要知道这两个质数才能计算。所以破解 RSA 就约等于分解 N,但对于足够大的 N即使是超级计算机也需要数万年才能计算成功,目前没有已知的高效算法可以在多项式时间内分解大整数。

  • RSA-1024:曾被认为是安全的,但现代计算能力已能威胁它(需要数月到数年)。
  • RSA-2048:当前标准,破解需要 1 0 20 10^{20} 1020 年(远超宇宙年龄)。
  • ECC-256:等效于RSA-3072的安全性,但密钥更短、计算更快。

五、RSA的局限性

计算量大,通常仅用于密钥交换或签名,而非加密大量数据(实际结合AES等对称加密使用)

Shor算法能在量子计算机上快速分解大数,威胁RSA安全(后量子密码学正在发展)

相关文章:

  • 汽车为什么需要以太网?带宽?实时?
  • 如何在 C# 和 .NET 中打印 DataGrid
  • 2025年APP安全攻防指南:抵御DDoS与CC攻击的实战策略
  • 基于智能家居项目 RGB彩灯(P9813)
  • 一个用C#开发的记事本Notepads开源编辑器
  • 57.[前端开发-前端工程化]Day04-webpack插件模式-搭建本地服务器
  • Matter协议,智能家居生态平台的“共生契约”
  • 系统重装之后,通过ssh无法登录
  • java 破解aspose.words 18.6 使用
  • SEMI E40标准的加工任务状态模型(Process Job State Model)解析
  • 【Python 日期和时间】
  • DLMS协议 —— System title 详解(作用及结构一览)
  • C# NX二次开发:判断两个体是否干涉和获取系统日志的UFUN函数
  • QT 文件选择对话框 QFileDialog
  • # 如何使用OpenCV进行发票的透视变换和二值化处理
  • 如何观察epoll_threadpool_echo_server 线程的变化
  • 【HarmonyOS 5】App Linking 应用间跳转详解
  • CDN 回源:原理、作用与工作流程
  • 排序算法——基数排序
  • YY/T 1732-2020口腔曲面体层X射线模体
  • 体坛联播|双杀阿森纳,巴黎晋级欧冠决赛对阵国际米兰
  • 现场|万米云端,遇见上博
  • 上海市委政法委召开会议传达学习总书记重要讲话精神
  • 金融政策支持稳市场稳预期发布会即将召开,潘功胜、李云泽、吴清将出席
  • 这个接班巴菲特的男人,说不出一个打动人心的故事
  • 菲律宾首都机场航站楼外发生汽车冲撞事故致2死多伤