¿Cuál es la diferencia entre DSA y RSA?

Respuestas:

27

Referido, https://web.archive.org/web/20140212143556/http://courses.cs.tamu.edu:80/pooch/665_spring2008/Australian-sec-2006/less19.html

RSA El
cifrado y descifrado RSA son conmutativos,
por lo que se puede utilizar directamente como un esquema de firma digital
dado un esquema RSA {(e, R), (d, p, q)}
para firmar un mensaje M, calcular:
S = M potencia d (mod R)
para verificar una firma, calcule:
M = S potencia e (mod R) = M potencia ed (mod R) = M (mod R)

RSA se puede utilizar tanto para cifrado como para firmas digitales, simplemente invirtiendo el orden en el que se utilizan los exponentes: el exponente secreto (d) para crear la firma, el exponente público (e) para que cualquiera verifique la firma. Todo lo demás es idéntico.

DSA (Digital Signature Algorithm)
DSA es una variante de los algoritmos de ElGamal y Schnorr crea una firma de 320 bits, pero con la seguridad de seguridad 512-1024 poco de nuevo se basa en la dificultad de calcular logaritmos discretos ha sido bastante ampliamente aceptado

DSA generación de claves
en primer lugar compartido pública mundial Se eligen los valores clave (p, q, g):
elija un primo grande p = 2 potencia L
donde L = 512 a 1024 bits y es un múltiplo de 64
elija q, un factor primo de 160 bits de p-1
elija g = h power (p-1) / q
para cualquier h1,
luego cada usuario elige una clave privada y calcula su clave pública:
elija x calcular y = g potencia x (mod p)

La generación de claves DSA está relacionada con El Gamal, pero es algo más compleja. Principalmente debido al uso del módulo secundario q de 160 bits que se usa para ayudar a acelerar los cálculos y reducir el tamaño de la firma resultante.

Creación y verificación de firmas DSA

para firmar un mensaje M
generar clave de firma aleatoria k, k calcular
r = (g potencia k (mod p)) (mod q)
s = k-1 SHA (M) + xr (mod q)
enviar firma (r, s) con mensaje

para verificar una firma, calcular:
w = s-1 (mod q)
u1 = (SHA (M) .w) (mod q)
u2 = rw (mod q)
v = (g potencia u1.y potencia u2 (mod p)) (mod q)
si v = r entonces se verifica la firma

La creación de firmas es nuevamente similar a ElGamal con el uso de una clave de firma temporal k por mensaje, pero haciendo calc primero mod p, luego mod q para reducir el tamaño del resultado. Tenga en cuenta que el uso de la función hash SHA es explícito aquí. La verificación también consiste en comparar dos cálculos, nuevamente un poco más complejo que, pero relacionado con El Gamal.
Tenga en cuenta que casi todos los cálculos son mod q y, por lo tanto, son mucho más rápidos.
Pero, a diferencia de RSA, DSA solo se puede utilizar para firmas digitales

Seguridad DSA
La presencia de un canal subliminal existe en muchos esquemas (cualquiera que necesite un número aleatorio para ser elegido), no solo DSA. Enfatiza la necesidad de "seguridad del sistema", no solo un buen algoritmo.

AVA
fuente
el enlace a su referencia está roto
Paul Wintz
82

Verifique la respuesta de AVA a continuación .

Mi vieja respuesta parece incorrecta

SDReyes
fuente
Entonces, ¿eso significa que si la cantidad de datos para cifrar es grande, se ejecutará más rápido usando RSA?
WilliamKF
2
No, al revés. DSA firma más rápido (que matemáticamente es más o menos igual al cifrado), por lo que si tiene que cifrar mucho y descifrar con frecuencia, DSA es más rápido.
Henri
Muchos datos para cifrar en el lado del cliente, pero solo se descifran una vez en el servidor, entonces, ¿sigue ganando DSA?
WilliamKF
30
DSA no encripta. Repito, DSA no encripta. Aquí hay un cuestionario: ¿Qué significa la "S" en DSA?
Presidente James K. Polk
4
El hecho de que @GregS RSA pueda cifrar frente a que DSA no pueda cifrar es principalmente una cuestión de terminología. Llamamos a varios algoritmos diferentes RSA, algunos de los cuales firman (por ejemplo, RSA-PSS), otros cifran (por ejemplo, RSA-OAEP). Pero le dimos a cada algoritmo en criptografía grupal un nombre diferente, llamando a uno de los algoritmos de cifrado cifrado ElGamal y llamando a uno de los algoritmos de firma DSA.
CodesInChaos
24

Por cierto, no puede cifrar con DSA, solo firmar. Aunque son matemáticamente equivalentes (más o menos), no se puede usar DSA en la práctica como un esquema de cifrado, solo como un esquema de firma digital.

Enrique
fuente
20

Con referencia a man ssh-keygen, la longitud de una clave DSA está restringida a exactamente 1024 bits para seguir siendo compatible con FIPS 186-2 de NIST. No obstante, teóricamente son posibles claves DSA más largas; FIPS 186-3 los permite explícitamente. Además, la seguridad ya no está garantizada con claves RSA o DSA de 1024 bits de longitud.

En conclusión, una clave RSA de 2048 bits es actualmente la mejor opción.

MÁS PRECAUCIONES A TOMAR

Establecer una conexión SSH segura implica más que seleccionar una tecnología de par de claves de cifrado seguro. En vista de las revelaciones de la NSA de Edward Snowden, uno tiene que estar aún más atento de lo que anteriormente se consideraba suficiente.

Para nombrar solo un ejemplo, el uso de un algoritmo de intercambio de claves seguro es igualmente importante. Aquí hay una buena descripción general de las mejores prácticas actuales de endurecimiento de SSH .

Serge Stroobandt
fuente
Algunas versiones anteriores también ssh-keygenpermiten otras claves de tamaño de bits (yo mismo uso una clave DSA de 2048 bits generada con ssh-keygenRHEL).
Samveen
6

Y además de las bonitas respuestas anteriores.

  • DSA usa logaritmos discretos.
  • RSA usa factorización de enteros.

RSA son las siglas de Ron R ivest, Adi S hamir y Leonard A dleman.

Premraj
fuente