首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >澄清甲骨文填充攻击中“01”的起源?

澄清甲骨文填充攻击中“01”的起源?
EN

Cryptography用户
提问于 2016-07-09 17:47:00
回答 1查看 372关注 0票数 2

我在这里找到了我认为是对甲骨文填充攻击的一个简单的解释:http://robertheaton.com/2013/07/29/padding-oracle-attack/

然而,我被这里的专家们认为很容易找到的东西弄糊涂了。

当您打开链接并浏览到题为“操纵密码文本”的分节时,有一条语句说.

如果服务器说我们已经生成了一个带有有效填充的明文,那么我们可以很好地确定P2'[16]必须是01

我无法理解为什么01的值意味着填充是OK的。我知道,根据PKCS#5,获得01作为最后一个字节的唯一方法是只有1字节的填充。但是根据这个页面上的例子,我没有看到任何表明数据有1字节填充的东西。因此,我不明白为什么01的结果被认为是成功的。

是否有人能够查看文档并建议01来自何处?

EN

回答 1

Cryptography用户

回答已采纳

发布于 2016-07-09 18:31:26

实际上,我们并不关心原始消息的填充量;我们关心修改后的明文(即修改后的密文的解密结果)是否有良好的填充。

如果最后一个块有以下模式之一,则填充将有效:

XX XX XX XX XX XX XX 01 XX XX XX XX XX XX 02 02 XX XX XX XX XX 03 03 03 XX XX XX XX 04 04 04 04 XX XX XX 05 05 05 05 05

(其中XX是任意字节值)。如果我们修改密文,然后解密器解密并找到一个有效的填充,那么我们就知道最后一个块中的值就是这些模式之一。

现在,为什么我们一开始认为第一个,而实质上忽略了其他?那么,对于随机更改(即,如果攻击者处于攻击的初始阶段,并且可能没有关于解密的信息),那么最后一个块将具有概率为1/256的最后一个字节01;其余的选项的概率总计将小于1/65280,因此以相当高的概率接受明文的最后字节表示明文的最后一个字节是01

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

https://crypto.stackexchange.com/questions/37608

复制
相关文章

相似问题

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