5.1.1. Nonce Reuse (Nonce 重用)
5.1.1. Nonce Reuse (Nonce 重用)
若在同一密钥下, 两次 GCM 加密调用无意中使用了相同 nonce, 且明文不同, 则会破坏这两次调用所保护明文的机密性, 并破坏该密钥所提供的全部真实性与完整性保护。因此, 仅当能够可靠保证 nonce 唯一时才宜使用 GCM。GCM 为达到极低时延所采用的设计特点, 会在后续使用该密钥时造成脆弱性。注意, 向解密操作多次输入相同 nonce 值是可以接受的。
若攻击者观察到两个密文在同一 nonce 与密钥下生成, 则除非两次加密调用的明文与 AD 完全相同, 否则后果十分严重。首先, 机密性受损, 因为攻击者能够重构两个明文的按位异或。其次, 完整性受损, 因为攻击者能够恢复用于提供数据完整性的内部哈希密钥。掌握该密钥会使后续伪造变得轻而易举。