【问题标题】:How decrypt keccak algorithm [closed]如何解密keccak算法[关闭]
【发布时间】:2013-05-16 01:30:06
【问题描述】:

我正在准备关于 Keccak (http://keccak.noekeon.org/) 的演示文稿。

在那次演示中,我想加密一个纯文本——这会带来以下问题:

  1. 填充函数的具体作用是什么(我们如何从 64 位获得 1600 位的立方体)?
  2. 文本加密后,如何再次解密?

【问题讨论】:

  • 等等,我有这个权利吗?您正在为 Keccak 准备一个演示文稿,其中您将其作为 加密 函数进行演示?
  • @NikBougalis 我确定 OP 正在谈论 Keccak 的双工模式,可用于经过身份验证的加密。 :P

标签: cryptography encryption keccak sha-3


【解决方案1】:

您不能“解密” Keccak 的输出,因为它不是加密算法,而是单向哈希函数。相反,您可以使用它来验证哈希值确实是特定文本的哈希输出(您必须已经知道),只需计算文本的哈希,并将输出与第一个哈希值进行比较。

【讨论】:

  • 虽然我怀疑 OP 是否暗示了这种实现……在其身份验证加密模式下使用 Keccak 时会出现“解密”(通过使用双工结构,而不是海绵结构)。 ;)
  • 是的,虽然这种模式只是在 Keccak 参考文献中有所暗示,并未完全说明,所以这个问题仍然无法明确回答。
  • 那是真的……(“明确” = 好词!)我想发表评论的冲动是因为我最近遇到了太多拿着剪刀跑步的人( a scissors example) 只是为了将 SpongeWrap 用作 AEAD 密码和/或基于 Keccak 的流密码。像this one 这样的论文经常会激发一小群人大喊“Keccak”并询问“解密”,而该论文仅提到 Spongent 是其中之一。我们最好通过 Confused-About-Keccak 问答为未来做好准备。 ;)
【解决方案2】:

因为 Keccak 使用海绵结构,所以海绵功能需要填充。根据排列r 的宽度,这里我猜你使用1600 位,填充函数将10*1 附加到输入文本以形成长度为r 的倍数的填充字符串。这就是为什么您从 64 位文本中获得 1600 位的原因。

当您对文本消息应用 Keccak 算法时,您会得到一个“消息摘要”。 Keccak 是 SHA3 的获胜者,其中 SHA 代表 Secure Hash Algorithm。你可以从它的名字看出 Keccak 是一个加密哈希函数,它具有三个属性:

  • 原像抗性
  • 二次预像抗性
  • 防撞

这些基本上意味着 Keccek 是一种单向函数,很难找到具有相同消息摘要的两条消息,反之亦然。第一点只是告诉您无法从消息摘要中恢复消息。

【讨论】:

    猜你喜欢
    • 2013-10-11
    • 2013-01-23
    • 2013-02-22
    • 2011-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-06
    相关资源
    最近更新 更多