Skip to the content.

Hashing

Hashing

Hashing is a process of converting data (like a file or a message) into a fixed-size value or string, typically using a hash function.

Common Uses

Digital Signature

The digital signature is the encrypted hash which is sent along with the message to prove the integrity of the message.

To learn more, please see Digital Signatures in Asymmetric Encryptions.

Digital Signature Standard (DSS)

DSS, or the Digital Signature Standard, is a cryptographic standard used for generating and verifying digital signatures.

How it works:

Code Signing

Code signing is the process of digitally signing software code or executables to verify their origin and ensure their integrity.

How It Works:

Use Cases:

Common Tools:

Challenges:

Hash Functions

Hash functions convert input data into a fixed-size hash value. Below are some of the common algorithms used for hashing.

MD5

An older hash function, MD5 is now considered insecure due to known collisions.

SHA Family

A family of cryptographic hash functions designed by the National Security Agency (NSA).

RIPEMD

RIPEMD stands for Race Integrity Primitives Evaluation Message Digest. It is a family of cryptographic hash functions designed to ensure data integrity and secure hashing.

HMAC

Stands for “Hash-based Message Authentication Code”, HMAC uses a hash function combined with a secret key to generate a message authentication code (MAC).

Commonly paired with other algorithms for additional security:

Common Attacks

Pass the Hash Attack

A “pass the hash” attack involves using a hashed password to gain unauthorized access to a system, bypassing the need for the plaintext password. Attackers obtain the hash and use it to authenticate without knowing the actual password.

To learn more, please see Pass the Hash Attack.

Birthday Attack

A “birthday attack” exploits the probability of hash function collisions, where two different inputs generate the same hash. It targets cryptographic systems to compromise security or create fake signatures.

To learn more, please see Birthday Attack.

Rainbow Table Attack

A rainbow table attack uses precomputed hashes to find a matching hash value for a user’s password (see ISC2 Study Guide, Module 2, under Types of Threats).

To learn more, please see Rainbow Table Attack.

Dictionary Attack

A dictionary attack is a type of attack that uses a list of common words to guess a user’s password.

To learn more, please see Dictionary Attack.

Brute Force Attack

A brute force attack uses every possible combination of letters, numbers, and symbols to guess a user’s password.

To learn more, please see Brute Force Attack.

Increasing Hash Security

Key Stretching

Key stretching enhances password or key security by making brute-force attacks more difficult. It involves repeatedly applying a computationally expensive operation to strengthen a simple input like a password.

How it works

Common Algorithms

Considerations

Salting

Salting improves password security by adding random data, called a “salt,” to the input before hashing. This makes the hashed result more resistant to brute-force and dictionary attacks.

How It Works

Considerations

Nonce

A nonce or “number used once” is a unique or random value used in cryptography to ensure security and prevent attacks.

Common Uses

Limiting Failed Login Attempts

Limiting failed login attempts is a security measure to prevent brute-force attacks by restricting the number of password tries a user can make.


Back to main page