4

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

4

2 回答 2

5

没有。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 提案一样。

于 2009-05-09T08:39:13.907 回答
0

忽略我之前的回答。我误解了 Skein 和 Threefish 之间的关系。我仍然不认为 Skein 获得批准绝对证明 Threefish 通常是安全的(Threefish 可能仅在以特定方式使用时才是安全的),但这将是一个迹象。

于 2009-05-06T04:30:37.953 回答