本文へスキップ

ハッシュ関数とは?

はっしゅかんすう

ハッシュ関数とは、任意の長さのデータを固定長のハッシュ値(ダイジェスト)に変換する一方向性の関数です。

ハッシュ関数は、入力データを受け取り、固定長の文字列(ハッシュ値、またはダイジェスト)を出力する数学的な関数です。同じ入力からは常に同じハッシュ値が得られ、わずかな入力の違いでも出力が大きく変わる(雪崩効果)という性質を持ちます。

暗号学的ハッシュ関数には以下の重要な性質があります。

  • 一方向性:ハッシュ値から元のデータを復元するのが計算上困難
  • 衝突耐性:同じハッシュ値を持つ異なるデータを見つけることが困難
  • 決定論的:同じ入力からは必ず同じ出力
  • 高速性:計算が効率的に行える

代表的なハッシュ関数にはMD5(現在はセキュリティ用途に非推奨)、SHA-1(同じく非推奨)、SHA-256、SHA-3などがあります。パスワード保管には通常のハッシュ関数ではなく、ブルートフォース攻撃に強いbcrypt、scrypt、Argon2などの専用関数を使うことが推奨されます。

ハッシュ関数はデジタル署名、ファイルの完全性検証、ブロックチェーン、パスワード保管、デジタルフォレンジックなど、IT・セキュリティ分野の広範な場面で活用される基盤技術です。

使い方・例文

ファイルをダウンロードした後、公式サイトが提供するSHA-256ハッシュ値と自分が計算した値を照合することで、ファイルが改ざんされていないか・通信途中でデータが壊れていないかを確認できます。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語