However, this is not the case in this tutorial since we don’t have the sender or the receiver of the message, hence we are getting the knowledge on the use of a signature, signing a message, and verifying the signature. A cipher that uses different keys for encryption and decryption is called an asymmetric cipher, while the ciphers that use the same key for encryption and. On the recipient’s side, which is peer B, it is going to decrypt the message using the private key and then verify the signature of the message using the public key of peer A which is the sender of the message. Since we want to be able to encrypt an arbitrary amount of data, we use a hybrid encryption scheme. However, this method is signed using the private key of peer A, which is the peer sending the message. The RSA public key is stored in a file called receiver.pem. When peer A is sending a message to peer B, the message should be encrypted using the public key of peer B. If you have two peers i.e, peer A talking to peer B. In this tutorial, we have encrypted a message using a public key and signed it using our private key. The RSA algorithm first generates two large random prime numbers, and then use them to generate public and private key pairs, which can be used to do encryption. With that, you can enter your message, encrypt, and then decrypt it. If verify(text, signature, publicKey): print(Successfully verified signature) else: print( 'The message signature could not be verified')