一句话总结:
RSA像保险箱的两把钥匙(公钥锁,私钥开),AES像密码锁(同一把钥匙开锁),一个慢但安全传密钥,一个快适合加密大数据!
一、核心区别表
| 特性 | RSA(非对称加密) | AES(对称加密) |
|---|---|---|
| 加密类型 | 非对称(公钥加密,私钥解密) | 对称(同一密钥加密解密) |
| 速度 | 慢(适合小数据) | 快(适合大数据) |
| 主要用途 | 安全传输密钥、数字签名 | 加密实际数据(如文件、通信) |
| 密钥管理 | 公钥公开,私钥保密 | 密钥必须双方安全共享 |
| 安全性 | 基于大数分解难题 | 基于替换和置换的复杂运算 |
二、通俗比喻
1. RSA:快递保险箱
- 场景:你想寄贵重物品,快递公司给你一个保险箱(公钥),任何人都能用它锁上箱子,但只有你有私钥能打开。
- 用途:安全传递密钥(如把AES密钥加密后发送)。
- 缺点:箱子又大又重(速度慢),不适合寄大量货物。
2. AES:密码行李箱
- 场景:你和朋友约定同一个密码(密钥),用密码锁住行李箱,双方都能快速开锁。
- 用途:加密大量数据(如电影、文档)。
- 缺点:密码一旦泄露,行李箱就被破解。
三、技术细节对比
1. RSA如何工作?
- 密钥生成:选两个大质数(p、q),计算乘积n=p*q,公钥为(n, e),私钥为(n, d)。
- 加密:明文m → 密文c = m^e mod n。
- 解密:密文c → 明文m = c^d mod n。
- 关键点:从公钥推导私钥需分解n=p*q,而大数分解极其困难。
2. AES如何工作?
-
密钥长度:128/192/256位(越长越安全)。
-
加密过程:
- 字节替换(SubBytes):查表替换每个字节。
- 行移位(ShiftRows):矩阵行循环移位。
- 列混淆(MixColumns):列矩阵乘法混淆。
- 轮密钥加(AddRoundKey):与子密钥异或。
-
轮数:128位密钥10轮,256位密钥14轮。
四、实际应用场景
1. RSA的用途
- HTTPS握手:浏览器用网站的公钥加密一个随机数(AES密钥)传给服务器。
- 数字签名:用私钥签名文件,其他人用公钥验证签名真实性。
2. AES的用途
- 文件加密:用密码(密钥)加密硬盘或文档。
- 通信加密:微信消息、视频通话内容加密传输。
- 数据库加密:敏感字段(如用户密码哈希)存储加密。
五、为什么组合使用?
- RSA传密钥:用RSA安全传递AES密钥。
- AES加密数据:用AES快速加密实际内容。
- 优势互补:既解决密钥分发问题,又保证加密效率。
示例流程(HTTPS):
- 客户端生成随机AES密钥。
- 用服务器的RSA公钥加密AES密钥并发送。
- 服务器用RSA私钥解密,获得AES密钥。
- 双方用AES密钥加密后续通信数据。
六、总结口诀
“RSA传钥慢又稳,公钥锁来私钥开。
AES加密快如风,一把钥匙两头通。
一个传信一个干活,安全高效两不误!”