最終更新日:2026年7月30日
fe fe-technology security cryptography authentication
まず結論
公開鍵暗号方式では、何を守りたいかによって使う鍵が変わります。
内容を秘密にしたい
→ 受信者の公開鍵で暗号化
→ 受信者の秘密鍵で復号
送信者本人か確認したい
→ 送信者の秘密鍵で署名
→ 送信者の公開鍵で検証
試験では、まず次の2つを切り分けます。
- 秘密性を守る話か
- 送信者の正当性を確認する話か
秘密にするなら受信者の鍵、本人確認なら送信者の鍵。
直感的な説明
公開鍵暗号方式は、公開してよい鍵と、本人だけが持つ秘密鍵を一組で使います。
内容を秘密にするとき
受信者だけが開けられる箱をイメージします。
送信者
↓ 受信者の公開鍵で施錠
暗号文
↓ 受信者の秘密鍵で解錠
受信者
受信者の公開鍵は誰でも使えますが、復号できる秘密鍵は受信者だけが持っています。
送信者本人か確認するとき
送信者だけが押せる印鑑をイメージします。
送信者
↓ 自分の秘密鍵で署名
署名付きデータ
↓ 送信者の公開鍵で検証
受信者
検証に成功すれば、対応する秘密鍵を持つ者が署名したことを確認できます。
定義・仕組み
公開鍵と秘密鍵
公開鍵暗号方式では、数学的に対応する2本の鍵を使います。
| 鍵 | 扱い |
|---|---|
| 公開鍵 | 他者へ公開してよい |
| 秘密鍵 | 所有者だけが厳重に管理する |
公開鍵と秘密鍵は1組です。
Aさんの公開鍵
↔ Aさんの秘密鍵
Aさんの公開鍵とBさんの秘密鍵はペアではありません。
暗号化通信
目的は、通信内容を第三者に読まれないようにすることです。
送信者:受信者の公開鍵で暗号化
受信者:自分の秘密鍵で復号
この仕組みで主に守るのは秘密性です。
デジタル署名
目的は、送信者の正当性とデータの完全性を確認することです。
実際のデジタル署名では、通常、データ全体を秘密鍵で暗号化するのではなく、データから作ったハッシュ値に署名処理を行います。
送信データ
↓ ハッシュ関数
ハッシュ値
↓ 送信者の秘密鍵で署名
デジタル署名
受信者は、送信者の公開鍵を使って署名を検証します。
送信データから計算したハッシュ値
と
署名から確認したハッシュ値
を比較する
一致すれば、次のことを確認できます。
- 対応する秘密鍵を持つ者が署名した
- 署名後にデータが改ざんされていない
暗号化と署名の比較
| 目的 | 送信者が使う鍵 | 受信者が使う鍵 | 主に確認できること |
|---|---|---|---|
| 暗号化通信 | 受信者の公開鍵 | 受信者の秘密鍵 | 秘密性 |
| デジタル署名 | 送信者の秘密鍵 | 送信者の公開鍵 | 正当性・完全性 |
科目Aでどう出る?
科目Aでは、鍵の所有者と目的を入れ替えた選択肢が出題されます。
判断手順は次のとおりです。
1. 目的を見る
2. 誰の鍵を使うか決める
3. 公開鍵と秘密鍵の向きを確認する
内容を秘密にする問題
受信者の公開鍵で暗号化
受信者の秘密鍵で復号
受信者の公開鍵は誰でも使えますが、受信者の秘密鍵を持つのは受信者だけです。
送信者本人を確認する問題
送信者の秘密鍵で署名
送信者の公開鍵で検証
送信者の秘密鍵は送信者だけが持つため、署名の検証によって送信者の正当性を確認できます。
典型的な切り分け
| 問題文の表現 | 判断 |
|---|---|
| 内容を第三者に読まれないようにする | 受信者の公開鍵で暗号化 |
| 受信者だけが復号する | 受信者の秘密鍵で復号 |
| 送信者本人か確認する | 送信者の秘密鍵で署名 |
| 署名を検証する | 送信者の公開鍵を使用 |
| 改ざんを検知する | デジタル署名 |
| 他人の秘密鍵を送信者が使う | 不適切 |
どんな場面で使う?
暗号化通信
通信内容を秘密にしたい場面で使います。
- Web通信
- 電子メール
- ファイル送信
- 共通鍵の安全な配送
ただし、公開鍵暗号方式は共通鍵暗号方式より処理が重いため、実際の通信では公開鍵暗号方式で共通鍵を安全に共有し、その後は共通鍵暗号方式でデータを暗号化する方法がよく使われます。
デジタル署名
送信者の正当性や改ざんの有無を確認したい場面で使います。
- 電子文書
- ソフトウェア配布
- 電子申請
- 電子契約
よくある誤解・混同
誤解1:秘密鍵を使えば内容も秘密になる
送信者の秘密鍵で作った署名は、送信者の公開鍵で検証します。
公開鍵は他者も入手できるため、デジタル署名は内容を秘密にする仕組みではありません。
デジタル署名
→ 正当性・完全性
暗号化
→ 秘密性
誤解2:受信者の公開鍵で暗号化すれば送信者本人だと分かる
受信者の公開鍵は、多くの人が利用できます。
したがって、受信者の公開鍵で暗号化されているだけでは、誰が送ったかを証明できません。
誤解3:送信者が受信者の秘密鍵を使う
秘密鍵は所有者だけが管理します。
送信者の秘密鍵
→ 送信者だけが持つ
受信者の秘密鍵
→ 受信者だけが持つ
他人の秘密鍵を使う選択肢は切ることができます。
誤解4:デジタル署名はデータ全体を秘密鍵で暗号化する
試験問題では「秘密鍵で暗号化し、公開鍵で復号する」と簡略化されることがあります。
しかし実際には、通常、データから求めたハッシュ値に署名処理を行います。
誤解5:公開鍵が本当に送信者のものかは自動的に分かる
公開鍵だけを受け取っても、その鍵が本当に送信者本人のものか確認できないことがあります。
そのため、実際の仕組みでは電子証明書や認証局を使って、公開鍵と所有者を結び付けます。
まとめ(試験直前用)
- 内容を秘密にするなら、受信者の公開鍵で暗号化する
- 受信者は自分の秘密鍵で復号する
- 送信者本人を確認するなら、送信者の秘密鍵で署名する
- 受信者は送信者の公開鍵で署名を検証する
- 暗号化は秘密性、デジタル署名は正当性と完全性
- 他人の秘密鍵を使う選択肢は不適切
- 実際の署名では、通常、データのハッシュ値に署名する
秘密にする
→ 受信者の公開鍵 → 受信者の秘密鍵
本人を証明する
→ 送信者の秘密鍵 → 送信者の公開鍵