CWE一覧に戻る
CWE-329

CBCモードによる予測可能なIVの生成

Generation of Predictable IV with CBC Mode
脆弱性 レビュー中
JA

本製品は、暗号ブロック連鎖(CBC)モードで予測可能な初期化ベクトル(IV)を生成して使用するため、同じ鍵で暗号化された場合、アルゴリズムがディクショナリ攻撃の影響を受けやすくなる。

CBCモードは、ECB(Electronic Code
CBCモードは、同一の平文ブロックを異なる暗号文ブロックに暗号化できるようにすることで、ECB(Electronic Code Book)モードの弱点を解消している。
を異なる暗号文ブロックに暗号化することができる。これは
IVを最初の平文ブロックとXORすることで可能となる。
ブロックと XOR することによって可能となる。
を異なる値で XOR することで可能となる。もしIVが
が再利用される場合、同一の平文が同一の暗号文に暗号化されることになる。
に暗号化されることになる。しかし、IV が同一でなくとも
が同一ではなく、予測可能であったとしても、CBC モードの Chosen Plaintext に対する安全性は破られる。
CBCモードの安全性を破ることになる。
(CPA)に対する CBC モードの安全性は破られる。

EN

The product generates and uses a predictable initialization Vector (IV) with Cipher Block Chaining (CBC) Mode, which causes algorithms to be susceptible to dictionary attacks when they are encrypted under the same key.

CBC mode eliminates a weakness of Electronic Code
Book (ECB) mode by allowing identical plaintext blocks to
be encrypted to different ciphertext blocks. This is
possible by the XOR-ing of an IV with the initial plaintext
block so that every plaintext block in the chain is XOR'd
with a different value before encryption. If IVs are
reused, then identical plaintexts would be encrypted to
identical ciphertexts. However, even if IVs are not
identical but are predictable, then they still break the
security of CBC mode against Chosen Plaintext Attacks
(CPA).

Scope: Confidentiality / Impact: Read Application Data
NIST recommends two methods of generating unpredictable IVs for CBC mode [REF-1172]. The first is to generate the IV randomly. The second method is to encrypt a nonce with the same key and cipher to be used to encrypt the plaintext. In this case the nonce must be unique but can be predictable, since the block cipher will act as a pseudo random permutation.
MITRE公式ページ — CWE-329