ec: 56-bit Limb Solinas' Strategy for secp384r1
authorRohan McLure <rohanmclure@linux.ibm.com>
Wed, 12 Jul 2023 02:25:22 +0000 (12:25 +1000)
committerTodd Short <todd.short@me.com>
Fri, 4 Aug 2023 14:20:28 +0000 (10:20 -0400)
commit01d901e470d9e035a3bd78e77b9438a4cc0da785
tree205d9a10c12dab419a43383bcaf2d231f275d7d2
parent3e47a286dc3274bda72a196c3a4030a1fc8302f1
ec: 56-bit Limb Solinas' Strategy for secp384r1

Adopt a 56-bit redundant-limb Solinas' reduction approach for efficient
modular multiplication in P384. This has the affect of accelerating
digital signing by 446% and verification by 106%. The implementation
strategy and names of methods are the same as that provided in
ecp_nistp224 and ecp_nistp521.

As in Commit 1036749883cc ("ec: Add run time code selection for p521
field operations"), allow for run time selection of implementation for
felem_{square,mul}, where an assembly implementation is proclaimed to
be present when ECP_NISTP384_ASM is present.

Signed-off-by: Rohan McLure <rohanmclure@linux.ibm.com>
Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Todd Short <todd.short@me.com>
(Merged from https://github.com/openssl/openssl/pull/21471)
crypto/ec/build.info
crypto/ec/ec_curve.c
crypto/ec/ec_lib.c
crypto/ec/ec_local.h
crypto/ec/ecp_nistp384.c [new file with mode: 0644]