aboutsummaryrefslogtreecommitdiff
path: root/docs/libraries/sunec.rst
blob: fcbca52897d24e06cc888024acc9c9ec5bbc3c54 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
SunEC
=====

| Version: ``jdk-21-ga`` (JDK 21)
| Repository: https://github.com/openjdk/jdk/
| Docs:


Primitives
----------

ECDH, ECDSA, x25519, Ed25519

P-256
^^^^^

The only special thing is the generator scalarmult, ``Secp256R1GeneratorMultiplier`` which is a Comb.

ECDH
^^^^

KeyGen:
 - Short-Weierstrass
 - Fixed Window (width = 4) via ``ECKeyPairGenerator.generateKeyPair -> ECKeyPairGenerator.generateKeyPairImpl -> ECPrivateKeyImpl.calculatePublicKey -> ECOperations.multiply -> Default(PointMultiplier).pointMultiply``
 - projective-3 coords
 - RCB-based formulas: `add-sunec-v21 <https://github.com/J08nY/pyecsca/blob/master/test/data/formulas/add-sunec-v21.op3>`__,
   `dbl-sunec-v21 <https://github.com/J08nY/pyecsca/blob/master/test/data/formulas/dbl-sunec-v21.op3>`__,


Derive:
 - Same as KeyGen.

ECDSA
^^^^^

Same as ECDH.

x25519
^^^^^^

KeyGen:
 - Montgomery
 - Montgomery ladder
 - xz
 - Ladder formula from RFC 7748

Derive:
 - Same as KeyGen.

Ed25519
^^^^^^^

KeyGen:
 - Twisted-Edwards
 - Double and add always
 - Extended coords
 - Unknown formulas: `add-sunec-v21-ed25519 <https://github.com/J08nY/pyecsca/blob/master/test/data/formulas/add-sunec-v21-ed25519.op3>`__,  `dbl-sunec-v21-ed25519 <https://github.com/J08nY/pyecsca/blob/master/test/data/formulas/dbl-sunec-v21-ed25519.op3>`__

Sign:
 - Same as KeyGen.

Verify:
 - Same as KeyGen.