密文(Ciphertext)
密文(Ciphertext) 是什么?
密文(Ciphertext)加密算法的输出:在没有正确密钥的情况下应当对任何人不可读的数据。
密文是明文在特定密钥、模式以及(必要时)nonce 或 IV 下,由密码算法加密后产生的形式。设计良好的密码算法会使密文在没有密钥的情况下,在计算上与随机数据不可区分——这一性质被形式化为 IND-CPA,对于认证加密方案则被形式化为 IND-CCA 安全性。
仅有密文并不保证安全;它是如何生成与处理的同样重要。密文必须与妥善的密钥管理、用于检测篡改的认证加密(AES-GCM、ChaCha20-Poly1305)以及每条消息独立的 nonce 相配合——在 GCM 中重用 nonce 会灾难性地泄露认证密钥。历史上充斥着这样的攻击:它们从未攻破底层密码算法,而是通过滥用密文的处理方式来恢复明文,例如针对 CBC 的**填充神谕(padding-oracle)**攻击、针对 TLS 1.0 的 BEAST(CVE-2011-3389)、Lucky Thirteen 计时泄露,以及 POODLE(CVE-2014-3566,于 2014 年 10 月披露)——后者强制降级到 SSL 3.0 可延展的 CBC 填充,从而逐字节地解密会话 Cookie。
其防御性经验是一致的:优先选用 AEAD 模式,采用先加密后 MAC(encrypt-then-MAC)而非先 MAC 后加密(MAC-then-encrypt),使用恒定时间验证,并在对任何密文做进一步处理之前,先拒绝其认证标签验证失败的密文。
flowchart LR
P[明文] --> E[加密<br/>密码算法 + 密钥 + nonce/IV]
E --> C[密文 + 认证标签]
C -->|存储 / 传输| V{验证标签}
V -->|标签有效| D[解密 → 明文]
V -->|标签无效| R[拒绝 — 不予处理]● 示例
- 01
在客户端与服务器之间承载 AES-256-GCM 密文的 TLS 记录。
- 02
其密文可以安全存放在不可信对象存储中的加密备份文件。
● 常见问题
密文(Ciphertext) 是什么?
加密算法的输出:在没有正确密钥的情况下应当对任何人不可读的数据。 它属于网络安全的 密码学 分类。
密文(Ciphertext) 是什么意思?
加密算法的输出:在没有正确密钥的情况下应当对任何人不可读的数据。
如何防御 密文(Ciphertext)?
针对 密文(Ciphertext) 的防御通常结合技术控制与运营实践,详见上方完整定义。