首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >密钥加密问题(OFB模式)

密钥加密问题(OFB模式)
EN

Security用户
提问于 2019-09-14 04:47:35
回答 1查看 731关注 0票数 -1

爱丽丝使用OFB模式加密发送给Bob的电子邮件,但她总是使用相同的IV加密电子邮件,而不是使用随机生成的IVs。Charlie以某种方式获得了以下数据:

  • 第一个密文块的前8位: 0x11010101
  • 第一个明文块的前8位: 0x01111001
  • 第二个密文块的前8位: 0x10100100
  • 第二个明文块的前8位: 0x11001010

Charlie还得到Alice新加密消息的副本,前两个块的前8位分别是0x01010010和0x01101001。

请导出明文前两个块的前8位。

EN

回答 1

Security用户

发布于 2019-09-14 05:14:09

由于OFB通过加密IV生成密钥流,然后对前一个密钥流块进行加密,通过重用IV,密钥流将是相同的。由于XOR是结合的和可交换的,所以我们可以导出:

代码语言:javascript
复制
a ⊕ b = c
(a ⊕ b) ⊕ b = (c) ⊕ b
a ⊕ (b ⊕ b) = c ⊕ b
a ⊕ 0 = c ⊕ b
a = c ⊕ b

换言之:

代码语言:javascript
复制
keystream ⊕ plaintext = ciphertext (from the diagram)
keystream = ciphertext ⊕ plaintext

因为您有前8位的密文和明文,所以您可以恢复密钥流的前8位。然后,您可以使用相同的方法解密未知的明文:

代码语言:javascript
复制
0b11010101 ⊕ 0b01111001 = 0b10101100 (ciphertext1 ⊕ plaintext1 = keystream)
0b10101100 ⊕ 0b01010010 = 0b11111110 (keystream ⊕ ciphertext2 = plaintext2)

因此,新消息的第一个块的前8位是0b11111110。使用相同的方法,您应该能够找出第二个块。

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/218026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档