Home

Awesome

Pallas/Vesta supporting evidence

This repository contains supporting evidence that the amicable pair of prime-order curves:

with

satisfy some of the SafeCurves criteria.

The criteria that are not satisfied are, in summary:

Pallas/Vesta is the first cycle output by sage amicable.sage --sequential --requireisos --sortpq --ignoretwist --nearpowerof2 255 32.

(The --sequential option makes the output completely deterministic and so resolves ambiguity about which result is "first". For exploratory searches it is faster not to use --sequential.)

Prerequisites:

Run sage verify.sage Ep and sage verify.sage Eq; or ./run.sh to run both and also print out the results.

The output of amicable.sage with the above options includes isogenies of degree 3, suitable for use with the "simplified SWU" method for hashing to an elliptic curve. This is based on code from Appendix A of Wahby and Boneh 2019.

To check the correctness of the endomorphism optimization described in the Halo paper, run python3 injectivitylemma.py and python3 checksumsets.py. To also generate animations showing the minimum distances between multiples of ζ used in the proof, run ./animation.sh.

animation.sh has the following prerequisites:

checksumsets.py on its own only requires the bintrees Python package.