![見出し画像](https://assets.st-note.com/production/uploads/images/87499974/rectangle_large_type_2_7b6885c5e8293843a9a9b25ac3853ec6.png?width=1200)
暗号紹介:レールフェンス暗号・Redefence暗号 暗号の仕組みとその特徴
用語について
Redefence cipherについて、時折Redfence cipherという呼称が用いられていることがある。しかしアメリカ暗号協会(American Cryptogram Association)のサイトを見る限りでは「Redefence」の方が正しいようである。ただし暗号名の由来は不明であり、また「redefence」自体の意味も分からない。
レールフェンス暗号とは
レールフェンス暗号とは転置式暗号の一種である。その暗号化の様子が、水平な横木(レール)を持つフェンス(図1)を連想させるためこの名がついた。別名にジグザグ暗号という。
後述するように仕組みは単純である。一方、セキュリティ的には弱い暗号とされる。
![](https://assets.st-note.com/img/1663860678094-XNKICVNhP6.jpg?width=1200)
以下の記事・サイトも参照のこと。
ウィキペディア(英語版)「Rail fence cipher」
暗号解析サイトdcode.fr内のレールフェンス暗号化・復号ツール
暗号化方式
レールフェンス暗号文を作るにあたり、まず適当な段数(今回は3段)の、架空のフェンスの「レール」を用意する。元のメッセージ(今回は「This is an example message」)を、1文字ずつ、1段目の「レール」から下の段に下りつつ順に書いていく。一番下の段の「レール」に至ったら、次は上りながら書き続ける。一番上の段の「レール」に至ったら、また下りながら書き続ける。これを、元のメッセージをすべて書き終えるまで続ける。
続いて、1段目の「レール」に書かれた文字を順に拾い集め、次に2段目、3段目、……一番下の段まで同様に拾い集める。こうしてできた文字列が暗号文(今回は「TIEPEGHSSNXMLMSAEIAAES」)である。以上の過程を図2に示す。
![](https://assets.st-note.com/img/1663918720468-5HUoofAco4.png)
バリエーションとして、オフセットをつける、つまり敢えて書き始めを何文字か遅らせることもできる。例えば2文字分遅らせると、暗号文「IAAESHSSNXMLMSAETIEPEG」を得られる。これを図3に示す。
![](https://assets.st-note.com/img/1663933150268-v8sxPOLGem.png?width=1200)
復号方法
鍵(レールの段数およびオフセット数)を知っている正当な受信者が、受け取った暗号文を復号する方法を述べる。
復号するにあたり、暗号文の何文字目までが第1のレールに、何文字目からが第2のレールに書かれるのかを知る必要がある。これが少々面倒くさい。ウィキペディア記事では何やら数式があれこれ書いてあるが、もっと直感的で分かりやすい(だが少々手間がかかる)方法は次の通りである。
1、暗号化方式に従い、暗号文と同じ文字数分「_」をジグザクにレールに刻んでいく。こうして文字を書き入れるスペースを確保する。
2、確保されたスペースに片っ端から暗号文を詰め込んでいく。
3、文字を左から読む。
これを図4に示す。
![](https://assets.st-note.com/img/1663920504230-GW68xNkVM3.png)
解読方法
残念ながら、頻度分析などで暗号文が転置式暗号によるものだと分かっても、これをさらにレールフェンス暗号であると特定する方法を筆者は知らない。また、暗号文がレールフェンス暗号だと決定・仮定しても、そのレールの数やオフセットを知る方法も不明。ツールを使って総当たりで試すほうが手っ取り早いと思われる。
Redefence暗号とは
レールフェンス暗号では、一番上のレールから順に文字を拾って暗号文を作っていた。しかし、文字を拾うレールの順番を変えてみたらどうだろうか。それを行っているのがRedefence暗号である。
dcode.fr内のレールフェンス暗号化・復号ツール
暗号化方式
レールを用意し、文字を書くところまではレールフェンス暗号と同じである。一番上のレールから順に「3,2,1」の数字を書き、その数字の順にレールから文字を拾うと、暗号文「IAAESHSSNXMLMSAETIEPEG」を得る。このことを図4に示す。この「3,2,1」が鍵である。鍵は単語・フレーズから生成することも出来る。例えば「cat」がキーワードであるとして、アルファベット順に数字に変換すると「213」となる。
![](https://assets.st-note.com/img/1664021095809-32usQ0IHk1.png)
ところで、今作った暗号文は図3で作った暗号文と同じである。これは2つの暗号文の作り方が上下対称であることによる。
Redefence暗号にもレールフェンス暗号同様、オフセットをつけることができる。ただし、上下対称の配置が存在し、それらの配置ではやっていることは実質変わっていないことには注意(図5)。
![](https://assets.st-note.com/img/1664087732246-R0Ykakpqr8.png?width=1200)
上下対称の構造が見える
復号方法
レールフェンス暗号の復号とだいたい同じである。
1、暗号化方式に従い、暗号文と同じ文字数分「_」をジグザグにレールに刻んでいく。こうして文字を書き入れるスペースを確保する。
2、確保されたスペースに、レールの順番に注意しつつ片っ端から暗号文を詰め込んでいく。
3、文字列を左から読む。
解読方法
レールフェンス暗号同様、ツールによる総当たりが手っ取り早いと思われる。もしキーワードと思しき単語・フレーズに心当たりがあるのなら、それを試してみるのもよい。
レールフェンス・Redefence暗号の特徴
・文字の出現頻度分布やindex of coincidence(IC)は転置前の文章と変わらない。これは転置式暗号一般に共通する特徴である。
・レールフェンス・Redefence暗号を他の転置式暗号と分ける固有の特徴は不明。
まとめ
・レールフェンス暗号は転置式暗号の中では特に単純なものの一つであり、セキュリティ的には弱いとされる。
・Redefence暗号はレールフェンス暗号の変種であり、文字を拾うレールの順番を変えることが特徴である。
・レールフェンス・Redefence暗号を他の転置式暗号と区別する固有の特徴は不明。それらのうちいずれかであると仮定したうえで、ツールを使って確かめるのが手っ取り早いと思われる。
この記事が気に入ったらサポートをしてみませんか?