MD5、SHA1、SHA2容易受到长度扩展攻击( 维基百科:长度扩展攻击 )的攻击。
如果我知道最后一个字节,也可以从H(\text{message}[1..n-1])生成H(\text{message}[1..n])吗?
这与MD5:反向扩展攻击是可能的吗?的问题本质上是一样的
当我只想在任何一个MD5、SHA1或SHA2中将消息缩短一个字节时,这会成为可能吗?或者我能至少减少蛮力攻击的计算成本吗?
发布于 2020-07-30 10:23:55
不,目前连MD5都不够坏。
MD5和SHA-1/2都使用简单的Merkle结构.在MD结构中,您得到的基本内容是(对于分为两个消息块的消息):
其中,C是已知的常量,B_i由消息块组成,其中包含一个填充的最后一个块。
现在,如果H'是可逆的,那么(内部填充的)单个块消息也是可逆的。H'的每个输出位都依赖于所有的输入位。因此,要生成一个新的哈希,您需要知道所有的输入位,甚至是之前产生的输入位。
如果消息可以包含除其中一条消息必须短一个字节以外的其他数据,则会更容易。这转化为冲突搜索,限制最后一个块有不同的输入数据。我不认为这在目前也是可行的,但它将给予一个对手一些优势,因为它至少取决于碰撞阻力,这是破坏的SHA-1和破坏的MD5。
https://crypto.stackexchange.com/questions/82145
复制相似问题