Cbc
使用 XOR 加密解密具有已知 IV 的簡單 CBC 消息
我收到了一條使用 CBC 加密的密文消息。我知道塊大小是 12 個字節,並且我知道第一個塊的明文值。
我也知道加密函式是一個簡單的異或:
$$ C_i = K \oplus (M_i \oplus C_{i-1}) $$ 在哪裡 $ C_0 = IV $ .
現在我應該能夠推斷出完整的純文字消息,但我迷路了。我應該在這裡執行什麼樣的 XOR’ing 魔法來獲取純文字?
這很容易: $ C_1 = K \oplus (M_1 \oplus C_0) $ . 你知道 $ C_1 $ , $ M_1 $ 而且當然 $ C_0 $ ,四。您可以輕鬆地將其重寫為 $ K = C_0 \oplus C_1 \oplus M_1 $ .
剩下的只是解密 $ K $ . 在異或加密的情況下,解密和加密一樣,所以 $ M_i = (K \oplus C_i) \oplus C_{i-1} $ .
筆記:
- XOR 是關聯和交換的,因此您可以省略公式中的括號並像我上面所做的那樣重寫公式。
- 這顯然不適用於安全分組密碼,因為檢索 $ K $ 即使給定已知的明文/密文對,也不應該是可能的。