レールフェンス暗号

レールフェンス

レールフェンス暗号ジグザグ暗号とも呼ばれる)は、転置暗号古典的なタイプです。暗号化の方法が水平のレールで作られたフェンスに似ていることから、その名前が付けられました。

暗号化

レールフェンス暗号では、平文は仮想フェンスの連続する「レール」に沿って斜め下向きに書き込まれ、一番下のレールに達すると上向きに書き込まれ、一番上のレールに達すると再び下向きに書き込まれ、平文全体が書き出されるまでこれを繰り返します。その後、暗号文は行ごとに読み取られます。

たとえば、「WE ARE DISCOVERED. RUN AT ONCE.」というメッセージを 3 つの「レール」で暗号化するには、次のようにテキストを記述します。

W . . . E . . . C . . . R . . . U . . . O . . . . E . R . D . S . O . E . E . R . N . T . N . E . . A . . . I . . . V . . . D . . . A . . . C . 

(スペースと句読点は省略されています。) 次に、テキストを水平に読み、暗号文を取得します。

ウェクルオ・エルドソエルンテ・アイヴダック 

復号化

暗号化に使用されるレールの数をとします。平文が書き込まれると、レール上の各文字の垂直位置の順序が上下に変化し、周期的に変化することに注目してください。上記の例()では、垂直位置は 4 周期で繰り返されます。一般に、順序は 周期で繰り返されます。 {\displaystyle N}3{\displaystyle N=3}21{\displaystyle 2(N-1)}

復号する文字列の長さを とします。仮に が の倍数で であると仮定し、とします。まず、暗号文を文字列に分割します。最初の文字列と最後の文字列の長さは、各中間文字列の長さは となります。上記の の例では となるため、暗号文を次のように分割します。 L{\displaystyle L}L{\displaystyle L}21{\displaystyle 2(N-1)}KL21{\displaystyle K={L \over {2(N-1)}}}K{\displaystyle K}2K{\displaystyle 2K}L24{\displaystyle L=24}K6{\displaystyle K=6}

ウェクルオ・エルドソエルンテ・アイヴダック 

最初の行と最後の行の各文字の後にスペースを入れて、各文字列を別々の行に記述します。

ウェクルオ エルドソエルンテ AIVDAC 

次に、最初の列を下に、斜め上に、次の列を下、というように平文を読み進めていきます。

が の倍数でない場合、暗号文をどのように分割するかの決定は上記で説明したものよりも若干複雑になりますが、基本的なアプローチは同じです。あるいは、復号を簡略化するために、平文に文字を追加して長さを の倍数にすることもできます。 L{\displaystyle L}21{\displaystyle 2(N-1)}21{\displaystyle 2(N-1)}

暗号文にパディングが施されていないが、使用されているレールの数を知っているか、 ブルートフォースで調べる場合は、次の手順で復号化できます。

上と同様に、は復号する文字列の長さ、 は暗号化時に使用したレールの数とします。2つの変数 と を追加します。ここで、は復号されたレールフェンスの対角線の数、 は最後の対角線における空きスペースの数です。 L{\displaystyle L}{\displaystyle N}×{\displaystyle x}y{\displaystyle y}×+1{\displaystyle x+1}y{\displaystyle y}

1L+y+1×{\displaystyle 1={\frac {L+y}{N+((N-1)*x)}}}

次に、と を代数的に解きます。ここで、両方の値は可能な限り小さい数です。これは、分母が より大きくなるまで を1ずつ増やし、その後 を解くだけで簡単に行えます。例の暗号を、3本のレールではなく6本のレールを使用するように変更したものを考えてみましょう。 ×{\displaystyle x}y{\displaystyle y}×{\displaystyle x}L{\displaystyle L}y{\displaystyle y}

W.........V.........O .E......OE......TN ..A.....C...R.....A...C ...R...S.....E...N.....E ……えい……ど…… .....D.........R...... 

結果として得られる暗号文は次のようになります。

WVO EOETN ACRAC RSENE EIDU DR 

であることが分かっており、 を使用すれば上記の方程式を解くことができます。 L24{\displaystyle L=24}6{\displaystyle N=6}

124+y6+5×{\displaystyle 1={\frac {24+y}{6+(5*x)}}}

118+y5×{\displaystyle 1={\frac {18+y}{5*x}}} 分数を簡略化します。

118+y54{\displaystyle 1={\frac {18+y}{5*4}}} 解く×{\displaystyle x}

118+220{\displaystyle 1={\frac {18+2}{20}}} 解くy{\displaystyle y}

これで、、、ができました。つまり、レールが6本、対角線が5本(4+1)、そして端の空きスペースが2つあります。最後の対角線の端の空きスペースをブロックすることで、暗号文を使ってレールフェンスを1行ずつ埋めていくことができます。 6{\displaystyle N=6}×4{\displaystyle x=4}y2{\displaystyle y=2}

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ X _ _ X 
WVO EOETN ACRAC _ _ _ _ _ _ _ _ _ X _ _ X 

暗号解読

この暗号の鍵はレールの数 です。 が分かれば、上記のアルゴリズムを用いて暗号文を復号できます。が暗号文の長さ 以上の値である場合、暗号文は平文と同じになるため、使用できません。したがって、使用可能な鍵の数は少なく、すべての可能な鍵を試すブルートフォース攻撃が可能になります。結果として、レールフェンス暗号は弱いと考えられています。 {\displaystyle N}{\displaystyle N}{\displaystyle N}L{\displaystyle L}

ジグザグ暗号

ジグザグ暗号という用語は、前述のレールフェンス暗号を指す場合もありますが、フレッチャー・プラットが著書『秘密と緊急』で解説した別の種類の暗号を指す場合もあります。この暗号は、「紙に縦の列に罫線を引いて書き、各列の先頭に文字を記す。紙の上から下に向かって読み進めながら、適切な列にメッセージの各文字に点を打つ。その後、列の先頭の文字を切り取り、罫線を消して点のメッセージを送る。受信者は列の幅と上部の文字の配置を知っており、図を再構成して内容を読み取る」というものです。[ 1 ]

参照

参考文献

  1. ^プラット、フレッチャー (1939). 『秘密と緊急:暗号と暗号の物語エーゲアン・パーク・プレスpp.  143– 144. ISBN 0-89412-261-4{{cite book}}:ISBN / 日付の非互換性(ヘルプ