Cryptographic key
A cryptographic key is a variable which acts as an encryption or decryption key when combined with a cryptographic algorithm, produces a desired result: plaintext if the key is used for decryption or ciphertext if the key is used for encryption.
Keys exist for both ciphers and codes, although the key for a code is a large codebook, with one or more symbols for each concept that can be encoded.
Encryption key
An encryption key, which is the same as the decryption key in a symmetrical cryptosystem, but different if the cryptosystem is asymmetrical, is used to transform plaintext to ciphertext.
Decryption key
A decryption key, which is the same as the encryption key in a symmetrical cryptosystem, but different if the cryptosystem is asymmetrical, is used to transform ciphertext to plaintext.
Symmetrical cryptosystems
In a symmetrical cryptosystem, the same key is used for encryption and decryption. As a result, it must be protected and often is called a secret key. Symmetrical cryptosystems are usually faster, and need a key that they can process efficiently.
Session keys
Modern encryption systems may use a more convenient and secure asymmetric cryptosystem to transfer session-generating keys, which are used to generate symmetrical keys used for a short period of time or a certain number of units of plaintext.
The session-generating keys may themselves be encrypted, with a symmetric or asymmetric key exchange key (KEK). Alternately a key agreement protocol such as Diffie-Hellman may be used; in these the two systems co-operate to securely create a key without transmitting it.
The rules on when and how to switch to a new key during a specific system are specific to the cryptosystem in use. Some such systems, when establishing their connection, negotiate the rules they will use, perhaps using a protocol such as internet key exchange (IKE).
Asymmetrical cryptosystems
Asymmetrical cryptosystems, also known as public key cryptosystems operate around pairs of different keys with a complex mathematical relationship between them. Depending on the application, one is public, at least within a certain group of users, and one is private, to be held secret.
When the purpose of the cryptosystem is to ensure the contents of the message cannot be read by an unauthorized person (i.e.,content confidentiality), the public key is used as the encryption key, while the private key is used for decryption. Only an authorized user in possession of the decryption key can access the plaintext protected by the cryptosystem. For bilateral communications, there must be a key pair for each direction of communication.
If the cryptosystem is being used for authentication, a private key is used to encrypt a well-known signature or other credential of the sender. Any receiver can use the public key to decrypt the authentication message; the fact that it can be decrypted with a verified public key validates the sender's identity.