¿Por qué tenemos llaves tan grandes?

7

En el Capítulo 7 de Criptografía Aplicada , Bruce Schneier afirma que, debido a las limitaciones termodinámicas, los "ataques de fuerza bruta contra las claves [simétricas] de 256 bits no serán factibles hasta que las computadoras se construyan con otra cosa. que la materia y ocupan algo mas que el espacio ". Mirando un pocos otros preguntas , parece que de alguna manera no ha sido posible.

Según esta respuesta , podríamos pierda algunos bits de entropía en un escenario del mundo real, pero creo que esto implicaría que incluso una persona realmente paranoica todavía estaría más que adecuadamente protegida por una clave de 512 bits.

Entonces, ¿por qué veo a menudo que se usan claves que tienen una longitud de 1024 o incluso de 2048 bits? ¿Es para protegerse contra algún otro tipo de ataque? ¿O simplemente somos paranoicos?

    
pregunta KnightOfNi 13.06.2015 - 16:36
fuente

3 respuestas

17

Su cita describe la fuerza de la clave simétrica , pero sus ejemplos de contador (1024, 2048 bits) hacen referencia a las claves utilizadas para la criptografía asimétrica . El número de bits necesarios para la resistencia es diferente entre los dos.

Su cita es de la sección 7.1 de Criptografía aplicada; Si pasa a la sección 7.2, por ejemplo, verá las predicciones de Schneier sobre qué longitudes se requerirán para tener claves asimétricas seguras a lo largo del tiempo:

Impresoen1994,susprediccionesresultaronrazonablementesólidas,exceptoenlamedidaenqueesmásplanaentodoslossegmentos(porejemplo,losindividuosnoaceptanlongitudesdeclavemenores).(Parafinesnohistóricos,debebuscarrecomendacionesmásactualizadas,como NIST según lo resume KeyLength.com )

    
respondido por el gowenfawr 13.06.2015 - 17:03
fuente
7

Hay algunas razones para usar claves más grandes.

Tu cita solo menciona los ataques de fuerza bruta contra simétricas . Si hay una debilidad en el algoritmo, entonces hay ataques más rápidos que la fuerza bruta. Esa es una buena razón para diseñar algoritmos con un margen de seguridad tal que no se rompa tan pronto como alguien encuentre una pequeña debilidad en el algoritmo.

Los algoritmos asimétricos necesariamente tienen mucha más estructura que los algoritmos simétricos. Y esa estructura adicional significa claves más grandes para lograr el mismo nivel de seguridad. En algunos casos, ese tamaño de clave adicional se puede cuantificar con mucha precisión. Por ejemplo, es posible crear un esquema de firma utilizando un hash criptográfico como el único primitivo. El tamaño de clave necesario para que coincida con la seguridad de un hash criptográfico de 256 bits subyacente se puede calcular de manera muy precisa.

En otros casos, la relación entre la fuerza del algoritmo asimétrico y el simétrico se basa en estimaciones calculadas a partir de los mejores ataques conocidos. No puede comparar directamente la seguridad de un cierto tamaño de clave para RSA con una cierta longitud de salida de un hash SHA2. Pero puede calcular cuánta potencia de computación tomaría cada una para romper dado los ataques publicados más eficientes.

Además, hay que tener en cuenta la computación cuántica. Nuestra comprensión actual de la computación cuántica sugiere que para las claves simétricas es necesario duplicar el tamaño de la clave para que se mantengan seguras si la computación cuántica se convierte en una realidad. No sé si se supone que la cifra de 256 bits sea antes o después de esta duplicación.

    
respondido por el kasperd 13.06.2015 - 18:34
fuente
3
Las claves

con una fuerza de 128 bits o más se consideran actualmente imposibles de romper. Sin embargo, eso no significa necesariamente que la clave en sí sea de 128 bits. El tamaño de la clave está relacionado con la fuerza clave, pero ni siquiera tiene que ser lineal con la fuerza clave. Tomemos por ejemplo RSA; Necesita una clave de 15K bit para estar cerca de 256 bit de seguridad. La mejor manera de ver cómo el tamaño y la fuerza de la clave se relacionan entre sí es echar un vistazo a keylength.com ( desplácese hacia abajo hasta la segunda tabla).

Sin embargo, ese es el tamaño de la clave relacionado con la fuerza. Si codifica una clave RSA privada, necesitará al menos dos veces el tamaño de la clave, para módulo y clave privada (a menos que desee generar todo el par de claves desde cero nuevamente, entonces podría hacerlo con un 128 a 256 bits de semilla para un generador de números aleatorios y una gran cantidad de tiempo de CPU). Si incluye los parámetros CRT, la sobrecarga de ASN.1 y la armadura ASCII, la codificación de la clave crece rápidamente. Sin embargo, las claves secretas generalmente se codifican como bytes sin procesar. Por lo tanto, una clave secreta codificada de 128 bits puede tomar solo 16 bytes.

Tenga en cuenta que, a menos que el tamaño de la clave sea claramente insuficiente, otros ataques pueden ser mucho más factibles. Piense en los errores de protocolo, los ataques de canal lateral, los errores de generación clave, y la lista continúa. Creo que aproximadamente el 10% de las preguntas formuladas en StackOverflow muestra una implementación que podría confiar en prácticas criptográficas sanas. Elegir el tamaño de clave correcto es probablemente la parte más fácil de cualquier sistema seguro.

    
respondido por el Maarten Bodewes 13.06.2015 - 17:35
fuente

Lea otras preguntas en las etiquetas