公開鍵と共通鍵の歴史ロマン

情報処理技術者試験の季節になって、僕もいま勉強しているところだ。

基本情報技術者をはじめて受験する人にとってはあまり馴染みのない言葉ばかりで苦労している人も多いだろう。
無機質な単語をただ暗記している人も多いかもしれない。

僕は以前に『暗号解読』という暗号解読の歴史についての一般向けノンフィクションを読んだため、暗号化技術の歴史を
楽しく覚えることができた。

特に公開鍵と共通鍵は面白かった。

『U-571』という映画では
第二次大戦で米軍がドイツ軍の暗号機エニグマを奪う作戦が描かれている。
このエニグマはつまり共通鍵を使った暗号機だ。

無線が実用化され、前線へと通信が可能になったら暗号の必要性が出てきた。
でもこの時代に使われていた暗号は共通鍵方式の暗号だった。

暗号化する時に使用した鍵を、解読する時にも使っていた。
鍵といっても物理的な鍵ではなく、エニグマのローターの組み合わせで行なっていたようで、
その組み合わせを通信相手も知らなければならない。

当然、それを暗号化していない通信で伝えるわけにもいかず、暗号化した通信で使えなければならないけれど
前の通信の鍵がバレていたら意味がない。

全軍が同じカギを使っていたら一つのエニグマを盗まれただけで全軍の行動が筒抜けになってしまう。
だからといってそれぞれの通信相手ごとに鍵を決めていたら膨大になる。

また解読される恐れもあることから、鍵は定期的に変えなければならない。

予め鍵のリストを持っておいて、使ったら捨てる方式でやっていたらしいが、
通信相手とタイミングを合わせるのが難しかったようだ。

さらに敵に見つかったら対になる鍵のリストは使えなくなる。

よく、占領されそうな拠点から撤退する時に重要書類を燃やしているシーンがあるが、燃やされているものの中にこの鍵のリストがあったわけだ。

このような共通鍵の不便さを解消させるのが公開鍵暗号。
実際、第二次大戦中イギリスで研究がされていたらしいがトップシークレットだったため終戦後情報がでてくることがなく、
別の人がRSAという方式の公開鍵を発明するまで公開鍵は実用化されなかった。
ちなみに別の人というのはリベスト シャミア エーデルマンの三人で、彼らの頭文字をあわせてRSAという。

公開鍵は、自分への通信を暗号化するための鍵を広く公開しておく。
誰もが見れる公開された鍵だ。

通信をしたい人はそれで暗号化する。
暗号を解除(復号)をするためには公開された鍵ではできない。秘密の鍵が必要なのだ。
その秘密鍵は自分で厳重に持っておく。

暗号化する鍵と復号化する鍵が別々だから、送信者の鍵が漏れたとしても解読される心配はない。
秘密鍵の漏洩はダメだけれども、共通鍵のように鍵を相手に教えることによるリスクは無いのでずっとずっと安全だ。

これは素数の仕組みを用いた暗号だ。
ある数が素数であるという判定は今のところ順番に割っていって、割り切れる数字がないことを確認するほかない。
とても巨大な素数だとコンピュータでもものすごい時間がかかる。

この暗号は素因数分解されてしまえば解読されてしまうのだけれども、普通のコンピュータでは長い時間がかかってしまう。
だけれども量子コンピュータが実用化されればそんな計算も一瞬で終わるようになるので、その頃には素数を使った暗号は使えなくなってしまう。

資格試験の問題でも、歴史を紐解けば面白い事が沢山ある。
『暗号解読』はおすすめなので読んでみて欲しい。
暗号について研究した人々の苦悩、その時代の流れなど歴史好きならばハマることまちがいなし。
さらに古代に地中海で使われていた線文字Bの解読などもあって、古代ギリシアが好きな人にもおすすめだ。

 

 

スポンサードリンク

関連コンテンツ