【问题标题】:Breaking a XOR with repeating key and counter用重复键和计数器打破异或
【发布时间】:2019-11-05 06:32:00
【问题描述】:

我得到了一个练习,我必须用重复的键和计数器来打破异或。 我不知道密钥,也不知道它的长度,也不知道计数器的值。

我有:

PT1 xor K = C1 
PT2 xor K = C2 
PT3 xor K = C3 

所以:

C1 xor C2 = PT1 xor PT2 xor K xor K = PT1 xor PT2 xor 0

所以:

0 xor C1 xor C2 = PT1 xor PT2
0 xor C1 xor C3 = PT1 xor PT3
0 Xor C2 xor C3 = PT2 xor PT3

其中 K 是密钥,C 是密码,PT 是纯文本。

我不知道该怎么办。你能给我一个提示吗? :)

【问题讨论】:

  • 我没有看到计数器,也没有看到 长度未知的密钥
  • @JamesReinstateMonicaPolk 这是一个奇怪的中间名。我说的当然是“恢复”,而不是“莫妮卡”,我不敢说什么:)
  • 长度未知的key是K

标签: cryptography xor


【解决方案1】:

这是一个满足您的问题的解决方案

PT1(5)   K(9)   C1(12)
PT2(7)   K(9)   C2(14)
PT3(9)   K(9)   C3(0)

0 xor C1 xor C2 = PT1 xor PT2
0 xor C1 xor C3 = PT1 xor PT3
0 Xor C2 xor C3 = PT2 xor PT3

So in the case i built:
0 xor C1(12) xor C2(14) = PT1(5) xor PT2(7)
0 xor C1(12) xor C3(0) =  PT1(5) xor PT3(9)
0 Xor C2(14) xor C3(0) =  PT2(7) xor PT3(9)

在弱情况下,你可以像这样得到 K:

你可以这样得到K:

In [519]: 1^5                                                                                                                                  
Out[519]: 4

In [520]: 2^5                                                                                                                                  
Out[520]: 7

In [521]: 3^5                                                                                                                                  
Out[521]: 6

In [522]: 6^7^4                                                                                                                                
Out[522]: 5

因此,如果使用异或密码的弱密钥,您可以通过对密码进行异或来破解密钥(并非在所有情况下都有效,只有非常罕见的一种)。但这对帮助您解决问题有帮助吗?

PT1 xor K = C1   if c1 is 4
PT2 xor K = C2   if c2 is 7
PT3 xor K = C3   if c2 is 6

你知道 K 是 5。从那里你可以通过反向执行 XOR 得到 PT:

c1 (4) ^ K (5) = PT1
c2 (7) ^ K (5) = PT2
c3 (6) ^ K (5) = PT3

回顾一下,XOR c1^c2^c3 得到 K,然后你可以得到相应的 PT(1-3)。但这仅在极少数情况下有效,但它有帮助吗?

如果您有任何价值观,请告诉我。我会尝试从头开始重新创建一些东西

这是一个例子,我把C1、C2、C3一起XORED得到一个key,然后PT1-3就填好了

PT1(10)  K(12)   C1(6)
PT2(4)   K(12)   C2(8)
PT3(14)  K(12)   C3(2)


0 xor C1(6) xor C2(8) =  PT1(10) xor PT2(4)    
0 xor C1(6) xor C3(2) =  PT1(10) xor PT3(14)  
0 Xor C2(8) xor C3(2) =  PT2(4)  xor PT3(14)  

这实际上取决于您的作业期望您如何获得密钥。我希望所有这些都有帮助,加密很有趣。我提供了一些路径,希望对你有所帮助。

【讨论】:

  • 我只有密文。但我认为这会有所帮助:) 谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-04
  • 1970-01-01
  • 1970-01-01
  • 2016-02-24
  • 2019-03-11
  • 1970-01-01
  • 2017-02-23
相关资源
最近更新 更多