NW-K37|情報Ⅰ 対策問題
データから固定長の値(ハッシュ値)を計算し、改ざん検出などに使う一方向の変換を行う関数を何というか。
解答・解説を見る
正解: 1
正答
1
この問題のポイント
ハッシュ関数(一方向の要約計算) を問う問題です。3つの性質と、暗号化との違いを押さえましょう。
解説
ハッシュ関数は、どんな大きさのデータからでも、**固定長の値(ハッシュ値)**を計算する関数です。データの「指紋」を取るようなもので、次の3つの性質があります。
- 同じデータからは、いつ計算しても必ず同じハッシュ値が得られる。
- データが1文字でも変わると、ハッシュ値は大きく変わる。
- ハッシュ値から元のデータを復元することはできない(一方向性)。
この性質の代表的な使い道が改ざん検出です。送信前と受信後のハッシュ値を比べ、一致すれば途中で書き換えられていないと確認できます(性質1と2)。また、Webサービスはパスワードそのものではなくハッシュ値を保存します。こうすれば、万一データが流出しても元のパスワードは分かりません(性質3)。デジタル署名でも、文書のハッシュ値に署名する形で使われています。
注意したいのは暗号化との違いです。暗号化は「鍵で戻せる」ことが前提の双方向の変換、ハッシュは「誰にも戻せない」一方向の変換です。「復号できるか否か」がこの2つを見分ける決め手で、共通テストでもこの違いを突いた選択肢が作られます。
選択肢の確認
1.○ 固定長のハッシュ値を計算し、一方向で改ざん検出などに使うのはハッシュ関数。
2.× 三角関数は角度から値を求める数学の関数で、情報セキュリティとは無関係。
3.× 一次関数も数学の関数で、ハッシュ値の計算とは無関係。
4.× 乱数関数はでたらめな数を生成するもの。同じ入力から同じ値が出るハッシュとは逆の性質。
ここだけは覚えよう
ハッシュ=固定長・一方向・1文字違えば大違い — 改ざん検出とパスワード保存の基盤。暗号化と違い元に戻せない。