Cifrado de clave asimétrica que puede tener una clave de descifrado pública, pero la clave de cifrado no se puede calcular a partir de eso [duplicar]

2

Hay una forma en la que puedo distribuir una clave de descifrado pública, pero la clave de cifrado no se puede calcular a partir de esa clave, de modo que cualquiera que lea uno de mis mensajes cifrados, puede estar bastante seguro de que se escribió originalmente por mi?

Básicamente, se trata del esquema tradicional de cifrado y descifrado asimétrico, pero a la inversa.

    
pregunta Sevron 26.06.2016 - 13:40
fuente

2 respuestas

3

En primer lugar, como señala @WhiteWinterWolf, este es un esquema de firma digital. La firma digital tiene el propósito específico de asegurarse de que el mensaje sea de usted, no de otra persona, y no se haya modificado desde que se firmó. Sin entrar en las matemáticas, así es como funciona:

You have a message that you want the world to know came from you
You have a public/private key pair that supports signing (RSA, DSA, etc.)
You take a cryptographic hash (usually something like SHA-256) of the message
 - Like asymmetric encryption, signing schemes work best on small bits of data
You create a digital signature of the hash digest (the output of the hash function)
 - This requires your private key
You distribute the message, the signature, and the algorithms (hash and signing) used
Alice has your public key, and wants to confirm that the message is authentic
Alice re-hashes the message, with the same scheme
Alice then uses your public key to turn the signature back into the hash digest
Alice checks if the digest of the message and the digest from the signature match
 - This is called verifying a signature

Las firmas criptográficas se utilizan en todas partes. Se usan en los certificados X.509 (como los usos de SSL / TLS) para verificar que el certificado fue emitido por una autoridad de confianza y no ha sido manipulado. Se utilizan en el correo electrónico seguro, para asegurarse de que el destinatario sepa que el remitente del correo no fue falsificado. Se utilizan con archivos firmados, generalmente binarios ejecutables, de modo que el autor del archivo es conocido. Estos son solo algunos de los usos comunes.

Ahora, dicho esto, seamos claros sobre algo:

El cifrado, en general, NO proporciona autenticación (prueba de la identidad de la fuente del mensaje) o integridad (confirmación de que el mensaje no ha sido manipulado); solo confidencialidad (también llamada privacidad o secreto). Si cifra un mensaje, pero no lo firma (o proporciona alguna otra forma de verificación), un atacante puede tomar el mensaje cifrado y manipularlo, cambiando el significado aunque el atacante no sepa cuál era el texto original. El destinatario del mensaje puede descifrarlo y no tener idea de que fue manipulado.

Para algunas cosas, esto no es muy significativo; un atacante que modifique un texto en inglés del que no conoce el contenido producirá un alboroto sin sentido. Para otras cosas, sin embargo, puede ser muy importante. ¡No confíe en el cifrado para verificar de dónde proviene un mensaje! (Advertencia: si utiliza un esquema de "cifrado autenticado", eso incluye comprobaciones de integridad y, si nadie más tiene la clave, también proporciona autenticación. No debe asumir que el cifrado proporciona estas cosas; la mayoría de las veces no lo hace.)

    
respondido por el CBHacking 26.06.2016 - 15:27
fuente
3

Otros ya han mencionado que parece que estás buscando una firma digital. Hay otra parte de su pregunta que es importante: cómo distribuir realmente su clave pública (que los usuarios usarán para verificar su firma).

Algunos métodos comunes (sin ningún orden en particular):

  1. Reúnase en persona con quien quiera enviar mensajes, y deles su clave (unidad flash, impresa en papel, etc.). Esto es bastante seguro, asumiendo que otros sepan cómo se ve pero es difícil / imposible de escalar.
  2. Use alguna infraestructura de clave pública para distribuir su clave. Cualquier persona que quiera su clave puede usar la PKI para obtener tu llave. Esto generalmente se escala bastante bien. El ejemplo típico de una PKI es una autoridad de certificación, que firma claves de seguridad para sitios web. Existe el riesgo de que si la PKI se ve comprometida de alguna manera, un atacante podría hacer que otros acepten la clave pública del atacante como suya.
  3. Use un almacén de claves públicas. Hay algunos métodos más en esta pregunta relacionada .
  4. Si esto es para una aplicación de usuario específica, podría codificar su clave pública en la aplicación.
respondido por el Fishy 26.06.2016 - 20:48
fuente

Lea otras preguntas en las etiquetas