
A Bluffer’s Guide to FIPS
There are two core things that have driven the Internet: RFCs (Request for Comments) and FIPS standards. Before these, we had slow and cumbersome methods of standardisation, such as with the ISO, ANSI and IEEE standards. Overall, there are many classic standards that help systems interconnect, including RFC 792 (IP), RFC 793 (TCP), RFC 1945 (HTTP), IEEE 802 (Ethernet), and X.509 (Digital Certificates).
So, if you are into cybersecurity, hopefully you will know about the FIPS (Federal Information Processing Standards) standards. These are defined by NIST and define the standards that are to be used by US federal government departments. Their scope now carries across the world, and any company that is serious about cybersecurity should be complying with them. So, let’s have a quick look at the key standards that your organisation really should be focused on.
Two of the main standards that are defined for FIPS are:
- FIPS 140–2/FIPS 140–3 — Security Requirements for Cryptographic Modules [here]. These define the baseline methods that should be used for all the cryptographic elements used within a system. Version 2 was defined in 2002, and Version 3 was defined in 2019. Obviously, it can take a while to upgrade systems, so many vendors are still in the process of migrating towards Version 3. Within FIPS 140, there are four different levels of security, and where Level 4 defines the best practice and includes strong levels of physical security.
- FIPS 186–5 -Digital Signature Standard (DSS) [here]. This defines the standardised methods used for digital signatures, which now include RSA, ECDSA, and EdDSA. With FIPS 186–5, the EdDSA method was added, and the DSA method was removed from previous versions.
Overall, NIST is probably the de-facto agency in the world that sets cybersecurity standards, and it has been proactive in looking to the future. For this, they have been running standardisation competitions for new Post Quantum Cryptography (PQC) standards. Their latest ones are:
- FIPS 203 — Module-Lattice-Based Key-Encapsulation Mechanism Standard (ML-KEM) [here]. This is a method that can replace ECDH for key exchange and RSA for public key encryption and uses lattice methods to replace our existing public key methods. More information here.
- FIPS 204 — Module-Lattice-Based Digital Signature Standard (ML-DSA) [here]. This method can replace ECDSA, RSA, and EdDSA for digital signatures, and uses lattice methods to replace our existing public key methods. More information here.
- FIPS 205 — Stateless Hash-Based Digital Signature Standard (SLH-DSA)[here]. This method can replace ECDSA, RSA, and EdDSA for digital signatures and uses hash-based methods to replace our existing public key methods. More information here.
Previous to the PQC competition, NIST ran a competition to find a new standard for a hashing method to provide an alternative to SHA-2. In the end, the Keccak method was approved and was standardised in 2015 as SHA-3:
- FIPS 202 — SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions [here]. This uses the Keccak method and uses a sponge technique that differs in its approach from SHA-2. Overall, Keccak was assessed as having a good performance level and strong levels of security.
One classic standard that NIST defined in 2001 was AES:
- FIPS 197 — Advanced Encryption Standard (AES) [here]. This defined a standard replacement for many symmetric key methods, and uses the Rijndael method. Overall, AES is by far the most widely used symmetric key method at the current time, and where we can use either a 128-bit, 192-bit or 256-bit key. With the rise of quantum computers, it is recommended that systems should upgrade to 256-bit key sizes.
Another classic FIPS standard defines the usage of the MAC (Message Authentication Code):
- FIPS 198–1 — The Keyed-Hash Message Authentication Code (HMAC) [here]. This was standardised in 2008 and is used where we sign a hash value of a message with a secret key and then use the same key to verify that the message has not been changed. You can find out more here.

One of the great standards related to defining alternatives to the MD5 hashing method and where NIST defined the SHA-2 standard:
- FIPS 180–4 Secure Hash Standard (SHS) [here]. This standard defined most of the hashing methods that we use these days, such as SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 and SHA-512/256.
FIPS is not the only standards series that NIST use, we also have SP, IR and CSWP (Cybersecurity Framework):