爱丽丝使用OFB模式加密发送给Bob的电子邮件,但她总是使用相同的IV加密电子邮件,而不是使用随机生成的IVs。Charlie以某种方式获得了以下数据:
Charlie还得到Alice新加密消息的副本,前两个块的前8位分别是0x01010010和0x01101001。
请导出明文前两个块的前8位。
发布于 2019-09-14 05:14:09
由于OFB通过加密IV生成密钥流,然后对前一个密钥流块进行加密,通过重用IV,密钥流将是相同的。由于XOR是结合的和可交换的,所以我们可以导出:
a ⊕ b = c
(a ⊕ b) ⊕ b = (c) ⊕ b
a ⊕ (b ⊕ b) = c ⊕ b
a ⊕ 0 = c ⊕ b
a = c ⊕ b换言之:
keystream ⊕ plaintext = ciphertext (from the diagram)
keystream = ciphertext ⊕ plaintext因为您有前8位的密文和明文,所以您可以恢复密钥流的前8位。然后,您可以使用相同的方法解密未知的明文:
0b11010101 ⊕ 0b01111001 = 0b10101100 (ciphertext1 ⊕ plaintext1 = keystream)
0b10101100 ⊕ 0b01010010 = 0b11111110 (keystream ⊕ ciphertext2 = plaintext2)因此,新消息的第一个块的前8位是0b11111110。使用相同的方法,您应该能够找出第二个块。
https://security.stackexchange.com/questions/218026
复制相似问题