Project

General

Profile

Speed Comparison of Public Key Algorithms » History » Version 12

Andreas Steffen, 10.06.2009 16:57
computed RFC3766 values using www.keylength.com

1 1 Martin Willi
h1. Speed comparison of public key algorithms
2 1 Martin Willi
3 11 Martin Willi
h2. 32bit, native on a Core2Duo T9400 (one core)
4 11 Martin Willi
5 11 Martin Willi
h3. Diffie-Hellman Key Exchange
6 11 Martin Willi
7 11 Martin Willi
|_.DH group|_.Strength|_.Operations/s|_.gmp  |_.gcrypt |_.openssl |_.gmp*  |_.gcrypt*|_.openssl*|
8 11 Martin Willi
|MODP 768  |>.62 bits |A=g^a mod p   |>.468.3|>.293.5  |>.371.9   |>.1271.8|>.866.0  |>.1060.6  |
9 11 Martin Willi
|MODP 1024 |>.73 bits |A=g^a mod p   |>.216.6|>.136.4  |>.192.6   |>.792.7 |>.540.5  |>.706.1   |
10 11 Martin Willi
|MODP 1536 |>.89 bits |A=g^a mod p   |>.71.5 |>.46.7   |>.70.8    |>.395.2 |>.279.2  |>.379.1   |
11 11 Martin Willi
|MODP 2048 |>.103 bits|A=g^a mod p   |>.31.9 |>.20.9   |>.31.5    |>.161.7 |>.112.6  |>.155.0   |
12 12 Andreas Steffen
|MODP 3072 |>.125 bits|A=g^a mod p   |>.10.2 |>.6.8    |>.11.2    |>.77.3  |>.55.9   |>.81.3    |
13 12 Andreas Steffen
|MODP 4096 |>.142 bits|A=g^a mod p   |>.4.5  |>.3.0    |>.4.8     |>.34.4  |>.24.5   |>.35.7    |
14 12 Andreas Steffen
|MODP 6144 |>.171 bits|A=g^a mod p   |>.1.5  |>.1.0    |>.1.6     |>.17.8  |>.11.9   |>.17.7    |
15 12 Andreas Steffen
|MODP 8096 |>.193 bits|A=g^a mod p   |>.0.7  |>.0.4    |>.0.7     |>.11.2  |>.7.0    |>.10.2    |
16 11 Martin Willi
|ECP 192   |>.96 bits |A=g^a mod p   |=._N/A_|=._N/A_  |>.961.6   |=.-     |=.-      |=.-       |
17 11 Martin Willi
|ECP 224   |>.112 bits|A=g^a mod p   |=._N/A_|=._N/A_  |>.724.8   |=.-     |=.-      |=.-       |
18 11 Martin Willi
|ECP 256   |>.128 bits|A=g^a mod p   |=._N/A_|=._N/A_  |>.577.7   |=.-     |=.-      |=.-       |
19 11 Martin Willi
|ECP 384   |>.192 bits|A=g^a mod p   |=._N/A_|=._N/A_  |>.243.2   |=.-     |=.-      |=.-       |
20 11 Martin Willi
|ECP 521   |>.260 bits|A=g^a mod p   |=._N/A_|=._N/A_  |>.117.2   |=.-     |=.-      |=.-       |
21 11 Martin Willi
|MODP 768  |>.62 bits |S=B^a mod p   |>.489.3|>.205.7  |>.393.6   |>.1418.2|>.618.5  |>.1101.2  |
22 11 Martin Willi
|MODP 1024 |>.73 bits |S=B^a mod p   |>.222.3|>.92.5   |>.195.4   |>.845.5 |>.372.9  |>.728.1   |
23 11 Martin Willi
|MODP 1536 |>.89 bits |S=B^a mod p   |>.71.9 |>.31.4   |>.71.1    |>.409.7 |>.188.2  |>.382.7   |
24 11 Martin Willi
|MODP 2048 |>.103 bits|S=B^a mod p   |>.31.9 |>.14.0   |>.31.6    |>.163.9 |>.74.5   |>.156.5   |
25 12 Andreas Steffen
|MODP 3072 |>.125 bits|S=B^a mod p   |>.10.2 |>.4.6    |>.11.15   |>.77.8  |>.36.6   |>.80.6    |
26 12 Andreas Steffen
|MODP 4096 |>.142 bits|S=B^a mod p   |>.4.5  |>.2.0    |>.4.8     |>.34.5  |>.16.2   |>.35.7    |
27 12 Andreas Steffen
|MODP 6144 |>.171 bits|S=B^a mod p   |>.1.5  |>.0.7    |>.1.6     |>.17.8  |>.7.9    |>.17.6    |
28 12 Andreas Steffen
|MODP 8096 |>.193 bits|S=B^a mod p   |>.0.6  |>.0.3    |>.0.7     |>.11.2  |>.4.5    |>.10.3    |
29 11 Martin Willi
|ECP 192   |>.96 bits |S=B^a mod p   |=._N/A_|=._N/A_  |>.950.2   |=.-     |=.-      |=.-       |
30 11 Martin Willi
|ECP 224   |>.112 bits|S=B^a mod p   |=._N/A_|=._N/A_  |>.716.9   |=.-     |=.-      |=.-       |
31 11 Martin Willi
|ECP 256   |>.128 bits|S=B^a mod p   |=._N/A_|=._N/A_  |>.564.0   |=.-     |=.-      |=.-       |
32 11 Martin Willi
|ECP 384   |>.192 bits|S=B^a mod p   |=._N/A_|=._N/A_  |>.239.1   |=.-     |=.-      |=.-       |
33 11 Martin Willi
|ECP 521   |>.260 bits|S=B^a mod p   |=._N/A_|=._N/A_  |>.116.0   |=.-     |=.-      |=.-       |
34 11 Martin Willi
35 11 Martin Willi
_* = using reduced exponent size (libstrongswan.dh_exponent_ansi_x9_42 = no) as recommended by_ "RFC3526":http://tools.ietf.org/html/rfc3526#section-8
36 11 Martin Willi
37 4 Martin Willi
h2. 32bit, User-Mode-Linux on a Core2Duo T9400 (one core)
38 1 Martin Willi
39 7 Andreas Steffen
h3. Public Key Signature
40 1 Martin Willi
41 7 Andreas Steffen
|_.Key type|_.Strength*|_.Operations/s|_.gmp   |_.gcrypt |_.openssl |
42 7 Andreas Steffen
|RSA 512   |>.50 bits  |sign          |>.3'791 |>.1'831  |>.2'105   |
43 7 Andreas Steffen
|RSA 768   |>.62 bits  |sign          |>.1'519 |>.709    |>.810     |
44 7 Andreas Steffen
|RSA 1024  |>.73 bits  |sign          |>.713   |>.292    |>.485     |
45 7 Andreas Steffen
|RSA 1536  |>.89 bits  |sign          |>.240   |>.102    |>.184     |
46 7 Andreas Steffen
|RSA 2048  |>.103 bits |sign          |>.110   |>.47     |>.93      |
47 7 Andreas Steffen
|ECDSA 256 |>.128 bits |sign          |=._N/A_ |=._N/A_  |>.522     |
48 7 Andreas Steffen
|ECDSA 384 |>.192 bits |sign          |=._N/A_ |=._N/A_  |>.226     |
49 7 Andreas Steffen
|ECDSA 521 |>.260 bits |sign          |=._N/A_ |=._N/A_  |>.109     |
50 7 Andreas Steffen
|RSA 512   |>.50 bits  |verify        |>.29'630|>.16'667 |>.25'806  |
51 7 Andreas Steffen
|RSA 768   |>.62 bits  |verify        |>.18'182|>.10'714 |>.15'385  |
52 7 Andreas Steffen
|RSA 1024  |>.73 bits  |verify        |>.11'765|>.6'897  |>.11'111  |
53 7 Andreas Steffen
|RSA 1536  |>.89 bits  |verify        |>.5'882 |>.3'774  |>.5'882   |
54 7 Andreas Steffen
|RSA 2048  |>.103 bits |verify        |>.3'571 |>.2'326  |>.3'704   |
55 7 Andreas Steffen
|ECDSA 256 |>.128 bits |verify        |=._N/A_ |=._N/A_  |>.440     |
56 7 Andreas Steffen
|ECDSA 384 |>.192 bits |verify        |=._N/A_ |=._N/A_  |>.180     |
57 7 Andreas Steffen
|ECDSA 521 |>.260 bits |verify        |=._N/A_ |=._N/A_  |>.90      |
58 6 Andreas Steffen
59 12 Andreas Steffen
_* = cryptographic strength estimates according to_ "RFC 3766":http://tools.ietf.org/html/rfc3766 _using_ "www.keylength.com":http://www.keylength.com
60 7 Andreas Steffen
61 7 Andreas Steffen
h3. Diffie-Hellman Key Exchange
62 7 Andreas Steffen
63 7 Andreas Steffen
|_.DH group|_.Strength|_.Operations/s|_.gmp  |_.gcrypt |_.openssl |_.gmp*  |_.gcrypt*|_.openssl*|
64 7 Andreas Steffen
|MODP 768  |>.62 bits |A=g^a mod p   |>.368  |>.243    |>.212     |>.741   |>.531    |>.319     |
65 7 Andreas Steffen
|MODP 1024 |>.73 bits |A=g^a mod p   |>.196  |>.125    |>.136     |>.494   |>.388    |>.272     |
66 7 Andreas Steffen
|MODP 1536 |>.89 bits |A=g^a mod p   |>.68   |>.45     |>.62      |>.308   |>.220    |>.196     |
67 7 Andreas Steffen
|MODP 2048 |>.103 bits|A=g^a mod p   |>.31   |>.21     |>.28      |>.149   |>.98     |>.116     |
68 7 Andreas Steffen
|ECP 192   |>.96 bits |A=g^a mod p   |=._N/A_|=._N/A_  |>.166     |=.-     |=.-      |=.-       |
69 7 Andreas Steffen
|ECP 224   |>.112 bits|A=g^a mod p   |=._N/A_|=._N/A_  |>.157     |=.-     |=.-      |=.-       |
70 7 Andreas Steffen
|ECP 256   |>.128 bits|A=g^a mod p   |=._N/A_|=._N/A_  |>.148     |=.-     |=.-      |=.-       |
71 7 Andreas Steffen
|ECP 384   |>.192 bits|A=g^a mod p   |=._N/A_|=._N/A_  |>.91      |=.-     |=.-      |=.-       |
72 7 Andreas Steffen
|ECP 521   |>.260 bits|A=g^a mod p   |=._N/A_|=._N/A_  |>.63      |=.-     |=.-      |=.-       |
73 7 Andreas Steffen
|MODP 768  |>.62 bits |S=B^a mod p   |>.448  |>.190    |>.290     |>.1176  |>.496    |>.541     |
74 7 Andreas Steffen
|MODP 1024 |>.73 bits |S=B^a mod p   |>.213  |>.89     |>.167     |>.727   |>.320    |>.440     |
75 7 Andreas Steffen
|MODP 1536 |>.89 bits |S=B^a mod p   |>.71   |>.31     |>.64      |>.385   |>.175    |>.286     |
76 7 Andreas Steffen
|MODP 2048 |>.103 bits|S=B^a mod p   |>.32   |>.13     |>.30      |>.164   |>.71     |>.141     |
77 7 Andreas Steffen
|ECP 192   |>.96 bits |S=B^a mod p   |=._N/A_|=._N/A_  |>.171     |=.-     |=.-      |=.-       |
78 7 Andreas Steffen
|ECP 224   |>.112 bits|S=B^a mod p   |=._N/A_|=._N/A_  |>.162     |=.-     |=.-      |=.-       |
79 7 Andreas Steffen
|ECP 256   |>.128 bits|S=B^a mod p   |=._N/A_|=._N/A_  |>.152     |=.-     |=.-      |=.-       |
80 7 Andreas Steffen
|ECP 384   |>.192 bits|S=B^a mod p   |=._N/A_|=._N/A_  |>.91      |=.-     |=.-      |=.-       |
81 7 Andreas Steffen
|ECP 521   |>.260 bits|S=B^a mod p   |=._N/A_|=._N/A_  |>.65      |=.-     |=.-      |=.-       |
82 7 Andreas Steffen
83 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
84 7 Andreas Steffen
85 4 Martin Willi
h2. 64bit under VirtualBox, Core2Duo T9400 (one core):
86 4 Martin Willi
87 7 Andreas Steffen
h3. Public Key Signature
88 5 Andreas Steffen
89 7 Andreas Steffen
|_.Key type|_.Strength*|_.Operations/s|_.gmp    |_.gcrypt |_.openssl |
90 7 Andreas Steffen
|RSA 512   |>.50 bits  |sign          |>.13'082 |>.3'530  |>.7'478   |
91 7 Andreas Steffen
|RSA 768   |>.62 bits  |sign          |>.5'523  |>.1'603  |>.3'154   |
92 7 Andreas Steffen
|RSA 1024  |>.73 bits  |sign          |>.2'742  |>.766    |>.1'577   |
93 7 Andreas Steffen
|RSA 1536  |>.89 bits  |sign          |>.937    |>.285    |>.555     |
94 7 Andreas Steffen
|RSA 2048  |>.103 bits |sign          |>.433    |>.133    |>.258     |
95 7 Andreas Steffen
|ECDSA 256 |>.128 bits |sign          |=._N/A_  |=._N/A_  |>.1'267   |
96 7 Andreas Steffen
|ECDSA 384 |>.192 bits |sign          |=._N/A_  |=._N/A_  |>.577     |
97 7 Andreas Steffen
|ECDSA 521 |>.260 bits |sign          |=._N/A_  |=._N/A_  |>.291     |
98 10 Andreas Steffen
|RSA 512   |>.50 bits  |verify        |>.103'733|>.36'197 |>.59'598  |
99 7 Andreas Steffen
|RSA 768   |>.62 bits  |verify        |>.61'520 |>.25'411 |>.35'704  |
100 7 Andreas Steffen
|RSA 1024  |>.73 bits  |verify        |>.41'377 |>.16'098 |>.26'314  |
101 7 Andreas Steffen
|RSA 1536  |>.89 bits  |verify        |>.22'148 |>.10'941 |>.13'607  |
102 7 Andreas Steffen
|RSA 2048  |>.103 bits |verify        |>.13'500 |>.6'524  |>.8'345   |
103 7 Andreas Steffen
|ECDSA 256 |>.128 bits |verify        |=._N/A_  |=._N/A_  |>.1'143   |
104 7 Andreas Steffen
|ECDSA 384 |>.192 bits |verify        |=._N/A_  |=._N/A_  |>.508     |
105 7 Andreas Steffen
|ECDSA 512 |>.260 bits |verify        |=._N/A_  |=._N/A_  |>.255     |
106 7 Andreas Steffen
107 12 Andreas Steffen
_* = cryptographic strength estimates according to_ "RFC 3766":http://tools.ietf.org/html/rfc3766 _using_ "www.keylength.com":http://www.keylength.com
108 7 Andreas Steffen
109 7 Andreas Steffen
h3. Diffie-Hellman Key Exchange
110 7 Andreas Steffen
111 7 Andreas Steffen
|_.DH group|_.Strength|_.Operations/s|_.gmp   |_.gcrypt |_.openssl |_.gmp*  |_.gcrypt*|_.openssl*|
112 7 Andreas Steffen
|MODP 768  |>.62 bits |A=g^a mod p   |>.1'853 |>.790    |>.1'088   |>.5'622 |>.2'151  |>.2'656   |
113 7 Andreas Steffen
|MODP 1024 |>.73 bits |A=g^a mod p   |>.862   |>.347    |>.491     |>.3'523 |>.1'352  |>.1'689   |
114 7 Andreas Steffen
|MODP 1536 |>.89 bits |A=g^a mod p   |>.269   |>.135    |>.168     |>.1'612 |>.776    |>.837     |
115 7 Andreas Steffen
|MODP 2048 |>.103 bits|A=g^a mod p   |>.117   |>.55     |>.73      |>.689   |>.298    |>.362     |
116 7 Andreas Steffen
|ECP 192   |>.96 bits |A=g^a mod p   |=._N/A_ |=._N/A_  |>.1'699   |=.-     |=.-      |=.-       |
117 7 Andreas Steffen
|ECP 224   |>.112 bits|A=g^a mod p   |=._N/A_ |=._N/A_  |>.1'494   |=.-     |=.-      |=.-       |
118 7 Andreas Steffen
|ECP 256   |>.128 bits|A=g^a mod p   |=._N/A_ |=._N/A_  |>.1'298   |=.-     |=.-      |=.-       |
119 7 Andreas Steffen
|ECP 384   |>.192 bits|A=g^a mod p   |=._N/A_ |=._N/A_  |>.591     |=.-     |=.-      |=.-       |
120 7 Andreas Steffen
|ECP 521   |>.260 bits |A=g^a mod p   |=._N/A_ |=._N/A_  |>.306     |=.-     |=.-      |=.-       |
121 7 Andreas Steffen
|MODP 768  |>.62 bits |S=B^a mod p   |>.1'882 |>.595    |>.1'191   |>.5'737 |>.1'779  |>.3'280   |
122 7 Andreas Steffen
|MODP 1024 |>.73 bits |S=B^a mod p   |>.869   |>.274    |>.535     |>.3'431 |>.1'035  |>.1'928   |
123 7 Andreas Steffen
|MODP 1536 |>.89 bits |S=B^a mod p   |>.278   |>.98     |>.174     |>.1'648 |>.571    |>.900     |
124 7 Andreas Steffen
|MODP 2048 |>.103 bits|S=B^a mod p   |>.122   |>.38     |>.74      |>.660   |>.214    |>.380     |
125 7 Andreas Steffen
|ECP 192   |>.96 bits |S=B^a mod p   |=._N/A_ |=._N/A_  |>.1'727   |=.-     |=.-      |=.-       |
126 7 Andreas Steffen
|ECP 224   |>.112 bits|S=B^a mod p   |=._N/A_ |=._N/A_  |>.1'589   |=.-     |=.-      |=.-       |
127 7 Andreas Steffen
|ECP 256   |>.128 bits|S=B^a mod p   |=._N/A_ |=._N/A_  |>.1'423   |=.-     |=.-      |=.-       |
128 7 Andreas Steffen
|ECP 384   |>.192 bits|S=B^a mod p   |=._N/A_ |=._N/A_  |>.609     |=.-     |=.-      |=.-       |
129 7 Andreas Steffen
|ECP 521   |>.260 bits |S=B^a mod p   |=._N/A_ |=._N/A_  |>.313     |=.-     |=.-      |=.-       |
130 1 Martin Willi
131 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