2011-05-25 14 views
13

Java şifreleme ve karma dünyasına girme PBEKeySpec sınıfı için iterationCount ve keyLength parametreleri için çeşitli değerlerle kurucunun örneklerini görüyorum. Hiçbir şey bu parametrelerin ne anlama geldiğini veya ne anlama geldiğini açıklayamıyor.PBEKeySpec iterationCount ve keyLength parametreleri neyi etkiler?

keyLength anahtarın ne kadar uzun olduğunu 32 bit şifrelemenin anahtar uzunluğu için 32 değerini alması gerektiğini varsayıyorum, ancak bu varsayım yanlış görünüyor. iterationCount için tahminim, her bir karakterin şifrelenme sayısıdır, yine bu varsayımdaki aşkı hissetmemek de.

Bilgi linkleri veya açıklaması için teşekkür ederiz.

cevap

22

Yineleme sayısı, simetrik anahtarın türetilmesi sırasında parola karışma sayısıdır. Daha yüksek sayı, anahtarı zorlamak için daha zor. Gökkuşağı masalarını kullanarak saldırılara karşı korunmak için kullanılan tuz ile birlikte kullanılır.

Anahtar uzunluğu, türetilmiş simetrik anahtarın uzunluğudur. Bir DESede anahtarı, 128 veya 192 bit uzunluğunda olabilir (parite bitleri dahil). Bir AES anahtarı, 128, 192 veya 256 bit uzunluğunda olabilir. Sorun, anahtar tarafından ifade edilen API tarafından belirtilmemesidir (normalde bittir ve Java API'sı içinde eşlik bilgisi içerir).

Anahtar türetme işlevi normalde yalnızca "yeterli" rastgele bit çıkarır, bu nedenle gerekli anahtar boyutunu hala belirtebilirsiniz. Not: PBEKeySpec'in normal olarak kullanıldığı PBKDF2 işlevi için, in the standard belirtimlerine bakın, PKCS standartları okunması nispeten kolay olma eğilimindedir.

+0

rsa.com adresinin bağlantısının kesildiğini unutmayın; "standart", PKCS # 5 v2.0, AKA [RFC 2898] (https://tools.ietf.org/html/rfc2898) 'dir. – jbyler

+0

@jbyler Cevapları düzenlemek için çekinmeyin, yeni referansta düzenledim. –

+0

Ah, bahşiş için @owlstead teşekkürler. Bir dahaki sefere yapacağım. – jbyler

İlgili konular