Crypto ++ RSA - Cifre y firme con el mismo par de claves

1

Tengo un programa A que necesita enviar mensajes a varias instancias del programa B (B1, B2, etc.). Los mensajes deben estar encriptados, y también firmados. Lo que significa que solo las instancias de B n se pueden decodificar, y deben asegurarse de que los mensajes provienen de A.

Además, B1 no debería poder enviar mensajes a B2, etc. ...

En teoría, debería ser posible utilizar un solo par de claves RSA, con una clave para A y una clave para Bn. Una vez decodificado por Bn, si el mensaje recuperado se valida (por ejemplo, mediante una función hash), debe haber sido enviado por A, que no reveló su clave a nadie. En ese caso, ambas claves son privadas (lo que significa que deben intercambiarse en un canal seguro)

  1. ¿Se recomienda esto o hay un argumento sólido a favor de tener pasos independientes de cifrado y firma con pares de claves independientes?

  2. En la práctica, en la biblioteca Crypto ++, la clase PrivateKey también contiene la clave pública. ¿Hay alguna forma de cargar una clave privada solamente?

pregunta galinette 17.05.2016 - 12:32
fuente

1 respuesta

2

Puedo responder tu primera pregunta. No se recomienda utilizar el mismo par de claves RSA para la firma y el cifrado. El motivo puede ser diferencias en la caducidad o el depósito de claves (por ejemplo, a veces las organizaciones querrán hacer una copia de seguridad de su clave de cifrado (confidencialidad), pero no desea que tengan su clave de firma (no rechazo)). También existe la posibilidad general de que si usted firma ciegamente los mensajes sin verificar o descifrar el mensaje, un usuario pueda descifrar el mensaje (la firma aplica la clave privada en un mensaje). Esto es bastante raro y resultaría del desarrollo de aplicaciones atípicas que tienen un mal diseño de todos modos.

Además, si puede administrar una clave, ¿por qué no dos?

    
respondido por el Lucas Kauffman 17.05.2016 - 12:50
fuente

Lea otras preguntas en las etiquetas