スポンサーリンク

問題の解答・解説ページ

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

この問題をクイズ形式で解く
問題 No.2488
デジタル署名の仕組みにおいて、ハッシュ関数を利用する理由として最も適切なものはどれか。

【正解の解説】

元データのサイズに関わらず一定長のダイジェストを生成し、暗号化処理の負荷を軽減するため

これは分厚い辞書をそのままコピーするのではなく、内容を凝縮した「数行の要約」だけを作って判子を押すような仕組みです。元のデータがどれだけ巨大な映画ファイルであっても、ハッシュ値というコンパクトなサイズに変換することで、時間がかかる複雑な暗号化の計算処理を効率よくスピーディーに行うことができます。

スポンサーリンク

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

元データを直接暗号化することによる鍵の漏洩リスクを防ぎ、第三者への秘匿性を担保するため

デジタル署名はデータを秘密にするものではなく、「誰が書いたか」と「書き換えられていないか」を証明する技術です。元データを直接暗号化して秘密を守る仕組み(共通鍵暗号や公開鍵暗号による秘匿)と、データの要約を作って本人確認と改ざんチェックを行うデジタル署名を混同させようとする典型的なひっかけ問題です。

元データの改ざんを完全に不可能にすることで、通信経路におけるデータ消失の耐性を高めるため

ハッシュ関数は「データの改ざんを見つける(検知する)」ためのものであり、データを壊されなくしたり消えにくくしたりするバックアップのような耐障害性の機能はありません。また、物理的な通信エラーによるデータ消失を防ぐのはTCPなどの通信プロトコルの役割であり、デジタル署名の仕事とは領域が異なります。

元データをより大容量のバイナリデータに変換し、検証時の処理速度と可読性を向上させるため

「大容量のバイナリデータに変換する」という点が真逆の誤りです。ハッシュ関数は、どれほど巨大なファイルであっても、短い文字列(例えば256ビットなど)に圧縮するのが特徴です。データ量を増やすと処理速度は遅くなってしまうため、効率を上げるためのハッシュ化の目的と完全に矛盾しています。