---
title: "公開鍵暗号方式とは？鍵の受け渡し問題を解決する仕組み【SG試験】"
description: "公開鍵暗号方式を暗号化鍵と復号鍵を分ける仕組みとして整理し、鍵配送問題、秘密鍵を公開しない原則、共通鍵暗号や電子署名との違いを判断します。受信者の公開鍵で暗号化し、受信者の秘密鍵で復号する流れをSG試験向けに確認します。"
last_modified_at: "2026-07-02"
canonical_url: "https://stemtazoo.github.io/sg/public-key-cryptography/"
section: "sg"
---

## まず結論
公開鍵暗号方式とは、**暗号化と復号で異なる鍵（公開鍵と秘密鍵）を使うことで、安全に鍵をやり取りできる暗号方式**です。

SG試験では、文書の内容を秘匿して送受信する場面で、次の扱いを判断できることが重要です。

- 暗号化鍵（公開鍵） → 公開してよい
- 暗号化アルゴリズム → 公開してよい
- 復号鍵（秘密鍵） → 秘密にしなければならない

つまり、**秘密にするのは復号鍵**です。

---

## 直感的な説明
たとえば「鍵付きの箱」で考えると理解しやすいです。

- 相手が「鍵をかけるだけの鍵（公開鍵）」を公開している
- 誰でもその鍵で箱に鍵をかけて送れる
- でも、その箱を開けられるのは「本人だけが持つ鍵（秘密鍵）」だけ

つまり、

👉 **送るときは誰でも使える鍵、開けるのは本人だけ**

という仕組みです。

これにより、「鍵をこっそり渡す」という危険なやり取りが不要になります。

---

## 定義・仕組み
公開鍵暗号方式では、次の2つの鍵を使います。

| 種類 | 扱い | SG試験での判断 |
|---|---|---|
| 公開鍵（暗号化鍵） | 公開してよい | 送信者が文書を暗号化するために使う |
| 秘密鍵（復号鍵） | 秘密にする | 受信者だけが復号するために管理する |

基本の流れは次の通りです。

1. 受信者が「公開鍵」を公開する
2. 送信者はその公開鍵でデータを暗号化する
3. 受信者が「秘密鍵」で復号する

暗号化アルゴリズムも、原則として秘密にするものではありません。
RSAのような公開鍵暗号アルゴリズムは広く公開され、専門家による評価を受けながら使われます。

IPAの暗号技術Q&Aでも、公開鍵暗号は一方の鍵を公開しても、もう一方の鍵を計算できない仕組みとして説明されています。
[IPA：暗号技術 Q&A](https://www.ipa.go.jp/archive/security/crypto/qa.html)

代表例としては **RSA暗号** があります。

---

### なぜ重要か（業務視点）
共通鍵暗号では、

- 鍵を安全に相手に渡す必要がある
- ここが漏れるとすべて破られる

という問題があります。

公開鍵暗号方式は、

👉 **そもそも秘密の鍵を渡さない設計**

になっているため、
通信開始時の安全性を確保できます。

---

## どんな場面で使う？
### 使うべき場面
- インターネット通信の開始時（HTTPSなど）
- 不特定多数と安全に通信したい場合
- 鍵の配布が難しい環境

### よくある実務パターン
実際のシステムでは、

- 最初だけ公開鍵暗号で鍵交換
- その後は高速な共通鍵暗号を使用

👉 これを **ハイブリッド暗号** といいます

---

### 向いていない場面
- 大量データの暗号化（処理が遅い）

👉 処理速度の問題から単独では使われにくい

---

## よくある誤解・混同
### ❌ 共通鍵暗号のほうが安全
👉 ⭕ 安全性の問題ではなく「用途の違い」

- 共通鍵：高速だが鍵配布が弱点
- 公開鍵：遅いが鍵配布が安全

---

### ❌ 公開鍵で復号する
👉 ⭕ 基本は「公開鍵で暗号化 → 秘密鍵で復号」

※逆の使い方（電子署名）もあるが、混同注意

---

### ❌ 暗号化アルゴリズムは秘密にする
👉 ⭕ アルゴリズムは公開されていてもよい

公開鍵暗号方式では、暗号化アルゴリズムや公開鍵を公開しても、対応する秘密鍵がなければ復号できないことが重要です。

SG試験では、**「アルゴリズムを秘密にする」ではなく「復号鍵を秘密にする」**と切り分けます。

---

### ❌ 公開鍵暗号だけで通信する
👉 ⭕ 実務ではハイブリッドが基本

---

### SG試験のひっかけ
SG試験では次のように問われます。

- 「鍵を安全に配布できる方式はどれか」
- 「通信開始時に使うべき方式はどれか」
- 「公開してよいもの、秘密にすべきものはどれか」

👉 **鍵配布の問題が出たら公開鍵暗号**

文書を秘匿して送る問題では、次のように切ります。

- 暗号化鍵を公開する → 正しい
- 復号鍵を秘密にする → 正しい
- 暗号化アルゴリズムを公開する → 正しい
- 暗号化アルゴリズムを秘密にする → 誤りになりやすい

---

### 判断軸の再確認（確認問題の前に）
- **目的**を先に見る：この対策・用語は「予防」「検知」「対応」のどこを担うか。
- **対象**を切り分ける：ネットワーク／端末／利用者／運用手順のどこに効くか。
- **選択肢の言い過ぎ**に注意：「必ず」「完全に」「不要になる」といった断定は誤りになりやすい。

## 確認問題（SG試験対策）

取引先だけが読めるようにファイルを送付したい。公開鍵暗号方式を使う場合の扱いとして、最も適切なものはどれか。

- ア. 送信者は取引先の公開鍵でファイルを暗号化し、取引先は対応する秘密鍵で復号する。
- イ. 送信者は自分の秘密鍵でファイルを暗号化し、取引先は送信者の秘密鍵を受け取って復号する。
- ウ. 暗号方式の安全性はアルゴリズム名を隠すことで保つので、鍵は公開してもよい。
- エ. 公開鍵暗号方式では、送信者と受信者が事前に同一の秘密鍵を共有しておく。

<details markdown="1">
<summary>▶ クリックして答えと解説を見る（ここを開く）</summary>

**正解：ア**

### 解説

- ア：適切。秘匿して送る場面では、受信者の公開鍵で暗号化し、受信者だけが持つ秘密鍵で復号します。
- イ：不適切。秘密鍵を相手へ渡す運用は、秘密鍵を守る考え方に反します。
- ウ：不適切。一般にアルゴリズムは公開され得る前提で、秘密鍵を保護します。
- エ：不適切。同一の秘密鍵を事前共有するのは、共通鍵暗号方式の説明です。

👉 判断ポイント
**秘匿して送る：受信者の公開鍵で暗号化／受信者の秘密鍵で復号**で切り分けます。

</details>

## まとめ（試験直前用）
- 公開鍵暗号は「公開鍵と秘密鍵の2つを使う」
- 文書の秘匿では、**公開鍵で暗号化、秘密鍵で復号**する
- **公開してよい：公開鍵・暗号化アルゴリズム**
- **秘密にする：秘密鍵（復号鍵）**
- 実務では「公開鍵＋共通鍵（ハイブリッド）」が基本
