Title: Hashes and Message Digest
1Hashes and Message Digest
- Hash is also called message digest
- One-way function dh(m) but no h(d)m
- Cannot find the message given a digest
- Cannot find m1, m2, where d1d2
- Arbitrary-length message to fixed-length digest
- Randomness
- any bit in the outputs 1 half the time
- each output 50 1 bits
2Birthday Problem
- How many people do you need so that the
probability of having two of them share the same
birthday is 50 ? - Random sample of n birthdays (input) taken from k
(365, output) - kn total number of possibilities
- (k)nk(k-1)(k-n1) possibilities without
duplicate birthday - Probability of no repetition
- p (k)n/kn ? 1 - n(n-1)/2k
- For k366, minimum n 23
- n(n-1)/2 pairs, each pair has a probability 1/k
of having the same output - n(n-1)/2k 50 ? nk1/2
3How Many Bits for Hash?
- m bits, takes 2m/2 to find two with the same hash
- 64 bits, takes 232 messages to search (doable)
- Need at least 128 bits
4Using Hash for Authentication
- Alice to Bob challenge rA
- Bob to Alice MD(KABrA)
- Bob to Alice rB
- Alice to Bob MD(KABrB)
- Only need to compare MD results
5Using Hash to Encrypt
- One-time pad with KAB
- Compute bit streams using MD, and K
- b1MD(KAB), biMD(KABbi-1),
- ? with message blocks
- Add a random 64 bit number (aka IV)
b1MD(KABIV), biMD(KABbi-1),
6General Structure of Secure Hash Code
- Iterative compression function
- Each f is collision-resistant, so is the
resulting hashing
7MD5 Message Digest Version 5
input Message
Output 128 bits Digest
- Until recently the most widely used hash
algorithm - in recent times have both brute-force
cryptanalytic concerns - Specified as Internet standard RFC1321
8MD5 Overview
9MD5 Overview
- Pad message so its length is 448 mod 512
- Append a 64-bit original length value to message
- Initialise 4-word (128-bit) MD buffer (A,B,C,D)
- Process message in 16-word (512-bit) blocks
- Using 4 rounds of 128 bit operations on message
block buffer - Add output to buffer input to form new buffer
value - Output hash value is the final buffer value
10Padding Twist
- Given original message M, add padding bits 10
such that resulting length is 64 bits less than a
multiple of 512 bits. - Append (original length in bits mod 264),
represented in 64 bits to the padded message - Final message is chopped 512 bits a block
11MD5 Process
- As many stages as the number of 512-bit blocks in
the final padded message - Digest 4 32-bit words MDABCD
- Every message block contains 16 32-bit words
m0m1m2m15 - Digest MD0 initialized to A01234567,B89abcdef,C
fedcba98, D76543210 - Every stage consists of 4 passes/rounds over the
message block, each modifying MD - Each block 4 rounds, each round 16 passes
12Processing of Block mi - 4 Passes
mi
MDi
ABCDfF(ABCD,mi,T1..16)
A
C
D
B
ABCDfG(ABCD,mi,T17..32)
ABCDfH(ABCD,mi,T33..48)
ABCDfI(ABCD,mi,T49..64)
MD i1
13Each Block Has 4 Rounds and 64 Steps
- Each step t (0
- Input
- mt a 32-bit word from the message
- With different shift every round
- Tt int(232 abs(sin(i))), 0
- Provided a randomized set of 32-bit patterns,
which eliminate any regularities in the input
data - ABCD current MD
- Output
- ABCD new MD
14MD5 Compression Function
15Secure Hash Algorithm
- Developed by NIST, specified in the Secure Hash
Standard (SHS, FIPS Pub 180), 1993 - SHA is specified as the hash algorithm in the
Digital Signature Standard (DSS), NIST
16General Logic
- Input message must be
- not really a problem
- Message is processed in 512-bit blocks
sequentially - Message digest is 160 bits
- SHA design is similar to MD5, but a lot stronger
17Basic Steps
- Step1 Padding
- Step2 Appending length as 64 bit unsigned
- Step3 Initialize MD buffer 5 32-bit words
- Store in big endian format, most significant bit
in low address - ABCDE
- A 67452301
- B efcdab89
- C 98badcfe
- D 10325476
- E c3d2e1f0
18Basic Steps...
- Step 4 the 80-step processing of 512-bit blocks
4 rounds, 20 steps each. - Each step t (0
- Input
- Wt a 32-bit word from the message
- Kt a constant.
- ABCDE current MD.
- Output
- ABCDE new MD.
19SHA-1 verses MD5
- Brute force attack is harder (160 vs 128 bits for
MD5) - Not vulnerable to any known cryptanalytic attacks
(compared to MD4/5) - A little slower than MD5 (80 vs 64 steps)
- Both work well on a 32-bit architecture
- Both designed as simple and compact for
implementation
20Revised Secure Hash Standard
- NIST have issued a revision FIPS 180-2
- adds 3 additional hash algorithms
- SHA-256, SHA-384, SHA-512
- designed for compatibility with increased
security provided by the AES cipher - structure detail is similar to SHA-1
- hence analysis should be similar
21Outline
- User authentication
- Password authentication, salt
- Challenge-Response
- Biometrics
- Token-based authentication
- Authentication in distributed systems (multi
service providers/domains) - Single sign-on, Microsoft Passport
- Trusted Intermediaries
22Password authentication
- Basic idea
- User has a secret password
- System checks password to authenticate user
- Issues
- How is password stored?
- How does system check password?
- How easy is it to guess a password?
- Difficult to keep password file secret, so best
if it is hard to guess password even if you have
the password file
23Basic password scheme
User
kiwifruit
exrygbzyf kgnosfix ggjoklbsz
hash function
24Basic password scheme
- Hash function h strings ? strings
- Given h(password), hard to find password
- No known algorithm better than trial and error
- User password stored as h(password)
- When user enters password
- System computes h(password)
- Compares with entry in password file
- No passwords stored on disk
25Unix password system
- Hash function is 25xDES
- 25 rounds of DES-variant encryptions
- Password file is publicly readable
- Other information in password file
- Any user can try dictionary attack
- User looks at password file
- Computes hash(word) for every word in dictionary
- Salt makes dictionary attack harder
R.H. Morris and K. Thompson, Password security a
case history, Communications of the ACM,
November 1979
26Salt
- Password line
- waltfURfuu4.4hY0U129129Belgers/home/walt/bin
/csh
Compare
Salt
Input
Key
Constant, A 64-bit block of 0
Ciphertext
25x DES
Plaintext
When password is set, salt is chosen
randomly 12-bit salt slows dictionary attack by
factor of 212
27Dictionary Attack some numbers
- Typical password dictionary
- 1,000,000 entries of common passwords
- people's names, common pet names, and ordinary
words. - Suppose you generate and analyze 10 guesses per
second - This may be reasonable for a web site offline is
much faster - Dictionary attack in at most 100,000 seconds 28
hours, or 14 hours on average - If passwords were random
- Assume six-character password
- Upper- and lowercase letters, digits, 32
punctuation characters - 689,869,781,056 password combinations.
- Exhaustive search requires 1,093 years on average
28Challenge-response Authentication
- Goal Bob wants Alice to prove her identity to
him
Protocol ap1.0 Alice says I am Alice
I am Alice
Failure scenario??
29Authentication
- Goal Bob wants Alice to prove her identity to
him
Protocol ap1.0 Alice says I am Alice
in a network, Bob can not see Alice, so Trudy
simply declares herself to be Alice
I am Alice
30Authentication another try
Protocol ap2.0 Alice says I am Alice in an IP
packet containing her source IP address
Failure scenario??
31Authentication another try
Protocol ap2.0 Alice says I am Alice in an IP
packet containing her source IP address
Trudy can create a packet spoofing Alices
address
32Authentication another try
Protocol ap3.0 Alice says I am Alice and sends
her secret password to prove it.
Failure scenario??
33Authentication another try
Protocol ap3.0 Alice says I am Alice and sends
her secret password to prove it.
Alices password
Alices IP addr
Im Alice
playback attack Trudy records Alices packet and
later plays it back to Bob
34Authentication yet another try
Protocol ap3.1 Alice says I am Alice and sends
her encrypted secret password to prove it.
Failure scenario??
35Authentication another try
Protocol ap3.1 Alice says I am Alice and sends
her encrypted secret password to prove it.
encryppted password
Alices IP addr
record and playback still works!
Im Alice
36Authentication yet another try
Goal avoid playback attack
Nonce number (R) used only once in-a-lifetime
ap4.0 to prove Alice live, Bob sends Alice
nonce, R. Alice must return R, encrypted with
shared secret key
I am Alice
R
Alice is live, and only Alice knows key to
encrypt nonce, so it must be Alice!
Failures, drawbacks?
37Authentication ap5.0
- ap4.0 doesnt protect against server database
reading - can we authenticate using public key techniques?
- ap5.0 use nonce, public key cryptography
I am Alice
Bob computes
R
and knows only Alice could have the private key,
that encrypted R such that
38Biometrics
- Use a persons physical characteristics
- fingerprint, voice, face, keyboard timing,
- Advantages
- Cannot be disclosed, lost, forgotten
- Disadvantages
- Cost, installation, maintenance
- Reliability of comparison algorithms
- False positive Allow access to unauthorized
person - False negative Disallow access to authorized
person - Privacy?
- If forged, how do you revoke?
39Biometrics
- Common uses
- Specialized situations, physical security
- Combine
- Multiple biometrics
- Biometric and PIN
- Biometric and token
40Token-based authenticationSmart Card
- With embedded CPU and memory
- Various forms
- PIN protected memory card
- Enter PIN to get the password
- Cryptographic challenge/response cards
- A cryptographic key in memory
- Computer create a random challenge
- Enter PIN to encrypt/decrypt the challenge w/ the
card
41Smart Card Example
Initial data
Challenge
Time
Time
function
- Some complications
- Initial data shared with server
- Need to set this up securely
- Shared database for many sites
- Clock skew
42Outline
- User authentication
- Password authentication, salt
- Challenge-Response
- Biometrics
- Token-based authentication
- Authentication in distributed systems
- Single sign-on, Microsoft Passport
- Trusted Intermediaries
43Single sign-on systems
e.g. Securant, Netegrity, Oblix
LAN
Rules
Database
user name, password, other auth
Authentication
Application
Server
- Advantages
- User signs on once
- No need for authentication at multiple sites,
applications - Can set central authorization policy for the
enterprise
44Microsoft Passport
- Launched 1999
- Claim 200 million accounts in 2002
- Over 3.5 billion authentications each month
- Log in to many websites using one account
- Used by MS services Hotmail, MSN Messenger or MSN
subscriptions also Radio Shack, etc. - Hotmail or MSN users automatically have Microsoft
Passport accounts set up - Passport may continue to evolve bugs have been
uncovered
45Four parts of Passport account
- Passport Unique Identifier (PUID)
- Assigned to the user when he or she sets up the
account - User profile, required to set up account
- Phone number or Hotmail or MSN.com e-mail address
- Also name, ZIP code, state, or country,
- Credential information
- E-mail address or phone number
- Minimum six-character password or PIN
- Four-digit security key, used for a second level
of authentication on sites requiring stronger
sign-in credentials - Wallet
- Passport-based application at passport.com domain
- E-commerce sites with Express Purchase function
use wallet information rather than prompt the
user to type in data
46Passport log-in
47Trusted Intermediaries
- Symmetric key problem
- How do two entities establish shared secret key
over network? - Solution
- trusted key distribution center (KDC) acting as
intermediary between entities
- Public key problem
- When Alice obtains Bobs public key (from web
site, e-mail, diskette), how does she know it is
Bobs public key, not Trudys? - Solution
- trusted certification authority (CA)
48Key Distribution Center (KDC)
- Alice, Bob need shared symmetric key.
- KDC server shares different secret key with each
registered user (many users) - Alice, Bob know own symmetric keys, KA-KDC KB-KDC
, for communicating with KDC.
KDC
49Key Distribution Center (KDC)
Q How does KDC allow Bob, Alice to determine
shared symmetric secret key to communicate with
each other?
KDC generates R1
KA-KDC(A,B)
KA-KDC(R1, KB-KDC(A,R1) )
Alice knows R1
Bob knows to use R1 to communicate with Alice
KB-KDC(A,R1)
Alice and Bob communicate using R1 as session
key for shared symmetric encryption
50Certification Authorities
- Certification authority (CA) binds public key to
particular entity, E. - E (person, router) registers its public key with
CA. - E provides proof of identity to CA.
- CA creates certificate binding E to its public
key. - certificate containing Es public key digitally
signed by CA CA says this is Es public key
Bobs public key
CA private key
certificate for Bobs public key, signed by CA
-
Bobs identifying information
51Certification Authorities
- When Alice wants Bobs public key
- gets Bobs certificate (Bob or elsewhere).
- apply CAs public key to Bobs certificate, get
Bobs public key
Bobs public key
CA public key
52Single KDC/CA
- Problems
- Single administration trusted by all principals
- Single point of failure
- Scalability
- Solutions break into multiple domains
- Each domain has a trusted administration
53Multiple KDC/CA Domains
- Secret keys
- KDCs share pairwise key
- topology of KDC tree with shortcuts
- Public keys
- cross-certification of CAs
- example Alice with CAA, Boris with CAB
- Alice gets CABs certificate (public key p1),
signed by CAA - Alice gets Boris certificate (its public key
p2), signed by CAB (p1)
54Backup Slides
55MD5 Compression Function
- Each round has 16 steps of the form
- a b((ag(b,c,d)XkTi)
- a,b,c,d refer to the 4 words of the buffer, but
used in varying permutations - note this updates 1 word only of the buffer
- after 16 steps each word is updated 4 times
- where g(b,c,d) is a different nonlinear function
in each round (F,G,H,I)
56Functions and Random Numbers
- F(x,y,z) (x?y)?(x ? z)
- selection function
- G(x,y,z) (x ? z) ?(y ? z)
- H(x,y,z) x?y? z
- I(x,y,z) y?(x ? z)
57Basic Steps...
- Only 4 per-round distinctive additive constants
- 0
- 20
- 40
- 60
58Advantages of salt
- Without salt
- Same hash functions on all machines
- Compute hash of all common strings once
- Compare hash file with all known password files
- With salt
- One password hashed 212 different ways
- Precompute hash file?
- Need much larger file to cover all common strings
- Dictionary attack on known password file
- For each salt found in file, try all common
strings