0% found this document useful (0 votes)
42 views

Module 3

This document discusses message authentication and summarizes key points about message integrity and authentication techniques. It covers protecting message integrity, validating originators, and non-repudiation. It also summarizes encryption, message authentication codes (MACs), and hash functions as methods used for message authentication and integrity. Finally, it provides details on common hash functions like MD2, MD5, and Secure Hash Algorithm (SHA).
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
42 views

Module 3

This document discusses message authentication and summarizes key points about message integrity and authentication techniques. It covers protecting message integrity, validating originators, and non-repudiation. It also summarizes encryption, message authentication codes (MACs), and hash functions as methods used for message authentication and integrity. Finally, it provides details on common hash functions like MD2, MD5, and Secure Hash Algorithm (SHA).
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 73

message authentication is concerned with:

●protecting the integrity of a message

●validating identity of originator

●non-repudiation of origin (dispute resolution)


Security Requirements
• disclosure
• traffic analysis
• masquerade
• content modification
• sequence modification
• timing modification
• source repudiation
• destination repudiation
Protocol for Message
Transaction in Secure way

• Confidentiality
• Integrity
• Authentication
• Non repudiation
• No replay
Message Integrity and Message
Authentication
Message Integrity
• Techniques we have discussed so far
provides security or confidentiality but not
integrity.
• E.g death will
• One way of document integrity is
-signature or fingerprint .
• Electronics equivalent of the document
and fingerprint pair is the message and
digest pair.
Msg Hash Message
--- function digest
---
------
--------
------------
-
Checking Integrity

N
Msg
----= Y
------ Hash Current Same
?
--------- function digest
----------

Previous
digest
Message Authentication
• message authentication is concerned with:
– protecting the integrity of a message
– validating identity of originator
– non-repudiation of origin (dispute resolution)
• will consider the security requirements
• then three alternative functions used:
– message encryption
– message authentication code (MAC)
– hash function
Message Encryption
• message encryption by itself also provides a measure of
authentication
• if symmetric encryption is used then:
– receiver know sender must have created it
– since only sender and receiver know key used
– know content cannot of been altered
– if message has suitable structure, redundancy or a checksum to
detect any changes
Message Encryption
• if public-key encryption is used:
– encryption provides no confidence of sender
– since anyone potentially knows public-key
– however if
• sender signs message using their private-key
• then encrypts with recipients public key
• have both secrecy and authentication
– again need to recognize corrupted messages
– but at cost of two public-key uses on message
MDC
MAC
• Security of MAC is dependent on underlying
hash algorithm
Nested MAC
HMAC

Hash n bit
• H ((k+ xor opad) || H((k+ xor ipad) || M))

• Ipad 36
• Opad 5c
CMAC

CBC MAC
Using Symmetric Ciphers for MACs

• can use any block cipher chaining mode


and use final block as a MAC
• Data Authentication Algorithm (DAA) is
a widely used MAC based on DES-CBC
– using IV=0 and zero-pad of final block
– encrypt message using DES in CBC mode
– and send just the final block as the MAC
• or the leftmost M bits (16≤M≤64) of final block
• but final MAC is now too small for security
Hash Function
Hash Functions
• condenses arbitrary message to fixed size
h = H(M)
• usually assume that the hash function is
public and not keyed
– cf. MAC which is keyed
• hash used to detect changes to message
• can use in various ways with message
• most often to create a digital signature
Requirements for Hash Functions
1. can be applied to any sized message M
2. produces fixed-length output h
3. is easy to compute h=H(M) for any message M
4. given h is infeasible to find x s.t. H(x)=h
• one-way property
5. given x is infeasible to find y s.t. H(y)=H(x)
• weak collision resistance
6. is infeasible to find any x,y s.t. H(y)=H(x)
• strong collision resistance
Simple Hash Functions
• are several proposals for simple functions
• based on XOR of message blocks
• not secure since can manipulate any
message and either not change hash or
change hash also
• need a stronger cryptographic function
Use of hash
• EK(M+H(M)) confidentiality , authentication

• M+EK(H(M)) K SECRET KEY

• H(M) encrypted public key and senders private key


– digital sign.

• SK(M+ PK(H(M))) – confidentiality and digital sign.

• M + H(M+SK) – no encryption but uses secret key.


Sk is already known.

• Confidentiality can be added to the above approach


by E(M+H(M)+S)
Birthday Attacks
• might think a 64-bit hash is secure
• but by Birthday Paradox is not
• birthday attack works thus:
– opponent generates 2m/2 variations of a valid message
all with essentially the same meaning
– opponent also generates 2m/2 variations of a desired
fraudulent message
– two sets of messages are compared to find pair with
same hash (probability > 0.5 by birthday paradox)
– have user sign the valid message, then substitute the
forgery which will have a valid signature
• conclusion is that need to use larger MAC/hash
MD2
• 128-bit message digest:
– Arbitrary number of bytes of message
– First pad to multiple of 16 bytes
– Append MD2 checksum (16 bytes) to the
end
• The checksum is almost a MD, but not
cryptographically secure by itself.
– Process whole message
MD2 Checksum
• One byte at a time, k × 16 steps
• mnk: byte nk of message
• cn=π(mnk ⊕ cn-1) ⊕ cn
• π : 0 → 41, 1 → 46, …
– Substitution on 0-255 (value of the byte)
MD2 Final Pass
• Operate on 16-byte chunks
• 48-byte quantity q:
– (current digest|chunk|digest⊕chunk)
• 18 passes of massaging over q, and one
byte at a time:
– cn=π(cn-1) ⊕ cn for n = 0, … 47; c-1 = 0 for
pass 0; c-1 = (c47 + pass #) mod 256
• After pass 17, use first 16 bytes as new
digest
– 16 × 8 = 128
MD5: Message Digest Version 5

input Message

Output 128 bits Digest


MD5 Box
512-bit message chunks (16 words)

Initial
128-bit vector

128-bit result
MD5 algorithm
• Padding –
length is 64 bit less than an integer multiple of 512 bits.
If 448(64 bit less than 512) then padding is ? N
1000 ? Y (1472 64 less 1536 = 3*512)
512 ? Y

• Append length –
64 bit length of msg , len mod 264 , data to hash = [Msg + padding +len]
• Initialize MD buffer – chaining variable A,B,C,D – 32 bit no
• Process message in 512 bit blocks –
Four rounds of processing on
1. i/p 512 bit data divided into 16 blocks of 32 bit each X[i]
2. chaining variable
3. uses one fourth of element table T[1---64] constructed
from sin function 2^32 * abs(sin(i))\
4. process g (different for each round) F,G,H,I
MD5: Padding
1 2 3 4
input Message

512 bit block Padding

Initial Value
MD5 Transformation block by block

Output 128 bits Digest Final Output


MD5 Blocks

512: B1
512: B2
MD5
512: B3
MD5
512: B4
MD5
MD5

Result
Step 4.
Continued
(4 Rounds)

40
Step 4. Continued

41
Functions and Random
Numbers
• One of the primitive function on (b,c,d)
• Add a to above result
• Add X[k]
• Add T[i]
• Circular left shift of 32 bit by s bits
• Add b to the result (Add is modulo 2^32)

A=b+((a+P(b,c,d)+X[k]+T[i])<<<s)
• 1- F (b and c) or (not b and d)
• 2- G (b and d) or (c and d)
• 3- H b xor c xor d
• 4- I c xor (b or not d)
The MD5 Boolean Functions
The functions G, H, and I are similar to the function F, in that they
act in "bitwise parallel" to produce their output from the bits of X,
Y, and Z, in such a manner that if the corresponding bits of X, Y,
and Z are independent and unbiased, then each bit of G(X,Y,Z),
H(X,Y,Z), and I(X,Y,Z) will be independent and unbiased. Note that
the function H is the bit-wise "xor" or "parity" function of its
inputs.

44
Strength of MD5
• Every bit of hash code is function of every
bit in the input.
• To find message of given digest is order of
2^128 operations
• Difficult to come up with the 2 messages
having same hash

• MD5 is vulnerable to birthday attack order


2^64
Secure 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 manager
General Logic
• Input message must be < 264 bits
– 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
Basic Steps
Step1: Padding
Step2: Appending length as 64 bit
unsigned
Step3: Initialize MD buffer 5 32-bit words
A|B|C|D|E – big indian format
A = 67452301
B = efcdab89
C = 98badcfe
D = 10325476
E = c3d2e1f0
Basic Steps...
Step 4: the 80-step processing of 512-bit blocks –
4 rounds, 20 steps each.
Each step t (0 <= t <= 79):
– Input:
• Wt – a 32-bit word from the message
• Kt – a constant.
• ABCDE: current MD.
– Output:
• ABCDE: new MD.
Basic Steps...
• Only 4 per-round distinctive additive
constants
0 <=t<= 19 Kt = 5A827999
20<=t<=39 Kt = 6ED9EBA1
40<=t<=59 Kt = 8F1BBCDC
60<=t<=79 Kt = CA62C1D6
Basic Steps - The Heart Of
The Matter
A B C D E

+
ft
CL +
S5
Wt
+
CLS3
Kt
0 +

A B C D E
Basic Logic Functions
• Only 3 different functions

Round Function ft(B,C,D)


0 <=t<= 19 (B∧C)∨(~B ∧D)
20<=t<=39 B⊕C⊕D
40<=t<=59 (B∧C)∨(B∧D)∨(C∧D)
60<=t<=79 B⊕C⊕D
SHA 512
SHA-1 Message Digest

The message digest of the string:

“This is a test for theory of computation”

4480afca4407400b035d9debeb88bfc402db514f
SHA Versus MD5
• SHA is a stronger algorithm:
– Brute-force birthday attacks requires on the
order of 280 operations vs. 264 for MD5
• SHA’s 80 steps and 160 bits hash (vs.
128) requires a little more computation
Tiger hash
• 192-bit hash values

• Tiger, which is designed to be both fast


and secure.

• Three rounds, each of which uses eight


lookups into 8-to-64-bit S-boxes to provide
a strong nonlinear avalanche plus a
number of register operations to increase
diffusion and make differential attacks
harder
• TigerM, or TigerM/N, where M is the
number of passes, and N is the number of
bits in the hash value
Security requirements
• Deterministic hashing
– Attacker chooses M, d=H(M)
• Hashing with a random salt
– Attacker chooses M, then good guy
chooses public salt, d=H(salt,M)
• Hashing random messages
– M random, d=H(M)
• Hashing with a secret key
– Attacker chooses M, d=H(key,M)
Applications of hash
Using Hash for Authentication

• Alice to Bob: challenge rA


• Bob to Alice: MD(KAB|rA)
• Bob to Alice: rB
• Alice to Bob: MD(KAB|rB)
• Only need to compare MD results
Using Hash to Encrypt
• One-time pad:
– compute bit streams using MD, K, and IV
• b1=MD(KAB|IV), bi=MD(KAB|bi-1), …
– ⊕ with message blocks
• Or mixing in the plaintext
– similar to cipher feedback mode (CFB)
• b1=MD(KAB|IV), c1= p1 ⊕ b1
• b2=MD(KAB| c1), c2= p2 ⊕ b2
Using Secret Key for a Hash
• Unix password algorithm:
– Compute hash of user password, store the hash
(not the password), and compare the hash of
user-input password.
• First 8 bytes of password used to form a secret key.
• Encrypt 0 with a DES-like algorithm (why not use a
“system” key to encrypt the password?).

You might also like