Project

General

Profile

Speed Comparison of Public Key Algorithms » History » Version 13

Martin Willi, 10.06.2009 17:19
added native 32bit RSA/ECDSA results

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 13 Martin Willi
h3. Public Key Signature
6 13 Martin Willi
7 13 Martin Willi
|_.Key type   |_.Strength*|_.Operations/s|_.gmp   |_.gcrypt|_.openssl|
8 13 Martin Willi
|RSA 512  e=3 |>.50 bits  |sign          |>.3'708 |>.1'814 |>.2'286  |
9 13 Martin Willi
|RSA 512  e=f4|>.50 bits  |sign          |>.3'946 |>.1'780 |>.2'150  |
10 13 Martin Willi
|RSA 768  e=3 |>.62 bits  |sign          |>.1'483 |>.625   |>.521    |
11 13 Martin Willi
|RSA 768  e=f4|>.62 bits  |sign          |>.1'486 |>.626   |>.783    |
12 13 Martin Willi
|RSA 1024 e=3 |>.73 bits  |sign          |>.724   |>.301   |>.488    |
13 13 Martin Willi
|RSA 1024 e=f4|>.73 bits  |sign          |>.722   |>.285   |>.475    |
14 13 Martin Willi
|RSA 1536 e=3 |>.89 bits  |sign          |>.242   |>.99    |>.117    |
15 13 Martin Willi
|RSA 1536 e=f4|>.89 bits  |sign          |>.243   |>.98    |>.111    |
16 13 Martin Willi
|RSA 2048 e=3 |>.103 bits |sign          |>.110   |>.30    |>.80     |
17 13 Martin Willi
|RSA 2048 e=f4|>.103 bits |sign          |>.109   |>.28    |>.89     |
18 13 Martin Willi
|RSA 3072 e=3 |>.125 bits |sign          |>.35    |>.9     |>.33     |
19 13 Martin Willi
|RSA 3072 e=f4|>.125 bits |sign          |>.35    |>.15    |>.32     |
20 13 Martin Willi
|RSA 4096 e=3 |>.142 bits |sign          |>.15    |>.6     |>.9      |
21 13 Martin Willi
|RSA 4096 e=f4|>.142 bits |sign          |>.15    |>.6     |>.9      |
22 13 Martin Willi
|RSA 6144 e=3 |>.171 bits |sign          |>.4     |>.2     |>.3      |
23 13 Martin Willi
|RSA 6144 e=f4|>.171 bits |sign          |>.4     |>.2     |>.3      |
24 13 Martin Willi
|RSA 8192 e=3 |>.193 bits |sign          |>.2     |>.1     |>.2      |
25 13 Martin Willi
|RSA 8192 e=f4|>.193 bits |sign          |>.2     |>.1     |>.1      |
26 13 Martin Willi
|ECDSA 256    |>.128 bits |sign          |=._N/A_ |=._N/A_ |>.546    |
27 13 Martin Willi
|ECDSA 384    |>.192 bits |sign          |=._N/A_ |=._N/A_ |>.233    |
28 13 Martin Willi
|ECDSA 521    |>.260 bits |sign          |=._N/A_ |=._N/A_ |>.113    |
29 13 Martin Willi
|RSA 512  e=3 |>.50 bits  |verify        |>.76'683|>.36'626|>.55'685 |
30 13 Martin Willi
|RSA 512  e=f4|>.50 bits  |verify        |>.32'577|>.15'860|>.25'086 |
31 13 Martin Willi
|RSA 768  e=3 |>.62 bits  |verify        |>.52'707|>.31'167|>.37'112 |
32 13 Martin Willi
|RSA 768  e=f4|>.62 bits  |verify        |>.17'375|>.10'054|>.15'034 |
33 13 Martin Willi
|RSA 1024 e=3 |>.73 bits  |verify        |>.37'826|>.25'688|>.28'879 |
34 13 Martin Willi
|RSA 1024 e=f4|>.73 bits  |verify        |>.11'402|>.6'640 |>.10'380 |
35 13 Martin Willi
|RSA 1536 e=3 |>.89 bits  |verify        |>.22'143|>.18'505|>.10'393 |
36 13 Martin Willi
|RSA 1536 e=f4|>.89 bits  |verify        |>.5'892 |>.3'770 |>.3'686  |
37 13 Martin Willi
|RSA 2048 e=3 |>.103 bits |verify        |>.14'175|>.8'307 |>.11'625 |
38 13 Martin Willi
|RSA 2048 e=f4|>.103 bits |verify        |>.3'481 |>.1'423 |>.3'535  |
39 13 Martin Willi
|RSA 3072 e=3 |>.125 bits |verify        |>.7'207 |>.4'930 |>.5'654  |
40 13 Martin Willi
|RSA 3072 e=f4|>.125 bits |verify        |>.1'729 |>.1'150 |>.1'857  |
41 13 Martin Willi
|RSA 4096 e=3 |>.142 bits |verify        |>.5'887 |>.4'960 |>.2'263  |
42 13 Martin Willi
|RSA 4096 e=f4|>.142 bits |verify        |>.1'049 |>.684   |>.672    |
43 13 Martin Willi
|RSA 6144 e=3 |>.171 bits |verify        |>.3'171 |>.2630  |>.977    |
44 13 Martin Willi
|RSA 6144 e=f4|>.171 bits |verify        |>.544   |>.335   |>.324    |
45 13 Martin Willi
|RSA 8192 e=3 |>.193 bits |verify        |>.2'015 |>.1638  |>.839    |
46 13 Martin Willi
|RSA 8192 e=f4|>.193 bits |verify        |>.334   |>.194   |>.181    |
47 13 Martin Willi
|ECDSA 256    |>.128 bits |verify        |=._N/A_ |=._N/A_ |>.459    |
48 13 Martin Willi
|ECDSA 384    |>.192 bits |verify        |=._N/A_ |=._N/A_ |>.196    |
49 13 Martin Willi
|ECDSA 521    |>.260 bits |verify        |=._N/A_ |=._N/A_ |>.94     |
50 13 Martin Willi
51 13 Martin Willi
_* = cryptographic strength estimates according to_ "RFC 3766":http://tools.ietf.org/html/rfc3766 _using_ "www.keylength.com":http://www.keylength.com
52 13 Martin Willi
53 11 Martin Willi
h3. Diffie-Hellman Key Exchange
54 11 Martin Willi
55 11 Martin Willi
|_.DH group|_.Strength|_.Operations/s|_.gmp  |_.gcrypt |_.openssl |_.gmp*  |_.gcrypt*|_.openssl*|
56 11 Martin Willi
|MODP 768  |>.62 bits |A=g^a mod p   |>.468.3|>.293.5  |>.371.9   |>.1271.8|>.866.0  |>.1060.6  |
57 11 Martin Willi
|MODP 1024 |>.73 bits |A=g^a mod p   |>.216.6|>.136.4  |>.192.6   |>.792.7 |>.540.5  |>.706.1   |
58 11 Martin Willi
|MODP 1536 |>.89 bits |A=g^a mod p   |>.71.5 |>.46.7   |>.70.8    |>.395.2 |>.279.2  |>.379.1   |
59 11 Martin Willi
|MODP 2048 |>.103 bits|A=g^a mod p   |>.31.9 |>.20.9   |>.31.5    |>.161.7 |>.112.6  |>.155.0   |
60 12 Andreas Steffen
|MODP 3072 |>.125 bits|A=g^a mod p   |>.10.2 |>.6.8    |>.11.2    |>.77.3  |>.55.9   |>.81.3    |
61 12 Andreas Steffen
|MODP 4096 |>.142 bits|A=g^a mod p   |>.4.5  |>.3.0    |>.4.8     |>.34.4  |>.24.5   |>.35.7    |
62 12 Andreas Steffen
|MODP 6144 |>.171 bits|A=g^a mod p   |>.1.5  |>.1.0    |>.1.6     |>.17.8  |>.11.9   |>.17.7    |
63 12 Andreas Steffen
|MODP 8096 |>.193 bits|A=g^a mod p   |>.0.7  |>.0.4    |>.0.7     |>.11.2  |>.7.0    |>.10.2    |
64 11 Martin Willi
|ECP 192   |>.96 bits |A=g^a mod p   |=._N/A_|=._N/A_  |>.961.6   |=.-     |=.-      |=.-       |
65 11 Martin Willi
|ECP 224   |>.112 bits|A=g^a mod p   |=._N/A_|=._N/A_  |>.724.8   |=.-     |=.-      |=.-       |
66 11 Martin Willi
|ECP 256   |>.128 bits|A=g^a mod p   |=._N/A_|=._N/A_  |>.577.7   |=.-     |=.-      |=.-       |
67 11 Martin Willi
|ECP 384   |>.192 bits|A=g^a mod p   |=._N/A_|=._N/A_  |>.243.2   |=.-     |=.-      |=.-       |
68 11 Martin Willi
|ECP 521   |>.260 bits|A=g^a mod p   |=._N/A_|=._N/A_  |>.117.2   |=.-     |=.-      |=.-       |
69 11 Martin Willi
|MODP 768  |>.62 bits |S=B^a mod p   |>.489.3|>.205.7  |>.393.6   |>.1418.2|>.618.5  |>.1101.2  |
70 11 Martin Willi
|MODP 1024 |>.73 bits |S=B^a mod p   |>.222.3|>.92.5   |>.195.4   |>.845.5 |>.372.9  |>.728.1   |
71 11 Martin Willi
|MODP 1536 |>.89 bits |S=B^a mod p   |>.71.9 |>.31.4   |>.71.1    |>.409.7 |>.188.2  |>.382.7   |
72 11 Martin Willi
|MODP 2048 |>.103 bits|S=B^a mod p   |>.31.9 |>.14.0   |>.31.6    |>.163.9 |>.74.5   |>.156.5   |
73 12 Andreas Steffen
|MODP 3072 |>.125 bits|S=B^a mod p   |>.10.2 |>.4.6    |>.11.15   |>.77.8  |>.36.6   |>.80.6    |
74 12 Andreas Steffen
|MODP 4096 |>.142 bits|S=B^a mod p   |>.4.5  |>.2.0    |>.4.8     |>.34.5  |>.16.2   |>.35.7    |
75 12 Andreas Steffen
|MODP 6144 |>.171 bits|S=B^a mod p   |>.1.5  |>.0.7    |>.1.6     |>.17.8  |>.7.9    |>.17.6    |
76 12 Andreas Steffen
|MODP 8096 |>.193 bits|S=B^a mod p   |>.0.6  |>.0.3    |>.0.7     |>.11.2  |>.4.5    |>.10.3    |
77 11 Martin Willi
|ECP 192   |>.96 bits |S=B^a mod p   |=._N/A_|=._N/A_  |>.950.2   |=.-     |=.-      |=.-       |
78 11 Martin Willi
|ECP 224   |>.112 bits|S=B^a mod p   |=._N/A_|=._N/A_  |>.716.9   |=.-     |=.-      |=.-       |
79 11 Martin Willi
|ECP 256   |>.128 bits|S=B^a mod p   |=._N/A_|=._N/A_  |>.564.0   |=.-     |=.-      |=.-       |
80 11 Martin Willi
|ECP 384   |>.192 bits|S=B^a mod p   |=._N/A_|=._N/A_  |>.239.1   |=.-     |=.-      |=.-       |
81 11 Martin Willi
|ECP 521   |>.260 bits|S=B^a mod p   |=._N/A_|=._N/A_  |>.116.0   |=.-     |=.-      |=.-       |
82 11 Martin Willi
83 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
84 11 Martin Willi
85 4 Martin Willi
h2. 32bit, User-Mode-Linux on a Core2Duo T9400 (one core)
86 1 Martin Willi
87 7 Andreas Steffen
h3. Public Key Signature
88 1 Martin Willi
89 7 Andreas Steffen
|_.Key type|_.Strength*|_.Operations/s|_.gmp   |_.gcrypt |_.openssl |
90 7 Andreas Steffen
|RSA 512   |>.50 bits  |sign          |>.3'791 |>.1'831  |>.2'105   |
91 7 Andreas Steffen
|RSA 768   |>.62 bits  |sign          |>.1'519 |>.709    |>.810     |
92 7 Andreas Steffen
|RSA 1024  |>.73 bits  |sign          |>.713   |>.292    |>.485     |
93 7 Andreas Steffen
|RSA 1536  |>.89 bits  |sign          |>.240   |>.102    |>.184     |
94 7 Andreas Steffen
|RSA 2048  |>.103 bits |sign          |>.110   |>.47     |>.93      |
95 7 Andreas Steffen
|ECDSA 256 |>.128 bits |sign          |=._N/A_ |=._N/A_  |>.522     |
96 7 Andreas Steffen
|ECDSA 384 |>.192 bits |sign          |=._N/A_ |=._N/A_  |>.226     |
97 7 Andreas Steffen
|ECDSA 521 |>.260 bits |sign          |=._N/A_ |=._N/A_  |>.109     |
98 7 Andreas Steffen
|RSA 512   |>.50 bits  |verify        |>.29'630|>.16'667 |>.25'806  |
99 7 Andreas Steffen
|RSA 768   |>.62 bits  |verify        |>.18'182|>.10'714 |>.15'385  |
100 7 Andreas Steffen
|RSA 1024  |>.73 bits  |verify        |>.11'765|>.6'897  |>.11'111  |
101 7 Andreas Steffen
|RSA 1536  |>.89 bits  |verify        |>.5'882 |>.3'774  |>.5'882   |
102 7 Andreas Steffen
|RSA 2048  |>.103 bits |verify        |>.3'571 |>.2'326  |>.3'704   |
103 7 Andreas Steffen
|ECDSA 256 |>.128 bits |verify        |=._N/A_ |=._N/A_  |>.440     |
104 7 Andreas Steffen
|ECDSA 384 |>.192 bits |verify        |=._N/A_ |=._N/A_  |>.180     |
105 7 Andreas Steffen
|ECDSA 521 |>.260 bits |verify        |=._N/A_ |=._N/A_  |>.90      |
106 6 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   |>.368  |>.243    |>.212     |>.741   |>.531    |>.319     |
113 7 Andreas Steffen
|MODP 1024 |>.73 bits |A=g^a mod p   |>.196  |>.125    |>.136     |>.494   |>.388    |>.272     |
114 7 Andreas Steffen
|MODP 1536 |>.89 bits |A=g^a mod p   |>.68   |>.45     |>.62      |>.308   |>.220    |>.196     |
115 7 Andreas Steffen
|MODP 2048 |>.103 bits|A=g^a mod p   |>.31   |>.21     |>.28      |>.149   |>.98     |>.116     |
116 7 Andreas Steffen
|ECP 192   |>.96 bits |A=g^a mod p   |=._N/A_|=._N/A_  |>.166     |=.-     |=.-      |=.-       |
117 7 Andreas Steffen
|ECP 224   |>.112 bits|A=g^a mod p   |=._N/A_|=._N/A_  |>.157     |=.-     |=.-      |=.-       |
118 7 Andreas Steffen
|ECP 256   |>.128 bits|A=g^a mod p   |=._N/A_|=._N/A_  |>.148     |=.-     |=.-      |=.-       |
119 7 Andreas Steffen
|ECP 384   |>.192 bits|A=g^a mod p   |=._N/A_|=._N/A_  |>.91      |=.-     |=.-      |=.-       |
120 7 Andreas Steffen
|ECP 521   |>.260 bits|A=g^a mod p   |=._N/A_|=._N/A_  |>.63      |=.-     |=.-      |=.-       |
121 7 Andreas Steffen
|MODP 768  |>.62 bits |S=B^a mod p   |>.448  |>.190    |>.290     |>.1176  |>.496    |>.541     |
122 7 Andreas Steffen
|MODP 1024 |>.73 bits |S=B^a mod p   |>.213  |>.89     |>.167     |>.727   |>.320    |>.440     |
123 7 Andreas Steffen
|MODP 1536 |>.89 bits |S=B^a mod p   |>.71   |>.31     |>.64      |>.385   |>.175    |>.286     |
124 7 Andreas Steffen
|MODP 2048 |>.103 bits|S=B^a mod p   |>.32   |>.13     |>.30      |>.164   |>.71     |>.141     |
125 7 Andreas Steffen
|ECP 192   |>.96 bits |S=B^a mod p   |=._N/A_|=._N/A_  |>.171     |=.-     |=.-      |=.-       |
126 7 Andreas Steffen
|ECP 224   |>.112 bits|S=B^a mod p   |=._N/A_|=._N/A_  |>.162     |=.-     |=.-      |=.-       |
127 7 Andreas Steffen
|ECP 256   |>.128 bits|S=B^a mod p   |=._N/A_|=._N/A_  |>.152     |=.-     |=.-      |=.-       |
128 7 Andreas Steffen
|ECP 384   |>.192 bits|S=B^a mod p   |=._N/A_|=._N/A_  |>.91      |=.-     |=.-      |=.-       |
129 7 Andreas Steffen
|ECP 521   |>.260 bits|S=B^a mod p   |=._N/A_|=._N/A_  |>.65      |=.-     |=.-      |=.-       |
130 7 Andreas Steffen
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
132 7 Andreas Steffen
133 4 Martin Willi
h2. 64bit under VirtualBox, Core2Duo T9400 (one core):
134 4 Martin Willi
135 7 Andreas Steffen
h3. Public Key Signature
136 5 Andreas Steffen
137 7 Andreas Steffen
|_.Key type|_.Strength*|_.Operations/s|_.gmp    |_.gcrypt |_.openssl |
138 7 Andreas Steffen
|RSA 512   |>.50 bits  |sign          |>.13'082 |>.3'530  |>.7'478   |
139 7 Andreas Steffen
|RSA 768   |>.62 bits  |sign          |>.5'523  |>.1'603  |>.3'154   |
140 7 Andreas Steffen
|RSA 1024  |>.73 bits  |sign          |>.2'742  |>.766    |>.1'577   |
141 7 Andreas Steffen
|RSA 1536  |>.89 bits  |sign          |>.937    |>.285    |>.555     |
142 7 Andreas Steffen
|RSA 2048  |>.103 bits |sign          |>.433    |>.133    |>.258     |
143 7 Andreas Steffen
|ECDSA 256 |>.128 bits |sign          |=._N/A_  |=._N/A_  |>.1'267   |
144 7 Andreas Steffen
|ECDSA 384 |>.192 bits |sign          |=._N/A_  |=._N/A_  |>.577     |
145 7 Andreas Steffen
|ECDSA 521 |>.260 bits |sign          |=._N/A_  |=._N/A_  |>.291     |
146 10 Andreas Steffen
|RSA 512   |>.50 bits  |verify        |>.103'733|>.36'197 |>.59'598  |
147 7 Andreas Steffen
|RSA 768   |>.62 bits  |verify        |>.61'520 |>.25'411 |>.35'704  |
148 7 Andreas Steffen
|RSA 1024  |>.73 bits  |verify        |>.41'377 |>.16'098 |>.26'314  |
149 7 Andreas Steffen
|RSA 1536  |>.89 bits  |verify        |>.22'148 |>.10'941 |>.13'607  |
150 7 Andreas Steffen
|RSA 2048  |>.103 bits |verify        |>.13'500 |>.6'524  |>.8'345   |
151 7 Andreas Steffen
|ECDSA 256 |>.128 bits |verify        |=._N/A_  |=._N/A_  |>.1'143   |
152 7 Andreas Steffen
|ECDSA 384 |>.192 bits |verify        |=._N/A_  |=._N/A_  |>.508     |
153 7 Andreas Steffen
|ECDSA 512 |>.260 bits |verify        |=._N/A_  |=._N/A_  |>.255     |
154 7 Andreas Steffen
155 12 Andreas Steffen
_* = cryptographic strength estimates according to_ "RFC 3766":http://tools.ietf.org/html/rfc3766 _using_ "www.keylength.com":http://www.keylength.com
156 7 Andreas Steffen
157 7 Andreas Steffen
h3. Diffie-Hellman Key Exchange
158 7 Andreas Steffen
159 7 Andreas Steffen
|_.DH group|_.Strength|_.Operations/s|_.gmp   |_.gcrypt |_.openssl |_.gmp*  |_.gcrypt*|_.openssl*|
160 7 Andreas Steffen
|MODP 768  |>.62 bits |A=g^a mod p   |>.1'853 |>.790    |>.1'088   |>.5'622 |>.2'151  |>.2'656   |
161 7 Andreas Steffen
|MODP 1024 |>.73 bits |A=g^a mod p   |>.862   |>.347    |>.491     |>.3'523 |>.1'352  |>.1'689   |
162 7 Andreas Steffen
|MODP 1536 |>.89 bits |A=g^a mod p   |>.269   |>.135    |>.168     |>.1'612 |>.776    |>.837     |
163 7 Andreas Steffen
|MODP 2048 |>.103 bits|A=g^a mod p   |>.117   |>.55     |>.73      |>.689   |>.298    |>.362     |
164 7 Andreas Steffen
|ECP 192   |>.96 bits |A=g^a mod p   |=._N/A_ |=._N/A_  |>.1'699   |=.-     |=.-      |=.-       |
165 7 Andreas Steffen
|ECP 224   |>.112 bits|A=g^a mod p   |=._N/A_ |=._N/A_  |>.1'494   |=.-     |=.-      |=.-       |
166 7 Andreas Steffen
|ECP 256   |>.128 bits|A=g^a mod p   |=._N/A_ |=._N/A_  |>.1'298   |=.-     |=.-      |=.-       |
167 7 Andreas Steffen
|ECP 384   |>.192 bits|A=g^a mod p   |=._N/A_ |=._N/A_  |>.591     |=.-     |=.-      |=.-       |
168 7 Andreas Steffen
|ECP 521   |>.260 bits |A=g^a mod p   |=._N/A_ |=._N/A_  |>.306     |=.-     |=.-      |=.-       |
169 7 Andreas Steffen
|MODP 768  |>.62 bits |S=B^a mod p   |>.1'882 |>.595    |>.1'191   |>.5'737 |>.1'779  |>.3'280   |
170 7 Andreas Steffen
|MODP 1024 |>.73 bits |S=B^a mod p   |>.869   |>.274    |>.535     |>.3'431 |>.1'035  |>.1'928   |
171 7 Andreas Steffen
|MODP 1536 |>.89 bits |S=B^a mod p   |>.278   |>.98     |>.174     |>.1'648 |>.571    |>.900     |
172 7 Andreas Steffen
|MODP 2048 |>.103 bits|S=B^a mod p   |>.122   |>.38     |>.74      |>.660   |>.214    |>.380     |
173 7 Andreas Steffen
|ECP 192   |>.96 bits |S=B^a mod p   |=._N/A_ |=._N/A_  |>.1'727   |=.-     |=.-      |=.-       |
174 7 Andreas Steffen
|ECP 224   |>.112 bits|S=B^a mod p   |=._N/A_ |=._N/A_  |>.1'589   |=.-     |=.-      |=.-       |
175 7 Andreas Steffen
|ECP 256   |>.128 bits|S=B^a mod p   |=._N/A_ |=._N/A_  |>.1'423   |=.-     |=.-      |=.-       |
176 7 Andreas Steffen
|ECP 384   |>.192 bits|S=B^a mod p   |=._N/A_ |=._N/A_  |>.609     |=.-     |=.-      |=.-       |
177 7 Andreas Steffen
|ECP 521   |>.260 bits |S=B^a mod p   |=._N/A_ |=._N/A_  |>.313     |=.-     |=.-      |=.-       |
178 1 Martin Willi
179 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