¿Método de trabajo RSA vs DSA?

0

He buscado varias respuestas pero estoy confundido sobre cómo RSA se puede usar tanto para firmas digitales como para cifrado / descifrado como en el conjunto de cifrado "TLS_DHE_RSA _..." o "TLS_RSA_ .." mientras que DSA solo se usa como en "TLS_DHE_DSS_ .." solo para la firma de certificados, y no para el cifrado / descifrado.

Sería mejor si alguien pudiera explicar las funciones matemáticas / cómo funcionan con un ejemplo para cada una de estas dos normas.

Editar: Además, si DSA y RSA solo se usan para firmas digitales, ¿cómo se proporcionan las claves públicas al cliente porque la clave pública es necesaria para verificar el certificado firmado de forma privada? ¿Los certificados se intercambian dos veces y cuáles son los parámetros que están cifrados? en el certificado firmado digitalmente?

    
pregunta Harshit Bhatt 09.04.2015 - 06:42
fuente

1 respuesta

1

Primero en responder tu pregunta original:

¿Cómo se puede usar RSA para la firma digital y el cifrado y DSA solo para el cifrado?

Para entender esto, hay que profundizar en las definiciones de RSA y DSA.

RSA, por sí mismo, fue diseñado para ser un esquema de cifrado de clave pública y más tarde se convirtió en un esquema de firma digital. RSA encripta los datos al convertirlos en un exponente e módulo un número compuesto n. Puede invertir este proceso si conoce la factorización de n, puede calcular el exponente d que convierte el mensaje cifrado en el mensaje original. Ahora debería ver cómo se puede usar para el cifrado PK. Tenga en cuenta que m ^ e ^ d = m ^ (e * d) = m. Ahora quieres firmar algo. Entonces calcule el hash de este mensaje (H (M)) y "descifre" esto para que todos los que sepan e y n puedan "cifrarlo" para recuperar H (M) y luego verificar que pertenece al mensaje M. ( Artículo de Wikipedia)

Ahora DSA hace las cosas de manera un poco diferente. Solo puede firmar datos con DSA porque está definido para ser usado con una función hash. El resultado de la función hash se utiliza para realizar la firma matemática y, por lo tanto, un verificador solo puede verificar que ciertos valores coincidan, para creer su firma, pero no pueden reconstruir el hash en sí mismo como es posible con RSA. Artículo de Wikipedia

Ahora a su segunda pregunta sobre los certificados.

En TLS, un servidor presenta al cliente su certificado para probar que la clave pública le pertenece. ¿Cómo se verifica eso? El servidor también le proporciona lo que se llama una "cadena de certificados". La idea general del sistema de certificación es que algunas instituciones (CA) creen que usted es quien dice ser. Por lo tanto, su navegador (o su sistema operativo) tiene una lista de claves públicas de CA que confía para hacer su trabajo correctamente. Ahora el servidor te presenta su certificado. El servidor también le proporciona también un certificado intermedio. Usted verifica si la firma en el certificado del servidor puede verificarse usando la clave pública del certificado intermedio. Verifique la firma del certificado intermedio utilizando el siguiente ... hasta que llegue a un punto en el que el certificado esté almacenado en su navegador / SO, entonces confiará en esa cadena. Ahora sabes que la clave pública pertenece al servidor. El certificado contiene por sí mismo algunos datos que le proporcionan información sobre quién es el propietario de la clave privada, sobre los algoritmos utilizados, sobre el período de validez, sobre la CA que emitió el certificado y sobre la firma. (Artículo de Wikipedia sobre los certificados X.509 estándar)

Espero que esto responda a tus preguntas si no, pregunta en los comentarios.

    
respondido por el SEJPM 09.04.2015 - 13:16
fuente

Lea otras preguntas en las etiquetas