問題 41★★☆

取引先へ毎週、大容量の設計データを送る。データは共通鍵で暗号化し、その共通鍵を 取引先の公開鍵で暗号化して添えるハイブリッド暗号を使う。 共通鍵の扱いとして、最も適切なものはどれか。

正解:ア

各選択肢の解説

  1. ア送るたびに新しい共通鍵を生成し、取引先の公開鍵で暗号化して添える。

    正解。共通鍵を送信ごとに使い捨てにすれば、1つの鍵が漏れても読まれるのはその回のデータだけです。 公開鍵で鍵を包んで渡せるので、毎回作り直しても受け渡しの手間は増えません。

  2. イ最初に作った共通鍵を毎回使い、公開鍵で暗号化して送るのは初回だけにする。

    誤り。手間は減りますが、1つの共通鍵が全期間のデータを守ることになります。 その鍵が一度漏れれば、過去も将来の分もすべて復号されます。 ハイブリッド暗号は、鍵を毎回安全に渡せることが利点なので、使い回す理由がありません。

  3. ウ共通鍵を自社の秘密鍵で暗号化して添え、取引先には自社の公開鍵で復号させる。

    誤り。これはデジタル署名と同じ鍵の向きです。自社の公開鍵は誰でも入手できるので、 途中で受け取った第三者も共通鍵を取り出せます。秘密を守るなら受け手の公開鍵で暗号化します。

  4. エ共通鍵は使わず、設計データ全体を取引先の公開鍵で直接暗号化して送る。

    誤り。公開鍵暗号方式は処理が重く、大容量のデータの暗号化には向きません。 重いデータは速い共通鍵暗号方式で、短い鍵だけを公開鍵暗号方式で、と役割を分けるのが ハイブリッド暗号の考え方です。

理解を深めるために

鍵は「1回分の荷物」だけを守らせる

宅配ボックスの暗証番号が毎回変わるのは、1回の番号が誰かに知られても、次の荷物まで 開けられないようにするためです。同じ番号を何年も使えば、一度覗き見られただけで それ以降の荷物がすべて危うくなります。

ハイブリッド暗号の共通鍵も同じで、送るたびに新しく作り、その回だけで使い捨てるのが基本です。 このような1回限りの鍵をセッション鍵と呼びます。

ハイブリッド暗号の役割分担

ハイブリッド暗号は、2つの方式の得意な部分を組み合わせます。

  • 共通鍵暗号方式: 処理が速い。ただし鍵を相手に安全に渡すのが難しい
  • 公開鍵暗号方式: 受け手の公開鍵で暗号化すれば受け手の秘密鍵でしか戻せないので、鍵を安全に渡せる。ただし処理が重い

そこで、データ本体は共通鍵で暗号化し、その共通鍵だけを受け手の公開鍵で暗号化して添えます。 鍵の受け渡しが毎回自動で安全に行えるので、共通鍵を使い回す必要がありません。 使い回すと、1つの鍵が守る範囲が広がり、漏れたときの被害がその鍵で暗号化した全データに及びます。 鍵管理では「1つの鍵に守らせる範囲を小さくする」ことが、漏えい時の被害を限る基本になります。

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

扱い 何が起きるか
送信ごとに新しい共通鍵を作る 1つの鍵が漏れても、その回の分だけで済む
共通鍵を使い回す 1つの漏えいで全期間のデータが読まれる
自社の秘密鍵で共通鍵を暗号化 誰でも自社の公開鍵で取り出せる(署名の向き)
データ全体を公開鍵で暗号化 処理が重く、大容量に向かない

ハイブリッド暗号の問題では、データと鍵のどちらをどの方式で暗号化するかに加えて、 共通鍵をどれだけの範囲で使うかも見ておくと判断を誤りません。

前の問題へ次の問題へ