Skip to content

Predenc contains predicate encryption implementations as well as key encapsulation mechanisms based on such implementations, for example attribute-based encryption.

License

Notifications You must be signed in to change notification settings

cryptimeleon/predenc

Repository files navigation

Build Status Build Status Build Status

Predenc

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.

Security Disclaimer

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.

Implemented Schemes

  • 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]
  • 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].

Quickstart

Installation With Maven

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>

Installation With Gradle

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'
}

Tutorials

Predenc uses the mathematical facilities of our Math library. Therefore, we recommend you go through our short Math tutorial to get started.

Miscellaneous Information

  • 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.

Authors

The library was implemented at Paderborn University in the research group "Codes und Cryptography".

References

[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.

About

Predenc contains predicate encryption implementations as well as key encapsulation mechanisms based on such implementations, for example attribute-based encryption.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages