A digital signature scheme typically consists of three algorithms.
• A key generation algorithm that randomly selects a public and private key pair from an extremely large set of possible keys.
• A signing algorithm that, given a message and a private key, produces a signature.
• A signature verifying algorithm that, given the message, public key and signature, either accepts or rejects the message’s claim to authenticity.