Tamaño de clave PGP RSA: tiempo de cifrado / descifrado

8

Por lo que he leído, PGP solo utiliza las claves pub / priv para cifrar / descifrar una clave simétrica utilizada para cifrar / descifrar datos en realidad. Supongo razonablemente que las claves asimétricas más largas no serían mucho más lentas que las más cortas, ya que solo serían necesarias para cifrar / descifrar la clave simétrica mencionada. Esta respuesta y algunos otros recursos de Google sugieren Que las teclas con mayores longitudes disminuyen el rendimiento. ¿Me estoy perdiendo de algo? ¿No son las teclas más grandes, al menos para PGP, casi siempre mejores?

    
pregunta raphael b 06.09.2013 - 16:28
fuente

1 respuesta

12

Con RSA, cifrado es principalmente cuadrático en el tamaño del módulo público, descifrado es principalmente cúbico. Esto significa que duplicar el tamaño de la clave (por ejemplo, de 2048 bits a 4096 bits) significa cuatro veces el costo del cifrado, ocho veces para el descifrado. (Para claves ridículamente grandes, de más de 20000 bits o menos, otros algoritmos valen la pena y el descifrado ya no es cúbico, pero eso no se aplica a las implementaciones RSA "normales").

Sin embargo, tiene razón en que el cifrado o descifrado es solo una operación de una sola vez para una clave simétrica. Con una PC básica, un orden aproximado de magnitud es que el RSA de 1024 bits tarda aproximadamente un milisegundo para el descifrado; por lo tanto, RSA de 2048 bits significará 8 milisegundos, y RSA de 4096 bits implicará 64 milisegundos más o menos. Como puede ver, las cifras siguen siendo muy bajas, en términos humanos. El costo percibido del cifrado y descifrado en PGP depende de los costos de E / S más que cualquier otra cosa; cuando recibe y descifra un correo electrónico de 5 MBytes, demorará unos segundos en descargarlo, pero solo unos pocos milisegundos en descifrarlo (el cifrado simétrico puede proceder fácilmente a 100 MB / s, y el descifrado asimétrico es simple) operación, como se explica).

Las claves más largas no son necesariamente mejores. Nos gustan las claves más largas porque los algoritmos de craqueo conocidos tardan más tiempo cuando la clave es más larga. Sin embargo, hay un punto en el que este argumento deja de ser válido: cuando la clave es tan larga que no se puede romper con la tecnología basada en la Tierra, entonces es "lo suficientemente larga" y hacerla más larga no traerá ningún bien significativo. El registro de ruptura de RSA actual es de 768 bits, y se cree que 1024 bits están al borde de Lo factible (pero no sabemos de qué lado del límite está). Una clave RSA de 2048 bits ya es lo suficientemente grande, con un margen de seguridad cómodo. Lo mismo puede decirse acerca de las claves ElGamal y DSA de 2048 bits (que también utiliza PGP).

Por otro lado, las claves más largas significan correos electrónicos más largos (porque un correo electrónico firmado con PGP incluye una copia de la clave), aunque esto no es significativo (unos pocos cientos de bytes adicionales por correo electrónico no importarán mucho). Una razón más importante no para usar claves sobredimensionadas es interoperabilidad : algunas implementaciones pueden tener límites internos, debido a la forma en que se diseñaron, y una clave enorme podría exceder estos límites. Aparentemente, algunas versiones de GnuPG tienen problemas con las claves de más de 4096 bits . Las claves de 2048 y 4096 bits deberían funcionar en todas partes.

Una razón más importante es que la generación de claves puede ser prohibitivamente costosa con tamaños de clave más grandes, pero no lo haces tan a menudo, por lo que esto es solo menor.

Para resumir: con PGP, usa claves de 2048 o 4096 bits y estarás contento. No te preocupes demasiado por esa elección; Cualquiera esta bien. No vaya más allá de los 4096 bits porque provocará problemas de interoperabilidad.

    
respondido por el Tom Leek 06.09.2013 - 16:45
fuente

Lea otras preguntas en las etiquetas