問題 40★★★

初めて取引する相手に、容量の大きい設計データを暗号化してインターネット経由で 送りたい。暗号化と復号の処理を速く済ませ、かつ復号に使う鍵を第三者に 知られずに相手へ渡す方法として、最も適切なものはどれか。

正解:イ

各選択肢の解説

  1. アデータ全体を相手の公開鍵で暗号化し、その暗号文だけを相手に送る。

    誤り。鍵を安全に渡すという条件は満たしますが、公開鍵暗号方式は共通鍵暗号方式に 比べて処理に時間がかかり、容量の大きいデータ全体の暗号化には向きません。 正しい向きの使い方でも、処理の速さという条件に合いません。

  2. イデータを共通鍵で暗号化し、その共通鍵を相手の公開鍵で暗号化して送る。

    正解。データ本体は処理の速い共通鍵暗号方式で暗号化し、短い共通鍵だけを 公開鍵暗号方式で守って渡します。共通鍵を取り出せるのは秘密鍵を持つ相手だけ なので、速さと鍵の安全な受渡しを両立できます。

  3. ウデータを共通鍵で暗号化し、その共通鍵を別のメールに書いて相手に送る。

    誤り。処理は速いものの、共通鍵がそのままの形でインターネットを流れます。 メールを分けても同じ経路を通るので、暗号文を盗み見られる相手には鍵も 盗み見られます。共通鍵暗号方式の弱点である鍵の受渡しが解決していません。

  4. エデータを自分の秘密鍵で暗号化し、対になる自分の公開鍵を相手に渡す。

    誤り。これはデジタル署名で使う鍵の向きです。公開鍵は誰でも入手できる前提の 鍵なので、この暗号文は相手以外の人にも復号できてしまいます。作成者を示す ことはできても、内容を秘密にすることはできません。

理解を深めるために

荷物は丈夫な錠で、その鍵だけを金庫で送る

大きな荷物を送るとき、荷物ごと金庫に入れるのは大変です。荷物には扱いやすい 錠を掛け、その小さな鍵だけを金庫に入れて送るほうが現実的です。

暗号でも同じ組合せを使います。データ本体は共通鍵で、その共通鍵は相手の 公開鍵で暗号化します。二つの方式の得意なところだけを取る方法で、 ハイブリッド暗号方式と呼ばれます。HTTPSの通信もこの考え方で動いています。

二つの方式は弱点が逆

処理の速さ 鍵の受渡し
共通鍵暗号方式 速い 同じ鍵を相手に安全に届ける手段が要る
公開鍵暗号方式 遅い 公開鍵は知られてよいので受渡しが容易

共通鍵暗号方式は暗号鍵と復号鍵が同じなので、鍵を送る途中で盗み見られると 暗号文を読まれてしまいます。公開鍵暗号方式にはこの問題がありませんが、 計算の負荷が大きく、大きなデータには不向きです。

そこで、遅い公開鍵暗号方式に任せるのは「短い共通鍵を届ける」仕事だけにします。 共通鍵はデータに比べてごく小さいので、遅さが問題になりません。

混同しやすいものとの違い

方法 速さ 鍵の安全
データは共通鍵、共通鍵は相手の公開鍵で暗号化 速い 守られる
データ全体を相手の公開鍵で暗号化 遅い 守られる
共通鍵を別のメールで送る 速い 守られない
自分の秘密鍵で暗号化 遅い 誰でも復号できる

試験では、条件が二つ示されたら一つずつ当てはめます。片方しか満たさない 選択肢は、記述が正しくても正解になりません。

前の問題へ次の問題へ