問題
問31
次のうち、ハッシュ関数の特徴として最も適切なものはどれか。
- 暗号化と復号が可能な方式である
- 入力から固定長の出力を得るが、元のデータには戻せない
- 複数の入力に対して常に同じハッシュ値が出力される
- 長い文字列ほどハッシュ値も長くなる
正解
正解は「イ」です。
解説
選択肢「イ」が正解です。ハッシュ関数とは、任意の長さのデータを固定長の文字列に変換する関数であり、暗号やデータ検証などに使われます。特徴として「一方向性」があり、変換後のハッシュ値から元のデータを逆算して取り出すことはできません。
たとえば、大量のテキストを短い数値に変換して、改ざんがないか確認する用途などで使われます。ハッシュ関数の身近な例としては、パスワードの保存方法があります。ユーザーの入力したパスワードをそのまま保存するのではなく、ハッシュ化して保存することで、仮にデータベースが盗まれても、パスワードが分かりにくくなります。
また、入力がどんなに長くても出力は固定長(たとえば256ビット)になるため、データの要約や照合に非常に適しています。このような性質から、「元に戻せない固定長の出力を得る」という点がハッシュ関数の本質的な特徴です。
- ア(暗号化と復号が可能な方式である):
これは暗号化アルゴリズムの特徴であり、ハッシュ関数とは異なります。ハッシュは「一方向性」で、復号はできません。 - ウ(複数の入力に対して常に同じハッシュ値が出力される):
これは間違いです。異なる入力に対しては、基本的に異なるハッシュ値が出力されます。ただし、理論上「衝突」はあり得ます。 - エ(長い文字列ほどハッシュ値も長くなる):
ハッシュ関数は入力の長さに関係なく、出力は常に同じ長さ(例えば256ビット)になります。
難易度
この問題の難易度は「やや易しい」です。ハッシュ関数の基本的な性質について問う問題であり、ITに不慣れな方でも一方向性や固定長出力といったキーワードを押さえていれば正答可能です。パスワード管理やセキュリティ関連の基本知識に触れていれば理解しやすい内容です。
用語補足
ハッシュ関数:
入力されたデータを一定のルールで変換し、固定長の値(ハッシュ値)を返す関数です。元に戻せない性質があり、データの整合性確認などに使われます。
暗号化:
情報を第三者に分からないように変換する技術で、復号することで元の情報を再現できます。対してハッシュ関数は復号できません。
一方向性:
一度変換したデータを元に戻すことが非常に困難、あるいは不可能である性質です。ハッシュ関数の重要な特徴です。
対策
ハッシュ関数はセキュリティ分野で非常によく登場するため、「暗号化との違い」や「固定長の出力」「一方向性」などの基本的な性質をしっかり理解しておくことが大切です。パスワードの保存や改ざん検出の仕組みなど、具体的な用途をイメージしながら覚えると効果的です。