Constant-Size Commitments to Polynomials and Their Applications
Ian Goldberg
Cryptography, Security, and Privacy Research Lab University of Waterloo
ECRYPT II Provable Privacy Workshop 10 July 2012
Constant-Size Commitments to Polynomials and Their Applications Ian - - PowerPoint PPT Presentation
Constant-Size Commitments to Polynomials and Their Applications Ian Goldberg Cryptography, Security, and Privacy Research Lab University of Waterloo ECRYPT II Provable Privacy Workshop 10 July 2012 Coauthors Aniket Kate (Max Planck
Ian Goldberg
Cryptography, Security, and Privacy Research Lab University of Waterloo
ECRYPT II Provable Privacy Workshop 10 July 2012
Aniket Kate (Max Planck Institutes) Gregory Zaverucha (Microsoft Research) Ryan Henry (University of Waterloo) Femi Olumofin (Pitney Bowes) Yizhou Huang (University of Waterloo)
Ian Goldberg Polynomial Commitments 2 / 26
One of the most common cryptographic primitives
Ian Goldberg Polynomial Commitments 3 / 26
One of the most common cryptographic primitives
Ian Goldberg Polynomial Commitments 3 / 26
One of the most common cryptographic primitives Commit
Ian Goldberg Polynomial Commitments 3 / 26
One of the most common cryptographic primitives
Ian Goldberg Polynomial Commitments 3 / 26
One of the most common cryptographic primitives Binding, Hiding
Ian Goldberg Polynomial Commitments 3 / 26
One of the most common cryptographic primitives Open
Ian Goldberg Polynomial Commitments 3 / 26
Simplest kind of commitment
Ian Goldberg Polynomial Commitments 4 / 26
Simplest kind of commitment
Ian Goldberg Polynomial Commitments 4 / 26
Ian Goldberg Polynomial Commitments 5 / 26
Ian Goldberg Polynomial Commitments 5 / 26
Ian Goldberg Polynomial Commitments 5 / 26
Ian Goldberg Polynomial Commitments 5 / 26
Ian Goldberg Polynomial Commitments 5 / 26
Ian Goldberg Polynomial Commitments 5 / 26
Ian Goldberg Polynomial Commitments 5 / 26
Ian Goldberg Polynomial Commitments 5 / 26
Ian Goldberg Polynomial Commitments 5 / 26
Ian Goldberg Polynomial Commitments 5 / 26
Simplest homomorphic commitment
Ian Goldberg Polynomial Commitments 6 / 26
Simplest homomorphic commitment
Ian Goldberg Polynomial Commitments 6 / 26
Simplest homomorphic commitment
Ian Goldberg Polynomial Commitments 6 / 26
Simplest homomorphic commitment
Ian Goldberg Polynomial Commitments 6 / 26
Until now:
A
Ian Goldberg Polynomial Commitments 7 / 26
Next:
A
Ian Goldberg Polynomial Commitments 7 / 26
Next:
And:A
Ian Goldberg Polynomial Commitments 7 / 26
Previous method: f (x) = f0 + f1 x + f2 x2 + · · · + ft xt
Ian Goldberg Polynomial Commitments 8 / 26
Previous method: f (x) = f0 + f1 x + f2 x2 + · · · + ft xt
Ian Goldberg Polynomial Commitments 8 / 26
Previous method: f (x) = f0 + f1 x + f2 x2 + · · · + ft xt C(f ) = C(f0), C(f1), C(f2), . . . , C(ft)
Ian Goldberg Polynomial Commitments 8 / 26
Previous method: f (x) = f0 + f1 x + f2 x2 + · · · + ft xt C(f ) = C(f0), C(f1), C(f2), . . . , C(ft) C(f ) =
Ian Goldberg Polynomial Commitments 8 / 26
To open C(f ) at a given point (i, y = f (i)):
Ian Goldberg Polynomial Commitments 9 / 26
To open C(f ) at a given point (i, y = f (i)): Alice sends (i, y) to Bob
Ian Goldberg Polynomial Commitments 9 / 26
To open C(f ) at a given point (i, y = f (i)): Alice sends (i, y) to Bob Bob checks: g y
?
= C(f0) · C(f1)i · C(f2)i2 · · · · · C(ft)it
Ian Goldberg Polynomial Commitments 9 / 26
To open C(f ) at a given point (i, y = f (i)): Alice sends (i, y) to Bob Bob checks: g y
?
= C(f0) · C(f1)i · C(f2)i2 · · · · · C(ft)it g y = g f0 · g f1 i · g f2 i2 · · · · · g ft itg it
Ian Goldberg Polynomial Commitments 9 / 26
To open C(f ) at a given point (i, y = f (i)): Alice sends (i, y) to Bob Bob checks: g y
?
= C(f0) · C(f1)i · C(f2)i2 · · · · · C(ft)it g y = g f0+f1 i+f2 i2+···+ft itg it
Ian Goldberg Polynomial Commitments 9 / 26
To open C(f ) at a given point (i, y = f (i)): Alice sends (i, y) to Bob Bob checks: g y
?
= C(f0) · C(f1)i · C(f2)i2 · · · · · C(ft)it g y = g f (i)g it
Ian Goldberg Polynomial Commitments 9 / 26
Ian Goldberg Polynomial Commitments 10 / 26
Ian Goldberg Polynomial Commitments 10 / 26
g y
?
= C(f (i0))Λ0 · C(f (i1))Λ1 · · · · · C(f (it))Λt Λj =
i − ik ij − ik
Ian Goldberg Polynomial Commitments 10 / 26
Ian Goldberg Polynomial Commitments 11 / 26
Trick #1: Committing Commit to a single evaluation of f
Ian Goldberg Polynomial Commitments 12 / 26
Trick #1: Committing Commit to a single evaluation of f . . . at a point α no one knows
Ian Goldberg Polynomial Commitments 12 / 26
Trick #1: Committing Commit to a single evaluation of f . . . at a point α no one knows Public key of the system:
Ian Goldberg Polynomial Commitments 12 / 26
Trick #1: Committing Commit to a single evaluation of f . . . at a point α no one knows Public key of the system:
g f (α) =
f0 ·
Ian Goldberg Polynomial Commitments 12 / 26
Trick #2: Opening If f (i) = y, then w(x) = f (x)−y
x−i
is a polynomial, which Alice can compute
Ian Goldberg Polynomial Commitments 13 / 26
Trick #2: Opening If f (i) = y, then w(x) = f (x)−y
x−i
is a polynomial, which Alice can compute Alice forms a polynomial commitment ω = g w(α) to w
Ian Goldberg Polynomial Commitments 13 / 26
Trick #2: Opening If f (i) = y, then w(x) = f (x)−y
x−i
is a polynomial, which Alice can compute Alice forms a polynomial commitment ω = g w(α) to w Alice sends (i, y, ω) to Bob
Ian Goldberg Polynomial Commitments 13 / 26
Trick #3: Verifying The group G generated by g should admit a bilinear pairing e : G × G → GT
Ian Goldberg Polynomial Commitments 14 / 26
Trick #3: Verifying The group G generated by g should admit a bilinear pairing e : G × G → GT
Ian Goldberg Polynomial Commitments 14 / 26
Trick #3: Verifying The group G generated by g should admit a bilinear pairing e : G × G → GT Bob checks: e(C, g)
?
= e(ω, g α/g i) e(g y, g)
Ian Goldberg Polynomial Commitments 14 / 26
Trick #3: Verifying The group G generated by g should admit a bilinear pairing e : G × G → GT Bob checks: e(C, g)
?
= e(ω, g α/g i) e(g y, g) e(g f (α), g) ? = e(g w(α), g α−i) e(g y, g) e(g, g)f (α) ? = e(g, g)w(α)(α−i)+y
Ian Goldberg Polynomial Commitments 14 / 26
Can open multiple evaluations with only a single witness Can perform various ZKPoKs; e.g. prove knowledge of f (i) = 0 without revealing f or f (i) to Bob Can use a Pedersen-like scheme to achieve perfect hiding
Ian Goldberg Polynomial Commitments 15 / 26
Polynomial binding: t-SDH Evaluation binding: t-SDH Hiding: perfect when < t openings revealed; DL when t
Ian Goldberg Polynomial Commitments 16 / 26
Polynomial binding: t-SDH Evaluation binding: t-SDH Hiding: perfect when < t openings revealed; DL when t
Ian Goldberg Polynomial Commitments 16 / 26
Polynomial binding: t-SDH Evaluation binding: t-SDH Hiding: perfect when < t openings revealed; DL when t
Ian Goldberg Polynomial Commitments 16 / 26
Polynomial binding: t-SDH Evaluation binding: t-SDH Hiding: perfect when < t openings revealed; DL when t
Ian Goldberg Polynomial Commitments 16 / 26
Polynomial binding: t-SDH Evaluation binding: t-SDH Hiding: perfect when < t openings revealed; DL when t
Ian Goldberg Polynomial Commitments 16 / 26
Polynomial binding: t-SDH Evaluation binding: t-SDH Hiding: perfect when < t openings revealed; DL when t Strong correctness (cannot commit to a poly of degree > t): t-polyDH Batch openings: t-BSDH
Ian Goldberg Polynomial Commitments 16 / 26
Polynomial binding: t-SDH Evaluation binding: t-SDH Hiding: perfect when < t openings revealed; DL when t Strong correctness (cannot commit to a poly of degree > t): t-polyDH Batch openings: t-BSDH
Ian Goldberg Polynomial Commitments 16 / 26
Polynomial binding: t-SDH Evaluation binding: t-SDH Hiding: perfect when < t openings revealed; DL when t Strong correctness (cannot commit to a poly of degree > t): t-polyDH Batch openings: t-BSDH
Ian Goldberg Polynomial Commitments 16 / 26
Polynomial binding: t-SDH Evaluation binding: t-SDH Hiding: perfect when < t openings revealed; DL when t Strong correctness (cannot commit to a poly of degree > t): t-polyDH Batch openings: t-BSDH
Ian Goldberg Polynomial Commitments 16 / 26
Ian Goldberg Polynomial Commitments 17 / 26
Ian Goldberg Polynomial Commitments 18 / 26
Ian Goldberg Polynomial Commitments 18 / 26
Ian Goldberg Polynomial Commitments 18 / 26
Ian Goldberg Polynomial Commitments 19 / 26
Ian Goldberg Polynomial Commitments 19 / 26
Ian Goldberg Polynomial Commitments 20 / 26
Ian Goldberg Polynomial Commitments 21 / 26
Ian Goldberg Polynomial Commitments 22 / 26
Ian Goldberg Polynomial Commitments 22 / 26
Ian Goldberg Polynomial Commitments 23 / 26
Ian Goldberg Polynomial Commitments 23 / 26
Ian Goldberg Polynomial Commitments 23 / 26
Ian Goldberg Polynomial Commitments 24 / 26
Open: |O| = n, H ⊂ O, S = O\H fS(x) = r2 ·
(x − i), fO(x) =
(x − i) G = PolyCommit(fS) Reveal O, G, ZKP of: r s.t. e(C, G) = e(PolyCommit(fO), g)r knowledge of fH, fS with deg fS ≤ k
Ian Goldberg Polynomial Commitments 25 / 26
Ian Goldberg Polynomial Commitments 26 / 26