Computer systems use cryptographic techniques for activities such as secure communications, message authentication, digital signatures, and payment processing. Other activities are possible. Some cryptographic systems can use techniques based on Diffie-Hellman, RSA, or Elliptic Curve Cryptography (ECC) for public key cryptography. For example, Elliptic Curve Digital Signature Algorithm (ECDSA) requires the use of one or more public keys that are based on ECC. A public key can be associated with an entity such as a service, person, business, or device. The public key has a corresponding private key, which is kept secret by the entity.
A recipient of information containing a public key that purports to belong to a specific entity (e.g., a financial institution) may authenticate the public key with that entity. In some public key authentication protocols, a recipient of a public key can authenticate the public key by sending a challenge that is created using the public key to the entity associated with the public key. The entity answers the challenge by performing a cryptographic operation using the corresponding private key, and sends a challenge result back to the recipient. The recipient then checks the challenge result to produce an authentication status for the public key. Other types of public key authentication techniques are possible. In some cases, authentication can be referred to as verification.