From 3ee54b3ea8cd5dbb386b7bf9f9869d504ae1dc90 Mon Sep 17 00:00:00 2001 From: J08nY Date: Thu, 2 Nov 2023 10:03:54 +0100 Subject: Fixup SymCrypt links. --- docs/libraries.rst | 71 +++++++++++++++++++++++++++++------------------------- 1 file changed, 38 insertions(+), 33 deletions(-) diff --git a/docs/libraries.rst b/docs/libraries.rst index 5253dfc..325f486 100644 --- a/docs/libraries.rst +++ b/docs/libraries.rst @@ -304,17 +304,17 @@ Based on ref10 of Ed255119. See `BoringSSL`_. -SymCrypt +SymCrypt ============ | Version: ``103.1.0`` (tag v103.1.0) | Repository: https://github.com/microsoft/SymCrypt -| Docs: +| Docs: Primitives ---------- -Supports ECDH and ECDSA with `NIST `__ curves (192, 224, 256, 384, 521) and Twisted Edwards `NUMS `__ curves (NumsP256t1, NumsP384t1, NumsP512t1). +Supports ECDH and ECDSA with `NIST `__ curves (192, 224, 256, 384, 521) and Twisted Edwards `NUMS `__ curves (NumsP256t1, NumsP384t1, NumsP512t1). Supports X25519. @@ -322,57 +322,59 @@ ECDH ^^^^ KeyGen: - - `Fixed-window `__ via ``SymCryptEcpointGenericSetRandom -> SymCryptEcpointScalarMul -> SymCryptEcpointScalarMulFixedWindow``. Algorithm 1 in `Selecting Elliptic Curves for Cryptography: An Efficiency and Security Analysis `__. - - NIST use `Jacobian `__. - - `jacobian-dbl-2007-bl `__ for generic double via ``SymCryptEcpointDouble`` or a `tweak of dbl-2007-bl/dbl-2001-b `__ formulae via ``SymCryptShortWeierstrassDoubleSpecializedAm3`` for ``a=-3``. - - Tweak of `jacobian-add-2007-bl `__ via ``SymCryptEcpointAddDiffNonZero``. It also has side-channel unsafe version ``SymCryptShortWeierstrassAddSideChannelUnsafe`` and a generic wrapper for both via ``SymCryptEcpointAdd``. - - - NUMS curves use `Extended projective `__. - - `dbl-2008-hwcd `__ via ``SymCryptTwistedEdwardsDouble``. - - `add-2008-hwcd `__ via ``SymCryptTwistedEdwardsAdd`` or ``SymCryptTwistedEdwardsAddDiffNonZero``. + - `Fixed-window `__ via ``SymCryptEcpointGenericSetRandom -> SymCryptEcpointScalarMul -> SymCryptEcpointScalarMulFixedWindow``. Algorithm 1 in `Selecting Elliptic Curves for Cryptography: An Efficiency and Security Analysis `__. + - NIST (Short-Weierstrass) use `Jacobian `__. + - `dbl-2007-bl `__ for generic double via ``SymCryptEcpointDouble`` or a `tweak of dbl-2007-bl/dbl-2001-b `__ formulae via ``SymCryptShortWeierstrassDoubleSpecializedAm3`` for ``a=-3``. + - `add-2007-bl `__ via ``SymCryptEcpointAddDiffNonZero``. It also has side-channel unsafe version ``SymCryptShortWeierstrassAddSideChannelUnsafe`` and a generic wrapper for both via ``SymCryptEcpointAdd``. + - NUMS (Twisted-Edwards) curves use `Extended projective `__. + - `dbl-2008-hwcd `__ via ``SymCryptTwistedEdwardsDouble``. + - `add-2008-hwcd `__ via ``SymCryptTwistedEdwardsAdd`` or ``SymCryptTwistedEdwardsAddDiffNonZero``. Derive: - - `Fixed-window `__ via ``SymCryptEcDhSecretAgreement -> SymCryptEcpointScalarMul -> SymCryptEcpointScalarMulFixedWindow``. Algorithm 1 in `Selecting Elliptic Curves for Cryptography: An Efficiency and Security Analysis `__. - - Same coordinates and formulas as KeyGen + - `Fixed-window `__ via ``SymCryptEcDhSecretAgreement -> SymCryptEcpointScalarMul -> SymCryptEcpointScalarMulFixedWindow``. Algorithm 1 in `Selecting Elliptic Curves for Cryptography: An Efficiency and Security Analysis `__. + - Same coordinates and formulas as KeyGen. ECDSA ^^^^^ KeyGen: - - `Fixed-window `__ via ``SymCryptEcpointGenericSetRandom -> SymCryptEcpointScalarMul -> SymCryptEcpointScalarMulFixedWindow``. Algorithm 1 in `Selecting Elliptic Curves for Cryptography: An Efficiency and Security Analysis `__. - - NIST use `Jacobian `__. - - `jacobian-dbl-2007-bl `__ for generic double via ``SymCryptEcpointDouble`` or a `tweak of dbl-2007-bl/dbl-2001-b `__ formulae via ``SymCryptShortWeierstrassDoubleSpecializedAm3`` for ``a=-3``. - - Tweak of `jacobian-add-2007-bl `__ via ``SymCryptEcpointAddDiffNonZero``. It also has side-channel unsafe version ``SymCryptShortWeierstrassAddSideChannelUnsafe`` and a generic wrapper for both via ``SymCryptEcpointAdd``. - - - NUMS curves use `Extended projective `__. - - `dbl-2008-hwcd `__ via ``SymCryptTwistedEdwardsDouble``. - - `add-2008-hwcd `__ via ``SymCryptTwistedEdwardsAdd`` or ``SymCryptTwistedEdwardsAddDiffNonZero``. + - Short-Weierstrass + - `(signed) Fixed-window `__ via ``SymCryptEcpointGenericSetRandom -> SymCryptEcpointScalarMul -> SymCryptEcpointScalarMulFixedWindow``. Algorithm 1 in `Selecting Elliptic Curves for Cryptography: An Efficiency and Security Analysis `__. + - NIST (Short-Weierstrass) use `Jacobian `__. + - `dbl-2007-bl `__ for generic double via ``SymCryptEcpointDouble`` or a `tweak of dbl-2007-bl/dbl-2001-b `__ formulae via ``SymCryptShortWeierstrassDoubleSpecializedAm3`` for ``a=-3``. + - `add-2007-bl `__ via ``SymCryptEcpointAddDiffNonZero``. It also has side-channel unsafe version ``SymCryptShortWeierstrassAddSideChannelUnsafe`` and a generic wrapper for both via ``SymCryptEcpointAdd``. + - NUMS (Twisted-Edwards) curves use `Extended projective `__. + - `dbl-2008-hwcd `__ via ``SymCryptTwistedEdwardsDouble``. + - `add-2008-hwcd `__ via ``SymCryptTwistedEdwardsAdd`` or ``SymCryptTwistedEdwardsAddDiffNonZero``. Sign: - - `Fixed-window `__ via ``SymCryptEcDsaSignEx -> SymCryptEcpointScalarMul -> SymCryptEcpointScalarMulFixedWindow``. Algorithm 1 in `Selecting Elliptic Curves for Cryptography: An Efficiency and Security Analysis `__. - - Same coordinates and formulas as KeyGen + - Short-Weierstrass + - `(signed) Fixed-window `__ via ``SymCryptEcDsaSignEx -> SymCryptEcpointScalarMul -> SymCryptEcpointScalarMulFixedWindow``. Algorithm 1 in `Selecting Elliptic Curves for Cryptography: An Efficiency and Security Analysis `__. + - Same coordinates and formulas as KeyGen. Verify: - - `Double-scalar multiplication using the width-w NAF with interleaving `__ via ``SymCryptEcDsaVerify > SymCryptEcpointMultiScalarMul -> SymCryptEcpointMultiScalarMulWnafWithInterleaving``. Algorithm 9 in `Selecting Elliptic Curves for Cryptography: An Efficiency and Security Analysis `__. - - Same coordinates and formulas as KeyGen + - Short-Weierstrass + - `Double-scalar multiplication using the width-w NAF with interleaving `__ via ``SymCryptEcDsaVerify > SymCryptEcpointMultiScalarMul -> SymCryptEcpointMultiScalarMulWnafWithInterleaving``. Algorithm 9 in `Selecting Elliptic Curves for Cryptography: An Efficiency and Security Analysis `__. + - Same coordinates and formulas as KeyGen. X25519 ^^^^^^ KeyGen: - - `Ladder `__ via + - Montgomery + - `Ladder `__ via ``SymCryptMontgomeryPointScalarMul``. - - `xz `__. - - `ladd-1987-m-3 `__ via ``SymCryptMontgomeryDoubleAndAdd``. + - `xz `__. + - `ladd-1987-m-3 `__ via ``SymCryptMontgomeryDoubleAndAdd``. Derive: - Same as Keygen. -fastecdsa +fastecdsa ============ | Version: ``v2.3.1`` @@ -382,19 +384,22 @@ fastecdsa Primitives ---------- -Offers only ECDSA. -Supported `curves `__: all SECP curves (8) for 192-256 bits, all (7) Brainpool curves as well as custom curves. +Offers only ECDSA. +Supported `curves `__: all SECP curves (8) for 192-256 bits, all (7) Brainpool curves as well as custom curves. ECDSA ^^^^^ KeyGen: + - Short-Weierstrass - `Ladder `__ via ``get_public_key -> pointZZ_pMul``. - Affine and schoolbook `add `__ and `double `__. Sign: - - Same ladder as Keygen via ``sign``. + - Short-Weierstrass + - Same ladder as Keygen via ``sign``. Verify: - - `Shamir's trick `__ via ``verify -> pointZZ_pShamirsTrick``. \ No newline at end of file + - Short-Weierstrass + - `Shamir's trick `__ via ``verify -> pointZZ_pShamirsTrick``. -- cgit v1.3.1