ディジタル署名における署名鍵の使い方と、ディジタル署名を行う目的のうち、適切なものはどれか。
ア 受信者が署名鍵を使って、暗号文を元のメッセージに戻すことができるようにする。
イ 受信者が固定文字列に付加したメッセージを署名鍵を使って暗号化することによって、受信者がメッセージの改ざん部位を特定することができる。
ウ 送信者が署名鍵を使って署名を作成し、それをメッセージに付加することによって受信者が送信者を確認できるようにする
エ 送信者が署名鍵を使ってメッセージを暗号化することによって、メッセージの内容を関係者以外に分からないようにする。
ディジタル署名の目的と、署名鍵とは何なのかを理解しているか問う問題。まずはディジタル署名とはなんぞや、という解説から。
ディジタル署名とは何か?
ディジタル署名とは、秘密鍵を用いて暗号化してそれを公開鍵で検証することにより、「暗号化した人が誰なのか」「文章が改ざんされていないか」をチェックすることのできる技術である。問題分にある署名鍵とは秘密鍵の事を指す。
秘密鍵はそれが漏洩していない限り、署名を作成した人しか知らない情報である。したがって、署名鍵とペアとなる公開鍵で復号化できたのならば、その署名を作成した人は「それは俺がやったんじゃない!」といった言い逃れはできなくなる。別の人間は署名鍵をしらないので、署名を行えないからである。こういった事から、ディジタル署名によって「なりすましがないことの証明」「否認防止」といったことができる。
さらには、文書に改ざんがあった場合、署名鍵と復号鍵との関連性が絶たれてしまうため、うまく復号化することができない。逆に言えば、うまく復号できたのならば改ざんはないと断言することが可能となる。
この問題は
- ディジタル署名の目的は「なりすましがないこと」「改ざんがないこと」を署名することである
- 署名鍵には秘密鍵を用いる
ということを理解していれば簡単に解ける。
それでは選択肢を確認していこう。
アの解説
ア 受信者が署名鍵を使って、暗号文を元のメッセージに戻すことができるようにする。
署名鍵は復号化ではなく暗号化の際に用いる。したがってアは×。
仮に公開鍵で署名をして、秘密鍵(署名鍵)で署名を検証するとなると、公開鍵は誰でも知っている鍵であるから誰でも署名をすることができてしまい、もはや署名ではなく「なりすましを検知」などもできない。
「誰でも使えるところに上司のハンコがおいてあり、好き放題に押している」と言った状態だ。これではもはや判を押したのが誰なのかはわからない。
イの解説
イ 受信者が固定文字列に付加したメッセージを署名鍵を使って暗号化することによって、受信者がメッセージの改ざん部位を特定することができる。
ディジタル署名は「改ざんの有無」しかわからない。つまり、改ざん個所の特定まではできないのだ。したがってイは×。
ウの解説
ウ 送信者が署名鍵を使って署名を作成し、それをメッセージに付加することによって受信者が送信者を確認できるようにする
正しい。ウが正解である。
詳しくは最初のほうに述べたとおりである。
エの解説
エ 送信者が署名鍵を使ってメッセージを暗号化することによって、メッセージの内容を関係者以外に分からないようにする。
ディジタル署名には「暗号化による秘匿」という目的はない。エは×。
秘密鍵を使って暗号化し、公開鍵で復号化することによりメッセージの盗聴を防ぐのは公開鍵暗号である。
関連問題
こちらは、今回の問題と問われている部分はあまり変わらないが、文章がやや複雑な分だけ難易度が上がっている。この問題を理解した後に解くとよいと思う。