Echidna Algorithms | Latest version: echidna-5.0.spkg | Previous versions: echidna-4.0.spkg |
This is the complete Sage package for Echidna Algorithms, version 5.0 (for Magma V2.19 or higher).
This code is designed for computational and algorithmic research in the arithmetic
of curves, Jacobian, number fields (particularly CM fields), lattices, and algebras,
over a period of many years, including code contributions by and/or the output of
collaborations
with Robert Carls, Pierrick Gaudry, Martine Girard, David Gruenewald, Thomas Houtmann,
Hamish Ivey-Law, Jürgen Klüners, David Lubicz, Christophe Ritzenthaler,
Benjamin Smith, William Stein, Helena Verrill, Annegret Weng, Geordie Williamson,
and others.
Description of individual packages and some documentation can be found below. This package is a bzip2'ed tar file of open source Magma code. For databases of modular polynomials, defining modular curves and their correspondences, class polynomials for genus 1 and 2, quaternion algebras, and of Brandt modules and their decompositions and Hecke algebra structures, consult the page Echidna Databases for associated data. For Magma code development, emacs users may find this customizable magma mode may be of use (version is adapted from an initial version of William Stein, which was in turn derived from the GNU elisp shell.el). INSTALLATION: The tar file expands (tar -xvjf echidna-5.0.spkg) into a directory structure echidna-5.0/[src,dbs]. To avoid the need to modify the path in echidna-5.0/src/System/directory.m, you should define an ECHIDNA_ROOT environment variable. For instance in bash, place: export ECHIDNA_ROOT=$HOME/echidna-5.0 in your .bash_profile. Now, to automatically load Echidna on startup, place the following line in your .magmarc file: AttachSpec(GetEnv("ECHIDNA_ROOT")*"/src/echidna.spec"); or call this from Magma. BUG REPORTS: Please report any bugs to David Kohel David.Kohel@univ-amu.fr. |
||
Package Title | Documentation | |
Quaternion Algebras | AlgQuat.pdf | |
This is a package for quaternion algebras and their orders, with special functionality for quaternion algebras over the rationals. | ||
Brandt Modules | ModBrdt.pdf | |
This is a package for working in the free module generated by the left ideal classes of a definite quaternion algebra over the rationals. | ||
AGM-X_{0}(N) | AGM-X0.pdf | |
This is a package for point counting in elliptic curves over finite fields of characteristics 2, 3, 5, 7, and 13. In a generalization of the p-adic lifting method of Mestre, this algorithms uses models for modular curves of genus zero to lift CM points p-adically to characteristic zero, and "read off" the trace of Frobenius from its action on the space of differentials of a parametrized curve. This package complements my Asiacrypt'03 article "The AGM-X0(N) Heegner point lifting algorithm and elliptic curve point counting". | ||
Picard Groups | PicCrv.pdf | |
This is a package for working in the Picard group of a curve. The present implementation forms the Picard group of the nonsingular resolution of the input curve. | ||
Singular Cubic Curves | ||
This package is an implementation of the group law on possibly singular cubic curves, extending the elliptic curve group law to this larger class of curves. | ||
Singular Hyperelliptics | ||
This package implements the generalized Jacobian of a singular hyperelliptic curve as described in my preprint "Constructive and destructive aspects of torus-based cryptography". The file jachypsng.m is sample code demonstrating its use for jacobian arithmetic, discrete logarithms, and morphisms between jacobians and the multiplicative group as described in the preprint. The package for singular cubic curves is also used in this file. | ||
Genus 2 Curve Invariants and Canonical Lifts | ||
This package is a bundle of code for computing with moduli of genus 2 curves, Igusa invariants, Rosenhain invariants, and theta null values and their canonical lifts. The underlying algorithms represents research with Ritzenthaler, and subsequently Gaudry, Houtman, and Weng; with Ben Smith; and with Carls and Lubicz. | ||
Jacobians of Genus 2 Curves | ||
This package contains code for computing a projective embedding for the Jacobian of a genus 2 curve, and its formal group. This includes code written with Geordie Williamson. | ||
Hyperelliptic Jacobians | ||
Various algorithms for computing endomorphism rings of a hyperelliptic Jacobians and simple index calculus relation calculations. | ||
Quartic CM Fields | ||
Algorithms for quartic CM fields (invariants, reflex fields, real subfields, etc.). | ||
Genus 3 Curve Invariants | ||
This computes the Dixmier-Ohno invariants of a plane quartic (given as a homogeneous polynomial in three variables) and the Shioda invariants of a genus 3 hyperelliptic (see Shioda, On the graded ring of invariants of binary octavics). | ||
Cryptosystems | ||
This is a teaching package for use in a course in classical cryptography, covering substitution and transposition ciphers, linear feedback shift registers, RSA, and ElGamal. See my former MATH3024, which contains information on its use (particularly the tutorials), but see the course page for my ICE-EM/AMSI Summer School course in Cryptography for my book and an expanded cryptography package in Sage. | ||
User Databases | DBUser.txt | |
This package provides an interface to the various databases on the Echidna Databases page. |
David Kohel (David.Kohel@univ-amu.fr) Institut de Mathématiques de Marseille |