Slide - UCL Computer Science

advertisement
Square Span Programs with Applications to
Succinct NIZK Arguments
George Danezis, University College London
Cédric Fournet, Microsoft Research
Jens Groth, University College London
Markulf Kohlweiss, Microsoft Research
Non-interactive zero-knowledge argument
Common reference string
Statement: 𝑥 ∈ 𝐿
𝑥, 𝑤 ∈ 𝑅𝐿
OK
Proof: 
Zero-knowledge:
Prover
Nothing but truth revealed
Soundness:
Verifier
Statement is true
Applications
NIZK arguments guarantee
honesty (soundness), yet
also preserve privacy (zeroknowledge)
Our contribution
• NIZK argument
– Perfect correctness
– Perfect zero-knowledge
– Computational soundness
• Knowledge extractor assumptions using pairings
• Conceptually simple
– New characterization of NP as Square Span Programs
• Small size
– Four group element proofs
Technical path
• Relation 𝑅𝐿 for NP-language 𝐿 given by circuit 𝐶𝑅
𝑎1
𝑎2
𝑎3
𝑎4
• Characterize satisfiability of 𝐶𝑅 as constraints
𝑎𝑉 ∈ {0,2}𝑑
• Rewrite constraints as square span program
𝑡 𝑥
divides
∑𝑎𝑖 𝑣𝑖 𝑥
2
−1
• Succinct NIZK argument for square span program
𝜋 = (𝐻, 𝐵𝑤 , 𝑉𝑤 , 𝑉)
Example
• Consider circuit with single XOR-gate 𝑎0 = 𝑎1 ⊕ 𝑎2
• Satisfiability corresponds to the constraints
𝑎1 , 𝑎2 ∈ 0,1
1 + 𝑎1 + 𝑎2 ∈ {0,2}
• Which we can write
0 0 1
𝑎𝑉 = 1, 𝑎1 , 𝑎2 2 0 1 ∈ 0,2 3
0 2 1
• This is satisfied if and only if for all columns 𝑉𝑗
𝑎𝑉𝑗 − 1
2
=1
Example continued
• Define
𝑡 𝑥 = 𝑥 + 1 𝑥 − 1 𝑥 𝑣0 𝑥 = −𝑥 2
𝑣1 𝑥 = 1 − 𝑥
𝑣2 𝑥 = 1 + 𝑥
• Chosen such that
𝑣0 −1 𝑣0 1
𝑣0 (0)
−1 −1 0
𝑣1 −1
𝑣1 1
𝑣1 (0) = 2
0 1
0
2 1
𝑣2 (−1) 𝑣2 (1) 𝑣2 (0)
• Then 𝑎𝑉𝑗 − 1
𝑡 𝑥 divides
2
= 1 for all 𝑗 if and only if
𝑣0 𝑥 + 𝑎1 𝑣1 𝑥 + 𝑎2 𝑣2 𝑥
2
−1
• Using techniques presented later we can use the
latter equation in an NIZK argument
Characterizing circuit satisfiability as a set of
integer constraints
𝑎
4
𝑎0
𝑎1
• Consider a circuit
𝑎2
with wires 𝑎0 , … , 𝑎𝑚 𝑎3
• The circuit is satisfiable if all wires 𝑎𝑖 ∈ {0,1}, and
they respect all the gates, and the output is 1
• Write the wires as a vector 𝑎 = 𝑎0 , 𝑎1 , … , 𝑎𝑚
The condition 𝑎𝑖 ∈ 0,1 can be written 𝑎𝐼 ∈ 0,1 𝑚+1
– Could omit trivial checks, e.g., we know 𝑎0 = 1 for satisfied
circuit and we may know some inputs 𝑎1 , … , 𝑎ℓ ∈ {0,1}
Linearization of the gates
• Fan-in 2 gates can be linearized
– For the XOR-gate we have for 𝑎, 𝑏, 𝑐 ∈ {0,1}
𝑎 ⊕ 𝑏 = 𝑐 if and only if 𝑎 + 𝑏 + 𝑐 ∈ 0,2
– For the NAND-gate we have for 𝑎, 𝑏, 𝑐 ∈ 0,1
¬ 𝑎 ∧ 𝑏 = 𝑐 if and only if 𝑎 + 𝑏 + 2c − 2 ∈ {0,1}
• In our paper we show that by multiplying some
equations by 2, we can write all non-trivial fan-in 2
gates on the form 𝛼𝑎 + 𝛽𝑏 + 𝛾𝑐 + 𝛿 ∈ {0,2}
Characterizing circuit satisfiability as
constraints on an affine map
• We write the gate equations in a matrix 𝐺 such
that the wires respect the 𝑛 gates if and only if
𝑎𝐺 ∈ 0,2 𝑛
• Combined with the constraint 𝑎𝐼 ∈ {0,1}𝑚+1 we get
the circuit is satisfiable if and only if
𝑎𝑉 = 𝑎 2𝐼|𝐺 ∈ {0,2}𝑚+𝑛+1
• The constants are small, so the equivalence with
circuit satisfiability also holds over 𝒁𝑝 for 𝑝 ≥ 8
Technical path
• Relation 𝑅𝐿 for NP-language 𝐿 given by circuit 𝐶𝑅
𝑎1
𝑎2
𝑎3
𝑎4
• Characterize satisfiability of 𝐶𝑅 as constraints
𝑎𝑉 ∈ {0,2}𝑑
• Rewrite constraints as square span program
𝑡 𝑥
divides
∑𝑎𝑖 𝑣𝑖 𝑥
2
−1
• Succinct NIZK argument for square span program
𝜋 = (𝐻, 𝐵𝑤 , 𝑉𝑤 , 𝑉)
Square span program
Quadratic span programs
• A square span program consists of polynomials
Two sequences of polynomials:
𝑣0 𝑥 , … , 𝑣𝑚𝑡(𝑥)
𝑥 divides
, 𝑡(𝑥) with
𝑣𝑖 𝑖𝑥𝑤𝑖 (𝑥)
< deg 𝑡 𝑥 =
∑𝑎𝑖 𝑣deg
𝑖 𝑥 ⋅ ∑𝑏
𝑑
Quadratic arithmetic programs
sequences
polynomials
• We sayThree
a square
spanofprogram
over 𝒁𝑝 accepts an
𝑡(𝑥) divides ∑𝑎ℓ𝑖 𝑣𝑖 𝑥 ⋅ ∑𝑏𝑖 𝑤𝑖 𝑥 − ∑𝑐𝑖 𝑦𝑖 (𝑥)
input 𝑎1 , … , 𝑎ℓ ∈ 0,1 if and only if there exists
𝑎ℓ+1 , … , 𝑎𝑚 ∈ 𝒁𝑝 such that
2
𝑚
𝑡 𝑥
divides
𝑎𝑖 𝑣𝑖 𝑥
𝑖=0
−1
using 𝑎0 = 1
• We say a square span program accepts a language
From affine map constraints to SSPs
• Earlier
𝑎1
𝑎2
𝑎3
𝑎4
𝑎𝑉 ∈ {0,2}𝑑 over 𝒁𝑝
• Pick distinct points 𝑟1 , … , 𝑟𝑑 ∈ 𝒁𝑝
• Define 𝑡 𝑥 = ∏(𝑥 − 𝑟𝑗 )
• Define 𝑣0′ (𝑥), 𝑣1 𝑥 , … , 𝑣𝑚 (𝑥) such that
𝑣0 ′ 𝑟1 … 𝑣0 ′(𝑟𝑑 )
⋮
⋱
⋮
=𝑉
𝑣𝑚 (𝑟1 ) … 𝑣𝑚 (𝑟𝑑 )
and 𝑣0 𝑥 = 𝑣0′ 𝑥 − 1
Why does the square span program work?
• We want for all columns 𝑗 that 𝑎𝑉𝑗 ∈ {0,2} or
equivalently that 𝑎𝑉𝑗 − 1 ∈ {−1,1} (over 𝒁𝑝 )
• By the choice of polynomials 𝑣0 𝑥 , … , 𝑣𝑚 (𝑥) we
have ∑𝑎𝑖 𝑣𝑖 𝑟𝑗 = 𝑎𝑉𝑗 − 𝑎0 1 = 𝑎𝑉𝑗 − 1
• This gives us the condition ∑𝑎𝑖 𝑣𝑖 𝑟𝑗
• So 𝑎𝑉 ∈ 0,2
𝑑
2
=1
if and only if all 𝑟𝑗 are roots in the
polynomial ∑𝑎𝑖 𝑣𝑖 𝑥
2
−1
• I.e., 𝑡 𝑥 = ∏(𝑥 − 𝑟𝑗 ) divides
∑𝑎𝑖 𝑣𝑖 𝑥
2
−1
Technical path
• Relation 𝑅𝐿 for NP-language 𝐿 given by circuit 𝐶𝑅
𝑎1
𝑎2
𝑎3
𝑎4
• Characterize satisfiability of 𝐶𝑅 as constraints
𝑎𝑉 ∈ {0,2}𝑑
• Rewrite constraints as square span program
𝑡 𝑥
divides
∑𝑎𝑖 𝑣𝑖 𝑥
2
−1
• Succinct NIZK argument for square span program
𝜋 = (𝐻, 𝐵𝑤 , 𝑉𝑤 , 𝑉)
Prime order bilinear groups
• Gen(1𝑘 ) generates (𝑝, G, G, G 𝑇 , 𝑒)
• G, G, G 𝑇 finite cyclic groups of prime order 𝑝
• Pairing 𝑒: G × G → G 𝑇
– 𝑒
𝑈𝑎 , 𝑉 𝑏
= 𝑒 𝑈, 𝑉
𝑎𝑏
– G = 𝐺 , G = 𝐻 , G 𝑇 = ⟨𝑒 𝐺, 𝐺 ⟩
• Deciding group membership, group operations,
and bilinear pairing efficiently computable
16
• Statement: (𝑎1 , … , 𝑎ℓ ) accepted by SSP
• Common reference string: 𝛽, 𝑠 ← 𝒁𝑝
𝑠𝑑
𝑠𝑑
(𝐺, 𝐺, … , 𝐺 , 𝐺 , 𝐺𝛽𝑣ℓ+1 𝑠 , … , 𝐺𝛽𝑣𝑚 𝑠 , 𝐺𝛽𝑡 𝑠 , 𝐺, 𝐺𝛽 )
• Argument: Pick 𝛿 ← 𝒁𝑝 and compute ℎ(𝑥) such that
ℎ 𝑥 𝑡 𝑥 = ∑𝑎𝑖 𝑣𝑖
𝑥
+ 𝛿𝑡 𝑥
2
Compute 𝜋 = (𝐻, 𝑉𝑤 , 𝐵𝑤 , 𝑉) as
𝐵𝑤 = 𝐺𝛽(∑𝑖>ℓ 𝑎𝑖 𝑣𝑖 𝑠 +𝛿𝑡 𝑠 ) 𝐻 = 𝐺ℎ 𝑠
𝑉𝑤 = 𝐺 ∑𝑖>ℓ 𝑎𝑖 𝑣𝑖 𝑠 +𝛿𝑡 𝑠
𝑉 = 𝐺 ∑𝑎𝑖 𝑣𝑖
−1
𝑠 +𝛿𝑡 𝑠
• Verification: Compute 𝑉 = 𝐺 ∑𝑖≤ℓ 𝑎𝑖 𝑣𝑖 𝑠 𝑉𝑤 and check
𝑒 𝑉, 𝐺 = 𝑒 𝐺, 𝑉
𝑒 𝑉𝑤 , 𝐺𝛽 = 𝑒 𝐵𝑤 , 𝐺
𝑒
𝐻, 𝐺 𝑡 𝑠
= 𝑒(𝑉, 𝑉)𝑒 𝐺, 𝐺
−1
Succinct NIZK argument
•
•
•
•
Pinocchio
Argument: 8 elements
Perfect correctness
Computation: Better
when statements involve
Perfect zero-knowledge
Computational soundness additions or
multiplications instead of
– Assuming d-PKE, d-PDH, and d-TSDH
assumptions
fan-in 2 gates
since it is
based on quadratic
Succinct
– 4 group elements ≈ 160 bytes arithmetic programs
• Efficient
– Prover: 𝑂(𝑑 log 𝑑) multiplications and 3 exponentiations
– Verifier: ℓ + 1 multiplications and 6 pairings ≈ 6ms
Summary
• Introduced square span programs
– Conceptually simple type of quadratic span programs
• Showed they are NP-complete
𝑎1
𝑎2
𝑎3
𝑎4
𝑎𝑉 ∈ {0,2}𝑑
𝑡 𝑥
divides
• Succinct NIZK argument
– 4 group elements 𝜋 = (𝐻, 𝑉𝑤 , 𝐵𝑤 , 𝑉)
∑𝑎𝑖 𝑣𝑖 𝑥
2
−1
Download