Project

General

Profile

Speed Comparison of Public Key Algorithms » History » Version 9

Andreas Steffen, 10.06.2009 09:38
refer directly to section 8. Security Considerations

1 1 Martin Willi
h1. Speed comparison of public key algorithms
2 1 Martin Willi
3 4 Martin Willi
h2. 32bit, User-Mode-Linux on a Core2Duo T9400 (one core)
4 1 Martin Willi
5 7 Andreas Steffen
h3. Public Key Signature
6 1 Martin Willi
7 7 Andreas Steffen
|_.Key type|_.Strength*|_.Operations/s|_.gmp   |_.gcrypt |_.openssl |
8 7 Andreas Steffen
|RSA 512   |>.50 bits  |sign          |>.3'791 |>.1'831  |>.2'105   |
9 7 Andreas Steffen
|RSA 768   |>.62 bits  |sign          |>.1'519 |>.709    |>.810     |
10 7 Andreas Steffen
|RSA 1024  |>.73 bits  |sign          |>.713   |>.292    |>.485     |
11 7 Andreas Steffen
|RSA 1536  |>.89 bits  |sign          |>.240   |>.102    |>.184     |
12 7 Andreas Steffen
|RSA 2048  |>.103 bits |sign          |>.110   |>.47     |>.93      |
13 7 Andreas Steffen
|ECDSA 256 |>.128 bits |sign          |=._N/A_ |=._N/A_  |>.522     |
14 7 Andreas Steffen
|ECDSA 384 |>.192 bits |sign          |=._N/A_ |=._N/A_  |>.226     |
15 7 Andreas Steffen
|ECDSA 521 |>.260 bits |sign          |=._N/A_ |=._N/A_  |>.109     |
16 7 Andreas Steffen
|RSA 512   |>.50 bits  |verify        |>.29'630|>.16'667 |>.25'806  |
17 7 Andreas Steffen
|RSA 768   |>.62 bits  |verify        |>.18'182|>.10'714 |>.15'385  |
18 7 Andreas Steffen
|RSA 1024  |>.73 bits  |verify        |>.11'765|>.6'897  |>.11'111  |
19 7 Andreas Steffen
|RSA 1536  |>.89 bits  |verify        |>.5'882 |>.3'774  |>.5'882   |
20 7 Andreas Steffen
|RSA 2048  |>.103 bits |verify        |>.3'571 |>.2'326  |>.3'704   |
21 7 Andreas Steffen
|ECDSA 256 |>.128 bits |verify        |=._N/A_ |=._N/A_  |>.440     |
22 7 Andreas Steffen
|ECDSA 384 |>.192 bits |verify        |=._N/A_ |=._N/A_  |>.180     |
23 7 Andreas Steffen
|ECDSA 521 |>.260 bits |verify        |=._N/A_ |=._N/A_  |>.90      |
24 6 Andreas Steffen
25 8 Andreas Steffen
_* = cryptographic strength estimates according to_ "RFC 3766":http://tools.ietf.org/html/rfc3766
26 7 Andreas Steffen
27 7 Andreas Steffen
h3. Diffie-Hellman Key Exchange
28 7 Andreas Steffen
29 7 Andreas Steffen
|_.DH group|_.Strength|_.Operations/s|_.gmp  |_.gcrypt |_.openssl |_.gmp*  |_.gcrypt*|_.openssl*|
30 7 Andreas Steffen
|MODP 768  |>.62 bits |A=g^a mod p   |>.368  |>.243    |>.212     |>.741   |>.531    |>.319     |
31 7 Andreas Steffen
|MODP 1024 |>.73 bits |A=g^a mod p   |>.196  |>.125    |>.136     |>.494   |>.388    |>.272     |
32 7 Andreas Steffen
|MODP 1536 |>.89 bits |A=g^a mod p   |>.68   |>.45     |>.62      |>.308   |>.220    |>.196     |
33 7 Andreas Steffen
|MODP 2048 |>.103 bits|A=g^a mod p   |>.31   |>.21     |>.28      |>.149   |>.98     |>.116     |
34 7 Andreas Steffen
|ECP 192   |>.96 bits |A=g^a mod p   |=._N/A_|=._N/A_  |>.166     |=.-     |=.-      |=.-       |
35 7 Andreas Steffen
|ECP 224   |>.112 bits|A=g^a mod p   |=._N/A_|=._N/A_  |>.157     |=.-     |=.-      |=.-       |
36 7 Andreas Steffen
|ECP 256   |>.128 bits|A=g^a mod p   |=._N/A_|=._N/A_  |>.148     |=.-     |=.-      |=.-       |
37 7 Andreas Steffen
|ECP 384   |>.192 bits|A=g^a mod p   |=._N/A_|=._N/A_  |>.91      |=.-     |=.-      |=.-       |
38 7 Andreas Steffen
|ECP 521   |>.260 bits|A=g^a mod p   |=._N/A_|=._N/A_  |>.63      |=.-     |=.-      |=.-       |
39 7 Andreas Steffen
|MODP 768  |>.62 bits |S=B^a mod p   |>.448  |>.190    |>.290     |>.1176  |>.496    |>.541     |
40 7 Andreas Steffen
|MODP 1024 |>.73 bits |S=B^a mod p   |>.213  |>.89     |>.167     |>.727   |>.320    |>.440     |
41 7 Andreas Steffen
|MODP 1536 |>.89 bits |S=B^a mod p   |>.71   |>.31     |>.64      |>.385   |>.175    |>.286     |
42 7 Andreas Steffen
|MODP 2048 |>.103 bits|S=B^a mod p   |>.32   |>.13     |>.30      |>.164   |>.71     |>.141     |
43 7 Andreas Steffen
|ECP 192   |>.96 bits |S=B^a mod p   |=._N/A_|=._N/A_  |>.171     |=.-     |=.-      |=.-       |
44 7 Andreas Steffen
|ECP 224   |>.112 bits|S=B^a mod p   |=._N/A_|=._N/A_  |>.162     |=.-     |=.-      |=.-       |
45 7 Andreas Steffen
|ECP 256   |>.128 bits|S=B^a mod p   |=._N/A_|=._N/A_  |>.152     |=.-     |=.-      |=.-       |
46 7 Andreas Steffen
|ECP 384   |>.192 bits|S=B^a mod p   |=._N/A_|=._N/A_  |>.91      |=.-     |=.-      |=.-       |
47 7 Andreas Steffen
|ECP 521   |>.260 bits|S=B^a mod p   |=._N/A_|=._N/A_  |>.65      |=.-     |=.-      |=.-       |
48 7 Andreas Steffen
49 9 Andreas Steffen
_* = using reduced exponent size (libstrongswan.dh_exponent_ansi_x9_42 = no) as recommended by_ "RFC3526":http://tools.ietf.org/html/rfc3526#section-8
50 7 Andreas Steffen
51 4 Martin Willi
h2. 64bit under VirtualBox, Core2Duo T9400 (one core):
52 4 Martin Willi
53 7 Andreas Steffen
h3. Public Key Signature
54 5 Andreas Steffen
55 7 Andreas Steffen
|_.Key type|_.Strength*|_.Operations/s|_.gmp    |_.gcrypt |_.openssl |
56 7 Andreas Steffen
|RSA 512   |>.50 bits  |sign          |>.13'082 |>.3'530  |>.7'478   |
57 7 Andreas Steffen
|RSA 768   |>.62 bits  |sign          |>.5'523  |>.1'603  |>.3'154   |
58 7 Andreas Steffen
|RSA 1024  |>.73 bits  |sign          |>.2'742  |>.766    |>.1'577   |
59 7 Andreas Steffen
|RSA 1536  |>.89 bits  |sign          |>.937    |>.285    |>.555     |
60 7 Andreas Steffen
|RSA 2048  |>.103 bits |sign          |>.433    |>.133    |>.258     |
61 7 Andreas Steffen
|ECDSA 256 |>.128 bits |sign          |=._N/A_  |=._N/A_  |>.1'267   |
62 7 Andreas Steffen
|ECDSA 384 |>.192 bits |sign          |=._N/A_  |=._N/A_  |>.577     |
63 7 Andreas Steffen
|ECDSA 521 |>.260 bits |sign          |=._N/A_  |=._N/A_  |>.291     |
64 7 Andreas Steffen
|RSA 512   |>.50 bits  |verify        |>.103'733|>.36'197 |>.5'9598  |
65 7 Andreas Steffen
|RSA 768   |>.62 bits  |verify        |>.61'520 |>.25'411 |>.35'704  |
66 7 Andreas Steffen
|RSA 1024  |>.73 bits  |verify        |>.41'377 |>.16'098 |>.26'314  |
67 7 Andreas Steffen
|RSA 1536  |>.89 bits  |verify        |>.22'148 |>.10'941 |>.13'607  |
68 7 Andreas Steffen
|RSA 2048  |>.103 bits |verify        |>.13'500 |>.6'524  |>.8'345   |
69 7 Andreas Steffen
|ECDSA 256 |>.128 bits |verify        |=._N/A_  |=._N/A_  |>.1'143   |
70 7 Andreas Steffen
|ECDSA 384 |>.192 bits |verify        |=._N/A_  |=._N/A_  |>.508     |
71 7 Andreas Steffen
|ECDSA 512 |>.260 bits |verify        |=._N/A_  |=._N/A_  |>.255     |
72 7 Andreas Steffen
73 8 Andreas Steffen
_* = cryptographic strength estimates according to_ "RFC 3766":http://tools.ietf.org/html/rfc3766
74 7 Andreas Steffen
75 7 Andreas Steffen
h3. Diffie-Hellman Key Exchange
76 7 Andreas Steffen
77 7 Andreas Steffen
|_.DH group|_.Strength|_.Operations/s|_.gmp   |_.gcrypt |_.openssl |_.gmp*  |_.gcrypt*|_.openssl*|
78 7 Andreas Steffen
|MODP 768  |>.62 bits |A=g^a mod p   |>.1'853 |>.790    |>.1'088   |>.5'622 |>.2'151  |>.2'656   |
79 7 Andreas Steffen
|MODP 1024 |>.73 bits |A=g^a mod p   |>.862   |>.347    |>.491     |>.3'523 |>.1'352  |>.1'689   |
80 7 Andreas Steffen
|MODP 1536 |>.89 bits |A=g^a mod p   |>.269   |>.135    |>.168     |>.1'612 |>.776    |>.837     |
81 7 Andreas Steffen
|MODP 2048 |>.103 bits|A=g^a mod p   |>.117   |>.55     |>.73      |>.689   |>.298    |>.362     |
82 7 Andreas Steffen
|ECP 192   |>.96 bits |A=g^a mod p   |=._N/A_ |=._N/A_  |>.1'699   |=.-     |=.-      |=.-       |
83 7 Andreas Steffen
|ECP 224   |>.112 bits|A=g^a mod p   |=._N/A_ |=._N/A_  |>.1'494   |=.-     |=.-      |=.-       |
84 7 Andreas Steffen
|ECP 256   |>.128 bits|A=g^a mod p   |=._N/A_ |=._N/A_  |>.1'298   |=.-     |=.-      |=.-       |
85 7 Andreas Steffen
|ECP 384   |>.192 bits|A=g^a mod p   |=._N/A_ |=._N/A_  |>.591     |=.-     |=.-      |=.-       |
86 7 Andreas Steffen
|ECP 521   |>.260 bits |A=g^a mod p   |=._N/A_ |=._N/A_  |>.306     |=.-     |=.-      |=.-       |
87 7 Andreas Steffen
|MODP 768  |>.62 bits |S=B^a mod p   |>.1'882 |>.595    |>.1'191   |>.5'737 |>.1'779  |>.3'280   |
88 7 Andreas Steffen
|MODP 1024 |>.73 bits |S=B^a mod p   |>.869   |>.274    |>.535     |>.3'431 |>.1'035  |>.1'928   |
89 7 Andreas Steffen
|MODP 1536 |>.89 bits |S=B^a mod p   |>.278   |>.98     |>.174     |>.1'648 |>.571    |>.900     |
90 7 Andreas Steffen
|MODP 2048 |>.103 bits|S=B^a mod p   |>.122   |>.38     |>.74      |>.660   |>.214    |>.380     |
91 7 Andreas Steffen
|ECP 192   |>.96 bits |S=B^a mod p   |=._N/A_ |=._N/A_  |>.1'727   |=.-     |=.-      |=.-       |
92 7 Andreas Steffen
|ECP 224   |>.112 bits|S=B^a mod p   |=._N/A_ |=._N/A_  |>.1'589   |=.-     |=.-      |=.-       |
93 7 Andreas Steffen
|ECP 256   |>.128 bits|S=B^a mod p   |=._N/A_ |=._N/A_  |>.1'423   |=.-     |=.-      |=.-       |
94 7 Andreas Steffen
|ECP 384   |>.192 bits|S=B^a mod p   |=._N/A_ |=._N/A_  |>.609     |=.-     |=.-      |=.-       |
95 7 Andreas Steffen
|ECP 521   |>.260 bits |S=B^a mod p   |=._N/A_ |=._N/A_  |>.313     |=.-     |=.-      |=.-       |
96 1 Martin Willi
97 9 Andreas Steffen
_* = using reduced exponent size (libstrongswan.dh_exponent_ansi_x9_42 = no) as recommended by_ "RFC3526":http://tools.ietf.org/html/rfc3526#section-8