Addi$vely)Homomorphic)UC)Commitments) … · Addi$vely)Homomorphic)UC)Commitments)...

54
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

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&