by cloudflarearchive

cloudflarearchive / sidh

Supersingular Isogeny Diffie-Hellman in Go

124 Stars 21 Forks Last release: Not found Other 144 Commits 2 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:


Project provides a Go implementation of (ephemeral) supersingular isogeny Diffie-Hellman (SIDH) and supersingular isogeny key exchange (SIKE), as specified in SIDH-spec, PQC NIST Submission (Nov 30, 2017).

Portions of the field arithmetic were ported from the Microsoft Research implementation.

The SIDH package does NOT implement key validation. It means that it should only be used for ephemeral DH. Each keypair should be used at most once.

If you feel that SIDH may be appropriate for you, consult your cryptographer.

Source code

Project provides following packages: *

: P503 field arithmetic *
: P751 field arithmetic *
: Implementation of SIDH key agreement *
: Implementation of SIKE PKE and KEM, based on


At development time following make targets may come handy: *

make test
: unit testing *
make bench
: benchmarking *
make cover
: produces code coverage as txt file (used by travis)

It is possible to add one of following postfixes to each of the targets above, in order to run tests specific to



Special thanks to Craig Costello, Diego Aranha, and Deirdre Connolly for advice and discussion.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.