improvements on distributed key generation
play

Improvements on Distributed Key Generation Bachelor Project Kopiga - PowerPoint PPT Presentation

Improvements on Distributed Key Generation Bachelor Project Kopiga Rasiah Responsible Supervisor Bryan Ford Nicolas Gailly 1 Improvements on Distributed Key Generation Objective: Bringing improvements in order to enhance the security of


  1. Improvements on Distributed Key Generation Bachelor Project Kopiga Rasiah Responsible Supervisor Bryan Ford Nicolas Gailly 1

  2. Improvements on Distributed Key Generation • Objective: Bringing improvements in order to enhance the security of the protocol 2

  3. Outline • Background: • What is DKG • Shamir’s secret • Feldman’s VSS • How DKG works • My work: Proactive secret sharing • Implementation • Conclusion 3

  4. Distributed Key Generation • Set of n participants who collectively generate a shared private/public key • Each node have a share of the secret (private key) • No single point failure: attacker needs to break into multiple location to have access to the secret. • DKG is mostly used in group digital signature, or decrypt shared ciphertexts. 4

  5. Shamir’s secret sharing dealer 5

  6. Shamir’s secret sharing dealer 6

  7. Shamir’s secret sharing • f(x) = s + a 1 x + a 2 x 2 + … + a t-1 x t-1 , t < n • f(0) = secret • construct n points out of it (shares) and distributes to the nodes 7

  8. Shamir’s secret sharing f(1) f(2) f(3) f(4) f(5) • t points are sufficient to reconstruct a t-1 degree polynomial function 1 2 3 4 5

  9. Shamir’s secret sharing 1 2 3 4 5 9

  10. Feldman’s verifiable secret sharing • Based on Shamir’s secret sharing nodes can verify if their shares are consistent • • dealer broadcasts F( • ) = f( • ) * g • F(i) == s i * g 10

  11. Distributed Key Generation • Based on Feldman’s VSS • System without any trusted party • Executes n VSS instances in parallel: every node is a dealer • Each node generates f i (x) = z i + a 1 x + a 2 x 2 +…+ a t-1 x t-1 , where z i is random 11

  12. Distributed Key Generation f 1 (1) f 1 (2) 2 1 f 1 (4) f 1 (3) 3 4 12

  13. Distributed Key Generation f 1 (1) f 1 (2) f 2 (2) 2 1 f 2 (1) f 2 (3) f 1 (4) f 1 (3) f 2 (4) 3 4 13

  14. Distributed Key Generation f 1 (1) f 1 (2) +f 2 (1) +f 2 (2) +f 3 (1) +f 3 (2) +f 4 (1) +f 4 (2) 1 2 = s 1 = s 2 f 1 (3) f 1 (4) +f 2 (3) +f 2 (4) +f 3 (3) +f 3 (4) +f 4 (3) +f 4 (4) 3 4 = s 3 = s 4 14

  15. Distributed Key Generation f 1 (1) f 1 (2) +f 2 (1) +f 2 (2) +f 3 (1) +f 3 (2) +f 4 (1) +f 4 (2) 1 2 = s 1 = s 2 s = ∑ j f j (0) S = ∑ j F j (0) = s * g f 1 (3) f 1 (4) +f 2 (3) +f 2 (4) +f 3 (3) +f 3 (4) +f 4 (3) +f 4 (4) 3 4 = s 3 = s 4 15

  16. Proactive secret sharing • Given enough time, an attacker can gradually break into more than t servers • Not practical to change the secret • Solution: Proactive secret sharing. • We only focus on refreshing the shares 16

  17. Proactive secret sharing • Why refreshing ? • Refreshing the shares makes the underlying polynomial change ! • Old stolen information become useless 17

  18. The idea • Let’s assume that the initial DKG round has been done • Each node generates new intermediate random polynomials g i (x) • g i (x) = 0 + b 1,i x + b 2,i x 2 +…+ b t-1,i x t-1 • They execute again the DKG protocol: • distributions of the intermediate shares 18

  19. Distributed Key Generation g 1 (1) g 2 (2) g 1 (2) g 1 (x) g 2 (x) g 2 (1) 1 2 g 2 (4) g 1 (3) g 2 (3) g 1 (4) g 3 (x) g 4 (x) 3 4 19

  20. Proactive secret sharing s i = ∑ j f j (i) for node i s i ’ = ∑ j g j (i) 20

  21. Proactive secret sharing s i = ∑ j f j (i) + s i ’ = ∑ j g j (i) <— 2 nd round DKG r i = ∑ j h j (i) 21

  22. Proactive secret sharing s i = ∑ j f j (i) + s i ’ = ∑ j g j (i) r i = ∑ j h j (i) 22

  23. Proactive secret sharing s i = ∑ j f j (i) s = ∑ j f j (0) = 0 + s i ’ = ∑ j g j (i) + s i ’ = ∑ j g j (0) s = ∑ j h j (0) r i = ∑ j h j (i) g i (x) = 0 + b 1,i x + b 2,i x 2 +…+ b t-1,i x t-1 23

  24. Distributed Key Generation s 2 s 1 + ∑ j g j (2) + ∑ j g j (1) = r 2 = r 1 1 2 s 3 s 4 + ∑ j g j (3) + ∑ j g j (4) = r 3 = r 4 3 4 24

  25. Distributed Key Generation s 2 s 1 + ∑ j g j (2) + ∑ j g j (1) = r 2 = r 1 1 2 renewed share s 3 s 4 + ∑ j g j (3) + ∑ j g j (4) = r 3 = r 4 3 4 25

  26. Proactive secret sharing • The attacker’s time is now restricted between the updating process • He need to break into servers at the same period 26

  27. Implementation 2 nd round of DKG for updating the shares: • • Renew function adds 2 shares according to their indices: • check if G(0) = 0 ( = 0 * g) • check share1.index == share2.index 27

  28. Conclusion • enhances security of the protocol • much more interesting if periodicity is implemented Future work • Implement the periodicity • Implement the share recovering process Current work • Drand (distributed randomness beacon daemon) where • nodes collectively produces random values 28

Recommend


More recommend