5.1. PBKDF1
5.1. PBKDF1
PBKDF1 は、MD2 [RFC1319]、MD5 [RFC1321]、または SHA-1 [NIST180] であるべきハッシュ関数を適用して鍵を導出します。導出鍵の長さは、ハッシュ関数出力の長さによって制限されます。これは、MD2 と MD5 では16オクテット、SHA-1 では20オクテットです。PBKDF1 は、PKCS #5 v1.5 [PKCS5_15] の鍵導出プロセスと互換性があります。
PBKDF1 は、生成される鍵が一部のアプリケーションに対して十分に大きくない可能性があるため、既存のアプリケーションとの互換性のためにのみ推奨されます。
PBKDF1 (P, S, c, dkLen)
Options (オプション):
Hash- 基礎となるハッシュ関数
Input (入力):
P- パスワード、オクテット文字列S- ソルト、オクテット文字列c- 反復回数、正の整数dkLen- 導出鍵の意図された長さ (オクテット単位)、正の整数、MD2 または MD5 の場合は最大16、SHA-1 の場合は20
Output (出力):
DK- 導出鍵、dkLen オクテット文字列
Steps (手順):
-
dkLen が MD2 と MD5 で16より大きい場合、または SHA-1 で20より大きい場合、"derived key too long" (導出鍵が長すぎます) を出力して停止します。
-
基礎となるハッシュ関数 Hash を c 回反復して、パスワード P とソルト S の連結に適用し、その後最初の dkLen オクテットを抽出して導出鍵 DK を生成します:
T_1 = Hash (P || S) ,
T_2 = Hash (T_1) ,
...
T_c = Hash (T_{c-1}) ,
DK = T_c<0..dkLen-1> -
導出鍵 DK を出力します。