¿Hay alguna razón para que alguien no use una llave más larga?

17

Se dice que los tamaños de clave más grandes son más difíciles de fuerza bruta; ¿Hay alguna razón para que alguien decida utilizar una clave más pequeña?

¿Hay algún efecto negativo en el uso de un tamaño de clave mayor, como el rendimiento, o una compatibilidad deficiente con versiones anteriores de software de cifrado / descifrado?

    
pregunta IQAndreas 13.06.2014 - 04:27
fuente

4 respuestas

17

Cada bit de una tecla aumenta la dificultad de un ataque de fuerza bruta de manera exponencial, pero hay una compensación. Agregar más bits a la clave afectará negativamente la velocidad de cifrado / descifrado. La cantidad real de esta pérdida de velocidad depende del algoritmo, por ejemplo, en RSA (en teoría) para una clave n-bit , el esfuerzo computacional para el cifrado es proporcional a n^2 , mientras que el esfuerzo para el descifrado es proporcional a n^3 , por lo que duplicar la clave en RSA significa que el cifrado será cuatro veces más lento, y el descifrado será (casi) ocho veces más lento.

Otra cosa que creo que vale la pena mencionar y gracias por Perseids por señalarlo. Hay un límite donde más tiempo necesario para romper el algoritmo se vuelve sin sentido, porque para propósitos prácticos ya es "para siempre". Como una analogía del "mundo real", imagine que está empaquetando raciones para un viaje corto en el desierto y está decidiendo cuánta agua desea llevar con usted. Para una pequeña cantidad de agua, "más es mejor" es un enfoque razonable, ya que es posible que deba permanecer más tiempo del previsto o derramar un poco de agua. Pero cuando ya lleva todo el Amazonas con usted, no le ayuda aumentar esa cantidad a toda el agua del planeta. Esas son las dimensiones de las que estamos hablando cuando alguien intenta convencerlo de que use RSA de 8192 bits.

  

(Diagramade Javamex )

Para los algoritmos de curva elíptica, asumimos que no es factible encontrar el logaritmo discreto de un elemento de curva elíptica aleatoria con respecto a un punto base conocido públicamente. El principal beneficio de ECC es, de hecho, el tamaño de clave más pequeño, por ejemplo, una clave pública ECC de 256 bits debe proporcionar una seguridad comparable a una clave pública RSA de 3072 bits. Basado en el hecho de que los algoritmos principales utilizados para resolver ECDLP (por ejemplo, paso gigante de paso bebé) necesitan n ^ (1/2) pasos, el aumento / disminución en n bits afectará las velocidades de desincrustación.

En cuanto a tu pregunta secundaria, no me preocuparía demasiado, pero considerando que estás hablando de longitud, se prefiere "más largo".

    
respondido por el Abbas Javan Jafari 13.06.2014 - 04:53
fuente
8

Hay varios puntos a tener en cuenta:

  • "Tamaño de clave" no es necesariamente flexible. En los algoritmos de cifrado simétrico (por ejemplo, AES), una clave es "un grupo de bits" que debe tener una longitud específica. AES en sí no es un algoritmo, sino una familia de tres, que acepta claves de 128, 192 y 256 bits, respectivamente. Ningún otro tamaño de clave encajará.

  • Las implementaciones pueden tener limitaciones. Si consideramos RSA, cuyas claves son enteros grandes (con alguna estructura matemática), el algoritmo es en sí bastante flexible, pero las implementaciones tienen restricciones: algunas no admiten claves de más de 2048 bits; algunos requerirán que el tamaño de la clave sea "redondo" (por ejemplo, múltiplo de 32). Trabajo con tarjetas inteligentes que pueden hacer RSA de 1024 bits y 2048 bits, pero no con otro tamaño de clave.

  • Los costos aumentan con el tamaño de la clave. Los costos de CPU se han citado en otras respuestas; pero el tamaño también importa: una firma RSA de 4096 bits es dos veces más larga que una firma RSA de 2048 bits. Estamos hablando de ancho de banda de red aquí; esto puede importar más que la CPU.

  • Existen, o al menos, las limitaciones legales para la longitud de las claves criptográficas (especialmente para la exportación), según el país. Esto dio lugar a implementaciones ampliamente implementadas que no pueden procesar claves más allá de cierto tamaño. Por ejemplo, algunos programas pueden usar AES-128 pero no AES-256. Incluso cuando se levantan las regulaciones, el software implementado no se actualiza de la noche a la mañana.

  • Aunque a la gente le gusta tener llaves más grandes, en algún momento carece de significado. Queremos claves que sean "lo suficientemente fuertes" para derrotar a cualquier atacante que no tenga tecnología extraterrestre a su disposición. Para el cifrado simétrico, esto es bastante rápido: las claves simétricas son un montón de bits n sin una estructura específica, por lo que romper esa clave tiene un costo promedio 2 n-1 operaciones, por lo que las claves de 128 bits son más que suficiente para estar seguro. Para el cifrado asimétrico, los ataques no son no "fuerza bruta", sino que funcionan en la estructura matemática de la clave, que depende del algoritmo; para RSA, 2048 bits son (manera) más que suficientes para derrotar a tus adversarios (sí, incluso el NSA / FSB / Illuminati o quien sea tu némesis favorito).

    Crecer claves más allá de tales valores no tiene ningún impacto en la seguridad (sin positivo , al menos, las claves más grandes pueden implicar una disminución del rendimiento, por lo tanto, incentivan a los usuarios a no usarlos, lo que a su vez disminuye la seguridad ). Las personas que insisten en RSA de 4096 bits o AES-256 están equivocadas, o lo hacen por otras razones (el otro Oso diría que las claves más grandes son pantalla de cortejo para los rituales de apareamiento, en la misma categoría que los autos deportivos rojos.

En términos prácticos :

  • Para el cifrado simétrico, querrá AES-128. AES-256 es un poco menos compatible e incurre en un costo de CPU de + 40% (ese costo adicional no suele importar mucho, pero puede suceder).

  • Para el cifrado asimétrico o las firmas con RSA, vaya a claves de 2048 bits. Las claves de 1024 bits aún no están rotas, pero teóricamente están al alcance de la tecnología humana (lo que implica una máquina de propósito especial que aún no se ha construido porque costaría mucho más de lo que incluso las universidades más ricas pueden gastar). Hay implementaciones implementadas que no pueden procesar claves de más de 2048 bits, y algunas tampoco pueden procesar tamaños de clave entre 1024 y 2048. Las claves de 2048 bits maximizan la interoperabilidad y están bien para la seguridad.

  • Con ECDSA u otros algoritmos con curvas elípticas, la estructura matemática es diferente, por lo que las figuras también son diferentes. Una clave EC de 256 bits es tan buena como la AES-128 y, de hecho, la curva NIST P-256 es la curva que se admite en todos los lugares donde se maneja ECDSA.

respondido por el Thomas Pornin 13.06.2014 - 13:49
fuente
3
  

Un lanzamiento reciente de Citrix Netscaler PR señala que la duplicación   del tamaño de la clave de 1024 bits a 2048 bits aumenta la CPU computacional   Requisitos de 4x a 8x.

(De a Artículo sobre computación en red )

Las teclas más grandes / más largas (creo que son intercambiables) requieren más trabajo computacional (ciclos del procesador) durante el uso. Debido a que las claves se usan a menudo en arquitecturas asimétricas (por ejemplo, un servidor web para muchos clientes web), el efecto de las claves más grandes tiene un mayor impacto acumulativo en el servidor, lo que a su vez degrada el rendimiento y / o obliga al propietario del servidor a destinar más recursos. y dinero en el problema (granja de servidores más grande, descargadores de SSL, etc., etc.)

Por lo tanto, los tamaños de las claves tienden a ser lo suficientemente grandes para brindar una protección efectiva, pero no más grandes.

    
respondido por el gowenfawr 13.06.2014 - 04:49
fuente
1

La cantidad de recursos de CPU disponibles en las computadoras típicas de usuarios finales se ha reducido abajo en los últimos cinco años, no en aumento, debido a la prevalencia de dispositivos móviles (teléfonos inteligentes y tabletas). Existe controversia si la tendencia será más o menos para el promedio del usuario, ya que los productos menos costosos (es decir, los lectores de tinta electrónica) ingresan en el mercado, pero generalmente se acepta que el software de uso intensivo en computación (como Lastpass ) debe admitir al menos los dispositivos con menor CPU.

Una consecuencia de esto es la longitud de la clave y las operaciones computacionalmente costosas relacionadas. Como un solo ejemplo, Lastpass recomienda menos iteraciones de contraseña (PBKDF2) para los usuarios que usan dispositivos móviles. No puedo encontrar un enlace web, pero al cambiar la contraseña de Lastpass en la interfaz se menciona.

    
respondido por el dotancohen 13.06.2014 - 09:42
fuente

Lea otras preguntas en las etiquetas