暗号紹介:Four-square暗号(1) 暗号の仕組みとその特徴
Four-square暗号とは
フランス人の暗号作成者Félix-Marie Delastelleにより発明された。Delastelleは他にも以前紹介したBifid暗号なども発明した、アマチュアの暗号作成者である。
暗号表を用いて2文字組を別の2文字組に変換する形式をとっていることから、似た形式を持つプレイフェア暗号と対比されることがある。
プレイフェア暗号と異なり、政治・外交・軍事的に実用されたという記述は見かけない。Four-squareはプレイフェア暗号よりも実際強固であるが、その分煩雑でもあった。したがってプレイフェア暗号の方が一般的になったと考えられる。
以下のサイトも参考のこと。
ウィキペディア記事(英語版)「Four-square cipher」
暗号解析サイトdcode.fr内のFour-square暗号化・復号ツール
暗号化方式
暗号表の準備
暗号表を準備する。左上と右下の格子に、プレーンテキストの文字をアルファベット順に書き入れる。このとき、使用頻度の少ない文字、たとえばJを省き25マスに収まるようにする。次に右上と左下の格子に、暗号文字をキーワードを用いて書き入れる。例えばキーワードが「BENJAMIN」の場合、JをIに変えて「BENIAMIN」とし、重複する文字を省いて「BENIAM」を格子に書き入れ、残った文字をアルファベット順に書いていく(J以外を省く流儀ならば、Jをそのまま残してもよい)。
キーワードとして「BENJAMIN」「FRANKLIN」を用いて作った暗号表が図1である。
今回は暗号文字のみキーワードを用いて並べ替えたが、プレーンテキスト文字も同様に並べ替えることも可能である(ただしキーワードが増えて大変なのだろうか、通常は暗号文字のみを並べ替える)。
暗号化する文章はこれである。
暗号化
まず、元のメッセージを2文字ずつの組に分けていく。このとき、同じ2文字からなる2文字組があってもよい(この点でプレイフェア暗号と異なる)。1文字余った場合は、無意味な文字、例えばxを補う(これはプレイフェア暗号と同様)。2文字組の始めの文字を、左上の格子から探す。同様に終わりの文字を右下の格子から探す。2つの文字を角とする長方形を作る。そして、2つの文字をそれぞれ同じ行の別の角にある文字に変換する。
例として、プレーンテキストのwhを暗号化する。左上の格子からw、右下の格子からhを探し出して長方形を作る。wと同じ行にある別の角にある文字を右上の格子から探すとXであるから、wはXに変換される。同様にhはIに変換される。したがってwhはXIに変換される。このことを図2に示す。
以下同様にして、元のメッセージを暗号化すると次のようになる。
この暗号の構造上、始めの文字と終わりの文字が同じ行もしくは列に存在することはあり得ないので、その時の手続きは考えなくてよい(この点においてもプレイフェア暗号と異なる)。
復号方法
鍵を知っている正当な受信者が、受け取った暗号文を復号する方法を述べる。
暗号化とは逆の手順を行えばよい。例えば暗号文字XIを復号することを考える。右上の格子から初めの文字Xを、左下の格子から終わりの文字Iを探して長方形を作る。Xと同じ行にある別の角にある文字を左上の格子から探すとwであるから、Xはwに復号される。同様にIはhに変換される。したがってXIはwhに変換される。
解読方法
Four-square暗号に限らず、プレイフェア暗号やBifid暗号など、現代以前の暗号は、十分な量のプレーンテキストがあれば解読可能になる。暗号文のみ知っている場合は、コンピューターによる力業より鍵を探すことになる。
1、キーワードを推測し、暗号表を作成する
暗号文に付随して何らかのあやしい単語・フレーズがある場合、それがキーワードかもしれない。あるいは暗号文がとある世界観に基づくものだったばあい、その世界観的に重要な単語がキーワードかもしれない。それを試してみるとうまくいくかもしれない。
2、プレーンテキストの一部を推測し、暗号表を構成する
暗号が作られた当時はコンピューターがないため、これが最も標準的な解読法である。暗号文が何かしらの定型に沿っている場合、それを手がかりにして解くことができる。また、暗号文の特徴から単語を推測することもできる。例えば上述の暗号表によりre qu es te d-→UR UP NU UN --に変換される。よく見るとU? U? ?? U?という特徴的な形が現れている。そのような特徴的な形を持つ暗号文と、対応するプレーンテキストをあらかじめリストアップしておくのは解読に有効である。
具体的な解読方法は別の記事に記す。
3、コンピューターで力業で解く
暗号文しか分からない場合、コンピューターで力業で解くことになる。総当たり方法かもしれないし、ランダムに暗号表を作り替えていく方法かもしれない。そうして用意した暗号表に対する解読文を評価し、よいものを採用する。自然言語の持つ特徴(2文字組の出現頻度など)をどう評価し、どのように評価関数を組み立てるかが課題である。
Four-square暗号の特徴
もう一度図1の暗号表を再掲し、Four-square暗号の特徴を見てみる。
プレイフェア暗号との対比は次のようになる。
・暗号文の文字数は偶数である。また、暗号文に用いられる文字の種類は高々25種類であり、つまり1文字(主にJ)が使われていない。これはプレイフェア暗号同様である。
・プレイフェア暗号では同じ文字からなる2文字組を暗号化できなかった。しかしFour-square暗号では可能である。例:aa→BF
・同様に暗号文中に同じ文字からなる2文字組が生じることもあり得る。例:ce→AA
・プレイフェア暗号では、反転関係にある2文字組同士は、やはり反転関係にある2文字組にそれぞれ変換された。Four-square暗号ではそれは成り立たない。例:ab→EF、ba→BR
・プレーンテキストのある文字が、自分自身に変換されることがあり得る。これはプレイフェア暗号とは異なる。例:pe→PK
・index of coincidence(IC)は通常の英文よりもやや低くなる。上記暗号文ではIC=0.05082である。
まとめ
・Four-square暗号は暗号表を用いて2文字組を別の2文字組に変換する仕組みの暗号である。
・以前に紹介したプレイフェア暗号やBifid暗号同様、暗号文のみからの解読は人力では困難である。人力で解く場合、キーワードもしくはプレーンテキストの一部を推測して解くのが常道である。
・与えられた暗号文がFour-square暗号であると推測できる根拠は少ない。プレイフェア暗号に見られる特徴がFour-square暗号には見られない場合があるからである。ICが通常の英文よりやや低いことや、文字数が偶数であること、暗号文中に現れる文字が高々25種類であることなどが数少ない根拠である。
次の記事
この記事が気に入ったらサポートをしてみませんか?