|
1 | 1 | --- |
| 2 | +mathjax: true |
2 | 3 | --- |
3 | 4 |
|
4 | | -Welcome to the documentation page for the **Cryptimeleon** cryptography libraries developed by the [Codes and Cryptography group](https://cs.uni-paderborn.de/en/cuk-1) at Paderborn University, Germany. |
| 5 | +# Cryptimeleon - prototyping for advanced privacy-preserving constructions |
5 | 6 |
|
6 | | -The Cryptimeleon libraries are a collection of Java libraries for prototyping and research purposes in the area of cryptography, especially pairing-based cryptography. |
7 | | -None of the libraries are vetted for use in security-critical production environments and we strongly discourage such use. |
| 7 | + |
| 8 | +Cryptimeleon (pronounced /krɪptimiːliən/, "cryp-tee-meleon") is an open-source Java library primarily aimed at cryptography researchers. |
| 9 | + |
| 10 | +> You want to prototype and benchmark your new kind of anonymous credentials, group signatures, attribute-based encryption, or other construction in the bilinear group setting? |
| 11 | +> |
| 12 | +> Try Cryptimeleon! |
| 13 | +
|
| 14 | +## ✅ What Cryptimeleon offers |
| 15 | +Cryptimeleon supports the following features (plus others): |
| 16 | +- Write equations in our simple algebraic ([bilinear groups](docs/bilinear-groups.html)) framework. |
| 17 | + - Easily readable, e.g., `g.pow(m).op(h.pow(r))`. |
| 18 | + - Easy parallelism and precomputation. Transparent multiexponentiation. |
| 19 | +- [Benchmark](docs/benchmarking.html) your construction (in milliseconds or count group operations) and put convincing numbers into your paper |
| 20 | + - Android support - run modern crypto on a phone. |
| 21 | +- Implement Schnorr-style zero-knowledge proofs. |
| 22 | + - Specify them using Camenisch-Stadler notation in [subzero](https://cptml.org/subzero) to generate code. |
| 23 | + - Supports AND/OR composition, range proofs, pairing support, Fiat-Shamir, etc. |
| 24 | +- Use the basics you may expect: hash into groups or \\(\mathbb{Z}_p\\), use pseudorandom functions with arbitrary input/output length, ... |
| 25 | + |
| 26 | +## ❌ What Cryptimeleon does _not_ offer |
| 27 | + |
| 28 | +- Do *not* use Cryptimeleon for production code. It is a research tool only and may not offer the security level required in real applications. |
| 29 | +- Do *not* use Cryptimeleon if you want to implement absurd levels of performance optimization. |
| 30 | + - We focus more on easy-to-read APIs than performance. |
| 31 | + - That said, benchmarks with Cryptimeleon are definitely competitive and we do automatically optimize some things in the background. |
| 32 | + |
| 33 | +## Getting started |
| 34 | +- 🙋 To read more, consider our paper [to be published]. |
| 35 | +- 🧑💻 To see example code, read the [5 minute tutorial](/getting-started/5-minute-tutorial.html) or generate a Sigma protocol with [subzero](https://cptml.org/subzero). |
| 36 | +- 👷 To build your own application with Cryptimeleon, [install](/getting-started/installation.html) it via Maven or Gradle. |
| 37 | +- 🧙 For everything else, consult this documentation page, follow our [Twitter](https://twitter.com/cryptimeleon), find the code on [GitHub](https://github.com/cryptimeleon), or [contact us](mailto:contactus@cryptimeleon.org). |
| 38 | + |
| 39 | + |
| 40 | +🏫 Cryptimeleon has been developed at Paderborn University (Germany) in the [Codes and Cryptography group](https://cs.uni-paderborn.de/en/cuk). |
0 commit comments