ハッシュ関数
読み:ハッシュかんすう
外語:hash function

 データよりハッシュ値を得るために使われる関数。日本語で要約関数という。
目次

概要
 認証や検索の効率化等に用いられている。
 例えばログイン処理を考えたとき、パスワードをそのままはデータベースに保持すると、クラッカーに侵入された際にログイン情報が全部漏れてしまうため望ましくない。
 そこで、パスワードはハッシュ値として保持し、ログイン処理のたびハッシュ値を計算して照合する方が安全であるため、そうすることが多い。

特徴

機能
 特に多く使われるのが一方向性ハッシュと呼ばれるものである。
 これは入力した値を処理し、別の値を作り出すことができ、次のような特徴を持つ。
 これらの特徴は、公開鍵の偽造などの判定に使うのに適している。

選択肢
 様々なハッシュ関数が考案され、使われてきた。
 コンピューターの性能が高まると、力業で計算し続けることで、目的のハッシュ値が得られる元のデータ列を計算できてしまう恐れがでてきた。このため、計算が煩雑になるハッシュ関数が作られ、そちらへと移行する運用が続けられている。
 また用途ごとに使い分けもされており、通信の認証によく使われるSHAは高速性を重視した仕様であるが、このためあまりセキュアではないと言うことができ、パスワードのハッシュ化には向いていない。パスワードはBCryptなど、より適したハッシュ関数が使われる傾向にある。

主な実装
 有名なものとして次のようなものがある。派生アルゴリズムは、その親にぶら下げて記載する。

再検索