Threshold ECDSA from ECDSA assumptions: the multiparty case Jack - - PowerPoint PPT Presentation

β–Ά
threshold ecdsa from ecdsa assumptions
SMART_READER_LITE
LIVE PREVIEW

Threshold ECDSA from ECDSA assumptions: the multiparty case Jack - - PowerPoint PPT Presentation

Threshold ECDSA from ECDSA assumptions: the multiparty case Jack Doerner , Yashvanth Kondi , Eysa Lee , and abhi shelat j@ckdoerner.net ykondi@ccs.neu.edu eysa@ccs.neu.edu abhi@neu.edu Northeastern University Traditional Signature


slide-1
SLIDE 1

Threshold ECDSA from ECDSA assumptions:

the multiparty case

Jack Doerner, Yashvanth Kondi, Eysa Lee, and abhi shelat Northeastern University

ykondi@ccs.neu.edu j@ckdoerner.net eysa@ccs.neu.edu abhi@neu.edu

slide-2
SLIDE 2

Traditional Signature

π—Šπ—…

𝗍𝗅

slide-3
SLIDE 3

𝗍𝗅𝖑

𝗍𝗅𝖣

Threshold Signature

𝗍𝗅𝖒

π—Šπ—…

{𝗍𝗅𝖑, 𝗍𝗅𝖒, 𝗍𝗅C} ← Share(𝗍𝗅)

slide-4
SLIDE 4

3-of-n Signature Scheme

𝗍𝗅𝖒 𝗍𝗅𝖑 𝗍𝗅𝖣 𝗍𝗅𝖀 𝗍𝗅π–₯ 𝗍𝗅𝖦

π—Šπ—…

slide-5
SLIDE 5

3-of-n Signature Scheme

𝗍𝗅𝖒 𝗍𝗅𝖑 𝗍𝗅𝖣 𝗍𝗅𝖀 𝗍𝗅π–₯ 𝗍𝗅𝖦

π—Šπ—…

𝗍𝗅𝖒 𝗍𝗅𝖑 𝗍𝗅𝖣 𝗍𝗅𝖀 𝗍𝗅π–₯ 𝗍𝗅𝖦

slide-6
SLIDE 6

3-of-n Signature Scheme

𝗍𝗅𝖒 𝗍𝗅𝖑 𝗍𝗅𝖣 𝗍𝗅𝖀 𝗍𝗅π–₯ 𝗍𝗅𝖦

π—Šπ—…

𝗍𝗅𝖒 𝗍𝗅𝖑 𝗍𝗅𝖣 𝗍𝗅𝖀 𝗍𝗅π–₯ 𝗍𝗅𝖦

slide-7
SLIDE 7

3-of-n Signature Scheme

𝗍𝗅𝖒 𝗍𝗅𝖑 𝗍𝗅𝖣 𝗍𝗅𝖀 𝗍𝗅π–₯ 𝗍𝗅𝖦

π—Šπ—…

𝗍𝗅𝖒 𝗍𝗅𝖑 𝗍𝗅𝖣 𝗍𝗅𝖀 𝗍𝗅π–₯ 𝗍𝗅𝖦

slide-8
SLIDE 8

3-of-n Signature Scheme

𝗍𝗅𝖒 𝗍𝗅𝖑 𝗍𝗅𝖣 𝗍𝗅𝖀 𝗍𝗅π–₯ 𝗍𝗅𝖦

π—Šπ—…

slide-9
SLIDE 9

3-of-n Signature Scheme

𝗍𝗅𝖒 𝗍𝗅𝖑 𝗍𝗅𝖣 𝗍𝗅𝖀 𝗍𝗅π–₯

π—Šπ—…

slide-10
SLIDE 10

Full Threshold

  • Scheme can be instantiated with any t <= n
  • Adversary corrupts up to t-1 parties
slide-11
SLIDE 11

ECDSA

  • Elliptic Curve Digital Signature Algorithm
  • Devised by David Kravitz, standardized by NIST
  • Widespread adoption across the internet
slide-12
SLIDE 12

Notation

G q

Elliptic curve parameters

𝗍𝗅

k

Secret values

π—Šπ—… R

Public values

slide-13
SLIDE 13

sign(m, 𝗍𝗅, k) = R = k β‹… G

ECDSA Recap

Non-linearity makes β€˜thresholdization’ difficult

k +𝗍𝗅 β‹… rx H(m)

x-coordinate of R

slide-14
SLIDE 14

Threshold ECDSA

  • Limited schemes based on Paillier encryption: [MacKenzie

Reiter 04], [Gennaro Goldfeder Narayanan 16], [Lindell 17]

  • Practical key generation and efficient signing (full threshold):
  • [Gennaro Goldfeder 18]: Paillier-based
  • [Lindell Nof Ranellucci 18]: El-Gamal based
  • Our work last year [DKLs18]: 2-of-n ECDSA under native

assumptions

  • This work: Full-Threshold ECDSA under native assumptions
slide-15
SLIDE 15

Our Approach

  • 2-party multipliers: Oblivious Transfer in ECDSA curve
  • Pros:
  • With OT Extension (no extra assumptions) just a

few milliseconds

  • Native assumptions (CDH in the same curve)
  • Con: Higher bandwidth (100s of KB/party)
slide-16
SLIDE 16

Our Approach

  • OT-MUL secure up to choice of inputs
  • Light consistency check (unique to our protocol):
  • Verify shares in the exponent before reveal
  • Costs 5 exponentiations+curve points/party
  • Subverting checks implies solving CDH in the same

curve

slide-17
SLIDE 17

Tradeoffs

  • Our work avoids expensive zero-knowledge proofs and

assumptions foreign to ECDSA itself, required by other works in the area

  • Using OT-MUL is very light on computation, but more

demanding of bandwidth than alternative approaches; we argue this is not an issue for most applications

  • Our wall clock times (even WAN) are an order of

magnitude better than the next best concurrent work

slide-18
SLIDE 18
  • Universal Composability [Canetti ’01] (static adv., local RO)
  • Functionality (trusted third party emulated by protocol):
  • Store secret key
  • Compute ECDSA signature when enough parties ask
  • Assumption: CDH is hard in the ECDSA curve
  • Network: Synchronous, broadcast
  • Security with abort

Our Model

slide-19
SLIDE 19

Our Approach

  • Setup: MUL setup, VSS for [sk]
  • Signing:
  • 1. Get candidate shares [k], [1/k], and R=kΒ·G
  • 2. Compute [sk/k] = MUL([1/k], [sk])
  • 3. Check relations in exponent
  • 4. Reconstruct sig = [1/k]Β·H(m)+[sk/k]
slide-20
SLIDE 20

Setup

  • Fully distributed
  • MUL setup: Pairwise among parties (128 OTs)
  • Key generation: (Pedersen-style)
  • Every party Shamir-shares a random secret
  • Secret key is sum of parties’ contributions
  • Verify in the exponent that parties’ shares are on the same

polynomial

slide-21
SLIDE 21

Our Approach

  • Setup: MUL setup, VSS for [sk]
  • Signing:
  • 1. Get candidate shares [k], [1/k], and R=kΒ·G
  • 2. Compute [sk/k] = MUL([1/k], [sk])
  • 3. Check relations in exponent
  • 4. Reconstruct sig = [1/k]Β·H(m)+[sk/k]
slide-22
SLIDE 22

Obtaining Candidate Shares

  • Building Block: Two party MUL with full security

[DKLs18]

  • One approach (implemented):
  • Each party starts with multiplicative shares of k and 1/k
  • Multiplicative to additive shares: log(t)+c rounds
  • Alternative: [Bar-Ilan&Beaver ’89] approach yields

constant round protocol (work in progress)

slide-23
SLIDE 23

Our Approach

  • Setup: MUL setup, VSS for [sk]
  • Signing:
  • 1. Get candidate shares [k], [1/k], and R=kΒ·G
  • 2. Compute [sk/k] = MUL([1/k], [sk])
  • 3. Check relations in exponent
  • 4. Reconstruct sig = [1/k]Β·H(m)+[sk/k]
slide-24
SLIDE 24

Our Approach

  • Setup: MUL setup, VSS for [sk]
  • Signing:
  • 1. Get candidate shares [k], [1/k], and R=kΒ·G
  • 2. Compute [sk/k] = MUL([1/k], [sk]) => Standard GMW
  • 3. Check relations in exponent
  • 4. Reconstruct sig = [1/k]Β·H(m)+[sk/k]
slide-25
SLIDE 25

Our Approach

  • Setup: MUL setup, VSS for [sk]
  • Signing:
  • 1. Get candidate shares [k], [1/k], and R=kΒ·G
  • 2. Compute [sk/k] = MUL([1/k], [sk])
  • 3. Check relations in exponent
  • 4. Reconstruct sig = [1/k]Β·H(m)+[sk/k]
slide-26
SLIDE 26

Major challenges from 2 to Multi-party

Can’t use Diffie-Hellman Exchange for R 2-party check does not obviously generalize [LNR18]

slide-27
SLIDE 27

Check in Exponent

  • There are three relations that have to be verified

[k] [ 1 k ] [ 𝗍𝗅 k ]

slide-28
SLIDE 28

Check in Exponent

  • Technique: Each equation is verified in the exponent,

using β€˜auxiliary’ information that’s already available

  • Cost: 5 exponentiations, 5 group elements per party

independent of party count, and no ZK proofs

[k] [ 1 k ] [ 𝗍𝗅 k ]

slide-29
SLIDE 29

Check in Exponent

  • Task: verify relationship between [k] and [1/k]
  • Idea: verify by verifying

[ 1 k ][k] = 1 [ 1 k ][k] β‹… G = G

slide-30
SLIDE 30

Check in Exponent

Attempt at a solution:

R Ξ“i = [ 1 k ]i β‹… R

Public Broadcast Verify

βˆ‘

i∈[n]

Ξ“i = G

slide-31
SLIDE 31

Check in Exponent

Ξ“i = [ 1 k𝖑 1 kh]i β‹… R

Public Broadcast Verify

βˆ‘

i∈[n]

Ξ“i = G R = kAkh β‹… G

Adversary's contribution Honest Party's contribution

Attempt at a solution:

slide-32
SLIDE 32

Check in Exponent

R = kAkh β‹… G Ξ“i = [( 1 k𝖑 +Ο΅) 1 kh]

i

β‹… R

Public Broadcast Verify

Adversary's contribution Honest Party's contribution

βˆ‘

i∈[n]

Ξ“i = G+Ο΅kA β‹… G

Easy for Adv. to offset

Attempt at a solution:

slide-33
SLIDE 33

Idea: Randomize Target

  • Currently we expect to hit a fixed target G
  • Idea: randomize the multiplication so target is unpredictable
  • Compute instead of
  • Reveal only after every other value is committed

βˆ‘ Ξ“i [ Ο• k ] [ 1 k ]

Ο•

slide-34
SLIDE 34

Check in Exponent

Attempt at a solution:

Ξ“i = [ 1 k𝖑 1 kh]i β‹… R

Public Broadcast

R = kAkh β‹… G

Adversary's contribution Honest Party's contribution

slide-35
SLIDE 35

Check in Exponent

Public Broadcast

Ξ“i = [ Ο•A k𝖑 Ο•h kh ]i β‹… R R = kAkh β‹… G

Adversary's contribution Honest Party's contribution Adversary's contribution Adversary's contribution

Verify

βˆ‘

i∈[n]

Ξ“i = Ο•AΟ•h β‹… G

Attempt at a solution:

slide-36
SLIDE 36

Check in Exponent

Public Broadcast Verify

R = kAkh β‹… G

Adversary's contribution Honest Party's contribution Adversary's contribution Adversary's contribution

βˆ‘

i∈[n]

Ξ“i = Ξ¦ Ξ“i = [ Ο•A k𝖑 Ο•h kh ]i β‹… R

Attempt at a solution:

slide-37
SLIDE 37

Check in Exponent

Public Broadcast Verify

Ξ“i = [( Ο•A k𝖑 +Ο΅) Ο•h kh ]

i

β‹… R R = kAkh β‹… G

Adversary's contribution Honest Party's contribution Adversary's contribution Adversary's contribution

βˆ‘

i∈[n]

Ξ“i = Ξ¦+ϡϕhkA β‹… G

Completely unpredictable

Attempt at a solution:

slide-38
SLIDE 38

Check in Exponent

There are three relations that have to be verified

[k] [ 1 k ] [ 𝗍𝗅 k ]

R π—Šπ—… R, π—Šπ—…

Each costs, per party:

  • 2 exponentiations
  • 2 field elements

Two broadcast rounds

slide-39
SLIDE 39

Our Approach

  • Setup: MUL setup, VSS for [sk]
  • Signing:
  • 1. Get candidate shares [k], [1/k], and R=kΒ·G
  • 2. Compute [sk/k] = MUL([1/k], [sk])
  • 3. Check relations in exponent
  • 4. Reconstruct sig = [1/k]Β·H(m)+[sk/k]

Broadcast linear combination

  • f shares
slide-40
SLIDE 40

Dominant Costs

Rounds Public Key Bandwidth Setup Signing 5 520n 21n KB log(t)+6 5 <100t KB

Journal version (in progress): 8 round signing

(Γ  la [Bar-Ilan Beaver 89])

slide-41
SLIDE 41

Benchmarks

  • Implementation in Rust
  • Ran benchmarks on Google Cloud
  • One node per party
  • LAN and WAN tests (up to 16 zones)
  • Low Power Friendliness: Raspberry Pi

(~93ms for 3-of-3)

slide-42
SLIDE 42

LAN Setup

Broadcast PoK (DLog), Pairwise: 128 OTs

slide-43
SLIDE 43

LAN Setup

Broadcast PoK (DLog), Pairwise: 128 OTs

slide-44
SLIDE 44

LAN Setup

Broadcast PoK (DLog), Pairwise: 128 OTs

slide-45
SLIDE 45

LAN Signing

slide-46
SLIDE 46

LAN Signing

slide-47
SLIDE 47

LAN Signing

slide-48
SLIDE 48

WAN Nodes

66.5 ms 348 ms 87.1 ms 235 ms

slide-49
SLIDE 49

WAN Benchmarks

Parties/Zones Signing Rounds Signing Time Setup Time 5/1 9 13.6 67.9 5/5 9 288 328 16/1 10 26.3 181 16/16 10 3045 1676 40/1 12 60.8 539 40/5 12 592 743 128/1 13 193.2 2300 128/16 13 4118 3424

All time values in milliseconds

slide-50
SLIDE 50

WAN Benchmarks

Parties/Zones Signing Rounds Signing Time Setup Time 5/1 9 13.6 67.9 5/5 9 288 328 16/1 10 26.3 181 16/16 10 3045 1676 40/1 12 60.8 539 40/5 12 592 743 128/1 13 193.2 2300 128/16 13 4118 3424

All time values in milliseconds

slide-51
SLIDE 51

WAN Benchmarks

Parties/Zones Signing Rounds Signing Time Setup Time 5/1 9 13.6 67.9 5/5 9 288 328 16/1 10 26.3 181 16/16 10 3045 1676 40/1 12 60.8 539 40/5 12 592 743 128/1 13 193.2 2300 128/16 13 4118 3424

All time values in milliseconds

slide-52
SLIDE 52

Comparison

Signing Setup Protocol t = 2 t = 20 n = 2 n = 20 This Work 9.5 31.6 45.6 232 GG18 77 509 – – LNR18 304 5194

∼11000 ∼28000

BGG17 650 1500 – –

Note: Our figures are wall-clock times; includes network costs

All time figures in milliseconds

slide-53
SLIDE 53

Comparison

Signing Setup Protocol t = 2 t = 20 n = 2 n = 20 This Work 9.5 31.6 45.6 232 GG18 77 509 – – LNR18 304 5194

∼11000 ∼28000

BGG17 650 1500 – –

Note: Our figures are wall-clock times; includes network costs

All time figures in milliseconds

slide-54
SLIDE 54

Is communication the bottleneck?

  • Mobile applications (human-initiated):
  • eg. t=4, <4Mb transmitted per party
  • Well within LTE envelope for responsivity
slide-55
SLIDE 55

Is communication the bottleneck?

  • Large-scale automated distributed signing:
  • Threshold 2: 3.8ms/sig <= ~263 sig/second
  • Threshold 20: 31.6ms/sig <= ~31 sig/second
  • Both settings need <500Mb bandwidth
slide-56
SLIDE 56

Conclusion

  • Efficient full-threshold ECDSA with fully distributed keygen
  • Paradigm: β€˜produce candidate shares, verify by exponent check’

costs 5 exponentiations (+ many hashes) to sign, no ZK online

  • Instantiation: Cryptographic assumptions native to ECDSA itself

(CDH in the same curve)

  • Lightweight computation but communication well within

practical range (<100t KB/party)

  • Wall-clock times: Practical in realistic scenarios
slide-57
SLIDE 57

eprint.iacr.org/2019/523

Thank you!