¿Cuál es la diferencia entre “longitud de la clave” y “fuerza de bits”?

21

En ocasiones, escucho los términos "longitud de clave" y "fuerza de bits" usados de manera intercambiable. ¿Son estas las mismas cosas? ¿O son diferentes?

    
pregunta Mike B 21.10.2014 - 17:26
fuente

3 respuestas

22

Usaré bit length para el tamaño de algo, como una clave.

Usaré bit strength como el logaritmo base 2 del costo de un ataque. es decir, cuesta alrededor de 2 ^ n operaciones básicas para romper algo.

Un ataque de fuerza bruta contra una clave de bit n que simplemente trata de adivinar los costos de la clave 2 ^ (n-1) a la función de cifrado en promedio, lo que conduzca a esta convención de expresar la fuerza de un algoritmo en bits.

Por lo tanto, podría entender "n bit Strength" como "Romper esto cuesta aproximadamente tanto como romper un algoritmo de cifrado simétrico con una tecla de bit n ".

Pero difieren en otros casos. Algunos ejemplos:

  • Una clave RSA con una longitud de 2048 bits solo tiene una potencia de aproximadamente 112 bits.
  • Un hash con una longitud de 128 bits solo puede tener 64 bits de resistencia a la colisión.
  • 3DES toma una clave de 168 bits, pero solo ofrece 112 bits de seguridad, debido a un ataque en el medio.
respondido por el CodesInChaos 21.10.2014 - 17:43
fuente
8

Son bastante similares pero son ligeramente diferentes. La longitud de la clave es simplemente la longitud, en bits, de la clave utilizada para las operaciones criptográficas. Si la clave se elige aleatoriamente y el algoritmo no tiene ninguna vulnerabilidad, entonces la fuerza de bits es exactamente la misma que la longitud de la clave.

La fuerza de la broca es una medida de cuán resistente es algo a adivinar (la cantidad de entropía). También se puede aplicar a cosas como contraseñas (que técnicamente son una clave porque desbloquean información, pero son muy diferentes de algo así como una clave de cifrado correctamente formada utilizada para el cifrado de flujo).

Muchas cosas pueden reducir la fuerza de bits real de una tecla. Los problemas en el generador de números aleatorios o los ataques de criptoanálisis en un sistema de encriptación pueden reducir la cantidad de conjeturas que tiene que hacer para atacar el sistema, reduciendo así la fuerza de bits o la fuerza de la clave por debajo del número de bits que realmente se utilizan en la clave.

Digamos, por ejemplo, que tenía una clave de 64 bits de longitud. La longitud de la clave es de 64 bits porque es la longitud de la clave utilizada en una secuencia para codificarla. Sin embargo, digamos que nos damos cuenta de que el primer byte de la cadena es siempre el mismo que el primer byte de la clave, esto significaría que podríamos eliminar muchas conjeturas por tratar de adivinar la clave. Aunque el cifrado funciona con 64 bits de clave, solo necesitamos adivinar 56 bits de la clave porque sabemos 8 de ellos, por lo tanto, la fuerza de bits es de solo 56 bits.

De manera similar, si tomamos el ejemplo de una contraseña, una contraseña puede tener 8 caracteres de longitud y, por lo tanto, tardamos 8 bytes (64 bits) para almacenar, pero si la contraseña solo puede ser números y letras mayúsculas y minúsculas, entonces muchos no se pueden usar los valores, por lo que la intensidad de bits es mucho menor que si la contraseña fuera bits completamente aleatorios en lugar de un conjunto limitado de caracteres.

    
respondido por el AJ Henderson 21.10.2014 - 17:41
fuente
6

Cuando la fuerza de bits es k , esto significa: "el algoritmo se mantiene firme contra los atacantes que no pueden calcular al menos 2 k-1 operaciones elementales ".

Cuando longitud de bit es k , esto significa: "la clave, o al menos el componente principal de la clave, se puede representar como una secuencia de k bits ".

La búsqueda exhaustiva consiste en probar todas las claves posibles hasta que una funcione. Este es el menos sutil de todos los ataques. En promedio, si la longitud del bit es k , entonces se necesitan 2 k-1 para encontrar la clave real. Por lo tanto, la longitud y la fuerza de bits son iguales cuando el algoritmo es la búsqueda, y la búsqueda exhaustiva, aunque es el más estúpido de los ataques, también es el mejor posible (o al menos el más conocido).

La búsqueda exhaustiva es el mejor ataque posible, es la situación normal para los algoritmos "simétricos" (cifrado simétrico como AES, algoritmo MAC como HMAC ...). AES-128 usa una clave de 128 bits y se espera que ofrezca una potencia de 128 bits. Por otro lado, para algoritmos asimétricos como RSA o ECDSA, las claves no son simples secuencias de bits; tienen mucha estructura matemática, y esa estructura puede ser explotada para romperlos más rápido. Por ejemplo, el componente principal de una clave púbica RSA es un gran número denominado módulo , y factorizar el módulo en sus factores primos es suficiente para recuperar la clave privada. La factorización de enteros se puede hacer de manera mucho más eficiente que simplemente enumerar posibles claves privadas!

RSA es un buen ejemplo. Una clave "RSA-2048" es una clave RSA tal que el módulo es un número entre 2 2047 y 2 2048 . El módulo, cuando se codifica en binario, toma 2048 bits, es la longitud de bit de la clave. Factorizar el módulo con los mejores algoritmos conocidos tomaría alrededor de 2 100 o tan simples operaciones, por lo que la fuerza de bits es de alrededor de 100 bits. Codificar la clave pública completa en bits necesitaría almacenar no solo el módulo sino también el exponente público, por lo que necesitará un poco más de 2048 bits (no mucho más, porque el exponente público es un número entero corto) ).

La conversión de las longitudes de bits en fortalezas de bits para algoritmos asimétricos requiere cuidar muchos detalles sutiles y hacer predicciones sobre la tecnología futura, y algunas veces requiere una adivinación total. Consulte este sitio para obtener una gran cantidad de datos sobre este tema. Formalmente, desde el punto de vista del NIST, una clave RSA de 2048 bits es "tan buena como" un algoritmo simétrico con una potencia de 112 bits (que es, por cierto, lo que se atribuye a 3DES).

    
respondido por el Tom Leek 21.10.2014 - 18:16
fuente

Lea otras preguntas en las etiquetas