首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >二次Pad攻击

二次Pad攻击
EN

Stack Overflow用户
提问于 2016-06-20 18:24:15
回答 1查看 6.9K关注 0票数 0

目前我正在做密码学方面的在线挑战。一个挑战是破解一个“一次性脚垫”。我想请你们给我个提示。我现在被困在这里一段时间了。

密码文本如下所示:

代码语言:javascript
复制
4de61dd9dab5e0701f5e664ff522de12bd588051da4d3f62df
3c3303e696139af0280308f5720d5e45efaa03bc6d37d84294
06b25cded0e2fb74045f681bd4378a5bba10901fd6513b2cc0
343c0aa3c6138df02d1f46e63a090d07f3b602bc653bcd5ad1
00fa5890c4f0e062175d2348bd30c25dbb44c951c0503f6fd8
3d3114b28e1390b4611146e53a091c45f8bc01f56f2ac1459f
07be1dc2ccf8fc67131a3355f326c957ba438403cc03362adf
213b14b5ca5290b537155aa1680d0b54eff916bc7e3fcc06d1
15fc5990c1f4e574565b665cf22cce12ac5e8a04d24b7a3dca
3b3a09abc60191a533134da17c070c07eeb803fd207efc4294
54f552dccdb5fd64115d234fbd2ad912eb7d841fc142372adc
3c324684871599b92f0340ee68065c09

(密码的每一行都有50个字符)

我知道这个垫子有50个字符长。因此已经使用了大约11.7次。我也在网上做过很多研究,所以我知道

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

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

所以我XORed第一行和第二行(我假设它是额外转换为HEX)。结果如下:

代码语言:javascript
复制
71d51e3f4ca67a80375d6eba872f805752f283edb77ae7204b

在此之后,我将其转换为ASCII,并收到以下消息:

代码语言:javascript
复制
qÕ?L¦z7]nº/WRòí·zç K

所以在这里我知道有些地方不对劲,但是我试着用我的结果解密第一行,并希望我得到一个结果。

但令人惊讶的是,结果是

代码语言:javascript
复制
VæÙÚµàp^rOõ"Þ½XQÚM?bß

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

(预先谢谢:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-21 16:49:31

你在看十六进制的角色。两个十六进制字符是一个字节。单个字节是一个ASCII字符。在我看来,你必须把第1行和第2行放在一起(等等)。字节中的值似乎也显示了这一点。换句话说,密码已经被使用了大约5.8次。

代码语言:javascript
复制
4de61dd9dab5e0701f5e664ff522de12bd588051da4d3f62df3c3303e696139af0280308f5720d5e45efaa03bc6d37d84294
06b25cded0e2fb74045f681bd4378a5bba10901fd6513b2cc0343c0aa3c6138df02d1f46e63a090d07f3b602bc653bcd5ad1
00fa5890c4f0e062175d2348bd30c25dbb44c951c0503f6fd83d3114b28e1390b4611146e53a091c45f8bc01f56f2ac1459f
07be1dc2ccf8fc67131a3355f326c957ba438403cc03362adf213b14b5ca5290b537155aa1680d0b54eff916bc7e3fcc06d1
15fc5990c1f4e574565b665cf22cce12ac5e8a04d24b7a3dca3b3a09abc60191a533134da17c070c07eeb803fd207efc4294
54f552dccdb5fd64115d234fbd2ad912eb7d841fc142372adc3c324684871599b92f0340ee68065c09

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

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

https://stackoverflow.com/questions/37929297

复制
相关文章

相似问题

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