2012-12-06 152 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