密碼學基礎與應用
在CTR模式中,誤用相同的金鑰與相同的nonce加密了兩則訊息。就某個位置的位元組而言,第1則明文 P₁ 為 01001000(ASCII的「H」),其密文 C₁ 為 01110100,第2則密文 C₂ 為 01010101。攻擊者知道 P₁ 時,相同位置的第2則明文 P₂ 為下列何者?
- A00100001
- B00111100
- C01101001
查看答案與解析
正確答案:C. 01101001
金鑰與nonce相同時金鑰串流 K 也相同,因此 C₁ = P₁ ⊕ K、C₂ = P₂ ⊕ K。先由 K = P₁ ⊕ C₁ = 01001000 ⊕ 01110100 = 00111100 得知金鑰串流,再得 P₂ = C₂ ⊕ K = 01010101 ⊕ 00111100 = 01101001(ASCII的「i」)。即使不知道金鑰,只要知道其中一則明文,就能直接求出另一則明文。因此在CTR模式與GCM中,同一把金鑰絕不重複使用相同的nonce,是不可或缺的條件。
- A. 00100001 是 C₁ ⊕ C₂,等於 P₁ ⊕ P₂。再與 P₁ XOR 就能求出 P₂。
- B. 00111100 是由 P₁ ⊕ C₁ 求得的金鑰串流。把它與 C₂ XOR 就得到 P₂。
- C. 正確。C₂ ⊕ (P₁ ⊕ C₁) = 01101001。