#encryption #ecc #no-std #ibe

no-std ibe

Identity Based Encryption schemes on the BLS12-381 pairing-friendly elliptic curve

10 releases

Uses new Rust 2021

0.2.2 Jun 28, 2022
0.2.1 Jun 2, 2022
0.2.0 May 10, 2022
0.2.0-beta.1 Apr 22, 2022
0.1.2 Nov 26, 2019

#311 in Cryptography

Download history 29/week @ 2022-06-16 77/week @ 2022-06-23 66/week @ 2022-06-30 42/week @ 2022-07-07 39/week @ 2022-07-14 47/week @ 2022-07-21 33/week @ 2022-07-28 34/week @ 2022-08-04 24/week @ 2022-08-11 16/week @ 2022-08-18 23/week @ 2022-08-25 22/week @ 2022-09-01 57/week @ 2022-09-08 23/week @ 2022-09-15 37/week @ 2022-09-22 39/week @ 2022-09-29

160 downloads per month
Used in 2 crates

MIT license

110KB
2.5K SLoC

IBE

Collection of Identity Based Encryption (IBE) schemes on the BLS12-381 pairing-friendly elliptic curve in Rust. This crate contains both identity-based encryption schemes (IBEs, see src/pke) and identity-based key encapsulation mechanisms (IBKEMs, see src/kem). References to papers appear in the respective source files.

This crate contains the following schemes (in chronological order of publication):

  • Waters (IND-ID-CPA IBE),
  • Boyen-Waters (IND-sID-CPA IBE),
  • Waters-Naccache (IND-ID-CPA IBE),
  • Kiltz-Vahlis IBE1 (IND-CCA2 IBKEM),
  • Chen-Gay-Wee (IND-ID-CPA IBE, IND-ID-CCA2 IBKEM).

Technical notes

  • This implementation has not (yet) been reviewed or audited. Use at your own risk.
  • Uses Keccak for hashing to identities, hashing to secrets and as symmetric primitives for the Fujisaki-Okamoto transform.
  • Compiles succesfully on Rust Stable.
  • Does not use the Rust standard library (no-std).
  • The structure of the byte serialisation of the various datastructures is not guaranteed to remain constant between releases of this library.
  • All operations in this library are implemented to run in constant time.
  • The performance of this library is heavily dependant on the arithmetic of the underlying curve, BLS12-381. Any new optimizations to the original library could significantly increase performance of the schemes in this crate. It should therefore be considered to merge these optimizations into this crate as well (via the irmaseal-curve crate).

Dependencies

~1MB
~22K SLoC