エニグマアルゴリズム

このコミュニティでは、有名なエニグマ暗号化マシンに関する多くの記事を見つけましたが、その動作の詳細なアルゴリズムはどこにも記載されていませんでした。 これを宣伝する必要はないと多くの人が言うでしょうが、誰かがこのことを知るのに役立つことを願っています。 どのようにすべてが始まりましたか? 第一次世界大戦中、プレイフェア暗号は非常に人気がありました。 その本質は、ラテンアルファベットの文字が5x5の正方形で書かれ、その後、元のアルファベットの文字がペアに分割されたことです。 さらに、正方形をキーとして使用して、これらのバイグラムは特定のアルゴリズムに従って他のものに置き換えられました。 この暗号の利点は、追加のデバイスを必要としないことであり、原則として、メッセージが解読される頃にはすでに関連性が失われていました。 別の暗号化方法は、ジェファーソンのエンコーダーでした。



画像








このデバイスは、単一の軸につながれた一定数のディスクで構成されていました(通常36個のディスクがありました)。 それらはそれぞれ26の部分に分割され、それぞれが文字を示していました。 ディスク上の文字はランダムな順序で配置されました。 オペレーターは、ディスクを回転させて、目的のメッセージをダイヤルし、別の行を書き直しました。 このメッセージを受け取った人は、まったく同じ文字配置のまったく同じデバイスを使用しているはずです。 どちらの方法も当時は比較的良いものでしたが、人類がすでに20世紀に入ったため、暗号化プロセスを機械化する必要が生じました。 1920年に、オランダの発明者アレクサンダーコッホは、最初のロータリー暗号マシンを発明しました。 その後、ドイツの発明者は、「エニグマ」(ギリシャ語から-なぞなぞ)という名前で、特許を取得し、それを改良して生産に入れました。 したがって、このマシンは、通信を秘密にしたい多くの企業に買収されました。 これはエニグマの天才でした-誰もが暗号化アルゴリズムを知っていましたが、可能な組み合わせの数が15兆を超えたため、誰も正しいキーを選択できませんでした。 エニグマがどのようにハッキングされたかを知りたい場合は、サイモンシンの本「The Book of Ciphers」を読むことをお勧めします。 上記のすべてを要約すると、エニグマ暗号はジェファーソン暗号とシーザーの暗号の混合であったと言いたいです。



そこで、アルゴリズムの研究を始めます。 このサイトには非常に優れたシミュレータがあり、アクセスしやすく視覚的な形でプロセス全体を全体的に示しています。 3ローターのエニグマの動作原理を見てみましょう。 3つのローターを収容するための3つのコンパートメントと、リフレクターを収容するための追加のコンパートメントがありました。 合計で、第二次世界大戦中に、8つのローターと4つのリフレクターが製造されましたが、同時に、マシンが設計されたのとまったく同じくらい使用できました。 各ローターには、アルファベットの個別の文字に対応する26のセクションと、隣接するローターとの相互作用のための26の接点がありました。 オペレーターが目的の文字をクリックするとすぐに、電気回路が閉じられ、その結果、暗号化された文字が表示されました。 反射器のために回路が閉じられました。



画像








この図は、「A」キーを押した後、文字「G」に復号化する図を示しています。 文字を入力すると、右端のローターが前方に移動し、キーが変更されました。 それでは、ある文字は別の文字にどのように置き換えられましたか? 私が言ったように、エニグマ用に8つの異なるローターが開発されました。 それぞれの内部に、26の異なる整流がインストールされました。 以下に 、それぞれの詳細な仕様を示します。 たとえば、文字「N」が最初のローターの入力に入力された場合、出力は「W」のみになり、他の文字はそれ以上大きくなりません。 2番目のローター上の文字である場合、すでに「T」などに変換されているでしょう。 つまり、各ローターは、通信に関して明確に定義されたタスクを実行しました。 しかし、リングはどのような役割を果たしましたか? 次の例を考えてみましょう。 ローターIII、II、Iを設定します。リングの順序は「C」、「U」、「Q」です。



画像








キー「A」を押します。 右端のローターが1ステップ前方に回転します。つまり、文字「Q」が「R」に移動します。 中央のローターも文字「V」に向かって前方に回転しますが、これについては少し後で説明します。 したがって、「A」という文字は、ローターIが取り付けられ、「R」という文字がすでに設定されている最初のコンパートメントから旅を始めます。 最初のローターに入る前に、文字は最初の変換、つまり、26を法とする文字「R」の加算を受けます。実際、これはCaesarのコードです。 0から25までのすべての文字に番号を付けると、文字「A」はまったく同じゼロになります。 したがって、追加の結果は「R」という文字になります。 さらに、あなたと私は、最初のコンパートメントにローターIがあり、その設計では、文字「R」が常に「U」に入ることを定めています。 次に、ローターIIを備えた2番目のコンパートメントです。 再び、2番目のローターを押す前に、文字「U」がわずかに異なるアルゴリズムに従って変化します。次のローターと前のローターの値の差がそれに追加されます。 説明します。 2番目のローターでは「V」の文字が、前のローターでは「R」の文字が表示され、それらの違いは4文字に相当し、「U」の文字に追加されます。 したがって、文字「Y」が2番目のローターに入ります。 さらに表では、2番目のローターの文字「Y」が「O」に対応していることがわかります。 次に、「C」と「V」の文字の違いを見てみましょう-7に等しいです。 したがって、文字「O」を7桁シフトし、「V」を取得します。 ローターIIIでは、「V」は「M」になります。 リフレクターに到達する前に、文字「C」が文字から差し引かれ、文字「K」に変換されます。 次は反射です。 気がつくと、各ローターで大きな周期的なグループが形成されます、例えば:(A-E-L-T-P-H-Q-X-R-U)、そしてリフレクターではペアに分割されます:(A-Y) (B-R)(C-U)など これは、後で解読できるようにするために行われます。 「K」が「N」に置き換えられたリフレクタBがインストールされていると仮定します(逆も同様です)。 半分が過ぎました。 ここで、再び文字「C」の値を追加して、文字「P」を取得します。 ここでは、逆に、3番目のローターの行で「P」を見つけ、押すとどの文字が表示されるかを確認します。 これは文字「H」です。 3番目のローターでの変換が完了します。 これで、文字「C」と「V」の差、つまり7がこの文字から差し引かれます。 文字「A」を取得します。 2番目のローターでは、それ自体に渡されるので、そのままにしておきます。 次に、文字「V」と「R」の差、つまり4を減算し、文字「W」を取得します。 最初のローターでは、その逆変換が文字「N」で表示されます。 それから文字「R」を減算し、目的の文字「W」を取得するだけです。 ご覧のとおり、マシンのアルゴリズムは見た目ほど複雑ではありませんでした。 暗号を改善するために、ドイツ人は、ペアで文字を交換できるパッチパネルを導入しました。 文字「Q」と「W」を組み合わせると、同じ「A」を入力すると「Q」が得られます。実際には「W」があるはずですが、文字「Q」に置き換えられます。 これが添付されたアクション図です。

画像

ローターの相互の変位について話すだけです。 キーを1ステップ押すと、常に右側のローターが回転しました。 たとえば、ローターIの場合、この位置は文字「R」に等しくなります。 そのため、この例では、2番目のローターが回転しました。最初のローターは文字「R」を通過しました。 さらに、特定の位置を通過すると、右ローターが左に1ステップ動きます。 より高度なモデルでは、左ローターが2回、または3回スクロールしました。



結論として、エニグマのハッキングに関する有用な資料をいくつか紹介します。 この記事が誰かに役立つことを願っています。



All Articles