Miguel Oliveira
7d45646aa0
Fix typo
2022-12-13 18:42:31 -03:00
Miguel Oliveira
08016b8a61
Document PRAC rule conditions
2022-12-13 18:40:52 -03:00
Miguel Oliveira
d4c173c713
Remove dependency on string.pack
2022-10-16 19:28:56 -03:00
Miguel Oliveira
db4c272aea
Add PRAC-based twofold multiplication
2022-04-08 11:56:03 -03:00
Miguel Oliveira
a57c5e1ded
Unroll mp.lua operations and add others for PRAC
2022-04-06 13:59:55 -03:00
Miguel Oliveira
5290be7c75
Put Fq arithmetic internals in a separate module
2022-04-05 17:28:50 -03:00
Miguel Oliveira
f53bb2ec6a
Bring back Fp negation
2022-04-05 16:32:09 -03:00
Miguel Oliveira
4cf7c2e989
Replace ✕ with ×
2022-04-04 23:33:54 -03:00
Miguel Oliveira
2fe2a37ca3
Pack Curve25519 points into tables
2022-03-31 00:54:44 -03:00
Miguel Oliveira
bd832f1a23
Document Curve25519
2022-03-30 21:52:52 -03:00
Miguel Oliveira
d983042092
Document Edwards25519
2022-03-30 21:40:40 -03:00
Miguel Oliveira
9a5f8b37ea
Move curve point arithmetic into their own modules
2022-03-30 21:17:33 -03:00
Miguel Oliveira
c180d31001
Switch Fp to rounding-based carrying
...
This improves performance while also simplifying analysis. Ed25519
doubling needs more carrying, but the speedup is worth it.
The simpler Fp model is easier to reason about, but it introduces an
unsound bit that needs to be handwaved away with a comment. Range
checking has not yet been performed.
2022-03-24 16:36:10 -03:00
Miguel Oliveira
671087dd0e
Move internal module notice into long description
2022-03-05 13:43:19 -03:00
Miguel Oliveira
fc5a35c404
Tag internal modules as internal
2022-03-05 13:20:25 -03:00
Miguel Oliveira
54b821c091
Give up on masking for now
...
X25519c can be attacked by replying several times with invalid data.
This is hard to defend against in the API level without denying service
and using some hard-to-understand semantics.
Masked primitives are gone for now, some countermeasures have been moved
into their respective "regular" impls. I don't think that it's worth it
to care that much about side channels in CC. I haven't seen or managed
to mount any practical attacks myself. The further move away from Cobalt
will probably make them even harder to mount.
2022-03-05 12:03:08 -03:00
Miguel Oliveira
ed8f66070f
Add masking docs
2022-03-04 13:30:46 -03:00
Miguel Oliveira
206f8474ff
Separate masked Fq multiply from unwrap
2022-03-04 13:19:51 -03:00
Miguel Oliveira
4c52aa8774
Improve Ed25519c masking
2022-03-04 12:31:51 -03:00
Miguel Oliveira
d3f04036c7
Split Fq masking internals
2022-03-04 12:20:10 -03:00
Miguel Oliveira
8335ddc81c
Split Ed25519 internals
2022-03-04 11:46:26 -03:00
Miguel Oliveira
8926bda1bb
Remove Fq inversion
2022-03-03 16:17:29 -03:00
Miguel Oliveira
292663b4a5
Update docs
2022-03-03 16:15:57 -03:00
Miguel Oliveira
c996452b07
Update docs
2022-03-02 19:46:20 -03:00
Miguel Oliveira
993ddb63a0
Update docs
2022-03-02 17:36:59 -03:00
Miguel Oliveira
e0fd019b97
Switch to older Fp code
2022-03-02 17:29:26 -03:00
Miguel Oliveira
59647d1a96
Move clamped Fq decoding into fq.lua
2022-03-02 15:18:28 -03:00
Miguel Oliveira
f605de3f0d
Rework ladders for X25519 and X25519c
2022-03-02 14:59:50 -03:00
Miguel Oliveira
501e81a36a
Add masked X25519
2022-03-02 13:51:51 -03:00
Miguel Oliveira
eae7c91453
Reformat
...
Fair enough.
2022-03-01 20:51:18 -03:00
Miguel Oliveira
dba5fcc1ab
Split X25519 internals
2022-03-01 20:46:44 -03:00
Miguel Oliveira
ccb0d8cea6
Move internal modules into another directory
2022-03-01 20:43:53 -03:00