仮想通貨の基礎、「暗号」の歴史を概観する。シーザー暗号からエニグマ、量子コンピュータまで。

この記事では暗号の歴史について、シーザー暗号などの古典暗号からエニグマ暗号機、現代の公開鍵暗号方式までを概観しています。

仮想通貨に興味がある人、またビットコインの仕組みを学習したことがある人にとっては馴染みのある「公開鍵暗号方式」「デジタル署名」といった概念が、歴史上どのように成立したのかを簡単にまとめていきたいと思います。

古典暗号ーシーザー暗号、換字式暗号など

シーザー暗号

暗号は紀元前古代エジプトのヒエログリフにも利用されるほど歴史は長いのですが、古典暗号として有名なものとしてユリウス・カエサルが用いたとされるシーザー暗号があります。

このシーザー暗号はアルファベットから文字をある数だけ後にずらす形で作成される暗号です。カエサルは3文字ずらしを好んだようですので、例えばDOGと言う平文(暗号化する前の文)を暗号化する際にはGRJと言う暗号文が生まれることになります。

暗号のルールについて

「文字をずらす」と言った法則のことを暗号上のルールとして「アルゴリズム」、「3文字ずらす」と言った量のことを「鍵」といいます。

暗号では、暗号鍵を暗号アルゴリズムと鍵に分け、鍵となる文字数をさらに変更する形で解読を難しくしていると言うのが基本ルールになるのです。

しかしこのシーザー暗号は鍵の数が26しかないため、少なくとも26通りの鍵を全て試すことで、暗号を解読できてしまうものでした。

このように総当たり方式で暗号の解読を試みる行為をブルートフォースアタック/総当たり攻撃とも呼びます。

単一換字式暗号の登場

このようなシーザー暗号に対して、文字と文字の対応を不規則にしたのが単一換字式暗号です。

これは平文の「A」は「E」に置きかえよう、「B」は「V」に置きかえよう…と言ったように、全ての文字の対応をランダムにしたもので、この場合鍵の数が26×26になるため、シーザー暗号に比べるとかなり解読が難しいものと考えられていました。

しかしこの単一換字式暗号では平文と暗号文で対応する文字の頻度が一致してしまいます。普通どのような文章であっても平文の文字の出現頻度には偏りがあるので、この出現頻度を比較することで平文と暗号文の文字の対応を特定することが可能になってしまいます。これを「頻度分析」と呼び、9世紀にアラビア人によって単一換字式暗号は解読されました。

エニグマとチューリングマシン

無線通信の登場

19世紀末に無線通信が登場しましたが、この電波による無線通信は手紙のように特定の相手にのみ送付することができるようなコミュニケーションツールではなく、不特定多数、つまり敵方にも通信を傍受される恐れがあります。そのため無線通信の発展とともに暗号は必須のものとして研究が進んでいきました。

エニグマ暗号機とアランチューリング

第二次大戦期にナチスの軍事機密を支えたのが「エニグマ暗号機」です。エニグマは換字式暗号の一種ですが、構造が非常に複雑で解読は不可能とすら言われていました。

このエニグマの解読に貢献したのが人工知能の父・アランチューリングであり、彼が提唱した「万能チューリングマシン」が現在のコンピュータの基礎となっています。

エニグマとチューリングについては数年前に話題になった映画「イミテーション・ゲーム」がおすすめです。

チューリングと機械との関係性、クライマックスにはついグッときてしまいますし、ベネディクト・カンバーバッチのチューリングがハマり役なので、ぜひご覧ください!

現代暗号の登場

暗号は本来軍事目的で利用されたものであり通信手段自体も未熟でしたが、1970年に共通鍵暗号方式DESの制定と公開鍵暗号方式の発明により転換点を迎えます。

この頃にはコンピュータを利用したり、トランジスタ・集積回路の発明などで機械式暗号よりもさらに複雑なアルゴリズムを生み出せるようになっていたようです。

共通鍵暗号方式

共通鍵暗号方式においては 暗号化と復号で同じ鍵を使います。暗号技術としては始祖である「DES」や現在使用されている「AES」があります。

なおDESの鍵の長さは56ビットですが、現在は危殆化しています。

危殆化とは?
コンピュータの性能向上に伴い、高速に短時間で解読作業ができるようになることで、暗号の安全性が低下することを指しています。ゆえに危殆化した暗号は最新の暗号に置き換える必要があります。

なお少し話は逸れますが仮装通貨との関係で言えば、現在PoWに利用されるハッシュ関数を含む暗号が危殆化した場合を想定した議論は暗号学界隈以外ではコンセンサスアルゴリズムなどの他の議論と比較するとやや薄いように思われます。

こちらの関連記事でまとめています。

【書評】ブロックチェーンを巡る課題について、『ブロックチェーン技術の未解決問題』を読んでまとめた。鍵管理から暗号技術、分散システムまで。

DESの危殆化に伴い一般公募により採用された、現在利用されている暗号技術「AES」の鍵の長さは128,192,256ビットから選択可能となっています。

公開鍵暗号方式

公開鍵暗号方式では暗号化と復号で公開鍵と秘密鍵という別の鍵を利用します。暗号技術としては「RSA」などがあり、これはは非常に大きな数の素因数分解が困難であることを利用したもので、世界中で広く利用されています。

システムとして利用する際の暗号方式と暗号技術としての観点から言えば、
処理速度・鍵の数・鍵の配布方法の3つの視点から共通鍵暗号方式を利用するか公開鍵暗号方式を利用するか決定する必要があり、また暗号技術(DES/AES/RSA)の良し悪しは、暗号アルゴリズム・鍵の長さ・危殆化の有無により評価することになります。

この点、共通鍵暗号方式は処理速度は公開鍵暗号方式と比較すると数百〜数千分の1の時間ですみ、スピーディなものの、必要な鍵が多くなり(n(n-1)/2)ます。一方公開鍵暗号方式は環境構築が面倒で処理速度こそ劣るものの必要な鍵の数は必ず1人につき2つだけであり、n人が利用する際の鍵の総和は2nで足ります。鍵の配布もPGPやPKIと言った公開鍵基盤を用いることができます

また、共通鍵の受け渡しを公開鍵暗号方式で実施する両者の「ハイブリッド方式」も現在sslなどに活用されています。

未来の暗号の姿と量子コンピュータ

現在の公開鍵暗号方式、特にRSA暗号は大きな数の素因数分解が困難なことを利用しているので、もし素因数分解を短時間で行うことができる量子コンピュータが実現した場合、RSA暗号もいずれ危殆化するかもしれません。

2019年1月8日、IBMが世界初の商用量子コンピューターの開発を発表していることなどにも見られるように、量子コンピュータの実現は時間の問題であり、光量子を利用する「量子暗号」や公開鍵暗号の耐量子化など、新たな暗号技術の開発を待つ必要があります。

この記事を書くに当たっては、『暗号技術入門』という本をブロックチェーンのプロトコルレイヤーの優秀な開発者の多い会社Chaintope社(Twitter:@chaintope)の中城さん(Twitter:@nakajo)からギフトとして頂きました。ありがとうございました!

created by Rinker
¥3,240 (2019/02/16 01:09:23時点 Amazon調べ-詳細)

この本は非エンジニアにも非常に評判がよいですし、プログラマや技術的仕様を知らない人でも暗号についての理解を深めることができるので、この記事を読んで興味を持った方はぜひ一読をお勧めします。

また『暗号技術大全』も分厚くやや高価ですが、定評のある書籍として知られていますので、ご興味のある方はぜひ。サンプルコードが多いので非情報系の文系には最初は辛い本ですが、情報系の学生にとっては初歩から実践まで学習できる本なんだろうなと思いました。

created by Rinker
¥7,000 (2019/02/16 08:34:53時点 Amazon調べ-詳細)

 

なお、本記事のような暗号の歴史をもっと深掘りしたい人はこの本がおすすめです。ページも少なく薄いですし江戸川乱歩やコナンドイル、アナグラムやロゼッタストーンと言った歴史上の人物・遺跡にまつわるエピソードがたくさん含まれており、暗号史をサクッと読むことができます。

created by Rinker
¥1,296 (2019/02/16 01:39:35時点 Amazon調べ-詳細)