暗号の歴史 暗号の歴史的な発達の概略について触れておこう。 
 (1)古代の暗号 
  シーザー暗号(Caesar cipher)というのは、アルファベットを 
  一定個数ずつずらすことによって暗号化するものである。たとえば 
   HELLO→IFMMP のようにする。ローマの独裁官ユリウス・カエサル 
   (英語読み:ジュリアス・シーザー)が使用したとされるが起源は 
   かなり古いものと思われる。 
   ABCDEFGHIJKLMNOPQRSTUVWXYZ 
   BCDEFGHIJKLMNOPQRSTUVWXYZA 
   
  アトバシュ(ATBS)というのは文字を鏡像変換するものである。 
  これも紀元前から使用されていたらしい。例えば HELLO→SVOOL 
   ABCDEFGHIJKLMNOPQRSTUVWXYZ 
   ZYXWVUTSRQPONMLKJIHGFEDCBA 
  なお「アトバシュ」はヘブライ文字の先頭のAleph,最後のTau, 
  最初から2番目のBeth,最後から2番目のShinを続けて読んだもの。 
  ラテン文字式に言えばAZBYということ。 
   
  スキュタレ(skytale)はギリシャのスパルタが使用していた暗号 
  で、いわゆる縦読み方式の転置式暗号である。例えば 
    GEORGERETURNFRIDAY (George Return Friday) といった文章を 
     GRRUFD 
     EGERRA 
     OETNIY 
  のように縦読みにして、これをつなげて  
     GRRUFDEGERRAOETNIY 
  の形で送るもの。実際の手順としては、木の枝に帯状のものを巻き付け、 
  そこに「縦書き」して、記録した帯だけを味方に送り届けていた。 
  古代に暗号の知識を持つ人が少なかった時代にはこの程度のものでも、 
  第三者が解読するのはほぼ不可能だったであろう。 
  
 (2)換字式暗号の発達 
  シーザー暗号やアトバシュは文字を一定の規則で別の文字に置換している 
  ので「(単純)換字式暗号, (simple) substitution cipher」という。 
  ドイルの「踊る人形」も文字を人形の絵に置換したということでいえば、 
  この単純換字式である。「踊る人形」の中でホームズは一連の暗号の中に 
  突出して出現している人形があることに気付き、これが英語の文章の中で 
  最もよく出現する E の文字に相当するのではないかと推理し、この暗号の 
  解読に成功する。 
   
  実は単純換字式の暗号の最大の泣き所が、暗号文が大量にあった時に、 
  その中に現れるこのような統計情報によって簡単に暗号が解かれてしまう 
  ことにある。 
   
  そこで15〜16世紀にヨーロッパで国家の規模がどんどん大きくなっていき 
  つつあった時代、一文字ごとに変換規則を変える「多表式」の暗号が出現 
  する。その中で最も単純なものは、シーザー暗号の変形で、1文字目は0個 
  ずらし、2文字目は1つずらし、3文字目は2つずらし、4文字目は3つずらし 
  といったことをするもので、ドイツのJohannes Trithemius(1462-1516)が 
  使用していたことからトリテミウス暗号という。この方法では原文の文字 
  の出現数の統計が暗号文にそのまま反映されないので「踊る人形」式の 
  解読はできない。 
   
  しかしこの単純ずらし方式の場合、その暗号がそういう方式で作られている 
  ことにさえ気付けば、簡単に解読されてしまう。そこで次に考えられたのが 
  単純に0,1,2,....とシフトさせるのではなく、通信相手同士が予め決めて 
  いる特定の「鍵」の分だけずらしていく方式である。この方法なら第三者は 
  「鍵」を知らない限り、この暗号を解読することは困難である。この方法は 
  フランスのアンリ3世の廷臣Blaise de Vigenere(1523-1596)が使用していた 
  ため、ビジュヌール暗号という。 
   
  (ビジュヌール暗号は内容が別途分かっている通信文の暗号文が第三者に 
  入手されると、逆算によって鍵がバレてしまうのが欠点である) 
   
 (3)近代の軍事暗号 
  暗号通信は第一次世界大戦を契機に無線で指令や連絡を取り合う必要性から 
  高度な発達を始めるが20世紀前半の暗号技術史上、最高傑作ともいわれるのが 
  1926年に開発されドイツ軍が第二次世界大戦で使用したエニグマ(Enigma, 
  「謎」の意味) である。 
   
  これはタイプライタ式の暗号作成/解読機で、文字を打つたびに変換されては 
  内部のローターが回転して次の文字の変換用の設定になっていくというもの 
  である。ローターは素数周期のものが3〜8個装備されており、非常に長い周期 
  の同型写像を与える。エニグマの初期設定はプラグコードの接続や設定用の爪 
  の回転で変更できるのでこれを不定期に変更することで敵国にとっては 
  ひじょうに解読しにくい暗号となる。 
   
  映画などではこのエニグマを奪い取って暗号をさっと解読したりしているの 
  だが、実際にはエニグマだけ奪っても、初期設定が分からなかったら、その 
  まま傍受した敵の暗号を復号することはできない。むろん解読の大きな助け 
  にはなるが。 
   
  ドイツ軍はこの暗号機にひじょうに自信を持っていたので、よもやこれが 
  解読されるとは夢にも思っていなかったのだが、実際には連合国側の技術者 
  によりきれいに解読されていた。 
   
  ドイツと同盟を組んだ日本もこのエニグマを輸入し独自の改良を加えて 
  「91式暗号機(アメリカはRed Machineと呼んだ)」を制作した(皇紀2591=1931)。 
  しかしこれもアメリカ軍により解読されていた。日本は91式が解読されている 
  とは夢にも思わないままこれを改良してもっと高度な「97式暗号機(アメリカ 
  はPurple Machineと呼んだ)」を作る(皇紀2597=1937)が、愚かにも同じ文章を 
  91式暗号機と97式暗号機で送信するなどという信じがたい運用をして、1941年 
  の真珠湾攻撃前にはPurple Machineもきれいに解読されてしまっていた。 
  
 (4)現代のコンピュータ暗号 
  1960年頃、IBMのHorst Feistelはデータのビット列について繰り返しマスク 
  とのXORを取る暗号「Daemon」を開発。これに改良を加えてLuciferと 
  いう暗号を開発した。1973年にアメリカ商務省標準局が政府標準の暗号を公募。 
  IBMもこのLuciferの改変型DESで応募し、これが採用されることとなった。 
   
  (マスクとのXORを取るというのはつまりビジュヌール暗号を二進数の世界で 
  していることになる。なおLuciferは128ビットの鍵を使用していたがDESでは 
  56ビットに短縮されていた。当時の計算機の能力に配慮したのであろう) 
  DESは現在のコンピュータにかかれば簡単に解読されてしまうシンプルな暗号 
  だが、当時のマシンパワーではとても解読不能なほど難しい暗号であった。 
   
  DESは現在では共通鍵式の暗号に分類される。これは暗号化と復号化に同じ 
  キーを使用するためで、この鍵は通信者同士があらかじめ保持しておかなけ 
  ればならないし第三者への漏洩を極力防止しなければならない。また鍵を 
  変更する時にそれをどうやって相手に届けるかというのも難しい問題である。 
   
  そこで登場して来たのがDiffie-Hellman法である。これは通信相手と鍵を 
  共有するためのうまい手順を与えるもので、1976年にWhitfield Diffieと 
  Martin Hellman が発見した。 
   
  手順の概略を説明すると、通信相手のふたりが各々最初に大きな素数 q と 
  それより小さな数 a を決めておき(a,qは他人に知られても良い)、それに 
  合わせて各々自分の「秘密鍵」を決める。お互いがその秘密鍵を、 
   (a^Key)mod q で計算して、結果を相手に送ると、お互いは自分の秘密鍵と 
  送られてきた計算結果からふたりの共有鍵を作ることができる、という 
  仕組みである。あとは、この鍵を使って DES などの共通鍵暗号を実行すれば 
  よいわけである。 
   
  この際、秘密鍵自体は通信回線には一度も乗らないので、鍵を交換している 
  通信を傍受しても、共有鍵を得ることはできない。これはとても大きな数の 
  素因数分解の計算の困難さを利用しているのである。 
  この方法を少し応用すると非対称式の鍵というものが生まれる。これは 
  上記と同様にして、ふたつの鍵を生成し、一方は秘密鍵として自分で保持し 
  他方は公開鍵として一般公開してしまうのである。この方式のものでは 
  Ron Rivest, Adi Shamir, Len Adleman の三人が1977年に開発したRSA方式 
  が標準的な手法として普及している。このタイプの暗号では、秘密鍵で暗号化 
  したものは公開鍵でしか開かないし、公開鍵で暗号化したものは秘密鍵でしか 
  開かない。 
   
  この方法の利点は、あらかじめ通信に同意して鍵の交換をしていない人が 
  いきなり暗号で通信文を送ってくることができるというものである。 
  インターネット上の電子取引などは、この技術が無ければ成立しえなかった。 
  通販をする企業が、買ってくれる客全員と予め鍵の交換をすることなど絶対に 
  不可能だからである。 
  RSAの暗号は大きな素数を使用しているのでそう簡単には解読できないのだが 
  それでも近年のコンピュータのスピードの著しい発展により、鍵の大きさを 
  どんどん大きくしないと、安全ではなくなりつつある。しかしRSAでは暗号化 
  に冪乗の計算をしなければならないので鍵を大きくしてしまうと暗号化・ 
  復号化に多大な時間がかかってしまう。 
   
  そこで次世代の暗号として注目されているのが楕円暗号である。これは 
  1985年に Neal Koblitz と Victor Miller が考案した非対称式暗号で、 
  冪乗の代わりに楕円曲線の数式により暗号化・復号化をおこなうものである。 
  楕円暗号については現段階では、効率的な解読の仕方が発見されておらず、 
  現在のところ1024ビットのRSAと同程度の安全性を160ビットの楕円暗号で 
  実現できるといわれている。 

暗号化 (あんごうか, encryption) 文章を暗号に変換すること。  →復号