差分

移動先: 案内検索

システムにおけるパスワード管理の概要

175 バイト追加, 2015年7月27日 (月) 19:05
/* 一方向性ハッシュ関数を導入する */
一方向性ハッシュ関数とは、値xに対しハッシュ関数Hを用いて計算した値H(x)から、逆をたどってxを見つけることは極めて困難であるという性質を持つ関数です。一方向性ハッシュ関数にはSHA256、SHA512といったものだけではなく、暗号化関数を使ったメッセージ認証コードなども同様に使えます。たとえば古典的UNIXのパスワード生成にはDES暗号を使っているDES-CBC-MAC
<ref>
D. Wagner and I. Goldberg. ,''Proofs of security for the UNIX passwordhashing passwordhashing algorithm. '',Advances in Cryptology – ASIACRYPT ’00, Lecture Notesin Computer Science Vol. 1976, T. Okamoto ed., Springer-Verlag, 2000.
http://www.cs.berkeley.edu/~daw/papers/crypt3-asia00.ps
</ref>
よく「パスワードを暗号化」するという表現を使うので、暗号化するなら、復号もできるだろうと類推してしまいそうになりますが、これは一方向にしか計算できません。
パスワードを入力し、それを一方向性ハッシュ関数で計算した値を、事前に登録しておいた一方向性ハッシュ関数で計算した値と比較します。たとえばWindowsXPなどで使っていたLMハッシュ(LAN Manager hash)<ref>''Network security: Do not store LAN Manager hash value on next password change'',November 15, 2012,https://technet.microsoft.com/en-us/library/jj852276</ref>は、この方式です。