首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有一个哈希函数,其安全性可以通过长度来扩展?

是否有一个哈希函数,其安全性可以通过长度来扩展?
EN

Cryptography用户
提问于 2016-12-11 18:39:08
回答 3查看 242关注 0票数 2

一些旧的哈希函数已被证明是不安全的。这主要是因为两个原因:

  1. 机器的计算能力正在增加。
  2. 人们已经发现了这些散列函数的算法缺陷。

严格地说,这两个理由有很大不同的含义。第一种方法可以通过扩展块大小的长度、轮数或算法中使用的其他变量来补救。但第二部分揭示了算法设计中存在的内在缺陷。

哈希函数通常基于更简单的密码原语,从哈希函数本身的安全性到底层基元的安全性应该是可证明的。因此,我想知道是否存在一个哈希函数,其算法设计是可证明的安全的(考虑到底层原语是安全的),它的总体安全性仅取决于变量的长度。这样的算法可以很容易地扩展,以应付不断增加的计算能力,而无需付出很大的努力。

有这样一个可扩展的算法吗?如果是,那又是什么呢?为什么人们不断发明新的算法而不是扩展这个算法呢?如果没有,为什么?

EN

回答 3

Cryptography用户

回答已采纳

发布于 2016-12-12 11:38:18

注意:这个答案假设这是关于安全的哈希应用程序,而不是密码散列,这是一组与其他属性不同的算法。

你的问题中有几个假设可能不完全适用:

一些旧的哈希函数已被证明是不安全的。这主要是因为两个原因:

  1. 机器的计算能力正在增加。
  2. 人们已经发现了这些散列函数的算法缺陷。

我们仍在努力寻找SHA-1中的碰撞,尽管在理论意义上它被认为是破碎的。对于大多数应用程序来说,MD5的哈希输出大小还不够大,但是使用蛮力查找预图像甚至碰撞仍然是一个相当大的问题。

在可预见的将来,尽管SHA-224提供的安全性低于128位(许多人认为这是你现在应该努力争取的最低安全性),但在可预见的将来,SHA-2和SHA-3的输出大小是无法达到的--而且也是遥不可及的。

碰撞攻击所需的计算能力的数量呈指数增长(每两个比特的输出大小增加一倍)。因此,计算能力的大小并没有真正威胁到大输出的安全散列的安全性。

哈希函数通常基于更简单的密码原语,从哈希函数本身的安全性到底层基元的安全性应该是可证明的。因此,我想知道是否存在一个哈希函数,其算法设计是可证明的安全的(考虑到底层原语是安全的),它的总体安全性仅取决于变量的长度。这样的算法可以很容易地扩展,以应付不断增加的计算能力,而无需付出很大的努力。有这样一个可扩展的算法吗?如果是,那又是什么呢?

大多数哈希结构都是按照您所描述的方式构建的。Merkle rd用于SHA-2,而SHA-3使用海绵结构(使用函数f作为底层原语)。

通过简单地更改变量,基本原语通常不能扩展到内部状态的任何长度/大小。这些函数使用常量和算法来处理特定的单词大小。可以为内部状态和输出大小的不同大小创建基础原语的多个版本。这正是SHA-2和SHA-3 (Keccak)所发生的情况.

然而,没有必要超出256位的安全性。基础原语/哈希结构要么被破坏,要么结构永远保持安全。

为什么人们不断发明新的算法而不是扩展这个算法呢?

因为我们怀疑底层的原始人和建筑本身。即使是我们认为安全的块(我们不能证明两者都是安全的)在安全哈希函数中也可能不安全。此外,即使哈希在形式上仍然是安全的,构造的特定属性也可能会出现问题。例如,沙-2易受长度扩展的影响,而SHA-3则不容易扩展。

别低估了研究人员的好奇心和动力。新哈希函数的发布不需要任何理论上的理由。

票数 4
EN

Cryptography用户

发布于 2016-12-13 00:05:48

我同意Maarten的观点,即你的问题背后的理由似乎是错误的。

但是,至少有一个这样的哈希函数是已知的;VSH-DL哈希函数,它基于离散日志问题的一个变体。

票数 2
EN

Cryptography用户

发布于 2016-12-12 08:01:41

现代密码散列函数(PBKDF2bcrypt氪石Argon2)都有一个成本参数。成本参数越高,函数运行的速度就越慢,或者使用的内存越多。这可以用来跟上不断增长的计算能力。

即使有成本参数,新的发展有时也需要新的算法。例如,PBKDF2有一个增加计算次数的成本参数。然而,它仍然很容易并行化,并且可以很容易地在GPU或专用硬件上计算。在合同中,scrypt使用了大量的内存,这使得在其他硬件上的实现更加昂贵。Argon2具有计算时间和内存开销参数。

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

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

复制
相关文章

相似问题

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