ハッシュ(関数)とは

概要

ハッシュとは、ハッシュ関数と呼ばれる計算式により元データを特定桁数の値に変換すること。
例えば、文字列や画像データなどのファイルをSHA256と呼ばれるハッシュ関数に入力すると、256bitのハッシュ値が出力される。

ハッシュ関数の特徴

  • 入力データにかかわらず必ず決まった桁数のハッシュ値を出力
  • 入力データが異なれば、ハッシュ値は原則異なる。
    理論上は異なる入力データのハッシュ値が一致してしまう可能性はゼロではない(一致してしまうことを衝突という)。ただし現在主流のSHA256で衝突が発生する確率は「2の128乗分の1」であり、普段利用においては実質ゼロと言ってもよい。
  • ハッシュ値から入力データを導き出すことは非常に困難

ハッシュ関数の種類

  • MD5, SHA1, SHA2, SHA3などが存在するが、MD5SHA1脆弱性が見つかっており、現在主流なのはSHA2 (Secure Hash Algorithm 2)。
  • SHA2の中でもSHA256が現在最もよく使われている。
  • 企業や個人が独自にハッシュ関数を作成することもある。

ハッシュ関数の利用用途

  • デジタル署名
    元データ(例 電子メール)のハッシュ値を暗号して、元データの改ざん検知や差出人の検証を行う。
  • データ破損の有無チェック
    ファイルなどのデータを破損せずにダウンロードできているかをダウンロード元とダウンロード後のハッシュ値を比較することにより行う。
  • サーバー/クライアント間のパスワードをハッシュ値でやりとり
    クライアントからサーバーへログインパスワードを登録・ログインする際にパスワードそのものではなくパスワードのハッシュ値をやりとりすることにより、外部へのパスワード漏洩を防ぐことができる。
  • ハッシュテーブル
    複数のデータを格納する際に、それぞれのデータのハッシュ値をインデックスとしたテーブル

ハッシュ関数の利用方法

WindowsOS搭載PCであれば一般的なハッシュ関数の計算ツールは標準搭載されており、またハッシュ関数サービスを提供するWebサイトも存在。

WindowsOSで利用できるハッシュ関数のツール
引用:https://atmarkit.itmedia.co.jp/ait/articles/0507/30/news017.html