レールフェンス暗号
メッセージを複数のレールにまたがって斜めに書き、一行ずつ読み戻していく古典的なジグザグ転置暗号、レールフェンス暗号を暗号化・復号してみましょう。レールとオフセットを調整すると、柵が組み上がっていく様子をリアルタイムで見られます。すべての処理はブラウザ上で実行されます。
レール
オフセット
レールはジグザグが使う行数を決めます。オフセットは最初の文字が柵のどの位置から始まるかをずらしますが、標準的な暗号には0のままにしてください。
上にテキストを入力すると、レールフェンスの結果がここに表示されます。
ジグザグ柵の図
WEAREDISCOVERED という単語を使った例です。上に自分のテキストを入力すると、柵の上に表示されます。
レールフェンス暗号 の使い方
- 1
暗号化か復号かを選ぶ
平文をレールフェンス暗号文に変えるには暗号化を、暗号文から元のメッセージを復元するには復号を選んでください。
- 2
レールとオフセットを設定する
ジグザグが使うレールの数を選びます。標準的な暗号にはオフセットを0のままにし、オフセットを付けて暗号化されたメッセージに合わせるには値を変えてください。復号するときは、暗号化に使われたのと同じ設定を使ってください。
- 3
テキストを入力または貼り付ける
メッセージを入力してください。入力すると同時に暗号が自動で適用され、下のジグザグ柵の図が更新されて、テキストがレールの上にどう並ぶかを正確に示します。
- 4
結果を読み、見て、共有する
変換されたテキストがすぐに表示されます。柵の図を開いてジグザグを確認したら、結果をコピーしたり、テキストファイルとしてダウンロードしたり、入力した設定とテキストをそのまま再現するリンクで共有したりできます。
レールフェンス暗号を理解する
レールフェンス暗号とは何ですか?
レールフェンス暗号は、ジグザグ暗号とも呼ばれる古典的な転置式暗号です。換字式暗号のように文字を別の文字に置き換えるのではなく、すべての文字をそのまま保ったまま、その順序だけを並べ替えます。メッセージはレールと呼ばれる複数の仮想的な横線に沿って、下りては上りするジグザグの形に書かれ、そのレールを次々と読むことで暗号文ができあがります。
秘密はレールの数だけなので、レールフェンスは手で扱える最も単純な暗号の一つです。アメリカ南北戦争では手早い野戦暗号として使われ、今でもパズルや脱出ゲーム、キャプチャー・ザ・フラッグの課題、そして転置を最初に紹介する定番の例として登場する入門の暗号学の授業に欠かせない存在です。
レールフェンス暗号の仕組み
たとえばレールを三本選ぶとしましょう。一番上のレールから始めて、一列に一文字ずつメッセージを書きながら、斜めに一番下のレールまで下り、また一番上へ跳ね返って上り、再び下る、というようにジグザグをたどります。すべての文字を置き終えたら、一番上のレールから一番下まで一本ずつレールを丸ごと読み、その断片をつなぎ合わせて暗号文を作ります。
すべての文字がジグザグに加わるので、スペースや記号も元の場所に残らず、文字と同じように位置を移します。文字数は決して変わらず、まさにこれが転置式暗号の特徴です。暗号文は常に元のメッセージの文字を並べ替えたアナグラムになります。
実例
メッセージ WEAREDISCOVEREDFLEEATONCE をレール三本で書いてみましょう。ジグザグに書くと、一番上のレールには W, E, C, R, L, T, E が、真ん中のレールには E, R, D, S, O, E, E, F, E, A, O, C が、一番下のレールには A, I, V, D, E, N が置かれます。レールを順に読むと WECRLTE、続いて ERDSOEEFEAOC、続いて AIVDEN になります。
つなぎ合わせると暗号文は WECRLTEERDSOEEFEAOCAIVDEN です。元の文字がすべてそのまま残り、新しい順序にかき混ぜられただけで、結果が入力とまったく同じ長さであることに注目してください。
レールフェンス暗号を復号する方法
復号するには、まず分かっているレールの数と同じメッセージ長に合わせて空の柵を組み直し、各位置がどのレールに属するかを印付けます。その印を数えれば各レールに何文字ずつ載るかが分かるので、暗号文をレールごとにちょうどよい大きさの断片に切り分けられます。
次に各断片をそれぞれのレールに戻して置き、元のジグザグの順序で(一番上のレールから一番下へ跳ね返り、また上る形で)柵を読み、平文を復元します。このツールはその一切を代わりに行います。復号に切り替え、暗号化に使われたのと同じレールの数とオフセットを設定してから、暗号文を貼り付けてください。
レール、オフセット、そして鍵
レールの数こそが暗号の鍵です。レールが一本ならジグザグがなくテキストはそのまま残るので、役立つ範囲はレール二本から始まります。レールの数がメッセージの長さに近づくにつれてジグザグは平らになり、かき混ぜが弱まるため、テキストを意味のある形で並べ替えるのは、おおよそ二本からメッセージ長の半分までの値だけです。
任意のオフセットは、まるで最初の文字が一番上のレールではなく柵の途中から始まったかのように、ジグザグの開始点をずらします。オフセットを0のままにすると教科書どおりの標準的な暗号になり、値を変えると関連した変種が生まれ、復号には同じオフセットをもう一度設定しなければなりません。パターンが繰り返すまで、一回の完全なジグザグの周期は 2 × (rails − 1) 列にわたります。
レールフェンス暗号を破る方法
レールフェンスは鍵空間がとても小さいです。ある長さのメッセージに対して試す価値のあるレールの数はほんの数通りしかないので、攻撃者はただレール二本で復号し、次に三本、次に四本、というように試して、意味の通る結果を読めばよいのです。この総当たり探索は手作業でも一瞬で済み、コンピューターなら瞬時です。
この暗号は純粋な転置なので文字そのものには手を付けず、暗号文の文字頻度が普通のテキストと正確に一致します。それ自体が手がかりです。文字の統計は正常なのに読むと意味をなさないテキストは、レールフェンスのような転置式暗号が使われているという強い兆候です。
レールフェンス暗号は安全ですか?
いいえ。可能な鍵がごくわずかで総当たりですぐ破れるため、レールフェンスは秘密にしておかなければならない情報に何の本当の保護も与えません。歴史的には、強さよりも野戦での速さと単純さが評価され、より強い合成暗号を作るために換字の段階と組み合わされることもありました。
今日のその価値は教育的かつ娯楽的なものです。転置という考え方を教えるのに理想的な方法であり、パズルやゲームのための楽しい仕掛けであり、暗号学の歴史の小さな一片でもあります。本当の安全性のためには、代わりにAESのような現代のアルゴリズムが使われます。
よくある質問
レールフェンス暗号とは何ですか?
レールフェンス暗号はどのように動作しますか?
レールフェンスの例を見せてもらえますか?
レールフェンス暗号はどうやって復号しますか?
レールの数は何をするものですか?
レールフェンス暗号のオフセットとは何ですか?
レールフェンス暗号はスペースや記号を変えますか?
レールフェンス暗号はどうやって破りますか?
レールフェンスはなぜ転置式暗号と呼ばれるのですか?
レールフェンス暗号は安全ですか?
入力したテキストはサーバーに送信されますか?
レールフェンス暗号はコードでどう書きますか?
関連ツール
こちらの便利なツールもどうぞ