密码学
初始化向量(IV)
别称: IV, 密码初始向量
定义
分组密码工作模式所使用的随机初始值,用于保证相同明文在同一密钥下加密会得到不同密文。
初始化向量(Initialization Vector,IV)是与密钥一起输入到分组密码工作模式中的公开、一次性使用的值,目的是让同一段明文两次加密产生不同的密文。所需特性依模式而定:AES-CBC 需要不可预测的(密码学随机)IV 才能保持 CPA 安全;AES-CTR 与 AES-GCM 只需要唯一(不重复)的 IV,不必保密——在 AES-GCM 中该值也称作 nonce。CBC 模式下 IV 长度通常等于分组长度(AES 为 128 位),GCM 为 96 位,流密码/CTR 模式则为 64–128 位;IV 通常随密文一同传输。IV 处理不当——如 CBC 中可预测的值(BEAST 攻击)或 GCM 中重复的 nonce——会导致严重的机密性与真实性失效。
示例
- AES-CBC 实现会在每段密文前附加一个 16 字节的随机 IV。
- AES-GCM 使用 96 位 IV,且每对 (密钥, 消息) 都必须唯一。
相关术语
随机数(Nonce)
提供给密码学算法的 "一次性数值",用于保证新鲜性,防止重放或密钥/IV 重用。
对称加密
加密和解密使用同一个秘密密钥的加密方案,在密钥安全分发的前提下提供高速度和强机密性。
AES(高级加密标准)
由 NIST 标准化的 128 位分组密码,密钥长度可为 128、192 或 256 位,由 Daemen 与 Rijmen 设计,是全球占主导地位的对称加密算法。
分组密码
对固定长度明文分组使用密钥进行加密的对称密码,通常结合工作模式以处理任意长度的数据。
流密码
通过将数据与由密钥和 nonce 派生的伪随机密钥流逐位或逐字节异或来加密的对称密码。
TLS (Transport Layer Security)
TLS (Transport Layer Security) — definition coming soon.