ハッシュ値とは

ハッシュ値(hash code)とは、元となるデータに対して、所定の演算処理をすることにより、求められる値をいう。ハッシュ値を求めるために、所定の演算処理を行う関数をハッシュ関数(hash function)と呼ぶ。ハッシュ関数によって求められるハッシュ値は、元のデータ長に関わらず、固定のデータ長となる。

ハッシュ値は、メッセージダイジェスト(message digest)やフィンガープリント(finger print、指紋)と呼ばれることもある。

同一のハッシュ関数を使うと、元となるデータが同一の場合は同一のハッシュ値が得られ、異なるデータからは異なるハッシュ値が得られる。また、ハッシュ値から元のデータを復元することは不可能である。

これらの特性を使い、データを送受信する際、途中でデータが改ざんされていないかを調べることができる。そのためには、送信側で元データとハッシュ値をセットで送信する。受信側では、送信側と同一のハッシュ関数を使い、受信したデータのハッシュ値を求め、受信したハッシュ値と同一であることを確認し、改ざんされていないことを確認する。通信途中でデータが改ざんされた場合、受信側で得られたハッシュ値が、送信されてきたハッシュ値と異なるため、その検知が可能となる。

代表的なハッシュ関数として、SHA-1やSHA-2、MD5などがある。

異なる元データから同一のハッシュ値が得られる(これをハッシュ値の衝突という)可能性があるが、この確率は極めて低いため、実際の運用上では問題ないと考えられている。

セキュリティ用語解説 ハッシュ関数とは

セキュリティ用語辞典一覧ページへ

関連キーワード:

ハッシュ関数

フィンガープリント

メッセージダイジェスト

  • 警告表示からソフトウェアを購入するよう誘導される手口にIPAが注意喚起
  • カテゴリートップへ
  • 2015年1月のIT総括