privacy-preserving authentication: a tutorial

97
Privacy-Preserving Authentication: A Tutorial Anna Lysyanskaya Brown University

Upload: moira

Post on 28-Jan-2016

41 views

Category:

Documents


3 download

DESCRIPTION

Privacy-Preserving Authentication: A Tutorial. Anna Lysyanskaya Brown University. What is Authentication?. Today’s news?. projo.com. Who are you? Do you have a subscription?. It’s Bond. James Bond. Here’s my subscription. What is Authentication?. Today’s news?. projo.com. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Privacy-Preserving Authentication: A Tutorial

Privacy-Preserving Authentication: A Tutorial

Anna LysyanskayaBrown University

Page 2: Privacy-Preserving Authentication: A Tutorial

What is Authentication?

projo.comprojo.comToday’s news?

Who are you? Do you have asubscription?

It’s Bond. James Bond. Here’smy subscription.

Page 3: Privacy-Preserving Authentication: A Tutorial

What is Authentication?

projo.comprojo.comToday’s news?

Who are you? Do you have asubscription?

It’s Bond. James Bond. Here’smy subscription.

Identification

Digital signature

Page 4: Privacy-Preserving Authentication: A Tutorial

Signature Schemes

Page 5: Privacy-Preserving Authentication: A Tutorial

PK

Signature Schemes• Setup: I run a setup algorithm to obtain my

public key PK and secret key SK

PK

SK

Page 6: Privacy-Preserving Authentication: A Tutorial

Signature Schemes• Setup: I run a setup algorithm to obtain my

public key PK and secret key SK• Now I can sign (using SK):

– Sign(SK,m) σ (denoted σPK(m) )

• And you can verify it (using PK)– Verify(PK,m,σ) Yes/No

PK

Page 7: Privacy-Preserving Authentication: A Tutorial

Signature Schemes

• Security: no adversary can forge a signature even after seeing sigs on messages of his choice

m1

σPK(m1)

m2

σPK(m2)

...

...

m,σPK(m)

Secure if this is unlikely

PK

Page 8: Privacy-Preserving Authentication: A Tutorial

History of Signature Schemes

• 1970s1970s: invention of PK crypto, DH, RSA, Lamport, Merkle• Definition & first provably secure constructionDefinition & first provably secure construction: GMR84• Random-oracle-based constructionsRandom-oracle-based constructions: Fiat-Shamir, Schnorr,

GQ, Bellare-Rogaway, ...• LatticeLattice-based [GGH97], NTRU• Minimal assumptionsMinimal assumptions: Naor-Yung, Rompel (OWF) • Stateless and provably secure Stateless and provably secure

– under SRSA: Gennaro-Halevi-Rabin’99, Cramer-Shoup’99– under BDH: Boneh-Boyen [Eurocrypt 2004]

• Other flavorsOther flavors: group sigs, blind sigs [Chaum]• This talk: signatures that allow you to prove that you have a

signed document, efficiently, without revealing (too much) about the contents of the document [...,L02,CL04,CL05,...,BL12].

Page 9: Privacy-Preserving Authentication: A Tutorial

Using Signature Schemes

Today’s news?

Let me check that you havea valid subscription. Who are you?

James Bond. My σ.

Certificationauthority (CA)

I am James Bond. Pleasegive me a cert that I have

a ProJo subscription.

σ=σProJo(James Bond)PKProJo

Digitalsignature

Identification

projo.comprojo.com

projo.comprojo.com

Page 10: Privacy-Preserving Authentication: A Tutorial

Using Signature Schemes

Today’s news?

Let me check that you havea valid subscription. Who are you?

PKJB. My σ.

Certificationauthority (CA)

I am James Bond. Pleasegive me a cert that I have

a ProJo subscription.

σ=σProJo(James Bond)PKProJo

Digitalsignature

Identification

projo.comprojo.com

projo.comprojo.com

PKJB

PKJB

Page 11: Privacy-Preserving Authentication: A Tutorial

That’s how authentication with identification is done.

Why do you want to do it without?

How do you do it without?

Page 12: Privacy-Preserving Authentication: A Tutorial

Anonymous Access

projo.comprojo.comToday’s news?

Who are you? Do you have asubscription?

It’s Bond. James Bond.I can tell you, but then I’ll

have to kill you...

Page 13: Privacy-Preserving Authentication: A Tutorial

Anonymous Access

projo.comprojo.comToday’s news?

Show me your subscription.

Subscription #76590

Page 14: Privacy-Preserving Authentication: A Tutorial

Anonymous Access

projo.comprojo.comToday’s news?

Prove that you are authorized.

Here is a zero-knowledge proof

Page 15: Privacy-Preserving Authentication: A Tutorial

Zero-Knowledge Proof [GMR]

Let L be a language.

A zero-knowledge (ZK) proof system for L is a protocol between a prover P (can be computationally unbounded) and a verifier V (poly-time TM) such that:

(Completeness) For an x in L, P convinces V

(Soundness 1-ε) For any x not in L, no malicious P’ can cause V to accept with more than ε probability

(Zero-knowledge - informal) Everything V learns as a result of talking to P, he can learn without talking to P.

Page 16: Privacy-Preserving Authentication: A Tutorial

Example: The Set of 3-ColorableGraphs

1. Each vertex colored red, green or blue

2. No monochromatic edges

Page 17: Privacy-Preserving Authentication: A Tutorial

1. Each vertex colored red, green or blue

2. No monochromatic edges

Example: The Set of 3-ColorableGraphs

Page 18: Privacy-Preserving Authentication: A Tutorial

1. Each vertex colored red, green or blue

2. No monochromatic edges

Example: The Set of 3-ColorableGraphs

Page 19: Privacy-Preserving Authentication: A Tutorial

1. Each vertex colored red, green or blue

2. No monochromatic edges

Example: The Set of 3-ColorableGraphs

Page 20: Privacy-Preserving Authentication: A Tutorial

1. Each vertex colored red, green or blue

2. No monochromatic edges

Example: The Set of 3-ColorableGraphs

Page 21: Privacy-Preserving Authentication: A Tutorial

1. Each vertex colored red, green or blue

2. No monochromatic edges

Example: The Set of 3-ColorableGraphs

Page 22: Privacy-Preserving Authentication: A Tutorial

1. Each vertex colored red, green or blue

2. No monochromatic edges

Example: The Set of 3-ColorableGraphs

Page 23: Privacy-Preserving Authentication: A Tutorial

1. Each vertex colored red, green or blue

2. No monochromatic edges

Example: The Set of 3-ColorableGraphs

Page 24: Privacy-Preserving Authentication: A Tutorial

1. Each vertex colored red, green or blue

2. No monochromatic edges

Example: The Set of 3-ColorableGraphs

Page 25: Privacy-Preserving Authentication: A Tutorial

1. Each vertex colored red, green or blue

2. No monochromatic edges

Example: The Set of 3-ColorableGraphs

Page 26: Privacy-Preserving Authentication: A Tutorial

Is every graph 3-colorable?

Page 27: Privacy-Preserving Authentication: A Tutorial

Is every graph 3-colorable?

Page 28: Privacy-Preserving Authentication: A Tutorial

Is every graph 3-colorable?

Page 29: Privacy-Preserving Authentication: A Tutorial

Is every graph 3-colorable?

No...

Page 30: Privacy-Preserving Authentication: A Tutorial

ZK Proof of 3-Colorability

Page 31: Privacy-Preserving Authentication: A Tutorial

You are justtrying to trick me!This graph is not

3-colorable!

ZK Proof of 3-Colorability

Page 32: Privacy-Preserving Authentication: A Tutorial

You are justtrying to trick me!This graph is not

3-colorable!

ZK Proof of 3-Colorability

Page 33: Privacy-Preserving Authentication: A Tutorial

You are justtrying to trick me!This graph is not

3-colorable!

ZK Proof of 3-Colorability

Page 34: Privacy-Preserving Authentication: A Tutorial

ZK Proof of 3-Colorability

Page 35: Privacy-Preserving Authentication: A Tutorial

ZK Proof of 3-Colorability

Page 36: Privacy-Preserving Authentication: A Tutorial

ZK Proof of 3-Colorability

Page 37: Privacy-Preserving Authentication: A Tutorial

ZK Proof of 3-Colorability

Page 38: Privacy-Preserving Authentication: A Tutorial

If you’re cheating, I have1 in 11 chanceto catch you.

ZK Proof of 3-Colorability

Page 39: Privacy-Preserving Authentication: A Tutorial

I want betterodds!

ZK Proof of 3-Colorability

Page 40: Privacy-Preserving Authentication: A Tutorial

ZK Proof of 3-Colorability

Page 41: Privacy-Preserving Authentication: A Tutorial

ZK Proof of 3-Colorability

Page 42: Privacy-Preserving Authentication: A Tutorial

ZK Proof of 3-Colorability

Page 43: Privacy-Preserving Authentication: A Tutorial

ZK Proof of 3-Colorability

Page 44: Privacy-Preserving Authentication: A Tutorial

ZK Proof of 3-Colorability

Page 45: Privacy-Preserving Authentication: A Tutorial

ZK Proof of 3-Colorability

Page 46: Privacy-Preserving Authentication: A Tutorial

ZK Proof of 3-Colorability

Page 47: Privacy-Preserving Authentication: A Tutorial

If we repeat100 times and you

are lying, I’llsurely catch you!

[GMW86]

ZK Proof of 3-Colorability

Page 48: Privacy-Preserving Authentication: A Tutorial

Zero-Knowledge: A Crash Course

Theorem [GMW87]: every L in NP has azero-knowledge proof system.

Proof. Reduce the language at hand to graph3-colorability (recall that 3-col is NP-complete). Use:

Lemma: 3-colorability has a zero-knowledge proof system.

Page 49: Privacy-Preserving Authentication: A Tutorial

Zero-Knowledge: A Crash Course

Theorem [GMW]: every language in NP has azero-knowledge proof system.

Theorem [FLS]: every language in NP has anon-interactive ZK proof system (NIZK).

ZK POK: a ZK proof of knowledge, ie V acceptsif the prover knows a value that satisfies an NP relation,e.g. a valid 3-coloring of a graph.

Page 50: Privacy-Preserving Authentication: A Tutorial

Accessing a Resource

Online libraryUser

I need access to SIAM J on Computing, 17:2

Prove to me that you havea valid subscription!

Sure! Here’s a zero-knowledgeproof: ...

PKJS

Page 51: Privacy-Preserving Authentication: A Tutorial

Using Credentials Anonymously

Online library

I need access to SIAM J on Computing, 17:2 Prove to me that you have a

valid subscription!Zero-knowledge proof thatI know SK, PK and σ such that:

(1) PK corresponds to SK(2) Verify(PKCA,(PK. High School),σ).

Certificationauthority (CA)

I am PKJS. Pleasegive me a cert that I go to

High School.

σCA=σCA(PKJS, High School)PKCA

PKJS

PKJS

Page 52: Privacy-Preserving Authentication: A Tutorial

Using Credentials Anonymously

Online library

I need access to SIAM J on Computing, 17:2 Prove to me that you have a

valid subscription!Zero-knowledge proof thatI know SK, PK and σ such that:

(1) PK corresponds to SK(2) Verify(PKCA,(PK. High School),σ).

Certificationauthority (CA)

I am PKJS. Pleasegive me a cert that I go to

Moses Brown School.

σCA=σCA(PKJS, Moses Brown)PKCA

PKJS

PKJS

We already know that we can do it!Just reduce the problem at handto graph 3-col, and run a ZKproof!

Would be nice to do that moreefficiently.

Page 53: Privacy-Preserving Authentication: A Tutorial

Certificationauthority (CA)

I am PKJS. Pleasegive me a cert that I go to

Moses Brown School.

σCA=σCA(PKJS, Moses Brown)PKCA

PKJS

Obtaining Credentials Anonymously

Online library

I need access to SIAM J on Computing, 17:2 Prove to me that you have a

valid subscription!Zero-knowledge proof thatI know SK, PK and σ such that:

(1) PK corresponds to SK(2) Verify(PKCA,(PK. High School),σ).

PKJS

You are such a good customer,I want to also give you a credential!

Anonymous credential = signature issued to a hiddenvalue PK/SK: the library never sees the value it is signing

Page 54: Privacy-Preserving Authentication: A Tutorial

Secure 2PC: A Crash Course

Theorem [Yao]: every function f(x,y) can be computedvia a protocol between Alice holding input x, and Bobholding input y such that (informally):

(1)Alice receives output f(x,y) (even if Bob deviatesfrom the protocol, she receives f(x,y) for some well-defined y known to Bob in advance)(2)Even if Alice maliciously deviates, she cannot learnmore than f(x,y) for some well-defined x known to herin advance(3) Even if Bob maliciously deviates, he cannot learnanything about x.

Page 55: Privacy-Preserving Authentication: A Tutorial

Secure 2PC: A Crash Course

2PC

x y

f(x,y)

Alice Bob

Page 56: Privacy-Preserving Authentication: A Tutorial

Certificationauthority (CA)

I am PKJS. Pleasegive me a cert that I go to

Moses Brown School.

σCA=σCA(PKJS, Moses Brown)PKCA

PKJS

Obtaining Credentials Anonymously

Online library

I need access to SIAM J on Computing, 17:2 Prove to me that you have a

valid subscription!Zero-knowledge proof thatI know SK, PK and σ such that:

(1) PK corresponds to SK(2) Verify(PKCA,(PK. High School),σ).

PKJS

You are such a good customer,I want to also give you a credential!

Anonymous credential = signature issued to a hiddenvalue PK/SK: the library never sees the value it is signing

Page 57: Privacy-Preserving Authentication: A Tutorial

Signature Schemes with Efficient Protocols

• WE WANT a signature scheme that is– efficient, provably secure– has an efficient ZK proof of

knowledge of a sig.– has a secure two-party protocol

for signing a hidden value

• WHY: applications for authentication without identification, as well as group signatures, blind signatures, fair exchange of digital signatures, ...

Page 58: Privacy-Preserving Authentication: A Tutorial

Roadmap for This Talk• Building blocks

• Main idea of off-line ecash [CFN89 + CL02]

• Main idea of compact ecash [CHL05]

• Extensions [CHL06,CHKLM06]

• Technical details: how to instantiate generalized ecash [CL02,...BL12]

• Extending to more complicated anonymous credentials

Warning: there might be a pop quiz...

Page 59: Privacy-Preserving Authentication: A Tutorial

Anonymity + Accountability: Use Money!

BANKBANK

AliceMerchant

With

draw $

$$

Spend $$$

Deposit $$$

TWO DOLLARSRivest

TWO DOLLARSRivest

TWO DOLLARSRivest

Page 60: Privacy-Preserving Authentication: A Tutorial

The Money Cycle

BANKBANK

AliceMerchant

With

draw $

$$

Spend $$$

Deposit $$$

• Three protocols: Withdraw, Spend, Deposit• Desirable properties:

- can’t forge/copy money - can’t trace how cash was spent

Page 61: Privacy-Preserving Authentication: A Tutorial

Electronic Version

BANKBANK

AliceMerchant

With

draw $

$$

Spend $$$

Deposit $$$

• Three protocols: Withdraw, Spend, Deposit• Desirable properties:

- can’t forge/copy money - can’t trace how cash was spent?

Page 62: Privacy-Preserving Authentication: A Tutorial

Electronic Version

BANKBANK

AliceMerchant

With

draw $

$$

Spend $$$

Deposit $$$

• Preventing copying/forgery: - money is represented by data, data can be copied - not an issue if do electronic checks - but electronic checks provide no privacy• Online e-cash [Chaum]: - Bank maintains records of past transactions - Withdraw and Spend are unlinkable - during Deposit, test if the coin is unspent

Page 63: Privacy-Preserving Authentication: A Tutorial

Off-Line Ecash [CFN89]

BANKBANK

AliceMerchant

With

draw $

$$

Spend $$$

Deposit $$$

• Algs: Setup, Withdraw, Spend, Deposit, Identify - Setup sets up everyone’s keys (separately) - Identify: if Alice spends more than she withdrew, her identity is discovered once the Merchant deposits the money (Merchant need not do this right away).• Privacy: colluding B&M can’t trace how a coin is spent.

Page 64: Privacy-Preserving Authentication: A Tutorial

History

• Chaum’82: invented blind signatures, makes on-line ecash possible

• [CFN,Brands]: off-line e-cash

Page 65: Privacy-Preserving Authentication: A Tutorial

Main Idea of Off-Line Ecash• Recall: digital signatures, secure 2-party computation, ZK

proofs of knowledge

Page 66: Privacy-Preserving Authentication: A Tutorial

Main Idea of Off-Line Ecash• Recall: digital signatures, secure 2-party computation, ZK proofs of knowledge

• SETUP: Signature key pair for Bank (pk,sk). Assume a PKI for all the users. Large prime Q.

• WITHDRAW:

• SPEND:

BANKBANK2PC sk

Alice’s SK xRandom A,B < Q

=pk(x,A,B)

0 < “new” R < Qe.g. R=H(contract, rand)

A (the coin’s serial number)T =x+RB mod Q (double-spending equation)

NIZKPOK of (x,B,) such that 1. T = x+RB 2. VerifySig(pk,(x,A,B), ) = TRUE

Deposit: submit (A,R,T,proof)to the Bank

PKI, Q, pk

Page 67: Privacy-Preserving Authentication: A Tutorial

Main Idea of Off-Line Ecash• Recall: digital signatures, secure 2-party computation, ZK proofs of knowledge

• SETUP: Signature key pair for Bank (pk,sk). Assume a PKI for all the users. Large prime Q.

• WITHDRAW:

• SPEND:

BANKBANK2PC sk

Alice’s SK xRandom A,B < Q

=pk(x,A,B)

0 < “new” R < Qe.g. R=H(contract, rand)

A (the coin’s serial number)T =x+RB mod Q (double-spending equation)

NIZKPOK of (x,B,) such that 1. T = x+RB 2. VerifySig(pk,(x,A,B), ) = TRUE

Suppose a coin is spent twice.Same coin => same A Spent twice: two R’s, with high prob, R ≠ R’ T = x+RB mod Q, T’ = x+R’Bmod Q solve for x, id and punish Alice

Privacy for Alice:A,T: random,proofs is ZK!

Deposit: submit (A,R,T,proof)to the Bank

Page 68: Privacy-Preserving Authentication: A Tutorial

Compact Ecash

• Algs: Setup, Withdraw, Spend, Deposit, Identify• Withdraw: a wallet with N coins• Spend, deposit: just one coin• Want: complexity of protocols O(log N), not O(N)

BANKBANK

Alice Merchants

With

draw $

$$

Spend $$$

Deposit $$$

Page 69: Privacy-Preserving Authentication: A Tutorial

PKI, Q, pk

Compact Ecash: Main Idea [CHL05]• WITHDRAW $N:

• SPEND $1 for the ith time: Let F( )( ) be a pseudorandom function family

• TBA: how to instantiate using practical building blocks.

BANKBANK2PC sk

Alice’s SK xRandom s,t =pk(x,s,t)

new R < Q

A = Fs(i) (the coin’s serial number)T = x+RFt(i) mod Q (double-spending equation)

NIZKPOK of (i,x,s,t,) such that 1. 1 ≤ i ≤ N 2. A = Fs(i) 3. T = x+RFt(i) 4. VerifySig(pk,(x,s,t), ) = TRUE

Deposit: submit (A,R,T,proof)to the Bank

Suppose spent >N coins => repeating A = Fs(i) for some iA spent twice: two random R’s, with high prob, R ≠ R’ T = x+RFt(i), T’ = x+R’Ft(i) solve for x, id and punish Alice

Privacy for Alice: A and T are pseudorandom,

Proofs are ZK

Page 70: Privacy-Preserving Authentication: A Tutorial

ATTENTION:

POP QUIZ COMING UP!!!!

Page 71: Privacy-Preserving Authentication: A Tutorial

Random s,t =pk(x,s,t)

Generalized Ecash• WITHDRAW:

• SPEND:

BANKBANK2PC sk

Alice’s SK xRandom s1,...,sL

=pk(x,s1,...,sL)

new R1,...,RM

PRF evaluations A1=Fsj(i1),...,A15=Fsz(i15)Any set of linear combinations

T1 = x+∑Rk Fsj(ij) mod Q ...

T10 = x+∑Rk’ Fsj’(ij’) mod Q

NIZKPOK of (i,x,s1,...,sL,i1,...,i15, ... ,) s.t. 1. A1,...,A15,T1,...,T10 computed correctly 2. VerifySig(pk,(x,s1,...,sL), ) = TRUE

new R < Q

A = Fs(i) (the coin’s serial number)T = x+RFt(i) mod Q (double-spending equation)

NIZKPOK of (i,x,s,t,) such that 1. 1 ≤ i ≤ N 2. A = Fs(i) 3. T = x+RFt(i) 4. VerifySig(pk,(x,s,t), ) = TRUE

Deposit: submit ({Ai},{Ri},{Ti},proof)

to the Bank

Page 72: Privacy-Preserving Authentication: A Tutorial

POP QUIZ:

Each user is allowed to spend only up to 100 coins with the

Cheshire Cat. How to instantiate Generalized Ecash

to guarantee this?

Hint: use multiple serial numbers

Page 73: Privacy-Preserving Authentication: A Tutorial

Preventing Money Laundering [CHL06]

• WITHDRAW $N:

• SPEND the ith coin; this is the jth time with this Merchant

• Cannot be done with physical cash! Was an open problem too, for a while.

BANKBANK2PC sk

Alice’s SK xs1,t1,s2,t2

=pk(x,s1,t1,s2,t2)

new R < Q

A1 = Fs1(i), A2 = Fs2(CheshCat,j)T1 = x+RFt1(i), T2 = x+RFt2(CheshCat,j)NIZKPOK of (i,x,s1,t1,j,s2,t2,) such that 1. 1 ≤ i ≤ N, 1 ≤ j ≤ 100 2. A1 = Fs(i), A2 = Fs2(CheshCat,j) 3. T1 = x+RFt(i), T2 = x+RFt2(CheshCat,j) 4. VerifySig(pk,(x,s1,t1,s2,t2), ) = TRUE

Deposit: submit (A1,A2,R,T1,T2,proof)

to the Bank

Suppose spend >N coins => repeating A1, catch Alice!Suppose spend >100 with CheshCat => repeating A2 = Fs2(CheshCat,j) catch Alice.

Privacy for Alice

Page 74: Privacy-Preserving Authentication: A Tutorial

POP QUIZ 2:

A user is allowed to spend up to 100 coins (tokens) per day. Each morning, her

wallet is reset. How to do this?

Hint: use a PRF with two inputs, Fs(i,j)

Page 75: Privacy-Preserving Authentication: A Tutorial

Compact E-Tokens [CHKLM06]• WITHDRAW:

• SPEND the ith token on Day j

• A simple solution to the uncloneable group identification problem [DDP06]

BANKBANK2PC sk

Alice’s SK xRandom s,t =pk(x,s,t)

new R < Q

A = Fs(i,j)T = x+RFt(i,j)

NIZKPOK of (i,x,s,t,) such that 1. 1 ≤ i ≤ 100 2. A = Fs(i,j) 3. T = x+RFt(i,j) 4. VerifySig(pk,(x,s,t), ) = TRUE

Deposit: submit (A,R,T,proof)to the Bank

Suppose spend >100 coins on day j => repeating A=Fs(i,j) for some i => catch Alice!

Privacy for Alice: same as in compact ecash

Page 76: Privacy-Preserving Authentication: A Tutorial

POP QUIZ 3:

If you double-spend < 4 e-tokens, these e-tokens are

linked, but your identity cannot be traced. If you double-spend 4 times, you are identified and

your SK is computed.

Hint: use multiple R1, ..., RL

Page 77: Privacy-Preserving Authentication: A Tutorial

Glitch Protection [CHKLM06]• WITHDRAW:

• SPEND $1 for the ith time:

BANKBANK2PC sk

Alice’s SK xs,t,u,v,L,z1,z2,z3

=pk(x,s,t,u,v,L,z1,z2,z3)

R, r1, r2, r3

A = Fs(i)T = L+RFt(i)Y = Fu(i)+RFv(i)Z = x + r1z1 + r2z2 + r3z3 + Fu(i)

NIZKPOK of (i,x,s,t,u,v,L,z1,z2,z3,) such that 1. 1 ≤ i ≤ N 2. A = Fs(i), T = L+RFt(i), Y = Fu(i)+RFv(i) 3. Z = x + r1z1 + r2z2 + r3z3 + Fu(i) 4. VerifySig(pk,(x,s,t,u,v,L,z1,z2,z3), )

Suppose spend N+4 coins => repeating A=Fs(i) for some i (possibly for i1, i2, i3, i4) => L pops out of repeating A using T, T’, R, R’ => link them together! => Fu(i) pops out of repeating A using Y, Y’, R, R’ => each overspending gives x + r1z1 + r2z2 + r3z3 = Z-Fu(i)

Page 78: Privacy-Preserving Authentication: A Tutorial

Roadmap for This Talk

• Building blocks

• Main idea of off-line ecash [CFN89 + CL02]

• Main idea of compact ecash [CHL05]

• Extensions [CHL06,CHKLM06]

• Technical details: how to instantiate generalized ecash

Page 79: Privacy-Preserving Authentication: A Tutorial

Compact Ecash with CL Sigs

• WITHDRAW:

• SPEND: BANKBANK2PC sk

Alice’s SK x

seeds s,t =pk(x,s,t)

new R < Q

• Pedersen and Fujisaki-Okamoto commitments:– If G is a group with generators g1,g2, …, gn, h commit to x1,x2,…xn:

C = g1x1g2

x2…gnxnhr for random r < |G|

– [Brands99,Camenisch98]: ZKPOKs of committed values w algebraic and Boolean props

• CL sigs [CL01,L02,CL02,CL04,...,CL50]:– Efficient, provably secure sig (Strong RSA [CL02], LRSW or SDHI [CL04])– Efficient protocol for getting a sig on a set of Ped- & FO-committed values

(x1,x2,...,xn)– Efficient protocol for proving knowledge of a sig on a set of committed values

CL

A = Fs(i), T = x+RFt(i) mod QCi,Cx,Cs,Ct : commitments to i,x,s,tZKPOK of (i,x,s,t,) such that 0. They correspond to Ci,Cx,Cs,Ct 1. 1 ≤ i ≤ N 2. A = Fs(i) 3. T = x+RFt(i) 4. VerifySig(pk,(x,s,t), ) = TRUE CL

Standard techniques[DY05]: Fs(i) = g1/(s+i+1)

??????

Page 80: Privacy-Preserving Authentication: A Tutorial

Compact Ecash with CL Sigs

• WITHDRAW:

• SPEND: BANKBANK2PC sk

Alice’s SK x

seeds s,t =pk(x,s,t)

CL

A = Fs(i), T = gx(Ft(i))R

Ci,Cx,Cs,Ct : commitments to i,x,s,tZKPOK of (i,x,s,t,) such that 0. They correspond to Ci,Cx,Cs,Ct 1. 1 ≤ i ≤ N 2. A = Fs(i) 3. T = gx(Ft(i))R

4. VerifySig(pk,(x,s,t), ) = TRUE CL

[DY05]: Fs(i) = g1/(s+i+1)Standard techniques

Suppose i’th coin is spent twice.Same coin => same A Spent twice: two random R’s, with high prob, R1 ≠ R2

T1 = gx(Ft(i))R1, T2 = gx(Ft(i))R2

solve for Ft(i) = (T1/T2)1/(R1-R2)

solve for gx = T1/(Ft(i)R1)

Page 81: Privacy-Preserving Authentication: A Tutorial

First Signature Scheme• (Sig scheme for messages of length ℓ(m),

security parameter k)• Key generation:

n = pq = (2p’+1)(2q’+1) of length ℓ(n)a, b, c QRn

• Signing m:e PRIMESℓ(m)+2 , s {0,1} ℓ(n)+ℓ(m)+k

solve for v such that ve = ambsc mod n• Verification of {m, σ = (s,e,v)}:

check that ve = ambsc mod ncheck the lengths of m,s,e

Page 82: Privacy-Preserving Authentication: A Tutorial

Provable Security

• Under the Strong RSA assumption– hard, on input an RSA modulus n, and a

value u, to compute (v,e) such that e > 1 and

ve=u

• I will skip the proof of security

Page 83: Privacy-Preserving Authentication: A Tutorial

And Now the Two Protocols

• Signature on a committed value

• ZK proof of knowledge of a signature

Page 84: Privacy-Preserving Authentication: A Tutorial

But First: Some Known Tools• Commitment scheme [Ped92,FO97]:

– PK: N = (2P’+1)(2Q’+1), g, h QRN

– Commit(x,r) = gxhr mod N

• ZK proof of knowledge of representations [S91]– protocol between a “prover” P and a “verifier” V – common input is some value C in some group where the

discrete logarithm problem is hard, and some generators g1, g2, ..., g15

– P knows how to represent C in terms of g1, g2, ..., g15 : C = g1

x1g2x2...g15

x15.

– P can convince V that he knows x1, x2, ..., x15 s.t. V learns nothing about them

– but with access to the P’s algorithm, can extract the representation.

• ZK proofs of equality of representations & other relations [S91,Brands99,CM99]

• ZK proof that a committed number lies in an integer interval [B00].

Page 85: Privacy-Preserving Authentication: A Tutorial

Signature on a Committed Value

PKCm

t,e,v

Proof ofknowledge

1. Commit to m: Cm= ambr mod n

2. Prove knldge of rep of Cm

and correct lengths

3. Pick random t, e. Solve for v in ve = Cmbtc mod n

Send (t,e,v)

SignerAlice

4. Output s = r+t, e, v

Page 86: Privacy-Preserving Authentication: A Tutorial

Proof of Knowledge of a Signature

• Imagine that you are the PROVER! – Have m, σ = (v,e,s), s.t. ve = ambsc – For a random r, let u = vbr.– Note that ue= ambs+rec

• so (u,e,s+re) is also a sig on m

– Then c = uea-mb-s-re

– Give u to the verifier and prove knowledge of representation of c in bases u,a,b; prove that these discrete logs are of the right length

• (this version of this protocol due to [CG04])

Page 87: Privacy-Preserving Authentication: A Tutorial

Signature for Blocks of Messages

• Wish to sign a block of messages, (m1,...,mL)– normally just use a hash function:

• M = H(m1,...,mL), then sign M

– not in this case: want efficient protocols

• Variant of the other scheme:– Public key: n of length ℓ(n) same as before

a1, ..., aL, b, c QRn

– Signing (m1,...,mL): random e and s as beforesolve for v such that

ve = a1m1... aL

mLbsc mod n

– Verification of {m1,...,mL, σ = (s,e,v)} : check ve and lengths, as before

• Security follows from first scheme

Page 88: Privacy-Preserving Authentication: A Tutorial

Signature on a Committed Block

PKCm

t,e,v

Proof ofknowledge

1. Commit to m1,...,mL : Cm= a1

m1...aLmLbr mod n

2. Prove knldge of rep of Cm

and correct lengths

3. Pick random t, e. Solve for v in ve = Cmbtc mod n

Send (t,e,v)

SignerAlice

4. Output s = r+t, e, v

Page 89: Privacy-Preserving Authentication: A Tutorial

Proof of Knowledge of a Signature

• Imagine that you are the PROVER! – Have m1,...,mL, σ = (v,e,s), s.t. ve =

a1m1...aL

mLbsc

– For a random r, let u = vbr.

– Note that ue= a1m1...aL

mLbs+rec

– so (u,e,s+re) is also a sig on m1,...,mL

– Then c = uea1-m1...aL

-mLb-s-re

– Give u to the verifier and prove knowledge of representation of c in bases u,a1,...,aL,b; prove that these discrete logs are of the right length

Page 90: Privacy-Preserving Authentication: A Tutorial

Anonymous Credentials• SETUP: Signature key pair for Issuer (pk,sk).

The user is anonymous, but known to the issuer under a pseudonym P = Commit(user’s real SK x)

• Obtain cred:

• Anonymously prove possession of credential:

BANKBANK2PC sk

opening of P

=pk(x)

ZKPOK of (x,) such that VerifySig(pk,x,) = TRUE

P, pk

Page 91: Privacy-Preserving Authentication: A Tutorial

Anonymous Credentials• SETUP: Signature key pair for Issuer (pk,sk).

The user is anonymous, but known to the issuer under a pseudonym P = Commit(user’s real SK x)

• Obtain cred:

• Anonymously prove possession of credential for pseudonym P’ (not the same as pseudonym P):

BANKBANK2PC sk

opening of P

=pk(x)

ZKPOK of (x,R,) such that 1. VerifySig(pk,x, ) = TRUE 2. P’ = Commit(x;R)

P, pk

Page 92: Privacy-Preserving Authentication: A Tutorial

Anonymous Credentials w. Identity Escrow• SETUP: Signature key pair for Issuer (pk,sk).

The user is anonymous, but known to the issuer under a pseudonym P = EncryptCA(user’s real SK x)

• Obtain cred:

• Anonymously prove possession of credential for pseudonym P’ (not the same as pseudonym P):

BANKBANK2PC sk

opening of P

=pk(x)

ZKPOK of (x,R,) such that 1. VerifySig(pk,x, ) = TRUE 2. P’ = Commit(x;R)

P, pk

Page 93: Privacy-Preserving Authentication: A Tutorial

Anonymous Ecash Credentials• SETUP: Signature key pair for Issuer (pk,sk).

The user is anonymous, but known to the issuer under a pseudonym P = Commit(user’s real SK x)

• Obtain cred:

• Spend under pseudonym P’ (not the same as pseudonym P):

BANKBANK2PC sk

opening of P

same as ecash

same as ecash, must prove that thesecret x is inside the pseudonym wassigned

P, pk

Page 94: Privacy-Preserving Authentication: A Tutorial

Anonymous Credentials with Attributes• SETUP: Signature key pair for Issuer (pk,sk).

The user is anonymous, but known to the issuer under a pseudonym P = Commit(user’s real SK x, attr A1,...An)

• Obtain cred:

• Anonymously prove possession of credential for pseudonym P’ (not the same as pseudonym P):

BANKBANK2PC sk

opening of P

=pk(x,A1,...,An)

ZKPOK of (x,A1,...,An,R,) such that 1. VerifySig(pk,(x,A1,...,An),) = TRUE 2. P’ = Commit(x;R) 3. Attributes satisfy desired relation

P, pk

Page 95: Privacy-Preserving Authentication: A Tutorial

Anonymous Credentials “Light” [BL12]• SETUP: Signature key pair for Issuer (pk,sk).

The user is anonymous, but known to the issuer under a pseudonym P = Commit(user’s real SK x)

• Obtain cred:

• Anonymously prove possession of credential (can only do it once!):

BANKBANK2PC sk

opening of PP’ = Commit(x;R’),

R’, =pk(P’)

Reveal P’ and

P, pk

Page 96: Privacy-Preserving Authentication: A Tutorial

Anonymous Credentials “Light” [BL12]• SETUP: Signature key pair for Issuer (pk,sk).

The user is anonymous, but known to the issuer under a pseudonym P = Commit(user’s real SK x)

• Obtain cred:

• Anonymously prove possession of credential (can only do it once!) under pseudonym P’’ (not the same as P or P’):

BANKBANK2PC sk

opening of PP’ = Commit(x;R’),

R’, =pk(P’)

Reveal P’ and ZK Prove that P’ and P’’ are commitmentsto the same value

P, pk

Page 97: Privacy-Preserving Authentication: A Tutorial