ポータルTOP > 情報セキュリティマネジメント試験 科目A キーワード集 > ハッシュ関数
概要
ハッシュ関数とは、任意の長さのデータを入力すると、常に決まった長さ(固定長)の値「ハッシュ値(メッセージダイジェスト)」を出力する関数です。同じ入力からは必ず同じハッシュ値が得られますが、出力から元のデータを復元することはできません。
この性質を使って、データの改ざん検知やパスワードの安全な保存に広く使われます。代表的なアルゴリズムにSHA-256などがあります(古いMD5やSHA-1は安全性が低下し非推奨)。
詳細(特徴・性質)
ハッシュ関数:一方向でダイジェストを生成
- 1入力データ:どんな長さのデータでも入力できる
- 2ハッシュ関数:SHA-256等で変換(元に戻せない)
- 3ダイジェスト:常に同じ長さの値になる
| 性質 | 内容 |
| 固定長出力 | 入力の長さに関係なく、ハッシュ値は常に同じ長さ。 |
| 一方向性 | ハッシュ値から元のデータを求めることはできない(不可逆)。 |
| 衝突困難性 | 異なるデータから同じハッシュ値が得られにくい。 |
| 敏感性 | 入力が1文字でも変わると、ハッシュ値は大きく変化する。 |
「一方向性」があるため暗号化とは異なり復号できない点が重要です。暗号化(戻せる)とハッシュ化(戻せない)を混同しないようにしましょう。
ハッシュ関数のキーワードは「
固定長・一方向(復号できない)・衝突困難・改ざん検知」。暗号化と違い
元に戻せない点が頻出。
ディジタル署名でも内部的に使われます。
用途と注意点
主な用途
- 改ざん検知:ファイルのハッシュ値を比べ、一致すれば改ざんなしと判断する。
- パスワード保存:パスワードそのものではなくハッシュ値を保存し、漏えい時の被害を抑える。
- ディジタル署名での文書の要約。
注意点
- パスワード保存ではソルト(ランダムな付加値)を加え、辞書攻撃やレインボーテーブル攻撃に備える。
- 安全性が低下したMD5・SHA-1は避け、SHA-256などを使う。
関連・活用例
ソフトウェアの配布では、正しくダウンロードできたか・改ざんされていないかを確認するため、配布元がハッシュ値を公開しています。利用者は手元のファイルのハッシュ値と照合することで真正性を確認できます。ディジタル署名やブロックチェーンの基盤技術でもあります。
試験での問われ方
- 「任意長のデータから固定長の値を生成し、元に戻せない関数はどれか」→ ハッシュ関数。
- 「ハッシュ関数の性質として適切なものはどれか」→ 一方向性・衝突困難性。
- 「ファイルの改ざん検知に使う技術はどれか」→ ハッシュ値の比較。