it-swarm-es.tech

¿Qué es mejor para las claves GPG - RSA o DSA?

ssh-keygen por defecto crea las claves RSA, pero gpg --gen-key prefiere DSA/ElGamal.

¿Cuál, RSA o DSA, es mejor para GPG?

57
grawity

Los mantenedores de GPG están pensando en cambiar el valor predeterminado a RSA (fuente: Tratar la debilidad en SHA-1 [LWN .net] ). Entonces, parece que piensan que RSA es actualmente la mejor opción (y deberían saber más sobre esto que tú o yo).

36
CesarB

RSA y DSA: conceptos erróneos e información útil
tiene un par de referencias más antiguas RSA y la referencia reciente DSA,


En 2003, RSA vs DSA Signatures - El ganador es ... - RSA.

Entonces, básicamente, la generación de claves es increíblemente más rápida para DSA, lo que tiene sentido si entiendes los algoritmos. La firma también es más rápida para DSA, pero no por un factor tan grande. La gran fuerza de RSA es verificar que es mucho más rápido que DSA .

Reciente Borrador de IETF: DSA con SHA-2 para DNSSEC , con vencimiento el 7 de enero de 2010.
Tiene algunas razones para promover DSA sobre RSA hoy.

El uso de DSA con SHA-256 en DNSSEC tiene algunas ventajas y desventajas relacionadas con el uso de RSA con SHA-256 cuando se usa 2048 bits llaves. Las firmas DSA son mucho más cortas que las firmas RSA ; en este tamaño, la diferencia es de 512 bits frente a 2048 bits. En plataformas típicas que usan claves de 2048 bits, la firma de DSA es aproximadamente tres veces más rápida que para RSA, pero la verificación de firmas RSA es más de diez veces más rápida que para DSA .

La fuerza criptográfica de DSA generalmente se considera equivalente a RSA cuando la clave pública de DSA y las claves públicas de RSA son del mismo tamaño. Por supuesto, tal evaluación podría cambiar en el futuro si se encuentran nuevos ataques que funcionen mejor con uno u otro algoritmo.

Actualmente no hay ataques conocidos en el conjunto específico de parámetros DSA elegidos para este documento. Tal evaluación podría, por supuesto, cambiar en el futuro.

Pero, esto es solo un borrador en este momento.

Todos aman la velocidad de verificación de RSA (!).

24
nik

RSA. Se detectaron algunas debilidades en SHA-1 , que es el hash utilizado por DSA . Debian está migrandotodas sus claves de DSA a RSA.

8
pgs

Citando una discusión en el foro :

Mi consejo sería utilizar una clave de firma RSA (la clave "principal" o "maestra") y una subclave RSA para el cifrado. La razón para usar RSA para firmar es principalmente porque RSA le permite usar hashes más grandes que DSA. DSA2 también le permite usar hashes más grandes, pero RSA ha sido compatible durante muchos años más que DSA2.

Creo que si lo está utilizando de manera estándar (es decir, no encripta una gran cantidad de datos) ambos lo harán bien.

Personalmente elegiría RSA porque he aprendido el algoritmo, y es uno de los algoritmos más hermosos que he visto.

5
Adam Matan

También es posible y está permitido el uso de algoritmos SHA-2 desde la revisión actual de DSS; pero no pude averiguar qué revisión GPG sigue.

Con respecto a la actual DSS especificación ( FIPS-186-3 , p. I) cualquier función hash especificada en el SHS (FIPS -180-3, p. Iv) puede ser utilizado:

DSS:

Los algoritmos de firma digital aprobados por FIPS se utilizarán con una función hash apropiada que se especifica en el SHS.

SHS:

Esta norma especifica cinco algoritmos hash seguros: SHA-1, SHA-224, SHA-256, SHA-384 y SHA-512 para calcular una representación condensada de datos electrónicos (mensaje).


A la pregunta: Ambos algoritmos se basan en problemas matemáticos que no se han comprobado como seguros (RSA utiliza el problema de factorización de números y DSA usa el problema de logaritmo discreto), no puede decir Uno es más seguro que el otro, porque ni uno ni el problema se han resuelto nunca.

Pero al usar DSA con SHA-1 puede tener un problema de seguridad, como ya se dijo en pgs .

4
Manuel Faux

El hecho es que probablemente no le importe mucho :) Como parte de la preparación para generar un par de claves y como parte del mantenimiento de los pares de claves existentes, independientemente de qué criptografía asimétrica elija, debe: 1) verificar la corriente recomendada longitudes de las claves 2) eligió una base/módulo para optimizar la firma o la verificación, dependiendo de lo que se hará con más frecuencia (las claves que se usarán para emitir certificados de servidor TLS/SSL deben optimizarse para la verificación ya que cada navegador web verificará la firma ... las teclas que se usaban para firmar software deberían estar optimizadas de manera similar) 3) asegúrese de que las llaves estén envejecidas; ha estado usando la misma tecla para ssh-auth durante algunos años, puede ser el momento de regenerarse, incluso si elige una tecla Tamaño que todavía es razonable para la aplicación de hoy.

Tanto RSA como DSA han sido evaluados sustancialmente; Si está utilizando una base de código confiable (RSAREF, RSA comercial, Mozilla/Netscape, Microsoft, OpenSSL, ...), es probable que no le importe qué sistema criptográfico use siempre que lo use correctamente y utilice las mejores prácticas actuales.

1
Ram