armfazh
46ef404eba
New optimizations derived from armfazh/flor-sidh-x64 project.
Look at optimizations.md file.
há 7 anos
Henry de Valence
e730a9e871
p751sidh: add README content
há 7 anos
Henry de Valence
5f479b1d40
p751sidh: use quick.Check for testing shared secret computation
há 7 anos
Henry de Valence
dea4fa5c4c
p751sidh: add documentation
há 7 anos
Henry de Valence
d11f070e62
p751sidh: doc fixups
há 7 anos
Henry de Valence
b5437cbfa9
p751sidh: make scalar bytes public and fixed-size
há 7 anos
Henry de Valence
4928f87299
p751sidh: rename package to p751sidh, p751toolbox
há 7 anos
Henry de Valence
f8efbfa69f
cln16sidh: prepare for code splitting
há 7 anos
Henry de Valence
bbfe85d80c
cln16sidh: have SIDH functions give byte outputs
há 7 anos
Henry de Valence
73f3fb400d
cln16sidh: move SecretPoint, DistortAndDifference to curve.go
há 7 anos
Henry de Valence
82a40ce1e6
cln16sidh: update benchmarks
Use "shared secret" instead of "key agreement" to point out that there's no hashing, key derivation, etc. going on.
Measure the keypair generation (including random sampling) in the "fast" benchmarks.
há 7 anos
Henry de Valence
91db102d7d
cln16sidh: add secret key generation
há 7 anos
Henry de Valence
11976a638e
cln16sidh: add de/serialization for SIDH public keys
há 7 anos
Henry de Valence
2a65c75cc5
cln16sidh: refactor SIDH kex from initial work
há 7 anos
Henry de Valence
d19dd55622
cln16sidh: use public keys without curve parameters
A later revision of the CLN paper uses the Montgomery relation to recover the a
value from the three x-coordinates in the public key, saving its transmission.
This patch improves slightly over the description in the paper, by
projectivizing the computation of the first four-isogeny; this means that it's
not necessary to perform an inversion to get the affine a value.
há 7 anos
Henry de Valence
a9139f499b
cln16sidh: add curve parameter recovery
há 7 anos
Henry de Valence
284917f704
cln16sidh: rough work on SIDH key agreement
há 7 anos
Henry de Valence
6fec539d88
cln16sidh: add benchmark for Alice's keygen
há 7 anos
Henry de Valence
aba3ad58ba
cln16sidh: fix sign error in 4-isogeny computations
há 7 anos
Henry de Valence
aca4333bba
cln16sidh: add benchmarks for Bob's keygen
há 7 anos
Henry de Valence
60d47ce8a2
cln16sidh: implement Bob's key generation
há 7 anos
Henry de Valence
7c4e3b1d53
cln16sidh: add 3-isogeny test via Sage
há 7 anos
Henry de Valence
827c8a2605
cln16sidh: add test for FirstFourIsogeny
há 7 anos
Henry de Valence
713624a43c
cln16sidh: add key generation for Alice (currently broken)
há 7 anos
Henry de Valence
95f392eb67
cln16sidh: implement FirstFourIsogeny
há 7 anos
Henry de Valence
3f6eaf7f16
cln16sidh: move isogeny computations to seperate file
há 7 anos
Henry de Valence
f2c7421ce2
cln16sidh: implement secret point generation
há 7 anos
Henry de Valence
de4cd5d7ff
cln16sidh: add negation operators
há 7 anos
Henry de Valence
cb7a285ff7
cln16sidh: add fromAffine constructors for points
há 7 anos
Henry de Valence
545238d4fc
cln16sidh: implement y-coordinate recovery
há 7 anos
Henry de Valence
071d05068a
cln16sidh: test prime field scalar mult against torsion points
há 7 anos
Henry de Valence
8ff5a111cd
cln16sidh: add E(F_p) functionality
há 7 anos
Henry de Valence
2c10aa9d31
cln16sidh: rename ExtensionFieldElementConditionalSwap
há 7 anos
Henry de Valence
32eed216a7
cln16sidh: rename jInvariant to JInvariant
há 7 anos
Henry de Valence
70aac4706c
cln16sidh: add ladder benchmarks
há 7 anos
Henry de Valence
d15c2238a1
cln16sidh: add LICENSE text
há 7 anos
Henry de Valence
8045da3721
cln16sidh: better isogeny names
há 7 anos
Henry de Valence
691d3ba3d2
cln16sidh: implement 4-isogenies, refactor 3-isogenies
há 7 anos
Henry de Valence
cac3df5258
cln16sidh: add 3-isogeny functions
Currently these aren't tested; Sage gets unhappy working with isogenies of
large elliptic curves. (Also, the previous test vectors were generated just to
test curve arithmetic, so they're not in the correct isogeny class and should
be changed...)
há 7 anos
Henry de Valence
e420fc012a
cln16sidh: add three-point ladder
há 7 anos
Henry de Valence
48826b1b20
cln16sidh: fix Sage variables
há 7 anos
Henry de Valence
9cbec30220
cln16sidh: add a CachedCurveParameters struct
há 7 anos
Henry de Valence
5887a8113e
cln16sidh: fix whitespace in test vectors
há 7 anos
Henry de Valence
309448e8cf
cln16sidh: add Montgomery ladder scalar multiplication
há 7 anos
Henry de Valence
324f240daa
cln16sidh: add conditional swaps
há 7 anos
Henry de Valence
15dbd8c7ee
cln16sidh: add Zero, One constructors to ExtensionFieldElement
há 7 anos
Henry de Valence
18fd617020
cln16sidh: add 4-way batch inversion
há 7 anos
Henry de Valence
f4c5eaf53c
cln16sidh: compute the j-invariant
há 7 anos
Henry de Valence
c26f169fae
cln16sidh: add point addition benchmark
há 7 anos
Henry de Valence
72e0bb78a7
cln16sidh: initial Montgomery curve functionality
This contains Montgomery (pseudo)addition, doubling, and tripling.
The formulas are slightly amended from the usual Montgomery arithmetic to allow
projective curve coefficients.
há 7 anos