暗号 (あんごう, cryptograph) 主として通信文の内容を発信者と受信者以外の 
 第三者には読めないような形にしたもの。 
  
 古典的な暗号では、文字を図形などに置き換えたものがあり、Conan Doyle 
 (1859-1930)の推理小説「踊る人形(The Adventure of the Dancing Men)」の 
 中で出てきたものは有名である。日本でも横溝正史の「蝶々殺人事件」に文字 
 を音符に置換した暗号が,「女王蜂」には文字を編物記号に置換した暗号が出て 
 いる。 
 暗号は古代から特に軍事目的で使用されていたと考えられ「のろし」や 
 縄結びなどは、もっとも歴史の古い暗号と考えられる。ローマの独裁官 
 ユリウス・カエサルが使用した暗号の方式は俗称シーザー暗号と呼ばれ 
 換字式暗号の最も基本的なものである。 
  
 近代では無線技術が軍事には不可欠のものとなったが、無線はその仕組上、 
 最初から「傍受される」という問題があった。そこでたとえば日本軍が 
 真珠湾攻撃の命令を「ニイタカヤマノボレ」という暗号文で指示したよう 
 に、あらかじめ予想されるいくつかの命令や情報を決められた短文で表す 
 方式は、傍受による情報漏れにはかなり有効なものである。 
  
 しかし一般的な情報を伝達するにはこの方式は使えないので、普通に文字を 
 何らかの形で別の形(通常はやはり文字)に変形する技術が必要である。 
  
 この時に古典的な方法として下記のようなものを組み合わせる方法がある。 
  (1)文字をあらかじめ決めた文字数単位で分割した上でその中を 
   あらかじめ決めた方法で順序変更する。 
  (2)文字を同型写像により他の文字に変換する。 
  (3)あらかじめ互いに持っている乱数表に通す。 
  (4)傍受者を混乱させるために余計な情報を追加する。 
  
 同型写像(isomorphic mapping)の古典的なものとしてはシーザー暗号で 
 使用されていた「一文字ずらし」や、ほかに「鏡像変換」などがあるが、 
 現代ではお互いに決めていた数(マスク)とのXORを取る方法や、 
 乱数表を利用したり、素数や多重互換を利用して自明でないmappingを 
 作る方法が一般的である。 
  
 現代ではネット上の電子取引では情報を暗号化して相手に伝達するのが安全性 
 とプライバシー保護の観点から常識となっている。そのための手法も国際的な 
 標準化が進んでおり、特にDESRSAなどの方式は誰でも利用できるように 
 技術が公開されているため、広く普及している。 
 →対称型暗号,非対称型暗号,楕円暗号,乱数表,暗号の歴史

暗号の歴史 暗号の歴史的な発達の概略について触れておこう。  (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ビットの楕円暗号で   実現できるといわれている。