問題
選択肢
- 1入力が同じでも出力は毎回異なる
- 2出力から入力を容易に復元できる
- 3任意長の入力を固定長の値に変換する一方向関数
- 4可逆変換であり暗号化に使う
正解
3. 任意長の入力を固定長の値に変換する一方向関数
詳しい解説を見る解説を閉じる
解説
ハッシュ関数は、任意の長さの入力データから固定長のハッシュ値を算出する一方向性の関数であり、「任意長の入力を固定長の値に変換する一方向関数」が正解である。同じ入力からは常に同じ出力が得られるため、「入力が同じでも出力は毎回異なる」は誤りである。一方向性とは、ハッシュ値から元の入力を求めることが計算量的に困難であるという性質であり、「出力から入力を容易に復元できる」は誤りである。「可逆変換であり暗号化に使う」も誤りで、ハッシュは元に戻せない不可逆変換であり、復号を前提とする暗号化とは目的が異なる。このほか、異なる入力から同じハッシュ値が得られる組を見つけにくい衝突発見困難性や、入力が1ビット違うだけで出力が大きく変わる性質も重要である。代表例のSHA-256と、改ざん検出・ディジタル署名・パスワードのハッシュ化保存といった用途が頻出である。
一問一答
科目A 180問+科目B 60問