Digitally signing and verifying messages
Digital signatures are a mechanism for signing a message payload using public key, also known as asymmetric, cryptography to prove the authenticity of a message. This scheme additionally provides non-repudiation to a message exchange, meaning that a sender will not be able to deny at a future point in time that the message was sent by him/her.
To use this mechanism, a system uses a pair of cryptographic keys that are made up of a private key known only to itself, and a public key that is freely given out to third parties.
Before sending a message, the system uses the private key to generate a message signature (a type of checksum) based on the message contents, and appends it to the message.
The receiving system uses the sender's public key to verify the signature against the message contents. The verification step proves that the message was not changed after being signed and that the originating system was the one who originally signed it.