https://github.com/hyperledger/anoncreds-clsignatures-rs
https://github.com/hyperledger/anoncreds-clsignatures-rs
anoncreds
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/hyperledger/anoncreds-clsignatures-rs
- Owner: hyperledger
- License: apache-2.0
- Created: 2023-04-28T16:26:27.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-09-30T11:33:24.000Z (over 1 year ago)
- Last Synced: 2025-04-29T18:53:03.870Z (about 1 year ago)
- Topics: anoncreds
- Language: Rust
- Homepage:
- Size: 4.04 MB
- Stars: 8
- Watchers: 13
- Forks: 13
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# CL Signatures Rust
CL Signatures, cryptographic signatures with efficient protocols are a form of
digital signature invented by [Jan Camenisch] and [Anna Lysyanskaya] (papers:
[2001], [2003], [2004]). In addition to being secure digital signatures, they
need to allow for the efficient implementation of two protocols:
- A protocol for computing a digital signature in a secure two-party computation protocol.
- A protocol for proving knowledge of a digital signature in a zero-knowledge protocol.
In applications, the first protocol allows a signer to possess the signing key
to issue a signature to a user (the signature owner) without learning all the
messages being signed or the complete signature.
The second protocol allows the signature owner to prove that he has a signature
on many messages without revealing the signature and only a (possibly) empty
subset of the messages.
CL Signatures are the basis of [Hyperledger AnonCreds v1.0] and the implementation in this repository
is used in the [Hyperledger AnonCreds Rust implementation].
This implementation of CL Signatures was initially in the [Hyperledger Ursa]
project.
[Jan Camenisch]: https://en.wikipedia.org/wiki/Jan_Camenisch
[Anna Lysyanskaya]: https://en.wikipedia.org/wiki/Anna_Lysyanskaya
[2001]: https://eprint.iacr.org/2001/019.pdf
[2003]: https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=764e89025d68eda8010732285add5a4296f4e0ae
[2004]: https://cs.brown.edu/~alysyans/papers/cl04.pdf
[Hyperledger AnonCreds v1.0]: https://hyperledger.github.io/anoncreds-spec/
[Hyperledger AnonCreds Rust implementation]: https://github.com/hyperledger/anoncreds-rs
[Hyperledger Ursa]: https://github.com/hyperledger/ursa
## Rust Crate
This crate implements a version of the CL signature scheme.
To start, all that is needed is to add this to your `Cargo.toml`.
```toml
[dependencies]
anoncreds-clsignatures = "0.1"
```
For an example of using this crate, see the [Hyperledger AnonCreds Rust
implementation] repository.