picnic post quantum signatures from zero knowledge proofs
play

Picnic Post-Quantum Signatures from Zero Knowledge Proofs MELISSA - PowerPoint PPT Presentation

Picnic Post-Quantum Signatures from Zero Knowledge Proofs MELISSA CHASE, MSR THE PICNIC TEAM DAVID DERLER SEBASTIAN RAMACHER STEVEN GOLDFEDER CHRISTIAN RECHBERGER JONATHAN KATZ DANIEL SLAMANIG VLAD KOLESNIKOV XIAO WANG CLAUDIO ORLANDI


  1. Picnic Post-Quantum Signatures from Zero Knowledge Proofs MELISSA CHASE, MSR THE PICNIC TEAM DAVID DERLER SEBASTIAN RAMACHER STEVEN GOLDFEDER CHRISTIAN RECHBERGER JONATHAN KATZ DANIEL SLAMANIG VLAD KOLESNIKOV XIAO WANG CLAUDIO ORLANDI GREG ZAVERUCHA

  2. Post-quantum cryptography A sufficiently powerful quantum computer could factor numbers and compute discrete logarithms ◦ Breaks essentially all standardized public key crypto ◦ E.g. RSA, DSA, ECDSA are insecure Post-quantum cryptography: Design new schemes that ◦ can be run on classical machines ◦ Remain secure even if adversary has a quantum computer Why now? Existing quantum computers only handle a few bits! ◦ Designing and deploying cryptography is slow! ◦ Propose assumptions and schemes ◦ Determine candidate parameters ◦ Analyze and attack schemes/assumptions ◦ Optimize surviving candidates ◦ Implement and deploy new schemes ◦ Deprecate old algorithms

  3. Post-quantum cryptography If quantum computers can break factoring and discrete log based crypto, is anything still hard? Some proposed quantum hard problems: ◦ Lattice-based problems ◦ Supersingular isogeny Diffie–Hellman (SIDH) ◦ Code-based problems ◦ Multi-variate polynomial problems ◦ Symmetric key primitives (hash functions, block ciphers)

  4. Post-quantum cryptography ECDSA gives us small keys, small signatures and fast signing and verification ◦ But it is insecure against a quantum adversary Are there any comparable post-quantum proposals? Public key size Signature size Signing time Verification time Lattice (LWE) Very large Small Fast Fast Lattice (Ring-LWE) Large Small Fast Fast SIDH Moderate Large Very slow Very slow Multivariate Small Moderate Moderate Moderate Hash (stateful) Small Small Fast Fast Hash (stateless) Small Moderate Moderate Fast

  5. Picnic: Our post-quantum signature scheme Based on symmetric primitives: a hash function + a block cipher ◦ Concretely we suggest: SHAKE and LowMC Efficiency ◦ Small keys, moderate signature size, moderate signing and verification time New approach ◦ Significant opportunity for further optimization ◦ Diversity of approaches for non-number-theoretic assumptions

  6. Roadmap Picnic: Basic approach Picnic: Building blocks Performance Picnic 2.0 Conclusion

  7. Picnic: basic approach Signature from identification scheme (similar to DSA/ECDSA): Public key = F(sk) For example, Signature= proof of knowledge of sk ( using message as nonce) F: hash function ◦ *Proof must not leak sk, so we need a zero knowledge proof Challenge: we need a hard to invert function F , and a zero knowledge proof system ◦ Both need to be secure against quantum adversary

  8. Picnic building blocks: ZKBoo ZKBoo [GMO16]: zero knowledge proofs for statements about circuits. 𝑦 " 𝑧 " 𝑦 # Public circuit with AND and 𝑦 $ 𝑧 # 𝑦 % XOR gates 𝑦 & 𝑧 $ 𝑦 ' Prover wants to prove he knows 𝑦 " … 𝑦 * such that the circuit evaluates to 𝑧 " … 𝑧 + Hard to pk Signer sk invert F Built on hash functions and PRNG Cost depends on the number of AND gates in the circuit and security level

  9. Picnic building blocks: ZKBoo (intuition) Obviously trivial: just a toy example! A toy example: Prover wants to prove knowledge of 𝑏, 𝑐 such that 𝑏 ⊕ 𝑐 = 𝑑 𝑏 XOR c 𝑐 Verifier: Prover: ◦ Step 1: XOR secret share inputs 𝑑 " , 𝑑 # ◦ Pick random bits 𝑏 " , 𝑏 # that XOR to 𝑏 and 𝑐 " , 𝑐 # for 𝑐 ℎ " , ℎ # ◦ 𝒃 𝟐 ⊕ 𝒃 𝟑 = 𝒃 , 𝒄 𝟐 ⊕ 𝒄 𝟑 = 𝒄 ◦ Step 4: Pick 1 or 2 at random 1 ◦ Step 2: compute output shares for ⊕ gate 𝒃 𝟐 , 𝒄 𝟐 , 𝑠 ◦ 𝒅 𝟐 = 𝒃 𝟐 ⊕ 𝒄 𝟐 , 𝒅 𝟑 = 𝒃 𝟑 ⊕ 𝒄 𝟑 " ◦ Step 3: commit to shares ◦ Step 5: Check that 𝑑 " ⊕ 𝑑 # = 𝑑 and 𝒃 𝟐 ⊕ 𝒄 𝟐 = 𝑑 " ◦ Pick random strings 𝑠 " , 𝑠 # ◦ Compute ℎ " = 𝐼 𝒃 𝟐 , 𝒄 𝟐 , 𝑠 " , ℎ # = 𝐼(𝒃 𝟑 , 𝒄 𝟑 , 𝑠 # ) Check that ℎ " = 𝐼 𝑏 " , 𝑐 " , 𝑠 " Why is this convincing? ◦ If Prover computes ℎ " , ℎ # using 𝑏 " , 𝑏 # , 𝑐 " , 𝑐 # such that 𝑏 " ⊕ 𝑐 " = 𝑑 " , 𝑏 # ⊕ 𝑐 # = 𝑑 # , and 𝑑 " ⊕ 𝑑 # = 𝑑 we’re done: ◦ 𝒃 𝟐 ⊕ 𝒃 𝟑 ⊕ 𝒄 𝟐 ⊕ 𝒄 𝟑 = 𝒃 𝟐 ⊕ 𝒄 𝟐 ⊕ 𝒃 𝟑 ⊕ 𝒄 𝟑 = 𝒅 𝟐 ⊕ 𝒅 𝟑 = 𝒅 ◦ If not, Prover gets caught with probability at least 1/2

  10. Picnic building blocks: ZKBoo (intuition) Obviously trivial: just a toy example! A toy example: Prover wants to prove knowledge of 𝑏, 𝑐 such that 𝑏 ⊕ 𝑐 = 𝑑 𝑏 XOR c 𝑐 Verifier: Prover: ◦ Step 1: XOR secret share inputs 𝑑 " , 𝑑 # ◦ Pick random bits 𝑏 " , 𝑏 # that XOR to 𝑏 and 𝑐 " , 𝑐 # for 𝑐 ℎ " , ℎ # ◦ 𝒃 𝟐 ⊕ 𝒃 𝟑 = 𝒃 , 𝒄 𝟐 ⊕ 𝒄 𝟑 = 𝒄 ◦ Step 4: Pick 1 or 2 at random 1 ◦ Step 2: compute output shares for ⊕ gate 𝒃 𝟐 , 𝒄 𝟐 , 𝑠 ◦ 𝒅 𝟐 = 𝒃 𝟐 ⊕ 𝒄 𝟐 , 𝒅 𝟑 = 𝒃 𝟑 ⊕ 𝒄 𝟑 " ◦ Step 3: commit to shares ◦ Step 5: Check that 𝑑 " ⊕ 𝑑 # = 𝑑 and 𝒃 𝟐 ⊕ 𝒄 𝟐 = 𝑑 " ◦ Pick random strings 𝑠 " , 𝑠 # ◦ Compute ℎ " = 𝐼 𝒃 𝟐 , 𝒄 𝟐 , 𝑠 " , ℎ # = 𝐼(𝒃 𝟑 , 𝒄 𝟑 , 𝑠 # ) Check that ℎ " = 𝐼 𝑏 " , 𝑐 " , 𝑠 " Why does this hide 𝒃, 𝒄 ? ◦ Verifier gets to see: ◦ 𝑏 " , 𝑐 " : reveals no information about 𝑏, 𝑐 ◦ 𝑑 " = 𝑏 " ⊕ 𝑐 " , 𝑑 # = 𝑑 ⊕ 𝑑 " , ◦ ℎ # : hash of randomized inputs

  11. Picnic building blocks: ZKBoo (intuition) Decrease cheating probability ◦ Run 𝑢 copies of proof with fresh randomness, verifier picks a challenge for each ◦ Probability of cheating decreases exponentially. ( 1/3 B ) Eliminate interaction ◦ Fiat-Shamir: Choose challenge by hashing ( 𝑑 " , 𝑑 # , ℎ " , ℎ # ) from all copies. ◦ If 1/ 3 B is small enough, cheating prover can try hashing many sets of messages, will never find one he can correctly respond to ◦ Also include signature message in the hash. What if we want a circuit with ◦ ANDs ◦ More gates?

  12. Picnic building blocks: ZKBoo Foundation for ZKBoo: MPC-in-the-head [IKOS07] ◦ Approach for constructing ZK proofs from Multi Party Computation ◦ Multi Party Computation ◦ N parties with private input 𝑦 C ◦ Want to compute f 𝑦 " , … , 𝑦 * ◦ Even if 𝑜 − 1 parties combine their information, they learn nothing else ◦ To prove “I know x such that F(x)=1” ◦ Choose random values such that 𝑦 " ⊕ ⋯ ⊕ 𝑦 * = 𝑦 ◦ Imagine N parties each with input 𝑦 C . ◦ Internally run MPC between them to compute 𝐺(𝑦 " ⊕ ⋯ ⊕ 𝑦 * ) . ◦ Record all messages sent and received. ◦ For each party commit to “view”: Commit ◦ input 𝑦 C , randomness, messages sent, messages received i ◦ Verifier chooses 𝑗 ◦ Prover reveals views for all parties except 𝑗 Views j ≠ 𝑗

  13. Picnic building blocks: ZKBoo Foundation for ZKBoo: MPC-in-the-head [IKOS07] ◦ Approach for constructing ZK proofs from Multi Party Computation ◦ Multi Party Computation ◦ N parties with private input 𝑦 C ◦ Want to compute f 𝑦 " , … , 𝑦 * ◦ Even if 𝑜 − 1 parties combine their information, they learn nothing else ◦ To prove “I know x such that F(x)=1” ◦ Choose random values such that 𝑦 " ⊕ ⋯ ⊕ 𝑦 * = 𝑦 ◦ Imagine N parties each with input 𝑦 C . Zero Knowledge ◦ Internally run MPC between them to compute 𝐺(𝑦 " ⊕ ⋯ ⊕ 𝑦 * ) . ◦ Record all messages sent and received. Verifier gets to see views of all ◦ For each party commit to “view”: parties except 𝑗 Commit ◦ input 𝑦 C , randomness, messages sent, messages received i ◦ Verifier chooses 𝑗 MPC guarantees it learns nothing ◦ Prover reveals views for all parties except 𝑗 Views j ≠ 𝑗 besides F(x)

  14. Picnic building blocks: ZKBoo Foundation for ZKBoo: MPC-in-the-head [IKOS07] ◦ Approach for constructing ZK proofs from Multi Party Computation ◦ Multi Party Computation ◦ N parties with private input 𝑦 C ◦ Want to compute f 𝑦 " , … , 𝑦 * Soundness ◦ Even if 𝑜 − 1 parties combine their information, they learn nothing else ◦ To prove “I know x such that F(x)=y” If all parties behave correctly, ◦ Choose random values such that 𝑦 " ⊕ ⋯ ⊕ 𝑦 * = 𝑦 output will be F( 𝑦 " ⊕ ⋯ ⊕ 𝑦 * ) ◦ Imagine N parties each with input 𝑦 C . If 𝐺 𝑦 ≠ 𝑧 either ◦ Internally run MPC between them to compute 𝐺(𝑦 " ⊕ ⋯ ⊕ 𝑦 * ) . A party misbehaved • ◦ Record all messages sent and received. Views are inconsistent • ◦ For each party commit to “view”: Catch this with probability p • Commit ◦ input 𝑦 C , randomness, messages sent, messages received Repeat many times • i ◦ Verifier chooses 𝑗 ◦ Prover reveals views for all parties except 𝑗 Views j ≠ 𝑗

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend