A cryptographic protocol is an abstract or concrete protocol that performs a security-related function and applies cryptographic methods, often as sequences of cryptographic primitives. A protocol describes how the algorithms should be used and includes details about data structures and representations, at which point it can be used to implement multiple, interoperable versions of a program.1
Cryptographic protocols are widely used for secure application-level data transport. A cryptographic protocol usually incorporates at least some of these aspects:
- Key agreement or establishment
- Entity authentication, perhaps using an authentication protocol
- Symmetric encryption and message authentication key material construction
- Secured application-level data transport
- Non-repudiation methods
- Secret sharing methods
- Secure multi-party computation
For example, Transport Layer Security (TLS) is a cryptographic protocol that is used to secure web () connections. It has an entity authentication mechanism, based on the system; a key setup phase, where a key is formed by employing public-key cryptography; and an application-level data transport function. These three aspects have important interconnections. Standard TLS does not have non-repudiation support.