mirror of
https://github.com/openssl/openssl.git
synced 2025-01-30 14:01:55 +08:00
dd1d7bcb69
FIPS 186-4 has 5 different algorithms for key generation, and all of them rely on testing GCD(a,n) == 1 many times. Cachegrind was showing that during a RSA keygen operation, the function BN_gcd() was taking a considerable percentage of the total cycles. The default provider uses multiprime keygen, which seemed to be much faster. This is because it uses BN_mod_inverse() instead. For a 4096 bit key, the entropy of a key that was taking a long time to generate was recorded and fed back into subsequent runs. Roughly 40% of the cycle time was BN_gcd() with most of the remainder in the prime testing. Changing to use the inverse resulted in the cycle count being 96% in the prime testing. Reviewed-by: Paul Dale <pauli@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19578) |
||
---|---|---|
.. | ||
perl | ||
add-depends.pl | ||
build.info | ||
c-compress-test.pl | ||
cavs-to-evptest.pl | ||
check-format-test-negatives.c | ||
check-format-test-positives.c | ||
check-format.pl | ||
check-malloc-errs | ||
ck_errf.pl | ||
copy.pl | ||
dofile.pl | ||
echo.pl | ||
engines.num | ||
err-to-raise | ||
find-doc-nits | ||
find-unused-errs | ||
fips-checksums.sh | ||
fix-deprecation | ||
fix-includes | ||
fix-includes.sed | ||
indent.pro | ||
lang-compress.pl | ||
libcrypto.num | ||
libssl.num | ||
local_shlib.com.in | ||
markdownlint.rb | ||
merge-err-lines | ||
missingcrypto111.txt | ||
missingcrypto-internal.txt | ||
missingcrypto.txt | ||
missingmacro111.txt | ||
missingmacro.txt | ||
missingssl111.txt | ||
missingssl-internal.txt | ||
missingssl.txt | ||
mk-fipsmodule-cnf.pl | ||
mkbuildinf.pl | ||
mkdef.pl | ||
mkdir-p.pl | ||
mkerr.pl | ||
mknum.pl | ||
mkpod2html.pl | ||
mkrc.pl | ||
mktar.sh | ||
opensslwrap.sh | ||
other-internal.syms | ||
other.syms | ||
providers.num | ||
shlib_wrap.sh.in | ||
su-filter.pl | ||
unlocal_shlib.com.in | ||
withlibctx.pl | ||
wrap.pl.in | ||
write-man-symlinks |