私は、Vigenere暗号でエンコードされたメッセージの暗号化をエンコード、デコード、および解読するプログラムを開発しようとしています。私が行き詰まっているのは、(キーなしで)メッセージを[暗号化]して破ることです。私はそれをどのように行うかについての考えを持っていますが、それをコーディングする方法がわかりません。私の考えは次のとおりです。
プログラムは、1から26で終わる長さの潜在的なキーを体系的に生成します。キーには英語のアルファベットの文字が含まれ、大文字と小文字は区別されません。キーの長さ(1〜26のどこか)ごとに、キーは文字「a」で埋められ、プログラムはそれらのキーが正しいかどうかを確認します(別の方法があります)。キーが正しくない場合、最後の位置にある文字がアルファベットの次の文字に回転します。最後の文字が26の可能な位置すべてを通過すると、最後から2番目の文字が回転し、次に最後の文字と最後から2番目の文字がそれに応じて回転します。 [潜在的な]キーの文字)。新しいキーが生成されるたびに、[potential]キーは別のメソッドでチェックされており、正しいキーが見つかるとメソッドは停止します。キー作成の進行は次のようになります。
[starting with keys that are only 1 letter long]
a
b
c
...
x
y
z
[now the potential key length becomes two]
aa
ab
ac
ad
...
zw
zx
zy
zz
[eventually the potential key length becomes 26]
aaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaab
aaaaaaaaaaaaaaaaaaaaaaaaac
aaaaaaaaaaaaaaaaaaaaaaaaad
...
zzzzzzzzzzzzzzzzzzzzzzzzzw
zzzzzzzzzzzzzzzzzzzzzzzzzx
zzzzzzzzzzzzzzzzzzzzzzzzzy
zzzzzzzzzzzzzzzzzzzzzzzzzz
(うまくいけば、そこにパターンを見ることができます)
誰かがこれを行う方法のコードを持っているか知っているか、これをコーディングするために必要な手順をガイドが満たすのを手伝ってくれるなら、それは大いにありがたいです。
ありがとう!