ハッシュ関数
Hash Function
データ(例えばビット表現された長文の文書)を入力すると短い要約データ(例えば128ビット)を出力する関数をいう。ハッシュ関数の出力はハッシュ値と呼ばれる。元の長いデータではなくハッシュ値で文書を検索する、元のデータに配送途中で第三者により改ざんが加えられたか否かを検出する、などの目的に使われる。
具体的応用例として、膨大な動画データをコピーしたとして、コピーが完全に行われたか否かを元データのハッシュ値とコピーしたデータのハッシュ値を比較することで、ハッシュ値が一致すればコピーが成功したと判断できる。改ざん検出の場合は、受け取ったデータのハッシュ値を求め、安全に配送されたハッシュ値と一致しなければ改ざんが行われたと判断できる。
代表的ハッシュ関数にはSHA-2やMD5がある。SHA-2 (Secure Hash Algorithm 2)は、FIPS PUB 180-4(2012年3月発行)で公開され、ハッシュ値は224、256、384、512ビットのいずれかで、日本の電子政府推奨暗号プロジェクトCRYPTRECが推奨している。
MD5 (Message Digest Algorithm 5)はロナルド・リベスト教授が開発し、ハッシュ値は128ビットである。