diogenes: lightweight scalable rsa modulus generation with a … · 2020. 2. 25. · diogenes:...

65
Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero and Northeastern University Carmit Hazay, Yuval Ishai, Yuriy Kashnikov, Daniele Micciancio, Tarik Riviere, abhi shelat, Muthu Venkitasubramaniam, Ruihan Wang

Upload: others

Post on 03-Oct-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Diogenes: Lightweight Scalable RSA Modulus Generation with a

Dishonest Majority

Megan Chen Ligero and Northeastern University

Carmit Hazay, Yuval Ishai, Yuriy Kashnikov, Daniele Micciancio, Tarik Riviere, abhi shelat, Muthu Venkitasubramaniam, Ruihan Wang

Page 2: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

What is an RSA Modulus?

N = p ⋅ q

Biprime - product of exactly two primes

Page 3: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Why? RSA History• 1977 - RSA Public-Key Encryption

• 1999 - Paillier Public-Key Encryption

• 2001 - CRS for UC setting

• 2018 - Verifiable Delay Functions (VDF)

Ethereum 2.0 = Proof of Stake!

Page 4: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

• 1996 - Rivest-Shamir-Wagner timelock puzzle

• 2018 - VDF constructions by Pietrzak, Wesolowski

Why? VDF construction

y = g2Tmod N

Page 5: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

GoalParties interact to jointly sample a bi-prime modulus N

N

Page 6: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

GoalEach party has secret shares of N’s factors: p, q

pA, qA

pB, qB

pF, qF

pC, qC

pE, qE

pD, qD

N

Page 7: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

1024 parties +

(n-1) active securityNeed just 1 honest participant….

Goal

Page 8: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Previous Works: OverviewMilestone Work Adversary Parties

Corruption Threshold

First Work [BF97] Passive n >= 3 t < n/2

[FMY98] Active n t < n/2

[PS98] Active 2 t = 1

Based on OT [Gil99] Passive 2 t = 1

[ACS02] Passive n t < n/2

[DM10] Active 3 t = 1

[HMRT12] Active n t < n

[FLOP18] Active 2 t = 1

[CCD+20] Active n t < n

Page 9: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Previous Works in Our Setting Active + n-Party + Dishonest Majority

Milestone Work Adversary PartiesCorruption Threshold

First Work [BF97] Passive n >= 3 t < n/2

[FMY98] Active n t < n/2

[PS98] Active 2 t = 1

Based on OT [Gil99] Passive 2 t = 1

[ACS02] Passive n t < n/2

[DM10] Active 3 t = 1

[HMRT12] Active n t < n

[FLOP18] Active 2 t = 1

[CCD+20] Active n t < n

Page 10: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Previous Works: ImplementationsMilestone Work Adversary Parties

Corruption Threshold

First Work [BF97] Passive n >= 3 t < n/2

[FMY98] Active n t < n/2

[PS98] Active 2 t = 1

Based on OT [Gil99] Passive 2 t = 1

[ACS02] Passive n t < n/2

[DM10] Active 3 t = 1

Passive impl. only [HMRT12] Active n t < n

Passive impl. only [FLOP18] Active 2 t = 1

[CCD+20] Active n t < n

Page 11: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

[FLOP18]RSA Modulus Size 2048 bits

Implementation PassiveNum Parties 2

Party Spec 8 GB RAM 8 cores CPU

Bandwidth 40 Gbps

Online Comm. (Per-Party) >1.9 GB

Time 35 sec (8 thread)

Previous Works: State of the Art

Let’s do better!

Page 12: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Previous Works: State of the Art[FLOP18] Our Goal

RSA Modulus Size 2048 bits

Implementation PassiveNum Parties 2

Party Spec 8 GB RAM 8 cores CPU

Bandwidth 40 Gbps

Online Comm. (Per-Party) >1.9 GB

Time 35 sec (8 thread)

Page 13: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Previous Works: State of the Art[FLOP18] Our Goal

RSA Modulus Size 2048 bits 2048 bitsImplementation PassiveNum Parties 2

Party Spec 8 GB RAM 8 cores CPU

Bandwidth 40 Gbps

Online Comm. (Per-Party) >1.9 GB

Time 35 sec (8 thread)

Page 14: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Previous Works: State of the Art[FLOP18] Our Goal

RSA Modulus Size 2048 bits 2048 bitsImplementation Passive Active (Id-A)Num Parties 2

Party Spec 8 GB RAM 8 cores CPU

Bandwidth 40 Gbps

Online Comm. (Per-Party) >1.9 GB

Time 35 sec (8 thread)

Page 15: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Previous Works: State of the Art[FLOP18] Our Goal

RSA Modulus Size 2048 bits 2048 bitsImplementation Passive Active (Id-A)Num Parties 2 1024

Party Spec 8 GB RAM 8 cores CPU

Bandwidth 40 Gbps

Online Comm. (Per-Party) >1.9 GB

Time 35 sec (8 thread)

Page 16: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Previous Works: State of the Art[FLOP18] Our Goal

RSA Modulus Size 2048 bits 2048 bitsImplementation Passive Active (Id-A)Num Parties 2 1024

Party Spec 8 GB RAM 8 cores CPU

2 GB RAMsingle-core CPU

Bandwidth 40 Gbps

Online Comm. (Per-Party) >1.9 GB

Time 35 sec (8 thread)

Page 17: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Previous Works: State of the Art[FLOP18] Our Goal

RSA Modulus Size 2048 bits 2048 bitsImplementation Passive Active (Id-A)Num Parties 2 1024

Party Spec 8 GB RAM 8 cores CPU

2 GB RAMsingle-core CPU

Bandwidth 40 Gbps 1 Mbps100 ms latency

Online Comm. (Per-Party) >1.9 GB

Time 35 sec (8 thread)

Page 18: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Previous Works: State of the Art[FLOP18] Our Goal

RSA Modulus Size 2048 bits 2048 bitsImplementation Passive Active (Id-A)Num Parties 2 1024

Party Spec 8 GB RAM 8 cores CPU

2 GB RAMsingle-core CPU

Bandwidth 40 Gbps 1 Mbps100 ms latency

Online Comm. (Per-Party) >1.9 GB < 100 MB

Time 35 sec (8 thread)

Page 19: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Previous Works: State of the Art[FLOP18] Our Goal

RSA Modulus Size 2048 bits 2048 bitsImplementation Passive Active (Id-A)Num Parties 2 1024

Party Spec 8 GB RAM 8 cores CPU

2 GB RAMsingle-core CPU

Bandwidth 40 Gbps 1 Mbps100 ms latency

Online Comm. (Per-Party) >1.9 GB < 100 MB

Time 35 sec (8 thread) < 20 mins

Page 20: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Protocol Blueprint

Page 21: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Step 1: Design protocol secure against passive adversary

Step 2: Compile to security against active adversary

Page 22: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Step 1: scalable passive protocol

Page 23: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Boneh-Franklin Framework [BF97]

1. Candidates & Trial division

N

2. Mult

0,1

3. Biprimality Testing

pi, qi

Page 24: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Boneh-Franklin Framework [BF97]

1. Candidates & Trial division

N

2. Mult

0,1

3. Biprimality Testing

pi, qi

Parties choose pi, qi randomly

Page 25: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Boneh-Franklin Framework [BF97]

1. Candidates & Trial division

N

2. Mult

0,1

3. Biprimality Testing

pi, qi

N = (∑i

pi) ⋅ (∑i

qi)Parties choose pi, qi randomly

Page 26: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Boneh-Franklin Framework [BF97]

1. Candidates & Trial division

N

2. Mult

0,1

3. Biprimality Testing

pi, qi

Is N the product of two primes?

N = (∑i

pi) ⋅ (∑i

qi)Parties choose pi, qi randomly

Page 27: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

1. Candidates & Sieving 2. Mult

3. Biprimality Testing

Start with sieving trick

Page 28: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Candidate Trial Division: Prior Works

HMRTN12

FLOP18 Uses 1-out-of-k OT

Uses El Gamal

1. Pick p and q shares. 2. Joint Trial division. 3. If both pass, multiply.

Page 29: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Candidate Trial Division [Bru50]

Pr[A |B] ≈ ( 1500 )

A = randomly sampling a 1024-bit prime B = prime is odd

Pr[sample biprime |B] ≈ ( 1500 )

2

Need 250k samples in expectation, Large multiplication for N

Page 30: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Candidate Construction: Chinese Remainder Theorem (CRT)

.

.

.

3

5

7

mt

CRT Reconstruction Algorithm

Πt mt

Modular Reduction

Moduli are relatively prime!

Page 31: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Candidate Construction: Sieving Trick [CCD+20]

.

.

.

3

5

7

mt

CRT Reconstruction Algorithm

Modular Reduction

0 ≠

0 ≠

0 ≠

0 ≠ Not divisible by the first t primes!

Πt mt

Page 32: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Candidate Trial Division [Bru50]

Pr[A |B]

A = randomly sampling a 1024-bit prime B = sieve up to 863, the 150th prime

Pr[sample biprime |B]

Need 3600 samples in expectation, Construct N using a series of small mults

≈ ( 160 )

≈ ( 160 )

2

Page 33: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Add Multiplier

2. Mult1. Candidates & Trial division

3. Biprimality Testing

Page 34: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

a1, b1 ∈ ℤ2ℓ

c1 c2

c1 + c2 = (∑ ai) ⋅ (∑ bi)

MUL

Secure Multiplication

a2, b2 ∈ ℤ2ℓ

Page 35: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Our Approach: Threshold AHE

•Distributed Key Generation

•Encryption

•Distributed decryption

EncPK(m)

m = Decsk1(c) + … + Decskn

(c)

Public key: Secret keys: PK sk1, …, skn

Page 36: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Our Approach: Threshold AHE

•Addition under encryption

•Scalar multiplication under encryption

EncPK(m1) + EncPK(m2) = EncPK(m1 + m2)

a ⋅ EncPK(m) = EncPK(a ⋅ m)

Page 37: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Our Approach: Coordinator

C

• Untrusted

• Does public operations (AHE Aggregations)

• Not in party count

Page 38: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Our Approach: Coordinator

C1TB RAM

128-core CPU

10Gbps

• Untrusted

• Does public operations (AHE Aggregations)

• Not in party count

Page 39: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Parties’ secret shares

Key Generation

Encrypt pi

Coord. adds

Receive Enc(p) from Coord.

Multiply by qi

Coord. adds

Receive Enc( pq ) from Coord.

Decrypted product

Our Approach: Threshold AHEPi

pi, qi

ski

EncPK(pi)

EncPK(p)qi ⋅ EncPK(p)

EncPK(p ⋅ q)p ⋅ q

C

∑ EncPK(pi)

∑ qi ⋅ EncPK(p)

Page 40: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Parties’ secret shares

Key Generation

Encrypt pi

Coord. adds

Receive Enc(p) from Coord.

Multiply by qi

Coord. adds

Receive Enc( pq ) from Coord.

Decrypted product

Our Approach: Threshold AHEPi

pi, qi

ski

EncPK(pi)

EncPK(p)qi ⋅ EncPK(p)

EncPK(p ⋅ q)p ⋅ q

CPK

∑ EncPK(pi)

∑ qi ⋅ EncPK(p)

Page 41: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Parties’ secret shares

Key Generation

Encrypt pi

Coord. adds

Receive Enc(p) from Coord.

Multiply by qi

Coord. adds

Receive Enc( pq ) from Coord.

Decrypted product

Our Approach: Threshold AHEPi

pi, qi

ski

EncPK(pi)

EncPK(p)qi ⋅ EncPK(p)

EncPK(p ⋅ q)p ⋅ q

CPK

∑ EncPK(pi)

∑ qi ⋅ EncPK(p)

Page 42: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Parties’ secret shares

Key Generation

Encrypt pi

Coord. adds

Receive Enc(p) from Coord.

Multiply by qi

Coord. adds

Receive Enc( pq ) from Coord.

Decrypted product

Our Approach: Threshold AHEPi

pi, qi

ski

EncPK(pi)

EncPK(p)qi ⋅ EncPK(p)

EncPK(p ⋅ q)p ⋅ q

CPK

∑ EncPK(pi)

∑ qi ⋅ EncPK(p)

Page 43: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Parties’ secret shares

Key Generation

Encrypt pi

Coord. adds

Receive Enc(p) from Coord.

Multiply by qi

Coord. adds

Receive Enc( pq ) from Coord.

Decrypted product

Our Approach: Threshold AHEPi

pi, qi

ski

EncPK(pi)

EncPK(p)qi ⋅ EncPK(p)

EncPK(p ⋅ q)p ⋅ q

CPK

∑ EncPK(pi)

∑ qi ⋅ EncPK(p)

Page 44: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Parties’ secret shares

Key Generation

Encrypt pi

Coord. adds

Receive Enc(p) from Coord.

Multiply by qi

Coord. adds

Receive Enc( pq ) from Coord.

Decrypted product

Our Approach: Threshold AHEPi

pi, qi

ski

EncPK(pi)

EncPK(p)qi ⋅ EncPK(p)

EncPK(p ⋅ q)p ⋅ q

CPK

∑ EncPK(pi)

∑ qi ⋅ EncPK(p)

Page 45: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Parties’ secret shares

Key Generation

Encrypt pi

Coord. adds

Receive Enc(p) from Coord.

Multiply by qi

Coord. adds

Receive Enc( pq ) from Coord.

Decrypted product

Our Approach: Threshold AHEPi

pi, qi

ski

EncPK(pi)

EncPK(p)qi ⋅ EncPK(p)

EncPK(p ⋅ q)p ⋅ q

CPK

∑ EncPK(pi)

∑ qi ⋅ EncPK(p)

Page 46: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Parties’ secret shares

Key Generation

Encrypt pi

Coord. adds

Receive Enc(p) from Coord.

Multiply by qi

Coord. adds

Receive Enc( pq ) from Coord.

Decrypted product

Our Approach: Threshold AHEPi

pi, qi

ski

EncPK(pi)

EncPK(p)qi ⋅ EncPK(p)

EncPK(p ⋅ q)

CPK

∑ EncPK(pi)

∑ qi ⋅ EncPK(p)

p ⋅ q

Page 47: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Parties’ secret shares

Key Generation

Encrypt pi

Coord. adds

Receive Enc(p) from Coord.

Multiply by qi

Coord. adds

Receive Enc( pq ) from Coord.

Decrypted product

Our Approach: Threshold AHEPi

pi, qi

ski

EncPK(pi)

EncPK(p)qi ⋅ EncPK(p)

EncPK(p ⋅ q)p ⋅ q

CPK

∑ EncPK(pi)

∑ qi ⋅ EncPK(p)

Page 48: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

State-of-the-Art TAHEPaillier? • Circular choice

El Gamal? • Inefficient decryption (discrete log)

From LWE? • Does not support all AHE operations

From Ring-LWE. • Supports AHE, better parameters, packing

Page 49: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

3. Biprimality Testing

[BF97]’s Biprimality Test

1. Candidates & Trial division 2. Mult

• Test whether N is the product of two primes • Don’t leak p or q • Based on Miller-Rabin primality test [Rabin80]

• Probabilistic - need to repeat s times

Page 50: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Step 2: Security against active adversaries

Page 51: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

GMW paradigm

aka ”I will prove I did everything honestly!”aka Zero-Knowledge Proofs

Page 52: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

GMW Paradigm: Passive Protocol

P1 P2

x1, r1 x2, r2

m1

mk

.

.

.

Page 53: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

GMW Paradigm: Active Protocol

P1 P2

x1, r1 x2, r2Commit Commit

m1

mk

ZK

ZK

.

.

.

Page 54: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

GMW Paradigm: Our compiler

P1 P2

Commit Commit

m1

mk

ZK

.

.

.

x1, r1 x2, r2

Page 55: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

ZK Considerations

• Lattices - Operations in Ring ZQ = Zp1 x … x Zp21

• Modulus generation - Operations in Z2, Z3, Z5, …, Z823

• Jacobi test - Operations in Z*N (2048-bit number)

Page 56: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

ZK Schema

Commit( randTAHE, randshares )Party i Coordinator

Passive Protocol

Commit( randsigma )

Sigma-protocol proof

ZK Proof that all actions are correct

Page 57: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Needs:• Memory efficient

• Supports commit-and-prove

• Versatile: composable!

Ligero [AHIV17] + Sigma [Sho00]

What ZK protocol to use?

Page 58: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Ligero• Range proofs on noise for Ring-LWE

• Other proofs - Correctness of everything else

Sigma• Correctness of Jacobi test (for biprimality

testing)

The proofs

Page 59: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

• only AGGREGATES

• has no inputs or randomness

• publishes transcript, thus publicly verifiable

Coordinator security

Page 60: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Summary: Our ProtocolKey Setup

Generate Candidates

Compute Products

Biprimality test

Generate threshold keys

Sample pre-approved primes

Use TAHE to compute candidates

BF biprimality test

Certification Ligero ZK + Sigma

Page 61: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Performance Metrics: 10,000 parties (passive)

Page 62: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Performance Metrics: 1024 parties (active)

Stage Timing Per Step Cumulative TimePassive Protocol 5m 19s 5m 19sZK Proof Generation 7m 16s 12m 35s

ZK Verification 7m 24s 12m 43s

Passive Ceremony

ZK Proof Generation

ZK Verification

Timing (s)0 200 400 600 800

444s

436s

319s

319319

Page 63: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

VDF Day Trial RunSpec

• ~25 parties (VDF day attendees!) • Coordinator on AWS

• 2 runs. Passive succeeded, but active didn’t complete. Takeaways

• We previously tested on AWS + (few real life parties) • Identifiable abort requires rigorous testing

• Thanks to VDF day, we learned a lot about real world conditions

• Stay tuned, for next demo!

Page 64: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Conclusion[FLOP18] Our Goal

Modulus size 2048 bits 2048 bitsImplementation Passive ActiveNum Parties 2 1024

Party Spec 8 GB RAM 8 cores CPU

2 GB RAMsingle-core CPU

Network speed 40 Gbps 1 Mbps100 ms latency

Online Comm. (Per-Party) >1.9 GB < 100 MB 200 MB

Time 35 sec (8 thread) < 20 mins

Page 65: Diogenes: Lightweight Scalable RSA Modulus Generation with a … · 2020. 2. 25. · Diogenes: Lightweight Scalable RSA Modulus Generation with a Dishonest Majority Megan Chen Ligero

Thank You