NIST platform security: roots of trust, firmware and secure enclaves SP 800-57 Part 1 Rev. 4
All1 Verify a digital signature that is signed by the corresponding2 Encrypt keys that can be decrypted using the corresponding3 Security Services4 Cryptographic Algorithms5 General Key Management Guidance6 Training: If the new system requires that new or different tasks (e.g., key7 Key States and Transitions8 Key-Management Phases and Functions9 Accountability, Audit, and Survivability
| Ref | Title | Text | |
|---|---|---|---|
| 4 | Cryptographic Algorithms | FIPS- approved or NIST-recommended cryptographic algorithms shall be used whenever cryptographic services are required. These approved algorithms have received an intensive security analysis prior to their approval and continue to be examin | |
| 4.1 in 4 |
Classes of Cryptographic Algorithms | There are three basic classes of approved cryptographic algorithms: hash functions, symmetric-key algorithms and asymmetric-key algorithms. The classes are defined by the number of cryptographic keys that are used in conjunction with the al | |
| 4.2 in 4 |
Cryptographic Algorithm Functionality | Security services are fulfilled using a number of different algorithms. In many cases, the same algorithm may be used to provide multiple services. | |
| 4.2.1 in 4.2 |
Hash Functions | Many algorithms and schemes that provide a security service use a hash function as a component of the algorithm. Hash functions are used by digital signature algorithms (see [FIPS186] ), Keyed-Hash Message Authentication Codes (HMAC) (see [ | |
| 4.2.2 in 4.2 |
Symmetric-Key Algorithms used for Encryption and Decryption | Encryption is used to provide confidentiality for data. The data to be protected is called plaintext when in its original form. Encryption transforms the data into ciphertext. Ciphertext can be transformed back into plaintext using decrypti | |
| 4.2.2.1 in 4.2.2 |
Advanced Encryption Standard (AES) | The AES algorithm is specified in [FIPS197] . AES encrypts and decrypts data in 128-bit blocks, using 128-, 192- or 256-bit keys. The nomenclature for AES for the different key sizes is AES- x , where x is the key size (e.g., AES-256). 3 S | |
| 4.2.2.2 in 4.2.2 |
Triple DEA (TDEA) | Triple DEA is defined in [SP800-67] . TDEA encrypts and decrypts data in 64-bit blocks, using three 56-bit keys. Two variations of TDEA have been defined: two-key TDEA (2TDEA), in which the first and third keys are identical, and three-key | |
| 4.2.2.3 in 4.2.2 |
Modes of Operation | With a block-cipher encryption operation, the same plaintext block will always encrypt to the same ciphertext block whenever the same key is used. If the multiple blocks in a typical message are encrypted separately, an adversary can easily | |
| 4.2.3 in 4.2 |
Message Authentication Codes (MACs) | Message Authentication Codes (MACs) can be used to provide source and integrity authentication. A MAC is a cryptographic checksum on the data that is used in order to provide assurance that the data has not changed and that the MAC was comp | |
| 4.2.3.1 in 4.2.3 |
MACs Using Block Cipher Algorithms | [SP800-38B] defines the CMAC mode: a mode that can be used to compute a MAC using approved block cipher algorithms, such as AES and TDEA. [ SP 800-38D ] defines the GMAC mode that can be used with AES. The key and block size used to compute | |
| 4.2.3.2 in 4.2.3 |
MACs Using Hash Functions | [FIPS198] specifies the computation of a MAC using an approved hash function. A variety of key sizes are allowed for HMAC, which is the MAC algorithm specified in [FIPS198]; the choice of key size depends on the amount of security to be pro | |
| 4.2.4 in 4.2 |
Digital Signature Algorithms | Digital signatures are used to provide source authentication, integrity authentication and support for non-repudiation. Digital signatures are used in conjunction with hash functions and are computed on data of any length (up to a limit tha | |
| 4.2.5 in 4.2 |
Key Establishment Schemes | Automated key-establishment schemes are used to set up keys to be used between communicating entities. Two types of automated key-establishment schemes are defined: key 4 Two general types of digital signature methods are discussed in lite | |
| 4.2.5.1 in 4.2.5 |
Discrete-Log Key-Agreement Schemes | [SP800-56A] specifies key-establishment schemes that use discrete-logarithm-based public- key algorithms. These schemes are specified using either finite-field math (the form of math that most of us use) or elliptic curve math. With the key | |
| 4.2.5.2 in 4.2.5 |
Key Establishment Using Integer-Factorization Schemes | [SP800-56B] provides key-establishment schemes that use integer-factorization-based public- key algorithms (e.g., RSA). These schemes are provided in [SP 800-56B] for both key agreement and key transport, and, in some cases, key confirmatio | |
| 4.2.5.3 in 4.2.5 |
Security Properties of the Key-Establishment Schemes | Cryptographic protocol designers need to understand the security properties of the schemes in order to assure that the desired capabilities are available to the user. In general, schemes where each party uses both an ephemeral and a static | |
| 4.2.5.4 in 4.2.5 |
Key Encryption and Key Wrapping | Key encryption provides confidentiality protection for a key by encrypting that key using a key-encrypting key; decryption reverses the process using the same key. Key wrapping provides both confidentiality and integrity protection for a ke | |
| 4.2.5.5 in 4.2.5 |
Key Confirmation | Key confirmation is used by two parties in a key-establishment process to provide assurance that common keying material and/or a shared secret 5 has been established. The assurance may be provided to only one party (unilateral) or it may be | |
| 4.2.6 in 4.2 |
Key Establishment Protocols | Key establishment protocols use key-establishment schemes in order to specify the processing necessary to establish a key. However, key-establishment protocols also specify message flow and format. Key-establishment protocols need to be car | |
| 4.2.7 in 4.2 |
Random Bit Generation | Random bit generators (RBGs) (also called random number generators (RNGs)) are required for the generation of keying material (e.g., keys and IVs). RBGs generate sequences of random bits (e.g., 010011); technically, RNGs translate those bit |
20 of 104.