ホーム第8章: セキュリティと計算の限界
第8章 1節

共通鍵暗号と公開鍵暗号

第6章の「HTTPS」でも触れたように、インターネットを流れるデータは常に悪意あるハッカーからの「盗聴」の危険に晒されています。クレジットカード情報や個人情報を安全に送るためには、データを解読不可能な形に変換する「暗号」の技術が不可欠です。暗号技術の歴史を塗り替えた「共通鍵暗号」と「公開鍵暗号」の仕組みを学びます。

1. 暗号の基本概念:平文、暗号化、復号

暗号の世界では、以下の用語が使用されます。

  • 平文(ひらぶん / Plaintext): 誰でも読める元のメッセージ。
  • 暗号化(Encryption): 平文を、ルール(アルゴリズム)に従って解読不能な「暗号文」に変換する処理。
  • 復号(Decryption): 暗号文を元の平文に書き戻す処理(「解読」は鍵なしで無理やり破ることを指すため区別されます)。
  • 鍵(Key): 暗号化や復号の際に使用する、変換のパラメータとなる「パスワードの数値」です。

2. 共通鍵暗号(Symmetric-key Cryptography)

共通鍵暗号は、「暗号化と復号に、全く同じ1つの鍵(共通鍵)」を使用する方式です。 自宅の玄関の鍵と同じで、同じ鍵を使ってガチャリと閉め、同じ鍵で開けます。

平文 暗号化 暗号文 復号 平文 共通鍵🔑
図 8-1:共通鍵暗号のモデル。暗号化と復号に同じ「共通鍵」を使用する
共通鍵暗号の特徴
  • メリット:圧倒的スピード
    データの変換計算(ビット反転や排他的論理和など)が極めてシンプルであるため、大容量のデータを高速に暗号化するのに最適です。(代表例:AES)
  • デメリット:鍵配送問題(Key Distribution Problem)
    暗号文を送る前に、相手に安全に鍵を渡さなければなりません。インターネットを介して「暗号化されていない回線」で鍵を送ってしまっては、鍵そのものを盗聴されてしまい、暗号の意味がなくなります。直接手渡しするか、別の安全な手段をとる必要があり、これが鍵配送問題と呼ばれる歴史的な難問でした。

3. 世紀のイノベーション:公開鍵暗号(Public-key Cryptography)

鍵配送問題を数学的に完全に解決したのが、1970年代に発明された公開鍵暗号です。

この方式では、「暗号化と復号に、対(ペア)となる異なる2つの鍵」を使用します。

  • 公開鍵(Public Key): 誰にでも公開して配る鍵。データを「暗号化」する専用の鍵です。
  • 秘密鍵(Private Key): 自分だけが絶対に他人に漏らさず保管しておく鍵。暗号文を「復号」する専用の鍵です。
送信者 (アリス) 受信者の【公開鍵】 🔓 で鍵をかける 暗号文をネットワーク送信 受信者 (ボブ) 自分だけの【秘密鍵】 🔑 でのみ解錠可能
図 8-2:公開鍵暗号のモデル。誰でもかけられる南京錠(公開鍵)でロックし、受信者本人だけが自分の鍵(秘密鍵)で開ける

この方式の動作モデルは、「南京錠」「解錠用の鍵」の関係に似ています。

  1. 受信者は、誰でもカチッと閉められる「開いた状態の南京錠(公開鍵)」を世界中に配ります。
  2. 送信者は、手に入れた受信者の南京錠(公開鍵)を使って、メッセージを金庫に入れてカチッとロック(暗号化)して送信します。
  3. 一度ロックされると、ロックに使った南京錠(公開鍵)では二度と開けることはできません。世界中で、受信者が誰にも見せずに持っている「解錠用の鍵(秘密鍵)」だけがこの金庫を開ける(復号する)ことができます。

このため、ネットワーク上に「解錠用の鍵(秘密鍵)」を流す必要は一切なくなり、鍵配送問題は完全に解消されました。(代表例:RSA暗号)

4. ハイブリッド暗号方式:美味しいとこ取り

公開鍵暗号は完璧ですが、大きな素数を用いた巨大な掛け算やべき乗の数学的計算を伴うため、共通鍵暗号に比べて何百倍も処理が遅いという欠点があります。

そこで、現代のインターネット通信(HTTPSなど)では、両者の長所を組み合わせたハイブリッド暗号方式が使われています。

  1. 最初の通信開始時だけ、処理の遅い「公開鍵暗号」を使って、その場限りの使い捨ての「共通鍵」の数値を安全に配送します。
  2. お互いが無事に共通鍵の数値を共有した後は、処理の圧倒的に速い「共通鍵暗号」に切り替えて、ウェブデータや画像などの大容量ファイルを高速に暗号通信します。

この賢いハイブリッド設計により、インターネット全体の安全と超高速な読み込みが同時に両立しています。

次のセクションでは、データが「改ざん」されていないかチェックしたり、データの同一性を証明したりする「ハッシュ関数」と「デジタル署名」の仕組みについて学びます。

整理のポイント:共通鍵暗号と公開鍵暗号の比較

セキュリティを支える2つの代表的な暗号方式の違いと、その組み合わせを整理しておきましょう。

  • 共通鍵暗号方式
    • 使用する鍵:暗号化と復号に同じ1つの鍵(共通鍵)を使用。
    • 特徴:処理速度が非常に高速だが、事前に安全に鍵を共有しなければならない鍵配送問題がある。
    • 代表例:AES
  • 公開鍵暗号方式
    • 使用する鍵:暗号化用の公開鍵(誰にでも公開して配る鍵)と、復号用の秘密鍵(本人のみ保持)という対になる異なる2つの鍵を使用。
    • 特徴:鍵配送問題がないが、複雑な数学計算が必要なため処理速度が低速
    • 代表例:RSA
  • ハイブリッド暗号方式
    • 仕組み:公開鍵暗号を用いて「使い捨ての共通鍵」を安全に送信し、その後の大容量データのやり取りには共通鍵暗号を使用することで、安全性と高速性を両立します。