mirror of
https://github.com/ipxe/ipxe
synced 2025-12-12 23:15:10 +03:00
[crypto] Use inverse size as effective size for bigint_mod_invert()
Montgomery reduction requires only the least significant element of an inverse modulo 2^k, which in turn depends upon only the least significant element of the invertend. Use the inverse size (rather than the invertend size) as the effective size for bigint_mod_invert(). This eliminates around 97% of the loop iterations for a typical 2048-bit RSA modulus. Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -248,7 +248,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
|
||||
* @v inverse Big integer to hold result
|
||||
*/
|
||||
#define bigint_mod_invert( invertend, inverse ) do { \
|
||||
unsigned int size = bigint_size ( invertend ); \
|
||||
unsigned int size = bigint_size ( inverse ); \
|
||||
bigint_mod_invert_raw ( (invertend)->element, \
|
||||
(inverse)->element, size ); \
|
||||
} while ( 0 )
|
||||
|
||||
Reference in New Issue
Block a user