¿Hay alguna necesidad de PBKDF2 con AES cuando se utiliza un espacio de claves uniforme?

2

Estoy viendo un código que encripta los datos en una base de datos usando AES. Antes de hacerlo, la clave de cifrado se pasa a través de una función PBKDF2. Al leer esto, parece que es cuando se puede adivinar el espacio clave, es decir, como la contraseña de alguien que podría usar palabras de un diccionario de inglés. Sin embargo, la clave de cifrado es puramente aleatoria, algo así como:

M39UrEEveje3J#PB=jPG9+&eUSTJG*SAK&s_xHLRu$?Hrbg&7Vn5X^P298$W2z2#r6_!yfGQMQ@ArXjgefq-?9^b?y786ZL5cYcqE6#!c4@rE$scZxR$$e6cYPX$U-m7

En un espacio clave predecible, desea que haya una mayor carga de trabajo para forzar el cifrado de forma bruta. Por lo tanto, hashear la contraseña a través de tantas rondas de PBKDF2. Si el espacio clave es completamente uniforme y no predecible, ¿no es esto solo una pérdida de ciclos de CPU? ¿Es una buena práctica hacer de todos modos?

    
pregunta Matt Molnar 10.08.2018 - 20:41
fuente

1 respuesta

5

Si tiene un valor aleatorio secreto de 128 bits (o 192 o 256 bits para AES-192 o AES-256), entonces sí, puede usarlo como una clave AES sin ejecutarla a través de una función de derivación de claves.

Sin embargo, el ejemplo que proporcionó no contiene bytes al azar, contiene (al parecer) caracteres aleatorios de un cierto espacio de caracteres con al menos 56 caracteres y probablemente no más de 100. Un byte verdaderamente aleatorio tendrá uno de 256 valores con igual probabilidad, mientras que un byte en este secreto tiene uno de 56-100 valores (ish) con (con suerte) igual probabilidad.

Tampoco es de 128, 192 o 256 bits. En realidad son 128 bytes , lo que me sugiere que alguien pudo haber entendido mal el tamaño de la clave que necesitaban y lo generó incorrectamente.

Si intenta usar el secreto directamente como clave, es probable que ocurra una de estas tres cosas:

  • El software ya realiza su propia derivación de clave (no necesariamente una derivación de clave lenta como PBKDF2, sino algún tipo de derivación de clave). Dado que la clave (con suerte) contiene significativamente más de 128 bits de entropía, está bien.
  • El software le advertirá que la clave no tiene la longitud correcta y falla.
  • El software truncará su clave a la longitud correcta y la usará. Esto puede ser muy malo en algunos casos, pero lamentablemente sucede.
respondido por el AndrolGenhald 10.08.2018 - 21:08
fuente

Lea otras preguntas en las etiquetas