Pet*_*erM 23 hash checksum sha
我听说在创建哈希时,如果使用小文件或数据量,结果哈希可能会更容易发生冲突.如果这是真的,是否应该使用最少的"安全"数据来确保不会发生这种情况?
我猜这个问题也可以表达为:
可以安全可靠地散列的最小数据量是多少?
Tho*_*nin 90
散列函数接受任意(或至少非常高)长度的输入,并产生固定长度的输出.可能的输入多于可能的输出,因此必须存在冲突.安全散列函数的重点在于它是"抗冲突的",这意味着虽然碰撞必须在数学上存在,但实际计算碰撞却非常困难.因此,SHA-256和SHA-512没有已知的冲突,并且最有名的计算方法(通过故意这样做)是非常昂贵的,以至于它们不会很快应用(整个美国联邦预算世纪只会购买一小部分任务).
所以,如果不能有目的地进行实际操作,你可以期待不会因(坏)运气而碰撞.
此外,如果你限制自己很短的投入,有机会的话,有没有冲突可言.例如,如果考虑12字节输入:有2 96个可能的12个字节序列.这是巨大的(超过今天的技术可以列举).然而,SHA-256会将每个输入映射到256位值,即更宽的空间(大小为2 256)中的值.我们无法正式证明它,但可能是所有这些2 96个哈希值彼此不同.请注意,这没有实际结果:没有发现碰撞因为没有碰撞而没有发现碰撞之间没有可测量的差异,因为碰到它是极不可能的.
只是为了说明SHA-256的碰撞风险是多么低:考虑一下从当地动物园或私人所有者逃出的大猩猩所造成的风险.不可能?是的,但它仍然可能发生:似乎2004年一只大猩猩逃离了达拉斯动物园,并造成四人受伤; 另一只大猩猩在2010年逃离了同一个动物园.假设整个地球上每6年只有一只狂暴的大猩猩(不仅是在达拉斯地区)而且你恰好是一个不走运的小伙子,在他的道路上,在65亿人口的人口中,然后是严重的风险-bodily伤害逐大猩猩可估计在约1比2 43.7每天.现在,需要10 万台PC,并让他们为SHA-256找到碰撞.发生碰撞的几率接近每天2比75,比愤怒的猿更可能超过10亿.结论是,如果你担心SHA-256碰撞,但是在任何时候都没有随身携带霰弹枪,那么你的优先级就是错误的.另外,不要乱德州.
| 归档时间: |
|
| 查看次数: |
15737 次 |
| 最近记录: |