¿Por qué no usar claves de cifrado más grandes?

196

RSA Security generalmente usa claves de tamaños de 1024 bits, 2048 bits o incluso 3072 bits. Y la mayoría de los algoritmos simétricos solo entre 112 y 256 bits. Me doy cuenta de que las claves actuales son lo suficientemente seguras para el hardware actual, pero a medida que las computadoras se vuelven más rápidas, no deberíamos considerar un tamaño de clave increíblemente grande como un millón ¿Bits o algo así para protegernos contra sistemas súper informáticos que aún no se han inventado?

En otras palabras, ¿cuáles son las consecuencias de elegir una clave de cifrado que es demasiado grande y por qué todos restringen el tamaño de sus claves?

    
pregunta Koning 13.12.2012 - 12:48
fuente

8 respuestas

77

La razón por la que las claves RSA son tan pequeñas es que:

  

Cada vez que se duplica la longitud de la clave RSA, el descifrado es 6-7 veces más lento.

Así que este es solo otro de los compromisos de seguridad y conveniencia. Aquí hay un gráfico:

Fuente: enlace

    
respondido por el Fredefl 13.12.2012 - 13:00
fuente
302

Saqué mi copia de Cryptography aplicado para responder a este crypto simétrico, 256 es suficiente y probablemente lo hará estar por mucho tiempo mucho tiempo Schneier explica;

  

Las longitudes de clave más largas son mejores, pero solo hasta un punto. AES tendrá una longitud de clave de 128 bits, 192 bits y 256 bits. Esto es mucho más largo de lo necesario para el futuro previsible. De hecho, ni siquiera podemos imaginar un mundo donde las búsquedas de fuerza bruta de 256 bits sean posibles. Requiere algunos avances fundamentales en la física y nuestra comprensión del universo.

     

Una de las consecuencias de la segunda ley de la termodinámica es que se necesita una cierta cantidad de energía para representar la información. Para registrar un solo bit cambiando el estado de un sistema se requiere una cantidad de energía no menor a kT , donde T es la temperatura absoluta del sistema y k es la constante de Boltzman. (Quédate conmigo; la lección de física casi ha terminado.)

     

Dado que k = 1.38 × 10 −16 erg / K, y que la temperatura ambiente del universo es de 3.2 Kelvin, una computadora ideal que funcione a 3.2 K lo haría consume 4,4 × 10 −16 ergs cada vez que se establece o se borra un poco. Para ejecutar una computadora más fría que la radiación de fondo cósmica se necesitaría energía adicional para hacer funcionar una bomba de calor.

     

Ahora, la producción de energía anual de nuestro sol es de aproximadamente 1.21 × 10 41 ergs. Esto es suficiente para alimentar alrededor de 2.7 × 10 56 cambios de un solo bit en nuestra computadora ideal; suficientes cambios de estado para poner un contador de 187 bits a través de todos sus valores. Si construimos una esfera de Dyson alrededor del sol y capturamos a toda su energía durante 32 años, sin pérdida de ninguna , podríamos hacer que una computadora cuente hasta 2 192 . Por supuesto, no tendría la energía necesaria para realizar cálculos útiles con este contador.

     

Pero eso es solo una estrella, y una miserable en eso. Una supernova típica libera algo así como 10 51 ergs. (Alrededor de cien veces más energía se liberaría en forma de neutrinos, pero déjelos ir por el momento). Si toda esta energía pudiera canalizarse en una única orgía de cómputo, un contador de 219 bits se podría ciclar a través de todos de sus estados.

     

Estos números no tienen nada que ver con la tecnología de los dispositivos; Son los máximos que permitirá la termodinámica. Y implican firmemente que los ataques de fuerza bruta contra claves de 256 bits no serán factibles hasta que las computadoras se construyan a partir de algo que no sea materia y ocupen algo más que espacio.

La audacia es mi propia adición.

Observación: tenga en cuenta que este ejemplo asume que existe un algoritmo de cifrado "perfecto". Si puedes explotar las debilidades en el algoritmo, el espacio de la clave podría reducirse y terminarías con menos bits de tu clave.

También supone que la generación de claves es perfecta, lo que produce 1 bit de entropía por bit de clave. Esto es a menudo difícil de lograr en un entorno computacional. Un mecanismo de generación imperfecto podría producir 170 bits de entropía para una clave de 256 bits. En este caso, si se conoce el mecanismo de generación de claves, el tamaño del espacio de fuerza bruta se reduce a 170 bits.

Suponiendo que las computadoras cuánticas sean factibles, sin embargo, cualquier clave RSA se romperá usando el algoritmo de Shor. (Consulte enlace )

    
respondido por el lynks 13.12.2012 - 16:53
fuente
65

Para un AES se crea para tres tamaños de clave 128, 192 or 256 bits .

En la actualidad, la fuerza bruta de 128 bits ni siquiera es factible. Hipotéticamente, si una clave AES tuviera 129 bits, tomaría el doble de tiempo forzar una clave de 129 bits que una clave de 128 bits. Esto significa que las claves más grandes de 192 bits y 256 bits tardarían mucho más tiempo en atacar. Una de estas claves tardaría tan increíblemente largo que el sol dejaría de arder antes de que se realizara la llave.

2^256=115792089237316195423570985008687907853269984665640564039457584007913129639936

Ese es un gran número maldito. Así es como hay muchas claves posibles. Suponiendo que la clave es aleatoria, si la divide por 2, entonces tiene la cantidad de claves que tomará en promedio para la fuerza bruta AES-256

En cierto sentido, tenemos las claves de cifrado realmente grandes de las que estás hablando. El punto central de una clave simétrica es hacer inviable la fuerza bruta. En el futuro, si es posible atacar una clave de 256 bits, los tamaños de las claves seguramente aumentarán, pero eso es todo un camino por el camino.

La razón por la que las claves RSA son mucho más grandes que las claves AES es porque son dos tipos de cifrado completamente diferentes. Esto significa que una persona no atacaría una clave RSA del mismo modo que atacaría una clave AES.

Atacar las llaves simétricas es fácil.

  1. Comience con una cadena de bits 000...
  2. Descifre el texto cifrado con esa cadena de bits.
  3. Si puedes leerlo, lo has logrado.
  4. Si no puede leerlo, aumente la cadena de bits

Atacar una clave RSA es diferente ... porque el cifrado / descifrado RSA funciona con grandes números semi-prime ... el proceso es mathy . Con RSA, no tienes que probar todas las cadenas de bits posibles. Intenta mucho menos que 2^1024 o 2^2048 cadenas de bits ... pero aún no es posible hacer fuerza bruta. Esta es la razón por la cual las claves RSA y AES difieren en tamaño. "> 1 ]

Para resumir todo y responder tu pregunta en 1 oración. No necesitamos claves simétricas ridículamente grandes porque ya tenemos claves simétricas ridículamente grandes. El cifrado de 256 bits suena débil en comparación con algo así como una clave RSA de 2048 bits, pero los algoritmos son diferentes y realmente no se pueden comparar 'bit a bit' de esa manera. En el futuro, si se necesitan claves más largas, se desarrollarán nuevos algoritmos para manejar claves más grandes. Y si alguna vez quisiéramos ampliar el hardware actual, es simplemente un intercambio de tiempo. Una clave más grande significa un tiempo de descifrado más largo significa una comunicación más lenta. Esto es especialmente importante para un cifrado, ya que su navegador de Internet establecerá y luego usará una clave simétrica para enviar información.

    
respondido por el Rell3oT 13.12.2012 - 13:30
fuente
8

Tiempo de procesamiento, puro y simple. Todo en seguridad es un acto de equilibrio entre la necesidad de seguridad (mantener alejadas a las personas malas) y la facilidad de uso (dejar que entren las buenas personas). El cifrado es una operación costosa de procesamiento, incluso con hardware dedicado para realizar los cálculos.

Simplemente no vale la pena ir más allá de un cierto nivel de seguridad para la mayoría de los propósitos, ya que las compensaciones se vuelven exponencialmente más difíciles de usar y no ofrecen beneficios tangibles (ya que la diferencia entre mil millones de años y cien mil millones de años no lo es). tan significativo en términos prácticos).

También, en cuanto a RSA vs AES, esa es la naturaleza de la criptografía simétrica frente a la asimétrica. En pocas palabras, con la criptografía simétrica (donde hay una clave compartida), no hay nada para empezar a adivinar, por lo que es muy difícil. Para la criptografía asimétrica, como RSA, está divulgando una información (la clave pública) que está relacionada con la clave de descifrado (la clave privada). Si bien la relación es "muy difícil" de calcular, es mucho más débil que no tener información para trabajar. Debido a esto, los tamaños de clave más grandes son necesarios para dificultar el problema de obtener una clave privada de una clave pública al tratar de limitar la dificultad de los problemas matemáticos para el cifrado y descifrado.

    
respondido por el AJ Henderson 13.12.2012 - 15:09
fuente
7

De alguna manera, los algoritmos que usan tales claves "increíblemente grandes" ya existen. Se llama almohadillas de un solo uso . Sin embargo, nadie los usa realmente en la práctica, ya que requieren una clave de la longitud del mensaje que desea cifrar y el material clave nunca puede ser reutilizado (a menos que desee que el texto cifrado sea trivialmente rompible). Dado que el propósito del cifrado es convertir un gran secreto (el texto plano) en un pequeño secreto (la clave), las OTP solo son útiles en escenarios muy específicos y altamente especializados. También puede transmitir el texto sin formato de forma segura, ya que necesitará un canal de transmisión seguro para el material clave.

Para ser justos, las OTP tienen un caso de uso específico. Es decir, cuando necesita seguridad demostrable en un entorno en el que tiene acceso a un canal de comunicaciones seguro en un momento determinado pero necesita transmitir un mensaje de forma segura más adelante.

La OTP es demostrablemente segura porque se utiliza correctamente y con el material clave generado correctamente, cualquier texto claro descifrado es igualmente probable, y nada sobre una parte del material clave (se supone que) le proporciona información sobre otras partes del material clave o cómo descifrar otras partes del mensaje. Eso es fácil en teoría, pero muy difícil de lograr en la práctica. Usted está buscando, a lo sumo, secretos militares de alto grado o posiblemente , como máximo.

Para la mayoría de las personas, las claves asimétricas de 128 a 256 bits o de 2048 a 4096 bits (suponiendo algo como RSA) son suficientes, por razones ya descritas por Rell3oT , Alexander Shcheblikin , lynks , y otros. Cualquiera que quiera atacar una clave equivalente a 256 bits va a atacar el criptosistema, no la criptografía, de todos modos. ( enlace Obligatorio XKCD. ) Los ataques de PRNG se han implementado de manera adecuada y teóricamente han asegurado los criptosistemas antes, y uno sería un tonto si pensara que lo ha hecho. Sucedió por última vez.

    
respondido por el a CVn 13.12.2012 - 17:20
fuente
5

Agregando más evidencia a las respuestas "porque ralentiza las cosas innecesariamente", parece que el tiempo de ejecución de AES no crece tan rápido como el RSA cuando la longitud de la clave aumenta (y RC6 crece aún más lentamente), pero sigue siendo un El 16% del tiempo de ejecución aumenta a la longitud de la clave doble, según enlace .

    
respondido por el Cyrus 13.12.2012 - 15:30
fuente
4

El tiempo de procesamiento ya fue mencionado. Incluso a ese respecto, el tiempo requerido para generar una clave RSA debe mencionarse por separado, ya que es MUCHO más costoso para las claves más largas, ya que necesita encontrar números primos de aproximadamente la mitad del tamaño de la clave RSA deseada.

Otro tema es el espacio, i. mi. La cantidad de datos generados. Los cifrados asimétricos y simétricos operan en bloques. Incluso una firma sobre un byte necesita la cantidad de bits que tiene la clave RSA, i. mi. 256 bytes para una clave de 2048 bits. La misma situación con los tamaños de bloque de los algoritmos simétricos, que también crece con la longitud de la clave. Si bien esto tampoco parece ser un argumento a primera vista, algunos dispositivos severamente restringidos como las tarjetas inteligentes deben manejar esto (todavía es el contenedor más seguro para la clave privada) y hay muchas aplicaciones que necesitan almacenar muchas firmas, certificados, criptogramas, etc. En realidad, esta es una de las razones de la criptografía de curva elíptica, ya que está agrupando más seguridad en menos bits.

    
respondido por el guidot 13.12.2012 - 16:38
fuente
2

El OP preguntó: " En otras palabras, ¿cuáles son las consecuencias de elegir una clave de cifrado que sea demasiado grande ...? " Una clave de 256 bits es bastante sólida, como lo demuestra la comentarios aquí sin embargo, una clave muy segura (que es una buena cosa) simplemente hará que una persona maliciosa encuentre una debilidad en otra parte del sistema.

    
respondido por el brandtrock 17.12.2012 - 15:48
fuente

Lea otras preguntas en las etiquetas