The Cryptimeleon Predenc project contains various predicate encryption implementations such as attribute-based encryption or identity-based encryption. Furthermore, it contains key encapsulation mechanisms based on predicate encryption schemes.
WARNING: This library is meant to be used for prototyping and as a research tool only. It has not been sufficiently vetted for use in security-critical production environments. All implementations are to be considered experimental.
- Encryption schemes:
- Attribute-based:
- Waters' ciphertext-policy attribute-based encryption scheme [Wat11]
- Goyal et al.'s key-policy attribute-based encryption scheme [GPSW06]
- Identity-based:
- Fuzzy identity-based encryption [SW05]
- Identity based encryption from the Weil pairing [BF01]
- Attribute-based:
- Key encapsulation mechanisms (KEM): We implement several KEMs based on the encryption schemes implemented in this library. Predenc provides KEMs for [Wat11], [GPSW06] and [SW05].
To add the newest Predenc version as a dependency, add this to your project's POM:
<dependency>
<groupId>org.cryptimeleon</groupId>
<artifactId>predenc</artifactId>
<version>1.0.1</version>
</dependency>
Predenc is published via Maven Central.
Therefore, you need to add mavenCentral()
to the repositories
section of your project's build.gradle
file.
Then, add implementation group: 'org.cryptimeleon', name: 'predenc', version: '1.0.1'
to the dependencies
section of your build.gradle
file.
For example:
repositories {
mavenCentral()
}
dependencies {
implementation group: 'org.cryptimeleon', name: 'predenc', version: '1.0.1'
}
Predenc uses the mathematical facilities of our Math library. Therefore, we recommend you go through our short Math tutorial to get started.
- Official Documentation can be found here.
- The For Contributors area includes information on how to contribute.
- Predenc adheres to Semantic Versioning.
- The changelog can be found here.
- Predenc is licensed under Apache License 2.0, see LICENSE file.
The library was implemented at Paderborn University in the research group "Codes und Cryptography".
[BF01] Dan Boneh and Matt Franklin. "Identity-Based Encryption from the Weil Pairing". In: Advances in Cryptology — CRYPTO 2001. CRYPTO 2001. Ed. by Joe Kilian. Vol. 2139. Lecture Notes in Computer Science. Springer, Berlin, Heidelberg, August 2001, pp. 213-229.
[SW05] Amit Sahai and Brent Waters. "Fuzzy Identity-Based Encryption". In: Advances in Cryptology – EUROCRYPT 2005 (pp. 457–473). Springer Berlin Heidelberg.
[GPSW06] Vipul Goyal, Omkant Pandey, Amit Sahai, and Brent Waters. "Attribute-based encryption for fine-grained access control of encrypted data". In: ACM Conference on Computer and Communications Security. ACM, 2006, pages 89–98.
[Wat11] Brent Waters. Ciphertext-policy attribute-based encryption: An expressive, efficient, and provably secure realization. In Public Key Cryptography. Springer, 2011, pp. 53–70.