对称加密Symmetric Encryption)是加密方和解密方使用同一把秘密密钥的加密方式:同一个密钥既能把明文变成密文,也能把密文还原成明文。

核心问题

对称加密解决的是“已经共享了一个秘密之后,如何高效保护大量数据不被旁观者读懂”的问题。它的优势是速度快、实现成熟、适合流量和文件加密;困难在于密钥必须提前安全分发,并且所有持有同一密钥的人都具备解密能力。

在真实系统里,对称加密通常不单独解决“如何把密钥安全交给对方”的问题,这部分常由 非对称加密密钥交换 或线下密钥管理解决。

核心机制

基本形式可以写成:

其中 P 是明文,C 是密文,K 是双方共享的秘密密钥。

现代对称加密通常还需要:

  • 随机数 / nonce / IV:让相同明文在相同密钥下也产生不同密文,避免泄露模式。
  • 工作模式:分组密码需要模式才能加密任意长度数据,例如 GCM、CTR、CBC;其中 ECB 通常不应使用。
  • 完整性保护:只加密不一定能防篡改,工程上常用 认证加密 同时提供机密性和完整性。
  • 密钥派生与轮换:从主密钥派生会话密钥,按时间、连接或用途隔离风险。

常见算法包括 AES、ChaCha20、SM4 等。网络协议中经常先通过 密钥交换 建立会话密钥,再用对称加密保护后续流量。

工程用途

  • 传输加密:TLS、VPN、SSH 会话建立后,大量数据通常由对称算法保护。
  • 存储加密:磁盘、数据库字段、对象存储和备份文件加密。
  • 消息加密:消息队列、离线事件、配置密文和密钥信封中的数据部分。
  • 设备与 IoT:设备密钥、固件包加密、生产凭据保护。

观察指标包括加解密吞吐、消息膨胀比例、nonce 重复率、认证失败率、密钥轮换覆盖率和旧算法残留。

边界与常见坑

  • 对称加密不解决身份认证:能解密只说明持有同一密钥,不一定说明对方是谁。
  • 加密不等于防篡改:没有认证标签或 MAC 时,攻击者可能修改密文并影响解密结果。
  • nonce 不能乱用:很多模式要求同一密钥下 nonce 永不重复,尤其是 GCM 和 CTR。
  • 不要使用 ECB 模式:它会暴露明文块模式,图片、结构化数据和重复字段尤其明显。
  • 密码不是密钥:用户输入的密码需要经过 KDFsalt 和拉伸,不能直接当 AES 密钥。
  • 密钥分发是核心难题:把密钥硬编码、和密文放一起、写进日志或配置库,都会让加密失去意义。

相关术语