【问题标题】:Does the security of Skein as a hash imply the security of Threefish as a block cipher?Skein 作为散列的安全性是否意味着 Threefish 作为块密码的安全性?
【发布时间】:2010-10-24 02:25:52
【问题描述】:

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

【问题讨论】:

    标签: cryptography theory sha-3 skein


    【解决方案1】:

    不。 Skein 的安全性并不意味着 Threefish 的安全性。积极地说,如果有人发现了 Threefish 的弱点,那么这并不意味着 Skein 也不安全。

    然而,这个问题非常有趣,它也适用于其他哈希函数。 Skein 使用经过一些修改的 Davis-Meyer 结构。 MD5、SHA1 和许多其他哈希函数也使用这种 Davis-Meyer 结构,因此它们原则上基于分组密码。只是在 MD5 或 SHA1 的情况下,分组密码没有名称,而且我不知道有多少关于这些结构的适用性的研究。

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

    此外,如果 E 是一个好的分组密码,那么这也不意味着它提供了一个好的散列函数。微软不得不通过他们在 XBOX 中使用的哈希来艰难地学习这一点。此散列基于块密码 TEA,它的弱点对于块密码来说微不足道,但在用于散列函数时被证明是致命的。

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

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

    【讨论】:

    • 谢谢 - 现在很有意义:)
    【解决方案2】:

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

    【讨论】:

    • 我认为这不一定成立。如果在 Skein 中使用 Threefish 是不安全的,那并不一定意味着有关 Threefish 的其他使用。此外,有许多关于 Skein 在 Threefish 方面的安全性的证据,但我不确定这在实践层面对 Threefish 对加密应用程序的安全性意味着什么。
    猜你喜欢
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    • 2011-06-29
    • 1970-01-01
    • 2011-02-05
    • 2012-12-17
    • 2011-04-17
    相关资源
    最近更新 更多