最終更新日:2026年8月2日
fe fe-technology security cryptography
まず結論
公開鍵暗号方式とは、暗号化と復号に異なる鍵を使う暗号方式です。
文書を秘密にして送る場合は、次のように使います。
受信者の公開鍵
→ 暗号化に使う
→ 公開してよい
受信者の秘密鍵
→ 復号に使う
→ 本人だけが秘密にする
暗号アルゴリズム
→ 公開してよい
基本情報技術者試験では、次の一文で切り分けます。
公開鍵と暗号アルゴリズムは公開し、秘密鍵だけを秘密にする。
直感的な説明
公開鍵暗号方式は、誰でも閉められる南京錠と、その所有者だけが持つ鍵にたとえられます。
受信者が南京錠を公開する
↓
送信者がその南京錠で箱を閉める
↓
受信者だけが秘密の鍵で箱を開ける
この対応は次のとおりです。
南京錠
→ 公開鍵
南京錠で閉める
→ 暗号化
本人だけが持つ鍵
→ 秘密鍵
秘密の鍵で開ける
→ 復号
公開鍵は誰でも使えますが、秘密鍵を持っていなければ復号できません。
定義・仕組み
公開鍵と秘密鍵
公開鍵暗号方式では、2つの鍵を一組として使います。
公開鍵
→ 他人へ公開してよい
秘密鍵
→ 所有者だけが秘密にする
この2つは数学的に関係していますが、公開鍵から秘密鍵を簡単に求められないように設計されています。
文書を秘密に送る流れ
受信者へ秘密の文書を送る場合は、受信者の公開鍵を使います。
送信者
↓
受信者の公開鍵で暗号化
↓
暗号文を送信
↓
受信者
↓
受信者の秘密鍵で復号
ここで重要なのは、受信者の鍵を使うことです。
秘密に送りたい相手
→ その相手の公開鍵で暗号化
暗号アルゴリズムは公開してよい
現代の暗号方式では、安全性をアルゴリズムの秘密に依存させません。
アルゴリズムを秘密にする
→ 安全性の前提にしない
秘密鍵を秘密にする
→ 安全性の中心
方式そのものが知られていても、秘密鍵が分からなければ復号できないように設計します。
この考え方は、ケルクホフスの原理として知られています。
代表的な公開鍵暗号方式
代表例には、次のようなものがあります。
- RSA
- 楕円曲線暗号
- ElGamal暗号
基本情報技術者試験では、個別の数学的仕組みよりも、公開鍵と秘密鍵の役割を優先して押さえます。
このテーマは、基本情報技術者試験の情報セキュリティに関係する内容です。公式の出題範囲やシラバスは、IPA:基本情報技術者試験 から確認できます。
科目Aでどう出る?
科目Aでは、鍵や暗号アルゴリズムを公開するか秘密にするかを選ぶ問題として出題されます。
公開してよいもの
公開鍵
暗号アルゴリズム
秘密にするもの
秘密鍵
試験では、次のように整理します。
| 対象 | 取扱い |
|---|---|
| 暗号化鍵として使う公開鍵 | 公開してよい |
| 復号に使う秘密鍵 | 秘密にする |
| 暗号アルゴリズム | 公開してよい |
選択肢を切る順番
復号鍵を公開していないか
→ 公開していれば誤り
暗号アルゴリズムを秘密にするとしていないか
→ 秘密にする必要はない
暗号化鍵を公開しているか
→ 公開鍵暗号方式では正しい
どんな場面で使う?
秘密の文書を送る
相手だけに読んでもらいたい文書は、相手の公開鍵で暗号化します。
送信者
→ 受信者の公開鍵を使う
受信者
→ 自分の秘密鍵で復号する
共通鍵を安全に渡す
公開鍵暗号方式は処理が比較的重いため、実際の通信では共通鍵暗号方式と組み合わせることがあります。
公開鍵暗号方式
→ 共通鍵を安全に渡す
共通鍵暗号方式
→ 本文を高速に暗号化する
この組合せをハイブリッド暗号方式といいます。
HTTPSなどの安全な通信
Web通信では、公開鍵暗号方式を使って相手を確認したり、通信で使う共通鍵を安全に共有したりします。
ただし、実際の通信全体を公開鍵暗号方式だけで暗号化するわけではありません。
共通鍵暗号方式との違い
共通鍵暗号方式では、暗号化と復号に同じ鍵を使います。
| 比較 | 公開鍵暗号方式 | 共通鍵暗号方式 |
|---|---|---|
| 鍵 | 公開鍵と秘密鍵 | 同じ共通鍵 |
| 暗号化 | 公開鍵 | 共通鍵 |
| 復号 | 秘密鍵 | 同じ共通鍵 |
| 鍵の扱い | 秘密鍵だけ秘密 | 共通鍵を秘密に共有 |
| 処理速度 | 比較的遅い | 比較的速い |
| 主な用途 | 鍵交換、電子署名など | 大量データの暗号化 |
同じ鍵を使う
→ 共通鍵暗号方式
異なる鍵を使う
→ 公開鍵暗号方式
電子署名との違い
公開鍵暗号方式は、電子署名にも使われます。
ただし、機密性を守る場合とは、鍵の使い方が逆になります。
機密性を守る場合
受信者の公開鍵で暗号化
↓
受信者の秘密鍵で復号
目的は、第三者に読まれないようにすることです。
電子署名の場合
送信者の秘密鍵で署名
↓
送信者の公開鍵で検証
目的は、送信者本人であることや、改ざんされていないことを確認することです。
試験では、目的から鍵を判断します。
秘密に送りたい
→ 受信者の公開鍵
本人性を示したい
→ 送信者の秘密鍵
よくある誤解・混同
公開鍵で復号する
文書を秘密に送る場合は、公開鍵で暗号化し、秘密鍵で復号します。
公開鍵
→ 暗号化
秘密鍵
→ 復号
電子署名では公開鍵で検証しますが、機密性を守る暗号化とは目的が異なります。
暗号アルゴリズムも秘密にする
誤りです。
安全性は、暗号アルゴリズムが公開されても、秘密鍵が分からなければ破れないように設計します。
公開鍵は本人だけが持つ
誤りです。
公開鍵は、暗号文を送りたい人が使えるように公開します。
本人だけが秘密に保管するのは秘密鍵です。
送信者の公開鍵で暗号化する
秘密の文書を受信者へ送る場合は、受信者の公開鍵で暗号化します。
誰に秘密を届けたいか
→ その人の公開鍵を使う
公開鍵暗号方式だけで大量データを暗号化する
公開鍵暗号方式は、共通鍵暗号方式より処理が重い傾向があります。
そのため、実際には共通鍵を安全に共有するために公開鍵暗号方式を使い、本文は共通鍵暗号方式で暗号化することがあります。
公開鍵が本物か確認しなくてよい
公開鍵を第三者にすり替えられると、攻撃者の公開鍵で暗号化してしまうおそれがあります。
そのため、電子証明書や認証局を使って、公開鍵の所有者を確認します。
まとめ(試験直前用)
- 公開鍵暗号方式は、暗号化と復号に異なる鍵を使う
- 公開鍵と秘密鍵は一組で生成される
- 文書を秘密に送るときは、受信者の公開鍵で暗号化する
- 受信者は自分の秘密鍵で復号する
- 公開鍵は公開してよい
- 秘密鍵は所有者だけが秘密にする
- 暗号アルゴリズムは公開してよい
- 共通鍵暗号方式は同じ鍵で暗号化・復号する
- 電子署名では、送信者の秘密鍵で署名し、公開鍵で検証する
- 「秘密に送る」か「本人性を示す」かで鍵の使い方を分ける
公開鍵と方式は公開、秘密鍵だけ秘密。秘密に送るなら受信者の公開鍵。