Cryp­timele­on - pro­to­typ­ing for ad­vanced pri­vacy-pre­serving con­struc­tions

Cryptimeleon (pronounced /krɪptimiːliən/, “cryp-tee-meleon”) is an open-source Java library primarily aimed at cryptography researchers and originates from the Codes and Cryptography working group at paderborn university.


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? Try Cryptimeleon!


It aims at researchers in the field of privacy-preserving cryptography with a tailor-made feature set. Hence researchers that want to quickly implement their constructions (1) as a sanity check, and (2) for benchmark numbers in their papers. To ease the implementation process, Cryptimeleon “speaks the language” of paper writers. It offers a similar degree of abstraction as is commonly used in research papers. For example, bilinear groups can be used as the familiar black-box and Schnorr-style proofs can be described on the level of Camenisch-Stadler notation. It employs several optimizations (such as multi-exponentation) transparently, allowing the developer to phrase computations as written in the paper instead of having to conform to an artificial API for better performance.

To support researchers on every level and we provide most building blocks out of the box. For example Cryptimeleon implements finite fields, elliptic curve groups and pairings, hashing, Schnorr-style zero-knowledge proofs, accumulators, digital signatures, secret sharing, group signatures, attribute-based encryption, and other modern cryptographic constructions.

An overview of Cryptimeleon’s parts and implemented schemes is presented in the following figure. The mathematical underpinning is covered by the Math library. The implemented schemes are collected in a part called Craco and on top of that we provide implementations of predicate encryption, group signatures, and an incentive system based on updatable anonymous credentials.

For more information and formal details we suggest reading eprint paper on Cryptimeleon. If you want to check out the library first-hand then jump into the 5 Minute Tutorial.

You can also contribute to the Cryptimeleon project directly by implementing your construction and creating a pull request on github, see our website and github for more details.

If you are a student and interested in the topic of close-to-paper prototyping or just seeing cryptography in action then contact us (Jan Bobolz, Fabian Eidens). We can always use people extending our library (potentially in form of a Bachelor/Master thesis)!