ya que se sabe que la NSA se infiltró en RSA y debilitó su algoritmo de generación de claves
Si sabes eso, entonces sabes mal. Estás confundiendo dos cosas que no tienen relación alguna:
-
RSA , el algoritmo criptográfico asimétrico.
-
Dual_EC_DRBG , a PRNG algoritmo de mala calidad y susceptible de backdooring.
RSA se puede usar para encriptación asimétrica y para firmas digitales. Un PRNG no puede hacer ninguna de las dos. Un PRNG produce una corriente sin fin de bits impredecibles; Esto es algo que RSA no hace. Las dos cosas son realmente diferentes.
Ahora, ¿cuál es la fuente de la confusión? Es doble:
- Un algoritmo criptográfico asimétrico utiliza claves que deben generarse aleatoriamente en algún momento; el algoritmo de generación de claves requiere un flujo de bits aleatorios para trabajar, normalmente suministrado por un PRNG criptográficamente fuerte (por lo tanto, potencialmente Dual_EC_DRBG, o simplemente cualquier otro PRNG).
- Un proveedor de software que implementó Dual_EC_DRBG y lo suministró a sus clientes fue RSA Security . Esa compañía se llama "RSA" porque fue fundada por Rivest, Shamir y Adleman, los tres investigadores que también inventaron el algoritmo asimétrico RSA y lo nombraron de esa manera por la misma razón. Básicamente, Rivest se llama Rivest cuando inventa algoritmos criptográficos, y aún se le llama Rivest cuando funda compañías. De todos modos, vendieron la compañía hace dos décadas.
La conclusión es que RSA, el algoritmo asimétrico, no es de ninguna manera "backdoored". Lo que puede ser backdoored es el PRNG utilizado en una implementación específica del algoritmo de generación de par de claves. Pero si usa Dual_EC_DRBG para generar un par de claves de ElGamal, entonces tiene la misma intensidad. Por lo tanto, la existencia de PRNG pobre y débil no es, en modo alguno, una razón para preferir ElGamal a RSA.
(Si queremos hacerlo, es al revés: la puerta trasera conocida en Dual_EC_DRBG es más fácil de aprovechar si se usó Dual_EC_DRBG para producir una clave ElGamal que una clave RSA. Pero en general, si su herramienta de generación de claves utiliza un PRNG deliberadamente débil y, a continuación, pierde. Independientemente del tipo de clave.)
¿Qué pasa con longitud de la clave ? Por alguna casualidad, sucede que las claves RSA, DSA y ElGamal de tamaño similar ofrecen una fuerza vagamente similar (esto es pura suerte ya que dependen de distintos tipos de objetos matemáticos). Las claves RSA / DSA / ElGamal de 1024 bits actualmente evaden nuestras capacidades criptoanalíticas, pero parecen estar al alcance de la tecnología basada en la Tierra (si gasta unos pocos cientos de millones o miles de millones de dólares en la construcción de un dedicado máquina y no importa si tarda 6 meses en romper una sola tecla). Las claves RSA / DSA / ElGamal de 2048 bits están mucho más allá de lo que se puede hacer con una tecnología previsible. Cualquier tamaño de clave más allá de 2048 bits es el equivalente a comprar un auto deportivo rojo para atraer a las chicas.
Para su caso específico:
-
Las opciones "solo firmar" producirán claves que solo se pueden usar para firmas, y no para, por ejemplo, correos electrónicos cifrados. Si desea utilizar una clave para el cifrado, deberá usar una de las dos primeras opciones.
-
En épocas anteriores, RSA estaba patentada (en los EE. UU.), por lo que algunas implementaciones solo admitían DSA y ElGamal. Dado que la patente expiró en el año 2000, cualquier implementación decente de PGP ahora puede manejarlo bien.
-
Las firmas DSA son un poco más cortas que las firmas RSA; El intercambio de claves basado en ElGamal utilizará unos pocos bytes más que el intercambio de claves basado en RSA. Aquí solo estamos hablando de unas pocas docenas de bytes; cualquier optimización de ese tipo quedará enana por la pérdida incurrida si decide utilizar las teclas de gran tamaño red para afirmar su virilidad.