Speed Comparison of Public Key Algorithms » History » Version 5
Version 4 (Martin Willi, 09.06.2009 13:27) → Version 5/32 (Andreas Steffen, 09.06.2009 13:59)
h1. Speed comparison of public key algorithms
h2. 32bit, User-Mode-Linux on a Core2Duo T9400 (one core)
|_.Key type|_.Operations/s|_.gmp |_.gcrypt |_.openssl | |_.gcrypt|_.openssl|
|RSA 512 |sign |>.3'791 |>.1'831 |>.3791 |>.1831 |>.2'105 |>.2105 |
| |verify |>.29'630|>.16'667 |>.25'806 |>.29630|>.16667 |>.25806 |
|RSA 768 |sign |>.1'519 |>.1519 |>.709 |>.810 |>.810 |
| |verify |>.18'182|>.10'714 |>.15'385 |>.18182|>.10714 |>.15385 |
|RSA 1024 |sign |>.713 |>.292 |>.292 |>.485 |>.485 |
| |verify |>.11'765|>.6'897 |>.11765|>.6897 |>.11'111 |>.11111 |
|RSA 1536 |sign |>.240 |>.102 |>.102 |>.184 |>.184 |
| |verify |>.5'882 |>.3'774 |>.5882 |>.3774 |>.5'882 |>.5882 |
|RSA 2048 |sign |>.110 |>.47 |>.93 |>.93 |
| |verify |>.3'571 |>.2'326 |>.3571 |>.2326 |>.3'704 |>.3704 |
|ECDSA 256 |sign |=._N/A_ |=._N/A_ |=._N/A_|=._N/A_ |>.522 |
| |verify |=._N/A_ |=._N/A_ |=._N/A_|=._N/A_ |>.440 |
|ECDSA 384 |sign |=._N/A_ |=._N/A_ |=._N/A_|=._N/A_ |>.226 |
| |verify |=._N/A_ |=._N/A_ |=._N/A_|=._N/A_ |>.180 |
|ECDSA 521 |sign |=._N/A_ |=._N/A_ |=._N/A_|=._N/A_ |>.109 |
| |verify |=._N/A_ |=._N/A_ |=._N/A_|=._N/A_ |>.90 |
|_.DH group|_.Operations/s|_.gmp |_.gcrypt |_.openssl |_.gmp* |_.gcrypt*|_.openssl*|
|MODP768 |A=g^a mod p |>.368 |>.243 |>.212 |>.741 |>.531 |>.319 |
| |S=B^a mod p |>.448 |>.190 |>.290 |>.1176 |>.496 |>.541 |
|MODP1024 |A=g^a mod p |>.196 |>.125 |>.136 |>.494 |>.388 |>.272 |
| |S=B^a mod p |>.213 |>.89 |>.167 |>.727 |>.320 |>.440 |
|MODP1536 |A=g^a mod p |>.68 |>.45 |>.62 |>.308 |>.220 |>.196 |
| |S=B^a mod p |>.71 |>.31 |>.64 |>.385 |>.175 |>.286 |
|MODP2048 |A=g^a mod p |>.31 |>.21 |>.28 |>.149 |>.98 |>.116 |
| |S=B^a mod p |>.32 |>.13 |>.30 |>.164 |>.71 |>.141 |
|ECP192 |A=g^a mod p |=._N/A_|=._N/A_ |>.166 |=.- |=.- |=.- |=._N/A_ |=._N/A_ |=._N/A_ |
| |S=B^a mod p |=._N/A_|=._N/A_ |>.171 |=.- |=.- |=.- |=._N/A_ |=._N/A_ |=._N/A_ |
|ECP224 |A=g^a mod p |=._N/A_|=._N/A_ |>.157 |=.- |=.- |=.- |=._N/A_ |=._N/A_ |=._N/A_ |
| |S=B^a mod p |=._N/A_|=._N/A_ |>.162 |=.- |=.- |=.- |=._N/A_ |=._N/A_ |=._N/A_ |
|ECP256 |A=g^a mod p |=._N/A_|=._N/A_ |>.148 |=.- |=.- |=.- |=._N/A_ |=._N/A_ |=._N/A_ |
| |S=B^a mod p |=._N/A_|=._N/A_ |>.152 |=.- |=.- |=.- |=._N/A_ |=._N/A_ |=._N/A_ |
|ECP384 |A=g^a mod p |=._N/A_|=._N/A_ |>.91 |=.- |=.- |=.- |=._N/A_ |=._N/A_ |=._N/A_ |
| |S=B^a mod p |=._N/A_|=._N/A_ |>.91 |=.- |=.- |=.- |=._N/A_ |=._N/A_ |=._N/A_ |
|ECP521 |A=g^a mod p |=._N/A_|=._N/A_ |>.63 |=.- |=.- |=.- |=._N/A_ |=._N/A_ |=._N/A_ |
| |S=B^a mod p |=._N/A_|=._N/A_ |>.65 |=.- |=.- |=.- |=._N/A_ |=._N/A_ |=._N/A_ |
h2. 64bit under VirtualBox, Core2Duo T9400 (one core):
|_.Key type|_.Operations/s|_.gmp |_.gcrypt |_.openssl | |_.gcrypt|_.openssl|
|RSA 512 |sign |>.13'082 |>.3'530 |>.13082 |>.3530 |>.7'478 |>.7478 |
| |verify |>.103'733|>.36'197 |>.5'9598 |>.103733|>.36197 |>.59598 |
|RSA 768 |sign |>.5'523 |>.5523 |>.1'603 |>.1603 |>.3'154 |>.3154 |
| |verify |>.61'520 |>.25'411 |>.35'704 |>.61520 |>.25411 |>.35704 |
|RSA 1024 |sign |>.2'742 |>.2742 |>.766 |>.1'577 |>.1577 |
| |verify |>.41'377 |>.16'098 |>.26'314 |>.41377 |>.16098 |>.26314 |
|RSA 1536 |sign |>.937 |>.285 |>.555 |>.555 |
| |verify |>.22'148 |>.10'941 |>.13'607 |>.22148 |>.10941 |>.13607 |
|RSA 2048 |sign |>.433 |>.133 |>.258 |>.258 |
| |verify |>.13'500 |>.6'524 |>.13500 |>.6524 |>.8'345 |>.8345 |
|ECDSA 256 |sign |=._N/A_ |=._N/A_ |>.1'267 |>.1267 |
| |verify |=._N/A_ |=._N/A_ |>.1'143 |>.1143 |
|ECDSA 384 |sign |=._N/A_ |=._N/A_ |>.577 |
| |verify |=._N/A_ |=._N/A_ |>.508 |
|ECDSA 521 |sign |=._N/A_ |=._N/A_ |>.291 |
| |verify |=._N/A_ |=._N/A_ |>.255 |
|_.DH group|_.Operations/s|_.gmp |_.gcrypt |_.openssl |_.gmp* |_.gcrypt*|_.openssl*|
|MODP768 |A=g^a mod p |>.1'853 |>.1853 |>.790 |>.1'088 |>.5'622 |>.2'151 |>.1088 |>.5622 |>.2'656 |>.2151 |>.2656 |
| |S=B^a mod p |>.1'882 |>.1882 |>.595 |>.1'191 |>.5'737 |>.1'779 |>.1191 |>.5737 |>.3'280 |>.1779 |>.3280 |
|MODP1024 |A=g^a mod p |>.862 |>.347 |>.491 |>.3'523 |>.1'352 |>.3523 |>.1'689 |>.1352 |>.1689 |
| |S=B^a mod p |>.869 |>.274 |>.535 |>.3'431 |>.1'035 |>.3431 |>.1'928 |>.1035 |>.1928 |
|MODP1536 |A=g^a mod p |>.269 |>.135 |>.168 |>.1'612 |>.1612 |>.776 |>.837 |
| |S=B^a mod p |>.278 |>.98 |>.174 |>.1'648 |>.1648 |>.571 |>.900 |
|MODP2048 |A=g^a mod p |>.117 |>.55 |>.73 |>.689 |>.298 |>.362 |
| |S=B^a mod p |>.122 |>.38 |>.74 |>.660 |>.214 |>.380 |
|ECP192 |A=g^a mod p |=._N/A_|=._N/A_ |>.1699 |=._N/A_ |=._N/A_ |>.1'699 |=._N/A_ |=.- |=.- |=.- |
| |S=B^a mod p |=._N/A_|=._N/A_ |>.1727 |=._N/A_ |=._N/A_ |>.1'727 |=._N/A_ |=.- |=.- |=.- |
|ECP224 |A=g^a mod p |=._N/A_|=._N/A_ |>.1494 |=._N/A_ |=._N/A_ |>.1'494 |=._N/A_ |=.- |=.- |=.- |
| |S=B^a mod p |=._N/A_|=._N/A_ |>.1589 |=._N/A_ |=._N/A_ |>.1'589 |=._N/A_ |=.- |=.- |=.- |
|ECP256 |A=g^a mod p |=._N/A_|=._N/A_ |>.1298 |=._N/A_ |=._N/A_ |>.1'298 |=._N/A_ |=.- |=.- |=.- |
| |S=B^a mod p |=._N/A_|=._N/A_ |>.1423 |=._N/A_ |=._N/A_ |>.1'423 |=._N/A_ |=.- |=.- |=.- |
|ECP384 |A=g^a mod p |=._N/A_|=._N/A_ |>.591 |=._N/A_ |=._N/A_ |>.591 |=.- |=.- |=.- |=._N/A_ |
| |S=B^a mod p |=._N/A_|=._N/A_ |>.609 |=._N/A_ |=._N/A_ |>.609 |=.- |=.- |=.- |=._N/A_ |
|ECP521 |A=g^a mod p |=._N/A_|=._N/A_ |>.306 |=._N/A_ |=._N/A_ |>.306 |=.- |=.- |=.- |=._N/A_ |
| |S=B^a mod p |=._N/A_|=._N/A_ |>.313 |=._N/A_ |=._N/A_ |>.313 |=.- |=.- |=.- |=._N/A_ |
_* = using reduced exponent size (libstrongswan.dh_exponent_ansi_x9_42 = no)_
h2. 32bit, User-Mode-Linux on a Core2Duo T9400 (one core)
|_.Key type|_.Operations/s|_.gmp |_.gcrypt |_.openssl | |_.gcrypt|_.openssl|
|RSA 512 |sign |>.3'791 |>.1'831 |>.3791 |>.1831 |>.2'105 |>.2105 |
| |verify |>.29'630|>.16'667 |>.25'806 |>.29630|>.16667 |>.25806 |
|RSA 768 |sign |>.1'519 |>.1519 |>.709 |>.810 |>.810 |
| |verify |>.18'182|>.10'714 |>.15'385 |>.18182|>.10714 |>.15385 |
|RSA 1024 |sign |>.713 |>.292 |>.292 |>.485 |>.485 |
| |verify |>.11'765|>.6'897 |>.11765|>.6897 |>.11'111 |>.11111 |
|RSA 1536 |sign |>.240 |>.102 |>.102 |>.184 |>.184 |
| |verify |>.5'882 |>.3'774 |>.5882 |>.3774 |>.5'882 |>.5882 |
|RSA 2048 |sign |>.110 |>.47 |>.93 |>.93 |
| |verify |>.3'571 |>.2'326 |>.3571 |>.2326 |>.3'704 |>.3704 |
|ECDSA 256 |sign |=._N/A_ |=._N/A_ |=._N/A_|=._N/A_ |>.522 |
| |verify |=._N/A_ |=._N/A_ |=._N/A_|=._N/A_ |>.440 |
|ECDSA 384 |sign |=._N/A_ |=._N/A_ |=._N/A_|=._N/A_ |>.226 |
| |verify |=._N/A_ |=._N/A_ |=._N/A_|=._N/A_ |>.180 |
|ECDSA 521 |sign |=._N/A_ |=._N/A_ |=._N/A_|=._N/A_ |>.109 |
| |verify |=._N/A_ |=._N/A_ |=._N/A_|=._N/A_ |>.90 |
|_.DH group|_.Operations/s|_.gmp |_.gcrypt |_.openssl |_.gmp* |_.gcrypt*|_.openssl*|
|MODP768 |A=g^a mod p |>.368 |>.243 |>.212 |>.741 |>.531 |>.319 |
| |S=B^a mod p |>.448 |>.190 |>.290 |>.1176 |>.496 |>.541 |
|MODP1024 |A=g^a mod p |>.196 |>.125 |>.136 |>.494 |>.388 |>.272 |
| |S=B^a mod p |>.213 |>.89 |>.167 |>.727 |>.320 |>.440 |
|MODP1536 |A=g^a mod p |>.68 |>.45 |>.62 |>.308 |>.220 |>.196 |
| |S=B^a mod p |>.71 |>.31 |>.64 |>.385 |>.175 |>.286 |
|MODP2048 |A=g^a mod p |>.31 |>.21 |>.28 |>.149 |>.98 |>.116 |
| |S=B^a mod p |>.32 |>.13 |>.30 |>.164 |>.71 |>.141 |
|ECP192 |A=g^a mod p |=._N/A_|=._N/A_ |>.166 |=.- |=.- |=.- |=._N/A_ |=._N/A_ |=._N/A_ |
| |S=B^a mod p |=._N/A_|=._N/A_ |>.171 |=.- |=.- |=.- |=._N/A_ |=._N/A_ |=._N/A_ |
|ECP224 |A=g^a mod p |=._N/A_|=._N/A_ |>.157 |=.- |=.- |=.- |=._N/A_ |=._N/A_ |=._N/A_ |
| |S=B^a mod p |=._N/A_|=._N/A_ |>.162 |=.- |=.- |=.- |=._N/A_ |=._N/A_ |=._N/A_ |
|ECP256 |A=g^a mod p |=._N/A_|=._N/A_ |>.148 |=.- |=.- |=.- |=._N/A_ |=._N/A_ |=._N/A_ |
| |S=B^a mod p |=._N/A_|=._N/A_ |>.152 |=.- |=.- |=.- |=._N/A_ |=._N/A_ |=._N/A_ |
|ECP384 |A=g^a mod p |=._N/A_|=._N/A_ |>.91 |=.- |=.- |=.- |=._N/A_ |=._N/A_ |=._N/A_ |
| |S=B^a mod p |=._N/A_|=._N/A_ |>.91 |=.- |=.- |=.- |=._N/A_ |=._N/A_ |=._N/A_ |
|ECP521 |A=g^a mod p |=._N/A_|=._N/A_ |>.63 |=.- |=.- |=.- |=._N/A_ |=._N/A_ |=._N/A_ |
| |S=B^a mod p |=._N/A_|=._N/A_ |>.65 |=.- |=.- |=.- |=._N/A_ |=._N/A_ |=._N/A_ |
h2. 64bit under VirtualBox, Core2Duo T9400 (one core):
|_.Key type|_.Operations/s|_.gmp |_.gcrypt |_.openssl | |_.gcrypt|_.openssl|
|RSA 512 |sign |>.13'082 |>.3'530 |>.13082 |>.3530 |>.7'478 |>.7478 |
| |verify |>.103'733|>.36'197 |>.5'9598 |>.103733|>.36197 |>.59598 |
|RSA 768 |sign |>.5'523 |>.5523 |>.1'603 |>.1603 |>.3'154 |>.3154 |
| |verify |>.61'520 |>.25'411 |>.35'704 |>.61520 |>.25411 |>.35704 |
|RSA 1024 |sign |>.2'742 |>.2742 |>.766 |>.1'577 |>.1577 |
| |verify |>.41'377 |>.16'098 |>.26'314 |>.41377 |>.16098 |>.26314 |
|RSA 1536 |sign |>.937 |>.285 |>.555 |>.555 |
| |verify |>.22'148 |>.10'941 |>.13'607 |>.22148 |>.10941 |>.13607 |
|RSA 2048 |sign |>.433 |>.133 |>.258 |>.258 |
| |verify |>.13'500 |>.6'524 |>.13500 |>.6524 |>.8'345 |>.8345 |
|ECDSA 256 |sign |=._N/A_ |=._N/A_ |>.1'267 |>.1267 |
| |verify |=._N/A_ |=._N/A_ |>.1'143 |>.1143 |
|ECDSA 384 |sign |=._N/A_ |=._N/A_ |>.577 |
| |verify |=._N/A_ |=._N/A_ |>.508 |
|ECDSA 521 |sign |=._N/A_ |=._N/A_ |>.291 |
| |verify |=._N/A_ |=._N/A_ |>.255 |
|_.DH group|_.Operations/s|_.gmp |_.gcrypt |_.openssl |_.gmp* |_.gcrypt*|_.openssl*|
|MODP768 |A=g^a mod p |>.1'853 |>.1853 |>.790 |>.1'088 |>.5'622 |>.2'151 |>.1088 |>.5622 |>.2'656 |>.2151 |>.2656 |
| |S=B^a mod p |>.1'882 |>.1882 |>.595 |>.1'191 |>.5'737 |>.1'779 |>.1191 |>.5737 |>.3'280 |>.1779 |>.3280 |
|MODP1024 |A=g^a mod p |>.862 |>.347 |>.491 |>.3'523 |>.1'352 |>.3523 |>.1'689 |>.1352 |>.1689 |
| |S=B^a mod p |>.869 |>.274 |>.535 |>.3'431 |>.1'035 |>.3431 |>.1'928 |>.1035 |>.1928 |
|MODP1536 |A=g^a mod p |>.269 |>.135 |>.168 |>.1'612 |>.1612 |>.776 |>.837 |
| |S=B^a mod p |>.278 |>.98 |>.174 |>.1'648 |>.1648 |>.571 |>.900 |
|MODP2048 |A=g^a mod p |>.117 |>.55 |>.73 |>.689 |>.298 |>.362 |
| |S=B^a mod p |>.122 |>.38 |>.74 |>.660 |>.214 |>.380 |
|ECP192 |A=g^a mod p |=._N/A_|=._N/A_ |>.1699 |=._N/A_ |=._N/A_ |>.1'699 |=._N/A_ |=.- |=.- |=.- |
| |S=B^a mod p |=._N/A_|=._N/A_ |>.1727 |=._N/A_ |=._N/A_ |>.1'727 |=._N/A_ |=.- |=.- |=.- |
|ECP224 |A=g^a mod p |=._N/A_|=._N/A_ |>.1494 |=._N/A_ |=._N/A_ |>.1'494 |=._N/A_ |=.- |=.- |=.- |
| |S=B^a mod p |=._N/A_|=._N/A_ |>.1589 |=._N/A_ |=._N/A_ |>.1'589 |=._N/A_ |=.- |=.- |=.- |
|ECP256 |A=g^a mod p |=._N/A_|=._N/A_ |>.1298 |=._N/A_ |=._N/A_ |>.1'298 |=._N/A_ |=.- |=.- |=.- |
| |S=B^a mod p |=._N/A_|=._N/A_ |>.1423 |=._N/A_ |=._N/A_ |>.1'423 |=._N/A_ |=.- |=.- |=.- |
|ECP384 |A=g^a mod p |=._N/A_|=._N/A_ |>.591 |=._N/A_ |=._N/A_ |>.591 |=.- |=.- |=.- |=._N/A_ |
| |S=B^a mod p |=._N/A_|=._N/A_ |>.609 |=._N/A_ |=._N/A_ |>.609 |=.- |=.- |=.- |=._N/A_ |
|ECP521 |A=g^a mod p |=._N/A_|=._N/A_ |>.306 |=._N/A_ |=._N/A_ |>.306 |=.- |=.- |=.- |=._N/A_ |
| |S=B^a mod p |=._N/A_|=._N/A_ |>.313 |=._N/A_ |=._N/A_ |>.313 |=.- |=.- |=.- |=._N/A_ |
_* = using reduced exponent size (libstrongswan.dh_exponent_ansi_x9_42 = no)_