Updated 1 Nov 2026 · 7 min read
On this page
After reading this you will be able to say what symmetric encryption, asymmetric encryption, hashing and salting each do, place AES, RSA, ECC, SHA-2, SHA-3 and bcrypt in the right box, explain key exchange and digital signatures, and name the algorithms NIST and the IETF have retired.
Three different jobs
Encryption is reversible. With the right key you turn plaintext into ciphertext and back again. Hashing is not. NIST SP 800-175B Rev. 1 describes a cryptographic hash function as "a one-way function that is extremely difficult to invert". You use a hash to detect change: hash the data when you store or send it, hash it again later with the same function, and if the two values match you can assume the data has not changed. A salt is an extra input to a hash. NIST SP 800-63-4 defines it as "a non-secret value used in a cryptographic process, usually to ensure that the results of computations for one instance cannot be reused by an attacker."
Symmetric encryption
Symmetric-key algorithms "use a single key to both apply cryptographic protection and to remove or check the protection", and that key must be kept secret if the data is to stay protected (SP 800-175B Rev. 1). AES is the example to know. NIST calls it the preferred block cipher algorithm for new products. It works on 128-bit blocks with 128, 192 or 256-bit keys, written AES-128, AES-192 and AES-256.
The problem is the number of keys. Every pair of parties needs its own key, and NIST calls the need for a large number of keying relationships a significant problem. SP 800-175B works the numbers: 4 parties have 6 possible pairs, and 1,000 parties have 499,500. That is n × (n - 1) ÷ 2, so 1,000 × 999 ÷ 2 = 499,500 keys to create and protect.
Asymmetric encryption
Asymmetric, or public-key, algorithms use a key pair: a public key and a private key that are mathematically related. The public key can be published, the private key must stay secret, and the private key cannot efficiently be worked out from the public one. Which key does what depends on the job:
| Job | Protect with | Verify or remove with |
|---|---|---|
| Encryption | Recipient's public key | Recipient's private key |
| Digital signature | Signer's private key | Signer's public key |
This cuts the number of keys. In the same NIST example, 1,000 parties need 1,000 key pairs per purpose, not 499,500 shared keys. The cost is speed: asymmetric algorithms "tend to be much slower than symmetric-key algorithms so are not used to process large amounts of data."
RSA is "a public-key algorithm that is used for key establishment and the generation and verification of digital signatures." ECC is elliptic curve cryptography. NIST describes ECDSA as using the same basic algorithms as DSA "except that the mathematics is based on the use of elliptic curves rather than finite fields", with considerably shorter keys than DSA and RSA, which saves storage and bandwidth.
Key exchange and digital signatures
NIST lists key establishment as one use of asymmetric algorithms, and notes that methods combining symmetric and asymmetric algorithms achieve better efficiency than asymmetric algorithms alone. There are two ways to establish a key. In key agreement, the resulting key is "a function of information contributed by all participants", so no single party decides it. NIST describes key-agreement schemes using Diffie-Hellman. In key transport, one party generates a symmetric key, encrypts it with the receiver's public key and sends it, and the receiver decrypts it with the private key.
For TLS 1.3, RFC 9846, which replaced RFC 8446 in July 2026, says "Static RSA and Diffie-Hellman cipher suites have been removed" and that "all public-key based key exchange mechanisms now provide forward secrecy."
A digital signature is computed with the signer's private key and checked with the public key. FIPS 186-5 says signatures detect unauthorised modification, authenticate the signer's identity and give non-repudiation, "since the signatory cannot easily repudiate the signature at a later time." FIPS 186-5 (February 2023) covers the RSA, ECDSA and EdDSA signature algorithms, and DSA is no longer approved for generating new signatures.
Hash algorithms: SHA-2 and SHA-3
FIPS 180 specifies SHA-1 and the SHA-2 family: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 and SHA-512/256. FIPS 202 specifies the SHA-3 family: SHA3-224, SHA3-256, SHA3-384 and SHA3-512. The number in the name is the output length in bits, and SHA-1 produces 160-bit outputs. The title of FIPS 202 describes SHA-3 as a "Permutation-Based Hash".
HMAC combines a hash function with a secret key. SP 800-175B describes it as a symmetric-key algorithm "based on the use of a hash function" for generating a message authentication code, specified in FIPS 198.
Salting and password hashing
NIST SP 800-63B-4 (July 2025) says passwords "SHALL be salted and hashed using a suitable password hashing scheme", and that these schemes "take a password, a salt, and a cost factor as inputs". The salt must be at least 32 bits and chosen to minimise collisions, and both the salt and the hash are stored for each password.
Salting defeats precomputation. A rainbow table, in the words of NIST's 2009 draft SP 800-118 (later retired), is "a lookup table that contains pre-computed password hashes". The same draft notes that rainbow tables "will not produce the right results if they do not take salting into account". RFC 8018 explains why: with a salt, "it is difficult for an opponent to precompute all the keys", and a 64-bit salt gives as many as 2^64 keys for each password. By the same arithmetic, NIST's 32-bit minimum gives 2^32, or 4,294,967,296, possible salt values for every password.
The cost factor exists to make each password guess more expensive for an attacker who has stolen the hashes (SP 800-63B-4). RFC 8018 says an iteration count of c adds log2(c) bits of strength against brute force or dictionary attacks, so 1,024 iterations add 10 bits because 2^10 = 1,024. Password hashing schemes you will meet:
- PBKDF2: defined in RFC 8018, with a salt and an iteration count.
- bcrypt: OpenBSD's Blowfish-based scheme. Its manual page gives it 128 bits of salt, a variable number of rounds and a maximum password length of 72.
- Argon2: RFC 9106 describes it as a "memory-hard function for password hashing".
Retired and weakened algorithms
| Algorithm | Status | Source |
|---|---|---|
| DES | Withdrawn as an approved algorithm in 2005 | NIST SP 800-175B Rev. 1 |
| Three-key TDEA (3DES) | Disallowed for encryption after 31 December 2023 unless other NIST guidance allows it, decryption allowed for legacy use | NIST SP 800-131A Rev. 2 |
| MD5 | "No longer acceptable where collision resistance is required such as digital signatures" | RFC 6151 |
| SHA-1 | Disallowed for digital signature generation unless NIST protocol guidance allows it. NIST plans to phase it out by 31 December 2030 | NIST SP 800-131A Rev. 2, NIST news, December 2022 |
| RC4 | TLS clients and servers must never negotiate RC4 cipher suites | RFC 7465 |
SP 800-131A Rev. 2 (March 2019) is still the final version. NIST posted an initial public draft of Revision 3 in October 2024. The next shift is quantum. On 13 August 2024 NIST released FIPS 203 (ML-KEM, for general encryption), FIPS 204 (ML-DSA) and FIPS 205 (SLH-DSA), both for digital signatures.
How this fits your exam
CompTIA Security+ SY0-701 (objectives version 6.0): objective 1.4, "Explain the importance of using appropriate cryptographic solutions", lists encryption (asymmetric, symmetric, key exchange, algorithms, key length), hashing, salting, digital signatures and key stretching. Objective 2.4 lists the cryptographic attacks downgrade, collision and birthday. The Security+ SY0-701 guide puts these in context.
ISC2 CISSP (exam outline effective 15 April 2024): Domain 3, Security Architecture and Engineering, includes 3.6 "Select and determine cryptographic solutions", with cryptographic methods such as symmetric, asymmetric, elliptic curves and quantum, and 3.7 "Understand methods of cryptanalytic attacks". See the CISSP study guide.
CompTIA SecurityX CAS-005 (objectives version 3.0): objective 3.7, "Explain the importance of advanced cryptographic concepts", lists post-quantum cryptography, key stretching and forward secrecy. Objective 3.8, "Given a scenario, apply the appropriate cryptographic use case and/or technique", lists hashing, symmetric and asymmetric cryptography and digital signatures. The SecurityX CAS-005 guide covers the rest.
Frequently asked questions
Is hashing a type of encryption?
No. Encryption is designed to be reversed with a key. A cryptographic hash is a one-way function, and NIST says it is not practical to reverse the process from the hash value back to the input. You check a hash by computing it again and comparing, not by decrypting it.
Does the salt need to be secret?
No. NIST defines a salt as a non-secret value, and SP 800-63B-4 requires the salt to be stored with each password hash. Its job is to stop identical passwords giving identical stored hashes and to stop precomputed tables working, not to act as a key.
Why not encrypt everything with RSA?
NIST notes that asymmetric algorithms tend to be much slower than symmetric ones and so are not used to process large amounts of data. It lists their uses as digital signatures and establishing keying material, while symmetric algorithms such as AES provide encryption for data confidentiality.
Sources
- NIST SP 800-175B Rev. 1: Guideline for Using Cryptographic Standards in the Federal Government: Cryptographic Mechanisms
- NIST SP 800-63B-4: Digital Identity Guidelines: Authentication and Authenticator Management
- NIST SP 800-131A Rev. 2: Transitioning the Use of Cryptographic Algorithms and Key Lengths
- RFC 8018: PKCS #5: Password-Based Cryptography Specification Version 2.1
- FIPS 186-5: Digital Signature Standard (DSS)
- CompTIA Security+ SY0-701 Certification Exam: Exam Objectives Version 6.0
Test yourself on these with the free Security+ SY0-701 practice questions, then work through the full Security+ guide.
