0% found this document useful (0 votes)
14 views78 pages

Unit3 CNS

The document discusses message authentication and hash functions, emphasizing their roles in protecting message integrity, validating the identity of the originator, and ensuring non-repudiation. It covers various methods such as message encryption, message authentication codes (MAC), and hash functions, detailing their properties, security requirements, and applications. Additionally, it addresses digital signatures and authentication protocols, highlighting the importance of secure key distribution and countermeasures against replay attacks.

Uploaded by

mksudha.svs
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views78 pages

Unit3 CNS

The document discusses message authentication and hash functions, emphasizing their roles in protecting message integrity, validating the identity of the originator, and ensuring non-repudiation. It covers various methods such as message encryption, message authentication codes (MAC), and hash functions, detailing their properties, security requirements, and applications. Additionally, it addresses digital signatures and authentication protocols, highlighting the importance of secure key distribution and countermeasures against replay attacks.

Uploaded by

mksudha.svs
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 78

Message Authentication and

Hash Functions
 At cats' green on the Sunday he took the message from
the inside of the pillar and added Peter Moran's name to
the two names already printed there in the "Brontosaur"
code. The message now read: “Leviathan to Dragon:
Martin Hillman, Trevor Allan, Peter Moran: observe and
tail.” What was the good of it John hardly knew. He felt
better, he felt that at last he had made an attack on Peter
Moran instead of waiting passively and effecting no
retaliation. Besides, what was the use of being in
possession of the key to the codes if he never took
advantage of it?
 —Talking to Strange Men, Ruth Rendell
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
Security Requirements
 disclosure
 traffic analysis
 masquerade
 content modification
 sequence modification
 timing modification
 source repudiation
 destination repudiation
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

The content cannot be 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
Message Authentication Code
(MAC)
 generated by an algorithm that creates a
small fixed-sized block

depending on both message and some key

like encryption though need not be reversible
 appended to message as a signature
 receiver performs same computation on
message and checks it matches the MAC
 provides assurance that message is
unaltered and comes from sender
Message Authentication Code
Message Authentication
Codes
 as shown the MAC provides authentication
 can also use encryption for secrecy

generally use separate keys for each

can compute MAC either before or after encryption

is generally regarded as better done before
 why use a MAC?

sometimes only authentication is needed

sometimes need authentication to persist longer than
the encryption (eg. archival use)
 note that a MAC is not a digital signature
MAC Properties
 a MAC is a cryptographic checksum
MAC = CK(M)

condenses a variable-length message M

using a secret key K

to a fixed-sized authenticator
 is a many-to-one function

potentially many messages have same MAC

but finding these needs to be very difficult
Requirements for MACs
 taking into account the types of attacks
 need the MAC to satisfy the following:
1. knowing a message and MAC, is infeasible
to find another message with same MAC
2. MACs should be uniformly distributed
3. MAC should depend equally on all bits of the
message
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
Data Authentication Algorithm
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
Hash Functions & Digital
Signatures
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
Birthday Attacks
 might think a 64-bit hash is secure
 but by Birthday Paradox is not
 birthday attack works thus:
m/

opponent generates 2 variations of a valid message
2

all with essentially the same meaning


m/

opponent also generates 2 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
Block Ciphers as Hash
Functions
 can use block ciphers as hash functions
 using H0=0 and zero-pad of final block
 compute: Hi = EMi [Hi-1]

and use final block as the hash value

similar to CBC but without a key
 resulting hash is too small (64-bit)

both due to direct birthday attack

and to “meet-in-the-middle” attack
 other variants also susceptible to attack
Hash Functions & MAC
Security
 like block ciphers have:
 brute-force attacks exploiting
m/

strong collision resistance hash have cost 2 2

• have proposal for h/w MD5 cracker


• 128-bit hash looks vulnerable, 160-bits better

MACs with known message-MAC pairs
• can either attack keyspace (cf key search) or MAC
• at least 128-bit MAC is needed for security
Hash Functions & MAC
Security
 cryptanalytic attacks exploit structure

like block ciphers want brute-force attacks to be the
best alternative
 have a number of analytic attacks on iterated
hash functions

CVi = f[CVi-1, Mi]; H(M)=CVN

typically focus on collisions in function f

like block ciphers is often composed of rounds

attacks exploit properties of round functions
Hash and MAC Algorithms
 Hash Functions

condense arbitrary size message to fixed size

by processing message in blocks

through some compression function

either custom or block cipher based
 Message Authentication Code (MAC)

fixed sized authenticator for some message

to provide authentication for message

by using block cipher mode or hash function
Hash Algorithm Structure
Secure Hash Algorithm
 SHA originally designed by NIST & NSA in 1993
 was revised in 1995 as SHA-1
 US standard for use with DSA signature scheme

standard is FIPS 180-1 1995, also Internet RFC3174

nb. the algorithm is SHA, the standard is SHS
 based on design of MD4 with key differences
 produces 160-bit hash values
 recent 2005 results on security of SHA-1 have
raised concerns on its use in future applications
Revised Secure Hash
Standard
 NIST issued revision FIPS 180-2 in 2002
 adds 3 additional versions of SHA

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
 but security levels are rather higher
SHA Versions
SHA-512 Overview
SHA-512 Compression
Function
 heart of the algorithm
 processing message in 1024-bit blocks
 consists of 80 rounds

updating a 512-bit buffer

using a 64-bit value Wt derived from the
current message block

and a round constant based on cube root of
first 80 prime numbers
SHA-512 Round Function
Whirlpool
 now examine the Whirlpool hash function
 endorsed by European NESSIE project
 uses modified AES internals as
compression function
 addressing concerns on use of block
ciphers seen previously
 with performance comparable to dedicated
algorithms like SHA
Whirlpool Overview
Whirlpool Block Cipher W
 designed specifically for hash function use
 with security and efficiency of AES
 but with 512-bit block size and hence hash
 similar structure & functions as AES but

input is mapped row wise

has 10 rounds

a different primitive polynomial for GF(2^8)

uses different S-box design & values
Whirlpool Block Cipher W
Whirlpool Performance &
Security
 Whirlpool is a very new proposal
 hence little experience with use
 but many AES findings should apply
 does seem to need more h/w than SHA,
but with better resulting performance
Keyed Hash Functions as MACs
 want a MAC based on a hash function

because hash functions are generally faster

code for crypto hash functions widely
available
 hash includes a key along with message
 original proposal:
KeyedHash = Hash(Key|Message)

some weaknesses were found with this
 eventually led to development of HMAC
HMAC
 specified as Internet standard RFC2104
 uses hash function on the message:
HMACK = Hash[(K+ XOR opad) ||
Hash[(K+ XOR ipad)||M)]]
 where K+ is the key padded out to size
 and opad, ipad are specified padding constants
 overhead is just 3 more hash calculations than
the message needs alone
 any hash function can be used

eg. MD5, SHA-1, RIPEMD-160, Whirlpool
HMAC Overview
HMAC Security
 proved security of HMAC relates to that of
the underlying hash algorithm
 attacking HMAC requires either:

brute force attack on key used

birthday attack (but since keyed would need
to observe a very large number of messages)
 choose hash function used based on
speed verses security constraints
CMAC
 previously saw the DAA (CBC-MAC)
 widely used in govt & industry
 but has message size limitation
 can overcome using 2 keys & padding
 thus forming the Cipher-based Message
Authentication Code (CMAC)
 adopted by NIST SP800-38B
CMAC Overview
Digital Signatures
 have looked at message authentication

but does not address issues of lack of trust
 digital signatures provide the ability to:

verify author, date & time of signature

authenticate message contents

be verified by third parties to resolve disputes
 hence include authentication function with
additional capabilities
Digital Signature Properties
 must depend on the message signed
 must use information unique to sender

to prevent both forgery and denial
 must be relatively easy to produce
 must be relatively easy to recognize & verify
 be computationally infeasible to forge

with new message for existing digital signature

with fraudulent digital signature for given message
 be practical save digital signature in storage
Direct Digital Signatures
 involve only sender & receiver
 assumed receiver has sender’s public-key
 digital signature made by sender signing
entire message or hash with private-key
 can encrypt using receivers public-key
 important that sign first then encrypt
message & signature
 security depends on sender’s private-key
Arbitrated Digital Signatures
 involves use of arbiter A

validates any signed message

then dated and sent to recipient
 requires suitable level of trust in arbiter
 can be implemented with either private or
public-key algorithms
 arbiter may or may not see message
Authentication Protocols
 used to convince parties of each others
identity and to exchange session keys
 may be one-way or mutual
 key issues are

confidentiality – to protect session keys

timeliness – to prevent replay attacks
 published protocols are often found to
have flaws and need to be modified
Replay Attacks
 where a valid signed message is copied and
later resent

simple replay

repetition that can be logged

repetition that cannot be detected

backward replay without modification
 countermeasures include

use of sequence numbers (generally impractical)

timestamps (needs synchronized clocks)

challenge/response (using unique nonce)
Using Symmetric Encryption
 as discussed previously can use a two-
level hierarchy of keys
 usually with a trusted Key Distribution
Center (KDC)

each party shares own master key with KDC

KDC generates session keys used for
connections between parties

master keys used to distribute these to them
Needham-Schroeder Protocol
 original third-party key distribution protocol
 for session between A B mediated by KDC
 protocol overview is:
1. A->KDC: IDA || IDB || N1
2. KDC -> A: EKa[Ks || IDB || N1 || EKb[Ks||IDA] ]
3. A -> B: EKb[Ks||IDA]
4. B -> A: EKs[N2]
5. A -> B: EKs[f(N2)]
Needham-Schroeder Protocol
 used to securely distribute a new session
key for communications between A & B
 but is vulnerable to a replay attack if an old
session key has been compromised

then message 3 can be resent convincing B
that is communicating with A
 modifications to address this require:

timestamps (Denning 81)

using an extra nonce (Neuman 93)
Using Public-Key Encryption
 have a range of approaches based on the
use of public-key encryption
 need to ensure have correct public keys
for other parties
 using a central Authentication Server (AS)
 various protocols exist using timestamps
or nonces
Denning AS Protocol
 Denning 81 presented the following:
1. A -> AS: IDA || IDB
2. AS -> A: EPRas[IDA||PUa||T] || EPRas[IDB||PUb||T]
3. A -> B: EPRas[IDA||PUa||T] || EPRas[IDB||PUb||T] ||
EPUb[EPRa[Ks||T]]
 note session key is chosen by A, hence AS need
not be trusted to protect it
 timestamps prevent replay but require
synchronized clocks
One-Way Authentication
 required when sender & receiver are not in
communications at same time (eg. email)
 have header in clear so can be delivered
by email system
 may want contents of body protected &
sender authenticated
Using Symmetric Encryption
 can refine use of KDC but can’t have final
exchange of nonces, vis:
1. A->KDC: IDA || IDB || N1
2. KDC -> A: EKa[Ks || IDB || N1 || EKb[Ks||IDA] ]
3. A -> B: EKb[Ks||IDA] || EKs[M]
 does not protect against replays

could rely on timestamp in message, though
email delays make this problematic
Public-Key Approaches
 have seen some public-key approaches
 if confidentiality is major concern, can use:
A->B: EPUb[Ks] || EKs[M]

has encrypted session key, encrypted message
 if authentication needed use a digital
signature with a digital certificate:
A->B: M || EPRa[H(M)] || EPRas[T||IDA||PUa]

with message, signature, certificate
Digital Signature Standard (DSS)
 US Govt approved signature scheme
 designed by NIST & NSA in early 90's
 published as FIPS-186 in 1991
 revised in 1993, 1996 & then 2000
 uses the SHA hash algorithm
 DSS is the standard, DSA is the algorithm
 FIPS 186-2 (2000) includes alternative RSA &
elliptic curve signature variants
Digital Signature Algorithm
(DSA)
 creates a 320 bit signature
 with 512-1024 bit security
 smaller and faster than RSA
 a digital signature scheme only
 security depends on difficulty of computing
discrete logarithms
 variant of ElGamal & Schnorr schemes
Digital Signature Algorithm
(DSA)
DSA Key Generation
 have shared global public key values (p,q,g):

choose q, a 160 bit

choose a large prime p = 2L
• where L= 512 to 1024 bits and is a multiple of 64
• and q is a prime factor of (p-1)

choose g = h(p-1)/q
• where h<p-1, h(p-1)/q (mod p) > 1
 users choose private & compute public key:

choose x<q

compute y = gx (mod p)
DSA Signature Creation
 to sign a message M the sender:

generates a random signature key k, k<q

nb. k must be random, be destroyed after
use, and never be reused
 then computes signature pair:
r = (gk(mod p))(mod q)
s = (k-1.H(M)+ x.r)(mod q)
 sends signature (r,s) with message M
DSA Signature Verification
 having received M & signature (r,s)
 to verify a signature, recipient computes:
w = s-1(mod q)
u1= (H(M).w)(mod q)
u2= (r.w)(mod q)
v = (gu1.yu2(mod p)) (mod q)
 if v=r then signature is verified
 see book web site for details of proof why
Knapsack Ciphers
The Concept
 At the core of the Knapsack cipher is the
Knapsack problem:
Given positive integers a1, a2,…,an & S,
which of the ai integers add up to S.
 As an equation, solve for xi either 1 or 0:
S = a 1 x1 + a 2 x2 + … + a n xn

 Example: a1 = 2, a2=3, a3=4, a4=7, a5=11, a6=13, a7=16 and S=18


 Solutions: 16+2, 13+3+2, 11+4+3, 11+7, thus
 (1,0,0,0,0,0,1); (1,1,0,0,0,1,0); (0,1,1,0,1,0,0); (0,0,0,1,1,0,0)
S = a 1 x1 + a 2 x2 + … + a n xn
complexity Good vs. Bad
 Difficult Calculations when n is large:
Trial and Error  2n possibilities for (x1,x2,…,xn)
 infeasible to find all the
solutions when n=100 or more
 Easier to find solution for certain a1, a2,…,an:
aj=2J-1  S = a1 x1 + a2 x2 + … + an xn
= 20 x1 + 21 x2 + … + 2n-1 xn
= xn … x2 x1 on binary form (base 2)
Thus for the solution is:
write S in the binary form!
Super Increasing Sequences
 A type of sequence a1, a2,…,an for which it is
easier but not trivial to solve knapsack problems
 super increasing sequence if
jth term > sum of the preceding values
(j-1)
Σk ak < aj for j = 2,3,…,n

 Example1: (2, 3, 7, 13, 28) is super increasing


(2, 3, 4, 7, 11, 13, 16) is not

 Example2 (pb 3): aj+1 > 2aj  super increasing sequence


 Example3 (pb 2): aj < 2j-1  NOT super increasing sequence
Example of solving Knapsack
problem for super increasing
sequence
 (a1=2, a2=3, a3=7, a4=13, a5=28) and S=40
1 2 3 4 5
 S≥ a5  x5 = 1 since a1+a2+a3+a4< a5=28
 S- x5 a5 = 12 < a4 =13  x4 =0
 S- (x5 a5 + x4 a4 )=12 ≥ a3  x3 = 1
 S- (x5 a5 + x4 a4+ x3 a3 )=5 ≥ a2  x2 = 1
 S- (x5 a5 + x4 a4+x3 a3 + x3 a3 )=2 ≥ a1  x1 = 1

 Solution: (1,1,1,0,1)
Super Increasing Algorithm
 S = a1 x1 + a 2 x2 + … + a n xn

1  if  S an
xn 
0  if  S  an

 n

1  if  S   xk ak a j
 k j 1
x j  n
0  if  S 
 
k j 1
xk a k  a j
Public cryptosystem: Knapsack Ciphers
based on super increasing sequences
 Merkle and Hellman [MeHe78].
 Based on a transformed not super increasing sequence
b1, b2,…,bn
from a simple super increasing
a1, a2,…,an

Given m> 2 an and (ω,m)=1 find ώ


ώ ω ≡1(mod m)  ώ ≡ ωΦ(m)-1 (mod m)
Then Find bj

bj ≡ ω aj (mod m) aj ≡ ώ bj (mod m)
Observations
 IF S= b1 x1 + b2 x2 + … + bn xn Then
ώ S ≡ ώ b1 x1 + …+ ώ bn xn
≡ a1 x1 + …+ an xn (mod m)

 b1, b2,…,bn is not super increasing  not easy to solve S= b1 x1 +


b2 x2 + … + bn xn

 a1, a2,…,an is super increasing  easy to solve


S0 = a 1 x 1 + a 2 x 2 + … + a n x n
where ώ S ≡ S0(mod m)
 One needs to know m, ω & ώ
Knapsack Cipher Method
 Choose a1, a2,…,aN along with
values for m with m>2aN,
and ω with (ω, m)=1
 (b1,…, bN) is made public.
 Plaintext P is transformed into
binary equivalent using the
table on the left.
 P in binary is split into
segments of length N (if not
divisible by N, add 1s)
 Each segment will play the
role of (x1,x2,…,xN)
Knapsack Cipher Method (cont.)
 For each segment (x1,x2,…,xN) in P, compute

S= b1 x1 + b2 x2 + … + bN xN
 C= Ciphertext
= the set of S generated from each (x1,x2,…,xN) in P
= difficult to find (x1,x2,…,xN) from S
 Decryption when m & ω (thus ώ) are known:
 easy to solve for (x1,x2,…,xN) with
S0= a1 x1 + a2 x2 + … + an xn
where ώ S ≡ S0(mod m)
Example
 P=BUY NOW=000011010011000011010111010110
 A=(3,5,9,20,44); m=89; ω=67
 P= ([0,0,0,0,1],[1,0,1,0,0],[1,1,0,0,0],[0,1,1,0,1],[0,1,1,1,0],[1,0,1,1,0])

= matrix notation
Encryption (BT = transpose of B = Vertical vector B)
 B≡ ω A (mod 89) = (23,68,69,5,11)
 C= PBT = (11, 92,91,148,142,97 )

Decryption:
 ώ ≡ ωΦ(m)-1 (mod m) =6787= 4 (mod 89)
 S0 ≡ ώ S (mod m) ≡ 4*C = (44, 368, 364, 592, 568, 388)

≡ [44, 12, 8, 58, 34, 32] (mod 89)


 Use Knapsack algorithm to solve S0= a1 x1 + a2 x2 + … + an xn
 For example: 44= 44(1)  00001 B
12=9 (1) + 3(1) 10100 U
8= 3(1)+ 5 (1)  11000 Y
Cryptanalysis
 Knapsack Ciphers were a popular form of public key
Knapsack Ciphers were a popular form of public key
cryptography.
 In 1982, Shamir (see [Sh84] & [Od 90])  efficient
method to solve S= b1 x1 + b2 x2 + … + bN xN, thus find
x1x2…xN from the transformed public key b1b2 …bN
 There exists an algorithmto find the solution using
O(P(n)) bit operations where P is a polynomial instead of
the exponential time

 Adjustments can be made to protect it from such


weaknesses, such as using several successive
transformations with (ωi,mi) to form b1b2 …bN

You might also like