MIT 6.875 & Berkeley CS276 Foundations of Cryptography Lecture 17
HOW TO CONSTRUCT NIZK IN THE CRS MODEL Step 1. Review our number theory hammers & polish them. Step 2. Construct NIZK for a special NP language, namely quadratic non -residuosity. Step 3. Bootstrap to NIZK for 3SAT, an NP-complete language.
3SAT Boolean Variables: π¦ ! can be either true (1) or false (0) A Literal is either π¦ ! or " π¦ ! . A Clause is a disjunction of literals. E.g. π¦ " β¨ π¦ # β¨ π¦ $ A Clause is true if any one of the literals is true.
3SAT Boolean Variables: π¦ ! can be either true (1) or false (0) A Literal is either π¦ ! or " π¦ ! . A Clause is a disjunction of literals. E.g. π¦ " β¨ π¦ # β¨ π¦ $ is true as long as: (π¦ " , π¦ # , π¦ $ ) β (0,0,1)
3SAT Boolean Variables: π¦ ! can be either true (1) or false (0) A Literal is either π¦ ! or " π¦ ! . A 3-Clause is a disjunction of 3-literals. A 3-SAT formula is a conjunction of many 3-clauses. E.g. π = ( π¦ " β¨ π¦ # β¨ π¦ $ ) β§ ( π¦ " β¨ π¦ % β¨ π¦ & ) ( π¦ # β¨ π¦ % β¨ π¦ $ ) A 3-SAT formula π is satisfiable if there is an assignment of values to the variables π¦ ! that makes all its clauses true.
3SAT Cook-Levin Theorem: It is NP-complete to decide whether a 3-SAT formula π is satisfiable. A 3-SAT formula is a conjunction of many 3-clauses. E.g. π = ( π¦ " β¨ π¦ # β¨ π¦ $ ) β§ ( π¦ " β¨ π¦ % β¨ π¦ & ) ( π¦ # β¨ π¦ % β¨ π¦ $ ) A 3-SAT formula π is satisfiable if there is an assignment of values to the variables π¦ ! that makes all its clauses true.
NIZK for 3SAT: Recallβ¦ We saw a way to show that a pair (πΆ, π) is GOOD. That is: β and the following is the picture of π ) β’ for every π β πΎππ (" , either π or π π§ is a quadratic residue. β’ β π ) π π ) πΎππ (" πΎππ '" π ππ )
NIZK for 3SAT (" ) +,-./ 0123/- π·ππ = (π " , π # , β¦ , π +,-./ 0123/- ) β (πΎππ ) π π (π, π§, π) Satisfying assignment (w ! , w " , β¦ , w # ) 1. Prover picks an (π, π§) and proves that it is GOOD. Input: π = ( π¦ " β¨ π¦ # β¨ π¦ $ ) β§ ( π¦ " β¨ π¦ % β¨ π¦ & ) ( π¦ # β¨ π¦ % β¨ π¦ $ ) n variables, m clauses.
NIZK for 3SAT (" ) +,-./ 0123/- π·ππ = (π " , π # , β¦ , π +,-./ 0123/- ) β (πΎππ ) π π (π, π§, π) Satisfying assignment (w ! , w " , β¦ , w # ) 2. Prover encodes the satisfying assignment π§ ! β π π ) if π¦ ! is false π§ ! β π ππ ) if π¦ ! is true
NIZK for 3SAT (" ) +,-./ 0123/- π·ππ = (π " , π # , β¦ , π +,-./ 0123/- ) β (πΎππ ) π π (π, π§, π) Satisfying assignment (w ! , w " , β¦ , w # ) 2. Prover encodes the satisfying assignment & β΄ the literals πΉππ π¦ ! = π§ ! , then πΉππ " π¦ ! = π§π§ ! β΄ exactly one of πΉππ π¦ ! ππ πΉππ " π¦ ! is a non-residue.
NIZK for 3SAT (" ) +,-./ 0123/- π·ππ = (π " , π # , β¦ , π +,-./ 0123/- ) β (πΎππ ) (π, π§, π) π π Encode vars: (π§ ! , β¦ , π§ " ) Satisfying assignment (w ! , w " , β¦ , w # ) 2. Prover encodes the satisfying assignment & β΄ the literals πΉππ π¦ ! = π§ ! , then πΉππ " π¦ ! = π§π§ ! β΄ exactly one of πΉππ π¦ ! ππ πΉππ " π¦ ! is a non-residue.
NIZK for 3SAT (" ) +,-./ 0123/- π·ππ = (π " , π # , β¦ , π +,-./ 0123/- ) β (πΎππ ) (π, π§, π) π π Encode vars: (π§ ! , β¦ , π§ " ) Satisfying assignment (w ! , w " , β¦ , w # ) 3. Prove that (encoded) assignment satisfies each clause. For each clause, say π¦ " β¨ π¦ # β¨ π¦ $ , For each clause, say π¦ " β¨ π¦ # β¨ π¦ $ , let ( π " = π§ " , π " = let ( π " , π " , π " ) denote the encoded variables. π§ # , π " = π§π§ $ ) denote the encoded variables. So, each of them is either π§ ! (if the literal is a var) or π§π§ ! (if the literal is a negated var).
NIZK for 3SAT (" ) +,-./ 0123/- π·ππ = (π " , π # , β¦ , π +,-./ 0123/- ) β (πΎππ ) (π, π§, π) π π Encode vars: (π§ ! , β¦ , π§ " ) Satisfying assignment (w ! , w " , β¦ , w # ) 3. Prove that (encoded) assignment satisfies each clause. For each clause, say π¦ " β¨ π¦ # β¨ π¦ $ , let ( π " , π " , π " ) denote the encoded variables. WANT to SHOW: π¦ " ππ π¦ # ππ π¦ $ is true.
NIZK for 3SAT (" ) +,-./ 0123/- π·ππ = (π " , π # , β¦ , π +,-./ 0123/- ) β (πΎππ ) (π, π§, π) π π Encode vars: (π§ ! , β¦ , π§ " ) Satisfying assignment (w ! , w " , β¦ , w # ) 3. Prove that (encoded) assignment satisfies each clause. For each clause, say π¦ " β¨ π¦ # β¨ π¦ $ , let ( π " , π " , π " ) denote the encoded variables. WANT to SHOW: π " ππ π " ππ π " is a non-residue.
NIZK for 3SAT Prove that (encoded) assignment satisfies each clause. WANT to SHOW: π " ππ π " ππ π " is a non-residue. Equiv: The βsignatureβ of ( π " , π " , π " ) is NOT (QR, QR, QR). CLEVER IDEA: Generate seven additional triples ( π ! , π ! , π ! ) βProof of Coverageβ: ( π " , π " , π " ) original triple show that the 8 triples span ( π # , π # , π # ) show this is a QR: all possible QR signatures reveal the square roots ( π $ , π $ , π $ ) ( π % , π % , π % ) ( π & , π & , π & ) ( π ' , π ' , π ' ) ( π ( , π ( , π ( )
NIZK for 3SAT CLEVER IDEA: Generate seven additional triples ( π ! , π ! , π ! ) ( π " , π " , π " ) original triple βProof of Coverageβ: ( π # , π # , π # ) show this is a QR: show that the 8 triples span reveal the square roots all possible QR signatures ( π $ , π $ , π $ ) ( π % , π % , π % ) ( π & , π & , π & ) ( π ' , π ' , π ' ) ( π ( , π ( , π ( ) Proof of Coverage: For each of poly many triples (π , π‘, π’) from CRS, show one of the 8 triples has the same signature. That is, there is a triple (π ! , π ! , π ! ) s.t. (π π ! , π‘π ! , π’π ! ) is π π, π π, π π .
NIZK for 3SAT (" ) +,-./ 0123/- π·ππ = (π " , π # , β¦ , π +,-./ 0123/- ) β (πΎππ ) (π, π§, π) π π Encode vars: (π§ ! , β¦ , π§ " ) Satisfying assignment (w ! , w " , β¦ , w # ) For each clause π : π # 3. Prove that (encoded) assignment satisfies each clause. For each clause, construct the proof Ο = (7 additional triples, square root of the second triples, proof of coverage).
NIZK for 3SAT (" ) +,-./ 0123/- π·ππ = (π " , π # , β¦ , π +,-./ 0123/- ) β (πΎππ ) (π, π§, π) π π Encode vars: (π§ ! , β¦ , π§ " ) Satisfying assignment (w ! , w " , β¦ , w # ) For each clause π : π # Completeness & Soundness: Exercise. Zero Knowledge: Simulator picks (π, π§) where π§ is a quadratic residue . Now, encodings of ALL the literals can be set to TRUE!!
HOW TO CONSTRUCT NIZK IN THE CRS MODEL Step 1. Review our number theory hammers & polish them. Step 2. Construct NIZK for a special NP language, namely quadratic non -residuosity. Step 3. Bootstrap to NIZK for 3SAT, an NP-complete language.
An Application of NIZK: Non-malleable and Chosen Ciphertext Secure Encryption Schemes
Non-Malleability m β Dec( sk ,c) c β Enc( pk ,m) sk Public-key directory Bob pk
Active Attacks 1: Malleability c β Enc(pk,$100) sk cβ = Enc(pk,$101) ATTACK: Adversary could modify (βmaulβ) an encryption of m into an encryption of a related message mβ.
Active Attacks 2: Chosen-Ciphertext Attack c* β Enc(pk,m) sk ATTACK: Adversary may have access to a decryption In fact, Bleichenbacher showed how to extract the entire βoracleβ and can use it to break security of a βtargetβ secret key given only a βciphertext verificationβ oracle. ciphertext c* or even extract the secret key!
IND-CCA Security Challenger Eve ππ ππ, π‘π β π»ππ 1 ) π π π¬ππ (ππ, π π ) β = |π ! β , π ! β β | π , π‘. π’. π , π β 0,1 ; π β β πΉππ(ππ, π + β ) π β π π β π β π π π¬ππ (ππ, π π ) π¬ππ (ππ, π π ) Eve wins if π $ = π . IND-CCA secure if no πβ² PPT Eve can win with prob. > ! % + negl(π) .
Recommend
More recommend