Transcript
Page 1: Pseudonym and Anonymous Credential Systems

Pseudonym and Anonymous Credential Systems

Gihyuk Ko

Carnegie Mellon University

slides from Kyle Soska

Page 2: Pseudonym and Anonymous Credential Systems

Moving Past Encryption

โ€ข Encryption DOES:โ€ข Hide the contents of messages that are being communicated

โ€ข Provide tools for authenticating messages

โ€ข Encryption DOES NOT:โ€ข Hide who is communicating with who

โ€ข Hide an upper bound on how much they are communicating

โ€ข Hide timing information or other aspects of the communication

Page 3: Pseudonym and Anonymous Credential Systems

Sensitive Information

Alice Employer

(Name, Birthday, SSN, Employee Review)

(Name, Birthdate, SSN, Patient File, โ€ฆ)

(Name, Birthdate, SSN, Prescriptions, โ€ฆ)

(Name, Birthdate, SSN, DNA Fingerprint, โ€ฆ)

Hospital

Pharmacy

DNA ProfilingLaboratory

Page 4: Pseudonym and Anonymous Credential Systems

Information Sharing Concerns

(Alice, 1-1-1970, 123-45-6789, Patient File, โ€ฆ)

SELECT * FROM patients WHEREName = โ€˜Aliceโ€™ and SSN = 123-45-6789

โ€ข An employer and a hospital could share information to give the employer Aliceโ€™s medical records

โ€ข The employer could learn that Alice is going to have a baby soon or that she has some illness and choose to fire her

Page 5: Pseudonym and Anonymous Credential Systems

Sensitive Information

โ€ข Problem: Alice uses her real identity (personally identifying information) to authenticate to different organizations

โ€ข These organizations can collude and share data to learn a lot about Alice that she does not want them to know

โ€ข Employer learns that she is going to have a baby

โ€ข Insurance company learns that she has a genetic pre-disposition for cancer

โ€ข Etc.

โ€ข Question: How do we resolve this problem?

โ€ข Idea: Donโ€™t use real personal information to authenticate to these organizations

Page 6: Pseudonym and Anonymous Credential Systems

Sensitive Information

xXA1ic3Xx

(xXA1ic3Xx, Birthday, Employee Review)

(xXA1ic3Xx, Birthdate, Patient File, โ€ฆ)

(xXA1ic3Xx, Birthdate, Prescriptions, โ€ฆ)

(xXA1ic3Xx, Birthdate, DNA Fingerprint, โ€ฆ)

Employer

Hospital

Pharmacy

DNA ProfilingLaboratory

Page 7: Pseudonym and Anonymous Credential Systems

Sensitive Information

โ€ข Problem: Even if Alice uses a Nym not connected with her real identity, if she uses the same Nym with different organizations, then data-sharing attacks are still possible

โ€ข Data sharing attacks are leverage the fact that Aliceโ€™s Nyms are linkable, information associated with one of her Nyms can be linked to her other Nyms

โ€ข Idea: Use a different Nym for each organization

Page 8: Pseudonym and Anonymous Credential Systems

Nym Linkability

ID DOB SSN

Alice 1-1-1970 123-45-6789

Bob 1-1-2000 111-11-1111

Charlie 12-31-1999 555-55-5555

David 7-7-1970 777-77-777

ID DOB SSN

April 4-20-1996 001-01-1101

Alyssa 1-1-1970 123-45-6789

Charlie 12-31-1999 555-55-5555

Don 8-8-1991 999-99-9999

Different name but same value for a unique field, and same birthday

employee-listpatient-list

Page 9: Pseudonym and Anonymous Credential Systems

Sensitive Information

{xXA1ic3Xx, aLiCe, yasuo_only, rengar_only}

(xXA1ic3Xx, Birthday, Employee Review)

(aLiCe, Birthdate, Patient File, โ€ฆ)

(yasuo_only, Birthdate, Prescriptions, โ€ฆ)

(rengar_only, Birthdate, DNA Fingerprint, โ€ฆ)

Employer

Hospital

Pharmacy

DNA ProfilingLaboratory

Page 10: Pseudonym and Anonymous Credential Systems

Sensitive Information

โ€ข Problem: What happens when different organizations do need to communicate?

โ€ข Ex. Hospital needs to transfer prescriptions to pharmacy

โ€ข We want selective information disclosure

โ€ข Problem: Users can share identities with each other

โ€ข Alice wants to share her medical insurance with all of her friends

Page 11: Pseudonym and Anonymous Credential Systems

How to share information?

{aLiCe, yasuo_only}

(aLiCe, Birthdate, Patient File, โ€ฆ) (yasuo_only, Birthdate, Prescriptions, โ€ฆ)

Prescription foraLiCe I donโ€™t know who aLiCe is,

you are yasuo_only

If prescriptions written for aLiCe were able to be redeemed by yasuo_only, then Alice could sell her prescription to someone else, or her prescription could be stolen etc.

Hospital Pharmacy

Page 12: Pseudonym and Anonymous Credential Systems

Paradox of Information Sharing & Unlikability

โ€ข Organization 1 and Organization 2 want to exchange important information about Alice

โ€ข Ex. A Drug Prescription

โ€ข The organizations need to make sure they are referring to the same person, (the identities are linkable)

โ€ข The pharmacy needs to make sure that Alice is really the person that the prescription was written for

โ€ข Aliceโ€™s identities need to be unlinkable so that nothing but the allowed informationcan be shared

Page 13: Pseudonym and Anonymous Credential Systems

Cryptography To The Rescue

โ€ข Alice will generate a single master key (public, private)

โ€ข Alice will register her key pair with a trusted CA, her key pair will be her nym with the CA

โ€ข Alice establishes a different nym with each organization such that her interactions with each organization are unlinkableโ€ข Does not consider timing information or side channels

โ€ข An organization can grant Alice a credential that attests to some property

โ€ข Alice can convince another organization of some property by showing them a credential that was previously granted to Aliceโ€ข This process is referred to as transferring a credential

Page 14: Pseudonym and Anonymous Credential Systems

Actors and Objects

โ€ข ๐‘ช๐‘จ: Unique certification authority, trusted by all actors in the system

โ€ข ๐‘ผ: A user (Possibly many users)

โ€ข ๐‘ท๐‘ผ, ๐‘บ๐‘ผ: Master public key and secret key of ๐‘ˆ

โ€ข ๐‘(๐‘ˆ, ๐‘‚): Set of nyms ๐‘ˆ has generated with ๐‘‚

โ€ข ๐‘(๐‘ˆ): Set of nyms ๐‘ˆ has generated with anyone

โ€ข ๐‘ถ: An organization (Possibly many organizations)

โ€ข ๐‘ท๐‘ถ, ๐‘บ๐‘ถ: Master public key and secret key of ๐‘‚

โ€ข ๐‘ท๐‘ถ๐‘ช , ๐‘บ๐‘ถ

๐‘ช : Public and secret key of ๐‘‚ for credential ๐ถ

โ€ข ๐‘ต(๐‘ถ): Set of nyms ๐‘‚ has generated with any user

โ€ข ๐‘๐‘ˆ,๐‘‚: User Uโ€ฒs nym with organization ๐‘‚

โ€ข ๐บ๐‘’๐‘›๐‘ˆ: Asymmetric key generation algorithm for generating master keypair

Page 15: Pseudonym and Anonymous Credential Systems

CA

๐‘‚1, ๐‘๐‘‚1,๐ถ๐ด ๐‘‚2, ๐‘๐‘‚2,๐ถ๐ด

๐‘ˆ, (๐‘ƒ๐‘ˆ, ๐‘†๐‘ˆ)

1. Establish ๐‘๐‘ˆ,๐ถ๐ด

2. Establish ๐‘๐‘ˆ,๐‘‚13. Establish ๐‘๐‘ˆ,๐‘‚2

4. ๐‘ช๐‘ผ,๐‘ถ๐Ÿ 5. ๐‘ช๐‘ผ,๐‘ถ๐Ÿ

System Overview

Organization 1 Organization 2

credential

Page 16: Pseudonym and Anonymous Credential Systems

Intuitive Goals

1. We want a system where users can create pseudonyms with different organizations, possibly multiple pseudonyms with the same organization

2. No set of organizations can collaborate to link pseudonyms of a user, an organization cannot link the multiple pseudonyms from the same user

3. A user can prove a statement from one organization to another organization using credential transfer

โ€ข Ex. The hospital has granted a prescription for Alice to the pharmacy

4. No set of users or organizations can forge a credential

5. Users cannot share credentials with each other

โ€ข A user cannot give their health insurance to a friend

Page 17: Pseudonym and Anonymous Credential Systems

Generating Userโ€™s Master Key

โ€ข User master key generation: User generates a master key pair derived from the computational discrete log problemโ€ข ๐‘ = 2๐‘ž + 1 for ๐‘, ๐‘ž large ๐‘˜-bit prime numbers

โ€ข ๐บ๐‘ž = ๐‘„๐‘… โ„ค๐‘ = ๐‘ž is the quadratic residue subgroup of โ„ค๐‘ which has order ๐‘ž

โ€ข Let ๐‘” โˆˆ ๐บ๐‘ž be a public generator

โ€ข User selects ๐‘ฅ โ†๐‘… โ„ค๐‘ž and computes ๐‘”๐‘ฅ ๐‘š๐‘œ๐‘‘ ๐‘

โ€ข Userโ€™s Private Key: ๐‘ฅ

โ€ข Userโ€™s Public Key: ๐‘”๐‘ฅ ๐‘š๐‘œ๐‘‘ ๐‘

โ€ข The user shares this public key with the CA. The CA checks that Alice is a real person and that she has not already registered an account with the system

Page 18: Pseudonym and Anonymous Credential Systems

๐‘‚1, ๐‘๐‘‚1,๐ถ๐ด ๐‘‚2, ๐‘๐‘‚2,๐ถ๐ด

๐‘ˆ๐ด, (๐‘ƒ๐‘ˆ,๐ด, ๐‘†๐‘ˆ,๐ด)

1. Establish ๐‘๐‘ˆ,๐‘‚1 2. Establish ๐‘๐‘ˆ,๐‘‚2

3. ๐‘ช๐‘ผ๐‘จ,๐‘ถ๐Ÿ 5. ๐‘ช๐‘ผ๐‘จ,๐‘ถ๐Ÿ

โ€ข We want a scheme that lets Alice can โ€˜redeemโ€™ ๐ถ๐‘ˆ๐ด,๐‘‚1, but not Bob

โ€ข How can we achieve this? What is the difference between Alice and Bob?

๐‘ˆ๐ต , (๐‘ƒ๐‘ˆ,๐ต, ๐‘†๐‘ˆ,๐ต)

6. ๐‘ช๐‘ผ๐‘จ,๐‘ถ๐Ÿ

4. ๐‘ช๐‘ผ๐‘จ,๐‘ถ๐Ÿ

Transferring Credentials

Page 19: Pseudonym and Anonymous Credential Systems

Transferring Credentials

โ€ข ๐‘ˆ๐ด and ๐‘ˆ๐ต have different nyms at ๐‘‚1 and ๐‘‚2, namely ๐‘๐‘ˆ๐ด,๐‘‚1 โ‰  ๐‘๐‘ˆ๐ต,๐‘‚2, ๐‘๐‘ˆ๐ด,๐‘‚2 โ‰  ๐‘๐‘ˆ๐ต,๐‘‚2โ€ข What if the credential ๐ถ๐‘ˆ๐ด,๐‘‚1 carries information about ๐‘๐‘ˆ๐ด,๐‘‚1?

โ€ข What if the credential ๐ถ๐‘ˆ๐ด,๐‘‚1 carries information about ๐‘๐‘ˆ๐ด,๐‘‚2?

โ€ข Credentials are supposed to be unlinkable, so tying the credential to the userโ€™s nyms is not good!

โ€ข ๐‘ƒ๐‘ˆ,๐ด, ๐‘†๐‘ˆ,๐ด โ‰  ๐‘ƒ๐‘ˆ,๐ต, ๐‘†๐‘ˆ,๐ตโ€ข What if the credential ๐ถ๐‘ˆ๐ด,๐‘‚1 carries information about ๐‘†๐‘ˆ,๐ด?

โ€ข What if the credential ๐ถ๐‘ˆ๐ด,๐‘‚1 carries information about ๐‘ƒ๐‘ˆ,๐ด?

โ€ข Secret keys must be kept secret and public keys can be forged by anyone since they are public!

Page 20: Pseudonym and Anonymous Credential Systems

Userโ€™s Master Key

โ€ข All of the actions that a user performs are somehow tied to their master secret key

โ€ข A userโ€™s nym with the CA is their public key

โ€ข A userโ€™s nyms with other organizations are derived from their master secret key

โ€ข Transferring a credential requires computations with the master secret key

โ€ข Corollary: sharing a credential requires sharing the master secret key which is sufficient for identity theft

Page 21: Pseudonym and Anonymous Credential Systems

Generating Nyms

โ€ข Secure interactive protocol between two parties ๐‘ˆ: ๐‘ƒ๐‘ˆ , ๐‘†๐‘ˆ , ๐‘‚: ๐‘ƒ๐‘‚, ๐‘†๐‘‚

โ€ข Public Input: ๐‘ƒ๐‘‚, the public key of the organization

โ€ข Userโ€™s Private Input: ๐‘ƒ๐‘ˆ , ๐‘†๐‘ˆ

โ€ข Organizationโ€™s Private Input: ๐‘†๐‘‚

โ€ข Common Output: ๐‘๐‘ˆ,๐‘‚

โ€ข Private User Output: ๐‘†๐ผ๐‘ˆ,๐‘‚๐‘ˆ

โ€ข Private Organization Output: ๐‘†๐ผ๐‘,๐‘‚๐‘‚

Page 22: Pseudonym and Anonymous Credential Systems

๐‘ƒ๐‘‚, ๐‘†๐‘‚๐‘ƒ๐‘ˆ, ๐‘†๐‘ˆ , ๐‘ƒ๐‘‚

I want to generate a nym with you

Interactive nym generation protocol

๐‘ƒ๐‘ˆ, ๐‘†๐‘ˆ , ๐‘ƒ๐‘‚, ๐‘บ๐‘ฐ๐‘ผ,๐‘ถ๐‘ผ , ๐‘ต๐‘ผ,๐‘ถ ๐‘ƒ๐‘ˆ, ๐‘†๐‘ˆ , ๐‘ƒ๐‘‚, ๐‘บ๐‘ฐ๐‘ต,๐‘ถ

๐‘ถ , ๐‘ต๐‘ผ,๐‘ถ

Generating Nyms

Page 23: Pseudonym and Anonymous Credential Systems

Zero Knowledge Proofs

โ€ข Interactive protocol between a prover ๐‘ƒ and a verifier ๐‘‰

โ€ข ๐‘ƒ wants to prove to ๐‘‰ that he knows something, but without revealing any information other than that โ€˜he knows somethingโ€™

โ€ข Soundness: ๐‘ƒ cannot prove false statements to the ๐‘‰

โ€ข Completeness: Proofs of true statements by ๐‘ƒ will be accepted by ๐‘‰

โ€ข Zero Knowledge: ๐‘‰ will not learn anything other than the truth of the statement being proven

Page 24: Pseudonym and Anonymous Credential Systems

ZK Proof Example

โ€ข Alice (the prover ๐‘ƒ) wants to prove to Bob (the verifier ๐‘‰) that she knows how to unlock the door

โ€ข If she let him watch her open the door, it would convince him that she knows how, but he might learn something about how she does it

โ€ข Instead they devise the following game to convince Bob that Alice knows how to unlock the door

โ€ข Start with a locked door

Page 25: Pseudonym and Anonymous Credential Systems

ZK Proof Example

โ€ข Bob goes and hides and lets Alice pick one of the hallways to walk down

โ€ข Alice flips a coin and picks either left or right to walk down

โ€ข Heads = Leftโ€ข Tails = Right

Page 26: Pseudonym and Anonymous Credential Systems

ZK Proof Example

โ€ข Bob flips a coinโ€ข Heads = Leftโ€ข Tails = Right

โ€ข Bob then yells down the hallway and demands that Alice appear from that side

โ€ข If Alice is already on the same side she simply walks out

Page 27: Pseudonym and Anonymous Credential Systems

ZK Proof Example

โ€ข Bob flips a coinโ€ข Heads = Leftโ€ข Tails = Right

โ€ข Bob then yells down the hallway and demands that Alice appear from that side

โ€ข If Alice is already on the same side she simply walks out

โ€ข If Alice is on the wrong side she needs to unlock the door

Page 28: Pseudonym and Anonymous Credential Systems

ZK Proof Example

โ€ข Is this sound? Can Alice prove false statements to Bob?

โ€ข Is this complete? Will Bob always accept true statements?

โ€ข Is this zero-knowledge? Does Bob learn anything other than the truth about whether or not Alice can unlock the door?

Page 29: Pseudonym and Anonymous Credential Systems

ZK Proof Example

โ€ข Can Bob convince Charlie that Alice knows how to unlock the door?

โ€ข If the proof fails, if Alice comes out from the wrong side, does this prove that Alice does not know how to unlock the door?

Page 30: Pseudonym and Anonymous Credential Systems

What does Zero Knowledge mean?

โ€ข What does it mean to say that ๐‘‰ does not learn any knowledge other than the truth of the statement being proven?โ€ข What is knowledge? โ€“ Hard question, will not attempt to answer

โ€ข What does it mean to say that ๐‘‰ gained no knowledge?

โ€ข What does it mean to say that ๐‘‰ gained no knowledge?โ€ข ๐‘‰ after executing the protocol cannot do anything that ๐‘ฝ cannot already do

โ€ข in particular ๐‘‰โ€ฒ๐‘  ability to compute statements

โ€ข Even the protocol generated by the proof interactions between ๐‘‰ and ๐‘ƒ could have been generated by ๐‘‰

โ€ข To prove that ๐‘‰ gained no knowledge from the interaction, we construct an algorithm called a โ€˜simulatorโ€™ where ๐‘‰ generates a transcript of the protocol that is indistinguishable from a real interaction with ๐‘ƒ

Page 31: Pseudonym and Anonymous Credential Systems

ZKP of Equality of Discrete Logarithm

โ€ข ๐‘ƒ: Prover

โ€ข ๐‘‰: Verifier

โ€ข Common Input: ๐‘”, ๐‘”โ€ฒ โ†๐‘… โ„ค๐‘ž ร— โ„ค๐‘ž generators, โ„Ž, โ„Žโ€ฒ โ† โ„ค๐‘ž ร— โ„ค๐‘ž

โ€ข ๐‘ƒ wants to convince ๐‘‰ that it knows an ๐‘ฅ โ† โ„ค๐‘ž s. t. โ„Ž = ๐‘”๐‘ฅ, โ„Žโ€ฒ = ๐‘”โ€ฒ๐‘ฅ

โ€ข ๐‘ƒ does not want ๐‘‰ to learn the value of ๐‘ฅ or otherwise be able to compute it any easier because of their interaction

โ€ข We will use an interactive zero-knowledge protocol to prove this statement

Page 32: Pseudonym and Anonymous Credential Systems

ZKP of Equality of Discrete Logarithm

๐‘ƒ โ†’ ๐‘‰: Choose ๐‘Ÿ โ†๐‘… โ„ค๐‘ž, Send ๐ด = ๐‘”๐‘Ÿ, ๐ต = ๐‘”โ€ฒ๐‘Ÿ

๐‘‰ โ†’ ๐‘ƒ: Choose ๐‘ โ†๐‘… โ„ค๐‘ž, Send (๐‘)

๐‘ƒ โ†’ ๐‘‰: Send (๐‘ฆ = ๐‘Ÿ + ๐‘๐‘ฅ ๐‘š๐‘œ๐‘‘ ๐‘ž)

๐‘‰: Check that ๐‘”๐‘ฆ = ๐ดโ„Ž๐‘ and ๐‘”โ€ฒ๐‘ฆ = ๐ตโ„Žโ€ฒ๐‘

Check:๐‘”๐‘ฆ = ๐‘”๐‘Ÿ+๐‘๐‘ฅ = ๐‘”๐‘Ÿ๐‘”๐‘๐‘ฅ = ๐ด๐‘”๐‘๐‘ฅ = ๐ดโ„Ž๐‘

๐‘”โ€ฒ๐‘ฆ = ๐‘”โ€ฒ๐‘Ÿ+๐‘๐‘ฅ = ๐‘”โ€ฒ๐‘Ÿ๐‘”โ€ฒ๐‘๐‘ฅ = ๐ต๐‘”โ€ฒ๐‘๐‘ฅ = ๐ตโ„Žโ€ฒ๐‘

โ€ข Is this sound?

โ€ข Is this complete?

โ€ข Is this zero-knowledge?

โ€ข If the prover showed this protocol to the verifier a few days later, would the verifier recognize it?

โ€ข Produce a โ€˜blindedโ€™ version of the protocol where it will not be recognized.

โ€ข Transcripts: {(A,B), (c), (y)}

โ€ข Can someone get any information on x from this?

Page 33: Pseudonym and Anonymous Credential Systems

๐‘ƒ๐‘‚, ๐‘†๐‘‚๐‘ƒ๐‘ˆ, ๐‘†๐‘ˆ , ๐‘ƒ๐‘‚

I want to generate a nym with you

Interactive nym generation protocol

๐‘ƒ๐‘ˆ, ๐‘†๐‘ˆ , ๐‘ƒ๐‘‚, ๐‘บ๐‘ฐ๐‘ผ,๐‘ถ๐‘ผ , ๐‘ต๐‘ผ,๐‘ถ ๐‘ƒ๐‘ˆ, ๐‘†๐‘ˆ , ๐‘ƒ๐‘‚, ๐‘บ๐‘ฐ๐‘ต,๐‘ถ

๐‘ถ , ๐‘ต๐‘ผ,๐‘ถ

Generating Nyms

Page 34: Pseudonym and Anonymous Credential Systems

Nym Generation Protocol

โ€ข ๐‘ˆ: ๐‘ƒ๐‘ˆ , ๐‘†๐‘ˆ , ๐‘ƒ๐‘‚ = ๐‘”๐‘ฅ, ๐‘ฅ , ๐‘”๐‘ฆ

โ€ข ๐‘‚: ๐‘ƒ๐‘‚, ๐‘†๐‘‚ = (๐‘”๐‘ฆ , ๐‘ฆ)

๐‘ˆ: Choose ๐›พ โ†๐‘… โ„ค๐‘ž, Set ๐‘Žโ€ฒ = ๐‘”๐›พ , ๐‘โ€ฒ = ๐‘Žโ€ฒ๐‘ฅ

๐‘ˆ โ†’ ๐‘‚: Send ๐‘Žโ€ฒ, ๐‘โ€ฒ

๐‘‚: Choose ๐‘Ÿ โ†๐‘… โ„ค๐‘ž, Set ๐‘Ž = ๐‘Žโ€ฒ๐‘Ÿ

๐‘‚ โ†’ ๐‘ˆ: Send ๐‘Ž

๐‘ˆ: Compute ๐‘ = ๐‘Ž๐‘ฅ

๐‘ˆ โ†โ†’ ๐‘‚: Execute ฮ  to show that log๐‘Ž ๐‘ = ๐‘™๐‘œ๐‘”๐‘Žโ€ฒ ๐‘โ€ฒ

๐‘ˆ, ๐‘‚: Remember ๐‘ˆโ€ฒ๐‘  nym as ๐‘ = ๐‘Ž, ๐‘

Page 35: Pseudonym and Anonymous Credential Systems

Issuing Credential

โ€ข ๐‘ˆ: ๐‘ƒ๐‘ˆ, ๐‘†๐‘ˆ , ๐‘ƒ๐‘‚ = ๐‘”๐‘ฅ, ๐‘ฅ , ๐‘”๐‘ฆ, ๐‘๐‘ˆ,๐‘‚ = ๐‘Ž, ๐‘ = ๐‘Ž๐‘ฅ = ๐‘”๐›พ๐‘Ÿ , ๐‘”๐›พ๐‘Ÿ๐‘ฅ

โ€ข ๐‘‚: ๐‘ƒ๐‘‚, ๐‘†๐‘‚ = ๐‘”๐‘ฆ, ๐‘ฆ , ๐‘๐‘ˆ,๐‘‚ = (๐‘Ž, ๐‘)

โ€ข Public Credential Key: ๐‘”, โ„Ž1, = ๐‘”๐‘ 1 , โ„Ž2 = ๐‘”๐‘ 2 , Secret Credential Key: ๐‘ 1, ๐‘ 2

๐‘‚ โ†’ ๐‘ˆ: Send ๐ด = ๐‘๐‘ 2 , ๐ต = ๐‘Ž๐‘๐‘ 2 ๐‘ 1

๐‘ˆ: Choose ๐›พ โ†๐‘… โ„ค๐‘ž

๐‘‚ โ†โ†’ ๐‘ˆ: Run ฮ“ to show log๐‘ ๐ด = log๐‘” โ„Ž2 with verifier input ๐›พ, Obtain transcript ๐‘‡1

๐‘‚ โ†โ†’ ๐‘ˆ: Run ฮ“ to show log(๐‘Ž,๐ด) ๐ต = log๐‘” โ„Ž1 with verifier input ๐›พ, Obtain transcript ๐‘‡2

๐‘ˆ: Remember credential ๐ถ๐‘ˆ,๐‘‚ = (๐‘Ž๐›พ , ๐‘๐›พ, ๐ด๐›พ, ๐ต๐›พ , ๐‘‡1, ๐‘‡2)

Page 36: Pseudonym and Anonymous Credential Systems

Transferring Credential

โ€ข ๐‘‚โ€ฒ๐‘  public credential keys: ๐‘”, โ„Ž1 = ๐‘”๐‘ 1 , โ„Ž2 = ๐‘”๐‘ 2

โ€ข ๐‘ˆโ€ฒ๐‘  nym with ๐‘‚โ€ฒ: (๐‘Žโ€ฒโ€ฒ, ๐‘โ€ฒโ€ฒ) where ๐‘โ€ฒโ€ฒ = ๐‘Žโ€ฒโ€ฒ๐‘ฅ

โ€ข Userโ€™s credential from ๐‘‚: ๐ถ๐‘ˆ,๐‘‚ = ๐‘Žโ€ฒ, ๐‘โ€ฒ, ๐ดโ€ฒ, ๐ตโ€ฒ, ๐‘‡1, ๐‘‡2

๐‘‚โ€ฒ: Verify correctness of ๐‘‡1 and ๐‘‡2 as transcripts for ฮ ๐‘๐ผ

by showing log๐‘โ€ฒ ๐ดโ€ฒ = log๐‘” โ„Ž2 and log๐‘Žโ€ฒ๐ดโ€ฒ ๐ต

โ€ฒ = log๐‘” โ„Ž1

๐‘ˆ โ†โ†’ ๐‘‚โ€ฒ: Execute protocol ฮ  to show log๐‘Žโ€ฒ ๐‘โ€ฒ = log๐‘Ž ๐‘

Page 37: Pseudonym and Anonymous Credential Systems

Single-Use / Multiple-Use Credentials

โ€ข Single-Use Credential: May safely be used once, but if used more than once, it would allow the userโ€™s nyms to be linked together

โ€ข Multiple-Use Credential: May safely be used unlimited times without allowing the userโ€™s nyms to be linked

โ€ข K-Use Credentials?โ€ข Can you create a credential that can be used a finite number of times before being able to link

together a userโ€™s nyms?

โ€ข Yes, but its hard and very complicated

Page 38: Pseudonym and Anonymous Credential Systems

Expiration Date

โ€ข Add a date field into the non-interactive proof protocol such that the verifier only accepts if the current date is less than the expiration date

โ€ข Also needs to add corresponding fields into the credential and the corresponding machinery when verifying the credential

Page 39: Pseudonym and Anonymous Credential Systems

Revocation of Credential

โ€ข This is going to require a trusted third party like CA

โ€ข Revocations would have to be input with the CA

โ€ข When a credential is used, before it is verified, the organization will check with the CA to see if the credential has been revoked

Page 40: Pseudonym and Anonymous Credential Systems

Are there other problems here?

{aLiCe, yasuo_only}

(aLiCe, Birthdate, Patient File, โ€ฆ) (yasuo_only, Birthdate, Prescriptions, โ€ฆ)

Prescription foraLiCe I donโ€™t know who aLiCe is,

you are yasuo_only

Page 41: Pseudonym and Anonymous Credential Systems

Credentials for a Review System?

{aLiCe} {b0B}

Interactive Point of Sale

Leave a ReviewQuery Reviews

Page 42: Pseudonym and Anonymous Credential Systems

Thanks!


Recommended