セキュリティの素朴な疑問を解く 第7回
Q&A形式でセキュリティの基礎を学ぼう
# 共通鍵暗号のメリットってなに？
## 公開鍵暗号の登場
1976年、ついに鍵交換の問題を解決する画期的なアイデアが生まれた。それは、「鍵を安全に交換できないなら、鍵の交換を必要としない暗号を使えばよい」というものだ。
これは、ユーザーごとに2つの鍵を作成し、そのうち1つは特に秘密にしなくてもよいという考えである。2つの鍵の間には数学的な関連があり、一方の鍵で暗号化したメッセージは、対となる他方の鍵でしか復号できないという性質を持つ。このような鍵の組み合わせ（ペア）があれば、暗号化用の鍵はデータを交換する可能性のある人に広く知らせることが可能になる（ただし、復号用の鍵は自分だけの秘密にしておく）。
このため、この暗号化方式を「公開鍵暗号」と呼び、復号鍵を「秘密鍵」、暗号化鍵を「公開鍵」という。たとえば、AからB宛のメッセージを暗号化する場合は、まずAはBに指定された公開鍵でメッセージを暗号化して送る。そのメッセージを復号できるのは秘密鍵を持っているBだけなので、メッセージはだれに盗聴されてもかまわない（図2）。このように、公開鍵は誰に知られても構わないので、たとえばWebサイトやブログページに掲載してもよいのだ。公開鍵暗号は、
暗号化と復号で異なる鍵を用いることから、非対称暗号ともいう。
この公開鍵暗号の概念を最初に提案したのは、ウィットフィールド・デフィーとマーティン・ヘルマンの2人だ。そして1977年、ロナルド・リベスト（Ron Rivest）、アディ・シャミア（Adi Shamir）、レオナルド・エーデルマン（Len Adleman）が具体的なアルゴリズムを考案した。この公開鍵暗号は、彼らの頭文字をつなげて「RSA」と呼ばれる。その後、いくつか公開鍵暗号のアルゴリズムが考案され実用化された。しかしRSAは暗号処理のほか、デジタル署名まで実現したため普及が急速に進んだため、現在に至るまで事実上の世界標準となっている。
## まとめ
共通鍵暗号よりも安全性の高い公開鍵暗号だが、アルゴリズムが高度で処理内容も複雑なため、暗号化と復号の処理に時間がかかるという欠点がある。そのため、IP電話などリアルタイムの通信では遅延が発生して品質が劣化する。そこで、実際のデータ通信には共通鍵暗号を用い、その共通鍵を安全に交換するために公開鍵暗号を用いるという「
ハイブリッド暗号」が考案されている。共通鍵はデータ通信に先立って1回しか送られないため、遅延は問題にならない程度で済む（安全性を高めるため、実際には一定の間隔で共通鍵を更新することが多い）。
これは、メールの暗号化技術として有名なPGPや、Webアクセスで使われるSSL（HTTPS）などで用いられている。
##### この連載の記事
- 第11回 今どきのウイルスに対抗する方法を教えてください
- 第10回 指紋や顔型でユーザー認証をする理由とは？
- 第10回 ユーザー認証でなにができるのですか？
- 第9回 電子証明書がなぜ必要か知っていますか？
- 第8回 ファイアウォールはどのように動くのですか？
- 第6回 IP電話にはどのような危険がありますか？
- 第5回 無線LANって本当に安全なの？
- 第4回 SQLインジェクションやXSSって何されるの？
- 第3回 Winnyは使ってはいけないのですか？
- 第2回 不審なメールはなぜ開いてはいけない？