PBKDF2 | |
---|---|
Dezvoltatori | Securitate RSA [d] |
PBKDF2 (derivat din funcția engleză de derivare a cheilor bazată pe parolă ) este un standard de generare a cheilor bazate pe parolă . Face parte din PKCS #5 v2.0 ( RFC 2898 ). S-a înlocuit PBKDF1, care a limitat lungimea cheii generate la 160 de biți.
PBKDF2 folosește o funcție pseudo-aleatorie pentru a genera chei. Lungimea cheii generate nu este limitată (deși cardinalitatea efectivă a spațiului de taste poate fi limitată de caracteristicile funcției pseudo-aleatorie aplicate). Utilizarea PBKDF2 este recomandată pentru programe și produse noi. O funcție hash criptografică , cifră, HMAC poate fi aleasă ca pseudo-aleatorie .
În Federația Rusă, utilizarea funcției PBKDF2 este reglementată de recomandările de standardizare R 50.1.111-2016 „Protecția prin parolă a informațiilor cheie” [1] , în timp ce se recomandă utilizarea funcției de generare a inserției HMAC bazată pe hashing fără cheie Stribog. funcționează ca o funcție pseudo-aleatorie ( GOST R 34.11 ).
Vedere generală a apelului PBKDF2:
Opțiuni de algoritm:
Progresul calculului:
1. l - numărul de blocuri de lungime hLen din cheie (rotunjire în sus), r - numărul de octeți din ultimul bloc:
2. Pentru fiecare bloc, aplicați funcția F cu parametrii P , S , c și numărul blocului:
F este definită ca o operație XOR ( ) pe primele c iterații ale PRF aplicate lui P și uniunea dintre S și numărul blocului, scris ca un întreg big-endian de 4 octeți .
3. Combinarea blocurilor primite este cheia DK . r octeți sunt preluați din ultimul bloc.
Unul dintre obiectivele creării PBKDF2 a fost acela de a îngreuna parolele cu forță brută. Datorită numeroaselor calcule PRF implicate, viteza de generare a cheilor este scăzută. De exemplu, pentru WPA-PSK cu parametrii [2] .
70 de taste pe secundă au fost obținute pentru Intel Core2 și aproximativ 1 mie pentru Virtex-4 FX60 FPGA [3] . Prin comparație, funcțiile clasice de hashing a parolei LANMAN au o rată a forței brute de aproximativ sute de milioane de opțiuni pe secundă [4] .
Funcții hash | |
---|---|
scop general | |
Criptografic | |
Funcții de generare a cheilor | |
Numărul de verificare ( comparație ) | |
Hashes |
|