Let us walk on the 3-isogeny graph
|
This repository contains auxiliary material taken from the dCTIDH repository. In particular, we list the modifications performed on the code below.
dCTIDH/CMakeLists.txt
: added flag option for using radical 3-isogenies.dCTIDH/main/CMakeLists.txt
: added flag option for using radical 3-isogenies.dCTIDH/main/ctidh.c
: added benchmark for the key generation (keygen).dCTIDH/src/CMakeLists.txt
: added flag option for using radical 3-isogenies.dCTIDH/src/CMakeLists.txt
: added isogeny_walks_3fp to compilation (line 197).dCTIDH/src/CTIDH/ctidh.c
: removed used of (at most) the fifth smallest isogeny degrees (3,5,7,11,13).dCTIDH/src/CTIDH/ctidh.c
: Added radical 3-isogeny's call (line 387-389).dCTIDH/src/CTIDH/ctidh.h
: added radical 3-isogeny data in the private keydCTIDH/src/CTIDH/isogeny_walks.h
: added radical 3-isogeny headerdCTIDH/src/CTIDH/isogeny_walks_3_fp.c
: added radical 3-isogeny source codedCTIDH/src/common/primes.h
: updated exponent of two.dCTIDH/src/common/primes2047m1l226.c
: removed used of (at most) the fifth smallest isogeny degrees (3,5,7,11,13).dCTIDH/src/common/primes2047m4l205.c
: removed used of (at most) the fifth smallest isogeny degrees (3,5,7,11,13).dCTIDH/src/common/primes2047m6l194.c
: removed used of (at most) the fifth smallest isogeny degrees (3,5,7,11,13).dCTIDH/src/common/skgen.c
: added radical 3-isogeny.dCTIDH/src/common/validate.c
: updated according to remove (at most) the fifth smallest isogeny degrees (3,5,7,11,13)..dCTIDH/src/CTIDH/isogeny_walks_3_fp.c
: added radical 3-isogeny layer.dCTIDH/src/CTIDH/isogeny_walks.h
: added namespace for the radical 3-isogeny layer.In addition, this repository includes the corresponding implementation of projective radical 3-isogenies.
Use the flag option -DOPT_RAD=ARG_RAD
with ARG_RAD=[0/1/2/3/4/5]
to employ radical 3-isogenies. The code takes ARG_RAD=0
by default.
This builds the executables for 3 versions:
The benchmarks can be analyzed using the analyze_bench.py
script:
To run the benchmarking script and generate the related statistics, please run
This will generate a tree structure like the one shown below
To run the statistics, for a particular OPT_RAD
, execute
Examples:
This will output the results like the following
where the highlighted number is the desired statistical result.
If DENABLE_CT_TESTING=ON
, checkct
versions of the executable are created for all versions, which can be validated with valgrind
.
For example, to validate that ctidh-2047m6l194
is constant-time:
For the third-party code see their licenses: