SlideShare a Scribd company logo
CNIT 141
Cryptography for Computer Networks
7. Keyed Hashing
Updated 10-8-2020
Topics
• Message Authentication Codes (MACs)
• Pseudorandom Functions (PRFs)
• Creating Keyed Hashes from Unkeyed Hashes
• Creating Keyed Hashes from Block Ciphers:
CMAC
• Dedicated MAC Designs
• How Things Can Go Wrong
Keyed Hashing
• Anyone can calculate the SHA hash of a
message
• No secret value involved
• Keyed hashing forms the basis for two
algorithms
• Message Authentication Code (MAC)
• Pseudorandom Function (PRF)
Message Authentication
Codes (MACs)
MACs
• A MAC protects a message's integrity and
authenticity with a tag T
• T = MAC(K, M)
• Verifying the MAC proves both that the
message wasn't altered, and that it came from
the sender holding the key
MACs in Secure
Communication
• MACs are used in
• IPSec, SSH, and TLS
• 3G & 4G telephony encrypt packets but don't
use a MAC
• An attacker can modify the packets
• Causing static on the line
Forgery
• Attacker shouldn't be able to create a tag
without knowing the key
• Such a M, T pair is called a forgery
• A system is unforgeable if forgeries are
impossible to find
Known-Message Attack
• An attacker passively collects messages and
tags
• Tries to find the key
• This is a very weak attack
Chosen-Message Attacks
• An attacker can choose messages that get
authenticated
• And observe the authentication tags
• The standard model to test MAC algorithms
Replay Attacks
• MACs are not safe from replay attacks
• To detect them, protocols include a message
number in each message
• A replayed message will have an out-of-
order message number
Pseudorandom Functions
(PRFs)
PRFs
• Use a secret key to return PRF(K, M)
• Output looks random
• Key Derivation schemes use PRFs
• To generate cryptographic keys from a
master key or password
• Identification schemes use PRFs
• To generate a response from a random
challenge
Uses of PRFs
• 4G telephony uses PRFs
• To authenticate a SIM card
• To generate the encryption key and MAC
used during a phone call
• TLS uses a PRF
• To generate key material from a master
secret and a session-speciifc random value
PRF Security
• Has no pattern, looks random
• Indistinguishable from random bits
• Fundamentally stronger than MACs
• MACs are secure if they can't be forged
• But may not appear random
Creating Keyed Hashes
from Unkeyed Hashes
The Secret-Prefix
Construction
• Prepend key to the message, and return
• Hash(K || M)
• May be vulnerable to length-extension attacks
• Calculating Hash(K || M1 || M2) from
Hash(K || M1)
• SHA-1 & SHA-2 are vulnerable to this, but not
SHA-3
Insecurity with Different
Key Lengths
• No way to tell key from message
• If K is 123abc and M is def00
• If K is 123a and M is bcdef00
• Result is Hash(123abcdef00)
• To fix this, BLAKE2 and SHA-3 include a
keyed mode
• Another fix is to include the key's length in
the hash: Hash(L || K || M)
Secret-Suffix Construction
• Tag is Hash(M || K)
• Prevents length-extension attack
• If you know Hash(M1 || K)
• You can calculate Hash(M1 || K || M2)
• But not Hash(M1 || M2 || K)
Secret-Suffix Construction
• But if there's a hash collision
• Hash(M1) = Hash(M2)
• The tags can collide too
• Hash(M1 || K) = Hash(M2 || K)
HMAC Construction
• More secure than secret prefix or secret suffix
• Used by IPSec, SSH, and TLS
• Specifed in NIST's FIPS 198-6 standard
• And RFC 2104
HMAC Construction
• Key K is usually shorter than block size
• Uses opad (outer padding) and ipad (inner
padding)
• opad is a series of 0x5c bytes as long as the
block size
• ipad is a series of 0x36 bytes as long as the
block size
Specifying Hash Function
• Must specify, as in HMAC-SHA256
A Generic Attack Against
Hash-Based MACs
• Can forge a HMAC tag from a hash collision
• Requires 2n/2 calculations
• n is length of digest
• Doesn't require a hash length extension attack
• Works on all MACs based on an iterated hash
function
A Generic Attack Against
Hash-Based MACs
• Infeasible for n larger than 128 bits
CNIT 1417. Keyed Hashing
Creating Keyed Hashes
from Block Ciphers: CMAC
CMAC and Block Ciphers
• The compression function in many hash
functions is built on a block cipher
• Ex: HMAC-SHA-256
• CMAC uses only a block cipher
• Less popular than HMAC
• Used in IKE (part of IPSec)
CBC-MAC
• CMAC was designed in 2005
• As an improved version of CBC-MAC
• CBC-MAC:
• Encrypt M with IV=0
• Discard all but the last ciphertext block
IV = 0
Breaking CBC-MAC
• Suppose attacker knows the tags T1 and T2
• For two single-block messages M1 and M2
M1
T1
IV = 0
M2
T2
IV = 0
Breaking CBC-MAC
• T2 is also the tag of this message:
• M1 || (M2 ^ T1)
• For two single-block messages M1 and M2
• Attacker can forge a message and tag
M1 M2 ^ T1
T1 T2
IV = 0
Fixing CBC-MAC
• Use key K to create K1 and K2
• Encrypt last block with a different key
K K K1
IV = 0
CBC-MAC
• If the message fills the last block exactly
• Uses K and K1
CBC-MAC
• If padding is needed
• Uses K and K2
Dedicated MAC Designs
Dedicated Design
• The preceding systems use hash functions
and block ciphers to build PRFs
• Convenient but inefficient
• Could be made faster by designing specifically
for MAC use case
Poly1305
• Designed in 2005
• Optimized to run fast on modern CPUs
• Used by Google for HTTPS and OpenSSH
Universal Hash Functions
• UHF is much weaker than a cryptographic
hash function
• But much faster
• Not collision-resistant
• Uses a secret key K
• UH(K, M)
• Only one security requirement
• For two messages M1 and M2
• Neglible probability that
• UH(K, M1) = UH(K, M2)
• For a random K
• Doesn't need to be pseudorandom
Universal Hash Functions
• Weakness:
• K can only be used once
• Otherwise an attacker can solve two equations
like this and gain information about the key
Universal Hash Functions
Wegman-Carter MACs
• Builds a MAC from a universal hash function
and a PRF
• Using two keys K1 and K2
• And a nonce N that is unique for each key,
K2
• Secure if
Wegman-Carter MACs
Poly1305-AES
• Much faster than HMAC-based MACSs or even CMACs
• Only computes one block of AES
• Poly1305 is a universal hash
• Remaining processing runs in parallel with simple
arithmetic operations
• Secure as long as AES is
SipHash
• Poly1305 is optimized for long messages
• Requires nonce, which must not be repeated
• For small messages, Poly1305 is overkill
• SipHash is best for short messages
• Less than 128 bytes
• Designed to resist DoS attacks on hash tables
• Uses XORs, additions, and word rotations
SipHash
How Things Can Go
Wrong
Timing Attacks on MAC
Verficiation
• Side-channel attacks
• Target the implementation
• Not the algorithm
• This code will return
faster if the first byte
is incorrect
• Solution: write
constant-time code
When Sponges Leak
• If attacker gets the internal state
• Through a side-channel attack
• Permutation-based algorithms fail
• Allowing forgery
• Applies to SHA-3 and SipHash
• But not compression-function-based MACs
• Like HMAC-SHA-256 and BLAKE2
CNIT 1417. Keyed Hashing

More Related Content

PDF
CNIT 141: 6. Hash Functions
PDF
CNIT 141: 5. Stream Ciphers
PDF
CNIT 141: 2. Randomness
PDF
CNIT 141: 8. Authenticated Encryption
PDF
CNIT 141: 4. Block Ciphers
PDF
HES2011 - Tarjei Mandt – Kernel Pool Exploitation on Windows 7
PDF
CNIT 141: 6. Hash Functions
PDF
Practical Malware Analysis Ch12
CNIT 141: 6. Hash Functions
CNIT 141: 5. Stream Ciphers
CNIT 141: 2. Randomness
CNIT 141: 8. Authenticated Encryption
CNIT 141: 4. Block Ciphers
HES2011 - Tarjei Mandt – Kernel Pool Exploitation on Windows 7
CNIT 141: 6. Hash Functions
Practical Malware Analysis Ch12

What's hot (20)

PDF
9. Hard Problems
PDF
5. Stream Ciphers
PDF
MacOS memory allocator (libmalloc) Exploitation
PDF
CNIT 127: Ch 18: Source Code Auditing
PDF
Post Quantum Cryptography: Technical Overview
PPTX
AES-GCM common pitfalls and how to work around them.pptx
PDF
ChaCha20-Poly1305 Cipher Summary - AdaLabs SPARKAda OpenSSH Ciphers
PDF
CNIT 141: 9. Hard Problems
PDF
Windows 10 Nt Heap Exploitation (Chinese version)
PDF
4. The Advanced Encryption Standard (AES)
PDF
how-to-bypass-AM-PPL
PDF
CNIT 141 7. Keyed Hashing
PPTX
Rsa cryptosystem
PDF
11. Diffie-Hellman
PDF
Post quantum cryptography
PDF
Linux Binary Exploitation - Return-oritend Programing
PDF
CNIT 141: 12. Elliptic Curves
PDF
Windows 10 Nt Heap Exploitation (English version)
PDF
Cryptographie
9. Hard Problems
5. Stream Ciphers
MacOS memory allocator (libmalloc) Exploitation
CNIT 127: Ch 18: Source Code Auditing
Post Quantum Cryptography: Technical Overview
AES-GCM common pitfalls and how to work around them.pptx
ChaCha20-Poly1305 Cipher Summary - AdaLabs SPARKAda OpenSSH Ciphers
CNIT 141: 9. Hard Problems
Windows 10 Nt Heap Exploitation (Chinese version)
4. The Advanced Encryption Standard (AES)
how-to-bypass-AM-PPL
CNIT 141 7. Keyed Hashing
Rsa cryptosystem
11. Diffie-Hellman
Post quantum cryptography
Linux Binary Exploitation - Return-oritend Programing
CNIT 141: 12. Elliptic Curves
Windows 10 Nt Heap Exploitation (English version)
Cryptographie
Ad

Similar to CNIT 1417. Keyed Hashing (20)

PDF
CNIT 141: 7. Keyed Hashing
PDF
Cns
PDF
Cs8792 cns - unit iv
PDF
Cs8792 cns - unit iv
PPT
lec-05-Message authentication, hashing, basic number theory.ppt
PPT
NSC_Unit-III_final.ppt
PPT
PPTX
Hash Function
PPTX
Lecture 2 Message Authentication
PDF
Message Authentication and Hash Function.pdf
PPTX
unit4- predicate logic in artificial intelligence
PPTX
Academy PRO: Cryptography 3
PPT
cryptography and network security by william stallings
PPT
HMAC&CMAC.ppt
PPT
ch12.ppt
PPT
secure hash function for authentication in CNS
PPT
ch11.ppt
ODP
CISSP Week 20
PPTX
Cryptography and network_security
CNIT 141: 7. Keyed Hashing
Cns
Cs8792 cns - unit iv
Cs8792 cns - unit iv
lec-05-Message authentication, hashing, basic number theory.ppt
NSC_Unit-III_final.ppt
Hash Function
Lecture 2 Message Authentication
Message Authentication and Hash Function.pdf
unit4- predicate logic in artificial intelligence
Academy PRO: Cryptography 3
cryptography and network security by william stallings
HMAC&CMAC.ppt
ch12.ppt
secure hash function for authentication in CNS
ch11.ppt
CISSP Week 20
Cryptography and network_security
Ad

More from Sam Bowne (20)

PDF
Introduction to the Class & CISSP Certification
PDF
Cyberwar
PDF
3: DNS vulnerabilities
PDF
8. Software Development Security
PDF
4 Mapping the Application
PDF
3. Attacking iOS Applications (Part 2)
PDF
12 Elliptic Curves
PDF
2a Analyzing iOS Apps Part 1
PDF
9 Writing Secure Android Applications
PDF
12 Investigating Windows Systems (Part 2 of 3)
PDF
10 RSA
PDF
12 Investigating Windows Systems (Part 1 of 3
PDF
8 Android Implementation Issues (Part 1)
PDF
11 Analysis Methodology
PDF
8. Authenticated Encryption
PDF
7. Attacking Android Applications (Part 2)
PDF
7. Attacking Android Applications (Part 1)
PDF
6 Scope & 7 Live Data Collection
PDF
4. Block Ciphers
PDF
6 Analyzing Android Applications (Part 2)
Introduction to the Class & CISSP Certification
Cyberwar
3: DNS vulnerabilities
8. Software Development Security
4 Mapping the Application
3. Attacking iOS Applications (Part 2)
12 Elliptic Curves
2a Analyzing iOS Apps Part 1
9 Writing Secure Android Applications
12 Investigating Windows Systems (Part 2 of 3)
10 RSA
12 Investigating Windows Systems (Part 1 of 3
8 Android Implementation Issues (Part 1)
11 Analysis Methodology
8. Authenticated Encryption
7. Attacking Android Applications (Part 2)
7. Attacking Android Applications (Part 1)
6 Scope & 7 Live Data Collection
4. Block Ciphers
6 Analyzing Android Applications (Part 2)

Recently uploaded (20)

PDF
Supply Chain Operations Speaking Notes -ICLT Program
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PDF
TR - Agricultural Crops Production NC III.pdf
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PDF
Pre independence Education in Inndia.pdf
PDF
Anesthesia in Laparoscopic Surgery in India
PPTX
Pharma ospi slides which help in ospi learning
PDF
Abdominal Access Techniques with Prof. Dr. R K Mishra
PPTX
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PPTX
Lesson notes of climatology university.
PPTX
master seminar digital applications in india
PDF
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
PDF
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
PDF
Complications of Minimal Access Surgery at WLH
PDF
VCE English Exam - Section C Student Revision Booklet
PDF
01-Introduction-to-Information-Management.pdf
Supply Chain Operations Speaking Notes -ICLT Program
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
STATICS OF THE RIGID BODIES Hibbelers.pdf
TR - Agricultural Crops Production NC III.pdf
Renaissance Architecture: A Journey from Faith to Humanism
Final Presentation General Medicine 03-08-2024.pptx
Microbial diseases, their pathogenesis and prophylaxis
Pre independence Education in Inndia.pdf
Anesthesia in Laparoscopic Surgery in India
Pharma ospi slides which help in ospi learning
Abdominal Access Techniques with Prof. Dr. R K Mishra
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
Lesson notes of climatology university.
master seminar digital applications in india
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
Complications of Minimal Access Surgery at WLH
VCE English Exam - Section C Student Revision Booklet
01-Introduction-to-Information-Management.pdf

CNIT 1417. Keyed Hashing

  • 1. CNIT 141 Cryptography for Computer Networks 7. Keyed Hashing Updated 10-8-2020
  • 2. Topics • Message Authentication Codes (MACs) • Pseudorandom Functions (PRFs) • Creating Keyed Hashes from Unkeyed Hashes • Creating Keyed Hashes from Block Ciphers: CMAC • Dedicated MAC Designs • How Things Can Go Wrong
  • 3. Keyed Hashing • Anyone can calculate the SHA hash of a message • No secret value involved • Keyed hashing forms the basis for two algorithms • Message Authentication Code (MAC) • Pseudorandom Function (PRF)
  • 5. MACs • A MAC protects a message's integrity and authenticity with a tag T • T = MAC(K, M) • Verifying the MAC proves both that the message wasn't altered, and that it came from the sender holding the key
  • 6. MACs in Secure Communication • MACs are used in • IPSec, SSH, and TLS • 3G & 4G telephony encrypt packets but don't use a MAC • An attacker can modify the packets • Causing static on the line
  • 7. Forgery • Attacker shouldn't be able to create a tag without knowing the key • Such a M, T pair is called a forgery • A system is unforgeable if forgeries are impossible to find
  • 8. Known-Message Attack • An attacker passively collects messages and tags • Tries to find the key • This is a very weak attack
  • 9. Chosen-Message Attacks • An attacker can choose messages that get authenticated • And observe the authentication tags • The standard model to test MAC algorithms
  • 10. Replay Attacks • MACs are not safe from replay attacks • To detect them, protocols include a message number in each message • A replayed message will have an out-of- order message number
  • 12. PRFs • Use a secret key to return PRF(K, M) • Output looks random • Key Derivation schemes use PRFs • To generate cryptographic keys from a master key or password • Identification schemes use PRFs • To generate a response from a random challenge
  • 13. Uses of PRFs • 4G telephony uses PRFs • To authenticate a SIM card • To generate the encryption key and MAC used during a phone call • TLS uses a PRF • To generate key material from a master secret and a session-speciifc random value
  • 14. PRF Security • Has no pattern, looks random • Indistinguishable from random bits • Fundamentally stronger than MACs • MACs are secure if they can't be forged • But may not appear random
  • 15. Creating Keyed Hashes from Unkeyed Hashes
  • 16. The Secret-Prefix Construction • Prepend key to the message, and return • Hash(K || M) • May be vulnerable to length-extension attacks • Calculating Hash(K || M1 || M2) from Hash(K || M1) • SHA-1 & SHA-2 are vulnerable to this, but not SHA-3
  • 17. Insecurity with Different Key Lengths • No way to tell key from message • If K is 123abc and M is def00 • If K is 123a and M is bcdef00 • Result is Hash(123abcdef00) • To fix this, BLAKE2 and SHA-3 include a keyed mode • Another fix is to include the key's length in the hash: Hash(L || K || M)
  • 18. Secret-Suffix Construction • Tag is Hash(M || K) • Prevents length-extension attack • If you know Hash(M1 || K) • You can calculate Hash(M1 || K || M2) • But not Hash(M1 || M2 || K)
  • 19. Secret-Suffix Construction • But if there's a hash collision • Hash(M1) = Hash(M2) • The tags can collide too • Hash(M1 || K) = Hash(M2 || K)
  • 20. HMAC Construction • More secure than secret prefix or secret suffix • Used by IPSec, SSH, and TLS • Specifed in NIST's FIPS 198-6 standard • And RFC 2104
  • 21. HMAC Construction • Key K is usually shorter than block size • Uses opad (outer padding) and ipad (inner padding) • opad is a series of 0x5c bytes as long as the block size • ipad is a series of 0x36 bytes as long as the block size
  • 22. Specifying Hash Function • Must specify, as in HMAC-SHA256
  • 23. A Generic Attack Against Hash-Based MACs • Can forge a HMAC tag from a hash collision • Requires 2n/2 calculations • n is length of digest • Doesn't require a hash length extension attack • Works on all MACs based on an iterated hash function
  • 24. A Generic Attack Against Hash-Based MACs • Infeasible for n larger than 128 bits
  • 26. Creating Keyed Hashes from Block Ciphers: CMAC
  • 27. CMAC and Block Ciphers • The compression function in many hash functions is built on a block cipher • Ex: HMAC-SHA-256 • CMAC uses only a block cipher • Less popular than HMAC • Used in IKE (part of IPSec)
  • 28. CBC-MAC • CMAC was designed in 2005 • As an improved version of CBC-MAC • CBC-MAC: • Encrypt M with IV=0 • Discard all but the last ciphertext block IV = 0
  • 29. Breaking CBC-MAC • Suppose attacker knows the tags T1 and T2 • For two single-block messages M1 and M2 M1 T1 IV = 0 M2 T2 IV = 0
  • 30. Breaking CBC-MAC • T2 is also the tag of this message: • M1 || (M2 ^ T1) • For two single-block messages M1 and M2 • Attacker can forge a message and tag M1 M2 ^ T1 T1 T2 IV = 0
  • 31. Fixing CBC-MAC • Use key K to create K1 and K2 • Encrypt last block with a different key K K K1 IV = 0
  • 32. CBC-MAC • If the message fills the last block exactly • Uses K and K1
  • 33. CBC-MAC • If padding is needed • Uses K and K2
  • 35. Dedicated Design • The preceding systems use hash functions and block ciphers to build PRFs • Convenient but inefficient • Could be made faster by designing specifically for MAC use case
  • 36. Poly1305 • Designed in 2005 • Optimized to run fast on modern CPUs • Used by Google for HTTPS and OpenSSH
  • 37. Universal Hash Functions • UHF is much weaker than a cryptographic hash function • But much faster • Not collision-resistant • Uses a secret key K • UH(K, M)
  • 38. • Only one security requirement • For two messages M1 and M2 • Neglible probability that • UH(K, M1) = UH(K, M2) • For a random K • Doesn't need to be pseudorandom Universal Hash Functions
  • 39. • Weakness: • K can only be used once • Otherwise an attacker can solve two equations like this and gain information about the key Universal Hash Functions
  • 40. Wegman-Carter MACs • Builds a MAC from a universal hash function and a PRF • Using two keys K1 and K2 • And a nonce N that is unique for each key, K2
  • 42. Poly1305-AES • Much faster than HMAC-based MACSs or even CMACs • Only computes one block of AES • Poly1305 is a universal hash • Remaining processing runs in parallel with simple arithmetic operations • Secure as long as AES is
  • 43. SipHash • Poly1305 is optimized for long messages • Requires nonce, which must not be repeated • For small messages, Poly1305 is overkill • SipHash is best for short messages • Less than 128 bytes
  • 44. • Designed to resist DoS attacks on hash tables • Uses XORs, additions, and word rotations SipHash
  • 45. How Things Can Go Wrong
  • 46. Timing Attacks on MAC Verficiation • Side-channel attacks • Target the implementation • Not the algorithm • This code will return faster if the first byte is incorrect • Solution: write constant-time code
  • 47. When Sponges Leak • If attacker gets the internal state • Through a side-channel attack • Permutation-based algorithms fail • Allowing forgery • Applies to SHA-3 and SipHash • But not compression-function-based MACs • Like HMAC-SHA-256 and BLAKE2