Hashing Functions

Hashing Functions – CISSP Domain 3

Today we’re going to take a quick look at hashing functions, as covered in Domain 3 of the CISSP common body of knowledge (CBK). There is often some confusion between hashing, encryption, and encoding, so one of the purposes of this article is to help differentiate between them.

To start, a hash function is defined as a one-way operation that accepts an input message (of any length) and generates a fixed-length output. The output that gets generated from the original message is typically referred to as a message digest, or hash.

In other words, take any message, run it through the hashing function, and the output should result in a fixed-length hash.

When a hash function is defined as “one-way”, that means it’s highly unlikely (or virtually impossible) that anyone would be able to find what the input text was when only provided with a hashed output. This is different from either encryption or encoding, which are two-way operations where something can be both encrypted and decrypted, or encoded and decoded.

The CISSP material references five basic requirements which, according to RSA Security, are needed to form a basic cryptographic hash function:

  1. Input can be any length
  2. Output has a fixed length
  3. The hash function is reasonably easy to compute for any input
  4. The hash function is one-way (meaning it’s very difficult or impossible to determine the input when provided with only the output)
  5. The hash function is collision free (meaning that it is also extremely difficult to find two messages that produce the same hash value)

Below is a list of example algorithms. You may recognize a few of these, such as MD5, HMAC, or SHA-1:

  • MD2 Message Digest 2
  • MD4 Message Digest 4
  • MD5 Message Digest 5
  • HAVAL Hash of Variable Length (an MD5 variant)
  • HMAC Hash Message Authenticating Code
  • SHA Secure Hash Algorithm
  • SHA-1 Secure Hash Algorithm
  • SHA2-224/SHA3-224
  • SHA2-256/SHA3-256
  • SHA2-384/SHA3-384
  • SHA2-512/SHA3-512

Finally, if you’re wondering about the differences between the different SHA2 and SHA3 algorithms listed above, here’s a brief explanation to help keep them straight. When you see something that uses SHA 256 or 512, it’s related to the output and means that the hash function produces a 256-bit or 512-bit message digest. Whereas when you see SHA 224 or 384, it indicates that a truncated version of SHA 256 or 512 is being used to produce a 224-bit or 384-bit message digest.

There is also an audio/video version of this material for anyone who prefers that format:

Preparing for the CISSP exam?

Our Pay What You Can CISSP Mentorship covers all eight domains over 10 weeks, with lifetime alumni access. Check our training page for the next session.

View Training Schedule

More Posts

Send Us A Message

Get the Debrief in Your Inbox

New findings, series updates, and usually some bad puns. Delivered when we actually have something worth saying.

No spam. Unsubscribe whenever. We’re evil, not rude.

This website uses cookies

We use cookies to personalize content, provide social media features, and analyze our traffic. We also share information about your use of our site with our analytics partners. You can change your preferences at any time. For more information, please see our Privacy Policy.