Each user in the application has their own public-private key pair. Public keys are distributed publicly and encrypt the sender’s messages . The receiver can only decrypt the sender’s message with the matching private key, which is used to decrypt messages and to verify or sign them.