情報セキュリティの基礎
AさんがBさんに送る文書にデジタル署名を付ける。署名の作成と検証に使う鍵と、デジタル署名によって確かめられることの組み合わせとして正しいものはどれか。
- AAさんの秘密鍵で署名を作り、BさんはAさんの公開鍵で検証する。文書がAさんの作ったものであり、途中で改ざんされていないことを確かめられる
- BBさんの公開鍵で署名を作り、Bさんは自分の秘密鍵で検証する。文書の内容が第三者に読まれないことを確かめられる
- CAさんの公開鍵で署名を作り、BさんはAさんの秘密鍵で検証する。文書の内容が正しい事実であることを確かめられる
答えと解説を見る
正解:A. Aさんの秘密鍵で署名を作り、BさんはAさんの公開鍵で検証する。文書がAさんの作ったものであり、途中で改ざんされていないことを確かめられる
デジタル署名では、署名する人(Aさん)が、文書のハッシュ値を自分の秘密鍵で処理して署名を作り、文書に付けて送ります。受け取ったBさんは、Aさんの公開鍵で署名を検証し、文書から計算したハッシュ値と対応しているかを確かめます。秘密鍵を持つのはAさんだけなので、検証に成功すれば、文書がAさんによって署名されたこと(真正性)と、署名の後に1ビットも書き換えられていないこと(完全性)が分かります。また、Aさんは後から「署名していない」と否定しにくくなります(否認防止)。ただし、その公開鍵が本当にAさんのものであることは別に確かめる必要があり、そのために証明書が使われます。一方、デジタル署名は文書を暗号化しないので、内容を秘密にはできません。秘密にしたい場合は、別に暗号化を組み合わせます。また、署名で分かるのは誰が署名したかであり、書かれた内容が事実として正しいかどうかは分かりません。
- A. 正しい。秘密鍵で署名し、公開鍵で検証します。署名した人と、改ざんされていないことが分かります。
- B. Bさんの公開鍵は誰でも使えるので、署名を作っても誰が作ったかを示せません。また、デジタル署名は内容を秘密にはしません。
- C. 秘密鍵と公開鍵の使い方が逆です。Aさんの秘密鍵はAさんしか持っていません。また、署名で内容の正しさまでは分かりません。