1 / 37

Cryptography

This lecture explores various constructions for achieving PK.CPA and CCA security, including GenHyb.Gen, Bit Encryption, Many-bit Encryption, DecHyb.EncHyb, and more. It also introduces the concepts of CPA-secure KEM and CCA-secure KEM. The lecture discusses instantiations such as DDH-based El Gamal, Cramer-Shoup Scheme, and HDH-based variations of El Gamal.

lcarla
Download Presentation

Cryptography

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Cryptography Lecture 11 ArpitaPatra

  2. Generic Results in PK World CPA Security CCA Security = GenHyb Gen Bit Encryption Many-bit Encryption Bit Encryption Many-Bit Encryption DecHyb EncHyb  CPA-secure KEM Decaps Encaps  CCA-secure KEM Hyb CPA-secure Hyb CCA-secure SKE COA-secure SKE pk SKE CCA-secure SKE k c m sk EncSKE DecSKE (c, cSKE) k c m cSKE SKE = (GenSKE, EncSKE, DecSKE)  = (Gen, Encaps, Decaps) cSKE Hyb = (GenHyb, EncHyb, DecHyb)

  3. Constructions for PK World CPA Security CCA Security = GenHyb Gen Instantiation: DDH + CR Hash based Cramer-Shoup Scheme (first ever CCA secure under standard assumption ) PKE Instantiation: DDH based El Gamal DecHyb EncHyb KEM Instantiation: HDH based variation of El Gamal KEM Instantiation: ODH based (the same) variation of El Gamal Decaps Encaps pk k Variant ElGamal KEM Variant El Gamal KEM c m sk Hyb CPA-secure Hyb CCA-secure EncSKE DecSKE (c, cSKE) CPA-secure SKE + sCMA MAC PRG-based SKE k c m cSKE SKE = (GenSKE, EncSKE, DecSKE)  = (Gen, Encaps, Decaps) cSKE Hyb = (GenHyb, EncHyb, DecHyb)

  4. CCA Security for KEM CCA experiment  = (Gen, Encaps, Decaps) b = b’ cca (c,k)  Encapspk(1n) b  {0, 1} b  b’ KEM (n) Also have to give Decapssk(.) service to the attacker A,  k’  k if b=0  uniform random string, b =1 pk PPT A (c,k’) b’  {0, 1} pk, sk I can break  Let me verify (Attacker’s guess about encapsulated key) Game Output 0 --- attacker lost 1 --- attacker won cca Pr = 1 ½ + negl(n) Gen(1n) KEM (n)   is CPA-secure if for every PPT attacker A, the probability that A wins the experiment is at most negligibly better than ½ A, 

  5. El Gamal like KEM Gen(1n) (G, o, q, g) h = gx. For random x pk= (G,o,q,g,h), sk = x Gen(1n) (G, o, q, g) h = gx. For random x pk= (G,o,q,g,h,H), sk = x Encpk(m) c1 = gy for random y c2 = hy.. m c= (c1,c2) Encapspk(1n) c= gy for random y k = H(hy)=H(gxy.) (c,k) Decsk(c) c2 / (c1)x = c2 . [(c1)x]-1 Decapssk(c) k = H(cx )= H(gxy) - Need to choose m randomly • No need of that • No Multiplication, • hashing - Multiplication - Ciphertext= 2 elements - Ciphertext= 1 element • No Multiplication, • hashing - Multiplication Security: ?? Security: DDH Assumption

  6. El Gamal like KEM Gen(1n) (G, o, q, g) h = gx. For random x pk= (G,o,q,g,h,H), sk = x Encapspk(1n) c= gy for random y k = H(hy)=H(gxy.) (c,k) Decsk(c) k = H(cx )= H(gxy) ODH (Oracle Diffie-Hellman) Assumption ODH problem is hard relative to (G, o) and hash function H: G -> {0,1}m if for every PPT A, (it is hard to distinguish H(gxy)from a random string {0,1}m even given gx, gyAND an oracle Oy(X): = H(Xy); anything other than gx can be quired) ): - | |  negl() Pr[Aoy(.) (G, o, q, g, gx, gy, r ) = 1] Pr[Aoy(.)(G, o, q, g, gx, gy, H(gxy )) = 1] ODH assumption is just the belief that there exist a group and hash function H so that the above is true. It is stronger than HDH. Theorem: ODH assumption holds   is a CCA-secure KEM

  7. Construction of Hybrid CCA-secure PKE = GenHyb Gen DecHyb EncHyb Decaps Encaps k m pk EncSKE c DecSKE sk (c, cSKE) k c  = (Gen, Encaps, Decaps) m cSKE SKE = (GenSKE, EncSKE, DecSKE) cSKE Hyb = (GenHyb, EncHyb, DecHyb) CCA Secure SKE - CPA Secure SKE + Strong CMA Secure MAC CCA Secure  - Oracle Function assumption (ODH) DHIES (Diffie-Hellman Integrated Encryption Scheme)- – ISO/IEC 18033-2

  8. DHIES- – ISO/IEC 18033-2 (G, o, q, g) h = gx. For random x H: G  {0,1}2n pk= (G,o,q,g,h,H), sk = x  (CCA) = (Gen, Encaps, Decaps) = GenHyb SKE (CPA) = (GenSKE, EncSKE, DecSKE) MAC (sCMA)= (GenMAC, Mac, Vrfy) Hyb (CCA) = (GenHyb, EncHyb, DecHyb) EncHyb DecHyb sk c k = H(cx) = H(gxy) c= gy for random y k = H(hy)=H(gxy.) pk (c, cSKE=(cCPA,tMAC)) c k k k=kE|| kM k=kE|| kM cSKE kE kM kE kE cCPA tMAC m (cCPA, tMAC) EncCPA MacsCMA VrfysCMA DecCPA cCPA Yes m m CCA Secure SKE - CPA Secure SKE + Strong CMA Secure MAC CCA Secure  - Number theoretic assumption + Hash Function (ODH)

  9. DHIES (Term Paper) Michel Abdalla, Mihir Bellare, Phillip Rogaway: The Oracle Diffie-Hellman Assumptions and an Analysis of DHIES.CT-RSA 2001: 143-158

  10. Cramer-Shoup Cryptosystem Ronald Cramer, Victor Shoup: A Practical Public Key Cryptosystem Provably Secure Against Adaptive Chosen Ciphertext Attack.CRYPTO 1998: 13-25

  11. Cramer-Shoup Cryptosystem- Route map Another Look at DDH Assumption/ An alternative Formulation CPA Secure Scheme (different from El Gamal) CCA1 Secure Scheme + Collision-Resistant Hash Function CCA Secure Scheme

  12. Another Look at DDH (G,o,q,g) – Group of Prime Order q (g0, g1, g0y, g1y ) (g0, g1, g0y, g1y’ ) - - | | | |  negl()  negl() Pr[A(g0, g1, g0r, g1r’ ) = 1] Pr[A(g, gx, gy, gz ) = 1] Pr[A(g, gx, gy, gxy ) = 1] Pr[A(g0, g1, g0r, g1r ) = 1]

  13. Randomization Function Input Output (g0, g1, h0, h1) Random (x,y) from Zq u = g0x. g1y Way 1: Given x, y, h0 ,h1 v = h0x. h1y Way 2: Given r, u Case I (g0, g1, h0 = g0r, h1 = g1r): Claim: ur= v Proof: ur = (g0x. g1y)r= h0x. h1y = v Case II (g0, g1, h0 = g0r, h1 = g1r’ ): Claim: An all powerful adv A can guess v with probability at most 1/|G|, even given (g0, g1, h0, h1, u). Proof: A can compute r, r’, α (where g1 = g0α) and discrete log of u (say R) u = g0R = (g0x. g1y)= g0x +αy x +αy = R --- (1) v = h0x. h1y = g0rx. g1r’y = g0rx +αr’y rx +αr’y is linearly independent of x +αy For every guess R’ of this value rx+αr’y, there exist a pair of unique values for x,y satisfying equation (1)

  14. CPA Secure Scheme Gen(1n) (G, o, q, g0,g1) Random (x,y) from Zq u = g0x. g1y pk= (G,o,q, g0,g1, u), sk = (x,y) Encpk(m) Random rfrom Zq h0 = g0r, h1 = g1r c= ur.m = v.m (Way2) (h0, h1 , c) Decsk = (x,y)(h0, h1 , c) v = h0x. h1y (Way1) m = c/v m0, m1 , |m0| = |m1| Theorem. If DDH is hard, then  is a CPA-secure scheme. Proof: Assume  is not CPA-secure cpa Let us run PubK (n) A, p(n): A,  D A DDH or non-DDH tuple? cpa Pr = 1 pk = (G,o,q,g0, g1,u) ½ + 1/p(n) PubK (n) > (G,o,q,g0, g1, h0, h1) Random (x,y) from Zq u = g0x. g1y A,  (h0, h1 , c) b’  {0, 1} c = h0x. h1y . mb

  15. CPA Secure Scheme Gen(1n) (G, o, q, g0,g1) Random (x,y) from Zq u = g0x. g1y pk= (G,o,q, g0,g1, u), sk = (x,y) Encpk(m) Random rfrom Zq h0 = g0r, h1 = g1r c= ur.m = v.m (Way2) (h0, h1 , c) Decsk = (x,y)(h0, h1 , c) v = h0x. h1y (Way1) m = c/v m0, m1 , |m0| = |m1| Theorem. If DDH is hard, then  is a CPA-secure scheme. Proof: Assume  is not CPA-secure cpa Let us run PubK (n) A, p(n): A,  D A DDH Tuple cpa Pr = 1 pk = (G,o,q, g0, g1,u) ½ + 1/p(n) PubK (n) > (G,o,q,g0, g1, h0 = g0r, h1 = g1r) Random (x,y) from Zq u = g0x. g1y A,  (h0, h1 , c) h0x. h1y = g0rx. g1ry = ur b’  {0, 1} c = h0x. h1y . mb

  16. CPA Secure Scheme Gen(1n) (G, o, q, g0,g1) Random (x,y) from Zq u = g0x. g1y pk= (G,o,q, g0,g1, u), sk = (x,y) Encpk(m) Random rfrom Zq h0 = g0r, h1 = g1r c= ur.m = v.m (Way2) (h0, h1 , c) Decsk = (x,y)(h0, h1 , c) v = h0x. h1y (Way1) m = c/v m0, m1 , |m0| = |m1| Theorem. If DDH is hard, then  is a CPA-secure scheme. Proof: Assume  is not CPA-secure cpa Let us run PubK (n) A, p(n): A,  D A Non-DDH Tuple cpa cpa Pr Pr = 1 = 1 pk = (G,o,q, g0, g1,u) ½ ½ + 1/p(n) PubK (n) PubK (n) > = (G,o,q,g0, g1, h0 = g0r, h1 = g1r’) Random (x,y) from Zq u = g0x. g1y A,  A,  (h0, h1 , c) h0x. h1y is uniformly random element b’  {0, 1} c = h0x. h1y . mb

  17. CPA Secure Scheme Gen(1n) (G, o, q, g0,g1) Random (x,y) from Zq u = g0x. g1y pk= (G,o,q, g0,g1, u), sk = (x,y) Encpk(m) Random rfrom Zq h0 = g0r, h1 = g1r c= ur.m = v.m (Way2) (h0, h1 , c) Decsk = (x,y)(h0, h1 , c) v = h0x. h1y (Way1) m = c/v m0, m1 , |m0| = |m1| Theorem. If DDH is hard, then  is a CPA-secure scheme. Proof: Assume  is not CPA-secure cpa Let us run PubK (n) A, p(n): A,  = = > - 1/p(n) Pr [D(non-DDH tuple) = 1] Pr [D(DDH tuple) = 1] D A DDH or non-DDH tuple? cpa cpa Pr Pr = 1 = 1 pk = (G,o,q, g0, g1,u) ½ + 1/p(n) ½ PubK (n) PubK (n) > = (G,o,q,g0, g1, h0, h1) Random (x,y) from Zq u = g0x. g1y A,  A,  (h0, h1 , c) 1 if b = b’ 0 otherwise b’  {0, 1} c = h0x. h1y . mb

  18. Why NOT El Gamal? Gen(1n) (G, o, q, g) Random x from Zq, h = gx pk= (G,o,q, g0, h), sk = x Encpk(m) c1 = gy for random y c2 = gxy.. m Decsk(c) c2 / (c1)x = c2 . [(c1)x]-1 m0, m1 , |m0| = |m1| Theorem. If DDH is hard, then  is a CPA-secure scheme. Proof: Assume  is not CPA-secure cpa Let us run PubK (n) A, p(n): A,  = = - > Pr [D(DDH tuple) = 1] Pr [D(non-DDH tuple) = 1] 1/p(n) The secret key is not with the reduction and so cannot provide DO service to A! DDH or non-DDH tuple? cpa cpa Pr Pr = 1 = 1 pk = (G,o,q,g,gx) ½ ½ + 1/p(n) PubK (n) PubK (n) > = (G,o,q,g, gx, gy, gz) D A A,  A,  c = (gy, gz.mb) 1 if b = b’ 0 otherwise b’  {0, 1} b

  19. Is the Scheme CCA secure? Gen(1n) (G, o, q, g0,g1) Random (x,y) from Zq u = g0x. g1y pk= (G,o,q, g0,g1, u), sk = (x,y) Encpk(m) Random rfrom Zq h0 = g0r, h1 = g1r c= ur.m = v.m (Way2) (h0, h1 , c) Decsk = (x,y)(h0, h1 , c) v = h0x. h1y (Way1) m = c/v It is malleable. Not CCA Secure

  20. Is the Scheme CCA1 secure? Gen(1n) (G, o, q, g0,g1) Random (x,y) from Zq u = g0x. g1y pk= (G,o,q, g0,g1, u), sk = (x,y) Encpk(m) Random rfrom Zq h0 = g0r, h1 = g1r c= ur.m = v.m (Way2) (h0, h1 , c) Decsk = (x,y)(h0, h1 , c) v = h0x. h1y (Way1) m = c/v m0, m1 , |m0| = |m1| Theorem. If DDH is hard, then  is a CPA-secure scheme. Proof: Assume  is not CPA-secure A, p(n): = = > - 1/p(n) Pr [D(non-DDH tuple) = 1] Pr [D(DDH tuple) = 1] pk = (G,o,q, g0, g1,u) D A DDH or non-DDH tuple? cpa cpa Pr Pr = 1 = 1 Decryption query ½ ½ + 1/p(n) PubK (n) PubK (n) = > (G,o,q,g0, g1, h0, h1) Random (x,y) from Zq u = g0x. g1y A,  Au, (h0, h1 , c) 1 if b = b’ 0 otherwise b’  {0, 1} c = h0x. h1y . mb

  21. Is the Scheme CCA1 secure? Gen(1n) (G, o, q, g0,g1) Random (x,y) from Zq u = g0x. g1y pk= (G,o,q, g0,g1, u), sk = (x,y) Encpk(m) Random rfrom Zq h0 = g0r, h1 = g1r c= ur.m = v.m (Way2) (h0, h1 , c) Decsk = (x,y)(h0, h1 , c) v = h0x. h1y (Way1) m = c/v Claim. Just one decryption query is enough for an unbounded powerful adversary Au to know x,y and guess b with probability 1. Proof: Au can compute discrete log of u & g1, say R & α x +αy = R --- (1) u = g0R = (g0x. g1y)= g0x +αy Au need another (linearly) independent equation on x and y to recover them. Can Decryption Query help? pk = (G,o,q, g0, g1,u) D Au DQ: (h0, h1 , c) Random (x,y) from Zq u = g0x. g1y

  22. Is the Scheme CCA1 secure? Gen(1n) (G, o, q, g0,g1) Random (x,y) from Zq u = g0x. g1y pk= (G,o,q, g0,g1, u), sk = (x,y) Encpk(m) Random rfrom Zq h0 = g0r, h1 = g1r c= ur.m = v.m (Way2) (h0, h1 , c) Decsk = (x,y)(h0, h1 , c) v = h0x. h1y (Way1) m = c/v Claim. Just one decryption query is enough for an unbounded powerful adversary to know x,y and guess b with probability 1. Proof: Au can compute discrete log of u & g1, say R & α x +αy = R --- (1) u = g0R = (g0x. g1y)= g0x +αy Au need another (linearly) independent equation on x and y to recover them. Can Decryption Query help? c/m = v = g0R’ = (h0x. h1y)= g0rx +rαy (linearly) Dependent  No use rx +rαy = R’ --- (2) pk = (G,o,q, g0, g1,u) D Au DQ: (h0 = g0r, h1 = g1r, c) Random (x,y) from Zq u = g0x. g1y m

  23. Is the Scheme CCA1 secure? Gen(1n) (G, o, q, g0,g1) Random (x,y) from Zq u = g0x. g1y pk= (G,o,q, g0,g1, u), sk = (x,y) Encpk(m) Random rfrom Zq h0 = g0r, h1 = g1r c= ur.m = v.m (Way2) (h0, h1 , c) Decsk = (x,y)(h0, h1 , c) v = h0x. h1y (Way1) m = c/v Claim. Just one decryption query is enough for an unbounded powerful adversary to know x,y and guess b with probability 1. Proof: Au can compute discrete log of u & g1, say R & α x +αy = R --- (1) u = g0R = (g0x. g1y)= g0x +αy Au need another (linearly) independent equation on x and y to recover them. Can Decryption Query help? c/m = v = g0R’ = (h0x. h1y)= g0rx +r’αy (linearly) independent  rx +r’αy = R’ --- (2) Solving (1) & (2) gives the secret key (x,y) cpa Pr = 1 PubK (n) = 1 pk = (G,o,q, g0, g1,u) Au, D Au DQ: (h0 = g0r, h1 = g1r’, c) Random (x,y) from Zq u = g0x. g1y m

  24. CPA Secure Scheme Gen(1n) (G, o, q, g0,g1) Random (x,y) from Zq u = g0x. g1y pk= (G,o,q, g0,g1, u), sk = (x,y) Encpk(m) Random rfrom Zq h0 = g0r, h1 = g1r c= ur.m = v.m (Way2) (h0, h1 , c) Decsk = (x,y)(h0, h1 , c) v = h0x. h1y (Way1) m = c/v m0, m1 , |m0| = |m1| Theorem. If DDH is hard, then  is a CPA-secure scheme. Proof: Assume  is not CPA-secure cpa Let us run PubK (n) A, p(n): A,  = = > Illegal Decryption Query: (g0r, g1r’, c) A checking mechanism in Dec so that illegal queries will be REJECTED with very high probability - 1/p(n) Pr [D(non-DDH tuple) = 1] Pr [D(DDH tuple) = 1] D A DDH or non-DDH tuple? cpa cpa Pr Pr = 1 = 1 pk = (G,o,q, g0, g1,u) ½ ½ + 1/p(n) PubK (n) PubK (n) = > (G,o,q,g0, g1, h0, h1) Random (x,y) from Zq u = g0x. g1y A,  A,  (h0, h1 , c) 1 if b = b’ 0 otherwise b’  {0, 1} c = h0x. h1y . mb

  25. CCA1 Scheme Encpk(m) Random rfrom Zq h0 = g0r, h1 = g1r c= ur.m = v.m ; f = er(Way2) (h0, h1 , c, f) Gen(1n) (G, o, q, g0,g1) Random (x,y,x’,y’) from Zq u = g0x g1y e = g0x’ g1y’ pk= (G,o,q, g0,g1,u,e), sk = (x,y,x’,y’) Decsk = (x,y,x’,y’)(h0, h1 , c, f) f = h0x’ h1y’ (Way1) ?? v = h0x h1y (Way1) m = c/v Claim. An unbounded powerful adversary computes (x,y) except with neg. probability. Therefore it can guess bit b with probability no better than ½ + negl(.). Proof: Au can compute discrete log of u, e g1, say R, S & α u = g0R = (g0x g1y)= g0x +αy x +αy = R -(1) e = g0S = (g0x’ g1y’)= g0x’ +αy’ x’ +αy’ = S -(2) What if Au can guess f so that f = h0x’ h1y’ ?? Do you see the disaster??????? f = g0S’ = (h0x’h1y’)= g0rx +r’αy (linearly) independent of (2) rx’ +r’αy’ = S’ --- (3) c/m = v = g0R’ = (h0x. h1y)= g0rx +r’αy (linearly) independent of (1) rx +r’αy = R’ --- (4) cpa Pr = 1 PubK (n) = 1 Solving (1) & (4) gives the secret key (x,y) D Au pk = (G,o,q, g0, g1,u,e) Au, Random (x,y,x’,y’) from Zq u = g0x g1y e = g0x’ g1y’ f = h0x’ h1y’ ?? If yes, then send m DQ: (h0=g0r, h1=g1r’, c, f) m

  26. Security Proof of CCA1 Scheme Encpk(m) Random rfrom Zq h0 = g0r, h1 = g1r c= ur.m = v.m ; f = er(Way2) (h0, h1 , c, f) Gen(1n) (G, o, q, g0,g1) Random (x,y,x’,y’) from Zq u = g0x g1y e = g0x’ g1y’ pk= (G,o,q, g0,g1,u,e), sk = (x,y,x’,y’) Decsk = (x,y,x’,y’)(h0, h1 , c, f) f = h0x’ h1y’ (Way1) ?? v = h0x h1y (Way1) m = c/v Claim. An unbounded powerful adversary computes (x,y) except with neg. probability. Therefore it can guess bit b with probability no better than ½ + negl(.). Proof: Au can compute discrete log of u & g1, say R & α x +αy = R --- (1) u = g0R = (g0x g1y)= g0x +αy Yes! It does. Au knows its chosen value in the first DQ is NOT a possibility. Next time it can guess f from G minus that value x’ +αy’ = S --- (2) e = g0S = (g0x’ g1y’)= g0x’ +αy’ What is the prob of Au guessing f so that f = h0x’ h1y’ = g0rx +αr’yin his FIRST DQ Recall that h0x’ h1y’ is uniformly random for Au even given (g0, g1, h0=g0r, h1=g1r’ , e) Pr[Au succeeds in first DQ] = 1/|G| --- negligible D Au pk = (G,o,q, g0, g1,u,e) But Au can make polynomials many attempts say, t many. Random (x,y,x’,y’) from Zq u = g0x g1y e = g0x’ g1y’ f = h0x’ h1y’ ?? If yes, then send m DQ: (h0=g0r, h1=g1r’, c, f) Does getting rejected in the first DQ help in succeeding second DQ? m

  27. Security Proof of CCA1 Scheme Encpk(m) Random rfrom Zq h0 = g0r, h1 = g1r c= ur.m = v.m ; f = er(Way2) (h0, h1 , c, f) Gen(1n) (G, o, q, g0,g1) Random (x,y,x’,y’) from Zq u = g0x g1y e = g0x’ g1y’ pk= (G,o,q, g0,g1,u,e), sk = (x,y,x’,y’) Decsk = (x,y,x’,y’)(h0, h1 , c, f) f = h0x’ h1y’ (Way1) ?? v = h0x h1y (Way1) m = c/v Claim. An unbounded powerful adversary computes (x,y) except with neg. probability. Therefore it can guess bit b with probability no better than ½ + negl(.). Proof: Au can compute discrete log of u & g1, say R & α x +αy = R --- (1) u = g0R = (g0x g1y)= g0x +αy x’ +αy’ = S --- (2) e = g0S = (g0x’ g1y’)= g0x’ +αy’ What is the prob of Au guessing f so that f = h0x’ h1y’ = g0rx +αr’yin his SECOND DQ Pr[Au succeeds in second DQ] = 1 / (|G|-1) - negligible D Au pk = (G,o,q, g0, g1,u,e) Random (x,y,x’,y’) from Zq u = g0x g1y e = g0x’ g1y’ f = h0x’ h1y’ ?? If yes, then send m DQ: (h0=g0r, h1=g1r’, c, f) m

  28. Security Proof of CCA1 Scheme Encpk(m) Random rfrom Zq h0 = g0r, h1 = g1r c= ur.m = v.m ; f = er(Way2) (h0, h1 , c, f) Gen(1n) (G, o, q, g0,g1) Random (x,y,x’,y’) from Zq u = g0x g1y e = g0x’ g1y’ pk= (G,o,q, g0,g1,u,e), sk = (x,y,x’,y’) Decsk = (x,y,x’,y’)(h0, h1 , c, f) f = h0x’ h1y’ (Way1) ?? v = h0x h1y (Way1) m = c/v Claim. An unbounded powerful adversary computes (x,y) except with neg. probability. Therefore it can guess bit b with probability no better than ½ + negl(.). Proof: Au can compute discrete log of u & g1, say R & α x +αy = R --- (1) u = g0R = (g0x g1y)= g0x +αy x’ +αy’ = S --- (2) e = g0S = (g0x’ g1y’)= g0x’ +αy’ What is the prob of Au guessing f so that f = h0x’ h1y’ = g0rx +αr’yin his tth DQ (t is the upper bound on the number of DQs) Pr[Au succeeds in tth DQ] = 1 / (|G|-t) - negligible cpa Pr = 1 ≤ ½ + negl(.) PubK (n) Pr[Au succeeds in one of t DQs] ≤ t / (|G|-t) - negligible D Au pk = (G,o,q, g0, g1,u,e) Au, Random (x,y,x’,y’) from Zq u = g0x g1y e = g0x’ g1y’ f = h0x’ h1y’ ?? If yes, then send m DQ: (h0=g0r, h1=g1r’, c, f) m

  29. Is the Scheme CCA-secure? Encpk(m) Random rfrom Zq h0 = g0r, h1 = g1r c= ur.m = v.m ; f = er(Way2) (h0, h1 , c, f) Gen(1n) (G, o, q, g0,g1) Random (x,y,x’,y’) from Zq u = g0x g1y e = g0x’ g1y’ pk= (G,o,q, g0,g1,u,e), sk = (x,y,x’,y’) Decsk = (x,y,x’,y’)(h0, h1 , c, f) f = h0x’ h1y’ (Way1) ?? v = h0x h1y (Way1) m = c/v Claim. Just one DQ in post-challenge phase is enough for an unbounded powerful adversary to compute (x,y) completely and guess bit b with probability 1. Proof: Au can compute discrete log of u & g1, say R & α x +αy = R --- (1) u = g0R = (g0x g1y)= g0x +αy x’ +αy’ = S --- (2) e = g0S = (g0x’ g1y’)= g0x’ +αy’ What is the prob of Au guessing f so that f = h0x’ h1y’ = g0rx +αr’yin his tth DQ (t is the upper bound on the number of DQs) Pr[Au succeeds in tth DQ] = 1 / (|G|-t) - negligible cpa Pr = 1 ≤ ½ + negl(.) PubK (n) Pr[Au succeeds in one of t DQs] ≤ t / (|G|-t) - negligible D Au pk = (G,o,q, g0, g1,u,e) Au, Random (x,y,x’,y’) from Zq u = g0x g1y e = g0x’ g1y’ f = h0x’ h1y’ ?? If yes, then send m DQ: (h0=g0r, h1=g1r’, c, f) m

  30. Is the Scheme CCA-secure? Encpk(m) Random rfrom Zq h0 = g0r, h1 = g1r c= ur.m = v.m ; f = er(Way2) (h0, h1 , c, f) Gen(1n) (G, o, q, g0,g1) Random (x,y,x’,y’) from Zq u = g0x g1y e = g0x’ g1y’ pk= (G,o,q, g0,g1,u,e), sk = (x,y,x’,y’) Decsk = (x,y,x’,y’)(h0, h1 , c, f) f = h0x’ h1y’ (Way1) ?? v = h0x h1y (Way1) m = c/v m0, m1 , |m0| = |m1| Claim. Just one DQ in post-challenge phase is enough for an unbounded powerful adversary to compute (x,y) completely and guess bit b with probability 1. Proof: Au can compute discrete log of u & g1, say R & α We need to ensure Au can not make illegal DQ and get DO service even after seeing the challenge ciphertext. x +αy = R --- (1) u = g0R = (g0x g1y)= g0x +αy x’ +αy’ = S --- (2) e = g0S = (g0x’ g1y’)= g0x’ +αy’ We are now considering the case when D received a non-DDH tuple (g0, g1, h*0, h*1) and so h*0=g0r, h*1=g1r’ Increase the no. of variables??? f* = g0S* = (h0x’h1y’)= g0rx +r’αy (linearly) independent of (2) rx’ +r’αy’ = S* --- (3) cpa Pr = 1 Solving (2) & (3) gives (x’,y’) = 1 PubK (n) D Au pk = (G,o,q, g0, g1,u,e) Au, Now Au can make illegal DQ in post-challenge phase and still pass the verification and get m and discover (x,y) Random (x,y,x’,y’) from Zq u = g0x g1y e = g0x’ g1y’ (h*0, h*1 , c*, f*) c = h0x h1y . mb f = h0x’h1y’

  31. Is the Scheme CCA-secure? Encpk(m) Random rfrom Zq h0 = g0r, h1 = g1r c= ur.m = v.m ; f = er;l = kr(Way2) (h0, h1 , c, f, l) Gen(1n) (G, o, q, g0,g1) Random (x,y,x’,y’, x’’, y’’ ) from Zq u = g0x g1y e = g0x’ g1y’ k = g0x’’g1y’’ pk= (G,o,q, g0,g1,u,e,k), sk = (x,y,x’,y’,x’’,y’’) Decsk = (x,y,x’,y’,,x’’,y’’)(h0, h1,c,f,l) f = h0x’ h1y’ (Way1) ?? l= h0x’’h1y’’ (Way1) ?? v = h0x h1y (Way1) m = c/v m0, m1 , |m0| = |m1| Does above help? Proof: Au can compute discrete log of u & g1, say R & α x +αy = R - (1) u = g0R = (g0x g1y)= g0x +αy x’ +αy’ = S - (2) f* = g0S* = (h0x’h1y’)= g0rx’ +r’αy’ rx’ +r’αy’ = S* - (4) e = g0S = (g0x’ g1y’)= g0x’ +αy’ x’’ +αy’’ = T - (3) l* = g0T* = (h0x’’h1y’’)= g0rx’’ +r’αy’’ rx’’ +r’αy’’ = T’* - (5) k = g0T = (g0x’’ g1y’’)= g0x’’ +αy’’ We are now considering the case when D received a non-DDH tuple (g0, g1, h*0, h*1) and so h*0=g0r, h*1=g1r’ Now Au can make illegal DQ in post-challenge phase and still pass the verification and get m and discover (x,y) D Au pk = (G,o,q, g0, g1,u,e,k) Adding more variable in the above way does not help. Random (x,y,x’,y’) from Zq u = g0x g1y e = g0x’ g1y’ (h*0, h*1 , c*, f*,l*) c = h0x h1y . mb f = h0x’h1y’

  32. Is the Scheme CCA-secure? Encpk(m) Random rfrom Zq h0 = g0r, h1 = g1r c= ur.m = v.m ; f = erkr(Way2) (h0, h1 , c, f) Gen(1n) (G, o, q, g0,g1) Random (x,y,x’,y’, x’’, y’’ ) from Zq u = g0x g1y e = g0x’ g1y’ k = g0x’’g1y’’ pk= (G,o,q, g0,g1,u,e,k), sk = (x,y,x’,y’,x’’,y’’) Decsk = (x,y,x’,y’,x’’,y’’),(h0,h1 ,c,f) f = h0x’+x’’ h1y’+y’’ ?? v = h0x h1y (Way1) m = c/v m0, m1 , |m0| = |m1| Does above help? Proof: x +αy = R - (1) u = g0R = (g0x g1y)= g0x +αy x’ +αy’ = S - (2) f* = g0S* = (h0x’+x’’h1y’+y’’)= g0r(x’+x’’) +r’α(y’ + y’’) e = g0S = (g0x’ g1y’)= g0x’ +αy’ x’’ +αy’’ = T - (3) k = g0T = (g0x’’ g1y’’)= g0x’’ +αy’’ r(x’ + x’’) + r’α(y’ + y’’) = S* - (4) From (2), (3) & (4), Au can compute (x’ + x’’) and (y’ + y’’) and that’s enough to make an illegal DQ in post-challenge phase and still pass the verification and get m and discover (x,y). D Au pk = (G,o,q, g0, g1,u,e,k) Adding more variable in the above way does not help. Random (x,y,x’,y’) from Zq u = g0x g1y e = g0x’ g1y’ (h*0, h*1 , c*, f*) c = h0x h1y . mb f = h0x’h1y’

  33. Is the Scheme CCA-secure? Encpk(m) Random rfrom Zq h0 = g0r, h1 = g1r c= ur.m = v.m ; f = erkβr β = H(h0, h1 , c) (h0, h1 , c, f) Gen(1n) (G, o, q, g0,g1) Random (x,y,x’,y’, x’’, y’’ ) from Zq u = g0x g1y e = g0x’ g1y’ k = g0x’’g1y’’ pk= (G,o,q, g0,g1,u,e,k, H), sk = (x,y,x’,y’,x’’,y’’) Decsk = (x,y,x’,y’,x’’,y’’)(h0,h1,c,f) β = H(h0, h1 , c) f = h0x’ + βx’’ h1y’ + βy’’ ?? v = h0x h1y m = c/v m0, m1 , |m0| = |m1| Does above help? Proof: x +αy = R - (1) u = g0R = (g0x g1y)= g0x +αy x’ +αy’ = S - (2) f* = g0S’ = (h0x’ + βx’’h1y’ + βy’’)= g0r(x’ + βx’’) +r’α(y’ + βy’’) e = g0S = (g0x’ g1y’)= g0x’ +αy’ x’’ +αy’’ = T - (3) k = g0T = (g0x’’ g1y’’)= g0x’’ +αy’’ r(x’ + βx’’) + r’α(y’ + βy’’) = S’ - (4) From (2), (3) & (4), Au can compute (x’ + βx’’) and (y’ + βy’’) BUT…… …….to make an illegal DQ in post-challenge phase Au must find a collision for H i.eh’0, h’1 , c’ such that β = H(h’0, h’1 , c’) because….. D Au pk = (G,o,q, g0, g1,u,e,k) …….he is not allowed to submit the challenge ciphertext to DO Random (x,y,x’,y’) from Zq u = g0x g1y e = g0x’ g1y’ (h*0, h*1 , c*, f*) c = h0x h1y . mb f = h0x’h1y’

  34. The Cramer-Shoup Cryptosystem Encpk(m) Random rfrom Zq h0 = g0r, h1 = g1r c= ur.m = v.m ; f = erkβr β = H(h0, h1 , c) (h0, h1 , c, f) Gen(1n) (G, o, q, g0,g1) Random (x,y,x’,y’, x’’, y’’ ) from Zq u = g0x g1y e = g0x’ g1y’ k = g0x’’g1y’’ pk= (G,o,q, g0,g1,u,e,k, H), sk = (x,y,x’,y’,x’’,y’’) Decsk = (x,y,x’,y’,x’’,y’’)(h0,h1,c,f) β = H(h0, h1 , c) f = h0x’ + βx’’ h1y’ + βy’’ ?? v = h0x h1y m = c/v m0, m1 , |m0| = |m1| Theorem. If DDH is hard + H is CR HF, then  is a CCA-secure scheme. Case I: If (h0, h1 , c) = (h*0, h*1 , c*) and f* ≠ f  D will reject Case II: If (h0, h1 , c) ≠ (h*0, h*1 , c*) and f* = f [i.e. H(h0, h1 , c) = H(h*0, h*1 , c*) ] A has found collision but since H is CR, this happens with negl probability pk = (G,o,q, g0, g1,u,e,k) D (h0, h1 , c, f) A DDH or non-DDH tuple? Reject (if verification fails) (G,o,q,g0, g1, h0, h1) Random (x,y,x’,y’,x’’,y’’) Compute u,e,k (h*0, h*1 , c*, f*) c*= h0xh1ymband f* (h0, h1 , c, f) 1 if b = b’ 0 otherwise Reject (if verification fails) b’  {0, 1}

  35. The Cramer-Shoup Cryptosystem Encpk(m) Random rfrom Zq h0 = g0r, h1 = g1r c= ur.m = v.m ; f = erkβr β = H(h0, h1 , c) (h0, h1 , c, f) Gen(1n) (G, o, q, g0,g1) Random (x,y,x’,y’, x’’, y’’ ) from Zq u = g0x g1y e = g0x’ g1y’ k = g0x’’g1y’’ pk= (G,o,q, g0,g1,u,e,k, H), sk = (x,y,x’,y’,x’’,y’’) Decsk = (x,y,x’,y’,x’’,y’’)(h0,h1,c,f) β = H(h0, h1 , c) f = h0x’ + βx’’ h1y’ + βy’’ ?? v = h0x h1y m = c/v m0, m1 , |m0| = |m1| Theorem. If DDH is hard + H is CR HF, then  is a CCA-secure scheme. Case III: H(h0, h1 , c) ≠ H(h*0, h*1 , c*) ]: There is a possibility that it is a valid ciphertext. But it can happen by sheer luck. We can have four INDEPENDENT constraints on x’,y’.x’’.y’’ : (1) e (2) k (3) challenge cipher (4) DO => Breaking security But before making DO query A had only three constraints and so finding an matching f for the DO can be donewithprob at most 1/|G| pk = (G,o,q, g0, g1,u,e,k) D (h0, h1 , c, f) A DDH or non-DDH tuple? Reject (if verification fails) (G,o,q,g0, g1, h0, h1) Random (x,y,x’,y’,x’’,y’’) Compute u,e,k (h*0, h*1 , c*, f*) c*= h0xh1ymband f* (h0, h1 , c, f) 1 if b = b’ 0 otherwise Reject (if verification fails) b’  {0, 1}

  36. Public Key Summary Primitives Security Notions Assumptions CPA >> Close Relatives of DL assumptions- CDH, DDH, HDH, ODH PKE CCA >> RSA Assumption (Padded RSA, RSA OAEP) Adaptive Attack (Non-committing Encryption) KEM >> Factoring assumptions (Rabin Cryptosystem) >> Quadratic Residuacity Assumptions (Micali-Goldwasser) Selective Opening Attack >> Decisional Composite Residuacity (DCR) Assumptions (Paillier) Hybrid Encryption (Deniable Encryption) >> Lattice-based Assumptions LWE, LPN (Regev) Many more assumptions

More Related