検索
連載

ハッシュ関数とは

ハッシュ関数とは、任意長のビット列から規則性のない固定長のビット列を生成する関数、手順のことをいう。

Share
Tweet
LINE
Hatena

 ハッシュ関数とは、任意長のビット列から規則性のない固定長のビット列を生成する関数、手順のことをいう。一般に、ハッシュ関数への入力データは「メッセージ」、ハッシュ関数からの出力データは「ハッシュ値」「メッセージダイジェスト」「フィンガープリント」などと呼ばれる。ハッシュ関数は一方向関数であるため、出力データから入力データを推定することは極めて難しい。

 理想的なハッシュ関数は、「ハッシュ値から元のメッセージを推定することが非常に困難」「メッセージからハッシュ値を高速に計算可能」「あるメッセージから生成されたハッシュ値が与えられたとき、そのハッシュ値を持つ別のメッセージを見つけることが非常に困難(弱衝突耐性)」「同じハッシュ値が得られる、異なる2つのメッセージを見つけることが非常に困難(強衝突耐性)」という性質を備えている必要がある。

 ある特定のハッシュ関数を使用した場合、同じメッセージからは常に同じハッシュ値が生成されるが、メッセージが1ビットでも変化すると、ハッシュ値は全く異なる値になる。そのためハッシュ関数は、ディスク内のファイルや通信回線を流れるパケットの破損検出、改ざん検出など、メッセージの正真性(完全性)の検査で利用されている。例えば、通信回線を通じてデータを送受信する際に、送信側と受信側でデータのハッシュ値を求めて両者を比較すれば、データの改ざんを検出できる。

 また、パスワードをディスク上に保管する際に、平文のままではなくパスワードのハッシュ値を格納し、入力値のハッシュ値と比較することで認証を行う方法がよく用いられている。これは、悪意のある第三者にパスワードのハッシュ値が漏えいしてもパスワードを逆算されないためである。

関連用語

MD5

■更新履歴

【2004/1/1】初版公開。

【2017/12/18】最新情報に合わせて内容を書き直しました(セキュリティ・キャンプ実施協議会 著)。


Copyright © ITmedia, Inc. All Rights Reserved.

Security & Trust 記事ランキング

  1. 「SMSは認証に使わないで」 米CISA、モバイル通信を保護する8つのベストプラクティスを公開
  2. 終わらせましょう。複雑過ぎるKubernetes/クラウドネイティブが生む心理的安全性の低下を――無料でクラウドセキュリティの勘所が分かる130ページの電子書籍
  3. 3割程度のSaaS事業者が標準的なセキュリティ対策をしていない アシュアードがSaaS事業者を調査
  4. 「生成AIのサイバー攻撃への悪用」は増加する? 徳丸浩氏が予測する2025年のセキュリティ
  5. 「このままゼロトラストへ進んでいいの?」と迷う企業やこれから入門する企業も必見、ゼロトラストの本質、始め方/進め方が分かる無料の電子書籍
  6. 高度なAIでAIをテスト OpenAIが実践するAIモデルのレッドチーム演習とは
  7. AWS、組織のセキュリティインシデント対応を支援する「AWS Security Incident Response」を発表 アラートに圧倒されるセキュリティチームをどう支援?
  8. Google、オープンソースのセキュリティパッチ検証ツール「Vanir」を公開 多種多様なAndroidデバイスの脆弱性対応を支援するアプローチとは
  9. 「PC操作が不能になる手口」が増加中 IPAが推奨される対処法を紹介
  10. 徳丸氏がクラウド事故から考える、バックアップ、コンテナ、マイクロセグメンテーションを用いた本質的な「レジリエンス」とは
ページトップに戻る