an exploration of group and ring signatures
play

An Exploration of Group and Ring Signatures Sarah Meiklejohn ! ! - PowerPoint PPT Presentation

An Exploration of Group and Ring Signatures Sarah Meiklejohn ! ! ! ! UC San Diego Research Exam 4 February 2011 1 A real-world problem 2 A real-world problem 2 A real-world problem I need to tell the others! 2 A real-world problem


  1. Group signatures: a formal characterization • A group signature is a tuple of algorithms (KeyGen,Sign,Verify,Trace) • KeyGen(1 k ,1 n ): outputs group public key pk, master secret key msk, and signing keys for each user in the group {sk i } i 11

  2. Group signatures: a formal characterization • A group signature is a tuple of algorithms (KeyGen,Sign,Verify,Trace) • KeyGen(1 k ,1 n ): outputs group public key pk, master secret key msk, and signing keys for each user in the group {sk i } i • Sign(sk i ,m): outputs signature σ on message m 11

  3. Group signatures: a formal characterization • A group signature is a tuple of algorithms (KeyGen,Sign,Verify,Trace) • KeyGen(1 k ,1 n ): outputs group public key pk, master secret key msk, and signing keys for each user in the group {sk i } i • Sign(sk i ,m): outputs signature σ on message m • Verify(pk, σ ,m): checks that σ is a valid signature on m formed by some member of the group defined by pk (and outputs 1 if yes and 0 if no) 11

  4. Group signatures: a formal characterization • A group signature is a tuple of algorithms (KeyGen,Sign,Verify,Trace) • KeyGen(1 k ,1 n ): outputs group public key pk, master secret key msk, and signing keys for each user in the group {sk i } i • Sign(sk i ,m): outputs signature σ on message m • Verify(pk, σ ,m): checks that σ is a valid signature on m formed by some member of the group defined by pk (and outputs 1 if yes and 0 if no) • Trace(msk, σ ,m): outputs either index i such that σ = Sign(sk i ,m) or ⊥ to indicate failure (or that Verify(pk, σ ,m) = 0) 11

  5. Group signatures: a formal characterization • A group signature is a tuple of algorithms (KeyGen,Sign,Verify,Trace) • KeyGen(1 k ,1 n ): outputs group public key pk, master secret key msk, and signing keys for each user in the group {sk i } i • Sign(sk i ,m): outputs signature σ on message m • Verify(pk, σ ,m): checks that σ is a valid signature on m formed by some member of the group defined by pk (and outputs 1 if yes and 0 if no) • Trace(msk, σ ,m): outputs either index i such that σ = Sign(sk i ,m) or ⊥ to indicate failure (or that Verify(pk, σ ,m) = 0) 11

  6. Anonymity: a more formal definition Game G 12

  7. Anonymity: a more formal definition Game G Adversary A 12

  8. Anonymity: a more formal definition Game G Adversary A 12

  9. Anonymity: a more formal definition Game G Adversary A Phase 1: getting to see who signed which messages 12

  10. Anonymity: a more formal definition Game G pk,msk,{sk i } ← KeyGen(1 k ,1 n ) Adversary A Phase 1: getting to see who signed which messages 12

  11. Anonymity: a more formal definition Game G pk,msk,{sk i } ← KeyGen(1 k ,1 n ) Adversary A pk, {sk i } Phase 1: getting to see who signed which messages 12

  12. Anonymity: a more formal definition Game G msk Adversary A pk, {sk i } Phase 1: getting to see who signed which messages 12

  13. Anonymity: a more formal definition Game G msk Sign(sk B ,m) Adversary A pk, {sk i } Phase 1: getting to see who signed which messages 12

  14. Anonymity: a more formal definition Game G msk B Sign(sk B ,m) Adversary A pk, {sk i } Phase 1: getting to see who signed which messages 12

  15. Anonymity: a more formal definition Game G msk Sign(sk i ,m) Adversary A pk, {sk i } Phase 1: getting to see who signed which messages 12

  16. Anonymity: a more formal definition Game G msk i Sign(sk i ,m) Adversary A pk, {sk i } Phase 1: getting to see who signed which messages 12

  17. Anonymity: a more formal definition pk, {sk i } Phase 2: picking identities and receiving a challenge 13

  18. Anonymity: a more formal definition m,i 0 ,i 1 pk, {sk i } Phase 2: picking identities and receiving a challenge 13

  19. Anonymity: a more formal definition b ← {0,1 m,i 0 ,i 1 pk, {sk i } Phase 2: picking identities and receiving a challenge 13

  20. Anonymity: a more formal definition b ← {0,1 σ = Sign(sk ib ,m) m,i 0 ,i 1 pk, {sk i } Phase 2: picking identities and receiving a challenge 13

  21. Anonymity: a more formal definition b ← {0,1 pk, {sk i }, σ = Sign(sk ib ,m) 14

  22. Anonymity: a more formal definition b ← {0,1 pk, {sk i }, σ = Sign(sk ib ,m) Phase 3: getting to see who signed which messages (again) 14

  23. Anonymity: a more formal definition b ← {0,1 pk, {sk i }, σ = Sign(sk ib ,m) Phase 3: getting to see who signed which messages (again) 14

  24. Anonymity: a more formal definition b ← {0,1 Sign(sk i ,m) ≠ σ pk, {sk i }, σ = Sign(sk ib ,m) Phase 3: getting to see who signed which messages (again) 14

  25. Anonymity: a more formal definition b ← {0,1 i Sign(sk i ,m) ≠ σ pk, {sk i }, σ = Sign(sk ib ,m) Phase 3: getting to see who signed which messages (again) 14

  26. Anonymity: a more formal definition b ← {0,1 pk, {sk i }, σ = Sign(sk ib ,m) 15

  27. Anonymity: a more formal definition b ← {0,1 pk, {sk i }, σ = Sign(sk ib ,m) Phase 4: guessing the bit b 15

  28. Anonymity: a more formal definition b ← {0,1 b ′ pk, {sk i }, σ = Sign(sk ib ,m) Phase 4: guessing the bit b 15

  29. Anonymity: a more formal definition b ← {0,1 b ′ We say that A wins at G if b = b ′ pk, {sk i }, σ = Sign(sk ib ,m) Phase 4: guessing the bit b 15

  30. Anonymity: a more formal definition b ← {0,1 Say that scheme is anonymous if the probability that A wins at G is very small (negligible) b ′ We say that A wins at G if b = b ′ pk, {sk i }, σ = Sign(sk ib ,m) Phase 4: guessing the bit b 15

  31. Traceability: a more formal definition 16

  32. Traceability: a more formal definition 16

  33. Traceability: a more formal definition Phase 1: getting to pick a corrupt coalition 16

  34. Traceability: a more formal definition Phase 1: getting to pick a corrupt coalition 16

  35. Traceability: a more formal definition Phase 1: getting to pick a corrupt coalition 16

  36. Traceability: a more formal definition C Phase 1: getting to pick a corrupt coalition 16

  37. Traceability: a more formal definition pk,msk,{sk i } ← KeyGen(1 k ,1 n ) C Phase 1: getting to pick a corrupt coalition 16

  38. Traceability: a more formal definition pk,msk,{sk i } ← KeyGen(1 k ,1 n ) C pk, msk Phase 1: getting to pick a corrupt coalition 16

  39. Traceability: a more formal definition {sk i } C pk, msk Phase 1: getting to pick a corrupt coalition 16

  40. Traceability: a more formal definition {sk i } i,m C pk, msk Phase 1: getting to pick a corrupt coalition 16

  41. Traceability: a more formal definition {sk i } Sign(sk i ,m) i,m C pk, msk Phase 1: getting to pick a corrupt coalition 16

  42. Traceability: a more formal definition {sk i } Sign(sk i ,m) i,m i C pk, msk Phase 1: getting to pick a corrupt coalition 16

  43. Traceability: a more formal definition {sk i } Sign(sk i ,m) i,m i sk i C pk, msk Phase 1: getting to pick a corrupt coalition 16

  44. Traceability: a more formal definition C pk, msk Phase 2: outputting a forgery 17

  45. Traceability: a more formal definition i,m C pk, msk Phase 2: outputting a forgery 17

  46. Traceability: a more formal definition Sign(sk i ,m) i,m C pk, msk Phase 2: outputting a forgery 17

  47. Traceability: a more formal definition Sign(sk i ,m) m, σ i,m C pk, msk Phase 2: outputting a forgery 17

  48. Traceability: a more formal definition Sign(sk i ,m) m, σ i,m We say that A wins at G if Verify(pk, σ ,m) = 1 and: (1) ∃ i s.t. C Trace(msk, σ ,m) = i, (2) pk, msk i ∉ C, and (3) A did not query oracle on (i,m) Phase 2: outputting a forgery 17

Recommend


More recommend