ハッシュ関数はデータの整合性の確認に使われます。また、インターネットの世界では、暗号方式の重要な技術基盤にもなっています。ただし、聞きなれない言葉で判らない方は多いでしょう。記事ではハッシュ関数をPC初心者にも分かりやすく紹介しています。
ハッシュ関数とは?
ハッシュ関数は関数の一種ですから、何か文字列を入れると計算した結果をだしてくれます。出力値はハッシュ値と呼ばれます。
ハッシュ関数は、同じ文字列を入れれば決まった文字列を出力します。但し、ハッシュ関数は、入力に何を入れても同じ長さの文字列を出力するという特徴があります。
次に、ハッシュ関数を分かりやすくするため、例で紹介します。
ハッシュ関数の入力と出力値の例
ここでは、ハッシュ関数の出力を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進数を出力します。但し、出力値は異なります。
入力値 →→→→ 出力値
富士山 →→→→ 26FED6780AB88(13桁)
GOJIRA →→→→ FFD090112AB22(13桁)
7654328 →→→→ DFEBB55887AD3(13桁)
富士山 →→→→ 26FED6780AB88(13桁)
富士山 →→→→ 26FED6780AB88(13桁)
ハッシュ関数は、このように、①②の性質の通りに振る舞います。これで、ハッシュ関数がどんなものか判ったでしょう。では、どんな時にハッシュ関数は使われるのでしょうか?
ハッシュ関数の用途
ハッシュ関数は、データの整合性の確認に使われます。そして、暗号方式としてインターネットになくてはならない大変重要な技術基盤です。
具体的には、大きな容量のデータ比較や、データの改ざん有無の確認等をしています。また、データの破損有無の検知、類似データの探索などにも使われています。
また、ハッシュ関数は、ブロックチェーン技術とも呼ばれています。
ブロックチェーン技術とは?
ブロックチェーン技術は、仮想通貨システムを担うものとして有名です。ブロックチェーン技術は、取引記録を複数のコンピュータで分散管理しています。そのため、データの改ざんや、流出が難しいと言われています。
ブロックは、時系列に沿って鎖のようにつながっています。そして、ブロックのハッシュ値をたどることで繋がりがたどれるようになっています。
ブロックチェーンの例は、次のように言い換えることもできます。
「取引台帳に記載された一定量の取引内容を、コンピュータに接続している全員で共有して繋げていく仕組みです。」
取引台帳には特定の管理者はいませんが、コンピュータに接続している全員で取引台帳を見張るシステムです。これは、パブリックブロックチェーンと言われているものです。
ブロックチェーン技術には、パブリックブロックチェーンの他、プライベートチェーンやコンソーシアムチェーンなどもあります。
まとめ
ハッシュ関数は、関数の一種です。何か文字列を入れると内部で計算した結果を出力してくれます。この出力値のことをハッシュ値と呼びます。
ハッシュ関数は、同じ文字列を入れれば、同じ出力値を出してくれます。但し、ハッシュ関数には、次のような特徴があります。ハッシュ関数の特徴は、どんな文字列を入れても、同じ桁数を出力します。
ハッシュ関数の用途は、データの整合性の確認に使われます。また、大きな容量のデータ比較や、データの改ざん有無の確認、データの破損有無の検知、類似データの探索などに使われています。これらは、ブロックチェーン技術というものです。ハッシュ関数は、暗号方式としてインターネットになくてはならない重要な役割を担っています。