Generando clave secreta compartida usando la clave pública de los receptores existentes y la clave privada de los remitentes

2

Tengo la clave pública del receptor y la clave privada del remitente. Quiero generar una nueva clave utilizando la clave pública de los receptores y la clave privada de los remitentes (también conocida como clave de firma) para cifrar un archivo para este proceso, es decir, utilizar ambas claves al mismo tiempo que se conoce como clave secreta compartida.

¿Podría decirme cómo debo generar un secreto compartido utilizando una clave pública de los receptores existentes y una clave privada de los remitentes?

    
pregunta MaheshAthuluru 09.08.2015 - 18:13
fuente

2 respuestas

1

No necesitas hacer esto; esto ya se resolvió mediante el protocolo de enlace SSL / TLS.

El protocolo de enlace SSL / TLS va un poco más allá, ya que no solo establece un secreto mediante el uso de las claves pública y privada de ambas partes, sino que también utiliza un certificado para establecer que el servidor es quien informa ser: previniendo un ataque de hombre en el medio.

Una descripción rápida y más detallada de los pasos involucrados es aquí .

Pero como ha marcado la pregunta con "HTTP", asumo que desea enviar el archivo a través de HTTP. El solo uso de HTTPS significa que ya está usando SSL o TLS para el intercambio de claves, la negociación de una clave secreta y el uso de esa clave secreta para cifrar el archivo mientras está en tránsito. Y alguna protección contra MITM en el proceso.

    
respondido por el S.L. Barth 09.08.2015 - 19:12
fuente
0

No estoy seguro de cuál es tu caso de uso aquí. Si solo está cifrando un archivo para que su socio pueda leerlo y nadie más, y no le importe la autenticación, la reproducción o MitM, y está completamente seguro del proceso que usted y su socio utilizan para intercambiar claves públicas. , entonces puedes usar un procedimiento muy simple.

  1. Genere una clave simétrica utilizando una algoritmo de su preferencia.
  2. Encripta el archivo con la clave simétrica
  3. Cifre la clave simétrica con la clave pública del receptor
  4. Envía 2 y 3 a tu pareja.

No estoy seguro de por qué desea incluir su propia clave privada en el proceso. Siempre que el receptor pueda descifrar la clave (y él puede, porque usted usó su clave pública), entonces el secreto ya está "compartido" porque lo generó para que, obviamente, lo sepa.

Lo único en lo que puedo pensar es que quizás desee que el receptor se asegure de que el archivo proviene de usted y de nadie más. En ese caso, supongo que podrías

  1. Toma un hash de todo el lío
  2. Cifre el hash con su clave privada
  3. Envía el resultado de 6 junto con 2 y 3

... asumiendo que el receptor tiene una manera de estar seguro de que tiene una copia correcta de su clave pública (que no es necesariamente trivial).

Si no está completamente confiado en el proceso que usted y su compañero utilizan para intercambiar claves públicas, entonces deberá aprovechar una infraestructura PKI o cambiar a un esquema más simple como un secreto compartido con intercambio fuera de banda.

    
respondido por el John Wu 03.09.2016 - 03:04
fuente

Lea otras preguntas en las etiquetas