Addi$vely)Homomorphic)UC)Commitments) … · Addi$vely)Homomorphic)UC)Commitments)...
Transcript of Addi$vely)Homomorphic)UC)Commitments) … · Addi$vely)Homomorphic)UC)Commitments)...
-
Addi$vely)Homomorphic)UC)Commitments)With)Op$mal)Amor$zed)Overhead))
)Ignacio)Cascudo,)Ivan)Damgård,)Bernardo)David,)Irene)Giacomelli,)
Jesper)Buus)Nielsen,)Roberto)TrifileH)Aarhus)University)
-
Structure)
1. Introduc$on)
-
Structure)
1. Introduc$on)2. Our)Contribu$ons)
-
Structure)
1. Introduc$on)2. Our)Contribu$ons)3. A)general)framework)
-
Structure)
1. Introduc$on)2. Our)Contribu$ons)3. A)general)framework)4. Open)Ques$ons)
-
Commitment)Schemes)
-
Commitment)Schemes)
-
Mul$party)Computa$on)
• The)Millionaires’)Problem)
-
Universal)Composability)
• Protocols)remain)secure)in)parallel)concurrent)execu$ons)and)arbitrary)composi$on.)))))))
)
-
Universal)Composability)
• Protocols)remain)secure)in)parallel)concurrent)execu$ons)and)arbitrary)composi$on.)))))))
• Commitments)require)setup)assump$ons)[CF01].)
-
Universal)Composability)
• Protocols)remain)secure)in)parallel)concurrent)execu$ons)and)arbitrary)composi$on.)))))))
• Commitments)require)setup)assump$ons)[CF01].)• Commitments)are)complete)[CLOS02].)
-
Related)Works)
• DDH)based)fast)UC)commitments:)[Lindell11,BCPV13].)– Use)a)Common)Reference)String)(CRS).)– High)asympto$c)communica$on)and)computa$onal)complexity.)
-
Related)Works)
• DDH)based)fast)UC)commitments:)[Lindell11,BCPV13].)– Use)a)Common)Reference)String)(CRS).)– High)asympto$c)communica$on)and)computa$onal)complexity.)
• UC)commitments)with)op$mal)rate:)[DDGN14,GIKW14].))– Use)Oblivious)Transfer)as)a)setup)assump$on.)– Require)PRGs)and)general)Linear)Secret)Sharing.)
-
What)do)we)do)in)theory?)
-
What)do)we)do)in)theory?)
• Op$mal)communica$on))
-
What)do)we)do)in)theory?)
• Op$mal)communica$on)• Addi$vely)Homomorphic)
-
What)do)we)do)in)theory?)
• Op$mal)communica$on)• Addi$vely)Homomorphic)• Op$mal)computa$on)
)
-
What)do)we)do)in)theory?)
• Op$mal)communica$on)• Addi$vely)Homomorphic)• Op$mal)computa$on)• No)need)for)general)secret)sharing)
)
-
What)do)we)do)in)theory?)
• Op$mal)communica$on)• Addi$vely)Homomorphic)• Op$mal)computa$on)• No)need)for)general)secret)sharing)
)
How)do)we)do)it?)
-
What)do)we)do)in)prac$ce?)
• Online)Phase:)
)
) ) ) ) ) )2)Encodings:)1.5)μs)
)
)
-
What)do)we)do)in)prac$ce?)
• Online)Phase:)
)
) ) ) ) ) )2)Encodings:)1.5)μs)
)
))[Lindell11,BCPV13])f>)22)exponen$a$ons:)8250)μs)
)
-
What)do)we)do)in)prac$ce?)
• Online)Phase:)
)
) ) ) ) ) )2)Encodings:)1.5)μs)
)
))[Lindell11,BCPV13])f>)22)exponen$a$ons:)8250)μs)
• Prac$cal)scheme)runs)5500)$mes)faster)
)
-
Prac$cal)Trade)Offs…)
-
Prac$cal)Trade)Offs…)
• No)addi$ve)homomorphism.)
)
-
Prac$cal)Trade)Offs…)
• No)addi$ve)homomorphism.)
• Setup)phase)cost:)) ) ) ) ) ) )796)OTs)
) )8756)exponen$a$ons)using)[PVW08])
) )398)[Lindell11,BCPV13])commitments)
-
Building)Blocks)
• Error)correc$ng)codes:)– Linearf$me)encodable)codes)[GI01,GI02,GI03,GI05,Spi96,DI14].)
)
-
Building)Blocks)
• Error)correc$ng)codes:)– Linearf$me)encodable)codes)[GI01,GI02,GI03,GI05,Spi96,DI14].)
• UC)Oblivious)Transfer:)– Any)UC)Oblivious)Transfer)protocol,)e.g.)[PVW08]))
-
Building)Blocks)
• Error)correc$ng)codes:)– Linearf$me)encodable)codes)[GI01,GI02,GI03,GI05,Spi96,DI14].)
• UC)Oblivious)Transfer:)– Any)UC)Oblivious)Transfer)protocol,)e.g.)[PVW08])
• Pseudorandom)Generator:)– Linearf$me)PRG,)e.g.)[VZ12])))
-
Oblivious)Transfer)
-
Oblivious)Transfer)
-
Encoding)Scheme)ENC) :)M)
-
Encoding)Scheme)
ECC)
c[1])
c[2])…c[n])
ECC)Codeword:)
ENC) :)M)
M)
-
Encoding)Scheme)
ECC)
s2[1])
s2[2])…s2[n])
Randomness:)
c[1])
c[2])…c[n])
ECC)Codeword:)
ENC) :)M)
M)
-
Encoding)Scheme)
ECC)
s2[1])
s2[2])…s2[n])
Randomness:)
s1[1])
s1[2])…
s1[n])
c[1])
c[2])…c[n])
ECC)Codeword:)
ENC) :)M)
M)
-
Encoding)Scheme)
ECC)
s1[1])
s2[1])
s1[2])
s2[2])…
s1[n])
s2[n])
s2[1])
s2[2])…s2[n])
Randomness:)
s1[1])
s1[2])…
s1[n])
c[1])
c[2])…c[n])
ECC)Codeword:)
ENC) :)M)
M)
-
General)Framework)
• Setup)phase:))))))
• Commitment/Open)Phases:)
-
General)Framework)
• Setup)phase:))– Independent)from)the)inputs))))
• Commitment/Open)Phases:)
-
General)Framework)
• Setup)phase:))– Independent)from)the)inputs)– Constant)number)of)OTs)for)unbounded)number)of)commitments.))
• Commitment/Open)Phases:)
-
General)Framework)
• Setup)phase:))– Independent)from)the)inputs)– Constant)number)of)OTs)for)unbounded)number)of)commitments.)
– Constant)communica$on)complexity.)• Commitment/Open)Phases:)
-
General)Framework)
• Setup)phase:))– Independent)from)the)inputs)– Constant)number)of)OTs)for)unbounded)number)of)commitments.)
– Constant)communica$on)complexity.)• Commitment/Open)Phases:)– Linear)communica$on)complexity.)
-
General)Framework)
• Setup)phase:))– Independent)from)the)inputs)– Constant)number)of)OTs)for)unbounded)number)of)commitments.)
– Constant)communica$on)complexity.)• Commitment/Open)Phases:)– Linear)communica$on)complexity.)– Only)require)a)PRG)and)the)encoding)scheme.)
-
General)Framework)
• Setup)phase:))– Independent)from)the)inputs)– Constant)number)of)OTs)for)unbounded)number)of)commitments.)
– Constant)communica$on)complexity.)• Commitment/Open)Phases:)– Linear)communica$on)complexity.)– Only)require)a)PRG)and)the)encoding)scheme.)– Non)interac$ve.)
-
Setup)Phase)
Random)Seeds:)
k1)
k2)
k3)
k4)…knf1)
kn)
Sender& Receiver&
-
Setup)Phase)
Random)Seeds:)
…
Random)Choices:)
Received)Seeds:)
c1)
c2)
cn)
k1)
k2)
k3)
k4)…knf1)
kn)
k1+c1)
k3+c2)
Knf1+cn)
…Sender& Receiver&
-
Commitment)Phase)(Sender))
PRG)k1)
k2)
k3)
k4)
knf1)
kn)
PRG)
PRG)
PRG)
PRG)
PRG)
P1)
P2)
P3)
P4)…Pnf1)
Pn)
…
Generate)onef$me)pads:)
-
Commitment)Phase)(Sender))
ENC)
s1[1])
s2[1])
s1[2])
s2[2])…
s1[n])
s2[n])
PRG)k1)
k2)
k3)
k4)
knf1)
kn)
PRG)
PRG)
PRG)
PRG)
PRG)
P1)
P2)
P3)
P4)…Pnf1)
Pn)
…
Generate)onef$me)pads:) Encode)messages)and)encrypt)with)onef$me)pads:)
M)
-
Commitment)Phase)(Sender))
ENC)
s1[1])
s2[1])
s1[2])
s2[2])…
s1[n])
s2[n])
P1)
P2)
P3)
P4)…
Pnf1)
Pn)
C1)
C2)
C3)
C4)…
Cnf1)
Cn)
PRG)k1)
k2)
k3)
k4)
knf1)
kn)
PRG)
PRG)
PRG)
PRG)
PRG)
P1)
P2)
P3)
P4)…Pnf1)
Pn)
…
Generate)onef$me)pads:) Encode)messages)and)encrypt)with)onef$me)pads:)
M)
-
Open)Phase)(Receiver))Opening)Message:)))M)
s1[1])
s2[1])
s1[2])
s2[2])
s1[n])
s2[n])
…
-
Open)Phase)(Receiver))Opening)Message:)))M)
PRG)
PRG)
PRG)
P1+c1)
P3+c2)
Pnf1+cn)
Generate)onef$me)pads:)
k1+c1)
k3+c2)
Knf1+cn)
…
s1[1])
s2[1])
s1[2])
s2[2])
s1[n])
s2[n])
… …
-
Open)Phase)(Receiver))
s1[1])
s2[1])
s1[2])
s2[2])…
s1[n])
Opening)Message:)))
M)
PRG)
PRG)
PRG)
P1+c1)
P3+c2)
Pnf1+cn)
Generate)onef$me)pads:)
k1+c1)
k3+c2)
Knf1+cn)
…s2[n])
C1)
C2)
C3)
C4)…
Cnf1)
Cn)
?&
s1[1])
s2[1])
s1[2])
s2[2])
s1[n])
s2[n])
…
P1+c1)
P3+c2)
Pnf1+cn)
… …Check)known)shares:)
-
Open)Phase)(Receiver))
s1[1])
s2[1])
s1[2])
s2[2])…
s1[n])
s2[1])
s2[2])…
s2[n])
s1[1])
s1[2])…s1[n])
c’[1])
c’[2])…c’[n])
Reconstruct)ECC)codeword:)
s2[n])
-
Open)Phase)(Receiver))
s1[1])
s2[1])
s1[2])
s2[2])…
s1[n])
s2[1])
s2[2])…
s2[n])
s1[1])
s1[2])…s1[n])
c’[1])
c’[2])…c’[n])
Reconstruct)ECC)codeword:) Check)that)codewords)match:)
?&
c[1])
c[2])
c[n])
s2[n])
-
Open)Problems)
• Can)we)get)op$mal)rate?)• Can)op$mal)fully)homomorphic)commitments)be)constructed)without)general)LSSS?)
• Can)we)get)addi$ve)homomorphism)in)this)construc$on)without)VSS?)
• Can)we)increase)concrete)efficiency)in)both)setup)and)online)phases?)
-
hrps://eprint.iacr.org/2014/829&