Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1...

106
Single Secret Leader Election Dan Boneh Saba Eskandarian Lucjan Hanzlik Nicola Greco

Transcript of Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1...

Page 1: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

Single Secret Leader ElectionDan Boneh Saba Eskandarian Lucjan Hanzlik Nicola Greco

Page 2: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

What is Single Secret Leader Election?A group of participants want to randomly choose exactly one leader, such that:

1. Identity of the leader is known only to the leader and nobody else

2. Leader can later publicly prove that she is the leader

Should work even if many registered participants don’t send messages.

Page 3: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

What is Single Secret Leader Election?A group of participants want to randomly choose exactly one leader, such that:

1. Identity of the leader is known only to the leader and nobody else

2. Leader can later publicly prove that she is the leader

Should work even if many registered participants don’t send messages.

Page 4: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

Applications of SSLE - PoS BlockchainsNeed leader to submit blocks

Publicizing leader ahead of time makes the whole protocol vulnerable

Page 5: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

Applications of SSLE - PoS Blockchains

Page 6: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

Applications of SSLE - PoS Blockchains

Page 7: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

A Non-ExampleCommon approach:

1. Everyone picks a random point on number line

Page 8: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

A Non-ExampleCommon approach:

1. Everyone picks a random point on number line

2. Randomness beacon picks a random point on number line

Page 9: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

A Non-ExampleCommon approach:

1. Everyone picks a random point on number line

2. Randomness beacon picks a random point on number line

3. Whoever is closest to the beacon wins

Page 10: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

A Non-ExampleSetup: 1. Choose λ-bit prime p2. Randomness beacon that outputs R ∈ Fp

Page 11: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

A Non-ExampleSetup: 1. Choose λ-bit prime p2. Randomness beacon that outputs R ∈ Fp

Election:1. Each participant i picks a secret vi, produces commitment com(vi)

Page 12: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

A Non-ExampleSetup: 1. Choose λ-bit prime p2. Randomness beacon that outputs R ∈ Fp

Election:1. Each participant i picks a secret vi, produces commitment com(vi)2. Beacon produces R ∈ Fp

Page 13: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

A Non-ExampleSetup: 1. Choose λ-bit prime p2. Randomness beacon that outputs R ∈ Fp

Election:1. Each participant i picks a secret vi, produces commitment com(vi)2. Beacon produces R ∈ Fp 3. Any participant with |R - vi| < 10 * 2λ / N decommits to vi

Page 14: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

A Non-ExampleSetup: 1. Choose λ-bit prime p2. Randomness beacon that outputs R ∈ Fp

Election:1. Each participant i picks a secret vi, produces commitment com(vi)2. Beacon produces R ∈ Fp 3. Any participant with |R - vi| < 10 * 2λ / N decommits to vi4. Winner is participant with minimum |R - vi|

Page 15: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

A Non-ExampleSetup: 1. Choose λ-bit prime p2. Randomness beacon that outputs R ∈ Fp

Election:1. Each participant i picks a secret vi, produces commitment com(vi)2. Beacon produces R ∈ Fp 3. Any participant with |R - vi| < 10 * 2λ / N decommits to vi4. Winner is participant with minimum |R - vi|

This is almost what we want.

Page 16: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

A Non-ExampleSetup: 1. Choose λ-bit prime p2. Randomness beacon that outputs R ∈ Fp

Election:1. Each participant i picks a secret vi, produces commitment com(vi)2. Beacon produces R ∈ Fp 3. Any participant with |R - vi| < 10 * 2λ / N decommits to vi4. Winner is participant with minimum |R - vi|

This is almost what we want. Only the single leader publishes vi in expectation

Page 17: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

A Non-ExampleSetup: 1. Choose λ-bit prime p2. Randomness beacon that outputs R ∈ Fp

Election:1. Each participant i picks a secret vi, produces commitment com(vi)2. Beacon produces R ∈ Fp 3. Any participant with |R - vi| < 10 * 2λ / N decommits to vi4. Winner is participant with minimum |R - vi|

This is almost what we want. Only the single leader publishes vi in expectation

Page 18: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

Why Single Secret Leader Election?Having multiple potential leaders wastes effort and impedes consensus

From Protocol Labs RFC:

- Fork grinding

- Faster convergence

- Simpler protocol

Cost: requires a registration step

Page 19: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

What Makes SSLE Challenging?Want to minimize long-term storage

Page 20: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

What Makes SSLE Challenging?Want to minimize long-term storage

Want to minimize communication

Page 21: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

What Makes SSLE Challenging?Want to minimize long-term storage

Want to minimize communication

Want to minimize computation

Page 22: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

What Makes SSLE Challenging?Want to minimize long-term storage

Want to minimize communication

Want to minimize computation

Can’t expect every participant to send messages

Page 23: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

What Makes SSLE Challenging?Want to minimize long-term storage

Want to minimize communication

Want to minimize computation

Can’t expect every participant to send messages

Can’t expect every participant to stay online between rounds

Page 24: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

OutlineIntroduction

Formalizing SSLE

3 SSLE Constructions:

- From DDH & Shuffling

- From obfuscation

- From tFHE

Page 25: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE RequirementsThree security properties:

1. Uniqueness: only one leader is chosen by the election

2. Unpredictability: non-winners cannot guess who the winner is

3. Fairness: each user has 1/N chance of becoming the leader

Goal: robust election where DoS of c/N users disrupts election with probability c/N

Page 26: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE RequirementsThree security properties:

1. Uniqueness: only one leader is chosen by the election

2. Unpredictability: non-winners cannot guess who the winner is

3. Fairness: each user has 1/N chance of becoming the leader

Goal: robust election where DoS of c/N users disrupts election with probability c/N

Our focus will be on the elections, not on using them to build blockchains.

Page 27: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE SyntaxAll algorithms assume access to public state st

Elections have access to randomness beacon output R

Page 28: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE SyntaxAll algorithms assume access to public state st

Elections have access to randomness beacon output R

SSLE Algorithms

1. Setup2. Registration3. Registration verification4. Election5. Election verification

Page 29: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

Formalizing DefinitionsAdversary ChallengerSetup

Run setup→pp, st0,sk1, …, skN (if applicable) Choose set M⊆[N], |M|=c

pp, st0, {ski}i∈M

Page 30: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

Formalizing DefinitionsAdversary ChallengerSetup

Run setup→pp, st0,sk1, …, skN (if applicable) Choose set M⊆[N], |M|=c

pp, st0, {ski}i∈M

ElectionsRegister any users

Run registration verification for each uncorrupted user. Output 0 if any fails.

Page 31: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

Formalizing DefinitionsAdversary ChallengerSetup

Run setup→pp, st0,sk1, …, skN (if applicable) Choose set M⊆[N], |M|=c

pp, st0, {ski}i∈M

ElectionsRegister any users

Run an electionRun registration verification for each uncorrupted user. Output 0 if any fails.

(if uncorrupted winner)Winner index i, proof πi

Page 32: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

Formalizing DefinitionsAdversary ChallengerSetup

Run setup→pp, st0,sk1, …, skN (if applicable) Choose set M⊆[N], |M|=c

pp, st0, {ski}i∈M

ElectionsRegister any users

Run an electionRun registration verification for each uncorrupted user. Output 0 if any fails.

(if uncorrupted winner)Winner index i, proof πi

Page 33: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

Formalizing DefinitionsAdversary ChallengerSetup

Run setup→pp, st0,sk1, …, skN (if applicable) Choose set M⊆[N], |M|=c

pp, st0, {ski}i∈M

ElectionsRegister any users

Run an electionRun registration verification for each uncorrupted user. Output 0 if any fails.

(if uncorrupted winner)Winner index i, proof πi

Challenge

Page 34: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

Formalizing DefinitionsAdversary ChallengerSetup

Run setup→pp, st0,sk1, …, skN (if applicable) Choose set M⊆[N], |M|=c

pp, st0, {ski}i∈M

ElectionsRegister any users

Run an electionRun registration verification for each uncorrupted user. Output 0 if any fails.

(if uncorrupted winner)Winner index i, proof πi

ChallengeUniqueness(j,πj) for j∈M, for each election in election phase Output 1 if for any election, there is

more than one tuple (k,πj) for which election verification accepts.

Page 35: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

Formalizing DefinitionsAdversary ChallengerSetup

Run setup→pp, st0,sk1, …, skN (if applicable) Choose set M⊆[N], |M|=c

pp, st0, {ski}i∈M

ElectionsRegister any users

Run an electionRun registration verification for each uncorrupted user. Output 0 if any fails.

(if uncorrupted winner)Winner index i, proof πi

ChallengeUnpredictabilityRun one last election

Guess winner is user i∈[N]

If winner is not in [N]\M, output 0.Otherwise, if winner is user i, output 1.Secure if challenger never outputs 1 with probability greater than 1/(N-c).

Page 36: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

Formalizing DefinitionsAdversary ChallengerSetup

Run setup→pp, st0,sk1, …, skN (if applicable) Choose set M⊆[N], |M|=c

pp, st0, {ski}i∈M

ElectionsRegister any users

Run an electionRun registration verification for each uncorrupted user. Output 0 if any fails.

(if uncorrupted winner)Winner index i, proof πi

ChallengeFairnessRun one last election If winner is not in [N]\M, output 1.

Secure if challenger never outputs 1 with probability greater than c/N.

Page 37: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

Three Constructions of SSLEObfuscationIdeal solution, but uses theoretical tools

tFHECloser to realistic, only gives a threshold version of security

DDH“Compromise” solution -- √N communication per election, 1/(√N-c) unpredictability Should be suitable for practical use cases

Page 38: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

Three Constructions of SSLEDDH“Compromise” solution -- √N communication per election, 1/(√N-c) unpredictability Should be suitable for practical use cases

ObfuscationIdeal solution, but uses theoretical tools

tFHECloser to realistic, only gives a threshold version of security

Page 39: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from DDHThe easiest single non-secret leader election

User 1

User 2

User 3

User 4

Registration

User 1

User 2

User 3

User 4

User 5

ElectionR∈[N]

User 1

User 2

User 3

User 4

User 5

Page 40: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from DDHThe easiest single non-secret leader election

How to hide the leader?

User 1

User 2

User 3

User 4

Registration

User 1

User 2

User 3

User 4

User 5

ElectionR∈[N]

User 1

User 2

User 3

User 4

User 5

✅ Uniqueness

✅ Fairness

🆇 Unpredictability

Page 41: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from DDH1. Commitments

User 1

User 2

User 3

User 4

Registration

User 1

User 2

User 3

User 4

User 5

ElectionR∈[N]

User 1

User 2

User 3

User 4

User 5

✅ Uniqueness

✅ Fairness

🆇 Unpredictability

Page 42: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from DDH1. Commitments

com(u1)

com(u2)

com(u3)

com(u4)

Registration

com(u1)

com(u2)

com(u3)

com(u4)

com(u5)

ElectionR∈[N]

com(u1)

com(u2)

com(u3)

com(u4)

com(u5)

✅ Uniqueness

✅ Fairness

🆇 Unpredictability

Page 43: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from DDH1. Commitments2. Shuffling

com(u1)

com(u2)

com(u3)

com(u4)

Registration

com(u1)

com(u2)

com(u3)

com(u4)

com(u5)

ElectionR∈[N]

com(u1)

com(u2)

com(u3)

com(u4)

com(u5)

✅ Uniqueness

✅ Fairness

🆇 Unpredictability

Page 44: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from DDH1. Commitments2. Shuffling

com(u1)

com(u2)

com(u3)

com(u4)

RegistrationPart 1

com(u1)

com(u2)

com(u3)

com(u4)

com(u5)

ElectionR∈[N]

com(u2)

com(u5)

com(u4)

com(u1)

com(u3)

✅ Uniqueness

✅ Fairness

🆇 Unpredictability

RegistrationPart 2 com(u2)

com(u5)

com(u4)

com(u1)

com(u3)

Page 45: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from DDH1. Commitments2. Shuffling3. Rerandomization

com(u1)

com(u2)

com(u3)

com(u4)

RegistrationPart 1

com(u1)

com(u2)

com(u3)

com(u4)

com(u5)

ElectionR∈[N]

com(u2)’

com(u5)’

com(u4)’

com(u1)’

com(u3)’

🆇 Uniqueness

🆇 Fairness

🆇 Unpredictability

RegistrationPart 2 com(u2)’

com(u5)’

com(u4)’

com(u1)’

com(u3)’

Page 46: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from DDH1. Commitments2. Shuffling3. Rerandomization & Reidentification

com(u1)

com(u2)

com(u3)

com(u4)

RegistrationPart 1

com(u1)

com(u2)

com(u3)

com(u4)

com(u5)

ElectionR∈[N]

com(u2)’

com(u5)’

com(u4)’

com(u1)’

com(u3)’

RegistrationPart 2 com(u2)’

com(u5)’

com(u4)’

com(u1)’

com(u3)’

Page 47: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

A Rerandomizable & Reidentifiable CommitmentLet g ∈ G, G is a group where DDH is hard

Com(k, r) → (gr, grk)

Page 48: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

A Rerandomizable & Reidentifiable CommitmentLet g ∈ G, G is a group where DDH is hard

Com(k, r) → (gr, grk)

Rerandomization: (gr, grk) → (grr’, grr’k)

Reidentification: given (u,v), check if uk = v

Page 49: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

A Rerandomizable & Reidentifiable CommitmentLet g ∈ G, G is a group where DDH is hard

Com(k, r) → (gr, grk)

Rerandomization: (gr, grk) → (grr’, grr’k)

Reidentification: given (u,v), check if uk = v

Security follows from DDH: (gr, grk, grr’, grr’k) vs (gr, grk, grr’, grz)

Page 50: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from DDH1. Commitments2. Shuffling3. Rerandomization & Reidentification

com(u1)

com(u2)

com(u3)

com(u4)

RegistrationPart 1

com(u1)

com(u2)

com(u3)

com(u4)

com(u5)

ElectionR∈[N]

com(u2)’

com(u5)’

com(u4)’

com(u1)’

com(u3)’

RegistrationPart 2 com(u2)’

com(u5)’

com(u4)’

com(u1)’

com(u3)’

Page 51: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from DDH1. Commitments2. Shuffling3. Rerandomization & Reidentification4. Verification of shuffle

com(u1)

com(u2)

com(u3)

com(u4)

RegistrationPart 1

com(u1)

com(u2)

com(u3)

com(u4)

com(u5)

ElectionR∈[N]

com(u2)’

com(u5)’

com(u4)’

com(u1)’

com(u3)’

RegistrationPart 2 com(u2)’

com(u5)’

com(u4)’

com(u1)’

com(u3)’

Page 52: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from DDH1. Commitments2. Shuffling3. Rerandomization & Reidentification4. Verification of shuffle -- NIZK or other users check

com(u1)

com(u2)

com(u3)

com(u4)

RegistrationPart 1

com(u1)

com(u2)

com(u3)

com(u4)

com(u5)

ElectionR∈[N]

com(u2)’

com(u5)’

com(u4)’

com(u1)’

com(u3)’

RegistrationPart 2 com(u2)’

com(u5)’

com(u4)’

com(u1)’

com(u3)’

Page 53: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from DDH1. Commitments2. Shuffling3. Rerandomization & Reidentification4. Verification of shuffle -- NIZK or other users check5. Defend against duplication attacks

com(u1)

com(u2)

com(u3)

com(u4)

RegistrationPart 1

com(u1)

com(u2)

com(u3)

com(u4)

com(u5)

ElectionR∈[N]

com(u2)’

com(u5)’

com(u4)’

com(u1)’

com(u3)’

RegistrationPart 2 com(u2)’

com(u5)’

com(u4)’

com(u1)’

com(u3)’

Page 54: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

Duplication Attack

com(u1)

com(u2)

com(u3)

com(u4)

RegistrationPart 1

com(u1)

com(u2)

com(u3)

com(u4)

com(u4)

RegistrationPart 2 com(u2)’

com(u4)’’

com(u4)’

com(u1)’

com(u3)’

Duplication attack makes it possible for 2 different users to register with a commitment to the same value

Breaks uniqueness and unpredictability

Page 55: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

Preventing Duplication AttacksHow to ensure that users never commit to the same value?

Idea: Derive a secret commitment value and a tag from a master secret

Sample random k

H(k) →kL, kR

Post com(kL) and kR

Registrations to the same secret detected by duplicate kR

(H modeled as random oracle)

Page 56: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

Saving CommunicationProtocol thus far has required linear communication for each registration

com(k1L)

com(k2L)

com(k3L)

com(k4L)

RegistrationPart 1

com(k1L)

com(k2L)

com(k3L)

com(k4L)

com(k5L)

ElectionR∈[N]

com(k1L)’

com(k2L)’

com(k3L)’

com(k4L)’

com(k5L)’

com(k1L)’

com(k2L)’

com(k3L)’

com(k4L)’

com(k5L)’

RegistrationPart 2

Page 57: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

Saving CommunicationProtocol thus far has required linear communication for each registration

RegistrationPart 1 Election

R∈[N]

Communicating all this is expensive

RegistrationPart 2 com(k1L)’

com(k2L)’

com(k3L)’

com(k4L)’

com(k5L)’

com(k1L)’

com(k2L)’

com(k3L)’

com(k4L)’

com(k5L)’

com(k1L)

com(k2L)

com(k3L)

com(k4L)

com(k1L)

com(k2L)

com(k3L)

com(k4L)

com(k5L)

Page 58: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

Saving CommunicationCommunication/Security tradeoff: instead of shuffling new entry into the whole list, split the list into a number of buckets and only shuffle into one bucket.

Page 59: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

Saving CommunicationCommunication/Security tradeoff: instead of shuffling new entry into the whole list, split the list into a number of buckets and only shuffle into one bucket.

com(k1L)

com(k2L)

com(k3L)

...

com(kNL)

com(k1L)

...

com(k√N,L)

com(k√N+1,L)

...

com(k2√N,L)

...

com(kN-√N+1,L)

...

com(kN,L)

Page 60: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

Saving CommunicationCommunication/Security tradeoff: instead of shuffling new entry into the whole list, split the list into a number of buckets and only shuffle into one bucket.

Larger buckets mean more unpredictability but also more communication

√N sized buckets seems like a good tradeoff

com(k1L)

com(k2L)

com(k3L)

...

com(kNL)

com(k1L)

...

com(k√N,L)

com(k√N+1,L)

...

com(k2√N,L)

...

com(kN-√N+1,L)

...

com(kN,L)

Page 61: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SecurityWith a deterministic choice of buckets, we get the following theorem:

Page 62: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SecurityWith a deterministic choice of buckets, we get the following theorem:

We can do better by randomizing the choice of buckets, so an adversary needs to corrupt O(N) users to guess winner with constant probability

Page 63: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SecurityWith a deterministic choice of buckets, we get the following theorem:

We can do better by randomizing the choice of buckets, so an adversary needs to corrupt O(N) users to guess winner with constant probability

Page 64: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SecurityWith a deterministic choice of buckets, we get the following theorem:

We can do better by randomizing the choice of buckets, so an adversary needs to corrupt O(N) users to guess winner with constant probability

Open problem: we believe we can do better with a more clever shuffling/bucketing algorithm, e.g. by using something like a square shuffle [Hastad06]

Page 65: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SecurityWith a deterministic choice of buckets, we get the following theorem:

We can do better by randomizing the choice of buckets, so an adversary needs to corrupt O(N) users to guess winner with constant probability

Open problem: we believe we can do better with a more clever shuffling/bucketing algorithm, e.g. by using something like a square shuffle [Hastad06]

Open problem: constant communication per election (in a practical scheme)

Page 66: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from ObfuscationObfuscation [BGI+01, GGH+13]

Obfuscator iO(C) produces a new circuit C’ such that:

1. C and C’ have the exact same behavior.2. For any two circuits C0, C1 that have the exact same behavior, no adversary

can distinguish between iO(C0) and iO(C1).

Page 67: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from ObfuscationObfuscation [BGI+01, GGH+13]

Obfuscator iO(C) produces a new circuit C’ such that:

1. C and C’ have the exact same behavior2. For any two circuits C0, C1 that have the exact same behavior, no adversary

can distinguish between iO(C0) and iO(C1)

Puncturable PRF [BW13, BGI14, KPTZ13]

PRF where you can generate a punctured key that allows you to evaluate the PRF everywhere except at that point.

Given the punctured key, the value of the PRF at the punctured point is still pseudorandom.

Page 68: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from ObfuscationPlan:

1. Write a program that picks leader using secret key embedded in the program

2. Obfuscate program during trusted setup and distribute to everyone

3. Any participant just needs to post a public key to register for elections

4. Obfuscated program output should allow leader to prove she won

Page 69: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from ObfuscationProgram to obfuscate, first attempt

P((pk0, …, pkN-1), i, N, R):

Page 70: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from ObfuscationProgram to obfuscate, first attempt

P((pk0, …, pkN-1), i, N, R):

1. s ←R, pk0, …, pkN-12. w←F(k,s)

Page 71: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from ObfuscationProgram to obfuscate, first attempt

P((pk0, …, pkN-1), i, N, R):

1. s ←R, pk0, …, pkN-12. w←F(k,s)3. b←1 if i = w mod n, b←0 otherwise4. Output b

Page 72: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from ObfuscationProgram to obfuscate, first attempt

P((pk0, …, pkN-1), i, N, R):

1. s ←R, pk0, …, pkN-12. w←F(k,s)3. b←1 if i = w mod n, b←0 otherwise4. Output b

✅ Elects one leader randomly based on secret key

🆇 Anyone can learn the leader by trying each value of i

Page 73: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from ObfuscationProgram to obfuscate, second attempt

P((pk0, …, pkN-1), i, N, R):

1. s ←R, pk0, …, pkN-12. w←F(k,s)3. b←1 if i = w mod n, b←0 otherwise4.

Page 74: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from ObfuscationProgram to obfuscate, second attempt

P((pk0, …, pkN-1), i, N, R):

1. s ←R, pk0, …, pkN-12. (w, r)←F(k,s)3. b←1 if i = w mod n, b←0 otherwise4.

Page 75: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from ObfuscationProgram to obfuscate, second attempt

P((pk0, …, pkN-1), i, N, R):

1. s ←R, pk0, …, pkN-12. (w, r)←F(k,s)3. b←1 if i = w mod n, b←0 otherwise4. ct←Encrypt(pki, b; r)5. Output ct

Page 76: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from ObfuscationProgram to obfuscate, second attempt

P((pk0, …, pkN-1), i, N, R):

1. s ←R, pk0, …, pkN-12. (w, r)←F(k,s)3. b←1 if i = w mod n, b←0 otherwise4. ct←Encrypt(pki, b; r)5. Output ct

✅ Elects one leader randomly based on secret key

✅ Only user i can decrypt bi

🆇 Not clear how winner can prove that she won the election

Page 77: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from ObfuscationProgram to obfuscate, final attempt

P((pk0, …, pkN-1), i, N, R):

1. s ←R, pk0, …, pkN-12. (w, r)←F(k,s)3. b←1 if i = w mod n, b←0 otherwise4.

Page 78: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from ObfuscationProgram to obfuscate, final attempt

P((pk0, …, pkN-1), i, N, R):

1. s ←R, pk0, …, pkN-12. (w,r,r’)←F(k,s)3. b←1 if i = w mod n, b←0 otherwise4.

Page 79: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from ObfuscationProgram to obfuscate, final attempt

P((pk0, …, pkN-1), i, N, R):

1. s ←R, pk0, …, pkN-12. (w,r,r’)←F(k,s)3. b←1 if i = w mod n, b←0 otherwise4. c ←com(b; r)

Page 80: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from ObfuscationProgram to obfuscate, final attempt

P((pk0, …, pkN-1), i, N, R):

1. s ←R, pk0, …, pkN-12. (w,r,r’)←F(k,s)3. b←1 if i = w mod n, b←0 otherwise4. c ←com(b; r)5. ct←Encrypt(pki, r; r’)6. Output c, ct

Page 81: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from ObfuscationProgram to obfuscate, final attempt

P((pk0, …, pkN-1), i, N, R):

1. s ←R, pk0, …, pkN-12. (w,r,r’)←F(k,s)3. b←1 if i = w mod n, b←0 otherwise4. c ←com(b; r)5. ct←Encrypt(pki, r; r’)6. Output c, ct

✅ Elects one leader randomly based on secret key

✅ Only user i can decrypt bi

✅ Prove leadership by revealing r

Page 82: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from ObfuscationProgram to obfuscate, final attempt

P((pk0, …, pkN-1), i, N, R):

1. s ←R, pk0, …, pkN-12. (w,r,r’)←F(k,s)3. b←1 if i = w mod n, b←0 otherwise4. c ←com(b; r)5. ct←Encrypt(pki, r; r’)6. Output c, ct

✅ Elects one leader randomly based on secret key

✅ Only user i can decrypt bi

✅ Prove leadership by revealing r

Why not encrypt?

Page 83: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from ObfuscationProgram to obfuscate, final attempt

P((pk0, …, pkN-1), i, N, R):

1. s ←R, pk0, …, pkN-12. (w,r,r’)←F(k,s)3. b←1 if i = w mod n, b←0 otherwise4. c ←com(b; r)5. ct←Encrypt(pki, r; r’)6. Output c, ct

✅ Elects one leader randomly based on secret key

✅ Only user i can decrypt bi

✅ Prove leadership by revealing r

Why not encrypt?If the encryption does not commit, adversary could potentially find bad randomness that allows a non-winning ciphertext to decrypt to 1

Page 84: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from ObfuscationProgram to obfuscate, final attempt

P((pk0, …, pkN-1), i, N, R):

1. s ←R, pk0, …, pkN-12. (w,r,r’)←F(k,s)3. b←1 if i = w mod n, b←0 otherwise4. c ←com(b; r)5. ct←Encrypt(pki, r; r’)6. Output c, ct

See paper for proofs of uniqueness, selective fairness, selective unpredictability

✅ Elects one leader randomly based on secret key

✅ Only user i can decrypt bi

✅ Prove leadership by revealing r

Page 85: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from tFHEReminder: why can’t we use a generic MPC protocol for SSLE?

Easy DoS opportunity if everyone has to come back for a second round

Page 86: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from tFHEReminder: why can’t we use a generic MPC protocol for SSLE?

Easy DoS opportunity if everyone has to come back for a second round

What if only a few people have to come back and it doesn’t matter which ones?

Page 87: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from tFHEReminder: why can’t we use a generic MPC protocol for SSLE?

Easy DoS opportunity if everyone has to come back for a second round

What if only a few people have to come back and it doesn’t matter which ones?

Tools from threshold crypto can enable this!

Page 88: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from tFHEThreshold Encryption: Standard public-key encryption, but instead of one secret key, many users have shares of a secret key that produce partial decryptions, with t partial decryptions needed to produce a plaintext.

Page 89: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from tFHEThreshold Encryption: Standard public-key encryption, but instead of one secret key, many users have shares of a secret key that produce partial decryptions, with t partial decryptions needed to produce a plaintext.

Fully Homomorphic Encryption (FHE): Standard public-key encryption, but ciphertexts can be added together and multiplied. Expensive operation is multiplication, high multiplicative depth is especially costly.

Page 90: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from tFHEThreshold Encryption: Standard public-key encryption, but instead of one secret key, many users have shares of a secret key that produce partial decryptions, with t partial decryptions needed to produce a plaintext.

Fully Homomorphic Encryption (FHE): Standard public-key encryption, but ciphertexts can be added together and multiplied. Expensive operation is multiplication, high multiplicative depth is especially costly.

Threshold FHE (tFHE): Combine the two tools above.

Page 91: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from tFHEThreshold Encryption: Standard public-key encryption, but instead of one secret key, many users have shares of a secret key that produce partial decryptions, with t partial decryptions needed to produce a plaintext.

Fully Homomorphic Encryption (FHE): Standard public-key encryption, but ciphertexts can be added together and multiplied. Expensive operation is multiplication, high multiplicative depth is especially costly.

Threshold FHE (tFHE): Combine the two tools above.

Using these tools, we can only really hope for threshold unpredictability and fairness

Page 92: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from tFHEPlan:

1. All participants get a tFHE decryption key

2. Define a computation that picks the leader

3. Evaluate computation under tFHE

4. Some subset of t users post partial decryptions

5. Output of computation somehow secretly determines winner

Page 93: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from tFHEPlan:

1. All participants get a tFHE decryption key

2. Define a computation that picks the leader

3. Evaluate computation under tFHE

4. Some subset of t users post partial decryptions

5. Output of computation somehow secretly determines winner

Unlike the obfuscation case, everyone gets the same output.

Page 94: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from tFHEIdea:

Each participant registers with a secret k

Output of computation is the secret of a randomly chosen participant

The participant knows her secret, but nobody else knows who owns it

Page 95: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from tFHEIdea:

Each participant registers with a secret k

Output of computation is the secret of a randomly chosen participant

The participant knows her secret, but nobody else knows who owns it

Main remaining problems to solve:

1. Efficiently generating randomness inside the tFHE

2. Efficiently using the randomness to pick someone’s secret

Page 96: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from tFHEIdea:

Each participant registers with a secret k

Output of computation is the secret of a randomly chosen participant

The participant knows her secret, but nobody else knows who owns it

Main remaining problems to solve:

1. Efficiently generating randomness inside the tFHE

2. Efficiently using the randomness to pick someone’s secret

See paper for other details

Page 97: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from tFHE

k1

k2

k3

k4

k5

Page 98: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from tFHE

k1

k2

k3

k4

k5

0

0

0

1

0

= k4

Random weight-1 vector

Page 99: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from tFHE

k1

k2

k3

k4

k5

0

0

0

1

0

= k4

Random weight-1 vector

How can we efficiently generate a random weight-1 vector given some random bits inside the tFHE?

“efficiently” = low multiplicative depth

Page 100: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from tFHE1. Start with logN random bits

0 1 1 0

Page 101: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from tFHE1. Start with logN random bits

2. Split bits into length-2 vectors where b → (b, 1-b):a. 0 → (0,1)b. 1 → (1,0)

0 1 1 0

(0,1) (1,0) (1,0) (0,1)

Page 102: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from tFHE1. Start with logN random bits

2. Split bits into length-2 vectors where b → (b, 1-b):a. 0 → (0,1)b. 1 → (1,0)

3. Take outer product of adjacent vectors and flattena. E.g. (0,1) ⮾ (1,0) = (0,0,1,0)

0 1 1 0

(0,1) (1,0) (1,0) (0,1)

(0,0,1,0) (0,0,0,1)

Page 103: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from tFHE1. Start with logN random bits

2. Split bits into length-2 vectors where b → (b, 1-b):a. 0 → (0,1)b. 1 → (1,0)

3. Take outer product of adjacent vectors and flattena. E.g. (0,1) ⮾ (1,0) = (0,0,1,0)

4. Repeat step 3 until only a single length-N vector remains

0 1 1 0

(0,1) (1,0) (1,0) (0,1)

(0,0,1,0) (0,0,0,1)

(0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0)

Page 104: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

SSLE from tFHE1. Start with logN random bits

2. Split bits into length-2 vectors where b → (b, 1-b):a. 0 → (0,1)b. 1 → (1,0)

3. Take outer product of adjacent vectors and flattena. E.g. (0,1) ⮾ (1,0) = (0,0,1,0)

4. Repeat step 3 until only a single length-N vector remains

Multiplicative depth: loglogN

0 1 1 0

(0,1) (1,0) (1,0) (0,1)

(0,0,1,0) (0,0,0,1)

(0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0)

Page 105: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

Single Secret Leader ElectionElect exactly 1 leader such that only the leader learns who she is and can prove it

Our contributions:

Formalization of SSLE requirements and security definitions

Three constructions: from DDH, tFHE, and obfuscation

Page 106: Single Secret Leader Election - Stanford Universitycrypto.stanford.edu/~saba/slides/SSLE.pdfPart 1 com(u1) com(u2) com(u3) com(u4) com(u5) Election R∈[N] com(u2) com(u5) com(u4)

Single Secret Leader ElectionElect exactly 1 leader such that only the leader learns who she is and can prove it

Our contributions:

Formalization of SSLE requirements and security definitions

Three constructions: from DDH, tFHE, and obfuscation

Paper: https://eprint.iacr.org/2020/025.pdf

Contact: [email protected]