スポンサーリンク

問題の解答・解説ページ

このページは解説の閲覧モードです。
実力試しをしたい方は、下のボタンからクイズに挑戦してください!

この問題をクイズ形式で解く
問題 No.1965
デジタル署名の生成プロセスにおいて、送信者がメッセージそのものではなく、メッセージからハッシュ関数を用いて生成したデータに対して暗号化を行う主な理由として適切なものはどれか。

【正解の解説】

データサイズを小さくすることで、暗号化および復号に要する処理時間を短縮するため

例えば、何百ページもある分厚い契約書の丸ごとに毎回ハンコを押すのは大変なので、内容をギュッと要約した短いチェックシートを作って、そこにだけ署名するようなものです。デジタル署名で使われる公開鍵暗号方式は非常に計算コストが高いため、長いメッセージそのものを暗号化すると膨大な時間がかかります。そのため、ハッシュ関数で元のデータを短く要約し、その要約値だけを暗号化することで、高いセキュリティを保ちつつ実用的なスピードで処理を行えるように工夫されています。

スポンサーリンク

【その他の選択肢の解説】

平文データそのものを直接暗号化してしまうと、暗号文の解読が容易になり強度が低下するため

デジタル署名はメッセージの「秘密保持(暗号化)」ではなく、誰が送ったかを示す「送信者の証明」と「改ざん検知」が目的です。ハッシュ値を使う理由は、暗号の強度を高めるためではなく、あくまで計算量を減らして効率よく署名を行うためです。RSAなどの強力なアルゴリズムを用いれば、平文そのものを暗号化しても数学的な強度が低下することはないため、この選択肢は誤りとなります。

通信経路上でデータが改ざんされた際に、どの部分が書き換えられたかを正確に特定するため

ハッシュ関数は「雪だるま式に変化が波及する」というアバランチ効果があり、メッセージのほんの1文字が変わるだけでハッシュ値はまったく別物になります。これにより改ざんされた事実を一瞬で検知することはできますが、どこが書き換えられたかという「場所」を特定することは原理的に不可能です。デバッグのようにエラー箇所をピンポイントで指し示す機能はないため、この記述は誤りとなります。

送信者固有の秘密鍵を紛失した場合でも、ハッシュ値から元のメッセージを完全に復元するため

ハッシュ関数は、長いデータを短い固定長のデータに変換する「一方通行の要約」です。一度ハッシュ値にしてしまうと、元の文章やデータがどのようなものだったのかを逆算して復元することは数学的に不可能です。秘密鍵の紛失対策として元のデータを復元するためにハッシュ値を使っているわけではなく、むしろ元のデータに戻せないからこそ、改ざん検出の信頼性の高い証拠として利用されています。