一句话说透计算机网络里面的RSA和AES算法的区别

161 阅读3分钟

一句话总结:
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位(越长越安全)。

  • 加密过程

    1. 字节替换(SubBytes):查表替换每个字节。
    2. 行移位(ShiftRows):矩阵行循环移位。
    3. 列混淆(MixColumns):列矩阵乘法混淆。
    4. 轮密钥加(AddRoundKey):与子密钥异或。
  • 轮数:128位密钥10轮,256位密钥14轮。


四、实际应用场景

1. RSA的用途

  • HTTPS握手:浏览器用网站的公钥加密一个随机数(AES密钥)传给服务器。
  • 数字签名:用私钥签名文件,其他人用公钥验证签名真实性。

2. AES的用途

  • 文件加密:用密码(密钥)加密硬盘或文档。
  • 通信加密:微信消息、视频通话内容加密传输。
  • 数据库加密:敏感字段(如用户密码哈希)存储加密。

五、为什么组合使用?

  • RSA传密钥:用RSA安全传递AES密钥。
  • AES加密数据:用AES快速加密实际内容。
  • 优势互补:既解决密钥分发问题,又保证加密效率。

示例流程(HTTPS):

  1. 客户端生成随机AES密钥。
  2. 用服务器的RSA公钥加密AES密钥并发送。
  3. 服务器用RSA私钥解密,获得AES密钥。
  4. 双方用AES密钥加密后续通信数据。

六、总结口诀

“RSA传钥慢又稳,公钥锁来私钥开。
AES加密快如风,一把钥匙两头通。
一个传信一个干活,安全高效两不误!”