クイズ・雑学

有名な換字式暗号をまとめてみた

こんにちは、シンジ(@shinzi_quiz)です

先日、ガラル文字の解読に挑戦していた際に、暗号について触れる機会があったので、主要な換字式暗号をまとめてみました

※この記事では代表的な換字式暗号のみを取り上げています。RSA暗号や楕円曲線暗号のような高度な暗号には一切触れていません

暗号を自力で解いてみたい方は以下の記事をご覧ください(書きかけなので問題数が少なめです)

用語

暗号文を作ることを「暗号化」というのに対し、暗号文を元に戻すことを「復号化」と言います

また、暗号文を作る際に使う秘密の情報を「鍵」と言います

復号する側の人は、あらかじめ暗号を作った人から鍵を教えてもらっておいて、その鍵をもとに復号します

換字式暗号

換字式暗号とは、ある文字を別の文字に対応させる暗号のことです。

あらかじめA→F、B→U、C→E…などのように適当にルールを決めておき、そのルールに従って暗号化するというもので、シーザー暗号が特に有名です。

シーザー暗号

シーザー暗号(Caesar cipher)は、紀元前100年頃のローマの武将、ジュリアス・シーザー(ユリウス・カエサル)が使っていたと伝えれている暗号です。

カエサル式暗号、シフト暗号とも呼ばれます

https://ja.wikipedia.org/wiki/シーザー暗号 から引用

シーザー暗号では、上の図のようにアルファベット順に並べた時の3つ前の文字に変換することで暗号化します。

例えば、BEDという単語を暗号化したい時には、B→Y、E→B、D→Aと変換して、YBAという暗号文を作ります

シーザー暗号では3文字分ずらして暗号化・復号を行いますが、もちろんずらす文字数を変えても構いません

暗号文を読む際には、何文字分ずれているかという情報(これを「鍵」という)を元に復号します

この手の暗号の欠点としては、ずらし方は全部で25通りしかないので、鍵を知らない第三者でも、容易に復号できてしまう点にあります

ポリュビオスの暗号表

ポリュビオスの暗号表は、古代ギリシアの歴史家、ポリュビオスによって発明された暗号です。

表を使って、文字を数字(または他の文字)に変換する暗号で、換字式暗号の一種です

https://ja.wikipedia.org/wiki/ポリュビオスの暗号表 から引用

例えば、DOGという単語を暗号化したい時には、D, O, Gが入っているマス目の番号、すなわち「11 33 14」に変換します

もちろん表の中のアルファベットの並べ方は自由に選んでいいので、暗号表次第ではDOGが「23 45 12」になったり「42 51 33」になったりします

この暗号、鍵(ここでは暗号表)を知らないと到底復号できそうになく思えますが、「頻度分析」という手法を使えば、第三者でも意外と簡単に復号できます

頻度分析

頻度分析とは、文章における各文字の出現頻度を調べることです

例えば、英語の場合、eのような母音やtは文章中で多く使われるのに対し、qやzはあまり登場しません

つまり、暗号文中で使われている回数が多い文字は母音やt、滅多に出てこない文字はqやzだとおおよその見当がつくのです

この方法は完璧ではありません(※)が、暗号解読においては有効な手段となります

※ジョルジュ・ペレックの『消失』のようにeが含まれない小説もあります。

このように暗号化した人物が意図的に出現頻度を操作すると、この手法は使えなくなってしまいます

ヴィジュネル暗号

ヴィジュネル暗号は、フランスの外交官ブレーズ・ド・ヴィジュネルによる多表式の暗号のこと。

多表式暗号は上で述べた2つの暗号方式(シーザー暗号とポリュビオスの暗号表)とは異なり、変換ルールが変わる方式です

https://ja.wikipedia.org/wiki/ヴィジュネル暗号 から引用

ヴィジュネル暗号では、上のような対応表を用いて暗号化を行います

まず、暗号化する側の人は、鍵として適当な文字列を決めておきます(ここではarm)とします

次に暗号化したい文(ここではCODE)と、鍵、表を使って暗号化していきます

上の表でaとCの交わりはcであり、rとOはf、mとDはpというように暗号文 c, f, p が得られます。(ここでは鍵を列、暗号化したい文を行にして表を使っています)

鍵が暗号化したい語よりも短い場合は、armarmarm…のように鍵を繰り返し使います

よって残ったEはaとの交わりからeに変換され、最終的にはCODE→cfpeとなります

この暗号の重要な点は、鍵となる文字列の長さを第三者は知らないと言うことです

例えば同じAAAAAAAという文字列を暗号化する場合でも

TVTVTVTになったり(鍵をTVにした場合)

CIPHERCになったりします(鍵をCIPHERにした場合)

つまり上の例で言うと、AがT, Vの2種類に対応することもあればC, I, P, H, E, Rの6種類に対応することもあります。

鍵の知らない第三者が解読しようとする際には、1文字ごとにどのアルファベットに変換されているか全ての可能性(26通り)を考えなければならないため、先ほどの2つの暗号に比べ、解読は非常に困難となります。

なお、文章が長い場合には「カシスキー・テスト」と言う解読方法があります

その他の暗号(オススメの書籍)

暗号解読の歴史的な経緯について知りたい方、もっと多くの暗号に触れてみたい方は『暗号解読』(上・下)がオススメです

本記事で取り上げた暗号の他にも様々な暗号が紹介されています

下巻の巻末には1万ポンドの懸賞金がかけられた10問の暗号が掲載されているので興味のある方はぜひ挑戦してみてください

※日本語版が出版された時には既にスウェーデンの5人組によって全問解決されていたため懸賞金を受け取ることはできません。日本語版には解読方法が掲載されています

「共通鍵暗号」「公開鍵暗号」「SSL/TLS」といったセキュリティに用いられている暗号について知りたい方は『暗号技術入門 秘密の国のアリス』が詳しいです。

初心者でも楽しく読むことができます

自力で暗号を解きたい方へ

実際に暗号を解いてみたいという方向けに問題集を作ってみました

是非ご覧ください↓