本文へ移動

基本情報技術者試験

はっしゅかんすう

ハッシュ関数

Hash Function

どんな長さのデータからも決まった長さの値を作り、元に戻せない計算です。

詳しい説明

1. 定義

ハッシュ関数とは、どんな長さのデータからも決まった長さの値を作り出し、その値から元のデータには戻せない計算のことです。作られた値をハッシュ値、またはメッセージダイジェストと呼びます。

2. 仕組みと内訳

この計算には、次の3つの性質が求められます。

  • 決まった長さになる: 元が1文字でも1ギガバイトでも、出てくる値の長さは同じです
  • 戻せない: ハッシュ値から元のデータを求めることが、現実的な時間ではできません
  • 同じ値になりにくい: 違うデータから同じハッシュ値が出ることを見つけるのが、現実的な時間ではできません

さらに、元のデータが少しでも変われば、ハッシュ値は大きく変わります。この性質があるので、値を比べるだけで書き換えの有無が分かります。

代表的なものに SHA-256 があります。使いどころは主に3つです。

  • 改ざんの検出: 配布したファイルのハッシュ値を公開し、受け取った側が確かめます
  • デジタル署名: データそのものでなくハッシュ値に署名します
  • パスワードの保管: 元に戻せない形で保管し、照合のときは入力値のハッシュ値と比べます

試験で問われること

基本情報技術者試験

  • 3つの性質(固定長・戻せない・同じ値になりにくい)を説明できる
  • 暗号化との違い(復号できるか)を説明できる
  • デジタル署名やパスワードの保管で使われる理由を理解する
  • 暗号技術を扱う設問で、暗号化との違いが問われます。暗号化は戻せる、ハッシュは戻せないという点が見分けどころです。

最終更新日: 2026/09/23