Cryptic
The purpose of Cryptic is to preserve privacy by enabling the user to control the diffusion of his certified information.
Cryptic is a library published under GNU GPL v2 licence enabling the implementation of digital certificates with advanced properties. Cryptic is written in C and relies on glib and openssl. The version 1.1.1 offers bindings for the use of Python and Java languages. The library is delivered with examples.
Overview
The generated certificates can have the following properties:
- Selective content presentation.
- Certificate content proofs.
- Non-associativity of certificate delivery and presentation transactions (Unlinkability).
Functions
- The CL-Signature resulting from the works of Camenisch and Lysyanskaya
- The zero-knowledge proof of knowledge protocol from Schnorr
- Range proofs on quantities
Download
- Tarball version 1.1.1 : cryptic-1.1.1.tar.gz
- Repository: git@repos.entrouvert.org:cryptic.git
- Tags signature public key
- Browse the sources
Lists
- Development : cryptic-devel@listes.entrouvert.com
- Commits : cryptic-commits@listes.entrouvert.com
To go further...
The Cryptic library can serve as a basis for the creation of different format certificates enabling the selective content presentation and the property proofing of signed information. The purpose is a fine-grained information disclosure when using off-line certificates. These certificates can be used at multiple times without the need for their re-emission. When a certificate is re-emitted on demand, it is easy to display only selected information in the certificate. When the certificate is already emitted, the needs may be needed to display only part of the information contained in a certificate: for example, display only the city and not the complete address, display legal age status and not age, etc.
The implementation of the CL-Signature also enables the prevention the associativity of certificates delivery and presentation transactions. The interest lies in preventing the association of transactions of a same entity to multiple organizations. One may not want two organizations that receive a same certificate to associate their respective identity of one same individual by presenting a single certificate. In the same way, it may be needed that the certificate issuer and the certificate consumers may not be able to do such an association. The use of such certificates is needed to reach the non-associativity of transactions, which is a strong property of anonymity.
Finally, these tools are adapted as basis for e-cash or electronic poll solutions.
