基本情報技術者試験「ハッシュ関数」の問題
メッセージダイジェストの生成に用いるハッシュ関数が備えるべき性質として最も適切なものはどれか。
ア出力から入力を復元できる
イわずかな入力差で出力が激変し衝突が困難
ウ入力長に比例し出力長も変わる
エ同じ入力でも実行ごとに異なる値を出力する
正解
イ.わずかな入力差で出力が激変し衝突が困難
暗号学的ハッシュ関数は、入力が少しでも変わると出力が大きく変化する雪崩効果を持ち、同じ出力を生む別の入力を見つけることが計算上困難な衝突困難性を備える。改ざん検知に適し正しい。
?選択肢ごとの解説
ア ×出力から入力を容易に復元できると一方向性が崩れ、ハッシュとして機能しない。原像計算が困難であるべきで説明が逆である。
イ ○暗号学的ハッシュ関数は、入力が少しでも変わると出力が大きく変化する雪崩効果を持ち、同じ出力を生む別の入力を見つけることが計算上困難な衝突困難性を備える。改ざん検知に適し正しい。
ウ ×ハッシュ関数は入力長によらず固定長の出力を生成する。入力に比例して出力長が変わるという説明は誤りである。
エ ×同じ入力には常に同じ出力を返す決定性が必要であり、実行ごとに値が変わると検証に使えないため誤りである。
✎くわしく
暗号学的ハッシュは『一方向性(出力から入力を求めにくい)』『衝突困難性(同出力の別入力を見つけにくい)』『固定長出力』『決定性』を備える。SHA-256等が代表で、改ざん検知やパスワード保存、署名の前処理に用いる。
✓本番での押さえどころ
試験のコツ
『一方向・固定長・同入力同出力・衝突困難』の4性質で判定する。復元できる/出力長可変/毎回変わる選択肢は誤り。
覚え方
ハッシュは『指紋』。本人(入力)から指紋(ダイジェスト)は作れるが、指紋から本人は作れない一方向、と覚える。
よくある誤り
ハッシュを暗号化(復号できる)と混同する誤りが多い。ハッシュは不可逆で復元できない点が暗号化との決定的な違いである。
セキュリティの他の問題
この問題を、AIの8-ways解説つきで。
無料ではじめる →基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。
ukamiru 過去問 · 基本情報技術者試験 · fe-a3-0069