公開鍵暗号とは?2つの鍵で、署名と暗号化をする仕組み

公開鍵暗号、2つの鍵で、どう守る?。寅次郎先生と記事の内容を表すイラスト。
確認日:2026年11月7日

パスキーでのログインや、Webサイトとの暗号化された通信(HTTPS)では、公開鍵暗号という仕組みが使われているのをご存じでしょうか。

本記事では、公開鍵暗号の考え方を、計算式を使わずに、身近なものに例えて解説します。

公開鍵暗号とは

公開鍵暗号は、公開鍵と秘密鍵という、対になる2つの鍵を使う暗号の方式です。

公開鍵と秘密鍵が対になっていて、公開鍵は誰に渡してもよく、秘密鍵は持ち主だけが持つことを示す図

秘密鍵は、持ち主が手元から出さない鍵です。公開鍵は、その名のとおり、誰に渡しても、誰に見られてもかまいません。

2つの鍵には、次の2つの性質があります。

  • 片方の鍵でしたことは、対になるもう片方の鍵でしか確かめたり元に戻したりできない
  • 公開鍵が分かっても、そこから秘密鍵を作ることは、計算の上でできない

この仕組みが生まれる前は、同じ1つの鍵で暗号をかけて、同じ鍵で戻す方式(共通鍵暗号)が使われていました。家の合鍵のように、相手にも同じ鍵を渡しておく必要があります。渡す途中で鍵を盗まれれば、中身を読まれてしまうでしょう。公開鍵暗号は、配ってよい鍵と手元に残す鍵を分けて、この悩みをなくしました。

使い方は大きく2つあり、電子署名と暗号化です。

使い方1:電子署名

1つ目の使い方は、電子署名です。「この文書を作ったのは確かに本人で、途中で書き換えられていない」ことを示します。

持ち主が秘密鍵で文書に署名し、受け取った人は公開鍵で署名を確かめ、本人が作ったもので書き換えられていないと分かる流れの図

紙の書類に押すはんこに例えると分かりやすいでしょう。秘密鍵が持ち主だけが持つはんこ、公開鍵が誰でも見られる押し跡の見本にあたります。下の図で、はんこを押す人と確かめる人の動きを追ってみてください。

秘密鍵を持ち主だけが持つはんこ、公開鍵を誰でも見られる押し跡の見本にたとえ、はんこで押した書類を見本と比べて本人のものと確かめる流れと、紙のはんこと違い見本から鍵を作れないことを示す図

持ち主ははんこ(秘密鍵)で書類に押し、受け取った人は押し跡の見本(公開鍵)と見比べて、本物かどうかを確かめる流れです。

ただし、実物のはんこと違う点があります。現実には、押し跡を元に偽のはんこを彫られるおそれがありますが、公開鍵から秘密鍵は作れません。電子署名では、文書の中身も署名の計算に含めるため、1文字でも書き換えれば、確かめたときに分かります。

パスキーのログインも、この署名の仕組みです。サービスが毎回違う問題を送り、端末がそれに秘密鍵で署名します。サービスは、登録のときに受け取った公開鍵で確かめるだけなので、公開鍵が漏れてもログインには使えません。

使い方2:暗号化

2つ目の使い方は、暗号化です。相手にだけ読める形で、データを送ります。

送る人が相手の公開鍵で鍵をかけ、受け取った人が自分の秘密鍵で開けるので、途中で見られても中身が分からないことを示す図

こちらは、開いた南京錠を思い浮かべてください。受け取る人は、自分だけが鍵を持つ南京錠(公開鍵)を、開いたまま配っておきます。送る人は、箱に入れたデータをその南京錠で閉じて送るだけです。閉じるのは誰にでもできても、開けられるのは鍵(秘密鍵)を持つ本人しかいません。

Webサイトとの暗号化された通信(HTTPS)では、この仕組みを使って、その通信だけで使う共通の鍵を安全に受け渡しています。そのあとの大量のデータを暗号化するのは、速く処理できる共通鍵暗号の役目です。

秘密鍵を守る

公開鍵暗号の安全は、秘密鍵が持ち主の手元から出ないことで成り立っています。秘密鍵を盗まれると、他人が持ち主になりすまして署名できてしまうためです。

パスキーの秘密鍵は、端末の中の守られた領域や、パスワードマネージャーの暗号化された保管庫に入っています。その鍵を使うときに、端末が指紋や顔、PINで持ち主を確かめる仕組みです。生体認証の役目は、生体認証とはで解説しました。

参考にした一次情報

当サイトが作成した本文はCC BY 4.0です。引用画像は対象外です。ログインと認証の記事の一覧へもどる