py_ecc icon indicating copy to clipboard operation
py_ecc copied to clipboard

Constant time hashing to the curve

Open ralexstokes opened this issue 6 years ago • 0 comments

What is wrong?

For bls12-381 we want to map messages to points on the curve. The current implementation uses an expensive "hash and check" method via hash_to_g2. It is desirable to have a more performant method of mapping a given message to the curve.

How can it be fixed

Luckily, there was recent work on a constant time hashing method w/ implementation here:

https://github.com/kwantam/bls12-381_hash

There are some BLS standardization efforts under way that will likely involve making this method the canonical "hash to the curve". If this method makes its way into the standard, then we will definitely want to include it.

The linked repo has a C implementation and a pure Python implementation. We can add both, in the appropriate places, to get the functionality we want.

ralexstokes avatar May 28 '19 15:05 ralexstokes