两次垫攻击

时间:2016-06-20 18:24:15

标签: cryptography cracking


目前我正在进行密码学的在线挑战。一个挑战是破解" One Time Pad"。我想请你们暗示一下。我现在坚持了一段时间。

密文如下:

4de61dd9dab5e0701f5e664ff522de12bd588051da4d3f62df
3c3303e696139af0280308f5720d5e45efaa03bc6d37d84294
06b25cded0e2fb74045f681bd4378a5bba10901fd6513b2cc0
343c0aa3c6138df02d1f46e63a090d07f3b602bc653bcd5ad1
00fa5890c4f0e062175d2348bd30c25dbb44c951c0503f6fd8
3d3114b28e1390b4611146e53a091c45f8bc01f56f2ac1459f
07be1dc2ccf8fc67131a3355f326c957ba438403cc03362adf
213b14b5ca5290b537155aa1680d0b54eff916bc7e3fcc06d1
15fc5990c1f4e574565b665cf22cce12ac5e8a04d24b7a3dca
3b3a09abc60191a533134da17c070c07eeb803fd207efc4294
54f552dccdb5fd64115d234fbd2ad912eb7d841fc142372adc
3c324684871599b92f0340ee68065c09

(密码的每一行有50个字符btw)
我知道垫子长50个字符。所以已经使用了大约11.7次。 我也在网上做了很多研究,所以我知道

M =消息| P = Pad | C =密码

  • M1 = C1 XOR P1
  • C1 XOR C2 = M1 XOR M2

所以我把第一行与第二行排成一行(我假设它被另外转换为HEX)。结果如下:

71d51e3f4ca67a80375d6eba872f805752f283edb77ae7204b

在此之后我将其转换为ASCII并收到:

qÕ?L¦z7]nº/WRòí·zç K

所以在这里我知道出了什么问题,但是我试着用我的结果解密第一行,希望得到一个结果。
但令人惊讶的是,结果是

VæÙÚµàp^rOõ"Þ½XQÚM?bß

我做错了什么?什么是解决这一挑战的可能方法?互联网上没有任何东西真的帮助了我。

提前致谢:)

1 个答案:

答案 0 :(得分:1)

您正在查看十六进制字符。两个十六进制字符是单个字节。单个字节是一个ASCII字符。在我看来,你必须采取1号线和1号线。 2在一起(等)。字节中的值似乎也显示了这一点。换句话说,密码已被使用了大约5.8次。

4de61dd9dab5e0701f5e664ff522de12bd588051da4d3f62df3c3303e696139af0280308f5720d5e45efaa03bc6d37d84294
06b25cded0e2fb74045f681bd4378a5bba10901fd6513b2cc0343c0aa3c6138df02d1f46e63a090d07f3b602bc653bcd5ad1
00fa5890c4f0e062175d2348bd30c25dbb44c951c0503f6fd83d3114b28e1390b4611146e53a091c45f8bc01f56f2ac1459f
07be1dc2ccf8fc67131a3355f326c957ba438403cc03362adf213b14b5ca5290b537155aa1680d0b54eff916bc7e3fcc06d1
15fc5990c1f4e574565b665cf22cce12ac5e8a04d24b7a3dca3b3a09abc60191a533134da17c070c07eeb803fd207efc4294
54f552dccdb5fd64115d234fbd2ad912eb7d841fc142372adc3c324684871599b92f0340ee68065c09

请注意,对值进行异或的结果不会产生ASCII;它将导致M1 XOR M2。现在如果两者都是例如数字然后'1' XOR '2'将转换为31 XOR 32(十六进制)或00110001 XOR 00110010(bin),这将导致00000011(bin),03(十六进制)或ASCII中不可打印的控制字符End-of-Text