| ECHIDNA Algorithms Archive | ECHIDNA-1.0.tgz | Mercurial archive |
| This is the complete tar file of ECHIDNA, version 1.0, for computational and
algorithmic research in the arithmetic of curves, Jacobian, number fields (particularly
CM fields), lattices, and algebras, over a period of 10 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, 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. These packages are compatible with Magma V2.13; with future ports to SAGE. 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 Algebra and Geometry Experimentation 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 into a directory structure share/src/ in which you should modify the file share/src/System/directory.m to indicate the path where you have installed it. Then from Magma, do 'AttachSpec(GetShareRoot() * "/src/echidna.spec");', or just include this line in your startup .magmarc file. Any database files you untar into share/dbs/ and can be accessed via the path specified by 'GetShareRoot();' (or equivalently 'GetEchidnaRoot();'). BUG REPORTS: Please report any bugs to David Kohel kohel@maths.usyd.edu.au in sufficient detail to reconstruct the bug. |
||
| 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-X0(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 for Algebra and Geometry Experimetation page. | ||
| David R. Kohel (kohel@maths.usyd.edu.au) University of Sydney |
|