为SHA-3提议的 Skein hash 拥有一些令人印象深刻的速度结果,我怀疑适用于三心块密码的核心 - 但是,如果Skein被批准用于SHA-3,这是否意味着三鱼被认为是安全的?也就是说,Threefish中的任何漏洞是否意味着SHA-3中存在漏洞? (因此,缺乏已知问题和对SHA-3的普遍信任对三鱼来说意味着相同)

有帮助吗?

解决方案

不。 Skein的安全性并不意味着Threefish的安全性。如果有人发现Threefish存在弱点,那么这并不意味着Skein也不安全。

然而,这个问题非常有用,也适用于其他哈希函数。 Skein使用Davis-Meyer结构进行了一些修改。 MD5,SHA1和许多其他哈希函数也使用这种Davis-Meyer结构,因此它们原则上基于分组密码。就MD5或SHA1而言,阻塞密码没有名称,我不太了解这些结构的适用程度。

良好的分组密码和良好的散列函数的要求是不同的。有点简化,如果E是分组密码,并且找不到两个密钥K,K'和两个消息M,M'是不可行的,使得E K (M)xor M = E K'(M')xor M'则E适合于使用Davis-Meyer构造散列函数。但作为分组密码安全E需要其他属性。 E必须抵制选择密文攻击,选择明文攻击等。

此外,如果E是一个好的分组密码,那么这也不意味着它提供了良好的散列函数。微软必须通过他们在XBOX中使用的哈希来学习这一点。这个散列基于分组密码TEA,它具有对于分组密码无关紧要的弱点,但在用于散列函数时证明是致命的。

公平地说,作为一个好的分组密码和适合哈希函数之间存在一些关系。例如,在这两种情况下都需要避免差异攻击。因此,一些用于构造良好的分组密码的设计方法可用于构造良好的散列函数。

我还要补充一点,SHA-3的一些建议是基于AES的。到目前为止,我还没有看到太多支持支持基于AES的哈希函数,因为AES已经是一个标准。这些哈希函数的分析与任何其他SHA-3提案一样。

其他提示

忽略我之前的回答。我误解了Skein和Threefish之间的关系。我仍然不认为Skein被批准绝对证明三鱼通常是安全的(三种鱼只有在特定方式使用时才是安全的),但它可能是一种迹象。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top