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

an exploration of group and ring signatures
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

An Exploration of Group and Ring Signatures

Sarah Meiklejohn

! ! ! !

UC San Diego Research Exam 4 February 2011

1

slide-2
SLIDE 2

A real-world problem

2

slide-3
SLIDE 3

A real-world problem

2

slide-4
SLIDE 4

A real-world problem

2

I need to tell the

  • thers!
slide-5
SLIDE 5

A real-world problem

2

  • 1. How can we communicate with the other cars?

I need to tell the

  • thers!
slide-6
SLIDE 6

A real-world problem

2

  • 1. How can we communicate with the other cars?
  • 2. Can we make sure that some malicious outsider

can’t use the system to create traffic mayhem?

I need to tell the

  • thers!
slide-7
SLIDE 7

Outline

3

slide-8
SLIDE 8

Outline

3

Cryptographic background

slide-9
SLIDE 9

Outline

3

Cryptographic background Group signatures

slide-10
SLIDE 10

Outline

3

Cryptographic background Group signatures Ring signatures

slide-11
SLIDE 11

Outline

3

Cryptographic background Group signatures Ring signatures Open problems

slide-12
SLIDE 12

Outline

3

Cryptographic background Group signatures Ring signatures Open problems Cryptographic background

slide-13
SLIDE 13
  • Signatures: Signer wants to send a message to Recipient, but wants to make

sure she knows the message really came from him

Digital signatures

4

slide-14
SLIDE 14
  • Signatures: Signer wants to send a message to Recipient, but wants to make

sure she knows the message really came from him

Digital signatures

4

Signer Recipient

slide-15
SLIDE 15
  • Signatures: Signer wants to send a message to Recipient, but wants to make

sure she knows the message really came from him

  • Signer first runs an algorithm KeyGen to get signing keypair (pk,sk), ...

Digital signatures

4

Signer Recipient

slide-16
SLIDE 16
  • Signatures: Signer wants to send a message to Recipient, but wants to make

sure she knows the message really came from him

  • Signer first runs an algorithm KeyGen to get signing keypair (pk,sk), ...

Digital signatures

4

Signer Recipient

sk pk

slide-17
SLIDE 17
  • Signatures: Signer wants to send a message to Recipient, but wants to make

sure she knows the message really came from him

  • Signer first runs an algorithm KeyGen to get signing keypair (pk,sk), ...
  • ...then he can compute σ = Sign(sk,m) for the desired message m, and ...

Digital signatures

4

Signer Recipient

sk pk

slide-18
SLIDE 18
  • Signatures: Signer wants to send a message to Recipient, but wants to make

sure she knows the message really came from him

  • Signer first runs an algorithm KeyGen to get signing keypair (pk,sk), ...
  • ...then he can compute σ = Sign(sk,m) for the desired message m, and ...

Digital signatures

4

m

Signer Recipient

sk pk

slide-19
SLIDE 19
  • Signatures: Signer wants to send a message to Recipient, but wants to make

sure she knows the message really came from him

  • Signer first runs an algorithm KeyGen to get signing keypair (pk,sk), ...
  • ...then he can compute σ = Sign(sk,m) for the desired message m, and ...

Digital signatures

4

m σ

Signer Recipient

sk pk

slide-20
SLIDE 20
  • Signatures: Signer wants to send a message to Recipient, but wants to make

sure she knows the message really came from him

  • Signer first runs an algorithm KeyGen to get signing keypair (pk,sk), ...
  • ...then he can compute σ = Sign(sk,m) for the desired message m, and ...
  • Recipient can run Verify(pk,σ,m) to be sure σ was created by Signer

Digital signatures

4

m σ

Signer Recipient

sk pk

slide-21
SLIDE 21
  • Signatures: Signer wants to send a message to Recipient, but wants to make

sure she knows the message really came from him

! !

  • We need signatures to be unforgeable, which means an adversary cannot

successfully pretend to be the Signer (without knowing sk)

Digital signatures

5

Signer Recipient

sk pk

slide-22
SLIDE 22

Outline

6

Cryptographic background Group signatures

Intuition and motivation Formal definitions Extensions and variants Comparison of existing schemes

Ring signatures Open problems

slide-23
SLIDE 23

Group signatures: why do we want them?

7

slide-24
SLIDE 24

Group signatures: why do we want them?

7

Group 1

slide-25
SLIDE 25

Group signatures: why do we want them?

7

pkA,skA pkB,skB pkC,skC pkD,skD Group 1

slide-26
SLIDE 26

Group signatures: why do we want them?

7

pkA,skA pkB,skB pkC,skC pkD,skD Group 1 Group 1 Alice: pkA Bob: pkB Charlie: pkC Dora: pkD

slide-27
SLIDE 27

Group signatures: why do we want them?

7

pkA,skA pkB,skB pkC,skC pkD,skD

m, σ = Sign(skB,m)

Group 1 Group 1 Alice: pkA Bob: pkB Charlie: pkC Dora: pkD

slide-28
SLIDE 28

Group signatures: why do we want them?

7

pkA,skA pkB,skB pkC,skC pkD,skD

m, σ = Sign(skB,m)

Group 1 Group 1 Alice: pkA Bob: pkB Charlie: pkC Dora: pkD

slide-29
SLIDE 29

Group signatures: why do we want them?

7

pkA,skA pkB,skB pkC,skC pkD,skD

m, σ = Sign(skB,m)

Verify(pkB,σ,m) = 1...

Group 1 Group 1 Alice: pkA Bob: pkB Charlie: pkC Dora: pkD

slide-30
SLIDE 30

Group signatures: why do we want them?

7

pkA,skA pkB,skB pkC,skC pkD,skD

m, σ = Sign(skB,m)

Verify(pkB,σ,m) = 1... so Bob wrote the message!

Group 1 Group 1 Alice: pkA Bob: pkB Charlie: pkC Dora: pkD

slide-31
SLIDE 31

Group signatures: why do we want them?

7

pkA,skA pkB,skB pkC,skC pkD,skD

m, σ = Sign(skB,m)

Verify(pkB,σ,m) = 1... so Bob And he wrote the message! works for the CIA!

Group 1 Group 1 Alice: pkA Bob: pkB Charlie: pkC Dora: pkD

slide-32
SLIDE 32

Properties of group signatures: anonymity

8

slide-33
SLIDE 33

Properties of group signatures: anonymity

8

slide-34
SLIDE 34

Properties of group signatures: anonymity

8

skA skB skC skD

slide-35
SLIDE 35

Properties of group signatures: anonymity

8

skA skB skC skD pkCIA

slide-36
SLIDE 36

Properties of group signatures: anonymity

8

skA skB skC skD pkCIA

slide-37
SLIDE 37

Properties of group signatures: anonymity

8

skA skB skC skD

m, σ = Sign(skB,m)

pkCIA

slide-38
SLIDE 38

Properties of group signatures: anonymity

8

skA skB skC skD

m, σ = Sign(skB,m)

Verify(pkCIA,σ,m) = 1... so someone from the CIA wrote the message.

pkCIA

slide-39
SLIDE 39

Properties of group signatures: anonymity

8

skA skB skC skD

m, σ = Sign(skB,m)

Verify(pkCIA,σ,m) = 1... so someone from the CIA wrote the message.

pkCIA

  • Given Sign(skB,m) and Sign(skD,m), recipient can’t

tell the difference

!

  • This should be true even if he knows who has

signed previous messages

slide-40
SLIDE 40

Properties of group signatures: traceability

9

skA skB skC skD

m, σ = Sign(skB,m)

pkCIA

Verify(pkCIA,σ,m) = 1... so someone from the CIA wrote the message.

slide-41
SLIDE 41

Properties of group signatures: traceability

9

skA skB skC skD

m, σ = Sign(skB,m)

pkCIA

Verify(pkCIA,σ,m) = 1... so someone from the CIA wrote the message.

slide-42
SLIDE 42

Properties of group signatures: traceability

9

skA skB skC skD

m, σ = Sign(skB,m)

m = “The CIA is the worst!”

pkCIA

Verify(pkCIA,σ,m) = 1... so someone from the CIA wrote the message.

slide-43
SLIDE 43

Properties of group signatures: traceability

9

skA skB skC skD

m, σ = Sign(skB,m)

m = “The CIA is the worst!”

tk pkCIA

Verify(pkCIA,σ,m) = 1... so someone from the CIA wrote the message.

slide-44
SLIDE 44

Properties of group signatures: traceability

9

skA skB skC skD

m, σ = Sign(skB,m)

m = “The CIA is the worst!”

tk pkCIA

  • Want new algorithm Trace s.t. Trace(tk,σ) = Bob

!

  • Whoever has access to tk breaks anonymity

Verify(pkCIA,σ,m) = 1... so someone from the CIA wrote the message.

slide-45
SLIDE 45

Using group signatures with our real-world problem

10

slide-46
SLIDE 46

Using group signatures with our real-world problem

10

  • 1. How can we communicate with the other cars?
slide-47
SLIDE 47

Using group signatures with our real-world problem

10

  • 1. How can we communicate with the other cars?
  • Use dedicated short-range transmitters, send the

message and a group signature (group = “all cars”)

slide-48
SLIDE 48

Using group signatures with our real-world problem

10

  • 1. How can we communicate with the other cars?
  • Use dedicated short-range transmitters, send the

message and a group signature (group = “all cars”)

  • 2. Can we make sure that some malicious outsider

can’t use the system to create traffic mayhem?

slide-49
SLIDE 49

Using group signatures with our real-world problem

10

  • 1. How can we communicate with the other cars?
  • Use dedicated short-range transmitters, send the

message and a group signature (group = “all cars”)

  • 2. Can we make sure that some malicious outsider

can’t use the system to create traffic mayhem?

  • Yes, because group signatures are traceable
slide-50
SLIDE 50

Using group signatures with our real-world problem

10

  • 1. How can we communicate with the other cars?
  • Use dedicated short-range transmitters, send the

message and a group signature (group = “all cars”)

  • 2. Can we make sure that some malicious outsider

can’t use the system to create traffic mayhem?

  • Yes, because group signatures are traceable
  • 3. Can we do so without revealing private information?
slide-51
SLIDE 51

Using group signatures with our real-world problem

10

  • 1. How can we communicate with the other cars?
  • Use dedicated short-range transmitters, send the

message and a group signature (group = “all cars”)

  • 2. Can we make sure that some malicious outsider

can’t use the system to create traffic mayhem?

  • Yes, because group signatures are traceable
  • 3. Can we do so without revealing private information?
  • Yes, because group signatures are anonymous
slide-52
SLIDE 52

Group signatures: a formal characterization

  • A group signature is a tuple of algorithms (KeyGen,Sign,Verify,Trace)

11

slide-53
SLIDE 53

Group signatures: a formal characterization

  • A group signature is a tuple of algorithms (KeyGen,Sign,Verify,Trace)
  • KeyGen(1k,1n): outputs group public key pk, master secret key msk, and

signing keys for each user in the group {ski}i

11

slide-54
SLIDE 54

Group signatures: a formal characterization

  • A group signature is a tuple of algorithms (KeyGen,Sign,Verify,Trace)
  • KeyGen(1k,1n): outputs group public key pk, master secret key msk, and

signing keys for each user in the group {ski}i

  • Sign(ski,m): outputs signature σ on message m

11

slide-55
SLIDE 55

Group signatures: a formal characterization

  • A group signature is a tuple of algorithms (KeyGen,Sign,Verify,Trace)
  • KeyGen(1k,1n): outputs group public key pk, master secret key msk, and

signing keys for each user in the group {ski}i

  • Sign(ski,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

slide-56
SLIDE 56

Group signatures: a formal characterization

  • A group signature is a tuple of algorithms (KeyGen,Sign,Verify,Trace)
  • KeyGen(1k,1n): outputs group public key pk, master secret key msk, and

signing keys for each user in the group {ski}i

  • Sign(ski,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(ski,m) or ⊥ to

indicate failure (or that Verify(pk,σ,m) = 0)

11

slide-57
SLIDE 57

Group signatures: a formal characterization

  • A group signature is a tuple of algorithms (KeyGen,Sign,Verify,Trace)
  • KeyGen(1k,1n): outputs group public key pk, master secret key msk, and

signing keys for each user in the group {ski}i

  • Sign(ski,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(ski,m) or ⊥ to

indicate failure (or that Verify(pk,σ,m) = 0)

11

slide-58
SLIDE 58

Anonymity: a more formal definition

12

Game G

slide-59
SLIDE 59

Anonymity: a more formal definition

12

Game G Adversary A

slide-60
SLIDE 60

Anonymity: a more formal definition

12

Game G Adversary A

slide-61
SLIDE 61

Anonymity: a more formal definition

12

Phase 1: getting to see who signed which messages

Game G Adversary A

slide-62
SLIDE 62

Anonymity: a more formal definition

12

pk,msk,{ski}←KeyGen(1k,1n) Phase 1: getting to see who signed which messages

Game G Adversary A

slide-63
SLIDE 63

Anonymity: a more formal definition

12

pk, {ski} pk,msk,{ski}←KeyGen(1k,1n) Phase 1: getting to see who signed which messages

Game G Adversary A

slide-64
SLIDE 64

Anonymity: a more formal definition

12

pk, {ski} msk Phase 1: getting to see who signed which messages

Game G Adversary A

slide-65
SLIDE 65

Anonymity: a more formal definition

12

pk, {ski} msk Phase 1: getting to see who signed which messages

Game G Adversary A

Sign(skB,m)

slide-66
SLIDE 66

Anonymity: a more formal definition

12

pk, {ski} msk Phase 1: getting to see who signed which messages

Game G Adversary A

Sign(skB,m) B

slide-67
SLIDE 67

Anonymity: a more formal definition

12

Sign(ski,m) pk, {ski} msk Phase 1: getting to see who signed which messages

Game G Adversary A

slide-68
SLIDE 68

Anonymity: a more formal definition

12

Sign(ski,m) i pk, {ski} msk Phase 1: getting to see who signed which messages

Game G Adversary A

slide-69
SLIDE 69

Anonymity: a more formal definition

13

pk, {ski} Phase 2: picking identities and receiving a challenge

slide-70
SLIDE 70

Anonymity: a more formal definition

13

pk, {ski} Phase 2: picking identities and receiving a challenge m,i0,i1

slide-71
SLIDE 71

Anonymity: a more formal definition

13

pk, {ski} Phase 2: picking identities and receiving a challenge m,i0,i1 b←{0,1

slide-72
SLIDE 72

Anonymity: a more formal definition

13

pk, {ski} Phase 2: picking identities and receiving a challenge m,i0,i1 b←{0,1 σ = Sign(skib,m)

slide-73
SLIDE 73

Anonymity: a more formal definition

14

pk, {ski}, σ = Sign(skib,m) b←{0,1

slide-74
SLIDE 74

Anonymity: a more formal definition

14

Phase 3: getting to see who signed which messages (again) pk, {ski}, σ = Sign(skib,m) b←{0,1

slide-75
SLIDE 75

Anonymity: a more formal definition

14

Phase 3: getting to see who signed which messages (again) pk, {ski}, σ = Sign(skib,m) b←{0,1

slide-76
SLIDE 76

Anonymity: a more formal definition

14

Sign(ski,m) ≠ σ Phase 3: getting to see who signed which messages (again) pk, {ski}, σ = Sign(skib,m) b←{0,1

slide-77
SLIDE 77

Anonymity: a more formal definition

14

Sign(ski,m) ≠ σ i Phase 3: getting to see who signed which messages (again) pk, {ski}, σ = Sign(skib,m) b←{0,1

slide-78
SLIDE 78

Anonymity: a more formal definition

15

b←{0,1 pk, {ski}, σ = Sign(skib,m)

slide-79
SLIDE 79

Anonymity: a more formal definition

15

Phase 4: guessing the bit b b←{0,1 pk, {ski}, σ = Sign(skib,m)

slide-80
SLIDE 80

Anonymity: a more formal definition

15

Phase 4: guessing the bit b b←{0,1 b′ pk, {ski}, σ = Sign(skib,m)

slide-81
SLIDE 81

Anonymity: a more formal definition

15

Phase 4: guessing the bit b b←{0,1 b′ pk, {ski}, σ = Sign(skib,m) We say that A wins at G if b = b′

slide-82
SLIDE 82

Anonymity: a more formal definition

15

Phase 4: guessing the bit b b←{0,1 b′ pk, {ski}, σ = Sign(skib,m) We say that A wins at G if b = b′ Say that scheme is anonymous if the probability that A wins at G is very small (negligible)

slide-83
SLIDE 83

Traceability: a more formal definition

16

slide-84
SLIDE 84

Traceability: a more formal definition

16

slide-85
SLIDE 85

Traceability: a more formal definition

16

Phase 1: getting to pick a corrupt coalition

slide-86
SLIDE 86

Traceability: a more formal definition

16

Phase 1: getting to pick a corrupt coalition

slide-87
SLIDE 87

Traceability: a more formal definition

16

Phase 1: getting to pick a corrupt coalition

slide-88
SLIDE 88

Traceability: a more formal definition

16

Phase 1: getting to pick a corrupt coalition

C

slide-89
SLIDE 89

Traceability: a more formal definition

16

pk,msk,{ski}←KeyGen(1k,1n) Phase 1: getting to pick a corrupt coalition

C

slide-90
SLIDE 90

Traceability: a more formal definition

16

pk, msk pk,msk,{ski}←KeyGen(1k,1n) Phase 1: getting to pick a corrupt coalition

C

slide-91
SLIDE 91

Traceability: a more formal definition

16

pk, msk {ski} Phase 1: getting to pick a corrupt coalition

C

slide-92
SLIDE 92

Traceability: a more formal definition

16

i,m pk, msk {ski} Phase 1: getting to pick a corrupt coalition

C

slide-93
SLIDE 93

Traceability: a more formal definition

16

i,m Sign(ski,m) pk, msk {ski} Phase 1: getting to pick a corrupt coalition

C

slide-94
SLIDE 94

Traceability: a more formal definition

16

i,m Sign(ski,m) pk, msk {ski} Phase 1: getting to pick a corrupt coalition

C

i

slide-95
SLIDE 95

Traceability: a more formal definition

16

i,m Sign(ski,m) pk, msk {ski} Phase 1: getting to pick a corrupt coalition

C

ski i

slide-96
SLIDE 96

Traceability: a more formal definition

17

pk, msk Phase 2: outputting a forgery

C

slide-97
SLIDE 97

Traceability: a more formal definition

17

i,m pk, msk Phase 2: outputting a forgery

C

slide-98
SLIDE 98

Traceability: a more formal definition

17

i,m Sign(ski,m) pk, msk Phase 2: outputting a forgery

C

slide-99
SLIDE 99

Traceability: a more formal definition

17

i,m Sign(ski,m) pk, msk Phase 2: outputting a forgery

C

m,σ

slide-100
SLIDE 100

Traceability: a more formal definition

17

i,m Sign(ski,m) pk, msk Phase 2: outputting a forgery

C

m,σ We say that A wins at G if Verify(pk,σ,m) = 1 and: (1) ∃i s.t. Trace(msk,σ,m) = i, (2) i∉C, and (3) A did not query oracle on (i,m)

slide-101
SLIDE 101

Traceability: a more formal definition

17

i,m Sign(ski,m) pk, msk Phase 2: outputting a forgery

C

m,σ We say that A wins at G if Verify(pk,σ,m) = 1 and: (1) ∃i s.t. Trace(msk,σ,m) = i, (2) i∉C, and (3) A did not query oracle on (i,m) Say that scheme is traceable if the probability that A wins at G is very small (i.e., negligible)

slide-102
SLIDE 102

Supporting dynamic groups

18

Back in real-world application: what if someone buys a car?

slide-103
SLIDE 103

Supporting dynamic groups

18

Back in real-world application: what if someone buys a car? So we can also support dynamic groups in which users join over time

  • Replace KeyGen(1k,1n) with Setup(1k) (just outputs msk and pk)
  • Add Join() ↔ Enroll(msk) protocol for group master to hand out keys as

members join

slide-104
SLIDE 104

Supporting dynamic groups

18

Back in real-world application: what if someone buys a car? So we can also support dynamic groups in which users join over time

  • Replace KeyGen(1k,1n) with Setup(1k) (just outputs msk and pk)
  • Add Join() ↔ Enroll(msk) protocol for group master to hand out keys as

members join In practice, this approach could be emulated by a group master who simply runs KeyGen(1k,1N) for some N >> n, stockpiles extra keys for later

slide-105
SLIDE 105

Using group managers instead of masters

19

Now, we have group manager who doesn’t know your secret key So Join() ↔ Enroll(msk) is a secure two-party computation at the end of which the member learns their secret key and nothing else, and the group manager learns nothing (except that the member successfully enrolled)

slide-106
SLIDE 106

Using group managers instead of masters

19

Now, we have group manager who doesn’t know your secret key So Join() ↔ Enroll(msk) is a secure two-party computation at the end of which the member learns their secret key and nothing else, and the group manager learns nothing (except that the member successfully enrolled) Now it makes sense to split tracing capability, Setup(1k) will output msk used for enrollment, pk used as group public key, and tk used as tracing key

slide-107
SLIDE 107

Using group managers instead of masters

19

Now, we have group manager who doesn’t know your secret key So Join() ↔ Enroll(msk) is a secure two-party computation at the end of which the member learns their secret key and nothing else, and the group manager learns nothing (except that the member successfully enrolled) Now it makes sense to split tracing capability, Setup(1k) will output msk used for enrollment, pk used as group public key, and tk used as tracing key We can further talk about notions of non-frameability, in which corrupt coalition might also involve the group manager

slide-108
SLIDE 108

Supporting revocation

20

What if someone publishes my secret key on the internet?

slide-109
SLIDE 109

Supporting revocation

20

What if someone publishes my secret key on the internet? We need a method to revoke member privileges; allow certain members to continue signing on behalf of the group but block others from doing so

slide-110
SLIDE 110

Supporting revocation

20

What if someone publishes my secret key on the internet? We need a method to revoke member privileges; allow certain members to continue signing on behalf of the group but block others from doing so This is often accomplished using a revocation list (RL)

  • In verifier-local revocation, RL is sent to all verifiers, who then perform

some additional checks using Verify(pk,RL,σ,m)

  • We could also have remaining signers update their keys to match some

updated public key using KeyUpdate(pk′,pk,RL,ski) → ski′

slide-111
SLIDE 111

How do we evaluate group signature schemes?

  • Efficiency: want really fast Sign and Verify
  • Size of the signatures: want them to be independent of the group size
  • Security: want highest level of security (CCA-style anonymity, full traceability)
  • Flexibility: group manager? dynamic addition? revocation?
  • Uses reasonable assumptions: random oracles? crazy weird-looking

assumptions?

21

slide-112
SLIDE 112

Comparison of group signature schemes

22

Efficiency Size Security Flexibility Assumptions R.O.? CS’97

CPA-A, PT manager, + DLP + strong RSA

BMW’03

C* CCA-A, FT master TDP

DKNS’04

CPA-A, FT manager, + Strong RSA

BBS’04

CPA-A, FT master, - q-SDH + DLIN

BSZ’05

C* CCA-A, FT master, + TDP

BW’06

lg(N) CPA-A, FT master, +/- CDH + SGH

Groth’06

C* CCA-A, FT manager, + DLIN

BW’07

CPA-A, FT master, +/- CDH + SGH + HSDH

slide-113
SLIDE 113

Comparison of group signature schemes

22

Efficiency Size Security Flexibility Assumptions R.O.? CS’97

CPA-A, PT manager, + DLP + strong RSA

BMW’03

C* CCA-A, FT master TDP

DKNS’04

CPA-A, FT manager, + Strong RSA

BBS’04

CPA-A, FT master, - q-SDH + DLIN

BSZ’05

C* CCA-A, FT master, + TDP

BW’06

lg(N) CPA-A, FT master, +/- CDH + SGH

Groth’06

C* CCA-A, FT manager, + DLIN

BW’07

CPA-A, FT master, +/- CDH + SGH + HSDH

  • Holy grail: Efficient, CCA-A and FT secure, fully dynamic but short signatures,

secure under mild assumptions and without random oracles

!

  • There’s no clear winner here!
slide-114
SLIDE 114

Outline

23

Cryptographic background Group signatures Ring signatures

Intuition and motivation Formal definitions Comparison of existing schemes

Open problems

slide-115
SLIDE 115

Ring signatures: why do we want them?

24

slide-116
SLIDE 116

Ring signatures: why do we want them?

24

  • 1. Bob contacts the Senate staff, requests that a

group be made (for all the senators)

slide-117
SLIDE 117

Ring signatures: why do we want them?

24

  • 1. Bob contacts the Senate staff, requests that a

group be made (for all the senators)

slide-118
SLIDE 118

Ring signatures: why do we want them?

24

  • 1. Bob contacts the Senate staff, requests that a

group be made (for all the senators)

  • 2. Government picks a group master/manager
slide-119
SLIDE 119

Ring signatures: why do we want them?

24

skA

  • 1. Bob contacts the Senate staff, requests that a

group be made (for all the senators)

  • 2. Government picks a group master/manager
slide-120
SLIDE 120

Ring signatures: why do we want them?

24

skA skB

  • 1. Bob contacts the Senate staff, requests that a

group be made (for all the senators)

  • 2. Government picks a group master/manager
slide-121
SLIDE 121

Ring signatures: why do we want them?

24

skA skB skC

  • 1. Bob contacts the Senate staff, requests that a

group be made (for all the senators)

  • 2. Government picks a group master/manager
slide-122
SLIDE 122

Ring signatures: why do we want them?

24

skA skB skD skC

  • 1. Bob contacts the Senate staff, requests that a

group be made (for all the senators)

  • 2. Government picks a group master/manager
slide-123
SLIDE 123

Ring signatures: why do we want them?

24

skA skB skD skC

  • 1. Bob contacts the Senate staff, requests that a

group be made (for all the senators)

  • 2. Government picks a group master/manager
  • 3. Government picks a tracer
slide-124
SLIDE 124

Ring signatures: why do we want them?

24

skA skB skD skC

  • 1. Bob contacts the Senate staff, requests that a

group be made (for all the senators)

  • 2. Government picks a group master/manager
  • 3. Government picks a tracer
  • 4. Boss issues key for Senator #1
slide-125
SLIDE 125

Ring signatures: why do we want them?

24

skA skB skD skC

  • 1. Bob contacts the Senate staff, requests that a

group be made (for all the senators)

  • 2. Government picks a group master/manager
  • 3. Government picks a tracer
  • 4. Boss issues key for Senator #1

What if Bob wants to protect his privacy unconditionally?

slide-126
SLIDE 126

Ring signatures: why do we want them?

25

slide-127
SLIDE 127

Ring signatures: why do we want them?

25

pkA,skA pkB,skB pkC,skC pkD,skD

slide-128
SLIDE 128

Ring signatures: why do we want them?

25

pkA,skA pkB,skB pkC,skC pkD,skD

slide-129
SLIDE 129

Ring signatures: why do we want them?

25

m, σ = Sign(skB,R,m)

pkA,skA pkB,skB pkC,skC pkD,skD

slide-130
SLIDE 130

Ring signatures: why do we want them?

25

m, σ = Sign(skB,R,m)

pkA,skA pkB,skB pkC,skC pkD,skD

R = “US senators” {pkA,pkB,pkC,pkD,...}

slide-131
SLIDE 131

Ring signatures: why do we want them?

25

m, σ = Sign(skB,R,m)

Verify(R,σ,m) = 1... so a senator wrote the message... but I don’t know if the Senate sanctioned

pkA,skA pkB,skB pkC,skC pkD,skD

R = “US senators” {pkA,pkB,pkC,pkD,...}

slide-132
SLIDE 132

Ring signatures: why do we want them?

25

m, σ = Sign(skB,R,m)

Verify(R,σ,m) = 1... so a senator wrote the message... but I don’t know if the Senate sanctioned

pkA,skA pkB,skB pkC,skC pkD,skD

R = “US senators” {pkA,pkB,pkC,pkD,...}

but I don’t know if the Senate sanctioned it.

slide-133
SLIDE 133

Ring signatures: a formal characterization

26

  • A ring signature is a tuple of algorithms (KeyGen,Sign,Verify)
slide-134
SLIDE 134

Ring signatures: a formal characterization

26

  • A ring signature is a tuple of algorithms (KeyGen,Sign,Verify)
  • KeyGen(1k): outputs public key pk and secret key sk
slide-135
SLIDE 135

Ring signatures: a formal characterization

26

  • A ring signature is a tuple of algorithms (KeyGen,Sign,Verify)
  • KeyGen(1k): outputs public key pk and secret key sk
  • Sign(ski,R,m): outputs signature σ on message m
slide-136
SLIDE 136

Ring signatures: a formal characterization

26

  • A ring signature is a tuple of algorithms (KeyGen,Sign,Verify)
  • KeyGen(1k): outputs public key pk and secret key sk
  • Sign(ski,R,m): outputs signature σ on message m
  • Verify(R,σ,m): checks that σ is a valid signature on m formed by some

member of the ring defined by R (and outputs 1 if yes and 0 if no)

slide-137
SLIDE 137

Anonymity against full key exposure:

Ring signature anonymity

27

slide-138
SLIDE 138

Anonymity against full key exposure:

  • Phase 1: KeyGen(1k) is run m times to get {pki,ski}

Ring signature anonymity

27

slide-139
SLIDE 139

Anonymity against full key exposure:

  • Phase 1: KeyGen(1k) is run m times to get {pki,ski}
  • Phase 2: A gets to see S={pki}, access signing oracle Sign(.,.,.) that on

input (i,R,m) will output Sign(ski,R,m) (we could have R⊄S)

Ring signature anonymity

27

slide-140
SLIDE 140

Anonymity against full key exposure:

  • Phase 1: KeyGen(1k) is run m times to get {pki,ski}
  • Phase 2: A gets to see S={pki}, access signing oracle Sign(.,.,.) that on

input (i,R,m) will output Sign(ski,R,m) (we could have R⊄S)

  • Phase 3: A outputs challenge (i0,i1,R,m) (again could have R⊄S) and gets

back Sign(skib,R,m) for some bit b it doesn’t know

Ring signature anonymity

27

slide-141
SLIDE 141

Anonymity against full key exposure:

  • Phase 1: KeyGen(1k) is run m times to get {pki,ski}
  • Phase 2: A gets to see S={pki}, access signing oracle Sign(.,.,.) that on

input (i,R,m) will output Sign(ski,R,m) (we could have R⊄S)

  • Phase 3: A outputs challenge (i0,i1,R,m) (again could have R⊄S) and gets

back Sign(skib,R,m) for some bit b it doesn’t know

  • Phase 4: A now gets to see all {ski}, eventually outputs a guess bit b′

Ring signature anonymity

27

slide-142
SLIDE 142

Ring signature unforgeability

28

We obviously can’t consider traceability, since there is no tracer! So we instead define unforgeability against coalitions and chosen-ring attacks:

slide-143
SLIDE 143

Ring signature unforgeability

28

We obviously can’t consider traceability, since there is no tracer! So we instead define unforgeability against coalitions and chosen-ring attacks:

  • Phase 1: KeyGen(1k) is run m times to get {pki,ski}
slide-144
SLIDE 144

Ring signature unforgeability

28

We obviously can’t consider traceability, since there is no tracer! So we instead define unforgeability against coalitions and chosen-ring attacks:

  • Phase 1: KeyGen(1k) is run m times to get {pki,ski}
  • Phase 2: A gets to see S={pki} and has access to two oracles: one that, on

input (i,R,m) will output Sign(ski,R,m) (we could have R⊄S), and the other that, on input i, will give A ski and consider User i “corrupted”

slide-145
SLIDE 145

Ring signature unforgeability

28

We obviously can’t consider traceability, since there is no tracer! So we instead define unforgeability against coalitions and chosen-ring attacks:

  • Phase 1: KeyGen(1k) is run m times to get {pki,ski}
  • Phase 2: A gets to see S={pki} and has access to two oracles: one that, on

input (i,R,m) will output Sign(ski,R,m) (we could have R⊄S), and the other that, on input i, will give A ski and consider User i “corrupted”

  • Phase 3: A at some point has to output a successful forgery (R*,σ*,m*) (i.e.,

such that Verify(R*,σ*,m*) = 1)

slide-146
SLIDE 146

How do we evaluate ring signature schemes?

  • Efficiency: want really fast Sign and Verify
  • Size of the signatures: want them to be independent of the ring size
  • Security: want highest level of security (full anonymity, full unforgeability)
  • Flexibility: can users pick their own signature schemes?
  • Uses reasonable assumptions: random oracles? crazy weird-looking

assumptions?

29

slide-147
SLIDE 147

Comparison of ring signature schemes

30

Efficiency Size Security Flexibility Assumptions R.O.? RST’01

linear UFA TDP

DKNS’04

C CFA Strong RSA

BKM’06

linear CFA, FU TDP

SW’07

linear CFA, FU CDH + SGH

Boyen’07

linear UFA, PU Poly-SDH

slide-148
SLIDE 148

Comparison of ring signature schemes

30

Efficiency Size Security Flexibility Assumptions R.O.? RST’01

linear UFA TDP

DKNS’04

C CFA Strong RSA

BKM’06

linear CFA, FU TDP

SW’07

linear CFA, FU CDH + SGH

Boyen’07

linear UFA, PU Poly-SDH

  • Holy grail: Efficient, CFA and FU secure, flexible but short signatures, secure

under mild assumptions and without random oracles

!

  • Again, there’s no clear winner!
slide-149
SLIDE 149

Outline

31

Cryptographic background Group signatures Ring signatures Open problems

slide-150
SLIDE 150

Open problems for group signatures

  • We already saw this “holy grail” of a scheme that is efficient, CCA-A and FT

secure, fully dynamic but short signatures, secure under mild assumptions and without random oracles

32

slide-151
SLIDE 151

Open problems for group signatures

  • We already saw this “holy grail” of a scheme that is efficient, CCA-A and FT

secure, fully dynamic but short signatures, secure under mild assumptions and without random oracles

  • Also would be nice to see more applications in the real world (just DAA and

VSC for now)

32

slide-152
SLIDE 152

Open problems for group signatures

  • We already saw this “holy grail” of a scheme that is efficient, CCA-A and FT

secure, fully dynamic but short signatures, secure under mild assumptions and without random oracles

  • Also would be nice to see more applications in the real world (just DAA and

VSC for now)

  • Generic construction for a fully dynamic scheme (i.e., one that supports

revocation)

32

slide-153
SLIDE 153

Open problems for group signatures

  • We already saw this “holy grail” of a scheme that is efficient, CCA-A and FT

secure, fully dynamic but short signatures, secure under mild assumptions and without random oracles

  • Also would be nice to see more applications in the real world (just DAA and

VSC for now)

  • Generic construction for a fully dynamic scheme (i.e., one that supports

revocation)

  • Better definitions and formalizations for revocation

32

slide-154
SLIDE 154

Open problems for ring signatures

  • Find a real-world application!!

33

slide-155
SLIDE 155

Open problems for ring signatures

  • Find a real-world application!!
  • Again, achieve holy grail of scheme that is efficient, CFA and FU secure,

flexible but short signatures, secure under mild assumptions and without random oracles

33

slide-156
SLIDE 156

Open problems for ring signatures

  • Find a real-world application!!
  • Again, achieve holy grail of scheme that is efficient, CFA and FU secure,

flexible but short signatures, secure under mild assumptions and without random oracles

  • Figure out way to overcome this linear-sized signature barrier (ideally without

random oracles)

33

slide-157
SLIDE 157

Open problems for ring signatures

  • Find a real-world application!!
  • Again, achieve holy grail of scheme that is efficient, CFA and FU secure,

flexible but short signatures, secure under mild assumptions and without random oracles

  • Figure out way to overcome this linear-sized signature barrier (ideally without

random oracles)

  • Can we even achieve flexibility using a non-generic construction?

33

slide-158
SLIDE 158

Open problems for ring signatures

  • Find a real-world application!!
  • Again, achieve holy grail of scheme that is efficient, CFA and FU secure,

flexible but short signatures, secure under mild assumptions and without random oracles

  • Figure out way to overcome this linear-sized signature barrier (ideally without

random oracles)

  • Can we even achieve flexibility using a non-generic construction?

33

Any questions?