アバランシェ効果
入力を1ビット変えれば出力の約半分が変わるべき。そうでなければ、その構成は構造を漏らしている。
入力のわずかな変化が、出力の全面的な攪拌として現れるという要件。ハッシュ関数やブロック暗号では、1985年にWebsterとTavaresが定式化した「厳密なアバランシェ基準(SAC)」により、入力の任意の1ビットを反転したとき、各出力ビットが確率1/2で反転することが求められる。
実務では、拡散の度合いを測る指標として使われる。この性質が弱いと、攻撃者は互いに近いメッセージを与えて出力を比較し、暗号を破らなくても統計的に鍵のビットを絞り込める。変化したビット数を数えるのは、自作ハッシュ関数を作った人が最初に行うテストでもある。ほどなく「ハッシュ関数は自作すべきでない」と悟るまでが一連の流れだ。