Benchmarks slowed down several times after #394. What could be the reason?
Performance improvements for boxed uints (RustCrypto/crypto-bigint#777) and the corresponding changes in crypto-primes (entropyxyz/crypto-primes#78) don't really change the results much according to my tests.
sign test time is split ~50/50 between Montgomery exponentiation (with all the time spent in almost_montgomery_mul(), the lowest level function) and BoxedUint::inv_mod(); decrypt is almost exclusively exponentiation. Both of these are the calls in RSA itself; crypto-primes calls take negligible time.
So it seems that either these two functions are somehow much slower than num-bigint (possible, yet unlikely, and straightforward to test), or somehow #394 changed the algorithm to apply them more times than necessary.
Benchmarks slowed down several times after #394. What could be the reason?
Performance improvements for boxed uints (RustCrypto/crypto-bigint#777) and the corresponding changes in
crypto-primes(entropyxyz/crypto-primes#78) don't really change the results much according to my tests.signtest time is split ~50/50 between Montgomery exponentiation (with all the time spent inalmost_montgomery_mul(), the lowest level function) andBoxedUint::inv_mod();decryptis almost exclusively exponentiation. Both of these are the calls inRSAitself;crypto-primescalls take negligible time.So it seems that either these two functions are somehow much slower than
num-bigint(possible, yet unlikely, and straightforward to test), or somehow #394 changed the algorithm to apply them more times than necessary.