De la contraseña a la clave

4

¿Puede explicar este pasaje de Wikipedia ?

  

Cuando se usa una contraseña (o frase de contraseña) como clave de cifrado, los sistemas de cifrado bien diseñados primero la ejecutan a través de una función de derivación de clave que agrega sal y la comprime o la expande a la longitud de clave deseada, por ejemplo, comprimiendo un largo frase en un valor de 128 bits adecuado para usar en un cifrado de bloque.

Una contraseña más larga es más segura (en términos de ataque de fuerza bruta) que una corta, ¿no?

Si la contraseña es "pasar", ¿cuál es la clave resultante?

    
pregunta Surfer on the fall 21.08.2012 - 10:43
fuente

2 respuestas

8

Las claves criptográficas suelen ser valores de longitud fija. Desafortunadamente, los humanos no pueden recordar largas cadenas de números, por lo que usamos contraseñas en su lugar.

Por ejemplo, esta podría ser su clave de 256 bits:

d4f6d068b4e8c4e924ce9b28585a6009672e56d61215e7d9251b5d36283edd5d

No es tan fácil de recordar, ¿verdad?

Sin embargo, lo anterior se generó mediante el cálculo de un hash criptográfico (en este caso SHA256 ) de la palabra "waffles", que es mucho más fácil de recordar. Una función hash toma una entrada de longitud arbitraria y calcula una salida de longitud fija.

En realidad, necesitamos que las funciones de derivación de claves (KDF) tengan propiedades especiales. Una propiedad deseable es que no debería ser computacionalmente computable m from h , donde h = KDF(m) , es decir, es difícil calcular la entrada de la función si solo conoce la salida. Otra propiedad deseable es que la función es computacionalmente costosa (lenta) lo suficiente para hacer que la computación de millones de claves no sea factible, sin degradar el rendimiento para usos legítimos. Como tal, los esquemas KDF especiales como PBKDF2 y bcrypt se usa generalmente para calcular estas claves criptográficas a partir de contraseñas fáciles de recordar.

La única forma práctica de romper una clave generada por una función ideal de derivación de clave fuerte es adivinar las contraseñas probables. Si su contraseña es "contraseña", es probable que se rompa. Si la contraseña es una cadena de 20 letras y números aleatorios, es mucho menos probable que se adivine.

Para responder a la pregunta que hace al final:

  

Si la contraseña es "pasar", ¿cuál es la clave resultante?

Esto no es realmente una pregunta que tenga mucho sentido. El resultado podría ser cualquier cosa. Hay muchas funciones hash diferentes (MD5, SHA1, SHA256, SHA512, Whirlpool, RIPEMD160, etc.) y muchas funciones diferentes de derivación de claves (PBKDF2, bcrypt, scrypt), que pueden usar sales o HMAC . ¡Las posibilidades son infinitas!

    
respondido por el Polynomial 21.08.2012 - 10:58
fuente
5

Lo que dice el pasaje es que el sistema de cifrado deriva la clave de una contraseña.

Por ejemplo, AES-256 usa una clave de 256 bits. Un sistema (muy) simple podría realizar un hash SHA256 en su contraseña al usar la salida resultante de 256 bits como la clave para el cifrado.

Se aplican todas las advertencias habituales relacionadas con las contraseñas: use los algoritmos bcrypt o pbkdf2, use un salt, etc. Puede encontrar más información sobre el hashing de contraseñas adecuado en las muchas preguntas que ya se han hecho en el sitio. Es posible que desee buscar en o

  

Una contraseña más larga es más segura (en términos de ataque de fuerza bruta) que una corta, ¿no?

Sí, una contraseña más larga (y más aleatoria) tiene más entropía y, por lo tanto, es más segura.

  

Si la contraseña es "pasar", ¿cuál es la clave resultante?

Esto realmente depende del algoritmo de hash que estés usando.

    
respondido por el Ayrx 21.08.2012 - 10:47
fuente

Lea otras preguntas en las etiquetas