Skip to content

relic-toolkit/relic

Repository files navigation

Project stats GHA Status GHA Status GHA Status

RELIC is a modern research-oriented cryptographic meta-toolkit with emphasis on efficiency and flexibility. RELIC can be used to build efficient and usable cryptographic toolkits tailored for specific security levels and algorithmic choices.

Goals

RELIC is an ongoing project and features will be added on demand. The focus is to provide:

  • Ease of portability and inclusion of architecture-dependent code
  • Simple experimentation with alternative implementations
  • Tests and benchmarks for every implemented function
  • Flexible configuration
  • Maximum efficiency

Algorithms

RELIC implements to date:

  • Multiple-precision integer arithmetic
  • Prime and Binary field arithmetic
  • Elliptic curves over prime and binary fields (NIST curves and pairing-friendly curves)
  • Bilinear maps and related extension fields
  • Cryptographic protocols (RSA, Rabin, ECDSA, ECMQV, ECSS (Schnorr), ECIES, Sakai-Ohgishi-Kasahara ID-based authenticated key agreement, Boneh-Lynn-Schacham and Boneh-Boyen short signatures, Paillier and Benaloh homomorphic encryption systems)
  • Pairing delegation protocols with public and private inputs
  • Batch pairing delegation protocols with public inputs

Build instructions

Instructions for building the library can be found in the Wiki.

For the pairing delegation protocols, look for the corresponding entries in the output of the test_cp testing binary, and entries with prefix cp_amore_* (1) (for the sequential version), cp_amore_* (AGGS) (for the batch version) in the output of the bench_cp benchmarking binary. You can change the parameter AGGS in the source code to adjust the number of pairings.

Support

You can probably get some help over the official mailing list at [email protected]

If you like the library, please consider supporting development through Paypal.

Licensing

This work is dual-licensed under Apache 2.0 and LGPL 2.1-or-above to encourage collaboration with other research groups and contributions from the industry. You can choose between one of them if you use this work.

SPDX-License-Identifier: Apache-2.0 OR LGPL-2.1

Starting from version 0.3.3, static linking and changes in the configuration or build system are explicitly exempted from representing derived works. Please refer to the LICENSE files for additional details.

Disclaimer

RELIC is at best alpha-quality software. Implementations may not be correct or secure and may include patented algorithms. There are many configuration options which make the library horribly insecure. Backward API compatibility with early versions may not necessarily be maintained. Side-channel and fault injection attacks are not considered in particular, unless it is explicitly noted. Use at your own risk.

About

Code

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 46