Go to file
Daira Hopwood d93cabbaf8 injectivitylemma6.py: fix bugs in comments.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-04-26 11:58:21 +01:00
Ep Change to quadratic twist-secure curve. 2019-09-17 11:28:59 +01:00
Eq Change to quadratic twist-secure curve. 2019-09-17 11:28:59 +01:00
.gitignore Adapt for Tweedledum/Tweedledee. 2019-09-08 16:23:19 +01:00
LICENSE Add LICENSE and .gitignore. Also fix the curve equation. 2017-11-02 06:16:58 +00:00
README.md README: be clearer about which version of the paper is obsolete. 2020-03-15 14:47:54 +00:00
amicable.sage amicable.sage: compatibility with Python3-based sage. 2020-04-25 17:38:14 +01:00
checksumsets.py checksumsets.py: if BRUTEFORCE_THRESHOLD is 0, don't call bruteforce_D 2020-02-23 11:36:02 +00:00
clean.sh Add clean.sh . 2019-09-17 11:14:04 +01:00
injectivitylemma.py injectivitylemma.py: add header comment. 2020-02-18 09:42:59 +00:00
injectivitylemma6.py injectivitylemma6.py: fix bugs in comments. 2020-04-26 11:58:21 +01:00
run.sh Adapt for Tweedledum/Tweedledee. 2019-09-08 16:23:19 +01:00
verify.sage verify.sage: tabs to spaces. 2020-04-25 18:21:59 +01:00

README.md

Tweedledum/Tweedledee supporting evidence

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

  • Ep : y^2 = x^3 + 5 over GF(p) of order q, called Tweedledum;
  • Eq : y^2 = x^3 + 5 over GF(q) of order p, called Tweedledee;

with

  • p = 2^254 + 4707489545178046908921067385359695873
  • q = 2^254 + 4707489544292117082687961190295928833

satisfy some of the SafeCurves criteria.

The criteria that are not satisfied are, in summary:

  • large-magnitude CM discriminant (both curves have CM discriminant of absolute value 3, as a consequence of how they were constructed);
  • completeness (complete formulae are possible, but not according to the Safe curves criterion);
  • ladder support (not possible for prime-order curves);
  • Elligator 2 support (indistinguishability is possible using Elligator Squared, but not using Elligator 2).

Tweedledum/Tweedledee is the first cycle output by sage amicable.sage --sequential --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.)

The cycle we call Tweedledum/Tweedledee has changed from the initial (September 2019) draft of the paper.

Prerequisites:

  • apt-get install sagemath
  • pip install sortedcontainers

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