MCPcopy Index your code
hub / github.com/cloudflarearchive/sidh

github.com/cloudflarearchive/sidh @Release_1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release Release_1.0 ↗ · + Follow
319 symbols 1,248 edges 29 files 179 documented · 56%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

sidh

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: P503 field arithmetic * p751: P751 field arithmetic * sidh: Implementation of SIDH key agreement * sike: Implementation of SIKE PKE and KEM, based on sidh package

Testing

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 -p503, -p751, -sidh or -sike.

Acknowledgements

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

Extension points exported contracts — how you extend this code

Isogeny (Interface)
Interface for working with isogenies. [2 implementers]
internal/isogeny/types.go
MultiIdTestingFunc (FuncType)
Utility used for running same test with all registered prime fields
sidh/sidh_test.go
MultiIdTestingFunc (FuncType)
(no doc)
sike/sike_test.go
FieldOps (Interface)
(no doc) [2 implementers]
internal/isogeny/types.go

Core symbols most depended-on inside this repo

Mul
called by 121
internal/isogeny/types.go
Add
called by 74
internal/isogeny/types.go
Sub
called by 43
internal/isogeny/types.go
Addc64
called by 40
internal/arith/generic.go
Square
called by 38
internal/isogeny/types.go
NewPrivateKey
called by 26
sidh/api.go
ToAffine
called by 21
internal/isogeny/curve_ops.go
EvaluatePoint
called by 20
internal/isogeny/types.go

Shape

Function 221
Method 69
Struct 20
TypeAlias 5
FuncType 2
Interface 2

Languages

Go100%

Modules by API surface

sidh/sidh_test.go29 symbols
p503/arith_test.go26 symbols
p751/arith_test.go25 symbols
internal/isogeny/curve_ops.go23 symbols
sike/sike_test.go22 symbols
internal/isogeny/types.go22 symbols
sidh/api.go17 symbols
p751/field_ops.go14 symbols
p503/field_ops.go14 symbols
p751/curve_test.go13 symbols
p751/utils_test.go12 symbols
p503/utils_test.go12 symbols

For agents

$ claude mcp add sidh \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact