Cryptographic Hash Functions Message Authentication Digital Signatures Abstract

Cryptographic Hash Functions Message Authentication Digital Signatures Abstract

Cryptographic Hash Functions Message Authentication Digital Signatures Abstract We will discuss • Cryptographic hash functions • Message authentication codes – HMAC and CBC-MAC • Digital signatures 2 Encryption/Decryption • Provides message confidentiality. • Does it provide message authentication? 3 Message Authentication • Bob receives a message m from Alice, he wants to know i (Data origin authentication) whether the message was really sent by Alice; i (Data integrity) whether the message has been modified. • Solutions: i Alice attaches a message authentication code (MAC) to the message. i Or she attaches a digital signature to the message. 4 Hash function • A hash function maps from a domain to a smaller range, typically many-to-one. • Properties required of a hash function depend on its applications. • Applications: i Fast lookup (hash tables) i Error detection/correction i Cryptography: cryptographic hash functions i Others 5 Cryptographic hash function •→ Hash functions: hX: Y , | X | >| Y |. •→ For example, h :{0,1}* {0,1}n * hZ:{0,1} → n hkl:{0,1}kl→> {0,1} , . • If X is finite, h is also called a compression function. • A classical application: users/clients passwords are stored in a file not as ()username, password , but as ()username, h(password) using some cryptographic hash function h. 6 Security requirements •= Pre-image: if hm( ) y , m is a pre-image of y. • Each hash value typically has multiple pre-images. •≠ Collision: a pair of (mm ,′′ ), m m, s.t. hm( )= hm ( ′ ). A hash function is said to be: • Pre-image resistant if it is computationally infeasible to find a pre-image of a hash value. • Collision resistant if it is computationally infeasible to find a collision. • A hash function is a cryptographic hash function if it is collision resistant. 7 • Collision-resistant hash functions can be built from collision-resistant compression functions using Merkle-Damgard construction. 8 Merkle-Damgard construction •→ Construct a cryptographic hash function h :{0,1}* {0,1}n from a compression function f :{0,1}nb+ → {0,1}n . 1. For mm∈{0,1}* , add padding to so that |m '| is a multiple of b. Let padded mmmm' = 12… ki, each m of length b. (padding = 10...0 |mm |, where | | is the length of m) 3. Let vvvmik01==IV and iiif (− ) for 1 ≤≤ . 4. The hash value h(mv).= k Theorem. If fh is collision-resistant, then is collision-resistant. Merkle-Damgard Construction m1 m2 m3 mk v0 v1 v2 vk IV f f f … f h(m) Compression function f :{0,1}nb+ → {0,1}n The Secure Hash Algorithm (SHA-1) • an NIST standard. • using Merkle-Damgard construction. • input message m is divided into blocks with padding. •∈ padding = 10...0 , where {0,1}64 indicates |m | in binary. •≤ thus, message length limited to |m | 264 − 1. • block = 512 bits = 16 words = WW01… 5. •= IV a constant of 160 bits = 5 words = HH04… . • resulting hash value: 160 bits. • underlying compression function f :{0,1}160+ 512 → {0,1}160 , a series (80 rounds) of ∧∨⊕¬, , , , +, and Rotate on words Wsii' & H's. Is SHA-1 secure? • An attack is to produce a collision. • Birthday attack: randomly generate a set of messages {}mm12, , …, mk , hoping to produce a collision. •= n 160 is big enough to resist birthday attacks for now. • There is no mathematical proof for its collision resistancy. • In 2004, a collision for a "58 rounds" SHA-1 was produced. (The compression function of SHA-1 has 80 rounds.) • Newer SHA's have been included in the standard: SHA-256, SHA-384, SHA-512. 12 • Birthday problem: In a group of k people, what is the probability that at least two people have the same birthday? i Having the same birthday is a collision? •≥ Birthday paradox: p 1 2 with k as small as 23. •→ Consider a hash function h :{0,1}∗ {0,1}n . • If we randomly generate k messages, the probability of having a collision depends on n. • To resist birthday attack, we choose n to be sufficiently large that it will take an infeasibly large k to have a non-negligible probability of collision. Applications of cryptographic hash functions • Storing passwords • Used to produce modification detection codes (MDC) i hm( ), called an MDC, is stored in a secure place; i if m is modified, we can detect it; i protecting the integrity of m. • We will see some other application s . 14 Message Authentication • Bob receives a message m from Alice, he wants to know i (Data origin authentication) whether the message was really sent by Alice; i (Data integrity) whether the message has been modified. • Solutions: i Alice attaches a message authentication code (MAC) to the message. i Or she attaches a digital signature to the message. 15 MAC • Message authentication protocol: 1. Alice and Bob share a secret key k. 2. Alice sends mm MACk ( ) to Bob. 3. Bob authenticates the received m′′ MAC by checking if MAC′′= MACk (m )? • MACk (m ) is called a message authentication cdo e. • Security requirement: infeasible to produce a valid pair (xx , MAC())k without knowing the key k. 16 Constructing MAC from a hash • A common way to construct a MAC is to incorporate a secret key kh into a fixed hash function (e.g. SHA-1). • Insecure: i MACkk (mhmhm )== ( ) ( ) with IV = k i MACkk (mhmhkm )== ( ) ( ) 17 • Insecure: MACk ( m )= h (mk ) with IV= . (For simplicity, without padding) m = m1 m2 m3 ms … h(m) k IVX f f f f X hk(m) ms+1 • Easy to forge: (m′ , hmk (′ )), hk(m) f hk(m||ms+1) where mm′ = ms+1 HMAC (Hash-based MAC) • A FIPS standard for constructing MAC from a hash function h. Conceptually, HMACk (mkkm )= hh()21 ( ) where k12 and kk are two keys generated from . • Various hash functions (e.g., SHA-1, MD5) may be used for h. • If we use SHA-1, then HMAC is as follows: HMACk (m )=⊕SHA-1() k opad SHA-1 ( k ⊕ ipad m ) where i k is padded with 0's to 512 bits i ipad = 3636 36 (x036 repeated 64 times) i opad = 5c5c 5c (x05c repeated 64 times) CBC-MAC • A FIPS and ISO standard. • One of the most popular MACs in use. • Use a block cipher in CBC mode with a fixed, public IV. • Called DES CBC-MAC if the block cipher is DES. •→ Let E :{0,1}n {0,1}n be a block cipher. • CBC-MAC(mk , ) mmm==12… mli, where | m | n . n c0 ← IV (typically 0 ) for il←1 to do cEcmikii←⊕(−1 ) return(cl ) 20 Cipher Block Chaining (CBC) 21 CMAC (Cipher-based MAC) • A refined version of CBC-MAC. • Adopted by NIST for use with AES and 3DES. • Use two keys: kk,′ (assuming m is a multiple of n). •→ Let E :{0,1}nn {0,1} be a block cipher. • CMAC(mk , ) mmm==12… mli, where | m | n . n c0 ← IV (typically 0 ) for il←−1 to 1 do cEcmikii←⊕(−1 ) cEcmlkll←⊕( −1 ⊕ k′) return(cl ) 22 Digital Signatures • RSA can be used for digital signatures. • A digital signature is the same as a MAC except that the tag (signature) is produced using a public-key cryptosystem. • Digital signatures are used to provide message authentication and non-repudiation. Message m MACk(m) Message m Sigpr(m) • Digital signature protocol: 1. Bob has a key pair (pr , pu ). 2. Bob sends mm Sigpr ( ) to Alice. 3. Alice verifies the received ms′′ by checking if sm′′= Verifypu ( ). • Sigpr (m ) is called a signature for m. • Security requirement: infeasible to forge a valid pair (mm , Sigpr ( )) without knowing pr. Encryption (using RSA): Alice Bob PUBob PRBob M E C D M Digital signature (using RSA-1): Alice Bob PUBob PRBob E(S) E S D M =M? Verify Sign RSA Signature • Keys are generated as for RSA encryption: Public key: PU==(,) n e . Private key: PR(, n d ). * d • Signing a message mZ∈ nP: σ = DR( m )= m mod n . That is, σ = RSA−1 (m ). • Verifying a signature (m ,σ ) : e check if mE= PU (σσ )== mod n , or mRSA(σ ). • Only the key's owner can sign, but anybody can verify. Security of RSA Signature • Existential forgeries: * 1. Every message mZ∈ n is a valid signature for its ciphertext cm:= RSA( ). Encryption (using Bob's public key): mc⎯⎯⎯RSA→ −1 Sign (if using Bob's private key): mc←⎯⎯RSA ⎯ 2. If Bob signed mm12 and , then the signature for mm 12 can be easily forged: σσσ(mm12 )= ( m 1 ) ( m 2 ). • Countermeasure: hash and sign: σ = Sign(()),PR hm using some collision resistant hash function h. • Question: Does hash-then-sign make RSA signature secure against all chosen-message attacks? • Answer: Yes, if h is a full-domain random oracle, i.e., * i h is a random oracle mapping {0,1} → Zn i (Zn is the full domain of RSA) • Problem with full-domain hash: In practice, h is not full-domain. For instance, the range of SHA-1 is {0,1}160 , n while Znn =−≥{}0,1,...,2 1 , with 1024. • Desired: a secure signature scheme that does not require a full-domain hash. Probabilistic signature scheme * l • Hash function hZ :{0,1}→⊂ {0,1} N (not full domain). lnN<=| |. (E.g., SHA-1, l=160; RSA, n =1024.) • Idea: mmr⎯⎯→pad ∈{0,1}* ⎯⎯⎯hash→= whmr( ) ∈{0,1}l ⎯⎯⎯expand→= yw (r 0nl−−1 −k ) ⊕ Gw( ) ∈{0,1}n−1 sign −1 ⎯⎯→ σ = RSA (y ) ∈ Z N where r ∈{0,1}k G :{0,1}lnl→ {0,1}−−1 (pseudorandom generator) • Signing a message m ∈{0,1}* : 1. choose a random rw∈{0,1}k ; compute = h(m r ); 2.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    32 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us