This repository contains the code accompanying the paper Return of the Kummer: a toolbox for genus 2 cryptography by Maria Corte-Real Santos and Krijn Reijnders.
All code in this repository was written in Magma
, Python
and SageMath
, and is made publicly available under the MIT license. The dependencies are:
- Python 3.11.1 (with matplotlib)
- SageMath version 10.1
- Magma version V.25-4
This repository contains two main directories:
Magma
: this contains many of the crucial techniques and tools for isogeny-based cryptography in genus 2 as described in the paper. The folder is subdivided into the sections of the paper. Symbolic proofs for several results of the paper are given in the subfolderproofs
. All the code in this directory is written inMagma
, and is explained in more detail in theREADME.md
file for this subdirectory.Python
: this contains the code used for benchmarking verification, thus includes the required Kummer arithmetic to achieve both compressed and uncompressed SQIsign verification on Kummer surfaces. The code in this directory is written inPython
, with a small part inSageMath
, and is explained in more detail in theREADME.md
file for this subdirectory.
The Magma code in the Magma
subdirectory is based on the work Computing supersingular isogenies on Kummer surfaces by Craig Costello, and in particular uses code from the associated repository.
The code is furthermore partly based on the work Fast genus 2 arithmetic based on Theta functions by Pierrick Gaudry, and its associated code.
Throughout, by python
we mean python3
if your terminal requires this (e.g., some MacOS versions may require this.)
Code in this repository that does not indicate otherwise is published under the MIT license, as is the third-party code that this code is based on.