I want to encrypt with receiver's public key and decryption is
possible only with senders private key. I am trying accomplish
ownership.
In RSA, le chiavi private e pubbliche sono legate matematicamente insieme. Stai menzionando la chiave pubblica mittente privata e recieviers . Questi due non sono correlati tra loro e non possono essere utilizzati in un modo che hai descritto.
Quello che puoi fare è seguire (senza entrare troppo nei dettagli di ogni passaggio specifico):
- Genera il par di chiave RSA (privato e pubblico) per il mittente e distribuisci la chiave pubblica a tutti i partecipanti
- Genera una chiave simmetrica per il mittente e mantieni segreta solo il mittente
- Cifra i dati con l'algoritmo simmetrico (ad esempio AES) utilizzando la chiave generata nel passaggio 2.
-
Firma il testo cifrato ottenuto dal passaggio 3. con la chiave privata del mittente
- Invia testo cifrato firmato al destinatario
- Il ricevente può verificare che il testo cifrato provenga dal mittente utilizzando la chiave pubblica del mittente per verificare la firma ma non può decifrare il testo cifrato. Solo il mittente ha la chiave per decifrare il testo cifrato.
- Per tutti i messaggi successivi vai al passaggio 3.
Nota ci sono molte insidie nell'usare le primitive crittografiche. È meglio fare ricerche prima di iniziare a scrivere il codice. Puoi iniziare qui e qui .