Tasarımcı (lar) | RSA Laboratuvarları |
---|---|
İlk yayın | 2000 |
Elde edilen | PBKDF1 |
Bu algoritmaya dayalı şifreleme (ler) | Hayır |
Blok boyutları | İlişkili kriptografik işleve bağlıdır |
---|---|
Anahtar uzunlukları | Kullanıcı seçimi |
Yapısı | Bilinmeyen |
Dönüş sayısı | Kullanıcı seçimi |
Daha iyi kriptanaliz
bilinen kriptanaliz yok
PBKDF2 (kısaca Şifre Tabanlı Anahtar Derivasyon Fonksiyonu 2 ) bir olduğunu anahtar türetme işlevi standartları ailesine mensup, PKCS , özellikle PKCS # 5 v2.0 . Bu standart aynı zamanda RFC 2898'de yayınlandı . Yalnızca 160 bitlik anahtarlar üretebilen PBKDF1'in yerini aldı .
Bu standart artık parola hashing ( SHA-256 gibi işlevlerle ilişkili ) veya veri şifreleme anahtarı üretimi için kullanılmaktadır.
PBKDF2 kullanıcı (hızlı arama fonksiyonu, şifreleme veya bir tarafından seçilen bir fonksiyonu uygular HMAC bir şifre ya da) parolası bir ile tuz ve daha sonra kullanılabilir bir anahtar oluşturmak için bu işlem birçok defa tekrarlanır. Herhangi bir içerik şifrelemek için.
Bu nesil, özellikle kaba kuvvetle şifrenin kırılmasını zorlaştıran hesaplama süresi ekler . Standart 2000 yılında piyasaya sürüldüğünde önerilen yineleme sayısı 1000 idi . İşlemciler geliştikçe ve daha iyi performans gösterdikçe bu ayarın artırılması bekleniyor . Eklenen tuz, gökkuşağı tablolarının kullanılmasını önlemeyi mümkün kılar ve bu nedenle birkaç eşzamanlı parolaya yönelik saldırıları sınırlandırır.
İşlevin beş giriş parametresi vardır:
DK = PBKDF2(PRF, Password, Salt, c, dkLen)DK sonucu türetilmiş anahtarımızdır.
Önce hLen, fonksiyonun çıktısının bit cinsinden boyutuna karşılık gelen boyutunu alıyoruz PRF. Daha sonra her bir blok Tibir hLenanahtarın bitlerinden DKhesaplanır:
DK = T1 || T2 || ... || Tdklen/hlen Ti = F(Password, Salt, c, i)Fonksiyonu Fkombinasyonu cfonksiyonunun yineleme PRFile XORs . İlk yineleme parolayı ve Saltyineleme sayısıyla birleştirilmiş tuzu kullanır i. Daha sonra işlev PRF, anahtar olarak orijinal parolayı ve önceki yinelemenin sonucunu tuz olarak alır. Aşağıdaki diyagramı elde ediyoruz:
F(Password, Salt, c, i) = U1 ^ U2 ^ ... ^ Uc U1 = PRF(Password, Salt || INT_32_BE(i)) U2 = PRF(Password, U1) ... Uc = PRF(Password, Uc-1)Örneğin, WPA2 şunları kullanır:
DK = PBKDF2(HMAC−SHA1, passphrase, ssid, 4096, 256)
Birkaç uygulama, uçtan uca şifreleme anahtarını türetmek için bu işlevi kullanır ve kullanıcıya Bitwarden veya Standard Notes gibi cihazlar arasında bir veri senkronizasyonu sağlar .