公開鍵暗号方式(public key cryptography)

暗号化と復号で別の鍵を使う方式。片方は公開してよく、もう片方は本人だけが持つ。

もう少し詳しい説明

公開鍵暗号方式は、かける鍵と開ける鍵が別になっている暗号のやり方です。

郵便ポストを思い浮かべてください。投入口は誰にでも開いていて、誰でも手紙を入れられます。でも中身を取り出せるのは、ポストの鍵を持っている持ち主だけです。入れるのは誰でもできるが、取り出せるのは1人だけ。この形を暗号にしたものだと考えてください。

鍵は2本1組で作られ、それぞれこう呼ばれます。

送る人受け取る人の公開鍵で暗号化暗号文公開鍵では元に戻せない受け取る人自分の秘密鍵で復号
受け取る人が配った公開鍵でかけ、その人だけが持つ秘密鍵で開けます。かける鍵は誰に知られてもよいので、鍵を安全に渡す苦労がなくなります。

ここが肝心なところですが、公開鍵で暗号化したものは、公開鍵では元に戻せません。開けられるのは、対になっている秘密鍵だけです。だから公開鍵は世界中に配っても構いません。

何が解決したのか

この形にすると、共通鍵暗号方式の弱点だった鍵配送問題が消えます。

共通鍵では、同じ鍵を相手にも渡す必要があり、その途中で盗まれる心配がありました。公開鍵方式では、渡すのは盗まれても困らない鍵です。秘密鍵は一度も持ち主の手元から動きません。

鍵の本数も減ります。共通鍵では相手ごとに鍵が要り、10人なら45本必要でした。公開鍵方式では1人が2本持つだけなので、10人なら20本です。人数が増えても比例して増えるだけで済みます。

弱点は遅いこと

良いことばかりに見えますが、弱点があります。計算に時間がかかるのです。

公開鍵暗号方式は、大きな数の素因数分解のような「片方向にしか進めない計算」を使っています。そのぶん処理が重く、共通鍵暗号方式に比べると数百倍から数千倍の時間がかかります。大きなファイルをこの方式だけで送るのは現実的ではありません。

そこで実際には、鍵の受け渡しだけを公開鍵方式で行い、本文は共通鍵方式で送るという組合せが使われます。これがハイブリッド暗号方式で、Webサイトの https:// 通信もこの形です。

もう1つの使い道:鍵を逆に使う

公開鍵と秘密鍵は、逆向きにも使えます。秘密鍵でかけて、公開鍵で開けるのです。

秘密鍵は本人しか持っていないので、公開鍵で開けられたということは「本人がかけた」と言えます。ただし公開鍵は誰でも持っているので、中身は誰にでも読めてしまい、秘密にはなりません。

つまりこの向きは、秘密にするためではなく、本人が作ったと示すための使い方です。これがデジタル署名の原理になります。同じ鍵の組を、目的に応じて向きを変えて使う、という点が試験でよく問われます。

目的かける鍵開ける鍵
内容を秘密にしたい受け取る人の公開鍵受け取る人の秘密鍵
本人が作ったと示したい送る人の秘密鍵送る人の公開鍵

残る問題:その公開鍵は本物か

もう1つ気をつける点があります。手に入れた公開鍵が、本当にその人のものかは分かりません。

攻撃者が「これがBさんの公開鍵です」と偽物を配れば、Bさん宛てのつもりで暗号化したものを攻撃者が読めてしまいます。そこで、公開鍵が本人のものだと証明する第三者が必要になります。これが**認証局(CA)**で、その証明書がデジタル証明書です。

試験ではこう出る

科目A(旧・午前)のセキュリティ分野で最頻出の1つです。多いのは「AさんがBさんに秘密の文書を送るとき、暗号化に使う鍵はどれか」という形で、4つの選択肢に誰の公開鍵・秘密鍵が並びます。共通鍵暗号方式との比較(速さ、鍵の本数、配送の可否)を選ばせる問題も定番です。応用情報では、ハイブリッド暗号方式や認証局の役割と組み合わせて問われます。

鍵の選択は、先に「誰の鍵か」を決め、次に「公開か秘密か」を決めると迷いません。秘密にしたいなら受け取る人の鍵、本人だと示したいなら送る人の鍵。この順で考えれば、4択のうち2つはその時点で消えます。

関連する用語

共通鍵暗号方式
暗号化と復号に同じ鍵を使う方式。処理は速いが、鍵を相手へ渡す手段が要る
デジタル署名
公開鍵暗号方式の鍵を逆向きに使う仕組み。秘密鍵で署名し、公開鍵で確かめる
ハイブリッド暗号方式
鍵の受け渡しだけ公開鍵で行い、本文は共通鍵で送る方式。速さも確保できる
RSA
代表的な公開鍵暗号の方式。大きな数を素因数分解する難しさを根拠にしている
認証局(CA)
その公開鍵が本人のものだと証明する第三者。なりすましを防ぐ役目を負う
ハッシュ関数
データを決まった長さの値に変える関数。署名では本文を縮めるのに使う

ミニクイズ

公開鍵暗号方式を用いて、AさんがBさんへ内容を秘密にしたい文書を送る。このとき暗号化に使う鍵として、適切なものはどれか。

正解は 3番:Bさんの公開鍵

内容を秘密にしたいときは、受け取る人の公開鍵でかけます。その公開鍵で暗号化したものは、対になるBさんの秘密鍵でしか開けられず、その秘密鍵はBさん本人しか持っていないからです。Bさんの秘密鍵は他人が手に入れられないので、送る側が使うことはできません。Aさんの鍵でかけてしまうと、開けられるのはAさん自身か、Aさんの公開鍵を持つ全員になり、Bさんに宛てた秘密になりません。なおAさんの秘密鍵でかけるのはデジタル署名のやり方で、目的が秘密の保持ではなく本人の証明になります。誰の鍵かを先に決めてから、公開か秘密かを選ぶと間違えません。

間違えた用語の復習リストを見る →

最終更新:2026-09-15