暗号技術|令和5年度 情報セキュリティマネジメント試験 科目A 問5
セキュアハッシュ関数SHA-256を用いてファイルA及びファイルBのハッシュ値を算出すると,どちらも全く同じ次に示すハッシュ値n(16進数で示すと64桁)となった。この結果から考えられることとして,適切なものはどれか。ハッシュ値n:86620f2f 152524d7 dbed4bcb b8119bb6 d493f734 0b4e7661 88565353 9e6d2074
- ファイルAとファイルBの各内容を変更せずに再度ハッシュ値を算出すると,ファイルAとファイルBのハッシュ値が異なる。
- ファイルAとファイルBのハッシュ値nのデータ量は64バイトである。
- ファイルAとファイルBを連結させたファイルCのハッシュ値の桁数は16進数で示すと128桁である。
- ✓ これが正解ファイルAの内容とファイルBの内容は同じである。
解説
ハッシュ値が完全に一致するので二つのファイルの内容は同じです。
ハッシュ関数は、入力データから決まった長さの値(ハッシュ値)を計算するもので、入力が少しでも違えば値も変わり、同じ入力からはいつも同じ値が出ます。SHA-256の場合、出力はどんな入力でも256ビット、16進数で表すと64桁(32バイト)の固定長です。ファイルAとファイルBのSHA-256が完全に同じ値になったということは、二つのファイルの内容が同じだと考えられます。これが適切な結論です。
ほかの選択肢はなぜ違うのか
- 同じ内容のファイルを変更せずに計算し直せば、ハッシュ値は何度計算しても同じ値になります。入力が同じなら出力も同じというのがハッシュ関数の性質なので、再計算すると異なるという記述は誤りです。
- 16進数64桁は、1桁が4ビットなので256ビット、バイトに直すと32バイトです。64バイトではありません。桁数とバイト数を取り違えているので、この記述は誤りです。
- ハッシュ値の桁数は入力の大きさによらず一定です。SHA-256なら、ファイルを連結したファイルCでも出力は16進数で64桁のままで、128桁にはなりません。だからこの記述は誤りです。
この問題に関係する言葉
- SHA-256データから決まった長さの値を計算する関数。値が一致すれば内容も同じとみなせ、改ざんの検知に使われます。
- ハッシュ関数どんな長さのものからも決まった長さの値を作り出す計算。少しでも中身が変われば、できあがる値は大きく変わります。
出典:令和5年度 情報セキュリティマネジメント試験 科目A 問5
同じ単元をまとめて解くなら暗号技術へ。
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)