ARM public key benchmark

Niels Möller nisse at lysator.liu.se
Tue Apr 2 13:31:30 CEST 2013


Now that I've been able to compile the new ARM files, I've relinked my
benchmark program with the development version of GMP. This is what I
get for some public key operations (as implemented in the development
version of Nettle, see http://git.lysator.liu.se/nettle), running on a
1 GHz cortex-a9:

           name size   sign/ms         verify/ms
            rsa 1024    0.5014 ( +90%)    9.1323 (+101%)
            rsa 2048    0.0835 (+113%)    2.6942 (+116%)
            dsa 1024    0.9857 (+110%)    0.5026 (+111%)
          ecdsa  192    1.4312 ( +16%)    0.5530 ( +28%)
          ecdsa  224    1.0072 ( +18%)    0.4037 ( +31%)
          ecdsa  256    0.7846 ( +25%)    0.3094 ( +38%)
          ecdsa  384    0.3308 ( +31%)    0.1307 ( +49%)
          ecdsa  521    0.1823 ( +38%)    0.0719 ( +60%)
ecdsa (openssl)  224    0.1842            0.1545
ecdsa (openssl)  384    0.0695            0.0590
ecdsa (openssl)  521    0.0261            0.0216

The difference is compared to earlier benchmark numbers. I'm embarrassed
to say that I'm not sure exactly which GMP code I was using, but I think
it was more or less gmp-5.1, which is slightly faster than gmp-5.0.5.

1024 bits is 32 limbs, and for the algorithms using numbers of this size
or larger, the speedup is close to a factor of two. For smaller numbers
(only 6 limbs for ecdsa 192), speedup is smaller but still very nice.

I'm not yet using GMP's mpn_cnd_{add,sub}_n, that's the next thing I'd
like to try.

Regards,
/Niels

-- 
Niels Möller. PGP-encrypted email is preferred. Keyid C0B98E26.
Internet email is subject to wholesale government surveillance.



More information about the gmp-devel mailing list