Passa al contenuto principale

5.1 PBKDF1

5.1 PBKDF1

PBKDF1 applica una funzione hash, che deve essere MD2 [RFC1319], MD5 [RFC1321] o SHA-1 [NIST180], per derivare le chiavi. La lunghezza della chiave derivata è limitata dalla lunghezza dell'output della funzione hash, che è di 16 ottetti per MD2 e MD5 e di 20 ottetti per SHA-1. PBKDF1 è compatibile con il processo di derivazione delle chiavi in PKCS #5 v1.5 [PKCS5_15].

PBKDF1 è raccomandato solo per la compatibilità con le applicazioni esistenti poiché le chiavi che produce potrebbero non essere abbastanza grandi per alcune applicazioni.

PBKDF1 (P, S, c, dkLen)

Opzioni:

  • Hash - funzione hash sottostante

Input:

  • P - password, una stringa di ottetti
  • S - salt, una stringa di ottetti
  • c - conteggio delle iterazioni, un intero positivo
  • dkLen - lunghezza prevista in ottetti della chiave derivata, un intero positivo, al massimo 16 per MD2 o MD5 e 20 per SHA-1

Output:

  • DK - chiave derivata, una stringa di dkLen ottetti

Passaggi:

  1. Se dkLen > 16 per MD2 e MD5, o dkLen > 20 per SHA-1, fornire in output "derived key too long" e fermarsi.

  2. Applicare la funzione hash sottostante Hash per c iterazioni alla concatenazione della password P e del salt S, quindi estrarre i primi dkLen ottetti per produrre una chiave derivata DK:

    T_1 = Hash (P || S) ,
    T_2 = Hash (T_1) ,
    ...
    T_c = Hash (T_{c-1}) ,
    DK = T_c<0..dkLen-1>
  3. Fornire in output la chiave derivata DK.