T

Text Machine

強力なテキストツールを、ブラウザで

レールフェンス暗号

メッセージを複数のレールにまたがって斜めに書き、一行ずつ読み戻していく古典的なジグザグ転置暗号、レールフェンス暗号を暗号化・復号してみましょう。レールとオフセットを調整すると、柵が組み上がっていく様子をリアルタイムで見られます。すべての処理はブラウザ上で実行されます。

柵の設定

レール

3

オフセット

0

レールはジグザグが使う行数を決めます。オフセットは最初の文字が柵のどの位置から始まるかをずらしますが、標準的な暗号には0のままにしてください。

平文
暗号文

上にテキストを入力すると、レールフェンスの結果がここに表示されます。

ジグザグ柵の図

WEAREDISCOVERED という単語を使った例です。上に自分のテキストを入力すると、柵の上に表示されます。

W
E
C
R
E
R
D
S
O
E
E
A
I
V
D

レールフェンス暗号 の使い方

  1. 1

    暗号化か復号かを選ぶ

    平文をレールフェンス暗号文に変えるには暗号化を、暗号文から元のメッセージを復元するには復号を選んでください。

  2. 2

    レールとオフセットを設定する

    ジグザグが使うレールの数を選びます。標準的な暗号にはオフセットを0のままにし、オフセットを付けて暗号化されたメッセージに合わせるには値を変えてください。復号するときは、暗号化に使われたのと同じ設定を使ってください。

  3. 3

    テキストを入力または貼り付ける

    メッセージを入力してください。入力すると同時に暗号が自動で適用され、下のジグザグ柵の図が更新されて、テキストがレールの上にどう並ぶかを正確に示します。

  4. 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のような現代のアルゴリズムが使われます。

よくある質問

レールフェンス暗号とは何ですか?
レールフェンス暗号は、ジグザグ暗号としても知られる古典的な転置式暗号です。メッセージを複数のレールにまたがってジグザグに書き、レールごとに読み出します。文字を一切置き換えず順序だけを並べ替えるので、暗号文は平文のアナグラムになります。
レールフェンス暗号はどのように動作しますか?
レールの数を選んだうえで、そのレールにまたがって一列に一文字ずつ、斜めに下っては上りながらメッセージを書きます。すべての文字を置き終えたら、上から下へ一本ずつレールを丸ごと読み、断片をつなぎ合わせて暗号文を作ります。スペースや記号も文字と一緒に位置を移します。
レールフェンスの例を見せてもらえますか?
レール三本では、メッセージ WEAREDISCOVEREDFLEEATONCE は WECRLTEERDSOEEFEAOCAIVDEN になります。一番上のレールは WECRLTE、真ん中のレールは ERDSOEEFEAOC、一番下のレールは AIVDEN と読めます。元の文字はすべて残り、順序が入れ替わっただけで、長さは変わりません。
レールフェンス暗号はどうやって復号しますか?
復号に切り替え、暗号化に使われたのと同じレールの数とオフセットを設定してから、暗号文を貼り付けてください。ツールが柵を組み直し、各レールに何文字ずつ載るかを割り出し、レールを埋め直し、ジグザグをたどり読んで元のメッセージを復元します。
レールの数は何をするものですか?
レールの数が鍵です。レールが多いほどジグザグは深くなり、並べ替えがより徹底されますが、それにも限度があります。レールが一本だとテキストは変わらず、レールの数がメッセージの長さに近づくとかき混ぜが再び弱まるので、役立つ範囲はおおよそレール二本からメッセージ長の半分ほどまでです。
レールフェンス暗号のオフセットとは何ですか?
オフセットは、まるで最初の文字が一番上のレールではなく柵の途中から始まったかのように、ジグザグが始まる位置をずらします。0のままにすると教科書どおりの標準的な暗号になります。メッセージがオフセットを付けて暗号化された場合、正しく復号するには同じオフセットを設定しなければなりません。
レールフェンス暗号はスペースや記号を変えますか?
はい。転置式暗号なので、すべての文字がジグザグに加わり、したがってスペースや数字、記号も元の場所に残らず文字と一緒に並べ替えられます。文字の総数は常にそのまま保たれます。
レールフェンス暗号はどうやって破りますか?
鍵空間がとても小さいので、レール二本で復号してみて、次に三本、次に四本、というように試し、読める結果をそのまま採用すればよいのです。この総当たり探索は手作業でも速いです。正常な文字頻度に、かき混ぜられて読めないテキストが加わると、転置式暗号が使われているという強いヒントになります。
レールフェンスはなぜ転置式暗号と呼ばれるのですか?
転置式暗号は、新しい文字に置き換えるのではなく、文字の順序を変えることでメッセージを隠します。レールフェンスはまさにそれを行います。元の文字をすべて保ちながら、ジグザグが定めた新しい位置へ動かすので、結果は同じ文字を並べ替えたものになります。
レールフェンス暗号は安全ですか?
いいえ。実用的な鍵がほんの数通りしかなく数秒で総当たりされてしまうため、機密情報に対しては何の本当の安全性も提供しません。教育用やパズル用の暗号として理解するのが最適です。本物の保護のためには、代わりにAESのような現代のアルゴリズムを使うべきです。
入力したテキストはサーバーに送信されますか?
いいえ。すべての暗号化と復号はブラウザ内だけで実行されるため、入力したテキストがアップロード・記録・保存されることはありません。共有リンクでさえ、テキストをURLのハッシュ以降の部分に保持しますが、ブラウザはこの部分をサーバーに送信しないため、自分で共有するまで非公開のまま保たれます。
レールフェンス暗号はコードでどう書きますか?
メッセージの各位置がどのレールに載るかを、一番上のレールから一番下へ下り、また上るという繰り返しの周期で数えて割り出します。暗号化するには、各文字をそのレールに付け加えてから、レールを順につなぎ合わせます。復号するには、各レールが何文字ずつ持つかを数えて暗号文をその断片に切り分け、ジグザグの順序でたどり読みます。このブラウザ内ツールはまさにその手法を使っています。

関連ツール

こちらの便利なツールもどうぞ

縦列転置式暗号

スキュタレー暗号

シーザー暗号

ヴィジュネル暗号

アトバシュ暗号

プレイフェア暗号