ハッシュ関数はデータの整合性の確認に使われるだけでなく、暗号方式としてインターネットにとって、なくてはならない大変重要な技術基盤と言われています。ただし、聞きなれない言葉で良く判らない方は多いでしょう。この記事ではハッシュ関数を誰でも判るように紹介しています。きっと、納得できるでしょう。
ハッシュ関数とは?
ハッシュ関数は関数の一種ですから、何か文字列を入れると計算した結果をだしてくれます。出力値はハッシュ値と呼ばれます。
同じ文字列を入れれば決まった文字列が出てきますが、ハッシュ関数の特徴は、入力に何を入れても同じ長さの文字列が出てくるという点です。
次に、分かりやすいように例で紹介します。
ハッシュ関数の入力と出力値の例
ここでは、ハッシュ関数の出力を16進数として説明することにします。
16進数は、0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,Fで、0から9までの数字(10個)とA〜Fまでの(6個)で作られたものです。
- ハッシュ関数は、同じ文字列を入れれば、何度入れても出力は同じ16進数
- ハッシュ関数は、どんな文字列を入れても出力は、同じ桁数の16進数
入力値 →→→→ 出力値
富士山 →→→→ 26FED6780AB88(13桁)
GOJIRA →→→→ FFD090112AB22(13桁)
7654328 →→→→ DFEBB55887AD3(13桁)
富士山 →→→→ 26FED6780AB88(13桁)
富士山 →→→→ 26FED6780AB88(13桁)
ハッシュ関数は以上のように振る舞います。これで、ハッシュ関数がどんなものか判ったでしょう。では、どんな時にハッシュ関数は使われるのでしょうか?
ハッシュ関数の用途
ハッシュ関数は、データの整合性の確認に使われるだけでなく、暗号方式としてインターネットになくてはならない大変重要な技術基盤と言われています。
具体的には、大きな容量のデータ比較や、データの改ざん有無の確認、データの破損有無の検知、類似データの探索などに使われています。ハッシュ関数は、ブロックチェーン技術というものに使われています。
ブロックチェーン技術とは?

ブロックチェーン技術は、仮想通貨システムを担うものとして有名です。ブロックは、時系列に沿って鎖のようにつながっていて、ブロックのハッシュ値をたどることで繋がりがたどれるようになっています。
ブロックチェーンは、例えば取引台帳に記載された一定量の取引内容を、コンピュータに接続している全員で共有して繋げていく仕組みのことです。
取引台帳には特定の管理者はいませんが、コンピュータに接続している全員で取引台帳を見張るシステムです。これは、パブリックブロックチェーンと言われているものです。
ブロックチェーン技術には、パブリックブロックチェーンの他、プライベートチェーンやコンソーシアムチェーンもあります。
ポイントのまとめ
ハッシュ関数は関数の一種です。何か文字列を入れると内部で計算した結果を出力してくれます。この出力値のことをハッシュ値と呼びます。
ハッシュ関数は、同じ文字列を入れれば、もちろん同じ出力値を出してくれますが、ハッシュ関数の特徴は、どんな文字列を入れても、同じ桁数を出力するということです。
ハッシュ関数の用途は、データの整合性の確認に使われるだけでなく、大きな容量のデータ比較や、データの改ざん有無の確認、データの破損有無の検知、類似データの探索などに使われています。これらは、ブロックチェーン技術というもので使われていて、暗号方式としてインターネットになくてはならない重要な役割を担っています。