2012-12-06 154 views
0

我有两个使用相同的部分密钥加密的消息。例如:rc4密钥恢复(2条消息,相同的部分密钥)

C1 = RC4(M1, "(VARIABLE_DATA)XXXXYYYY") 
    C2 = RC4(M2, "(VARIABLE_DATA)XXXXYYYY") 

是否有可能与RC4,如果C1和C2已知ATLEAST复苏,因为永远不会改变“XXXXYYYY”的部分关键?

+0

看起来像纯文本,不是关键的一部分的一部分。在这里也是非常重要的话题。 –

回答

0

一般而言,无懈可击的加密技术的密钥只能使用蛮力才能恢复,这反过来又需要一些方法来验证解密是否成功。

+0

我认为流密码(基本上是异或密码),如果你有两个密文用相同的密钥加密,你可以通过反转来恢复密钥或明文。 – user974896

+0

@owlstead:还有其他针对流密码(包括AES-CTR)的攻击,其中重复使用相同的密钥和IV使恢复消息变得微不足道。我想他是在问相关键是否也是如此。 – mfanto

+0

@ user974896您至少可以在多个流中提供足够的信息时恢复密钥*流*和纯文本。 –

3

我认为你的问题存在一些困惑。流密码的工作方式是通过生成一个密钥流来获取(通常)与消息的排他性或者相互关系。如果您使用相同的密钥和IV,并因此使用相同的密钥流,则会泄漏有关消息的信息,这是正确的。

这里,K是由RC4生成的密钥流:

C1 = K^M1

C2 = K^M2

并通过重新排列:

C1^C2 =(K^M1)^(K^M2)

密钥流抵消了这里,和你留下了

C1^C2 = M1^M2

由于攻击者知道了两个密值,他可以计算的区别两条消息。如果攻击者知道其中一个输入(也许是一个固定的头部),他可以计算第二条消息。

M2 =(C1^C2)^ M1

还有使用婴儿床,如果消息是自然语言中的一些统计检验。

要回答你的问题,RC4应该在相关密钥下生成一个完全不同的密钥流,所以这种攻击是行不通的。但还有其他的attacks against the key scheduling algorithm,并有很多理由偏好替代RC4。

如果你问有关恢复从密钥流初始密钥,有area few

+0

试过这个:M2 =(C1^C2)^ M1。从理论上讲,它看起来很有意义,但实际上获得预期的结果看起来是不同的。究竟是什么意思异或这些? – Devela