Pebble Coding

ソフトウェアエンジニアによるIT技術、数学の備忘録

SipHashの特徴

ハッシュ関数の一つにSipHashがあります。
128ビットのキーと任意長のデータを入力として、64ビットまたは128ビットを出力するハッシュ関数です。
SHA1は、攻撃者がX, SHA1(X)を知っている時、SHA1(X)=SHA1(Y)となるYを求めるのが難しいという特徴を持ちます。
SipHashは、攻撃者がX, SipHash(X, key)を知っている時、key, SipHash(Y, key)に関する情報を得るのが難しいという特徴を持ちます。
HMACも同じような特徴を持ちますが、SipHashはそれよりシンプルで高速なアルゴリズムなので、速度が要求される用途でよく使われます。

keyが分かっていない者にとっては擬似乱数、keyが分かっている者にとっては、ハッシュ値という用途に使えます。

SipHashの論文
https://131002.net/siphash/siphash.pdf