Security of the Decentralized Anonymous Credentials
Authors define their system in terms of an ideal functionality implemented by a trusted party that plays the role that system’s cryptographic constructions play in the real system. All communication takes place through this ideal trusted party. Security and correctness for the system come from a proof that this ideal model is indistinguishable from the real model provided the cryptographic assumptions hold.
- ): logs into with to register a nym with organization . If she does not have an account, she first creates one. She gives a unique random string . checks that the string is indeed unique and if so stores and informs .
- : logs into with . If Nym is not nym with or is wrong, reject. Otherwise, checks that justifies issuing a credential under issuing policy and if so generates a unique random id and stores . It then adds ID to its public list of issued credentials for .
- : logs into with . If is not nym with or is not nym with , reject. Else, checks if the tuple exists, if associated with that tuple is in the set of credentials that provided, and if the given attributes match the attributes associated with that tuple. If all conditions hold, informs V that has a credential from in the set . then retrieves the set of credentials issued by from and accepts assertion if and only if and issuing policy is valid .
- : retrieves the list of credentials for organization and returns it.
Theorem 6.1 The basic distributed anonymous credential system described above is secure in the random oracle model under the Strong RSA and the Discrete Logarithm (DL) assumptions.
The approach is to show that for every real-world adversary against the credential system, we can construct an ideal-world adversary against the ideal-world system such that the transcript of interacting with the real system is computationally indistinguishable from the transcript produced by interacting with .
A. Description of the Simulator:
Minting a credential:
- When a user controlled by the adversary wants a credential, she generates .
- When a simulator receives the notification, verifies it and extract from the knowledge extractor for the SoK on . then checks if it has the record of and extracts (authentication key with ) . If doesn’t hold this record, create it with by interacting with .
- runs and then transmit to the trusted store and stores in its list of granted credentials.
- When an honest user, through , wants to establish a credential, the simulator creates a credential (using the publicly available ) and uses the simulator for the signature of knowledge to simulate the associated proof. It then transmits the credential information to the trusted store.
Showing a credential:
The simulation works in similar to the Minting a credential, instead, the simulator runs , where is generated through a call to . Here, extracts the private information from the knowledge extractor to the created by the user (who was controlled by the adversary )
Proof (sketch) of a successful simulation:
Under the Discrete Logarithm assumption, is a computational ZKSoK on of the values such that the nym and the credential both belong to the same master secret . An attacker might forge this message by identifying a collision on the commitments, which occurs with negligible probability under DL assumption.
Under the Strong RSA and Discrete Logarithm assumptions, is a statistical NI-ZKPoK of the values s.t. is a witness that is in the accumulator and nym and the credential both belong to the same master secret . An attacker might forge this, by finding a collision on the commitment which occurs with negligible probability under DL assumption or forging the accumulator membership proof which occurs with negligible probability under the strong RSA assumption (collision-resistant property of the accumulator).
The simulator will fail at most with negligible property, as it deals with the ZKSoK and ZKPoK which have efficient extractors and simulators. The proofs and have knowledge extractors that succeed with probability . Since signatures and proofs are the sole point of failure for our simulator described above, it fails with negligible probability.