ハッシュ関数
はっしゅかんすう概念
任意のデータを固定長の値に変換する関数。データ照合・改ざん検出・パスワード保護などに広く使われる。
年表
1953IBMのハンス・ピーター・ルーンが、情報を「バケツ」に振り分けて検索を高速化する社内メモを執筆
概要
どんなに長い・複雑なデータを入力しても、決まった長さの値(ハッシュ値)に変換してしまう関数。同じ入力からは必ず同じハッシュ値が得られるが、逆にハッシュ値から元のデータを復元することはできない。データの照合、改ざん検出、パスワードの保護など、幅広い場面で使われる。
時代背景
1953年、IBMの研究者ハンス・ピーター・ルーンが社内メモの中で、情報を「バケツ」に振り分けて検索を高速化する手法を提案した。例えば電話番号のような数字列を桁のペアに分け、それぞれを足し合わせて一つの数(バケツの番号)を作り、そのバケツの中に元のデータを格納する。探すときは同じ計算をしてバケツ番号を求め、そのバケツの中だけを順に探せばよいので、リスト全体を端から探すより大幅に速くなる。
現在
ルーンのバケツ方式はのちに大きく発展し、今日のハッシュ関数は暗号技術、クラウドストレージ、ゲノム研究、Webセキュリティなど、単純な数値計算を超えた幅広い分野で使われる基盤技術になっている。