ハッシュ関数と衝突とは?
ハッシュ関数と衝突とは、任意長のデータを固定長の短い値(ハッシュ値)に変換する関数。同じ入力からは常に同じ出力が得られ、わずかな入力の違いでも出力が大きく変わる性質を持つ。異なる入力が同じハッシュ値になることを「衝突(コリジョン)」と呼ぶ。
はっしゅかんすうとしょうとつ
ハッシュ関数と衝突の意味
任意長のデータを固定長の短い値(ハッシュ値)に変換する関数。同じ入力からは常に同じ出力が得られ、わずかな入力の違いでも出力が大きく変わる性質を持つ。異なる入力が同じハッシュ値になることを「衝突(コリジョン)」と呼ぶ。
ハッシュ関数と衝突の具体例
ハッシュ表(連想配列)ではキーをハッシュ関数で変換した値を添字として使うことで高速な検索を実現するが、異なるキーが同じハッシュ値になる衝突が起きると、チェイン法やオープンアドレス法で対処する。
ハッシュ関数と衝突は試験でどう引っ掛けられる?
ハッシュ化は暗号化ではない。鍵で元に戻せる暗号化と違い、ハッシュ値から元データは復元できない(一方向性)。また入力は無限・出力は固定長なので衝突は原理的に必ず存在する(鳩の巣原理)。「衝突しないハッシュ関数」を選ばせる選択肢は誤りで、求められるのは「衝突を見つけるのが計算量的に困難」であること。
ハッシュ関数と衝突と関連する用語
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。