修正された 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 に関して方程式をどのように書き直すかということです。誰かがそれを指摘できれば、それは大いに役立つでしょう。