ハッシュ関数とは?
はっしゅかんすう
ハッシュ関数とは、任意の長さのデータを固定長のハッシュ値(ダイジェスト)に変換する一方向性の関数です。
ハッシュ関数は、入力データを受け取り、固定長の文字列(ハッシュ値、またはダイジェスト)を出力する数学的な関数です。同じ入力からは常に同じハッシュ値が得られ、わずかな入力の違いでも出力が大きく変わる(雪崩効果)という性質を持ちます。
暗号学的ハッシュ関数には以下の重要な性質があります。
- 一方向性:ハッシュ値から元のデータを復元するのが計算上困難
- 衝突耐性:同じハッシュ値を持つ異なるデータを見つけることが困難
- 決定論的:同じ入力からは必ず同じ出力
- 高速性:計算が効率的に行える
代表的なハッシュ関数にはMD5(現在はセキュリティ用途に非推奨)、SHA-1(同じく非推奨)、SHA-256、SHA-3などがあります。パスワード保管には通常のハッシュ関数ではなく、ブルートフォース攻撃に強いbcrypt、scrypt、Argon2などの専用関数を使うことが推奨されます。
ハッシュ関数はデジタル署名、ファイルの完全性検証、ブロックチェーン、パスワード保管、デジタルフォレンジックなど、IT・セキュリティ分野の広範な場面で活用される基盤技術です。
使い方・例文
ファイルをダウンロードした後、公式サイトが提供するSHA-256ハッシュ値と自分が計算した値を照合することで、ファイルが改ざんされていないか・通信途中でデータが壊れていないかを確認できます。
この用語をシェア
最終更新: