問題

暗号学的ハッシュ関数が満たすべき性質として、適切なものはどれか。

ア)任意の長さの入力に対して、常に同じ長さの出力を生成する必要はない。

イ)与えられたハッシュ値から、元の入力を効率的に復元できることが求められる。

ウ)異なる二つの入力から同じハッシュ値が生成されることを見つけるのが計算量的に困難である(衝突耐性)。

エ)入力の一部を変更しても、ハッシュ値はほとんど変化しないことが望ましい。

解答・解説を見る

正解: ウ)

解説:

暗号学的ハッシュ関数には主に次の性質が求められます。

  • 出力長の固定性:任意長の入力に対し、常に固定長の出力(ダイジェスト)を生成する。したがってアは誤り。
  • 原像計算困難性(一方向性):ハッシュ値から元の入力を効率的に逆算できてはならない。したがってイは誤り。
  • 衝突耐性:異なる二つの入力から同じハッシュ値が生成される組を見つけることが計算量的に困難である。これが正解の記述。
  • 雪崩効果:入力を1ビットでも変更すると、出力が大きく(統計的にはほぼ半分のビットが)変化することが望ましい。したがってエは「ほとんど変化しない」としている点で誤り(実際は大きく変化するべき)。

SHA-256やSHA-3などが該当します。SC試験ではハッシュ関数の性質と、それが崩れた場合の攻撃(衝突攻撃によるデジタル署名偽造など)をセットで問われることが多いです。

重要キーワード

用語説明
原像計算困難性ハッシュ値から元の入力を逆算できない性質
衝突耐性同じハッシュ値を持つ異なる入力の組を見つけにくい性質
雪崩効果入力のわずかな変化が出力全体に大きく波及する性質
SHA-256256ビットのダイジェストを生成する代表的なハッシュ関数