ある企業がシステムに保存するユーザーパスワードのセキュリティを向上させようとしている。パスワードが漏洩した場合でも元のパスワードを特定されにくくするため、パスワードを固定長の文字列に変換して保存したいと考えている。また、同じ入力値からは常に同じ変換結果が得られる特性も必要である。この要件を満たす技術として最も適切なものはどれか。
- A. デジタル証明書(Digital Certificate):IDと公開鍵を紐付けて信頼を確立する
- B. 対称暗号化(Symmetric Encryption):共通鍵を使って可逆的に変換・復号する
- C. ハッシュ(Hashing):入力を固定長の一方向変換値に変換し、元の値には戻せない
- D. 非対称暗号化(Asymmetric Encryption):公開鍵と秘密鍵で可逆的に変換・復号する
解答と解説を見る
正解: C
ハッシュ関数は任意の入力を固定長の値(ハッシュ値)に変換する一方向変換であり、ハッシュ値から元の入力を復元することは計算上不可能である。同じ入力からは常に同じハッシュ値が生成される決定論的な性質を持つ。パスワード保存では元のパスワードを保管せずハッシュ値を保管し、ログイン時は入力値のハッシュを比較する。選択肢Bの対称暗号化は可逆であり、鍵が漏洩すれば元のパスワードが復元されてしまうため不適切である。選択肢Dの非対称暗号化も可逆であり、パスワード保存の用途には適さない。選択肢Aのデジタル証明書はIDと公開鍵の紐付けを第三者機関が保証する仕組みであり、パスワードの保護には使用しない。