$ ctf42

seaside

Difficulty Not rated yet

Flag format: dice{...}

To build with default parameters, simply run "make".

The build may be configured with other arguments:

  • BITS is one of the supported parameter sets.
  • UINT_IMPL is an unsigned integer implementation.
  • FP_IMPL is a finite field implementation.

For example,

make BITS=1024

builds the code with a 1024-bit parameter set, and

make UINT_IMPL=uint.c FP_IMPL=fp.c

uses generic C arithmetic instead of assembly.

Other parameter sets may be used by creating a directory modelled after the p512/ and p1024/ folders, optionally including specialized uint.s and fp.s files for assembly arithmetic. Otherwise the generic C implementation will be used.

To build the benchmark code, run "make bench"; it also supports the arguments listed above.

To configure benchmarking, use the following options:

  • BENCH_ITS is the number of iterations.
  • BENCH_VERBOSE enables counts of higher-level operations.

For example,

make bench BENCH_ITS=1000 BENCH_VERBOSE=1

builds a benchmark tool for 1000 iterations of the CSIDH group action (including public-key validation), which collects statistics on the number of clock cycles as well as precise counts for the underlying arithmetic operations.

This implementation makes use of ideas from these references:

  • W. Castryck, T. Lange, C. Martindale, L. Panny, J. Renes: CSIDH: An efficient post-quantum commutative group action. Asiacrypt 2018, https://ia.cr/2018/383

  • M. Meyer, S. Reith: A faster way to the CSIDH. Indocrypt 2018, https://ia.cr/2018/782

  • D. J. Bernstein, T. Lange, C. Martindale, L. Panny: Quantum circuits for the CSIDH: \ Optimizing quantum evaluation of isogenies. Eurocrypt 2019, https://ia.cr/2018/1059

  • M. Meyer, F. Campos, S. Reith: On Lions and Elligators: \ An efficient constant-time implementation of CSIDH. PQCrypto 2019, https://ia.cr/2018/1198

Furthermore, thanks to Daniel J. Bernstein and Bo-Yin Yang for providing the fast 511-bit finite-field inversion code in the directory p512/inv, which is based on the following paper:

  • D. J. Bernstein, B.-Y. Yang: Fast constant-time gcd computation and modular inversion. CHES 2019, https://ia.cr/2019/266

This updated version of the CSIDH-512 software was originally produced based on the previous version 2018-08-26 between 2018-09 and 2019-05. It appears in public only as late as 2021 due to human error.

Writeups

Official

No official writeup linked.

Community

Log in to add a community writeup.