Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/defeo/ss-isogeny-software
Software for "Quantum-Resistant Cryptosystems from Supersingular Elliptic Curve Isogenies"
https://github.com/defeo/ss-isogeny-software
asymmetric-cryptography c cryptosystem elliptic-curves isogenies key-exchange-protocol python quantum-resistant-cryptosystems sage
Last synced: 3 months ago
JSON representation
Software for "Quantum-Resistant Cryptosystems from Supersingular Elliptic Curve Isogenies"
- Host: GitHub
- URL: https://github.com/defeo/ss-isogeny-software
- Owner: defeo
- License: gpl-3.0
- Created: 2014-05-12T13:20:18.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2019-07-11T08:43:03.000Z (over 5 years ago)
- Last Synced: 2024-04-15T03:04:12.223Z (10 months ago)
- Topics: asymmetric-cryptography, c, cryptosystem, elliptic-curves, isogenies, key-exchange-protocol, python, quantum-resistant-cryptosystems, sage
- Language: C
- Size: 238 KB
- Stars: 90
- Watchers: 18
- Forks: 19
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Quantum-Resistant Cryptosystems from Supersingular Elliptic Curve Isogenies
===========================================================================Copyright 2011-2016 Luca De Feo .
This software implements the cryptosystem described in
> D. Jao and L. De Feo, Towards quantum-resistant cryptosystems from
> supersingular elliptic curve isogenies. *Post-Quantum Cryptography*,
> Nov 2011, Taipei, Taiwan. Springer, LNCS 7071, pp. 19-34, 2011.> L. De Feo, D. Jao and J. Plût, Towards quantum-resistant
> cryptosystems from supersingular elliptic curve isogenies. *Journal
> of Mathematical Cryptology*, 8(3), pp. 209-247. De Gruyter, 2014.**WARNING:** This code is obsolete. For a modern treatment, please see
the official code for the [NIST candidate SIKE](https://sike.org/),
and the additional implementations referenced
[here](https://sike.org/#implementation).Installation
------------Just clone or
[download](https://github.com/defeo/ss-isogeny-cryptosystem/archive/master.zip)
this repo.You will need a recent version of [Sage](http://sagemath.org/) and a C
compiler. This version has been tested with Sage 6.10 and gcc 5.2.1.Usage
-----In a Sage shell type
sage: load('pqcrypto11.sage')
Some predefined key sizes are stored in a string-indexed dictionary
called 'parameters'. Read `pqcrypto11.sage` to find them out.Public data for a cryptosystem are generated via a call to
`ss_isogeny_gen`. For example, to obtain parameters relative to a
40-bit prime, typesage: set_verbose(1)
sage: pdata = ss_isogeny_gen(**parameters['2-3-40'])The key exchange is performed by `ss_isogeny_exchange`. Type
sage: ss_isogeny_exchange(*pdata)
sage: set_verbose(0)The function `ss_isogeny` runs both previous functions in one. The
previous sequence of commands is equivalent tosage: ss_isogeny('2-3-40', verbose=1)
Additional parameters can be passed to these functions, read
`pqcrypto11.sage`.**NOTE:** The file `gfp2.c` can be compiled as a standalone program
withgcc -lgmp gfp2.c
Then it can be run to gather estimates on the running times of
doublings, triplings, 2 and 3-isogeny evaluations. These data can be
used to tune up (via the dictionary "weights" in `pqcrypto11.sage`)
the key exchange algorithm.Thanks
------Many thanks to those who have helped in testing and fixing this
software.- David Jao,
- Jérôme Plût,
- Erik Nellessen.
- Adarsh Saraf,
- Srinath,
- Miha Marolt @miham