Symmetric Encryption 对称加密

同一个秘密密钥来加密和解密。发送方和接收方共享这把钥匙。

[asymmetric-encryption|非对称加密]正好相反 —— 那个是两把不同的钥匙。

工作流程

明文 + 密钥 → [加密算法] → 密文
密文 + 密钥 → [解密算法] → 明文

密钥 一旦泄露,加密就废了。

主流算法

算法状态备注
AES (128/192/256)现役标准NIST 钦定,硬件加速,无已知有效攻击
ChaCha20现役软件实现快,移动端友好
3DES已淘汰2023 NIST 正式弃用
DES已死56 位密钥,几小时暴破
RC4已死太多漏洞

优点 vs 缺点

优点缺点
速度快(比非对称快几个数量级)密钥分发难 —— 怎么安全地把钥匙告诉对方?
实现简单n 个人通信要 n(n-1)/2 把钥匙
适合海量数据没法做数字签名 / 不可否认

实战中怎么用

几乎所有现代协议(TLS、SSH、VPN)都是混合:

  1. 用非对称加密协商一个临时对称密钥
  2. 之后的所有数据用对称密钥加密

兼顾安全(解决密钥分发)和速度。