Signatures Lecture 22 Signatures Signatures Signatures with - - PowerPoint PPT Presentation

signatures
SMART_READER_LITE
LIVE PREVIEW

Signatures Lecture 22 Signatures Signatures Signatures with - - PowerPoint PPT Presentation

Signatures Lecture 22 Signatures Signatures Signatures with various functionality/properties Signatures Signatures with various functionality/properties Constructions come in different flavors (well sample each flavor): Signatures


slide-1
SLIDE 1

Signatures

Lecture 22

slide-2
SLIDE 2

Signatures

slide-3
SLIDE 3

Signatures

Signatures with various functionality/properties

slide-4
SLIDE 4

Signatures

Signatures with various functionality/properties Constructions come in different flavors (we’ll sample each flavor):

slide-5
SLIDE 5

Signatures

Signatures with various functionality/properties Constructions come in different flavors (we’ll sample each flavor): Simple and efficient ones in the Random Oracle Model

slide-6
SLIDE 6

Signatures

Signatures with various functionality/properties Constructions come in different flavors (we’ll sample each flavor): Simple and efficient ones in the Random Oracle Model Relatively efficient ones under specific assumptions (often relatively strong/new assumptions)

slide-7
SLIDE 7

Signatures

Signatures with various functionality/properties Constructions come in different flavors (we’ll sample each flavor): Simple and efficient ones in the Random Oracle Model Relatively efficient ones under specific assumptions (often relatively strong/new assumptions) Using minimal/general assumptions, often simple, but not very efficient (e.g., involving NIZK for general NP statements)

slide-8
SLIDE 8

Signatures

Signatures with various functionality/properties Constructions come in different flavors (we’ll sample each flavor): Simple and efficient ones in the Random Oracle Model Relatively efficient ones under specific assumptions (often relatively strong/new assumptions) Using minimal/general assumptions, often simple, but not very efficient (e.g., involving NIZK for general NP statements) Definitions sometimes have subtleties (not all of them have ideal functionality specifications)

slide-9
SLIDE 9

Multi-Signatures

slide-10
SLIDE 10

Multi-Signatures

Multiple signers signing the same message

slide-11
SLIDE 11

Multi-Signatures

Multiple signers signing the same message Each signer has an (SK,VK) pair

slide-12
SLIDE 12

Multi-Signatures

Multiple signers signing the same message Each signer has an (SK,VK) pair Resulting signature must be “compact”: size independent of the number of signers

slide-13
SLIDE 13

Multi-Signatures

Multiple signers signing the same message Each signer has an (SK,VK) pair Resulting signature must be “compact”: size independent of the number of signers Security requirement: Unforgeability (chosen message security)

slide-14
SLIDE 14

Multi-Signatures

Multiple signers signing the same message Each signer has an (SK,VK) pair Resulting signature must be “compact”: size independent of the number of signers Security requirement: Unforgeability (chosen message security) Adversary can collude with all but one signer

slide-15
SLIDE 15

Schnorr Signature

slide-16
SLIDE 16

Schnorr Signature

A regular (i.e., non-multi) digital signature scheme secure in the Random Oracle model under the discrete log assumption

slide-17
SLIDE 17

Schnorr Signature

A regular (i.e., non-multi) digital signature scheme secure in the Random Oracle model under the discrete log assumption KeyGen: Signing key is x and Verification key is X = gx

slide-18
SLIDE 18

Schnorr Signature

A regular (i.e., non-multi) digital signature scheme secure in the Random Oracle model under the discrete log assumption KeyGen: Signing key is x and Verification key is X = gx Sign(m;x): compute R=gr, h=H(m,R), s = r + hx. Output (h,s)

slide-19
SLIDE 19

Schnorr Signature

A regular (i.e., non-multi) digital signature scheme secure in the Random Oracle model under the discrete log assumption KeyGen: Signing key is x and Verification key is X = gx Sign(m;x): compute R=gr, h=H(m,R), s = r + hx. Output (h,s) Verify(m,(h,s);X): check if h = H(m,gsX-h)

slide-20
SLIDE 20

Schnorr Signature

A regular (i.e., non-multi) digital signature scheme secure in the Random Oracle model under the discrete log assumption KeyGen: Signing key is x and Verification key is X = gx Sign(m;x): compute R=gr, h=H(m,R), s = r + hx. Output (h,s) Verify(m,(h,s);X): check if h = H(m,gsX-h) Alternately Sign(m;x) outputs (R,s). Verify(m,(R,s);X) 
 computes h = H(m,R) and checks if gs = RXh

slide-21
SLIDE 21

Schnorr Signature

A regular (i.e., non-multi) digital signature scheme secure in the Random Oracle model under the discrete log assumption KeyGen: Signing key is x and Verification key is X = gx Sign(m;x): compute R=gr, h=H(m,R), s = r + hx. Output (h,s) Verify(m,(h,s);X): check if h = H(m,gsX-h) Alternately Sign(m;x) outputs (R,s). Verify(m,(R,s);X) 
 computes h = H(m,R) and checks if gs = RXh Security: Mimics a (concurrent) ZK PoK of x

(m,R) → ← h s →

slide-22
SLIDE 22

Schnorr Signature

A regular (i.e., non-multi) digital signature scheme secure in the Random Oracle model under the discrete log assumption KeyGen: Signing key is x and Verification key is X = gx Sign(m;x): compute R=gr, h=H(m,R), s = r + hx. Output (h,s) Verify(m,(h,s);X): check if h = H(m,gsX-h) Alternately Sign(m;x) outputs (R,s). Verify(m,(R,s);X) 
 computes h = H(m,R) and checks if gs = RXh Security: Mimics a (concurrent) ZK PoK of x A forger can be used to get distinct signatures (h1,s1), (h2,s2) with same (m,R) (different h, by programming the RO), and that lets us solve for x

(m,R) → ← h s →

slide-23
SLIDE 23

Schnorr Signature

A regular (i.e., non-multi) digital signature scheme secure in the Random Oracle model under the discrete log assumption KeyGen: Signing key is x and Verification key is X = gx Sign(m;x): compute R=gr, h=H(m,R), s = r + hx. Output (h,s) Verify(m,(h,s);X): check if h = H(m,gsX-h) Alternately Sign(m;x) outputs (R,s). Verify(m,(R,s);X) 
 computes h = H(m,R) and checks if gs = RXh Security: Mimics a (concurrent) ZK PoK of x A forger can be used to get distinct signatures (h1,s1), (h2,s2) with same (m,R) (different h, by programming the RO), and that lets us solve for x Extended to a multi-signature scheme [BN’06] →

(m,R) → ← h s →

slide-24
SLIDE 24

A Multi-Signature Scheme

slide-25
SLIDE 25

A Multi-Signature Scheme

Schnorr: Sign(m;x) = (R,s) where R=gr, s = r + hx for h=H(m,R). Verify(m,(R,s);X) checks if gs = RXh for h = H(m,R)

slide-26
SLIDE 26

A Multi-Signature Scheme

Schnorr: Sign(m;x) = (R,s) where R=gr, s = r + hx for h=H(m,R). Verify(m,(R,s);X) checks if gs = RXh for h = H(m,R) For multiple signers with keys X1,...,Xn can create an “aggregated” signature (R,s) such that gs = R.X1h1...Xnhn, where:

slide-27
SLIDE 27

A Multi-Signature Scheme

Schnorr: Sign(m;x) = (R,s) where R=gr, s = r + hx for h=H(m,R). Verify(m,(R,s);X) checks if gs = RXh for h = H(m,R) For multiple signers with keys X1,...,Xn can create an “aggregated” signature (R,s) such that gs = R.X1h1...Xnhn, where: Pick R: each party picks ri and publishes gri. Set R = gr1+...+rn

slide-28
SLIDE 28

A Multi-Signature Scheme

Schnorr: Sign(m;x) = (R,s) where R=gr, s = r + hx for h=H(m,R). Verify(m,(R,s);X) checks if gs = RXh for h = H(m,R) For multiple signers with keys X1,...,Xn can create an “aggregated” signature (R,s) such that gs = R.X1h1...Xnhn, where: Pick R: each party picks ri and publishes gri. Set R = gr1+...+rn Ensure simultaneous announcement of gri. (Commit & reveal.)

slide-29
SLIDE 29

A Multi-Signature Scheme

Schnorr: Sign(m;x) = (R,s) where R=gr, s = r + hx for h=H(m,R). Verify(m,(R,s);X) checks if gs = RXh for h = H(m,R) For multiple signers with keys X1,...,Xn can create an “aggregated” signature (R,s) such that gs = R.X1h1...Xnhn, where: Pick R: each party picks ri and publishes gri. Set R = gr1+...+rn Ensure simultaneous announcement of gri. (Commit & reveal.) hi = H(m,R,Xi,L), where L = <X1,…,Xn>

slide-30
SLIDE 30

A Multi-Signature Scheme

Schnorr: Sign(m;x) = (R,s) where R=gr, s = r + hx for h=H(m,R). Verify(m,(R,s);X) checks if gs = RXh for h = H(m,R) For multiple signers with keys X1,...,Xn can create an “aggregated” signature (R,s) such that gs = R.X1h1...Xnhn, where: Pick R: each party picks ri and publishes gri. Set R = gr1+...+rn Ensure simultaneous announcement of gri. (Commit & reveal.) hi = H(m,R,Xi,L), where L = <X1,…,Xn> Then, sequentially si = si-1 + ri + hixi (starting with s0 = 0)

slide-31
SLIDE 31

A Multi-Signature Scheme

Schnorr: Sign(m;x) = (R,s) where R=gr, s = r + hx for h=H(m,R). Verify(m,(R,s);X) checks if gs = RXh for h = H(m,R) For multiple signers with keys X1,...,Xn can create an “aggregated” signature (R,s) such that gs = R.X1h1...Xnhn, where: Pick R: each party picks ri and publishes gri. Set R = gr1+...+rn Ensure simultaneous announcement of gri. (Commit & reveal.) hi = H(m,R,Xi,L), where L = <X1,…,Xn> Then, sequentially si = si-1 + ri + hixi (starting with s0 = 0) So that final signature sn = r + h1x1 + ... + hnxn where R= gr

slide-32
SLIDE 32

Aggregate Signatures

slide-33
SLIDE 33

Aggregate Signatures

Generalization of multi-signatures where multiple signers may have different messages

slide-34
SLIDE 34

Aggregate Signatures

Generalization of multi-signatures where multiple signers may have different messages Sequential aggregation: each signer gets the aggregated signature so far and adds her signature into it

slide-35
SLIDE 35

Aggregate Signatures

Generalization of multi-signatures where multiple signers may have different messages Sequential aggregation: each signer gets the aggregated signature so far and adds her signature into it General aggregation: signatures can be created independently and then aggregated in arbitrary order

slide-36
SLIDE 36

Waters Signature

slide-37
SLIDE 37

Waters Signature

A regular (non-aggregate) signature scheme that is secure if the Computational Diffie-Hellman assumption holds in a group with bilinear pairings (no RO)

slide-38
SLIDE 38

Waters Signature

A regular (non-aggregate) signature scheme that is secure if the Computational Diffie-Hellman assumption holds in a group with bilinear pairings (no RO) Keys: Signing key is x and verification key is X := e(g,g)x, and generators u0,u1,....,uk (for k bit long messages)

slide-39
SLIDE 39

Waters Signature

A regular (non-aggregate) signature scheme that is secure if the Computational Diffie-Hellman assumption holds in a group with bilinear pairings (no RO) Keys: Signing key is x and verification key is X := e(g,g)x, and generators u0,u1,....,uk (for k bit long messages) Sign(m;x) = (R,S) where R=gr and S = gx Hr, where 
 H = π(m) = u0.u1m1...ukmk

slide-40
SLIDE 40

Waters Signature

A regular (non-aggregate) signature scheme that is secure if the Computational Diffie-Hellman assumption holds in a group with bilinear pairings (no RO) Keys: Signing key is x and verification key is X := e(g,g)x, and generators u0,u1,....,uk (for k bit long messages) Sign(m;x) = (R,S) where R=gr and S = gx Hr, where 
 H = π(m) = u0.u1m1...ukmk Verify(m,(R,S);X,u,u1,....,uk): check e(S,g) = e(R,H).X

slide-41
SLIDE 41

Waters Signature

A regular (non-aggregate) signature scheme that is secure if the Computational Diffie-Hellman assumption holds in a group with bilinear pairings (no RO) Keys: Signing key is x and verification key is X := e(g,g)x, and generators u0,u1,....,uk (for k bit long messages) Sign(m;x) = (R,S) where R=gr and S = gx Hr, where 
 H = π(m) = u0.u1m1...ukmk Verify(m,(R,S);X,u,u1,....,uk): check e(S,g) = e(R,H).X Extended to a sequential aggregate scheme [LOSSW’06] →

slide-42
SLIDE 42

A Sequential Aggregate Signature Scheme

slide-43
SLIDE 43

A Sequential Aggregate Signature Scheme

Keys: For user i verification key is Xi := e(g,g)xi, and ui0,ui1,....,uik. Signing key is xi and yi0,yi1,..,yik where uij = gyij

slide-44
SLIDE 44

A Sequential Aggregate Signature Scheme

Keys: For user i verification key is Xi := e(g,g)xi, and ui0,ui1,....,uik. Signing key is xi and yi0,yi1,..,yik where uij = gyij Signature = (R,S), where R=gr1+..+rn, S = gx1+..+xn (H1 ... Hn)r1+..+rn where Hi = ui0.(ui1)m1...(uik)mk

slide-45
SLIDE 45

A Sequential Aggregate Signature Scheme

Keys: For user i verification key is Xi := e(g,g)xi, and ui0,ui1,....,uik. Signing key is xi and yi0,yi1,..,yik where uij = gyij Signature = (R,S), where R=gr1+..+rn, S = gx1+..+xn (H1 ... Hn)r1+..+rn where Hi = ui0.(ui1)m1...(uik)mk Verification of signature (R,S) for messages (m1,...,mn): check if e(S,g) = e(R,H1)X1 ... e(R,Hn)Xn

slide-46
SLIDE 46

A Sequential Aggregate Signature Scheme

Keys: For user i verification key is Xi := e(g,g)xi, and ui0,ui1,....,uik. Signing key is xi and yi0,yi1,..,yik where uij = gyij Signature = (R,S), where R=gr1+..+rn, S = gx1+..+xn (H1 ... Hn)r1+..+rn where Hi = ui0.(ui1)m1...(uik)mk Verification of signature (R,S) for messages (m1,...,mn): check if e(S,g) = e(R,H1)X1 ... e(R,Hn)Xn Signing done sequentially by individual signers. Initially set R=1 and S = 1 (identity in the group). Then:

slide-47
SLIDE 47

A Sequential Aggregate Signature Scheme

Keys: For user i verification key is Xi := e(g,g)xi, and ui0,ui1,....,uik. Signing key is xi and yi0,yi1,..,yik where uij = gyij Signature = (R,S), where R=gr1+..+rn, S = gx1+..+xn (H1 ... Hn)r1+..+rn where Hi = ui0.(ui1)m1...(uik)mk Verification of signature (R,S) for messages (m1,...,mn): check if e(S,g) = e(R,H1)X1 ... e(R,Hn)Xn Signing done sequentially by individual signers. Initially set R=1 and S = 1 (identity in the group). Then: AddSign(mi,(R’,S’); xi, yi0,yi1,..,yik) = ReRand(R’’,S’’), where R’’=R’ and S’’ = S’.gxi.(R’)hi where hi s.t. ghi = Hi

slide-48
SLIDE 48

A Sequential Aggregate Signature Scheme

Keys: For user i verification key is Xi := e(g,g)xi, and ui0,ui1,....,uik. Signing key is xi and yi0,yi1,..,yik where uij = gyij Signature = (R,S), where R=gr1+..+rn, S = gx1+..+xn (H1 ... Hn)r1+..+rn where Hi = ui0.(ui1)m1...(uik)mk Verification of signature (R,S) for messages (m1,...,mn): check if e(S,g) = e(R,H1)X1 ... e(R,Hn)Xn Signing done sequentially by individual signers. Initially set R=1 and S = 1 (identity in the group). Then: AddSign(mi,(R’,S’); xi, yi0,yi1,..,yik) = ReRand(R’’,S’’), where R’’=R’ and S’’ = S’.gxi.(R’)hi where hi s.t. ghi = Hi

ReRand(R’’,S’’) = (R,S), where R = R’’gt and S = S’’ (H1..Hi)t

slide-49
SLIDE 49

Batch Verification

slide-50
SLIDE 50

Batch Verification

To speed up verification of a collection of signatures

slide-51
SLIDE 51

Batch Verification

To speed up verification of a collection of signatures Batching done by the verifier

slide-52
SLIDE 52

Batch Verification

To speed up verification of a collection of signatures Batching done by the verifier Incomparable to aggregate signatures

slide-53
SLIDE 53

Batch Verification

To speed up verification of a collection of signatures Batching done by the verifier Incomparable to aggregate signatures Batch verifiable signature scheme reduces verification time, but does not reduce the total size of signatures that verifier gets. No co-ordination among signers.

slide-54
SLIDE 54

Batch Verification

To speed up verification of a collection of signatures Batching done by the verifier Incomparable to aggregate signatures Batch verifiable signature scheme reduces verification time, but does not reduce the total size of signatures that verifier gets. No co-ordination among signers. Aggregate signatures saves on bandwidth and verification time, but needs coordination among signers and does not allow un-aggregating the signatures

slide-55
SLIDE 55

Batch Verification

slide-56
SLIDE 56

Batch Verification

Idea: to verify several equations of the form Zi = gzi, pick random weights wi and check Πi Ziwi = gΣ zi.wi

slide-57
SLIDE 57

Batch Verification

Idea: to verify several equations of the form Zi = gzi, pick random weights wi and check Πi Ziwi = gΣ zi.wi If one (or more) equation is wrong, probability of verifying is at most 1/ q, where q is the size of the domain of wi

slide-58
SLIDE 58

Batch Verification

Idea: to verify several equations of the form Zi = gzi, pick random weights wi and check Πi Ziwi = gΣ zi.wi If one (or more) equation is wrong, probability of verifying is at most 1/ q, where q is the size of the domain of wi Efficiency by using a small domain for wi. e.g., use wi ∈ {0,1}, and repeat k times (independent of number of signatures)

slide-59
SLIDE 59

Batch Verification

Idea: to verify several equations of the form Zi = gzi, pick random weights wi and check Πi Ziwi = gΣ zi.wi If one (or more) equation is wrong, probability of verifying is at most 1/ q, where q is the size of the domain of wi Efficiency by using a small domain for wi. e.g., use wi ∈ {0,1}, and repeat k times (independent of number of signatures) Similarly for pairing equations, but with further optimizations

slide-60
SLIDE 60

Batch Verification

Idea: to verify several equations of the form Zi = gzi, pick random weights wi and check Πi Ziwi = gΣ zi.wi If one (or more) equation is wrong, probability of verifying is at most 1/ q, where q is the size of the domain of wi Efficiency by using a small domain for wi. e.g., use wi ∈ {0,1}, and repeat k times (independent of number of signatures) Similarly for pairing equations, but with further optimizations e.g. Waters’ signature: e(S,g)=e(R,H).X (g same for all signers)

slide-61
SLIDE 61

Batch Verification

Idea: to verify several equations of the form Zi = gzi, pick random weights wi and check Πi Ziwi = gΣ zi.wi If one (or more) equation is wrong, probability of verifying is at most 1/ q, where q is the size of the domain of wi Efficiency by using a small domain for wi. e.g., use wi ∈ {0,1}, and repeat k times (independent of number of signatures) Similarly for pairing equations, but with further optimizations e.g. Waters’ signature: e(S,g)=e(R,H).X (g same for all signers) Can save on number of pairing operations using
 Πi e(Si,g)wi = Πi e(Siwi,g) = e(Πi Siwi,g)

slide-62
SLIDE 62

Group Signatures

slide-63
SLIDE 63

Group Signatures

To sign a message “anonymously” [CvH’91]

slide-64
SLIDE 64

Group Signatures

To sign a message “anonymously” [CvH’91] Signature shows that message was signed by some member of a group

slide-65
SLIDE 65

Group Signatures

To sign a message “anonymously” [CvH’91] Signature shows that message was signed by some member of a group But a group manager can “trace” the signer

slide-66
SLIDE 66

Group Signatures

To sign a message “anonymously” [CvH’91] Signature shows that message was signed by some member of a group But a group manager can “trace” the signer However, the group manager or other group members “cannot frame” a member

slide-67
SLIDE 67

Group Signatures

slide-68
SLIDE 68

Group Signatures

Full-Anonymity: Adversary gives (m,ID0,ID1) and gets back Sign(m;IDb) for a random bit b. Advantage of the adversary in finding b should be negligible.

slide-69
SLIDE 69

Group Signatures

Full-Anonymity: Adversary gives (m,ID0,ID1) and gets back Sign(m;IDb) for a random bit b. Advantage of the adversary in finding b should be negligible. Adversary knows secret keys of all group-members, and has

  • racle access to the “tracing algorithm” (but not allowed to

query it on the challenge)

slide-70
SLIDE 70

Group Signatures

Full-Anonymity: Adversary gives (m,ID0,ID1) and gets back Sign(m;IDb) for a random bit b. Advantage of the adversary in finding b should be negligible. Adversary knows secret keys of all group-members, and has

  • racle access to the “tracing algorithm” (but not allowed to

query it on the challenge) Implies unlinkability (can’ t link signatures from same user)

slide-71
SLIDE 71

Group Signatures

Full-Anonymity: Adversary gives (m,ID0,ID1) and gets back Sign(m;IDb) for a random bit b. Advantage of the adversary in finding b should be negligible. Adversary knows secret keys of all group-members, and has

  • racle access to the “tracing algorithm” (but not allowed to

query it on the challenge) Implies unlinkability (can’ t link signatures from same user) Full-Traceability: If a set of group members collude and create a valid signature, the tracing algorithm will trace at least one member of the set. This holds even if the group manager is passively corrupt.

slide-72
SLIDE 72

Group Signatures

Full-Anonymity: Adversary gives (m,ID0,ID1) and gets back Sign(m;IDb) for a random bit b. Advantage of the adversary in finding b should be negligible. Adversary knows secret keys of all group-members, and has

  • racle access to the “tracing algorithm” (but not allowed to

query it on the challenge) Implies unlinkability (can’ t link signatures from same user) Full-Traceability: If a set of group members collude and create a valid signature, the tracing algorithm will trace at least one member of the set. This holds even if the group manager is passively corrupt. Implies unforgeability (i.e., with no group members colluding with it, adversary cannot produce a valid signature) and framing-resistance (even colluding with the group manager)

slide-73
SLIDE 73

Group Signatures

slide-74
SLIDE 74

Group Signatures

A general construction: using a digital signature scheme, a CCA secure encryption scheme, and a “simulation-sound” NIZK [BMW’03]

slide-75
SLIDE 75

Group Signatures

A general construction: using a digital signature scheme, a CCA secure encryption scheme, and a “simulation-sound” NIZK [BMW’03] Each member’ s signing key SK*i = (SKi,VKi,IDi,σ) where (SKi,VKi) are signing/verification keys, PKi is an encryption key and σ is a signature (w.r.t. VKgroup) in from the group-manager on (VKi,IDi)

slide-76
SLIDE 76

Group Signatures

A general construction: using a digital signature scheme, a CCA secure encryption scheme, and a “simulation-sound” NIZK [BMW’03] Each member’ s signing key SK*i = (SKi,VKi,IDi,σ) where (SKi,VKi) are signing/verification keys, PKi is an encryption key and σ is a signature (w.r.t. VKgroup) in from the group-manager on (VKi,IDi) Group signature’ s verification key = (VKgroup, PKgroup, CRSgroup)

slide-77
SLIDE 77

Group Signatures

A general construction: using a digital signature scheme, a CCA secure encryption scheme, and a “simulation-sound” NIZK [BMW’03] Each member’ s signing key SK*i = (SKi,VKi,IDi,σ) where (SKi,VKi) are signing/verification keys, PKi is an encryption key and σ is a signature (w.r.t. VKgroup) in from the group-manager on (VKi,IDi) Group signature’ s verification key = (VKgroup, PKgroup, CRSgroup) Signature is (C,π), where:

slide-78
SLIDE 78

Group Signatures

A general construction: using a digital signature scheme, a CCA secure encryption scheme, and a “simulation-sound” NIZK [BMW’03] Each member’ s signing key SK*i = (SKi,VKi,IDi,σ) where (SKi,VKi) are signing/verification keys, PKi is an encryption key and σ is a signature (w.r.t. VKgroup) in from the group-manager on (VKi,IDi) Group signature’ s verification key = (VKgroup, PKgroup, CRSgroup) Signature is (C,π), where: s = Sign(message; SKi)

slide-79
SLIDE 79

Group Signatures

A general construction: using a digital signature scheme, a CCA secure encryption scheme, and a “simulation-sound” NIZK [BMW’03] Each member’ s signing key SK*i = (SKi,VKi,IDi,σ) where (SKi,VKi) are signing/verification keys, PKi is an encryption key and σ is a signature (w.r.t. VKgroup) in from the group-manager on (VKi,IDi) Group signature’ s verification key = (VKgroup, PKgroup, CRSgroup) Signature is (C,π), where: s = Sign(message; SKi) C = EncryptPKgroup(s,SK*i)

slide-80
SLIDE 80

Group Signatures

A general construction: using a digital signature scheme, a CCA secure encryption scheme, and a “simulation-sound” NIZK [BMW’03] Each member’ s signing key SK*i = (SKi,VKi,IDi,σ) where (SKi,VKi) are signing/verification keys, PKi is an encryption key and σ is a signature (w.r.t. VKgroup) in from the group-manager on (VKi,IDi) Group signature’ s verification key = (VKgroup, PKgroup, CRSgroup) Signature is (C,π), where: s = Sign(message; SKi) C = EncryptPKgroup(s,SK*i) π = a proof (w.r.t CRSgroup) that C is correct

slide-81
SLIDE 81

Group Signatures

A general construction: using a digital signature scheme, a CCA secure encryption scheme, and a “simulation-sound” NIZK [BMW’03] Each member’ s signing key SK*i = (SKi,VKi,IDi,σ) where (SKi,VKi) are signing/verification keys, PKi is an encryption key and σ is a signature (w.r.t. VKgroup) in from the group-manager on (VKi,IDi) Group signature’ s verification key = (VKgroup, PKgroup, CRSgroup) Signature is (C,π), where: s = Sign(message; SKi) C = EncryptPKgroup(s,SK*i) π = a proof (w.r.t CRSgroup) that C is correct Tracing algorithm decrypts C to find SK*i and hence IDi

slide-82
SLIDE 82

Ring Signatures

slide-83
SLIDE 83

Ring Signatures

For “leaking secrets”

slide-84
SLIDE 84

Ring Signatures

For “leaking secrets” Similar to group signatures, but with unwitting collaborators

slide-85
SLIDE 85

Ring Signatures

For “leaking secrets” Similar to group signatures, but with unwitting collaborators i.e. the “ring” is not a priori fixed

slide-86
SLIDE 86

Ring Signatures

For “leaking secrets” Similar to group signatures, but with unwitting collaborators i.e. the “ring” is not a priori fixed And no manager who can trace the signer

slide-87
SLIDE 87

Ring Signatures

slide-88
SLIDE 88

Ring Signatures

Recall T-OWP/RO based signature

slide-89
SLIDE 89

Ring Signatures

Recall T-OWP/RO based signature (SK,VK) = (F-1,F)

slide-90
SLIDE 90

Ring Signatures

Recall T-OWP/RO based signature (SK,VK) = (F-1,F) Sign(m;F-1) = F-1(H(m))

slide-91
SLIDE 91

Ring Signatures

Recall T-OWP/RO based signature (SK,VK) = (F-1,F) Sign(m;F-1) = F-1(H(m)) Verify(S;F): check if H(m) = F(S)

slide-92
SLIDE 92

Ring Signatures

Recall T-OWP/RO based signature (SK,VK) = (F-1,F) Sign(m;F-1) = F-1(H(m)) Verify(S;F): check if H(m) = F(S) Extended to a ring signature [RST’01]

slide-93
SLIDE 93

Ring Signatures

Recall T-OWP/RO based signature (SK,VK) = (F-1,F) Sign(m;F-1) = F-1(H(m)) Verify(S;F): check if H(m) = F(S) Extended to a ring signature [RST’01] Verify(m, (S1,...,Sn); (F1,...,Fn)) : check H(m) = F1(S1) + ... + Fn(Sn)

slide-94
SLIDE 94

Ring Signatures

Recall T-OWP/RO based signature (SK,VK) = (F-1,F) Sign(m;F-1) = F-1(H(m)) Verify(S;F): check if H(m) = F(S) Extended to a ring signature [RST’01] Verify(m, (S1,...,Sn); (F1,...,Fn)) : check H(m) = F1(S1) + ... + Fn(Sn) Sign (m; F1-1,F2,...,Fn) = (S1,...,Sn) where S2,...,Sn are random and S1 = F1-1 ( H(m) - F2(S2) - ... - Fn(Sn) )

slide-95
SLIDE 95

Ring Signatures

Recall T-OWP/RO based signature (SK,VK) = (F-1,F) Sign(m;F-1) = F-1(H(m)) Verify(S;F): check if H(m) = F(S) Extended to a ring signature [RST’01] Verify(m, (S1,...,Sn); (F1,...,Fn)) : check H(m) = F1(S1) + ... + Fn(Sn) Sign (m; F1-1,F2,...,Fn) = (S1,...,Sn) where S2,...,Sn are random and S1 = F1-1 ( H(m) - F2(S2) - ... - Fn(Sn) ) Unwitting collaborators: Fi’ s could be the verification keys for a standard signature scheme

slide-96
SLIDE 96

Mesh Signatures

slide-97
SLIDE 97

Mesh Signatures

Ring signature allows statements of the form
 (P1 signed m) or (P2 signed m) or .... or (Pn signed m)

slide-98
SLIDE 98

Mesh Signatures

Ring signature allows statements of the form
 (P1 signed m) or (P2 signed m) or .... or (Pn signed m) Mesh signatures extend this to more complex statements

slide-99
SLIDE 99

Mesh Signatures

Ring signature allows statements of the form
 (P1 signed m) or (P2 signed m) or .... or (Pn signed m) Mesh signatures extend this to more complex statements e.g., (P1 signed m1) or ( (P2 signed m2) and (P3 signed m3) )

slide-100
SLIDE 100

Mesh Signatures

Ring signature allows statements of the form
 (P1 signed m) or (P2 signed m) or .... or (Pn signed m) Mesh signatures extend this to more complex statements e.g., (P1 signed m1) or ( (P2 signed m2) and (P3 signed m3) ) e.g., some two out of the three statements (P1 signed m1), (P2 signed m2), (P3 signed m3) hold

slide-101
SLIDE 101

Mesh Signatures

Ring signature allows statements of the form
 (P1 signed m) or (P2 signed m) or .... or (Pn signed m) Mesh signatures extend this to more complex statements e.g., (P1 signed m1) or ( (P2 signed m2) and (P3 signed m3) ) e.g., some two out of the three statements (P1 signed m1), (P2 signed m2), (P3 signed m3) hold Signature is produced by the relevant parties collaborating

slide-102
SLIDE 102

Mesh Signatures

Ring signature allows statements of the form
 (P1 signed m) or (P2 signed m) or .... or (Pn signed m) Mesh signatures extend this to more complex statements e.g., (P1 signed m1) or ( (P2 signed m2) and (P3 signed m3) ) e.g., some two out of the three statements (P1 signed m1), (P2 signed m2), (P3 signed m3) hold Signature is produced by the relevant parties collaborating Security requirements: Unforgeability and Hiding

slide-103
SLIDE 103

Attribute-Based Signatures

slide-104
SLIDE 104

Attribute-Based Signatures

“Claim-and-endorse”: Claim to have attributes satisfying a certain policy, and sign a message

slide-105
SLIDE 105

Attribute-Based Signatures

“Claim-and-endorse”: Claim to have attributes satisfying a certain policy, and sign a message Soundness: can’ t forge, even by colluding

slide-106
SLIDE 106

Attribute-Based Signatures

“Claim-and-endorse”: Claim to have attributes satisfying a certain policy, and sign a message Soundness: can’ t forge, even by colluding Hiding: Verification without learning how the policy was satisfied

slide-107
SLIDE 107

Attribute-Based Signatures

“Claim-and-endorse”: Claim to have attributes satisfying a certain policy, and sign a message Soundness: can’ t forge, even by colluding Hiding: Verification without learning how the policy was satisfied Also unlinkable: cannot link multiple signatures as originating from the same signer

slide-108
SLIDE 108

Attribute-Based Signatures

“Claim-and-endorse”: Claim to have attributes satisfying a certain policy, and sign a message Soundness: can’ t forge, even by colluding Hiding: Verification without learning how the policy was satisfied Also unlinkable: cannot link multiple signatures as originating from the same signer c.f. Mesh signatures: here, instead of multiple parties signing a message, a single party with multiple attributes

slide-109
SLIDE 109

Undeniable Signatures

slide-110
SLIDE 110

Undeniable Signatures

Suppose Signer wants to control when/how often the signature can be verified, but signature is a commitment to a message

slide-111
SLIDE 111

Undeniable Signatures

Suppose Signer wants to control when/how often the signature can be verified, but signature is a commitment to a message Verification is via an interactive protocol

slide-112
SLIDE 112

Undeniable Signatures

Suppose Signer wants to control when/how often the signature can be verified, but signature is a commitment to a message Verification is via an interactive protocol It lets the signer verifiably accept or deny endorsing the message

slide-113
SLIDE 113

Undeniable Signatures

Suppose Signer wants to control when/how often the signature can be verified, but signature is a commitment to a message Verification is via an interactive protocol It lets the signer verifiably accept or deny endorsing the message Signer refusing to deny can be taken as accepting

slide-114
SLIDE 114

Undeniable Signatures

Suppose Signer wants to control when/how often the signature can be verified, but signature is a commitment to a message Verification is via an interactive protocol It lets the signer verifiably accept or deny endorsing the message Signer refusing to deny can be taken as accepting Zero-knowledge verification: A verifier cannot transfer a signature that it verified

slide-115
SLIDE 115

Undeniable Signatures

Suppose Signer wants to control when/how often the signature can be verified, but signature is a commitment to a message Verification is via an interactive protocol It lets the signer verifiably accept or deny endorsing the message Signer refusing to deny can be taken as accepting Zero-knowledge verification: A verifier cannot transfer a signature that it verified Note: Still allows multiple (mutually distrusting) verifiers to be convinced if they run a secure MPC protocol to implement a virtual verifier

slide-116
SLIDE 116

Designated Verifier Signatures

slide-117
SLIDE 117

Designated Verifier Signatures

Signature addressed to a single designated verifier

slide-118
SLIDE 118

Designated Verifier Signatures

Signature addressed to a single designated verifier Verifier cannot convince others of the validity of the signature

slide-119
SLIDE 119

Designated Verifier Signatures

Signature addressed to a single designated verifier Verifier cannot convince others of the validity of the signature e.g. a ring signature with a ring of size 2, containing the signer and the designated verifier

slide-120
SLIDE 120

Today

slide-121
SLIDE 121

Today

Signatures

slide-122
SLIDE 122

Today

Signatures Multi-signatures

slide-123
SLIDE 123

Today

Signatures Multi-signatures Aggregate Signatures

slide-124
SLIDE 124

Today

Signatures Multi-signatures Aggregate Signatures Signatures with Batch verification

slide-125
SLIDE 125

Today

Signatures Multi-signatures Aggregate Signatures Signatures with Batch verification Group signatures

slide-126
SLIDE 126

Today

Signatures Multi-signatures Aggregate Signatures Signatures with Batch verification Group signatures Ring and Mesh signatures

slide-127
SLIDE 127

Today

Signatures Multi-signatures Aggregate Signatures Signatures with Batch verification Group signatures Ring and Mesh signatures Attribute-Based signatures

slide-128
SLIDE 128

Today

Signatures Multi-signatures Aggregate Signatures Signatures with Batch verification Group signatures Ring and Mesh signatures Attribute-Based signatures Undeniable signatures

slide-129
SLIDE 129

Today

Signatures Multi-signatures Aggregate Signatures Signatures with Batch verification Group signatures Ring and Mesh signatures Attribute-Based signatures Undeniable signatures Designated verifier signatures

slide-130
SLIDE 130

Today

Signatures Multi-signatures Aggregate Signatures Signatures with Batch verification Group signatures Ring and Mesh signatures Attribute-Based signatures Undeniable signatures Designated verifier signatures Next up: digital cash

slide-131
SLIDE 131

Today

Signatures Multi-signatures Aggregate Signatures Signatures with Batch verification Group signatures Ring and Mesh signatures Attribute-Based signatures Undeniable signatures Designated verifier signatures Next up: digital cash Using Blind signatures and P-signatures