首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SHACAL-2与AES作为安全哈希的底层分组密码(也称为SHA-256)

SHACAL-2与AES作为安全哈希的底层分组密码(也称为SHA-256)
EN

Cryptography用户
提问于 2015-04-25 10:37:15
回答 1查看 1.1K关注 0票数 1

散列方案SHA-256 (例如)是基于Merkle构造的,其底层压缩函数基于在Davies模式中配置的块密码SHACAL-2。SHACAL-2有80轮,每512位数据块(这是插入块密码的关键输入)。作为另一种选择,我们可以使用带有256位键的AES (因此,散列数据应该被划分为256位块,作为密钥插入),并以同样的方式使用Davies Meyer原理。从表面上看,这样做的效率要高得多,因为AES-256需要14轮,或者总共需要28轮才能处理512位数据,而theSHACAL 2则需要80轮。有什么标准可以这样做吗?

EN

回答 1

Cryptography用户

发布于 2015-04-25 13:05:01

使用AES作为Davies压缩函数的

是个坏主意:

  1. 它的块大小为128位,将其碰撞电阻限制在64位,这是相当弱的。这个限制可以通过使用256位块大小的Rijndael来克服,但是您需要使用更多的回合。
  2. AES被设计用来处理随机选择的密钥,而不是攻击者选择的密钥。AES遭受相关的密钥攻击。虽然我不知道发表了一种利用这个方法来发现碰撞的方法,但它肯定破坏了我的信心。您可以增加回合数来弥补这一点,但这会降低性能。请参阅如果使用AES-256‘S相关的关键弱点来构建哈希,是否可以利用它?
  3. 设计用于哈希函数的块密码具有非常便宜的密钥设置。虽然AES不像Blowfish那么昂贵,但更改密钥仍然会对性能产生明显的影响。

更少的回合并不一定意味着更有效率:

比较不同密码原语的绝对轮数是毫无意义的。您可以设计一个原语,使其具有许多廉价和简单的轮,或者更少的更昂贵和更复杂的轮,从而获得类似的性能。

请参阅为什么SHA-1有80发子弹?

在没有特殊指令的CPU上,AES没有那么快,比如AES-NI,可能比某些CPU上的SHA-2还要慢。

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

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

复制
相关文章

相似问题

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