Aleatoriedad realmente es: lo que el atacante no sabe . Por lo tanto, las claves de cifrado son precisamente una cosa en la que se necesita mucha aleatoriedad.
Hablamos generalmente de entropía en el siguiente modelo:
- La clave se genera con un proceso que involucra cálculos (código) e insumos aleatorios (recopilados de elementos físicos).
- Se supone que el atacante tiene un conocimiento perfecto de los cálculos, pero no de las entradas aleatorias.
- El atacante intentará recuperar las claves probando las claves posibles en orden óptimo, comenzando con la más probable.
Decimos que la clave tiene n bits de entropía si el atacante golpeará la correcta luego, en promedio, 2 n -1 intenta. Tenga en cuenta que una tecla n -bit, donde todos los bits clave son aleatorios de manera uniforme e independiente, logra exactamente n bits de entropía, que es el punto de la notación.
Una consecuencia es que no puede tener más de n bits de entropía en una clave de n bits (por lo tanto, una clave DES puede < em> nunca sea más fuerte que 56 bits de entropía, que es demasiado bajo para la comodidad como lo indica @drJimbob); Pero puedes tener mucho menos. Por ejemplo, si el proceso de generación de claves se trata de obtener un entero aleatorio de 32 bits, luego mezclándolo con SHA-1 y manteniendo los primeros 56 bits de la salida, la entropía no será más de 32 bits (un atacante podría intentarlo todo). posibles valores de 32 bits, que incluyen a cada uno de ellos: esto golpeará la clave correcta con un costo promedio de como máximo 2 31 ).
En general, utiliza sistemas de cifrado simétrico con las teclas n -bit (por ejemplo, n = 128 para AES) y desea obtener el valor de su dinero, es decir, n -bit entropía. Esta es la razón por la que usas claves de 128 bits: para dar espacio a la entropía suficiente para derrotar a todos los atacantes basados en la Tierra. A veces, acepta usar menos entropía porque su fuente para la clave es un dato que no puede crecer arbitrariamente: en particular cuando las claves se derivan de contraseñas . Las contraseñas no logran una alta entropía porque las mentes humanas no son buenas para recordar contraseñas altamente entrópicas (y son extremadamente malas en generar contraseñas aleatorias).
Cuando procesa un elemento de datos a través de una función de derivación de clave determinista, nunca aumenta la entropía, ya que, por definición de nuestro modelo de ataque, el atacante podría ejecutar la misma función de derivación de clave determinista. Sin embargo, podría bajar la entropía, si lo hace sin cuidado. KDF criptográficamente sólido no reduce la entropía por debajo del límite implícito en el tamaño de la clave (una clave de 56 bits nunca puede contener más de 56 bits de entropía).