RSA 算法介绍

🔐 RSA 算法介绍

RSA 是目前最广泛使用的非对称加密算法之一,由 Rivest、Shamir、Adleman 三人于1977年提出。它是现代互联网安全的基石。

核心原理

RSA 基于一个简单的数学事实:

将两个大质数相乘很容易,但把它们的乘积分解回两个质数却极其困难。

密钥生成步骤

  1. 随机选择两个大质数 p 和 q

  2. 计算 n = p × q (n 是模数)

  3. 计算 φ(n) = (p-1) × (q-1) (欧拉函数)

  4. 选择公钥指数 e,通常为 65537(2^16+1)

  5. 计算私钥指数 d,满足 e × d ≡ 1 (mod φ(n))

公钥 = (n, e) --- 可公开

私钥 = (n, d) --- 必须保密

加密与解密

加密:密文 = 明文^e mod n

解密:明文 = 密文^d mod n

为什么安全?

  • 破解 RSA 需要从 n 分解出 p 和 q
  • 当 n 是 2048位(二进制) 时,目前最快的超级计算机也需要数百万年才能破解
  • 量子计算机的 Shor 算法 理论上可以破解,但实用级量子计算机尚未出现

实际应用

场景 说明
HTTPS/TLS 网站加密(SSL证书)
数字签名 验证消息真实性和完整性
PGP/GPG 邮件加密
SSH 密钥 服务器远程登录
比特币/区块链 数字签名与钱包

RSA 的优缺点

优点 缺点
✅ 非对称,无需安全信道传输密钥 ❌ 加密速度慢(比对称加密慢100-1000倍)
✅ 可用于数字签名 ❌ 密钥体积大(2048位密钥比AES-256大得多)
✅ 安全性高(目前无法被经典计算机暴力破解) ❌ 会被量子计算机威胁

现代使用建议

  • 密钥长度:至少 2048位,推荐 4096位
  • 填充方案:必须使用 OAEP(加密)或 PSS(签名),禁止裸 RSA(教科书RSA)
  • 不要将 RSA 用于大量数据加密,通常与 AES 混合使用(RSA 传密钥,AES 加密数据)

如需了解某个具体方面(如代码实现、实际攻击案例等),可以进一步提问。

相关推荐
酿情师7 天前
2026软件系统安全赛初赛RSA(赛后复盘)
android·网络·安全·密码学·rsa
温中志11 天前
RSA加密算法入门
rsa·计算机密码学
Y5neKO23 天前
某国赛CTF密码学题目Writeup:RSA
密码学·ctf·rsa
半路_出家ren3 个月前
5.RSA和AES加密(python)
服务器·网络·python·https·aes·rsa·加密算法
三两肉3 个月前
HTTPS ECDHE 握手全解析
网络协议·https·github·rsa·echde
闲人不梦卿3 个月前
RSA握手过程
rsa
三两肉3 个月前
深入理解 HTTPS RSA 握手:从原理到流程的完整解析
网络协议·http·https·rsa·tls四次握手
bkspiderx5 个月前
安全扫描问题:目标主机支持RSA密钥交换(风险分析与解决方案)
安全·rsa·交换·密钥交换·目标主机支持rsa密钥交换·rsa密钥交换·rsa密钥
openHiTLS密码开源社区6 个月前
椭圆曲线密码学的效率核心:单标量与多标量乘法详解
区块链·零知识证明·rsa·隐私保护·ecc·多标量·单标量