¿Por qué las firmas digitales no revelan la clave privada de los remitentes?

1

Tal como lo entiendo, Digital Signatures involucra la 'señalización' de un mensaje usando los remitentes Private Key , y su validación por parte del destinatario usando el Public Key relacionado matemáticamente del remitente.

Si bien esto parece bastante sencillo, el punto central del cifrado asimétrico (como lo entiendo) es que la clave privada está oculta para el mundo y necesaria para el descifrado, por lo que la clave pública disponible del remitente es, por lo tanto, inútil para el atacante.

Si las firmas digitales usan la clave privada de un remitente para cifrar los datos, seguramente la clave privada se vuelve vulnerable, y el mensaje puede ser atacado usando los mismos ataques de descifrado que se usan comúnmente contra los datos cifrados simétricamente.

RSA no se consideraría tan importante si fuera realmente susceptible a la falla que acabo de describir, lo que me hace sospechar que he entendido mal algo.

    
pregunta user4493605 18.06.2017 - 11:24
fuente

2 respuestas

6

Parece que aquí hay cierta confusión sobre la diferencia entre la firma digital y el cifrado de mensajes dirigido. Si firmo algo digital, necesito una clave privada para hacerlo. Pero puede tomar mi clave pública y verificar que el titular de esta clave pública haya firmado esto.

Cuando se trata de descifrado. Sí, se requiere una clave privada para descifrar decir un mensaje de algún tipo. Sin embargo, lo que hacemos es, de antemano, intercambiar claves públicas entre sí, y cifro el mensaje con your la clave pública no la mía (o ambas, según el algoritmo o el propósito ). De esa manera solo el titular de la clave privada asociada con esa clave pública puede descifrarla (es decir, usted).

Para hacer esto un poco más claro, son diferentes formas de utilizar RSA en conjunto, básicamente en un nivel alto:

  • Cifrar (texto sin formato, publicKey) = RSA (OAEP (texto sin formato), publicKey) = texto cifrado
  • Descifrar (cipherText, privateKey) = OAEP (RSA (cipherText, privateKey)) = texto simple

Mientras que firmar es ligeramente diferente:

  • Sign (plainText, privateKey) = RSA (Hash (plaintext), privateKey) = signature [s]
  • Verificar (plainText; s; publicKey) = RSA (s, publicKey) = salida
  • si la salida es == Hash (plainText) la firma se verifica

Esto es crudo, pero muestra la gran diferencia de nivel entre ellos. La clave privada nunca es conocida por ninguna de las partes. Pero aún pueden descifrar y verificar usando sus propias claves privadas, y las demás claves públicas.

    
respondido por el Nalaurien 18.06.2017 - 11:40
fuente
0
  

El punto central del cifrado asimétrico (como lo entiendo) es que la clave privada está oculta para el mundo y necesaria para el descifrado,

No, eso lo convertiría en un cifrado simétrico . La característica distintiva del cifrado asimétrico es que puedes cifrar algo con una clave pública, pero solo utilizar la clave privada correspondiente para descifrarla. O, en el caso de RSA, puede cambiarlo y cifrar algo con su clave privada que se puede descifrar con la clave pública. Contrasta esto con el cifrado simétrico, donde puede descifrar el texto cifrado con la misma clave con la que lo cifró, lo que significa que no puede tener una cosa como una clave pública, sino solo una privada.

  

Si las firmas digitales usan la clave privada de un remitente para cifrar los datos, seguramente la clave privada se volverá vulnerable, y el mensaje puede ser atacado usando los mismos ataques de descifrado que se usan comúnmente contra los datos cifrados simétricamente.

Como se mencionó, RSA es "reversible" porque puede cifrar con la clave pública o privada para que la otra se utilice para descifrarla.

El cifrado de datos con su clave privada no hace que esa clave esté disponible para el mundo, o de lo contrario sería un esquema de cifrado completamente ineficaz.

    
respondido por el Xiong Chiamiov 18.06.2017 - 21:14
fuente

Lea otras preguntas en las etiquetas