Cryptanalysis

如何在沒有密鑰的情況下找到兩個加密(Vernam Cipher)文本的原始消息

  • January 22, 2020

如果可能,我可以獲得步驟或解決方案嗎?

問題

閱讀以下文章後,我想我已經得到了解決方案:

以及上面/下面@Emme的答案,我提出了這個解決方案:

設 M1 和 M2 為原始消息。

S1 ⊕ S2 = M1 ⊕ M2 since R is the same for S1 and S2

我們計算 S1 ⊕ S2

S1 ⊕ S2 = 0 0 0 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1

由於該語言只有兩個單詞Aand ,我可以通過隨機組合andB來猜測 的值。M1``A``B

let M1 = AABBBA. 轉換M1M1 = 111 111 0000 0000 0000 111

讓, S1 ⊕ S2 = S3. 然後,M1 ⊕ S3 = M2

我們計算 M1 ⊕ S3

M1 ⊕ S3 = 111 0000 111 111 0000 0000

所以,M2 = M1 ⊕ S3 = 111 0000 111 111 0000 0000

解碼M2給出M2 = ABAABB

因此,M1 = AABBBAM2 = ABAABB

證明

記住我們說過S1 ⊕ S2 = M1 ⊕ M2 since R is the same for S1 and S2

如果我們計算M1 ⊕ M2,我們將有:與上面看到
111 111 0000 0000 0000 111 ⊕ 111 0000 111 111 0000 0000 = 0 0 0 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1
的相同S1 ⊕ S2

你知道給你的兩個密文形成為 $$ C_1 = S_1 \oplus R\C_2 = S_2 \oplus R $$同 $ R $ 在這兩種情況下。所以你可以擺脫 $ R $ 通過計算$$ C^\ast = C_1 \oplus C_2 = S_1 \oplus S_2 $$ 然後你知道只有兩個字, $ 111 $ 和 $ 0000 $ . 因此,在 $ C^\ast $ $ 1 $ 只有當一個句子包含 $ A $ 而另一個包含 $ B $ . 從那裡,由於這兩個詞有不同的長度,你應該能夠確定候選句子。

引用自:https://crypto.stackexchange.com/questions/77166