---
title: "公開鍵暗号方式とは？暗号化・復号・電子署名で使う鍵の違い【基本情報技術者試験】"
description: "公開鍵暗号方式を、受信者の公開鍵で暗号化し受信者の秘密鍵で復号する仕組みとして整理し、電子署名、共通鍵暗号方式、鍵の組合せをFE試験向けに解説します。"
last_modified_at: "2026-07-20"
canonical_url: "https://stemtazoo.github.io/fe/public-key-cryptography/"
section: "fe"
---

## まず結論

公開鍵暗号方式とは、**暗号化と復号に異なる鍵を使う暗号方式**です。

秘密に送りたい場合は、次の組合せを使います。

```text
受信者の公開鍵で暗号化
↓
受信者の秘密鍵で復号
```

基本情報技術者試験では、まず次の一文で切り分けます。

> **秘密に送りたいなら、受信者の公開鍵で暗号化し、受信者の秘密鍵で復号する。**

## 直感的な説明

公開鍵は、誰でも使える南京錠のようなものです。

秘密鍵は、その南京錠を開けられる本人専用の鍵です。

```text
受信者の公開鍵
→ 誰でも使える南京錠

受信者の秘密鍵
→ 本人だけが持つ開錠用の鍵
```

送信者は、受信者の公開鍵を使ってデータを暗号化します。

その暗号文を復号できるのは、対応する秘密鍵を持つ受信者だけです。

## 定義・仕組み

公開鍵暗号方式では、利用者ごとに次の2つの鍵を持ちます。

| 鍵 | 扱い |
|---|---|
| 公開鍵 | 他人に公開してよい |
| 秘密鍵 | 本人だけが厳重に保管する |

2つの鍵は一対のペアです。

```text
Bさんの公開鍵
↔ Bさんの秘密鍵

Cさんの公開鍵
↔ Cさんの秘密鍵
```

Bさんの公開鍵で暗号化したデータは、Bさんの秘密鍵で復号します。

Cさんの秘密鍵では復号できません。

## 科目Aでどう出る？

科目Aでは、誰の鍵を使うかを選ぶ問題として出題されやすいです。

### 秘密に送りたい場合

```text
暗号化：受信者の公開鍵
復号　：受信者の秘密鍵
```

### 電子署名の場合

```text
署名：送信者の秘密鍵
検証：送信者の公開鍵
```

目的ごとに整理すると、次のようになります。

| 目的 | 最初に使う鍵 | 後で使う鍵 |
|---|---|---|
| 機密性を守る | 受信者の公開鍵 | 受信者の秘密鍵 |
| 送信者確認・改ざん検知 | 送信者の秘密鍵 | 送信者の公開鍵 |

試験では、**誰の鍵か**と**目的が何か**を分けて考えます。

## 共通鍵暗号方式との違い

共通鍵暗号方式では、暗号化と復号に同じ鍵を使います。

| 比較 | 公開鍵暗号方式 | 共通鍵暗号方式 |
|---|---|---|
| 鍵 | 公開鍵と秘密鍵の2つ | 同じ鍵を共有 |
| 鍵配送 | 公開鍵は公開できる | 秘密に共有する必要がある |
| 処理速度 | 一般に遅い | 一般に速い |
| 主な用途 | 鍵交換、電子署名 | 大量データの暗号化 |

実際の通信では、両方を組み合わせる方式がよく使われます。

```text
公開鍵暗号方式
→ 共通鍵を安全に渡す

共通鍵暗号方式
→ 本文データを高速に暗号化する
```

## どんな場面で使う？

公開鍵暗号方式は、次のような場面で使われます。

- HTTPS通信
- 電子メールの暗号化
- 電子署名
- デジタル証明書
- 安全な鍵交換

ただし、公開鍵が本当に相手本人のものかを確認できなければ、なりすましの危険があります。

そのため、認証局やデジタル証明書を使って公開鍵の正当性を確認します。

## よくある誤解・混同

### 誤解1：送信者の公開鍵で暗号化する

通常の機密通信では誤りです。

受信者だけが復号できるようにするため、受信者の公開鍵を使います。

### 誤解2：公開鍵で復号する

機密性を目的とした暗号化では、公開鍵で暗号化し、秘密鍵で復号します。

### 誤解3：自分の秘密鍵なら何でも復号できる

秘密鍵は、対応する公開鍵で暗号化されたデータにだけ使えます。

### 誤解4：送信先に含まれていれば復号できる

受信できることと、復号できることは別です。

復号できるかどうかは、対応する秘密鍵を持っているかで決まります。

### 誤解5：電子署名はデータを秘密にする仕組み

電子署名の目的は、送信者確認と改ざん検知です。

機密性を守る暗号化とは目的が異なります。

## まとめ（試験直前用）

- 公開鍵暗号方式は、暗号化と復号に異なる鍵を使う
- 機密性では、受信者の公開鍵で暗号化し、受信者の秘密鍵で復号する
- 電子署名では、送信者の秘密鍵で署名し、送信者の公開鍵で検証する
- 公開鍵と秘密鍵は利用者ごとのペアであり、別の人の秘密鍵では復号できない
- 共通鍵暗号方式は高速で、大量データの暗号化に向く

試験直前には、次の一文を思い出してください。

> **秘密に送るなら受信者の公開鍵、署名するなら送信者の秘密鍵。**
