2011-05-25 7 views
13

Profundizando en el mundo de cifrado y hashing de Java veo ejemplos del constructor para la clase PBEKeySpec con varios valores para los parámetros iterationCount y keyLength. Nada parece explicar lo que estos parámetros impactan o significan.PBEKeySpec ¿En qué influyen los parámetros iterationCount y keyLength?

Supongo que keyLength es la longitud de la clave así que el cifrado de 32 bits tomaría un valor de 32 para la longitud de la clave, pero esa suposición parece incorrecta. Mi conjetura para el iterationCount es el número de veces que cada carácter está encriptado, una vez más sin sentir el amor en esa suposición tampoco.

Se agradecen los enlaces a la información o una explicación.

Respuesta

22

El recuento de iteración es el número de veces que se contrasta la contraseña durante la derivación de la clave simétrica. Cuanto mayor es el número, más difícil es forzar la fuerza bruta. Se usa junto con la sal que se usa para prevenir ataques contra el uso de tablas arcoiris.

La longitud de la clave es la longitud de la clave simétrica derivada. Una tecla DESede puede tener una longitud de 128 o 192 bits (incluidos los bits de paridad). Una clave AES puede tener 128, 192 o 256 bits de longitud. El problema es que la API no especifica qué longitud de clave es (normalmente son bits e incluye información de paridad dentro de la API de Java).

La función de derivación de tecla normalmente solo emite "al azar" bits al azar, por lo que es posible especificar el tamaño de clave requerido.

Nota: para la función PBKDF2 para la que se utiliza PBEKeySpec normalmente, consulte los detalles in the standard, los estándares PKCS tienden a ser relativamente fáciles de leer.

+0

Tenga en cuenta que el enlace a rsa.com está roto ahora; "el estándar" al que se hace referencia es PKCS # 5 v2.0, AKA [RFC 2898] (https://tools.ietf.org/html/rfc2898). – jbyler

+0

@jbyler Siéntase libre de editar las respuestas, he editado en la nueva referencia. –

+0

Ah, gracias @owlstead por la propina. Lo haré la próxima vez. – jbyler

Cuestiones relacionadas