Quiero cifrar con la clave pública del receptor y el descifrado es
solo es posible con clave privada del remitente . Estoy tratando de lograr
propiedad.
En RSA, las claves privadas y públicas están unidas matemáticamente. Usted está mencionando la clave privada de remitentes y la clave pública de receptores . Estos dos no están relacionados entre sí y no se pueden utilizar de la manera que usted describió.
Lo que puede hacer es seguir (sin entrar en demasiados detalles sobre cada paso específico):
- Genere el par de claves RSA (privado y público) para el remitente y distribuya la clave pública a todos los participantes
- Genere una clave simétrica para el remitente y manténgala secreta solo para el remitente
- Cifre los datos con un algoritmo simétrico (AES, por ejemplo) utilizando la clave generada en el paso 2.
-
Firme el texto cifrado que obtuvo del paso 3. con la clave privada del remitente
- Enviar texto cifrado firmado al receptor
- El receptor puede verificar que el texto cifrado provino del remitente utilizando la clave pública del remitente para verificar la firma, pero no puede descifrar el texto cifrado. Solo el remitente tiene la clave para descifrar el texto cifrado.
- Para todos los mensajes posteriores, vaya al paso 3.
Tenga en cuenta que existen muchos escollos en el uso de primitivas criptográficas. Es mejor hacer una investigación antes de comenzar a escribir el código. Puede iniciar aquí y aquí .