nucypher / NuBLS

NuBLS is pure Rust implementation of BLS signatures with nifty threshold protocols
GNU Affero General Public License v3.0
19 stars 6 forks source link

Implement hash_to_curve #1

Open tuxxy opened 4 years ago

tuxxy commented 4 years ago

We need a hash_to_curve implementation that follows the IETF hash_to_curve draft specification.

The specification can be found here: https://tools.ietf.org/html/draft-irtf-cfrg-hash-to-curve-06. The paper referenced by the IETF spec is found here: https://eprint.iacr.org/2019/403.pdf.

There is a possibility that there already exists an implementation in Rust. A library worth digging into is: https://docs.rs/paired/0.19.1/ (which is a fork of https://gihtub.com/ZKCrypto/pairing).

tuxxy commented 4 years ago

I've added this to the #![no_std] milestone because without a native hash_to_curve implementation any application of this in a no_std environment is likely useless, probably moreso for a WASM build target.

tuxxy commented 4 years ago

I've identified a rust package that includes a hash_to_curve implementation for both G1 and G2, see: https://github.com/apache/incubator-milagro-crypto-rust/blob/develop/src/bls381/core.rs#L820