1. Concepts
    1. Hash:
      1. a summary of a file or message, often in numeric format. Hashes are used in digital signatures, in file and message authentication, and as a way to protect the integrity of sensitive data
    2. Hash Function:
      1. a mathematical procedure that converts a variable-sized amount of data into a smaller block of data. The hash function is designed to take an arbitrary data block from the file or message, use that as an input, and from that block produce a fixed-length hash value. The hash is created at the source and is recalculated and compared with the original hash at the destination.
    3. One-Way Function:
      1. A hash that is easy to compute when generated but difficult (or impossible) to compute in reverse.
    4. Cryptographic Hash Function:
      1. hash functions based on block ciphers. The methods used resemble that of cipher modes used in encryption. Examples include MD5 and SHA.
    5. Key Stretching:
      1. Takes a weak key, processes it, and outputs an enhanced and more powerful key, usually increasing key size to 128 bits.
  2. Cryptographic Hash Functions
    1. Message Digest 5 (MD5):
      1. A 128-bit key hash used to provide integrity of files and messages.
    2. Secure Hash Algorithm (SHA):
      1. A group of hash functions designed by the NSA and published by the NIST, widely used in government. The most common currently is SHA-1.
    3. RIPEMD and HMAC
      1. RIPEMD (RACE Integrity Primitives Evaluation Message Digest):
        1. A message digest algorithm used in cryptographic hashing.
        2. It is used less commonly than SHA and was designed as an open source hashing algorithm.
        3. The original RIPEMD (128-bit) had a collision reported, and therefore it is recommended to use RIPEMD-160 (160-bit), RIPEMD-256, or RIPEMD-320.
      2. HMAC (Hash-based Message Authentication Code):
        1. HMAC is a calculation of a MAC through the use of a cryptographic hash function such as MD5 or SHA-1.
        2. Message Authentication Code (MAC):
          1. A short piece of information used to authenticate a message and to provide integrity and authenticity assurances on the message.
          2. It checks the integrity of the cipher used and notifies the receiver if there were any modifications to the encrypted data. This way, the data cannot be repudiated when received.
    4. LANMAN, NTLM, and NTLMv2
      1. LANMAN
        1. LANMAN Hash:
          1. The original hash used to store Windows passwords, known as LM hash, based off the DES algorithm.
      2. NTLM and NTLMv2
        1. NTLM Hash:
          1. Successor to the LM hash. A more advanced hash used to store Windows passwords, based off the RC4 algorithm.
        2. NTLMv2 Hash:
          1. Successor to the NTLM hash. Based off the MD5 hashing algorithm.