Presentation is loading. Please wait.

Presentation is loading. Please wait.

Homework 2 Released Due: Tuesday, October 2nd at 3PM (beginning of class) Please Typeset Your Solutions (LaTeX, Word etc…) You may collaborate, but must.

Similar presentations


Presentation on theme: "Homework 2 Released Due: Tuesday, October 2nd at 3PM (beginning of class) Please Typeset Your Solutions (LaTeX, Word etc…) You may collaborate, but must."β€” Presentation transcript:

1 Homework 2 Released Due: Tuesday, October 2nd at 3PM (beginning of class) Please Typeset Your Solutions (LaTeX, Word etc…) You may collaborate, but must write up your own solutions in your own words

2 Recap Message Authentication Codes
Integrity vs Confidentiality Example: Mack (π‘š) =FK(π‘š) Extension to unbounded messages and pitfalls (block re-ordering, truncation) CBC-MAC Authenticated Encryption + CCA-Security Encrypt and Authenticate [SSL] Authenticate then Encrypt [TLS] (Caution Required) Encrypt then Authenticate! 𝐸𝑛𝑐 𝐾 π‘š = c, Mac 𝐾 𝑀 β€² c where c=Enc 𝐾 𝐸 β€² π‘š

3 We will see a simpler MAC construction using hash functions soon.
Caveat: Tricky Padding Issues arise if |m| is not a multiple of the block-length. See textbook. We will see a simpler MAC construction using hash functions soon. CBC-MAC π‘š 1 π‘š 2 π‘š 3 π‘š ⨁ ⨁ ⨁ FK(.) FK(.) FK(.) FK(.) 𝜏= Mac K π‘š Advantages over Previous Solution Both MACs are secure Works for unbounded length messages Canonical Verification Short Authentication tag Parallelizable for i=1,…,d 𝑑 𝑖 = Mac 𝐾 β€² π‘Ÿβˆ₯β„“βˆ₯𝑖 βˆ₯π‘š 𝑖 (encode i and β„“ as n/4 bit strings) Output π‘Ÿ, 𝑑 1 ,…, 𝑑 𝑑

4 Recap: Authenticated Encryption
Authenticated Encryption οƒ  CCA-Security (by definition) Conceptual Distinction CCA-Security the goal is secrecy (hide message from active adversary) Authenticated Encryption: the goal is integrity + secrecy CCA-Security does not necessarily imply Authenticate Encryption But most natural CCA-Secure constructions are also Authenticated Encryption Schemes Some constructions are CCA-Secure, but do not provide Authenticated Encryptions, but they are less efficient.

5 Secure Communication Session
Solution Protocol? Alice transmits c1 = EncK(m1) to Bob, who decrypts and sends Alice c2 = EncK(m2) etc… Authenticated Encryption scheme is Stateless For fixed length-messages We still need to worry about Re-ordering attacks Alice sends 2n-bit message to Bob as c1 = EncK(m1), c2 = EncK(m2) Replay Attacks Attacker who intercepts message c1 = EncK(m1) can replay this message later in the conversation Reflection Attack Attacker intercepts message c1 = EncK(m1) sent from Alice to Bob and replays to c1 Alice only

6 Secure Communication Session
Defense Counters (CTRA,B,CTRB,A) Number of messages sent from Alice to Bob (CTRA,B) --- initially 0 Number of messages sent from Bob to Alice (CTRB,A) --- initially 0 Protects against Re-ordering and Replay attacks Directionality Bit bA,B = 0 and bB,A = 1 (e.g., since A < B) Alice: To send m to Bob, set c=EncK(bA,B βˆ₯ CTRA,B βˆ₯m), send c and increment CTRA,B Bob: Decrypts c, (if βŠ₯ then reject), obtain b βˆ₯ CTR βˆ₯m If CTRβ‰  CTRA,B or bβ‰ bA,B then reject Otherwise, output m and increment CTRA,B

7 Galois Counter Mode (GCM)
AES-GCM is an Authenticated Encryption Scheme Bonus: Authentication Encryption with Associated Data Ensure integrity of ciphertext Attacker cannot even generate new/valid ciphertext! Ensures attacker cannot tamper with associated packet data Source IP Destination IP Why can’t these values be encrypted? Encryption is largely parallelizable!

8 Cryptography CS 555 Cryptographic Hash Functions Week 5: HMACs
Generic Attacks Random Oracle Model Applications of Hashing Readings: Katz and Lindell Chapter 5, Appendix A.4 Fall 2017

9 Week 5: Topic 1: Cryptographic Hash Functions

10 Hash Functions H(x)=y Long Input: 𝐱 Short Output: y s.t. 𝐲 β‰ͺ 𝐱

11 β€œYou cannot fit 10 pigeons into 9 pigeonholes”
Pigeonhole Principle β€œYou cannot fit 10 pigeons into 9 pigeonholes”

12 By Pigeonhole Principle there must exist x and y s.t.
Hash Collisions By Pigeonhole Principle there must exist x and y s.t. H(x) = H(y)

13 Classical Hash Function Applications
Hash Tables O(1) lookup* β€œGood hash function” should yield β€œfew collisions” * Certain terms and conditions apply

14 Collision-Resistant Hash Function
Intuition: Hard for computationally bounded attacker to find any pair π‘₯, π‘₯β€² s.t. 𝐻 π‘₯ =𝐻 π‘₯β€² How to formalize this intuition? Attempt 1: For all PPT A, Pr 𝐴 1 𝑛 = π‘₯,π‘₯β€² 𝑠.𝑑 𝐻 π‘₯ =𝐻(π‘₯β€²) ≀𝑛𝑒𝑔𝑙(𝑛) The Problem: Let π‘₯,π‘₯β€² be given s.t. 𝐻 π‘₯ =𝐻 π‘₯ β€² 𝐴 π‘₯,π‘₯β€² 1 𝑛 =(π‘₯,π‘₯β€²) We are assuming that |x| > |H(x)|. Why? H(x)=x is perfectly collision resistant! (but with no compression)

15 Keyed Hash Function Syntax
Two Algorithms Gen (1𝑛;𝑅) (Key-generation algorithm) Input: Random Bits R Output: Secret key s 𝐻 𝑠 (π‘š) (Hashing Algorithm) Input: key 𝑠 and message m∈ 0,1 βˆ— (unbounded length) Output: hash value 𝐻 𝑠 (π‘š) ∈ 0,1 β„“ 𝑛 Fixed length hash function π‘šβˆˆ 0,1 β„“β€² 𝑛 with β„“ β€² 𝑛 >β„“ 𝑛

16 Collision Experiment ( π»π‘Žπ‘ β„ŽπΆπ‘œπ‘™π‘™ 𝐴,Ξ  (𝑛))
x1,x2 π»π‘Žπ‘ β„ŽπΆπ‘œπ‘™π‘™ 𝐴,Ξ  (𝑛)= 𝑖𝑓 𝐻 𝑠 π‘₯ 1 = 𝐻 𝑠 π‘₯ π‘œπ‘‘β„Žπ‘’π‘Ÿπ‘€π‘–π‘ π‘’ s=Gen (1𝑛;𝑅) Definition: (Gen,H) is a collision resistant hash function if βˆ€π‘ƒπ‘ƒπ‘‡ 𝐴 βˆƒπœ‡ (negligible) s.t Pr π»π‘Žπ‘ β„ŽπΆπ‘œπ‘™π‘™ 𝐴,Ξ  (𝑛)=1 β‰€πœ‡(𝑛)

17 Collision Experiment ( π»π‘Žπ‘ β„ŽπΆπ‘œπ‘™π‘™ 𝐴,Ξ  (𝑛))
For simplicity we will sometimes just say that H (or Hs) is a collision resistant hash function Key is not key secret (just random) s x1,x2 π»π‘Žπ‘ β„ŽπΆπ‘œπ‘™π‘™ 𝐴,Ξ  (𝑛)= 𝑖𝑓 𝐻 𝑠 π‘₯ 1 = 𝐻 𝑠 π‘₯ π‘œπ‘‘β„Žπ‘’π‘Ÿπ‘€π‘–π‘ π‘’ s=Gen (1𝑛;𝑅) Definition: (Gen,H) is a collision resistant hash function if βˆ€π‘ƒπ‘ƒπ‘‡ 𝐴 βˆƒπœ‡ (negligible) s.t Pr π»π‘Žπ‘ β„ŽπΆπ‘œπ‘™π‘™ 𝐴,Ξ  (𝑛)=1 β‰€πœ‡(𝑛)

18 Theory vs Practice Most cryptographic hash functions used in practice are un-keyed Examples: MD5, SHA1, SHA2, SHA3 Tricky to formally define collision resistance for keyless hash function There is a PPT algorithm to find collisions We just usually can’t find this algorithm 

19 Weaker Requirements for Cryptographic Hash
Target-Collision Resistance s,x x’ HashTgtColl A,Ξ  (𝑛)= if H s xβ€² = H s x otherwise s=Gen (1𝑛;𝑅) π‘₯∈ 0,1 𝑛 Question: Why is collision resistance stronger?

20 Weaker Requirements for Cryptographic Hash
Preimage Resistance (One-Wayness) s, 𝑦 x HashPreImgRes A,Ξ  (n)= if H s x =y otherwise s=Gen (1𝑛;𝑅) π‘¦βˆˆ 0,1 β„“(𝑛) Question: Why is collision resistance stronger?

21 Merkle-DamgΓ₯rd Transform
Most cryptographic hash functions accept fixed length inputs What if we want to hash arbitrary length strings? Construction: (Gen,h) fixed length hash function from 2n bits to n bits 𝐻 𝑠 (π‘₯1,…, π‘₯ 𝑑 ) = β„Ž 𝑠 β„Ž 𝑠 β„Ž 𝑠 β„Ž 𝑠 … β„Ž 𝑠 0 𝑛 βˆ₯π‘₯1 βˆ₯ π‘₯ π‘‘βˆ’1 βˆ₯ π‘₯ 𝑑 βˆ₯ π‘₯

22 Merkle-DamgΓ₯rd Transform
Construction: (Gen,h) fixed length hash function from 2n bits to n bits 𝐻 𝑠 (π‘₯) = Break x into n bit segments x1,..,xd (pad last block by 0’s) 𝑧 0 = 0 𝑛 (initialization) For i = 1 to d 𝑧 𝑖 = β„Ž 𝑠 𝑧 π‘–βˆ’1 βˆ₯π‘₯i Output 𝑧 𝑑+1 = β„Ž 𝑠 𝑧 𝑑 βˆ₯𝐿 where 𝐿 encodes π‘₯ as an n-bit string

23 Merkle-DamgΓ₯rd Transform
Theorem: If (Gen,h) is collision resistant then so is (Gen,H) Proof: Show that any collision in Hs yields a collision in hs. Thus a PPT attacker for (Gen,H) can be transformed into PPT attacker for (Gen,h). Suppose that 𝐻 𝑠 (π‘₯) = 𝐻 𝑠 (π‘₯β€²) (note x and x’ may have different lengths)

24 Merkle-DamgΓ₯rd Transform
Theorem: If (Gen,h) is collision resistant then so is (Gen,H) Proof: Suppose that 𝐻 𝑠 (π‘₯) = 𝐻 𝑠 (π‘₯β€²) Case 1: |x|=|x’| (proof for case two is similar) 𝐻 𝑠 (π‘₯) =𝑧 𝑑 = β„Ž 𝑠 𝑧 π‘‘βˆ’1 βˆ₯ π‘₯ 𝑑 =𝐻 𝑠 (π‘₯β€²) = 𝑧 𝑑 β€² = β„Ž 𝑠 𝑧 π‘‘βˆ’1 β€² βˆ₯ π‘₯ 𝑑 β€² 𝑧 π‘‘βˆ’1 βˆ₯ π‘₯ 𝑑 =? 𝑧 π‘‘βˆ’1 β€² βˆ₯ π‘₯ 𝑑 β€² No οƒ  Found collision Yes? 𝑧 π‘‘βˆ’1 =β„Ž 𝑠 𝑧 π‘‘βˆ’2 βˆ₯ π‘₯ π‘‘βˆ’1 = β„Ž 𝑠 𝑧 π‘‘βˆ’2 β€² βˆ₯ π‘₯ π‘‘βˆ’1 β€² = 𝑧 π‘‘βˆ’1 β€²

25 Merkle-DamgΓ₯rd Transform
Theorem: If (Gen,h) is collision resistant then so is (Gen,H) Proof: Suppose that 𝐻 𝑠 (π‘₯) = 𝐻 𝑠 (π‘₯β€²) Case 1: |x|=|x’| (proof for case two is similar) If for some i we have 𝑧 π‘–βˆ’1 βˆ₯ π‘₯ 𝑖 β‰  𝑧 π‘–βˆ’1 β€² βˆ₯ π‘₯ 𝑖 β€² then we will find a collision But x and x’ are different!

26 Week 5: Topic 2: HMACs and Generic Attacks

27 Keyed Hash Function Syntax
Two Algorithms Gen (1𝑛;𝑅) (Key-generation algorithm) Input: Random Bits R Output: Secret key s 𝐻 𝑠 (π‘š) (Hashing Algorithm) Input: key 𝑠 and message m∈ 0,1 βˆ— Output: hash value 𝐻 𝑠 (π‘š) ∈ 0,1 β„“ 𝑛

28 MACs for Arbitrary Length Messages
MacK(m)= Select random n/4 bit string r Let 𝑑 𝑖 = Mac 𝐾 β€² π‘Ÿβˆ₯β„“βˆ₯𝑖 βˆ₯π‘š 𝑖 for i=1,…,d (Note: encode i and β„“ as n/4 bit strings) Output π‘Ÿ, 𝑑 1 ,…, 𝑑 𝑑 Theorem 4.8: If Π’ is a secure MAC for messages of fixed length n, above construction Ξ =(Mac,Vrfy) is secure MAC for arbitrary length messages. Disadvage for not using randomized construction. 1. This may not be a Strong-MAC.

29 MACs for Arbitrary Length Messages
Disadvantages: Lose Strong-MAC Guarantee (Multiple valid MACs of same message) Disadvantage 1: Long output MacK(m)= Select random n/4 bit string r Let 𝑑 𝑖 = Mac 𝐾 β€² π‘Ÿβˆ₯β„“βˆ₯𝑖 βˆ₯π‘š 𝑖 for i=1,…,d (Note: encode i and β„“ as n/4 bit strings) Output π‘Ÿ, 𝑑 1 ,…, 𝑑 𝑑 Theorem 4.8: If Π’ is a secure MAC for messages of fixed length n, above construction Ξ =(Mac,Vrfy) is secure MAC for arbitrary length messages. Randomized Construction (no canonical verification). Disadvantage? Disadvage for not using randomized construction. 1. This may not be a Strong-MAC.

30 Hash and MAC Construction
Start with Ξ = Mac,Vrfy , a secure MAC for messages of fixed length, and (GenH,H) a collision resistant hash function and define Ξ β€² π‘€π‘Žπ‘ 𝐾𝑀,𝑆 β€² π‘š = π‘€π‘Žπ‘ 𝐾𝑀 𝐻 𝑠 π‘š π‘‰π‘Ÿπ‘“π‘¦ 𝐾𝑀,𝑆 β€² π‘š,𝑑 = π‘‰π‘Ÿπ‘“π‘¦ 𝐾𝑀 𝐻 𝑠 π‘š ,𝑑 Theorem 5.6: Ξ β€² is a secure MAC for arbitrary length message assuming that Ξ  is a secure MAC and (GenH,H) is collision resistant. Note: If Vrfy 𝐾𝑀 π‘š,𝑑 is canonical then Vrfy 𝐾𝑀,𝑆 β€² π‘š,𝑑 is canonical.

31 Hash and MAC Construction
Start with (Mac,Vrfy) a MAC for messages of fixed length and (GenH,H) a collision resistant hash function π‘€π‘Žπ‘ 𝐾𝑀,𝑆 β€² π‘š = π‘€π‘Žπ‘ 𝐾𝑀 𝐻 𝑠 π‘š Theorem 5.6: Above construction is a secure MAC. Proof Intuition: If attacker successfully forges a valid MAC tag t’ for unseen message m’ then either Case 1: 𝐻 𝑠 π‘šβ€² = 𝐻 𝑠 π‘šπ‘– for some previously requested message mi Case 2: 𝐻 𝑠 π‘šβ€² β‰  𝐻 𝑠 π‘šπ‘– for every previously requested message mi

32 Hash and MAC Construction
Theorem 5.6: Above construction is a secure MAC. Proof Intuition: If attacker successfully forges a valid MAC tag t’ for unseen message m’ then either Case 1: 𝐻 𝑠 π‘šβ€² = 𝐻 𝑠 π‘šπ‘– for some previously requested message mi Attacker can find hash collisions! Case 2: 𝐻 𝑠 π‘šβ€² β‰  𝐻 𝑠 π‘šπ‘– for every previously requested message mi Attacker forged a valid new tag on the β€œnew message” 𝑯 𝒔 π’Žβ€² Violates security of the original fixed length MAC

33 Recap Definition of Collision Resistant Hash Functions (Gen,H)
Definitional challenges Gen(1n) outputs a public seed. Merkle-DamgΓ₯rd construction to hash arbitrary length strings Proof of correctness Hash and MAC construction

34 MAC from Collision Resistant Hash
Failed Attempt: Broken if 𝐻 𝑠 uses Merkle-DamgΓ₯rd Transform. Let π‘š3 encode length of π‘š1βˆ₯π‘š2 π‘€π‘Žπ‘ π‘˜,𝑆 π‘š1βˆ₯π‘š2βˆ₯π‘š3 = β„Ž 𝑠 β„Ž 𝑠 β„Ž 𝑠 β„Ž 𝑠 β„Ž 𝑠 0𝑛βˆ₯π‘˜ βˆ₯π‘š1 βˆ₯π‘š2 βˆ₯π‘š3 βˆ₯𝐿3 = β„Ž 𝑠 π‘€π‘Žπ‘ π‘˜,𝑆 π‘š1βˆ₯π‘š2 βˆ₯𝐿3 Why does this mean 𝑴𝒂𝒄 π’Œ,𝑺 is broken? π‘€π‘Žπ‘ π‘˜,𝑆 π‘š = 𝐻 𝑠 π‘˜βˆ₯π‘š

35 HMAC π‘€π‘Žπ‘ π‘˜,𝑆 π‘š = 𝐻 𝑠 π‘˜β¨opad βˆ₯ 𝐻 𝑠 π‘˜β¨ipad βˆ₯π‘š ipad? Bad joke, I know…

36 HMAC π‘€π‘Žπ‘ π‘˜,𝑆 π‘š = 𝐻 𝑠 π‘˜β¨opad βˆ₯ 𝐻 𝑠 π‘˜β¨ipad βˆ₯π‘š ipad=inner pad opad=outer pad Both ipad and opad are fixed constants. Why use key twice? Allows us to prove security from weak collision resistance of Hs Bad joke, I know…

37 HMAC Security π‘€π‘Žπ‘ π‘˜,𝑆 π‘š = 𝐻 𝑠 π‘˜β¨opad βˆ₯ 𝐻 𝑠 π‘˜β¨ipad βˆ₯π‘š Theorem (Informal): Assuming that 𝐻 𝑠 is weakly collision resistant and that (certain other plausible assumptions hold) this is a secure MAC. Weak Collision Resistance: Give attacker oracle access to 𝑓 π‘š = 𝐻 𝑠 π‘˜βˆ₯π‘š (secret key k remains hidden). Attacker Goal: Find distinct m,m’ such that 𝑓 π‘š =𝑓 π‘šβ€²

38 HMAC in Practice MD5 can no longer be viewed as collision resistant
However, HMAC-MD5 remained unbroken after MD5 was broken Gave developers time to replace HMAC-MD5 Nevertheless, don’t use HMAC-MD5! HMAC-SHA1 still seems to be okay (temporarily), despite collision HMAC is efficient and unbroken CBC-MAC was not widely deployed because it is β€œtoo slow” Instead practitioners often used heuristic constructions (which were breakable)

39 Finding Collisions Ideal Hashing Algorithm Can we do better?
Random function H from {0,1}* to {0,1}β„“ Suppose attacker has oracle access to H(.) Attack 1: Evaluate H(.) on 2β„“+1 distinct inputs.

40 Birthday Attack for Finding Collisions
Ideal Hashing Algorithm Random function H from {0,1}* to {0,1}β„“ Suppose attacker has oracle access to H(.) Attack 2: Evaluate H(.) on π‘ž=2 β„“/ distinct inputs x1,…,xq. Pr No Collision =Pr βˆ€π‘–<𝑗. 𝐻(xi)≠𝐻(xj) =Pr 𝑫 𝟐 𝑖=3 π‘ž π‘ƒπ‘Ÿ 𝑫 π’Š 𝑫 π’Šβˆ’πŸ ,…, 𝑫 𝟐 𝑫 π’Š =𝒆𝒗𝒆𝒏𝒕 𝒕𝒉𝒂𝒕 𝐻 π‘₯ 𝑖 ≠𝐻 π‘₯ π‘–βˆ’11 ,…,𝐻 π‘₯ 1

41 Birthday Attack for Finding Collisions
Ideal Hashing Algorithm Random function H from {0,1}* to {0,1}β„“ Suppose attacker has oracle access to H(.) Attack 2: Evaluate H(.) on π‘ž=2 β„“/ distinct inputs x1,…,xq. Pr βˆ€π‘–<𝑗. 𝐻(xi)≠𝐻(xj) = 1Γ— 1βˆ’ 1 2 β„“ Pr 𝐻 π‘₯ 2 ≠𝐻 π‘₯ 1 Γ— 1βˆ’ 2 2 β„“ Pr 𝑫 πŸ‘ | 𝑫 𝟐 ×…× 1βˆ’ 2 β„“/ β„“ Pr 𝑫 𝒒 𝑫 π’’βˆ’πŸ ,…, 𝑫 𝟐 𝑫 𝟐

42 Birthday Attack for Finding Collisions
Ideal Hashing Algorithm Random function H from {0,1}* to {0,1}β„“ Suppose attacker has oracle access to H(.) Attack 2: Evaluate H(.) on π‘ž=2 β„“/ distinct inputs x1,…,xq. Pr βˆ€π‘–<𝑗. 𝐻(xi)≠𝐻(xj) =1 1βˆ’ 1 2 β„“ 1βˆ’ 2 2 β„“ 1βˆ’ 3 2 β„“ … 1βˆ’ 2 β„“/ β„“ β‰ˆexp βˆ’π‘ž π‘žβˆ’1 2 β„“+1

43 Birthday Attack for Finding Collisions
Ideal Hashing Algorithm Random function H from {0,1}* to {0,1}β„“ Suppose attacker has oracle access to H(.) Attack 2: Evaluate H(.) on π‘ž=2 β„“/ distinct inputs x1,…,xq. Pr βˆ€π‘–<𝑗. 𝐻(xi)≠𝐻(xj) =1 1βˆ’ 1 2 β„“ 1βˆ’ 2 2 β„“ 1βˆ’ 3 2 β„“ … 1βˆ’ 2 β„“/ β„“ β‰ˆexp βˆ’π‘ž π‘žβˆ’1 2 β„“+1 <exp βˆ’4 2 β„“ 2 β„“+1 = 𝑒 βˆ’2 < 1 2

44 Birthday Attack for Finding Collisions
exp βˆ’π‘ž π‘žβˆ’1 2 β„“+1 <𝜺 for π‘ž> 2 β„“+1 ln 𝜺 +1 Ideal Hashing Algorithm Random function H from {0,1}* to {0,1}β„“ Suppose attacker has oracle access to H(.) Attack 2: Evaluate H(.) on π‘ž=2 β„“/ distinct inputs x1,…,xq. Pr βˆ€π‘–<𝑗. 𝐻(xi)≠𝐻(xj) =1 1βˆ’ 1 2 β„“ 1βˆ’ 2 2 β„“ 1βˆ’ 3 2 β„“ … 1βˆ’ 2 β„“/ β„“ β‰ˆexp βˆ’π‘ž π‘žβˆ’1 2 β„“+1 <exp βˆ’4 2 β„“ 2 β„“+1 = 𝑒 βˆ’2 < 1 2

45 Birthday Attack for Finding Collisions
Ideal Hashing Algorithm Random function H from {0,1}* to {0,1}β„“ Suppose attacker has oracle access to H(.) Attack 2: Evaluate H(.) on π‘ž=2 β„“/ distinct inputs x1,…,xq. Store values xi,𝐻(xi) in a hash table of size q Requires time/space O(π‘ž)=𝑂 2 β„“ Can we do better?

46 Floyd’s Cycle Finding Algorithm
A cycle denotes a hash collision Occurs after O 2 β„“/2 steps by birthday paradox First attack phase detects cycle Second phase identifies collision Floyd’s Cycle Finding Algorithm Let j denote the length of the chain before the cycle starts (3) in the example and let c denote the length of the cycle Let c denote length of cycle and suppose that x_{2i} = x_i then we have 2i-j=i-j mod c. Implies that 2i=c+i. We have h(x_{j-1}) = h(x_{j+c-1}), X reaches x_{j-1} in j-1 steps and x’ reaches x_{j+c-1}=x_{j+2c-1} in j-1 – steps (since we start at j) Analogy: Cycle detection in linked list Can traverse β€œlinked list” by computing H

47 Small Space Birthday Attack
Attack 2: Select random x0, define xi=𝐻(xiβˆ’1) Initialize: x=x0 and xβ€²=x0 Repeat for i=1,2,… x:=H(x) now x =xi xβ€²:=H(H(xβ€²)) now xβ€²=x2i If x=x’ then break Reset x=x0 and set xβ€²=x Repeat for j=1 to i If H(x) = H(x’) then output x,x’ Else x:= H(x), x’ = H(x) Now x=xj AND xβ€²=xi+j

48 Small Space Birthday Attack
Finds collision after O 2 β„“/2 steps in expectation Attack 2: Select random x0, define xi=𝐻(xiβˆ’1) Initialize: x=x0 and xβ€²=x0 Repeat for i=1,2,… x:=H(x) now x =xi xβ€²:=H(H(xβ€²)) now xβ€²=x2i If x=x’ then break Reset x=x0 and set xβ€²=x Repeat for j=1 to i If H(x) = H(x’) then output x,x’ Else x:= H(x), x’ = H(x) Now x=xj AND xβ€²=xi+j Let j denote the length of the chain before the cycle starts (3) in the example and let c denote the length of the cycle Let c denote length of cycle and suppose that x_{2i} = x_i then we have 2i-j=i-j mod c. Implies that 2i=c+i. We have h(x_{j-1}) = h(x_{j+c-1}), X reaches x_{j-1} in j-1 steps and x’ reaches x_{j+c-1}=x_{j+2c-1} in j-1 – steps (since we start at j)

49 Small Space Birthday Attack
Can be adapted to find β€œmeaningful collisions” if we have a large message space O 2 β„“ Example: S= 𝑆 1 βˆͺ 𝑆 2 with 𝑆 1 = 𝑆 2 = 2 β„“βˆ’1 𝑆 1 = Set of positive recommendation letters 𝑆 2 = Set of negative recommendation letters Goal: find 𝑧1βˆˆπ‘† 1 , 𝑧2βˆˆπ‘† 2 , such that H(z1) = H(z2) Can adapt previous attack by assigning unique binary string b x ∈ 0,1 β„“ of length to each π‘₯βˆˆπ‘† xi=𝐻(b xiβˆ’1 )

50 Targeted Collision Attacks
Precomputation (𝑑×𝑠 steps, 2𝑠 memory) 𝑠𝑝 2 = π‘₯ 1 2 𝑠𝑝 𝑠 = π‘₯ 1 𝑠 𝑠𝑝 1 = π‘₯ 1 1 𝑠𝑝 1 = π‘₯ 1 1 π‘₯ 2 2 =𝐻 π‘₯ 1 2 π‘₯ 2 𝑠 =𝐻 π‘₯ 1 𝑠 π‘₯ 2 1 =𝐻 π‘₯ 1 1 … … … … π‘₯ 𝑖+1 2 =𝐻 π‘₯ 𝑖 2 … π‘₯ 𝑖+1 1 =𝐻 π‘₯ 𝑖 1 π‘₯ 𝑖+1 𝑠 =𝐻 π‘₯ 𝑖 𝑠 … … … π‘₯ 𝑑 2 = 𝑒𝑝 2 π‘₯ 𝑑 𝑠 = 𝑒𝑝 𝑠 π‘₯ 𝑑 1 = 𝑒𝑝 1 π‘₯ 𝑑 1 = 𝑒𝑝 1

51 Targeted Collision Attacks
Precomputation (𝑑×𝑠 steps, 2𝑠×ℓ memory) 𝑠𝑝 𝑗 = π‘₯ 1 𝑗 Goal: Find collision for target 𝑦=𝐻(π‘₯) π‘₯ 2 𝑗 =𝐻 π‘₯ 1 𝑗 … … 𝑦 0 =𝑦 … 𝑦 1 =𝐻 𝑦 0 … π‘₯ 𝑖+1 𝑗 =𝐻 π‘₯ 𝑖 𝑗 … … … 𝑦 𝑖 =𝐻 𝑦 π‘–βˆ’1 … π‘₯ 𝑑 𝑗 = 𝑒𝑝 𝑗 𝑦 π‘˜ = 𝑒𝑝 𝑗

52 Targeted Collision Attacks
Suppose π’š= 𝒙 π’Š 𝒋 for some π’Šβ‰€π’•, 𝒋≀𝒔 οƒ  π’š=𝑯 𝒙 π’Šβˆ’πŸ 𝒋 = 𝑯 π’Šβˆ’πŸ 𝒔𝒑 𝒋 (takes t steps to recover 𝒙 π’Šβˆ’πŸ 𝒋 from 𝒔𝒑 𝒋 ) Precomputation (𝑑×𝑠 steps, 2𝑠×ℓ memory) 𝑠𝑝 𝑗 = π‘₯ 1 𝑗 Goal: Find collision for target 𝑦=𝐻(π‘₯) 𝒕×𝒔> 𝟐 β„“+𝟐 οƒ  good chance that π’š= 𝒙 π’Š 𝒋 for some π’Šβ‰€π’•, 𝒋≀𝒔 π‘₯ 2 𝑗 =𝐻 π‘₯ 1 𝑗 … … 𝑦 0 =𝑦 … 𝑦 1 =𝐻 𝑦 0 … π‘₯ 𝑖+1 𝑗 =𝐻 π‘₯ 𝑖 𝑗 … … Not quite true…chains can intersect and may not represent 𝒕×𝒔 distinct points … … 𝑦 𝑖 =𝐻 𝑦 π‘–βˆ’1 … π‘₯ 𝑑 𝑗 = 𝑒𝑝 𝑗 𝑦 π‘˜ = 𝑒𝑝 𝑗

53 Intersecting Chains Precomputation (𝑑×𝑠 steps, 2𝑠 memory)
Intersecting chains contain β‰ͺ𝐬𝒕 distinct points. 𝑠𝑝 𝑗 = π‘₯ 1 𝑗 𝑠𝑝 𝑗′ = π‘₯ 1 𝑗′ π‘₯ 2 𝑗 =𝐻 π‘₯ 1 𝑗 π‘₯ 2 𝑗′ =𝐻 π‘₯ 1 𝑗′ … … … After initial intersection the chains merge together  π‘₯ π‘˜ 𝑗′ = π‘₯ 𝑖+1 𝑗 π‘₯ π‘˜ 𝑗′ =𝐻 π‘₯ π‘˜ 𝑗′ π‘₯ 𝑖+1 𝑗 =𝐻 π‘₯ 𝑖 𝑗 … π‘₯ 𝑑 𝑗 = 𝑒𝑝 𝑗 … π‘₯ 𝑑 𝑗′ = 𝑒𝑝 𝑗′

54 Targeted Collision Attacks
Precomputation (𝑑×𝑠 steps, 2𝑠 memory) 𝑠𝑝 2 = π‘₯ 1 2 𝑠𝑝 𝑠 = π‘₯ 1 𝑠 𝑠𝑝 1 = π‘₯ 1 1 𝑠𝑝 1 = π‘₯ 1 1 π‘₯ 2 2 =𝐻 π‘₯ 1 2 π‘₯ 2 𝑠 =𝐻 π‘₯ 1 𝑠 π‘₯ 2 1 =𝐻 π‘₯ 1 1 … … … … π‘₯ 𝑖+1 2 =𝐻 π‘₯ 𝑖 2 … π‘₯ 𝑖+1 1 =𝐻 π‘₯ 𝑖 1 π‘₯ 𝑖+1 𝑠 =𝐻 π‘₯ 𝑖 𝑠 … … … π‘₯ 𝑑 2 = 𝑒𝑝 2 π‘₯ 𝑑 𝑠 = 𝑒𝑝 𝑠 π‘₯ 𝑑 1 = 𝑒𝑝 1 π‘₯ 𝑑 1 = 𝑒𝑝 1

55 Targeted Collision Attacks
𝐻 𝑖 π‘₯ =𝐻 𝐹 𝐾 𝑖 π‘₯ Precomputation (𝑑×𝑠 steps, 2𝑠 memory) 𝑠𝑝 2 = π‘₯ 1 2 𝑠𝑝 𝑠 = π‘₯ 1 𝑠 𝑠𝑝 1 = π‘₯ 1 1 𝑠𝑝 1 = π‘₯ 1 1 π‘₯ 2 2 = 𝐻 1 π‘₯ 1 2 π‘₯ 2 𝑠 = 𝐻 1 π‘₯ 1 𝑠 π‘₯ 2 1 = 𝐻 1 π‘₯ 1 1 … … … … π‘₯ 𝑖+1 2 = 𝐻 𝑖 π‘₯ 𝑖 2 … π‘₯ 𝑖+1 1 = 𝐻 𝑖 π‘₯ 𝑖 1 π‘₯ 𝑖+1 𝑠 = 𝐻 𝑖 π‘₯ 𝑖 𝑠 … … … π‘₯ 𝑑 2 = 𝑒𝑝 2 π‘₯ 𝑑 𝑠 = 𝑒𝑝 𝑠 π‘₯ 𝑑 1 = 𝑒𝑝 1 π‘₯ 𝑑 1 = 𝑒𝑝 1

56 Targeted Collision Attacks
𝐻 𝑖 π‘₯ =𝐻 𝐹 𝐾 𝑖 π‘₯ Precomputation (𝑑×𝑠 steps, 2𝑠 memory) 𝑠𝑝 2 = π‘₯ 1 2 𝑠𝑝 𝑠 = π‘₯ 1 𝑠 𝑠𝑝 1 = π‘₯ 1 1 𝑠𝑝 1 = π‘₯ 1 1 π‘₯ 2 2 = 𝐻 1 π‘₯ 1 2 π‘₯ 2 𝑠 = 𝐻 1 π‘₯ 1 𝑠 π‘₯ 2 1 = 𝐻 1 π‘₯ 1 1 … Ensures Chains Contain: Ξ© 𝑠𝑑 distinct points π‘ π‘šπ‘Žπ‘™π‘™ π‘œπ‘£π‘’π‘Ÿπ‘™π‘Žπ‘ 𝑏𝑒𝑑𝑀𝑒𝑒𝑛 π‘β„Žπ‘Žπ‘–π‘›π‘  … … … π‘₯ 𝑖+1 2 = 𝐻 𝑖 π‘₯ 𝑖 2 … π‘₯ 𝑖+1 1 = 𝐻 𝑖 π‘₯ 𝑖 1 π‘₯ 𝑖+1 𝑠 = 𝐻 𝑖 π‘₯ 𝑖 𝑠 Untangling Chains: If π‘₯ 𝑖 1 = π‘₯ 𝑗 2 with 𝑖≠𝑗 then (whp) 𝐻 𝑖 π‘₯ 𝑖 1 β‰  𝐻 𝑗 π‘₯ 𝑗 2 … … … π‘₯ 𝑑 2 = 𝑒𝑝 2 π‘₯ 𝑑 𝑠 = 𝑒𝑝 𝑠 π‘₯ 𝑑 1 = 𝑒𝑝 1 π‘₯ 𝑑 1 = 𝑒𝑝 1

57 Targeted Collision Attacks
Suppose π’š= 𝒙 π’Š 𝒋 for some π’Šβ‰€π’•, 𝒋≀𝒔 οƒ  π’š= 𝑯 π’Šβˆ’πŸ 𝐹 𝐾 π‘–βˆ’1 𝒙 π’Šβˆ’πŸ 𝒋 (takes t steps to recover 𝒙 π’Šβˆ’πŸ 𝒋 from 𝒔𝒑 𝒋 ) Precomputation (𝑑×𝑠 steps, 2𝑠×ℓ memory) 𝑠𝑝 𝑗 = π‘₯ 1 𝑗 Goal: Find collision for target 𝑦=𝐻(π‘₯) 𝒕×𝒔> 𝟐 β„“+𝟐 οƒ  good chance that π’š= 𝒙 π’Š 𝒋 for some π’Šβ‰€π’•, 𝒋≀𝒔 π‘₯ 2 𝑗 = 𝐻 1 π‘₯ 1 𝑗 … … 𝑦 0 =𝑦 … 𝑦 1 = 𝐻 1 𝑦 0 … π‘₯ 𝑖+1 𝑗 = 𝐻 π‘–βˆ’1 π‘₯ 𝑖 𝑗 𝑭𝒂𝒍𝒔𝒆 π‘·π’π’”π’Šπ’•π’Šπ’—π’†: π’šβ‰  𝒙 π’Š 𝒋 for any π’Šβ‰€π’•, 𝒋≀𝒔 (expect about 𝑢 𝒔 𝒕 𝟐 / 𝟐 β„“ ) οƒ  Running Time: 𝑢 𝒔 𝒕 πŸ‘ / 𝟐 β„“ … … … 𝑦 𝑖 = 𝐻 π‘–βˆ’1 𝑦 π‘–βˆ’1 … π‘₯ 𝑑 𝑗 = 𝑒𝑝 𝑗 𝑦 π‘˜ = 𝑒𝑝 𝑗

58 Targeted Collision Attacks
Precomputation (𝑑×𝑠 steps, 2𝑠×ℓ memory) 𝑠𝑝 𝑗 = π‘₯ 1 𝑗 Goal: Find collision for target 𝑦=𝐻(π‘₯) Set 𝑠= 2 2β„“ 3 +1 , 𝑑= 2 β„“ 3 +1 Precomputation: 𝐎 𝟐 β„“ Space: 𝐎 2 2β„“ 3 Γ—β„“ Collision Search: 𝑢 2 πŸβ„“ πŸ‘ π‘₯ 2 𝑗 = 𝐻 1 π‘₯ 1 𝑗 … … 𝑦 0 =𝑦 … Amortized cost to find 2 β„“ 3 targeted collisions 𝑦 1 = 𝐻 1 𝑦 0 … π‘₯ 𝑖+1 𝑗 = 𝐻 π‘–βˆ’1 π‘₯ 𝑖 𝑗 … … … 𝑦 𝑖 = 𝐻 π‘–βˆ’1 𝑦 π‘–βˆ’1 … π‘₯ 𝑑 𝑗 = 𝑒𝑝 𝑗 𝑦 π‘˜ = 𝑒𝑝 𝑗

59 Applications Key-Recovery Attacks on Block Cipher 𝐸:𝒦× 0,1 𝑛 β†’ 0,1 𝑛
Pre-Computation: 𝑂 𝒦 Crack 2 𝑛 πŸ‘ secret keys in total time 𝑢 𝒦 with space s=𝑢 2 2𝑛 πŸ‘ Run prior attack with β€œhash function” H: 0,1 𝑛 β†’ 0,1 𝑛 H 𝐾 = 𝐸 𝐾 π‘Ÿ for some random (fixed) π‘Ÿβˆˆ 0,1 𝑛 Password Cracking Attacker is given 𝐻′ π‘₯ 1 ,…, 𝐻′ π‘₯ π‘˜ for passwords π‘₯ 1 ,…, π‘₯ π‘˜ βˆˆπ’«π’²π’Ÿπ“ˆ with π’«π’²π’Ÿπ“ˆ β‰ͺ 𝒦 Goal: Recover passwords π‘₯ 1 ,…, π‘₯ π‘˜ Can crack all π‘˜= π’«π’²π’Ÿπ“ˆ 1/3 passwords in total time 𝑢 π’«π’²π’Ÿπ“ˆ with space s= 𝑢 π’«π’²π’Ÿπ“ˆ 2/3 Domain Challenge: H β€² : π’«π’²π’Ÿπ“ˆ β†’ 0,1 𝑛 with π’«π’²π’Ÿπ“ˆ β‰ͺ2𝑛 Define (pseudo)random mapping πœ‡: 0,1 𝑛 β†’π’«π’²π’Ÿπ“ˆ Run prior attack with β€œhash function” H:π’«π’²π’Ÿπ“ˆβ†’π’«π’²π’Ÿπ“ˆ as H π‘₯ =πœ‡ H β€² π‘₯

60 Week 5: Topic 3: Random Oracle Model + Hashing Applications

61 (Recap) Collision-Resistant Hash Function
Intuition: Hard for computationally bounded attacker to find x,y s.t. H(x) = H(y) How to formalize this intuition? Attempt 1: For all PPT A, Pr 𝐴 π‘₯,𝑦 1 𝑛 = π‘₯,𝑦 𝑠.𝑑 𝐻 π‘₯ =𝐻(𝑦) ≀𝑛𝑒𝑔𝑙(𝑛) The Problem: Let x,y be given s.t. H(x)=H(y) 𝐴 π‘₯,𝑦 1 𝑛 =(π‘₯,𝑦) We are assuming that |x| > |H(x)|. Why? H(x)=x is perfectly collision resistant! (but with no compression)

62 (Recap) Keyed Hash Function Syntax
Two Algorithms Gen (1𝑛;𝑅) (Key-generation algorithm) Input: Random Bits R Output: Secret key s 𝐻 𝑠 (π‘š) (Hashing Algorithm) Input: key 𝑠 and message m∈ 0,1 βˆ— (unbounded length) Output: hash value 𝐻 𝑠 (π‘š) ∈ 0,1 β„“ 𝑛 Fixed length hash function π‘šβˆˆ 0,1 β„“β€² 𝑛 with β„“ β€² 𝑛 >β„“ 𝑛

63 When Collision Resistance Isn’t Enough
Example: Message Commitment Alice sends Bob: Hs π‘Ÿβˆ₯π‘š (e.g., predicted winner of NCAA Tournament) Alice can later reveal message (e.g., after the tournament is over) Just send r and m (note: r has fixed length) Why can Alice not change her message? In the meantime Bob shouldn’t learn anything about m Problem: Let (Gen,H’) be collision resistant then so is (Gen,H) 𝐻 𝑠 π‘₯1,…,π‘₯𝑑 = 𝐻 ′𝑠 π‘₯1,…,π‘₯𝑑 βˆ₯π‘₯𝑑 Why include r in the hash? Brute-force attack if message space is small…attacker can quickly learn message is not _____

64 When Collision Resistance Isn’t Enough
Problem: Let (Gen,H’) be collision resistant then so is (Gen,H) 𝐻 𝑠 π‘₯1,…, π‘₯ 𝑑 = 𝐻 ′𝑠 π‘₯1,…, π‘₯ 𝑑 βˆ₯π‘₯𝑑 (Gen,H) definitely does not hide all information about input (π‘₯1,…, π‘₯ 𝑑 ) Conclusion: Collision resistance is not sufficient for message commitment

65 This is still a reasonable approach in practice!
The Tension Example: Message Commitment Alice sends Bob: Hs π‘Ÿβˆ₯π‘š (e.g., predicted winners of NCAA Final Four) Alice can later reveal message (e.g., after the Final Four is decided) In the meantime Bob shouldn’t learn anything about m This is still a reasonable approach in practice! No attacks when instantiated with any reasonable candidate (e.g., SHA3) Cryptographic hash functions seem to provide β€œsomething” beyond collision resistance, but how do we model this capability?

66 Random Oracle Model Model hash function H as a truly random function
Algorithms can only interact with H as an oracle Query: x Response: H(x) If we submit the same query you see the same response If x has not been queried, then the value of H(x) is uniform Real World: H instantiated as cryptographic hash function (e.g., SHA3) of fixed length (no Merkle-DamgΓ₯rd)

67 Back to Message Commitment
Example: Message Commitment Alice sends Bob: H π‘Ÿβˆ₯π‘š (e.g., predicted winners of NCAA Final Four) Alice can later reveal message (e.g., after the Final Four is decided) Just send r and m (note: r has fixed length) Why can Alice not change her message? In the meantime Bob shouldn’t learn anything about m Random Oracle Model: Above message commitment scheme is secure (Alice cannot change m + Bob learns nothing about m) Information Theoretic Guarantee against any attacker with q queries to H Suppose when attacker submits query H(r’|m’) we tell him that r’ is correct/incorrect. As long as r’ is incorrect the attacker learns nothing in an information theoretic sense. The probability of submitting r’=r is at most (1/2^|r|)

68 Random Oracle Model: Pros
It is easier to prove security in Random Oracle Model Suppose we are simulating attacker A in a reduction Extractability: When A queries H at x we see this query and learn x (and can easily find H(x)) Programmability: We can set the value of H(x) to a value of our choice As long as the value is correctly distribute i.e., close to uniform Both Extractability and Programmability are useful tools for a security reduction!

69 Random Oracle Model: Pros
It is easier to prove security in Random Oracle Model Provably secure constructions in random oracle model are often much more efficient (compared to provably secure construction is β€œstandard model” Sometimes we only know how to design provably secure protocol in random oracle model

70 Random Oracle Model: Cons
Lack of formal justification Why should security guarantees translate when we instantiate random oracle with a real cryptographic hash function? We can construct (contrived) examples of protocols which are Secure in random oracle model… But broken in the real world

71 Random Oracle Model: Justification
β€œA proof of security in the random-oracle model is significantly better than no proof at all.” Evidence of sound design (any weakness involves the hash function used to instantiate the random oracle) Empirical Evidence for Security β€œthere have been no successful real-world attacks on schemes proven secure in the random oracle model”

72 Hash Function Application: Fingerprinting
The hash h(x) of a file x is a unique identifier for the file Collision Resistance οƒ  No need to worry about another file y with H(y)=H(y) Application 1: Virus Fingerprinting Application 2: P2P File Sharing Application 3: Data deduplication

73 Tamper Resistant Storage
H(m1) m1’

74 Tamper Resistant Storage
File Index Hash 1 H(m1) 2 H(m2) 3 H(m3) Disadvantage: Too many hashes to store m1,m2,m3 Send file 1 m1’

75 Tamper Resistant Storage
Disadvantage: Need all files to compute hash m1,m2,m3 H(m1,m2,m3) m1,m2,m3 Send file 1 m1’

76 Merkle Trees Proof of Correctness for data block 2
Verify that root matches Proof consists of just log(n) hashes Verifier only needs to permanently store only one hash value

77 Merkle Trees Theorem: Let (Gen, hs) be a collision resistant hash function and let Hs(m) return the root hash in a Merkle Tree. Then Hs is collision resistant.

78 Tamper Resistant Storage
Root: H1-4 m1,m2,m3,m4 Send file 2 m2’,h1,h3-4

79 Commitment Schemes Alice wants to commit a message m to Bob Properties
And possibly reveal it later at a time of her choosing Properties Hiding: commitment reveals nothing about m to Bob Binding: it is infeasible for Alice to alter message

80 Commitment Hiding ( Hiding 𝐴,πΆπ‘œπ‘š (𝑛))
commit(r,mb) b’ Hiding 𝐴,πΆπ‘œπ‘š (𝑛)= if 𝑏= 𝑏 β€² π‘œπ‘‘β„Žπ‘’π‘Ÿπ‘€π‘–π‘ π‘’ r = Gen(.) Bit b βˆ€π‘ƒπ‘ƒπ‘‡ 𝐴 βˆƒπœ‡ (negligible) s.t Pr Hiding 𝐴,πΆπ‘œπ‘š 𝑛 =1 ≀ 1 2 +πœ‡(𝑛)

81 Commitment Binding ( Binding 𝐴,πΆπ‘œπ‘š (𝑛))
r0,r1,m0,m1 Binding 𝐴,πΆπ‘œπ‘š (𝑛)= if commit(r0,m0)= commit(r1,m1) π‘œπ‘‘β„Žπ‘’π‘Ÿπ‘€π‘–π‘ π‘’ βˆ€π‘ƒπ‘ƒπ‘‡ 𝐴 βˆƒπœ‡ (negligible) s.t Pr Binding 𝐴,πΆπ‘œπ‘š 𝑛 =1 β‰€πœ‡(𝑛)

82 Secure Commitment Scheme
Definition: A secure commitment scheme is hiding and binding Hiding Binding βˆ€π‘ƒπ‘ƒπ‘‡ 𝐴 βˆƒπœ‡ (negligible) s.t Pr Hiding 𝐴,πΆπ‘œπ‘š 𝑛 =1 ≀ 1 2 +πœ‡(𝑛) βˆ€π‘ƒπ‘ƒπ‘‡ 𝐴 βˆƒπœ‡ (negligible) s.t Pr Binding 𝐴,πΆπ‘œπ‘š 𝑛 =1 β‰€πœ‡(𝑛)

83 Commitment Scheme in Random Oracle Model
Commit(r,m):=H(m|r) Reveal(c):= (m,r) Theorem: In the random oracle model this is a secure commitment scheme.

84 Commitment Hiding ( Hiding 𝐴,πΆπ‘œπ‘š (𝑛))
H(r,mb) b’ Hiding 𝐴,πΆπ‘œπ‘š (𝑛)= 𝑖𝑓𝑏= 𝑏 β€² π‘œπ‘‘β„Žπ‘’π‘Ÿπ‘€π‘–π‘ π‘’ Proof: Suppose we gave attacker extra information for every query. Tell him if r matches. Now unless he sends r = Gen(.) Bit b βˆ€π‘ƒπ‘ƒπ‘‡ 𝐴 π‘šπ‘Žπ‘˜π‘–π‘›π‘” π‘Žπ‘‘ π‘šπ‘œπ‘ π‘‘ π‘ž 𝑛 π‘žπ‘’π‘’π‘Ÿπ‘–π‘’π‘  Pr Hiding 𝐴,πΆπ‘œπ‘š 𝑛 =1 ≀ π‘ž(𝑛) 2 π‘Ÿ

85 Other Applications Password Hashing Key Derivation

86 Next Week Stream Ciphers Block Ciphers Feistel Networks DES, 3DES
Read Katz and Lindell


Download ppt "Homework 2 Released Due: Tuesday, October 2nd at 3PM (beginning of class) Please Typeset Your Solutions (LaTeX, Word etc…) You may collaborate, but must."

Similar presentations


Ads by Google