对称加密(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 模式:它会暴露明文块模式,图片、结构化数据和重复字段尤其明显。
- 密码不是密钥:用户输入的密码需要经过 KDF 加 salt 和拉伸,不能直接当 AES 密钥。
- 密钥分发是核心难题:把密钥硬编码、和密文放一起、写进日志或配置库,都会让加密失去意义。