ITパスポート 2023年 問86
問題文
ハイブリッド暗号方式を用いてメッセージを送信したい。メッセージと復号用の鍵の暗号化手順を表した図において、メッセージの暗号化に使用する鍵を(1)とし、(1)の暗号化に使用する鍵を(2)としたとき、図のa, bに入れる字句の適切な組合せはどれか。


選択肢
ア:(正解)
イ:
ウ:
エ:
🔒 解説は解答すると表示されます
ハイブリッド暗号方式における鍵の組合せ【ITパスポート 解説】
正解の理由
図は「メッセージ」をまず(1)の鍵で暗号化し、その(1)の鍵自体を(2)の受信者の鍵で暗号化して送る構成です。大量データを高速に暗号化するには「共通鍵暗号(対称暗号: symmetric encryption)」を使い、その共通鍵を安全に送り届けるには受信者の「公開鍵(public key)」で暗号化するのが一般的です。したがって、図の a(メッセージ暗号化に使う鍵)は共通鍵、b(a を暗号化する受信者の鍵)は公開鍵になります。つまり選択肢ア(a = 共通、b = 公開)が図の構成に合います。
(補足用語)
- 共通鍵暗号(対称暗号): 同じ鍵で暗号化・復号する方式。例: AES(Advanced Encryption Standard)。
- 公開鍵暗号(公開鍵/秘密鍵方式): 公開鍵で暗号化し、対応する秘密鍵で復号する方式。例: RSA、ECC(楕円曲線暗号)。
解法ステップ
- 図の流れを確認する:メッセージ → (1)の鍵で暗号化 → 暗号化されたメッセージ。加えて(1)の鍵を(2)の受信者の鍵で暗号化している。
- 役割を考える:
- 大きなメッセージは、計算コストが低い方法で暗号化したい → 共通鍵暗号が適切。
- 共通鍵を安全に相手に渡すには、相手しか復号できない方法が必要 → 受信者の公開鍵で暗号化し、復号は受信者の秘密鍵で行う。
- 以上から a = 共通鍵、b = 公開鍵(=選択肢ア)と判断する。
選択肢別の誤答解説
-
ア(a = 共通、b = 公開)
正しい。メッセージは共通鍵で効率的に暗号化し、その共通鍵は受信者の公開鍵で保護して送る典型的なハイブリッド方式。 -
イ(a = 共通、b = 秘密)
間違い。受信者の「秘密鍵(private key)」は受信者しか持ちません。送信者は受信者の秘密鍵で暗号化できないため、鍵を暗号化する手段にならない(秘密鍵は復号に使う)。通常は受信者の公開鍵で暗号化し、受信者は自分の秘密鍵で復号します。 -
ウ(a = 公開、b = 共通)
間違い。メッセージ自体を公開鍵暗号で暗号化すると遅く、データ量に制限がある場合が多いです。また、図では(2)が受信者側の鍵で、(1)を暗号化しているため論理に合わない(鍵を共通鍵で暗号化するのは意味が薄い)。 -
エ(a = 公開、b = 秘密)
間違い。前述の理由でメッセージを直接公開鍵暗号で暗号化するのは非効率。また、受信者の秘密鍵で鍵を暗号化することは送信者側でできない。さらに、送信者が受信者の秘密鍵で暗号化を行うこと自体が実務上成立しません。
よくある誤解
- 「公開鍵で暗号化=誰でも暗号化できるから安全ではない」
誤解です。公開鍵は誰でも使って暗号化できますが、復号できるのは対応する秘密鍵(受信者のみ)だけなので安全に鍵を渡せます。問題は「公開鍵が本当に受信者のものか」を確認すること(→ 後述の証明書/PKI)。 - 「秘密鍵で暗号化するのが安全」
これは署名(電子署名)で使う使い方です。秘密鍵で暗号化(=署名)したデータは誰でも公開鍵で復号(検証)できるため、機密保持には使えません。暗号化(機密保持)には受信者の公開鍵を使います。
補足コラム
-
なぜ「ハイブリッド」か?
共通鍵暗号は速く大量データ向きです。一方、公開鍵暗号は安全に鍵を受け渡す手段を提供します。両者の長所を組み合わせるため「ハイブリッド暗号方式」と呼びます。 -
実際の例
TLS(ブラウザとサーバの通信)はハイブリッド方式を使います。セッションごとに生成した「セッション鍵(session key)」を共通鍵暗号(例: AES)でデータを暗号化し、そのセッション鍵を公開鍵暗号または鍵交換プロトコル(例: Diffie–Hellman)で安全に共有します。これにより高速かつ安全な通信が可能になります。 -
代表的アルゴリズム
共通鍵: AES(Advanced Encryption Standard)
公開鍵: RSA(Rivest–Shamir–Adleman)、ECDSA/ECDH(楕円曲線暗号: Elliptic Curve)
FAQ
Q1. 「送信者が受信者の公開鍵を知らないとどうする?」
A1. 公開鍵は第三者機関が発行する証明(証明書)を使って検証します。これをPKI(Public Key Infrastructure:公開鍵基盤)といいます。信頼できる証明機関(CA)が鍵の持ち主を保証します。
A1. 公開鍵は第三者機関が発行する証明(証明書)を使って検証します。これをPKI(Public Key Infrastructure:公開鍵基盤)といいます。信頼できる証明機関(CA)が鍵の持ち主を保証します。
Q2. 「公開鍵で暗号化すると遅いのはなぜ?」
A2. 公開鍵暗号は数論的な計算(大きな素数計算など)を用いるため計算コストが高く、処理が重くなります。大量データの暗号化には不向きです。
A2. 公開鍵暗号は数論的な計算(大きな素数計算など)を用いるため計算コストが高く、処理が重くなります。大量データの暗号化には不向きです。
Q3. 「秘密鍵と公開鍵を逆に使うことはないの?」
A3. 秘密鍵で暗号化する用途は「署名」です。署名は送信者の本人性や改ざん検出に使います。機密性(他人に内容を読ませない)には受信者の公開鍵で暗号化します。
A3. 秘密鍵で暗号化する用途は「署名」です。署名は送信者の本人性や改ざん検出に使います。機密性(他人に内容を読ませない)には受信者の公開鍵で暗号化します。
関連キーワード: ハイブリッド暗号、共通鍵暗号(対称暗号)、公開鍵暗号(公開鍵/秘密鍵)、セッション鍵、鍵交換、AES、RSA、Diffie–Hellman、電子署名、PKI

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

