gpt4 book ai didi

hash - 生成 SHA256/512 哈希时,是否至少需要哈希 'safe' 数据量?

转载 作者:行者123 更新时间:2023-12-02 08:40:10 32 4
gpt4 key购买 nike

我听说在创建哈希时,如果使用小文件或大量数据,则生成的哈希更有可能发生冲突。如果这是真的,是否应该使用最小的“安全”数据量来确保这种情况不会发生?

我想这个问题也可以表述为:

可以安全可靠地散列的最小数据量是多少?

最佳答案

哈希函数接受任意(或至少非常高)长度的输入,并生成固定长度的输出。可能的输入多于可能的输出,因此必然存在冲突。安全哈希函数的全部要点在于它是“抗冲突”的,这意味着虽然在数学上必须存在冲突,但实际计算冲突却非常非常困难。因此,SHA-256 和 SHA-512 不存在已知的冲突,而最著名的计算冲突的方法(有意)的成本是如此之高,以至于不会很快得到应用(一个世纪的整个美国联邦预算只能购买这项任务的一小部分)。

因此,如果它不能故意实际完成,那么您可以预期不会因为(坏)运气而发生碰撞。

此外,如果您将自己限制为非常短的输入,则有可能根本不会发生碰撞。。例如,如果您考虑 12 字节输入:则有 296 种可能的 12 字节序列。这是巨大的(超出了当今技术所能列举的范围)。然而,SHA-256 会将每个输入映射到一个 256 位值,即更宽空间中的值(大小为 2256)。我们无法正式证明这一点,但很可能所有这 296 哈希值彼此不同。请注意,这没有实际后果:因为没有碰撞而未发现碰撞,与因为撞到碰撞的可能性极小而未发现碰撞之间没有可测量的差异。

只是为了说明 SHA-256 发生碰撞的风险有多低:考虑一下您被从本地动物园或私有(private)所有者逃脱的 gorilla 咬伤的风险。不太可能?是的,但它仍然有可能发生:似乎有一只 gorilla 从 Dallas zoo in 2004 逃脱了。并造成四人受伤;另一只 gorilla 从 same zoo in 2010 逃脱。假设整个地球上每 6 年就会出现一只狂暴的 gorilla (不仅在达拉斯地区),而您恰好是 65 亿人口中走在这条路上的不幸小伙子,那么您将面临严重的风险。据估计,每天有二分之一43.7受到 gorilla 的 body 伤害。现在,让 100000 台 PC 寻找 SHA-256 的冲突。每天发生碰撞的几率接近二分之一75 - 比愤怒的猿类发生碰撞的几率低十亿。结论是,如果您害怕 SHA-256 碰撞,但又没有随身携带一把上膛的霰弹枪,那么您就搞错了优先顺序。另外,不要惹恼德克萨斯州。

关于hash - 生成 SHA256/512 哈希时,是否至少需要哈希 'safe' 数据量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4676828/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com