2013-05-21 48 views
0

我正在准备关于Keccak的演示文稿(http://keccak.noekeon.org/)。如何解密keccak算法

在该演示文稿,我想一个纯文本加密 - 这带来了以下几个问题:

  1. 什么是填充功能的确切作用(我们如何获得的1600位的立方体从64位)?
  2. 对文本进行加密后,我们如何才能解密它呢?
+1

等等,我有这个权利吗?您正在为Keccak准备一份演示文稿,将其作为**加密功能演示出来? –

+1

@NikBougalis我确信OP正在谈论Keccak的双工模式,它可以用于认证加密。 :P – CodesInChaos

回答

4

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

+0

虽然我怀疑OP是在暗示那个实现......当在其认证加密模式下使用Keccak时(通过使用双工结构而不是海绵结构),存在“解密”。 ;) –

+1

是的,虽然这种模式只暗示在Keccak的参考文献中,没有完全说明,所以这个问题仍然不可能以明确的方式回答。 –

+1

这是真的......(“明确的”=好词!)我想发表评论的冲动受到我最近遇到太多用剪刀跑步的人的影响([剪刀](https) ://pypi.python.org/pypi/spongeshaker))只是为了将他们的手作为AEAD密码,和/或基于Keccak的流密码。像[这一个](http://eprint.iacr.org/2013/791.pdf)这样的论文经常激励小群人大喊“Keccak”并询问有关“解密”的问题,而该论文仅仅提到Spongent是众多问题之一。我们更好的支持* Confused-About-Keccak * Q &As. ;) –

1

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

在文本消息上应用Keccak算法时,会得到一个“消息摘要”。 Keccak是SHA3的赢家,其中SHA代表安全散列算法。你可以通过它的名字告诉Keccak是具有三个属性的加密散列函数:

  • 预形象电阻
  • 第二图像前阻力
  • 撞击性

这些基本的意思Keccek是一种单向函数,找到具有相同消息摘要的两条消息是非常困难的,反之亦然。第一点只是简单地告诉你,你不能从消息摘要中恢复消息。