PublicKeySpeed » History » Version 17

« Previous - Version 17/30 (diff) - Next » - Current version
Martin Willi, 10.06.2009 18:09
completed 64bit results


Speed comparison of public key algorithms

32bit, native on a Core2Duo T9400 (one core)

Public Key Signature

Key type Strength* Operations/s gmp gcrypt openssl
RSA 512 50 bits sign (e=3) 3'708 1'814 2'286
RSA 512 50 bits sign (e=f4) 3'946 1'780 2'150
RSA 768 62 bits sign (e=3) 1'483 625 521
RSA 768 62 bits sign (e=f4) 1'486 626 783
RSA 1024 73 bits sign (e=3) 724 301 488
RSA 1024 73 bits sign (e=f4) 722 285 475
RSA 1536 89 bits sign (e=3) 242 99 117
RSA 1536 89 bits sign (e=f4) 243 98 111
RSA 2048 103 bits sign (e=3) 110 30 80
RSA 2048 103 bits sign (e=f4) 109 28 89
RSA 3072 125 bits sign (e=3) 35 9 33
RSA 3072 125 bits sign (e=f4) 35 15 32
RSA 4096 142 bits sign (e=3) 15 6 9
RSA 4096 142 bits sign (e=f4) 15 6 9
RSA 6144 171 bits sign (e=3) 4 2 3
RSA 6144 171 bits sign (e=f4) 4 2 3
RSA 8192 193 bits sign (e=3 ) 2 1 2
RSA 8192 193 bits sign (e=f4) 2 1 1
ECDSA 256 128 bits sign N/A N/A 546
ECDSA 384 192 bits sign N/A N/A 233
ECDSA 521 260 bits sign N/A N/A 113
RSA 512 50 bits verify (e=3) 76'683 36'626 55'685
RSA 512 50 bits verify (e=f4) 32'577 15'860 25'086
RSA 768 62 bits verify (e=3) 52'707 31'167 37'112
RSA 768 62 bits verify (e=f4) 17'375 10'054 15'034
RSA 1024 73 bits verify (e=3) 37'826 25'688 28'879
RSA 1024 73 bits verify (e=f4) 11'402 6'640 10'380
RSA 1536 89 bits verify (e=3) 22'143 18'505 10'393
RSA 1536 89 bits verify (e=f4) 5'892 3'770 3'686
RSA 2048 103 bits verify (e=3) 14'175 8'307 11'625
RSA 2048 103 bits verify (e=f4) 3'481 1'423 3'535
RSA 3072 125 bits verify (e=3) 7'207 4'930 5'654
RSA 3072 125 bits verify (e=f4) 1'729 1'150 1'857
RSA 4096 142 bits verify (e=3) 5'887 4'960 2'263
RSA 4096 142 bits verify (e=f4) 1'049 684 672
RSA 6144 171 bits verify (e=3) 3'171 2630 977
RSA 6144 171 bits verify (e=f4) 544 335 324
RSA 8192 193 bits verify (e=3) 2'015 1638 839
RSA 8192 193 bits verify (e=f4) 334 194 181
ECDSA 256 128 bits verify N/A N/A 459
ECDSA 384 192 bits verify N/A N/A 196
ECDSA 521 260 bits verify N/A N/A 94

* = cryptographic strength estimates according to RFC 3766 using www.keylength.com

Diffie-Hellman Key Exchange

DH group Strength Operations/s gmp gcrypt openssl gmp* gcrypt* openssl*
MODP 768 62 bits A=g^a mod p 468 293 371 1'271 866 1'060
MODP 1024 73 bits A=g^a mod p 216 136 192 792 540 706
MODP 1536 89 bits A=g^a mod p 71 46 70 395 279 379
MODP 2048 103 bits A=g^a mod p 31 20 31 161 112 155
MODP 3072 125 bits A=g^a mod p 10 6 11 77 55 81
MODP 4096 142 bits A=g^a mod p 4 3 4 34 24 35
MODP 6144 171 bits A=g^a mod p 1 1 1 17 11 17
MODP 8096 193 bits A=g^a mod p 1 1 0 11 7 10
ECP 192 96 bits A=g^a mod p N/A N/A 961 - - -
ECP 224 112 bits A=g^a mod p N/A N/A 724 - - -
ECP 256 128 bits A=g^a mod p N/A N/A 577 - - -
ECP 384 192 bits A=g^a mod p N/A N/A 243 - - -
ECP 521 260 bits A=g^a mod p N/A N/A 117 - - -
MODP 768 62 bits S=B^a mod p 489 205 393 1'418 618 1'101
MODP 1024 73 bits S=B^a mod p 222 92 195 845 372 728
MODP 1536 89 bits S=B^a mod p 71 31 71 409 188 382
MODP 2048 103 bits S=B^a mod p 31 14 31 163 74 156
MODP 3072 125 bits S=B^a mod p 10 4 11 77 36 80
MODP 4096 142 bits S=B^a mod p 4 2 4 34 16 35
MODP 6144 171 bits S=B^a mod p 1 0 1 17 7 17
MODP 8096 193 bits S=B^a mod p 1 0 1 11 4 10
ECP 192 96 bits S=B^a mod p N/A N/A 950 - - -
ECP 224 112 bits S=B^a mod p N/A N/A 716 - - -
ECP 256 128 bits S=B^a mod p N/A N/A 564 - - -
ECP 384 192 bits S=B^a mod p N/A N/A 239 - - -
ECP 521 260 bits S=B^a mod p N/A N/A 116 - - -

* = using reduced exponent size (libstrongswan.dh_exponent_ansi_x9_42 = no) as recommended by RFC3526

64bit under VirtualBox, Core2Duo T9400 (one core):

Public Key Signature

Key type Strength* Operations/s gmp gcrypt openssl
RSA 512 e=3 50 bits sign 12'715 3474 7'405
RSA 512 e=f4 50 bits sign 12'453 3463 4'471
RSA 768 e=3 62 bits sign 5'414 1234 2'371
RSA 768 e=f4 62 bits sign 5'617 1142 2'974
RSA 1024 e=3 73 bits sign 2'756 769 1'565
RSA 1024 e=f4 73 bits sign 2'765 516 1'523
RSA 1536 e=3 89 bits sign 980 181 548
RSA 1536 e=f4 89 bits sign 978 279 525
RSA 2048 e=3 103 bits sign 447 126 160
RSA 2048 e=f4 103 bits sign 453 122 147
RSA 3072 e=3 125 bits sign 140 45 51
RSA 3072 e=f4 125 bits sign 146 44 46
RSA 4096 e=3 142 bits sign 71 19 36
RSA 4096 e=f4 142 bits sign 62 11 34
RSA 6144 e=3 171 bits sign 19 7 11
RSA 6144 e=f4 171 bits sign 20 6 10
RSA 8192 e=3 193 bits sign 7 3 4
RSA 8192 e=f4 193 bits sign 8 3 4
ECDSA 256 128 bits sign N/A N/A 1'204
ECDSA 384 192 bits sign N/A N/A 551
ECDSA 521 260 bits sign N/A N/A 280
RSA 512 e=3 50 bits verify 131'663 50'944 86'962
RSA 512 e=f4 50 bits verify 85'975 25'927 34'702
RSA 768 e=3 62 bits verify 114'546 47'151 67'016
RSA 768 e=f4 62 bits verify 51'425 23'467 36'163
RSA 1024 e=3 73 bits verify 89'899 41'223 57'059
RSA 1024 e=f4 73 bits verify 40'736 9'569 26'082
RSA 1536 e=3 89 bits verify 59'941 33'632 33'338
RSA 1536 e=f4 89 bits verify 20'979 9'520 12'731
RSA 2048 e=3 103 bits verify 35'728 22'385 16'076
RSA 2048 e=f4 103 bits verify 12'313 5'140 4'630
RSA 3072 e=3 125 bits verify 16'474 21'272 12'929
RSA 3072 e=f4 125 bits verify 6'318 3'377 2'305
RSA 4096 e=3 142 bits verify 9'081 4'894 4'643
RSA 4096 e=f4 142 bits verify 2'975 919 2'128
RSA 6144 e=3 171 bits verify 3'758 6'793 2'666
RSA 6144 e=f4 171 bits verify 1'540 1'047 894
RSA 8192 e=3 193 bits verify 3'039 3'871 1'204
RSA 8192 e=f4 193 bits verify 1'643 579 462
ECDSA 256 128 bits verify N/A N/A 1'098
ECDSA 384 192 bits verify N/A N/A 484
ECDSA 521 260 bits verify N/A N/A 239

* = cryptographic strength estimates according to RFC 3766 using www.keylength.com

Diffie-Hellman Key Exchange

DH group Strength Operations/s gmp gcrypt openssl gmp* gcrypt* openssl*
MODP 768 62 bits A=g^a mod p 1'631 756 1'040 3'847 2'121 2'786
MODP 1024 73 bits A=g^a mod p 805 342 484 2'722 1'381 1'764
MODP 1536 89 bits A=g^a mod p 268 130 99 1'340 783 873
MODP 2048 103 bits A=g^a mod p 121 56 70 592 320 343
MODP 3072 125 bits A=g^a mod p 38 20 21 282 172 159
MODP 4096 142 bits A=g^a mod p 16 6 8 125 75 70
MODP 6144 171 bits A=g^a mod p 5 2 3 59 38 31
MODP 8096 193 bits A=g^a mod p 2 1 0 34 22 17
ECP 192 96 bits A=g^a mod p N/A N/A 988 - - -
ECP 224 112 bits A=g^a mod p N/A N/A 873 - - -
ECP 256 128 bits A=g^a mod p N/A N/A 823 - - -
ECP 384 192 bits A=g^a mod p N/A N/A 360 - - -
ECP 521 260 bits A=g^a mod p N/A N/A 180 - - -
MODP 768 62 bits S=B^a mod p 1'931 565 1'119 5'474 1792 3'300
MODP 1024 73 bits S=B^a mod p 866 232 382 3'271 1037 1'993
MODP 1536 89 bits S=B^a mod p 279 88 135 1'590 574 920
MODP 2048 103 bits S=B^a mod p 123 38 50 634 216 366
MODP 3072 125 bits S=B^a mod p 38 13 14 289 118 165
MODP 4096 142 bits S=B^a mod p 16 4 9 126 49 67
MODP 6144 171 bits S=B^a mod p 5 1 1 61 25 31
MODP 8096 193 bits S=B^a mod p 2 0 1 39 14 18
ECP 192 96 bits S=B^a mod p N/A N/A 1'058 - - -
ECP 224 112 bits S=B^a mod p N/A N/A 963 - - -
ECP 256 128 bits S=B^a mod p N/A N/A 851 - - -
ECP 384 192 bits S=B^a mod p N/A N/A 364 - - -
ECP 521 260 bits S=B^a mod p N/A N/A 210 - - -

* = using reduced exponent size (libstrongswan.dh_exponent_ansi_x9_42 = no) as recommended by RFC3526