暗号学的ハッシュ関数
ハッシュ関数と暗号学的ハッシュ関数は違う
任意のデータから、別の(多くの場合は短い固定長の)値を得るための関数のこと
一般的な用途の場合はチェックサムやフィンガープリントで事足りる(らしい)
暗号学的ハッシュ関数
チェックサムやフィンガープリントよりも強力な一様性を要するが、計算量とトレードオフになる
一般的なハッシュ関数の性質に加えて、原像計算困難性、弱衝突耐性、強衝突耐性が求められる
基本性質
固定長
計算速度が速い
攻撃に関して
(第一)原像攻撃: 与えられたハッシュ値hに対して、hash(m) = hとなるようなメッセージmを探索する。 ちなみに一方向性関数の存在性はまだ証明されていないため、一方向性関数であると仮定して使われている 第二原像攻撃: 与えられたメッセージm1に対して、hash(m2) = hash(m1)となるような別のメッセージm2を探索する。 衝突攻撃(誕生日攻撃): hash(m1)=hash(m2)となるようなm1, m2を探索する。 第二現像攻撃と衝突攻撃の違いは、m1(片方のメッセージ)が固定されているか否か
参考