cryptimeleon / math

Library providing mathematical basics for (pairing-based) cryptography.
Apache License 2.0
10 stars 2 forks source link
cryptography elliptic-curves math-library pairing-based-cryptography

Build Status Build Status Build Status

Math

The Cryptimeleon Math library provides the mathematical foundation for the other Cryptimeleon libraries. It implements basics such as mathematical groups, rings and fields, e.g. Zn, as well as implementations of cryptographic pairings. Furthermore, it offers serialization support for the implemented structures.

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.

Table Of Contents

Features

Below we give a more detailed list of features.

Groups

Math offers the following algebraic groups:

Rings

Math offers the following algebraic rings and fields:

Other Features

Math also implements a number of other features:

Quickstart

Installation With Maven

To add the newest Math version as a dependency, add this to your project's POM:

<dependency>
    <groupId>org.cryptimeleon</groupId>
    <artifactId>math</artifactId>
    <version>[3.0,)</version>
</dependency>

Installation With Gradle

Math 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: 'math', version: '3.+' to the dependencies section of your build.gradle file.

For example:

repositories {
    mavenCentral()
}

dependencies {
    implementation group: 'org.cryptimeleon', name: 'math', version: '3.+'
}

Tutorials

We recommend you go through our short Math tutorial to get started.

We also provide a walkthrough where we show you how to implement a pairing-based signature scheme here.

Note Regarding Pairing Performance

The included java pairings are not optimized for performance. We recommend you use our Mcl wrapper library if you care about pairing performance. It includes an optimized type 3 pairing.

Miscellaneous Information

Authors

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