encryption - significado - metodo rsa ejemplo
¿Cuál es la diferencia entre DSA y RSA? (5)
Parece que ambos son algoritmos de cifrado que requieren claves públicas y privadas. ¿Por qué elegiría uno frente a otro para proporcionar cifrado en la aplicación de mi servidor cliente?
Por cierto, no puedes encriptar 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.
RSA
El cifrado y descifrado RSA son conmutativos
por lo tanto, se puede usar 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 usar tanto para el cifrado como para las firmas digitales, simplemente invirtiendo el orden en que se utilizan los exponentes: el exponente secreto (d) para crear la firma, el exponente público (e) para que cualquiera pueda verificar la firma. Todo lo demás es idéntico.
DSA (Algoritmo de firma digital)
DSA es una variante de los algoritmos de ElGamal y Schnorr crea una firma de 320 bits, pero con seguridad de seguridad de 512 a 1024 bits que se basa nuevamente en la dificultad de calcular logaritmos discretos ha sido ampliamente aceptado
Generación clave DSA
En primer lugar, se eligen los valores clave públicos globales compartidos (p, q, g):
elija un gran primo p = 2 potencia L
donde L = 512 a 1024 bits y es un múltiplo de 64
elija q, un factor primo de 160 bit de p-1
elija g = h potencia (p-1) / q
para cualquier h1
cada usuario elige una clave privada y calcula su clave pública:
elegir x calcular y = g potencia x (mod p)
La generación de claves DSA está relacionada con, pero algo más compleja que El Gamal. Principalmente por el uso del módulo secundario de 160 bits q utilizado 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 la 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, calcule:
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, la firma se verifica
La creación de firma es de nuevo 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ícita aquí. La verificación también consiste en comparar dos cálculos, que de nuevo son un poco más complejos que, pero relacionados 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 se puede usar solo 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. Hace hincapié en la necesidad de "seguridad del sistema", no solo un buen algoritmo.
Verifique la respuesta de AVA a continuación .
Mi vieja respuesta parece incorrecta
Y además de las buenas respuestas anteriores.
- DSA usa logaritmo discreto.
- RSA usa factorización de enteros.
RSA significa Ron R ivest, Adi S hamir y Leonard A dleman.
Con referencia a man ssh-keygen
, la longitud de una clave DSA está restringida a exactamente 1024 bit para seguir siendo compatible con FIPS 186-2 de NIST. No obstante, las claves DSA más largas son teóricamente posibles; FIPS 186-3 los permite explícitamente. Además, ya no se garantiza la seguridad con claves RSA o DSA de 1024 bits de largo.
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 segura de pares de claves de cifrado. 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, usar un algoritmo de intercambio seguro de llaves es igualmente importante. Aquí hay una buena descripción de las mejores prácticas actuales de endurecimiento de SSH .