Public Key Cryptography - KaveriBridge/crypto GitHub Wiki
About
In public key cryptography, there are 5 elements : the actual data, sender’s public key, sender’s private key, receiver’s public key and receiver’s private key.
Sender
Computes hash on data
Encrypts data-hash with sender-privkey
Sender encrypts (data + sender-privkey-encrypted-hash) with receiver-pubkey
Sender sends receiver-pubkey-encrypted-data
Reciever
Recieves receiver-pubkey-encrypted-data
Decrypts receiver-pubkey-encrypted-data with receiver-privkey
This ensures only receiver can see the decrypted data
Computes hash for data
Decrypts sender-privkey-encrypted-hash with sender-pubkey
Compares data-hash with decrypted-hash
This ensures that data has not been corrupted in transit
This ensures that data has indeed been sent by sender