首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Keccak容量位参数

Keccak容量位参数
EN

Cryptography用户
提问于 2022-10-13 18:07:12
回答 1查看 175关注 0票数 0

我正在学习Keccak Hash算法,我对容量位参数有点困惑。我试图了解如何在python3中实现Keccak时设置容量参数。

示例:尝试使用容量=0在Keccak中获取冲突,而不考虑散列大小(假设哈希大小至少为128位)。

EN

回答 1

Cryptography用户

发布于 2022-10-14 07:30:17

在容量为零的情况下,这里是带有任意前缀和单个附加块的第二次图像前攻击(我将删除填充)。当然,这也包括了弱得多的碰撞攻击。

当容量为零时,在吸收阶段,状态S_t演化为

S_0=\mathbf 0
S_{t+1}=f(S_t\oplus P_t)

其中S_tP_t的长度(以位为单位)相同。输出纯粹是S_n的一个函数,所以如果我能够用相同的S_n创建两个消息,它们将具有相同的哈希值。

给定消息P_0\ldots P_{n-1},我可以计算S_0,\ldots,S_n。现在给定前缀P'_0\ldots P'_{n-2},我可以计算相应的S_0,S'_1,\dots,S'_{n-1}。我现在指定

P'_{n-1}:=P_{n-1}\oplus S_{n-1}\oplus S'_{n-1}

所以

S'_n=f(S'_{n-1}\oplus P'_{n-1})=f(P_{n-1}\oplus S_{n-1})=S_n.

现在有两个具有相同S_n值的消息,因此具有相同的哈希输出。

更广泛地说,如果我能够在状态的“容量位”上创建一个冲突,那么我就可以通过简单地选择下一个明文块来碰撞完整的状态。然后,状态冲突将导致哈希冲突。

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

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

复制
相关文章

相似问题

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