問91 ハッシュ関数の性質

ITパスポート 令和8年度 公開問題、全100問のうちの問91。

出典:令和8年度 ITパスポート試験 公開問題 問91

デジタル署名やブロックチェーンで用いられるハッシュ関数には,SHA-⁠2⁠5⁠6,SHA-⁠5⁠1⁠2などがある。このようなハッシュ関数に関する記述として,適切なものはどれか。

  1. アあるハッシュ関数を用いて得たハッシュ値を,そのハッシュ関数に入力することによって,元のデータを復元することができる。
  2. イ同じデータを異なるハッシュ関数にそれぞれ入力したとき,得られるハッシュ値は全て同じになる。
  3. ウ同じハッシュ関数を用いる場合,入力したデータが同じであれば,得られるハッシュ値は常に同じになる。
  4. エどのハッシュ関数にもそれぞれの逆関数が存在し,ハッシュ値から元のデータを復元することができる。
答えと解説を開く

正解はウです。

ハッシュ関数は、どんな長さのデータからも、決まった長さの値 (ハッシュ値) を作る関数です。同じハッシュ関数に同じデータを入れれば、何度やっても同じハッシュ値になります。だから、ハッシュ値を比べれば、データが書き換えられていないかを確かめられます。一方、ハッシュ値から元のデータを計算で戻すことは、事実上できません。正解はウです。

ほかの選択肢が違う理由

  • アハッシュ値をもう一度ハッシュ関数に入れても、別のハッシュ値ができるだけです。元のデータには戻りません。
  • イハッシュ関数が違えば、計算のしかたも出てくる値の長さも違います。SHA-⁠2⁠5⁠6 と SHA-⁠5⁠1⁠2 では、同じデータでも違うハッシュ値になります。
  • エ暗号に使うハッシュ関数は、ハッシュ値から元のデータを求められないように作られています。逆関数で戻すことはできません。

仕組み

暗号に使うハッシュ関数には、元に戻せないこと (一方向性)、同じハッシュ値になる別のデータを見つけにくいこと、という性質があります。

デジタル署名では、文書のハッシュ値に署名します。ブロックチェーンでは、前のブロックのハッシュ値を次のブロックに入れて、改ざんをすぐ見つけられるようにしています。

この問に出る言葉