公開鍵・秘密鍵とは?仕組みをイラストと例え話で初心者に分かりやすく解説|サイバーセキュリティ.com

公開鍵・秘密鍵とは?仕組みをイラストと例え話で初心者に分かりやすく解説



「公開鍵・秘密鍵ってよく聞くけど、結局何のこと?」「共通鍵暗号方式と公開鍵暗号方式って何が違うの?」そんな疑問を持つ方も多いのではないでしょうか。

公開鍵・秘密鍵は、インターネット上の安全な通信を支える暗号技術の核心です。本記事では、難しい専門用語をできるだけ使わず、たとえ話と図解を交えながら初心者向けにわかりやすく解説します。

そもそも暗号化とは?

暗号化と復号の仕組み

暗号化とは、データに特殊な処理を施して第三者に読めない形に変換することです。暗号化されたデータを元に戻すことを「復号」といいます。

インターネット上では、データが複数のサーバーを経由して相手に届きます。このとき暗号化されていないデータは「ハガキ」と同じで、途中で誰にでも中身を読まれてしまいます。一方、暗号化されたデータは「鍵のかかった封筒」のようなもので、鍵を持つ相手にしか中身を読めません。

暗号化と復号には「鍵」が必要です。この鍵の種類と使い方によって、暗号方式が分かれます。

暗号化が必要な理由

暗号化が必要な主な理由は2つです。

1つ目は情報漏洩の防止です。ネットバンキングやオンラインショッピングでクレジットカード情報を入力するとき、暗号化されていなければ途中で盗み見られるリスクがあります。

2つ目は内部不正の抑止です。企業内のデータを暗号化しておくことで、万が一データが外部に持ち出されても内容を読み取られず、情報漏洩を防止できます。

暗号化とハッシュ化の違い

暗号化と混同されやすい言葉に「ハッシュ化」があります。両者の違いは「元に戻せるかどうか」です。

暗号化は鍵を使えば元のデータに戻せます。一方ハッシュ化は、元に戻すことが極めて難しい一方向の変換です。ログインパスワードの保存にはハッシュ化が使われており、万が一データが漏洩しても正しいパスワードを解析されにくくなっています。

項目 暗号化 ハッシュ化
元に戻せるか 鍵があれば戻せる 戻せない(一方向)
主な用途 データの安全な送受信 パスワードの保存
代表例 AES・RSA SHA-256

公開鍵・秘密鍵とは?

公開鍵とは

公開鍵とは、「誰でも使えるように広く公開された鍵」です。公開鍵を使ってデータを暗号化することができます。インターネット上に公開されているため、誰でも自由に取得して使えます。

宝箱に例えると、公開鍵は「誰でも使える南京錠」のようなものです。誰でも箱に鍵をかけることはできますが、開けられるのは対となる秘密鍵を持つ人だけです。

秘密鍵とは

秘密鍵とは、「本人だけが持つ鍵」です。公開鍵で暗号化されたデータは、対となる秘密鍵でしか復号できません。秘密鍵は絶対に外部に漏らしてはいけません。

公開鍵から秘密鍵を数学的に割り出すことは、現実的には不可能とされています。そのため、公開鍵をインターネット上に公開しても、秘密鍵が漏れる心配はありません。

公開鍵と秘密鍵の関係

公開鍵と秘密鍵は必ずペアで生成され、片方で暗号化したデータはもう片方でしか復号できません。これが「非対称鍵暗号」と呼ばれる所以です。

分かりにくい公開鍵・秘密鍵と暗号方式の関係

「公開鍵・秘密鍵」と「暗号方式」は混同されやすいですが、別の概念です。公開鍵と秘密鍵は「公開鍵暗号方式で使う鍵の名前」であり、暗号方式そのものとは異なります。

3つの鍵の違いを表で整理

用語 属する暗号方式 役割 公開範囲 特徴
公開鍵 公開鍵暗号方式 暗号化に使う 誰でも使える
公開されている
データをロックする鍵。インターネット上に公開しても問題ない
秘密鍵 公開鍵暗号方式 復号に使う 本人だけが持つ
絶対に秘密
公開鍵で暗号化されたデータを開ける唯一の鍵。漏洩厳禁
共通鍵 共通鍵暗号方式 暗号化・復号の両方に使う 当事者間のみ
2者だけが知る
同じ鍵で暗号化・復号を行う。処理が速いが鍵の受け渡しに課題がある

つまり「秘密鍵=共通鍵暗号方式」ではなく、秘密鍵と共通鍵はまったく別の概念です。

なぜ2種類の暗号方式が存在するのか

それぞれの暗号方式に異なるメリット・デメリットがあるため、目的に応じて使い分けられています。また後述する「ハイブリッド暗号方式」のように、2つを組み合わせることでお互いの弱点を補うことも可能です。

公開鍵暗号方式とは

公開鍵暗号方式の仕組み

公開鍵暗号方式とは、公開鍵と秘密鍵の2種類の鍵を使って暗号化・復号を行う方式です。

流れは以下の通りです。

  1. 受信者が公開鍵と秘密鍵のペアを生成する
  2. 受信者が公開鍵を送信者に渡す(インターネット上に公開する)
  3. 送信者が受信者の公開鍵を使ってデータを暗号化し送信する
  4. 受信者が自分の秘密鍵で暗号化されたデータを復号する

公開鍵で暗号化されたデータは、対となる秘密鍵を持つ人しか復号できません。第三者が公開鍵を持っていても、暗号化されたデータを解読することはできません。

手紙と南京錠で例えると?

公開鍵暗号方式をイメージしやすくするため、手紙と南京錠で例えてみましょう。

BさんがAさんに秘密の手紙を送りたいとします。

  1. Aさんは「開いた南京錠(公開鍵)」を大量に配布します。誰でも自由に使えます
  2. Bさんはその南京錠を使って手紙の入った箱に鍵をかけます(暗号化)
  3. 鍵のかかった箱をAさんに送ります
  4. Aさんだけが持っている鍵(秘密鍵)で南京錠を開け、手紙を読みます(復号)

途中で第三者が箱を盗んでも、Aさんの秘密鍵がなければ開けられません。これが公開鍵暗号方式の仕組みです。

公開鍵暗号方式のメリット・デメリット

メリット

  • 鍵の受け渡しが安全:公開鍵はインターネット上に公開するだけでよく、盗まれても問題ない
  • 鍵の管理が楽:1つの鍵ペアで多数の相手と通信できる

デメリット

  • 処理速度が遅い:複雑な数学的計算が必要なため、共通鍵暗号方式より処理に時間がかかる
  • 大量データには不向き:処理速度の問題から、大きなデータの暗号化には適していない

公開鍵暗号方式の代表例(RSA)

公開鍵暗号方式の代表的なアルゴリズムはRSA暗号です。RSAは「素因数分解は計算が難しい」という数学的性質を利用しています。

例えば「29×37=1073」という計算は簡単ですが、「1073を素因数分解して29と37を求める」のは難しいという性質を鍵の生成に応用しています。実際には数百桁の素数が使われるため、スーパーコンピュータでも解読に膨大な時間がかかります。

共通鍵暗号方式とは

共通鍵暗号方式の仕組み

共通鍵暗号方式とは、暗号化と復号に「同じ鍵」を使う方式です。送信者と受信者があらかじめ同じ共通鍵を共有し、その鍵でデータを暗号化・復号します。

処理がシンプルなため速度が速く、大量のデータの暗号化に適しています。ただし、安全に鍵を共有する方法が課題です。

南京錠で例えると?

共通鍵暗号方式を南京錠で例えると、「同じ鍵で開け閉めできる南京錠」のイメージです。

AさんとBさんが全く同じ形の南京錠と鍵を1本ずつ持っているとします。Aさんが南京錠で箱を閉めて送り、Bさんが自分の鍵で開ける——これが共通鍵暗号方式です。

問題は「最初にどうやって安全に同じ鍵を相手に渡すか」です。鍵の受け渡し中に第三者に盗まれると、暗号化した意味がなくなってしまいます。

共通鍵暗号方式のメリット・デメリット

メリット

  • 処理速度が速い:計算がシンプルなため、大量のデータを素早く暗号化・復号できる
  • 実装が比較的簡単

デメリット

  • 鍵の配送問題:共通鍵を安全に相手に渡す手段が必要で、インターネット上での受け渡しは盗聴リスクがある
  • 鍵の管理が大変:通信相手が増えるたびに別の鍵が必要になり、管理が複雑になる

共通鍵暗号方式の代表例(AES)

共通鍵暗号方式の代表的なアルゴリズムは**AES(Advanced Encryption Standard)**です。現在最も広く使われている暗号方式で、無線LANのWPA2/WPA3にも採用されています。

共通鍵暗号方式と公開鍵暗号方式の違い

一覧表で比較

どちらを使うべき?

一般的には、2つを組み合わせた「ハイブリッド暗号方式」が使われます。処理速度が速い共通鍵暗号方式でデータを暗号化し、その共通鍵の受け渡しに公開鍵暗号方式を使うことで、両者のデメリットを補い合います。

ハイブリッド暗号方式とは

ハイブリッド方式の仕組み

ハイブリッド暗号方式とは、共通鍵暗号方式と公開鍵暗号方式を組み合わせた方式です。それぞれのメリットを活かし、デメリットを補い合います。

流れは以下の通りです。

  1. 送信者が「共通鍵」をランダムに生成する
  2. 送信したいデータを、この共通鍵で暗号化する(速い)
  3. 共通鍵そのものを、受信者の公開鍵で暗号化する(安全)
  4. 暗号化したデータと暗号化した共通鍵を一緒に送る
  5. 受信者は秘密鍵で共通鍵を復号し、その共通鍵でデータを復号する

ポイントは「共通鍵の受け渡しにだけ公開鍵暗号方式を使う」点です。共通鍵は元のデータより遥かに小さいため、公開鍵暗号方式の処理速度の遅さが問題になりません。

HTTPSでの実際の使われ方

私たちが毎日使っているHTTPS通信(URLの先頭が「https://」のサイト)では、このハイブリッド方式が使われています。

ブラウザがサイトにアクセスする際、まず公開鍵暗号方式で共通鍵(セッション鍵)を安全に交換し、その後は共通鍵暗号方式で実際のデータを高速に暗号化してやり取りします。

HTTPSとは?HTTPとの違いや確認方法・導入しないリスクを初心者向けに解説
2018.7.16
「HTTPとHTTPSって何が違うの?」「自分のサイトをHTTPS化しないといけないと言われたけど何をすればいい?」そんな疑問を持つ方も多いのではないでしょうか。 HTTPSはWebサイトの通信を暗号化してユーザーの個人情報を守る仕組

公開鍵・秘密鍵のもう一つの使い方「電子署名」

電子署名とは

公開鍵・秘密鍵には、「暗号化」以外にもう一つ重要な使い方があります。それが「電子署名」です。

電子署名とは「この文書は確かに本人が作成したものである」ことを証明する仕組みです。文書の改ざん防止やなりすましの防止に使われます。

暗号化との鍵の向きの違い

暗号化と電子署名では、鍵の使い方が逆になります。

暗号化(盗聴の防止)

  • 受信者の公開鍵でデータを暗号化 → 受信者の秘密鍵で復号
  • 目的:「本人しか読めない」ようにする

電子署名(なりすましの防止)

  • 送信者の秘密鍵で署名 → 送信者の公開鍵で検証
  • 目的:「確かに本人が送った」ことを証明する

秘密鍵は本人しか持っていないため、「この秘密鍵で署名できたのだから、確かに本人が作成した」という証明になります。

電子署名をハンコで例えると?

電子署名をハンコで例えると、秘密鍵=ハンコ、公開鍵=印鑑証明のようなものです。

ハンコを押した書類(電子署名されたデータ)を受け取った相手は、役所が発行した印鑑証明(公開鍵)と照合することで「これは確かに本人のハンコだ」と確認できます。

電子署名の使用例(電子契約など)

電子署名は以下のような場面で活用されています。

  • 電子契約:契約書への手書き署名の代替として、改ざん防止と本人確認を同時に実現
  • メールの送信元確認:なりすましメールを防ぐS/MIMEやDKIM
  • ソフトウェアの配布:ダウンロードしたファイルが改ざんされていないことの確認
  • HTTPS通信:SSL証明書の正当性を証明するCA(認証局)の署名

暗号化の必要性

情報漏洩の防止

ネットバンキングの利用やオンラインショッピングでのカード情報の入力など、私たちが日常的に行うインターネット上の操作では、大量の個人情報・機密情報が送受信されています。暗号化されていなければ、通信の途中で第三者に情報を盗み見られるリスクがあります。

現在ではほとんどのWebサイトがHTTPS(常時SSL)に対応しており、ブラウザとサーバー間の通信が暗号化されています。

内部不正の抑止

企業においては、従業員による内部不正(機密データの持ち出しなど)のリスクも無視できません。データを暗号化しておくことで、万が一データが外部に持ち出されても内容を読み取られません。

また暗号化ソフトの中には、ファイルの流出経路を追跡できる機能を持つものもあり、内部不正の抑止力にもなります。

よくある質問

公開鍵は誰でも見られて大丈夫?

大丈夫です。公開鍵は文字通り「公開」するための鍵で、誰でも取得・使用できることが前提です。公開鍵で暗号化されたデータは、対となる秘密鍵でしか復号できません。そのため、第三者が公開鍵を持っていても、暗号化されたデータを解読することはできません。

秘密鍵が漏洩したらどうなる?

非常に深刻な問題です。秘密鍵が漏洩すると、攻撃者がその秘密鍵を使って暗号化された通信を復号したり、本人になりすまして電子署名を作成したりできてしまいます。秘密鍵が漏洩した場合は、直ちに新しい鍵ペアを生成し、古い公開鍵を無効化する必要があります。秘密鍵は厳重に管理し、外部に漏らさないことが鉄則です。

HTTPSと公開鍵暗号はどう関係している?

HTTPSは、公開鍵暗号方式・共通鍵暗号方式・電子署名を組み合わせた仕組みです。ブラウザがサイトにアクセスする際、まずサーバーのSSL証明書(公開鍵を含む)を受け取り、認証局(CA)の電子署名でそのサイトが本物であることを確認します。

次にハイブリッド方式で共通鍵を安全に交換し、その後は共通鍵で通信内容を暗号化します。鍵マークが表示されているサイトでは、これらの仕組みがすべて動いています。

まとめ

公開鍵・秘密鍵は公開鍵暗号方式で使う2種類の鍵で、共通鍵暗号方式の「共通鍵」とは別の概念です。公開鍵は誰でも使えて暗号化に使い、秘密鍵は本人だけが持ち復号に使います。

処理速度の速い共通鍵暗号方式と組み合わせたハイブリッド方式が、HTTPSなどの現代の通信に広く使われています。また暗号化だけでなく、秘密鍵で署名・公開鍵で検証する「電子署名」にも活用されており、電子契約や本人確認など私たちの日常を支える重要な技術です。

SNSでもご購読できます。