!!! Overview
[{$pagename}] is a piece of information (a parameter) that determines the functional output of a [cryptographic algorithm or cipher|cipher]. 



Without a [{$pagename}], the algorithm would produce no useful result. In [encryption], a [{$pagename}] specifies the particular transformation of [plaintext|message] into [ciphertext], or vice versa during [decryption]. 

[{$pagename}]s are also used in other cryptographic algorithms, such as [digital Signature] schemes and [Message Authentication Codes].

!! [{$pagename}] [Classification]
Just as there are household [keys] for the car, front door, garage, etc., [{$pagename}] can serve many different purposes. Understanding these keys necessitates a grasp of their [classification], i.e. the different types of key and their [properties|Property] and functions.

At its simplest level, a [{$pagename}] is just a [random] [string] consisting of hundreds or thousands of ones and zeroes (i.e. binary digits, or [bits]). However, keys are always created for a specific function, and the associated key meta-data defines the properties of the [key].

* [Asymmetric Keys]
** [Public Keys]
** [Private Key]
* [Symmetric Keys]
* [Session Keys]

! Static vs [Ephemeral Keys] and crypto-period
[{$pagename}]s may be either static (designed for long term usage) or [ephemeral] (designed to be used only for a single session or transaction). The crypto-period (i.e. [lifetime]) of static keys may vary from days to weeks, months or even years depending on what they are used for. In general, the greater the crypto-period, the more susceptible it is to [attack] and the more [Protected Data] is at [risk] should it be revealed, so it is important to ensure keys are replaced when required (this process is called updating or cycling).

! Key length and [algorithms]
The length of a key must align with the [algorithm] that will use it, although most algorithms support a range of different key sizes. In general, the longer a key is, the better security it provides (assuming it is truly [random]).

With [Symmetric Keys], the security they provide theoretically increases exponentially with their length (for any given algorithm) – adding one more bit doubles their resistance against [Brute-Force] [attacks]. This is not true of [Asymmetric Keys], which generally need to be somewhat longer.



! Common functions for [{$pagename}]s
The list below outlines the [National Institute of Standards and Technology] ([NIST]) [classification] of [{$pagename}]s based on their type and usage:

* [Private|Private Key] [Digital Signature]. 
* [Public|Public Key] [Digital Signature]-verification key. 
* [Symmetric|Symmetric Key Cryptography] authentication key. 
* [Private|Private Key] authentication key. 
* [Public|Public Key] authentication key. 
* [Symmetric|Symmetric Key Cryptography] data-encryption key. 
* [Symmetric|Symmetric Key Cryptography] [Key Encrypting Key]
* [Symmetric|Symmetric Key Cryptography] [Pseudorandom number generator] keys. This type of key is used in generating random numbers or bits.
* [Symmetric|Symmetric Key Cryptography] [Master Key|Key Derivation Function]
* [Private|Private Key] [Key Encrypting Key]. 
* [Public|Public Key] [Key Encrypting Key]. 
* [Symmetric|Symmetric Key Cryptography] [Key agreement] key. 
* [Private|Private Key] static [Key agreement] key. 
* [Public|Public Key] static [Key agreement] key. 
* [Private|Private Key] ephemeral [Key agreement] key. 
* [Public|Public Key] [Ephemeral] [Key agreement] key. 
* [Symmetric|Symmetric Key Cryptography] authorization key. This key provides privileges to an entity who is using a symmetric cryptographic method. The authorization key is known by the entity who monitors and grants access privileges.
* [Private|Private Key] authorization key. This is the [Private Key] of an [Asymmetric Key] pair that is used to assign privileges to an entity.
* [Public|Public Key] authorization key. 


A shorter list of Common functions for [{$pagename}]s
* [Encryption key]
* [Authentication Key|Message Authentication Code]
* [Digital Signature]
* [Key-Exchange]
* [Master Secret]
* [Root Certificate]

!! The importance of [Key Management]
Since [{$pagename}]s are used for protecting [Sensitive Data], there [MUST] be proper [Key Management]


!! More Information
There might be more information for this subject on one of the following:
[{ReferringPagesPlugin before='*' after='\n' }]
----
* [#1] - [Classification of Cryptographic Keys|https://www.cryptomathic.com/news-events/blog/classification-of-cryptographic-keys-functions-and-properties|target='_blank'] - based on information obtained 2019-02-22