暗号史
暗号史(あんごうし)の記事では、暗号・暗号学・暗号理論・暗号技術、などに関する歴史的事項を記述する。
暗号の起源は古く、数千年の歴史を持つ。時間的にはその大部分は古典的な暗号に関するものである。古典的な暗号の暗号化の大抵は、紙と鉛筆(と多少の道具)を使って行うことができるものであった。暗号に使われる道具は、その長い歴史にわたり、機械工作精度などの進歩にあわせ、少しずつ発展した。
暗号解読は暗号化の裏面にあって、暗号の歴史と対となる歴史がある。ルーツを言語学に持つ頻度分析の暗号への応用(頻度分析 (暗号) の記事を参照)はその初歩であり、そして途絶えることなく進化した。暗号にまつわるさまざまな事件の約半分はこの裏側にあるとも言える。
技術史から見ると18世紀以降に急激に発展した電気の利用の、情報通信への応用では、同時に暗号化の要請も重要であった。エニグマのような、電気回路の接点網の断続によって信号をスクランブルするこの時期の暗号は、次に来たコンピュータの時代の暗号の、いくつかの意味で先駆となっている。
「ケルクホフスの原理」は、以上のような古典から近代までの暗号と、現代の暗号とを隔てている原理である。そして、1940年代にシャノンらによって基本的な法則などが確立された情報と通信の理論による暗号に関する定量的な議論は、こんにち、暗号の安全性を検討する基本となっている。また特に現代の暗号の特徴を示す一例としては、RSAのような復号と暗号化に非対称の鍵を利用する暗号方式は革命的であった。
パーソナルコンピュータをはじめとする個人向けの情報機器の普及によって、安全な秘匿通信が個人レベルでも不可欠なものとなった。また、携帯電話での通話の暗号化など、ユーザが知らないうちにさまざまな身近な場所に暗号が浸透してきていて、プライバシー保護にも重要な役割を担っている。
一方で、国家によって、個人が利用可能な暗号方式を脆弱なものに制限して国民個人を危険に晒す可能性があるような、あるいは鍵を国家機関に預けなければならないものとするなどといった(「キー・エスクロー」制)、個人がその自由や情報セキュリティを追求することを強権的に制限し、国家のセキュリティを優先させるなどといったような動きが、枢軸的な一部の国家に限った話ではなく、むしろ自由を標榜するような国家においても常に主張する勢力があり、定期的に話題の回帰が見られるなど、太古から続くセキュリティと自由の議論は今日も続いている。
暗号の起源は紀元前にまで遡る。紀元前19世紀ごろの古代エジプトの石碑に描かれているヒエログリフ(象形文字)が現存する最古の暗号文とされている。文章中に標準以外のヒエログリフを用いたものがあり、一般のヒエログリフしか知らない者から書いてある内容を隠すのに役立ったと考えられ、これはもっとも初期の換字式暗号のひとつである。
紀元前5世紀にはスパルタでスキュタレー暗号が使用される。棒(スキュタレー)と革紐とを使った暗号方式で、革紐上には一見ランダムに見える文字列が描かれているが、この革紐をスキュタレーに巻きつけると、ある行に平文が現われる。スキュタレー暗号では棒の太さが鍵になっているとも捉えることもできる。棒と革紐を別の人間が所持し、割符のようにも使ったらしい。
紀元前2世紀にはポリュビオスがポリュビオス暗号を発明する。ポリュビオス暗号は、5×5=25のマス目にアルファベットを記入し、各アルファベットにそのアルファベットが入っているマス目の行番号と列番号とを対応させる換字式暗号である。
紀元前1世紀に登場したシーザー暗号は、ユリウス・カエサルが用いたとされ暗号の歴史の中でもとりわけ有名なものである。シーザー暗号は元のアルファベットから文字をある数だけ後にずらして作成する暗号方式であり、この数が鍵となっている。しかし鍵の数が26しかないため、暗号の安全性はアルゴリズムの秘匿にも依存していると考えられる。
それに比べて、文字と文字の対応を不規則にした一般的な単一換字式暗号は、その鍵の数が26の階乗存在(アルファベットの場合)し、ほぼ解読が不可能と思われた。
換字式暗号は、9世紀頃にはアラビア人によって、頻度分析という手法が発見されたことによって看破された。ヨーロッパではその方面の研究は発達せず、長らく単一換字式暗号が安全な暗号として使用されていた。15世紀になるとルネサンスの影響も受け、急速に発達し、この頃にようやくヨーロッパでも頻度分析の手法が確立した。
頻度分析によって、単一換字式暗号は安全ではなくなってしまった。単一字の(連綴を対象としない)頻度分析に対して対抗するための代表的な防衛法としては、次のようなものがある。
平文そのままではなく、文中に無意味な文字(冗字。虚字、捨字とも)を混ぜてから暗号化する。復号後、冗字に復号されたものは捨てる(ないし空文字列に復号する)。分析を混乱させることが目的である。
たとえば、平文では頻度の高い文字eにe1・e2・...のように複数種の記号をランダムに割り当てる、といったようにして、真の頻度を隠匿する(秘匿度数方式、homophonic substitution)。
たとえば、平文では頻度の低い文字qとzを同じ記号に割り当てる、といったようにして、真の頻度を隠匿する(逆秘匿度数方式、polyphonic substitution)。こちらは、何の工夫も無い場合は直後にuがあったらqだろう、といったように復号が機械的にはできない。
など、様々な工夫が凝らされるが、15世紀後半から16世紀にかけて、それでも、安全ではなくなってきてしまった。
同時期に「ヴィジュネル暗号」などの多表式換字暗号と呼ばれる、より安全性の高い暗号が考え出されていた。例えば、たとえばaが必ずcになるような従来の方法ではなく、aaとかbbとかccという綴りが原文にあっても、対応する暗文はcgといったようになるような(つまり、同じ文字でも暗号化されると違う文字になる)方法である。単一換字式暗号に比べて安全性は高いが、暗号化・復号が煩わしかった為、あまり使われなかった。
17世紀にあったエピソードに、ニュートンがライプニッツに向けて、微分法と微分方程式の解法に関して述べた文を「暗号文」にして送った、というものがある(これは、両者の関係が決裂的になる以前の話である)。ラテン語で書いた原文を元に、それに使用したアルファベットを順に使用した個数並べた、アナグラムの一種で(最初の部分を示すと "aaaaaa cc d æ" といったようなものである)、現代の暗号学の観点から言うと、解読可能な暗号と言えるようなものではない。暗号のつもりであったのか、自分の発見であることを示すための、一種の言うならばハッシュ関数による署名のようなものであったのかは謎とされている。
18世紀頃には、外交や軍事上の必要から安全性の要求が高まると、面倒だが安全なヴィジュネル暗号も使うようになっていった。
ヴィジュネル暗号には、鍵の周期性という弱点があった。変換表は鍵によって逐次切り替えられるが、鍵自体は固定のため、鍵の長さごとに暗号文を調べると、それは同じ変換表によって単純換字された暗号になっているため、頻度分析によって解読できてしまう。この解読法は19世紀の中頃に発見されて、ヴィジュネル暗号も解読されてしまった。
1895年にマルコーニが無線通信(当初は無線電信)を実現し、暗号の歴史は大きな転換点を迎えることとなる。電波による無線通信は特定の相手のみに送信することはできず、味方と同時に敵も通信を傍受できるばかりでなく、手紙等と違い敵の手に渡ったことを検知する手段もない。このため、無線通信を扱う上で暗号は欠かせないものになった。
暗号機に関する歴史は、暗号機#歴史を参照。
ドイツの発明家シェルビウスが発明し、1925年にドイツ軍が採用した暗号機エニグマは長い間ドイツ軍の通信の秘密を支えてきた。エニグマの暗号方式は換字式暗号のひとつだが、3枚のローターと数本のプラグの位置を交換することができるため鍵の個数は膨大な数になり、一文字打つたびにローターが回転し回路が変更されるので、単純な換字式暗号とは違い、同じ文字がその位置によって別の文字へ変換されるなど複雑なものである。操作も簡単で特別に訓練を積んだ専門家でなくても扱うことができた。エニグマの暗号機そのものはやがて連合国側も手に入れ解析を進めたが、コードブックの奪取以外の方法ではなかなか解読することは出来なかった。
解読は不可能かと思われたエニグマであったがイギリスの暗号解読者アラン・チューリングらによって理論的な解読がなされることとなる。チューリングが開発した理論でも膨大な計算が必要であり、最初は手作業による人海戦術で計算を進めていたが、やがて開発された暗号解読器、通称"The Bombe"によって大きく手間が軽減されることとなる。このBombeは計算を行える機械としてその後のコンピュータの発明にも影響する。暗号解読法は軍事機密であるため、大戦終了とともにBombeは廃棄されてしまい現在は残っていない。このように軍事機密として闇に葬られてしまった暗号の歴史も少なくないと考えられる。
またこの頃には戦況の変化のスピードが高まり、暗号通信にも速度が求められることとなった。単純に複雑なだけでは暗号化や復号に時間がかかり、実用性が乏しくなってしまうが、暗号機の登場は暗号化の速度向上にも貢献している。だが、それらの裏を掻くかの如く、アメリカ軍はアメリカ先住民ナバホ族の言葉であるナバホ語を、第二次大戦中に電話通信の暗号として利用した(コードトーカー)。ナバホ族出身の兵士同士が会話をするだけなので通信はとても早く正確で、ナバホ族の言葉は大変複雑な上に類似する言語が存在せず、日本軍は解読どころか暗号文を書き留めることすらできなかったという。これらのエピソードは映画「ウインドトーカーズ」でも描かれている。
だが、その日本も外務省と在ドイツ日本大使館の間で、重大な軍事機密事項の情報連絡を早口の薩摩弁で行うという同種のアイデアを実行している。これについては通常の国際電話で会話したため、アメリカ軍は当然の如く傍受したが、解読に困難を極め、最初はほとんどまともに解読ができなかったという。また、日本の外務省電文や海軍はエニグマを過信し、コードブックの変更や秘匿の維持を怠ったため、連合国に早期に破られてしまったのに対し、陸軍は換字式暗号を併用した複合暗号を使用し、しかも表意文字(漢字)と表音文字(仮名)を織り交ぜたものだったため、解読が大幅に困難になった。基本的な解読法が判明したのは戦争の趨勢も決まった1944年末で、完全な解読は終戦まで出来なかった。
1940年代、第二次世界大戦終了前後に開発が始まったプログラム可能な電子計算機(コンピュータ)の登場は機械式暗号の信頼性をさらに失速させる。コンピュータは自由にプログラムを設定でき、任意の機械式暗号をシミュレートできる上に暗号化・復号のスピードも桁違いで、暗号鍵を総当りで調べる、暗号文を統計処理して暗号鍵を推測する等、暗号解読の強力なツールとなる。初期のコンピュータにはコロッサスのように暗号解読を目的として開発されたものもある。
一方で1947年のトランジスタの発明、1958年の集積回路の発明など半導体技術の進歩は暗号にも大きな影響を与え、機械式では実現不可能な複雑なアルゴリズムでも実現可能になった。信頼性の高い暗号が、手軽に利用できるようになったのもコンピュータや半導体技術が出現してからである。
1970年代、ホルスト・ファイステルにより換字式暗号と転置式暗号を組み合わせた換字-転字暗号が提案され、DESの原型となるブロック暗号 Lucifer が誕生した。
エニグマなどの機械式暗号は、ブロック長が数ビットで、換字表の切替周期の長さとその統計的ランダム性を向上させた換字式暗号であるが、ブロック暗号はブロック長を64~128ビットと大きくし、換字と転置を繰り返すことで暗号文を作成する方式である。単純換字式暗号の換字表の種類は26!サイズであるが、ブロック長が64ビットのとき、(2^64)!という巨大なサイズとなる。
ただ、Luciferの換字表(Sボックスと呼ばれる)の設計には問題があり、解読が容易であった。その為、DES規格制定の際、当時のコンピューターを駆使してSボックスの検証が行われた。しかし助言したNSAがSボックスの設計方針(差分解読法への耐性)を明らかにしなかったため、裏口(バックドア)を仕掛けたとの疑惑が残った。
ブロック暗号の歴史は、ブロック暗号#歴史を参照。
コンピュータの性能が向上するにつれ、暗号の安全性は、コンピュータをもってしても解読を防げる程度にまで達したが、暗号技術は別の壁にぶつかる。
共通鍵暗号で通信をするには予め鍵を相手に送っておかなければならないが、その鍵を暗号化せずにそのまま送信すれば第三者に盗まれてしまう。安全に鍵を配送するのは多額のコストがかかり、これが鍵配送問題と呼ばれる問題である。
鍵配送問題の例として、敵国に侵入したスパイに暗号鍵を送信していると推測される放送もある(ナンバーステーション、乱数放送)。
鍵配送問題を解決すべく、1976年にホイットフィールド・ディフィDiffieとマーチン・ヘルマンHellmanが公開鍵暗号系の概念を提案する(Diffie-Hellman鍵共有)。これは共通鍵暗号系と違い、暗号化と復号に別の鍵を使う、というアイデアである。暗号化の鍵は誰でも入手できるように公開してもよく、送信者はその公開鍵で暗号化して送信し、受信者は復号鍵で平文に戻す。公開された暗号化鍵では復号できず、復号鍵は受信者しか知らないので、通信の秘密は保たれる。
具体的な公開鍵暗号方式として有名なRSA暗号はその翌年に発表された。その後、ラルフ・マークルMerkleとヘルマンの二人が公開鍵暗号方式であるMerkle-Hellmanナップサック暗号を提案したが、この暗号方式は後に解読されてしまった。暗号ソフトウェアはフリーウェアとして公開されているPGPなどもあり、誰でも安心して通信できるようになった。
現在ではもっぱらソーシャルエンジニアリングによる鍵や情報の流出の危険性のほうが問題となっている。コンピュータのパスワードを複雑なものにする、パスワードのメモを机やゴミ箱に放置しないなどの対策が必要となる。
典型的な暗号方式であるRSA暗号の信頼性は、大きな数の素因数分解が困難なことに依存している。もし量子コンピュータが実現したとしたら、素因数分解が短い時間で可能になるのでRSA暗号は破られることになる。
量子(現在のところ光量子)を利用した量子暗号も研究が行われている。
日本では1930年代から機械式暗号を開発、使用を開始した。しかし多くは他国に解読され、第二次世界大戦末期には外務省や陸軍、海軍の情報が筒抜けとなっていた(日本の機械式暗号の項を参照のこと)。
第二次世界大戦後の日本の暗号の使用状況は秘匿されているが、1977年にオーストラリアの元外交官が執筆した著書の中で「日本の外交通信暗号は全て解読されている」、「最近は解読不能な暗号を作成することはさほど困難ではないのに、日本政府は解読された古い暗号を依然として使っている」と言及。外務省が調査した結果、元外交官が指摘する暗号とは「電報略号」を使用した機密性の低い通信であることと結論づけている。この際、正式な暗号の乱数表の作成はクセが出ないようコンピューターを利用していること、乱数の連絡も電報のほか磁気テープ(第三者が触れた場合には消磁される機能付き)などを利用していることが明かされており、1970年代の暗号を取り巻く状況が垣間見れるものとなっている。なお、1970年代にはUKUSA協定諸国による盗聴システムが稼働しており、どこまで秘匿されていたかは明らかではない。