問題 No.6691
A社は、取引先であるB社との間で機密性の高い電子契約書をやり取りする際、送信者のなりすましやデータの改ざんを確実に防止するため、公開鍵暗号方式を利用したディジタル署名を導入することにした。このディジタル署名の仕組みに関する記述として、最も適切なものはどれか。
【正解の解説】
送信者が自身の秘密鍵を用いてデータから生成したハッシュ値を暗号化して署名とし、受信者が送信者の公開鍵でそれを復号し、受信側で算出したハッシュ値と比較することで検証を行う。
これは紙の契約書に実印を押す作業とまったく同じです。本人のみが持つ秘密鍵(実印)で暗号化することで「私が書きました」という本人証明になり、誰でも持つ公開鍵(印鑑証明書)で復号して確認できるため、なりすましや改ざんを完全に防ぐことができます。
スポンサーリンク
【その他の選択肢の解説】
送信者が自身の公開鍵を用いてデータから生成したハッシュ値を暗号化して署名とし、受信者が送信者の秘密鍵でそれを復号し、受信側で算出したハッシュ値と比較することで検証を行う。
試験でよくある「鍵のペアの逆転」を狙った典型的なひっかけ問題です。もし公開鍵で暗号化してしまうと世界中の誰もが署名を作れてしまい、本人確認(なりすまし防止)の意味が完全に失われるため、秘密鍵で暗号化するのが絶対のルールです。
受信者が自身の秘密鍵を用いてデータから生成したハッシュ値を暗号化して署名とし、送信者が受信者の公開鍵でそれを復号し、送信側で算出したハッシュ値と比較することで検証を行う。
ディジタル署名は「手紙を書いた本人」が自分の身元を証明するために付けるものなので、受信者が署名を作るのは役割分担の観点からあり得ません。送信者と受信者の立場をあえて入れ替えて混乱させる出題者の罠なので注意しましょう。
受信者が自身の公開鍵を用いてデータから生成したハッシュ値を暗号化して署名とし、送信者が受信者の秘密鍵でそれを復号し、送信側で算出したハッシュ値と比較することで検証を行う。
受信者が公開鍵を使って署名を作成するという、公開鍵暗号方式の基本原理に全く反する誤った選択肢です。誰でも持っている公開鍵で暗号化したらセキュリティの保護にならないという基本原則を思い出せば、一発で除外できる選択肢です。