0

修正された Vigenere Cipher を解読するアルゴリズムに取り組んでいます。通常の Vigenere 暗号は、次のように機能します。

Plaintext: ATTACKATDAWN
Key: LEMONLEMONLE
Ciphertext: LXFOPVEFRNHR

通常版

CR[i] = (P[i] - 33 + K[i]) mod 94 + 33

修正版

CM[i] = (P[i] - 33 + K[i] + CM[i-1] - 33) mod 94 + 33

変更されたバージョンが以前の状態/文字を使用して新しいものを生成する方法に注意してください。それを破るための私の理論は、変更されたバージョンを通常の Vigenere 暗号に戻すことです。このようにして、周波数分析やその他の方法を適用できます。LHS で C を使用して " previousC "が得られるように、何らかの方法でその方程式を再配置する必要があります。C と previousC は両方とも既知の値であるため、反転を行うのは簡単なはずです (最初の文字から始めます)。

私の唯一の問題は、C と previousC に関して方程式をどのように書き直すかということです。誰かがそれを指摘できれば、それは大いに役立つでしょう。

4

1 に答える 1

3

CR通常のViginere暗号文、CM変更されたViginere暗号文を表します

CR[i] = (P[i] + K[i]) mod 26
CM[i] = (P[i] + K[i] + CM[i-1]) mod 26
      = (CR[i] + CM[i-1]) mod 26

ここで、元の暗号文を単純に解きますCR

CR[i] = (CM[i] - CM[i-1]) mod 26

通常の暗号文を入手したら、通常どおりに解読します。

于 2012-12-01T12:04:28.310 に答える