如果采用32位序列并对其执行CRC32,则会得到另一个32位序列;如果你做CRC32这个,你得到另一个,依此类推。很容易证明,如果你继续这样做,你最终会得到一个2 ^ 32位序列的循环,然后重新开始。
简单的问题:从256位序列开始,有没有人知道SHA256是否成立(或不成立)?在重新开始之前,类似的过程会循环通过所有2 ^ 256个可能的256位序列的循环吗?或者这个哈希中是否已知(或可能)更短的循环?
布赖恩
答案 0 :(得分:2)
SHA256的设计不符合2 ^ 256循环的属性。但是,据我所知,没有人证明没有这样的循环。此外,还没有任何更短的循环,因为如果有人发现了一些,那么他也会发现碰撞,并且从加密散列函数的性质来看,它很难实现。
所以,既然没有人没有证明它,是的,那么存在2 ^ 256周期的可能性。但是,我不太可能打赌我的左睾丸。 : - )
我还要注意,即使是最好的加密专家,IMO设计一个具有2 ^ 256循环的加密哈希函数也是非常困难的。