aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ08nY2018-07-14 01:33:44 +0200
committerJ08nY2018-07-14 01:33:44 +0200
commit94430f04698c9fe8675b217ca831d980918db97c (patch)
treee4922e1c83e12d68fead09fd7c2cb0ce6a713af3
parentbd657e107ed51ccca25047ab2473f231ef58533e (diff)
downloadECTester-94430f04698c9fe8675b217ca831d980918db97c.tar.gz
ECTester-94430f04698c9fe8675b217ca831d980918db97c.tar.zst
ECTester-94430f04698c9fe8675b217ca831d980918db97c.zip
-rw-r--r--docs/IMPLEMENTATIONS.md7
-rw-r--r--docs/LIBS.md38
2 files changed, 44 insertions, 1 deletions
diff --git a/docs/IMPLEMENTATIONS.md b/docs/IMPLEMENTATIONS.md
index 4d17600..b4a4ea8 100644
--- a/docs/IMPLEMENTATIONS.md
+++ b/docs/IMPLEMENTATIONS.md
@@ -516,6 +516,10 @@ x_n &= X_n / Z_n; \qquad x_{n+1} = X_{n+1} / Z_{n+1} \\
y_n &= \frac{(x_n + x_1)((x_n + x_1)(x_{n+1} + x_1) + x_1^2 + y_1)}{x_1} + y_1
\end{align*}
+### GLV scalar multiplication
+
+[^13]
+
### Fixed-base windowing (BGMW)
<u>Algorithm 3.41</u> and <u>Algorithm 3.42</u> in GECC[^1]
@@ -544,4 +548,5 @@ elliptic Curve Cryptography. CRC Press, 2005-07-19. Discrete Mathematics and Itâ
[^9]: MOLLER, Bodo: Securing Elliptic Curve Point Multiplication against Side-Channel Attacks.
[^10]: MOLLER, Bodo: Improved Techniques for Fast Exponentiation.
[^11]: MOLLER, Bodo: Fractional Windows Revisited: Improved Signed-Digit Representations for Efficient Exponentiation.
-[^12]: KOYAMA, Kenji; TSURUOKA, Yukio: Speeding up Elliptic Cryptosystems by Using a Signed Binary Window Method. \ No newline at end of file
+[^12]: KOYAMA, Kenji; TSURUOKA, Yukio: Speeding up Elliptic Cryptosystems by Using a Signed Binary Window Method.
+[^13]: GALLANT, Robert P.; LAMBERT, Robert J.; VANSTONE, Scott A.: Faster point multiplication on elliptic curves with efficient endomorphisms. \ No newline at end of file
diff --git a/docs/LIBS.md b/docs/LIBS.md
index f6d3896..512dee2 100644
--- a/docs/LIBS.md
+++ b/docs/LIBS.md
@@ -14,8 +14,46 @@ Popular libraries with at least some ECC support:
- [BouncyCastle](https://bouncycastle.org/java.html)
- Java
+ - Works with the short Weierstrass curve model.
+ - Works with coordinates:
+ - Affine
+ - Projective(Homogenous)
+ - Jacobian
+ - Jacobian-Chudnovsky
+ - Jacobian-Modified
+ - Lambda-Affine?
+ - Lambda-Projective?
+ - Skewed?
+ - Multiple scalar multiplication algorithms implemented and used:
+ - Double-and-add always (DoubleAddMultiplier)
+ - Fixed point comb (FixedPointCombMultiplier)
+ - GLV (Gallant-Lambert-Vanstone) using endomorphisms (GLVMultiplier): Faster point multiplication on elliptic curves with efficient endomorphisms. <-- default, if available
+ - Binary NAF right-to-left multiplication(mixed coordinates) (MixedNafR2LMultiplier)
+ - Montgomery ladder (MontgomeryLadderMultiplier)
+ - Binary NAF right-to-left multiplication (NafR2LMultiplier)
+ - Binary NAF left-to-right multiplication (NafL2RMultiplier)
+ - Double-and-add reference implementation (ReferenceMultiplier)
+ - Window NAF left-to-right multiplication (WNafL2RMultiplier) <-- default
+ - Window Tau-NAF multiplication (WTauNafMultiplier): Improved Algorithms for Arithmetic on Anomalous Binary Curves
+ - Zeroless signed digit binary right-to-left multiplication (ZSignedDigitR2LMultiplier)
+ - Zeroless signed digit binary left-to-right multiplication (ZSignedDigitL2RMultiplier)
+ - Has custom field and point arithmetic for:
+ - Curve25519 (transformed into short Weierstrass model)
+ - SMP2 curves
+ - SECG curves
- [Sun EC](https://docs.oracle.com/javase/7/docs/technotes/guides/security/SunProviders.html#SunEC)
- Java + C
+ - Uses the short Weierstrass curve model.
+ - For prime field curves:
+ - Uses 5-bit window NAF, Uses mixed Modified-Jacobian coordinates
+ for doubling and Chudnovsky Jacobian coordinates for additions (ecp_jm.c). From:
+ Brown, Hankerson, Lopez, Menezes: Software Implementation of the NIST Elliptic Curves Over Prime Fields.
+ - Contains an implementation of scalar multiplication with 4-bit sliding window, using Jacobian coordinates (ecp_jac.c)
+ - Contains an implementation of IEEE P1363 algorithm A.10.3 using affine coordinates (ecp_aff.c)
+ - For binary field curves:
+ - Uses Lopez-Dahab (Montgomery) ladder, XZ coordinates (ec2_mont.c): Fast multiplication on elliptic curves over GF(2^m) without precomputation (Algorithm 2P)
+ - Contains an implementation of IEEE P1363 algorithm A.10.3 using affine coordinates (ec2_aff.c)
+ - Has some custom arithmetic for some of the NIST primes.
- [Botan](https://botan.randombit.net/)
- C++
- Uses blinded(randomized) Montgomery ladder.