公钥密码学深度解析:RSA 算法原理与完整示例

·

公钥密码学在网络通信、移动支付及数字证件领域已成为不可或缺的安全基石。本文将用通俗语言带你拆解非对称加密的工作机理、优缺点、密钥需求量,并重点走进 RSA 算法——这一里程碑式的加密标准。文末配有认证习题与延伸思考,便于你快速自测、加深理解。


网络安全的密码学背景

在继续阅读前,建议先回顾对称加密的要点:

公钥密码学由此诞生,借助“两把钥匙”解决密钥分发难题。


非对称加密(公钥密码学)概述

核心定义

统一术语

以下概念在全文同义替换:
非对称加密 ⇄ 公钥密码学 ⇄ 公开密钥系统 ⇄ RSA/Diffie-Hellman 算法等。


公钥通信的三步流程

Step-1:发送端加密

Step-2:通道传递

密文经互联网、移动网络或卫星链路无风险下发。

Step-3:接收端解密


公钥系统的长处与短板

✅ 优点❌ 缺点
抗中间人攻击:破解一千万台设备也拿不到私钥计算量大:算法比对称加密慢成百上千倍
不怕密钥泄露:公钥人人可拿对硬件要求高:需专用协处理器或算法加速

n 个人通信所需密钥总数

场景每人钥匙数量总钥匙量
对称加密单一共享密钥n(n−1)/2(指数爆炸)
非对称加密一对(公+私)2×n(线性扩展)

当用户规模扩大时,非对称密钥管理优势凸显


非对称算法明星:RSA 与 Diffie-Hellman

目前最广泛应用的非对称算法主要有:

  1. RSA:基于大数分解难题,易理解、部署广。
  2. Diffie-Hellman 密钥交换:为对称算法安全协商会话密钥,速度快。
👉 点击这里用可视化工具亲身感受 RSA 加密演算

接下来,我们把镜头聚焦到 RSA 算法


RSA 算法的精要

基本符号

Step-1:加密

Step-2:解密

数学前提

e 与 d 必须满足:e × d ≡ 1 mod φ(n)。φ(n) 为欧拉函数,计算公式为 φ(n) = (p−1)(q−1),其中 p、q 为大素数。


一步步生成 RSA 密钥对

Step-1:选择素数

挑两个不同且足够大的素数 p、q。示例使用 p=13、q=17。

Step-2:计算 n 与 φ(n)

Step-3:选取公钥指数 e

要求:1 < e < φ(n)gcd(e, φ(n)) = 1。例:e=35

Step-4:求私钥指数 d

用同余式 d ≡ e⁻¹ mod φ(n)
例:35×11 ≡ 1 mod 192,得 d=11

结论:


现场演算:两则 RSA 例题

例题 1

已知 p=13, q=17,公钥 e=35,求 d。

解析

  1. φ(n)=192
  2. e⁻¹=11
  3. ⇒ 私钥 (11,221)

例题 2

下列方程中,哪几项正确描述 RSA?
I. M’ = M^e mod n,M = (M’)ᵈ mod n
II. e × d ≡ 1 mod n
III. e × d ≡ 1 mod φ(n)
IV. M’ = M^e mod φ(n),M = (M’)ᵈ mod φ(n)

正确选项:B) I 和 III,其他或模数错误或公式颠倒。


常见问题与解答 FAQ

  1. Q:私钥能否从公开信息直接反推?
    A:理论上通过 大整数因子分解 才可逆推 d,但穷尽目前所有计算资源也不可行,因而安全。
  2. Q:为何还要用对称加密?
    A:RSA 速度低,通常先让双方用 RSA 协商一个临时对称密钥,再用更快的 AES/ ChaCha20 加密长数据。
  3. Q:如何验证收到的公钥是真的?
    A:通过 数字证书(CA 签名)与 证书链,中间人讲不出体系信任链的“假话”。
  4. Q:大素数如何迅速生成?
    A:运用 Miller–Rabin 随机检测大整数库,现代 CPU 可在毫秒级完成安全随机大素数生成。
  5. Q:密钥长度应该选多大?
    A:当前业界推荐 RSA 2048 位,面向未来可提前采用 RSA 3072 位ECC 等新型曲线算法

最佳实践与进阶路线

  1. 开发阶段:

    • 使用已知安全开源库(如 Python cryptography)。
    • 别自己造轮子,减少侧信道攻击面。
  2. 部署阶段:

    • 启用 前向保密 (PFS),定期轮换密钥。
    • 对敏感硬件使用 HSMTEE 保护私钥。

👉 立即进入在线 RSA 加密沙箱,亲手调参体验


结语

从短信验证码、网站 HTTPS,到云端数据同步,公钥密码学无处不在。掌握 RSA 的原理只是起点,下一步可将 椭圆曲线加密 (ECC)、后量子算法 纳入学习计划,让安全技术始终与未来威胁赛跑。