Project

General

Profile

Speed Comparison of Public Key Algorithms » History » Version 23

Andreas Steffen, 10.06.2009 20:30
merged cells in fourth table

1 19 Andreas Steffen
{{>toc}}
2 1 Martin Willi
3 19 Andreas Steffen
h1. Speed Comparison of Public Key Algorithms
4 1 Martin Willi
5 19 Andreas Steffen
h2. 32 bit, native on a Core2Duo T9400 (one core)
6 19 Andreas Steffen
7 13 Martin Willi
h3. Public Key Signature
8 13 Martin Willi
9 21 Andreas Steffen
|_.Key type   |_.Strength*  |_.Operations/s|_.gmp   |_.gcrypt|_.openssl|
10 20 Andreas Steffen
|/2.RSA 512   |/2>.50 bits  |sign (e=3)    |>.3'708 |>.1'814 |>.2'286  |
11 20 Andreas Steffen
                            |sign (e=f4)   |>.3'946 |>.1'780 |>.2'150  |
12 20 Andreas Steffen
|/2.RSA 768   |/2>.62 bits  |sign (e=3)    |>.1'483 |>.625   |>.521    |
13 20 Andreas Steffen
                            |sign (e=f4)   |>.1'486 |>.626   |>.783    |
14 20 Andreas Steffen
|/2.RSA 1024  |/2>.73 bits  |sign (e=3)    |>.724   |>.301   |>.488    |
15 20 Andreas Steffen
                            |sign (e=f4)   |>.722   |>.285   |>.475    |
16 20 Andreas Steffen
|/2.RSA 1536  |/2>.89 bits  |sign (e=3)    |>.242   |>.99    |>.117    |
17 20 Andreas Steffen
                            |sign (e=f4)   |>.243   |>.98    |>.111    |
18 20 Andreas Steffen
|/2.RSA 2048  |/2>.103 bits |sign (e=3)    |>.110   |>.30    |>.80     |
19 20 Andreas Steffen
                            |sign (e=f4)   |>.109   |>.28    |>.89     |
20 20 Andreas Steffen
|/2.RSA 3072  |/2>.125 bits |sign (e=3)    |>.35    |>.9     |>.33     |
21 20 Andreas Steffen
                            |sign (e=f4)   |>.35    |>.15    |>.32     |
22 20 Andreas Steffen
|/2.RSA 4096  |/2>.142 bits |sign (e=3)    |>.15    |>.6     |>.9      |
23 20 Andreas Steffen
                            |sign (e=f4)   |>.15    |>.6     |>.9      |
24 20 Andreas Steffen
|/2.RSA 6144  |/2>.171 bits |sign (e=3)    |>.4     |>.2     |>.3      |
25 20 Andreas Steffen
                            |sign (e=f4)   |>.4     |>.2     |>.3      |
26 20 Andreas Steffen
|/2.RSA 8192  |/2>.193 bits |sign (e=3 )   |>.2     |>.1     |>.2      |
27 20 Andreas Steffen
                            |sign (e=f4)   |>.2     |>.1     |>.1      |
28 20 Andreas Steffen
|ECDSA 256    |>.128 bits   |sign          |=._N/A_ |=._N/A_ |>.546    |
29 20 Andreas Steffen
|ECDSA 384    |>.192 bits   |sign          |=._N/A_ |=._N/A_ |>.233    |
30 20 Andreas Steffen
|ECDSA 521    |>.260 bits   |sign          |=._N/A_ |=._N/A_ |>.113    |
31 20 Andreas Steffen
|/2.RSA 512   |/2>.50 bits  |verify (e=3)  |>.76'683|>.36'626|>.55'685 |
32 20 Andreas Steffen
                            |verify (e=f4) |>.32'577|>.15'860|>.25'086 |
33 20 Andreas Steffen
|/2.RSA 768   |/2>.62 bits  |verify (e=3)  |>.52'707|>.31'167|>.37'112 |
34 20 Andreas Steffen
                            |verify (e=f4) |>.17'375|>.10'054|>.15'034 |
35 20 Andreas Steffen
|/2.RSA 1024  |/2>.73 bits  |verify (e=3)  |>.37'826|>.25'688|>.28'879 |
36 20 Andreas Steffen
                            |verify (e=f4) |>.11'402|>.6'640 |>.10'380 |
37 20 Andreas Steffen
|/2.RSA 1536  |/2>.89 bits  |verify (e=3)  |>.22'143|>.18'505|>.10'393 |
38 20 Andreas Steffen
                            |verify (e=f4) |>.5'892 |>.3'770 |>.3'686  |
39 20 Andreas Steffen
|/2.RSA 2048  |/2>.103 bits |verify (e=3)  |>.14'175|>.8'307 |>.11'625 |
40 20 Andreas Steffen
                            |verify (e=f4) |>.3'481 |>.1'423 |>.3'535  |
41 20 Andreas Steffen
|/2.RSA 3072  |/2>.125 bits |verify (e=3)  |>.7'207 |>.4'930 |>.5'654  |
42 20 Andreas Steffen
                            |verify (e=f4) |>.1'729 |>.1'150 |>.1'857  |
43 20 Andreas Steffen
|/2.RSA 4096  |/2>.142 bits |verify (e=3)  |>.5'887 |>.4'960 |>.2'263  |
44 20 Andreas Steffen
                            |verify (e=f4) |>.1'049 |>.684   |>.672    |
45 20 Andreas Steffen
|/2.RSA 6144  |/2>.171 bits |verify (e=3)  |>.3'171 |>.2630  |>.977    |
46 20 Andreas Steffen
                            |verify (e=f4) |>.544   |>.335   |>.324    |
47 20 Andreas Steffen
|/2.RSA 8192  |/2>.193 bits |verify (e=3)  |>.2'015 |>.1638  |>.839    |
48 20 Andreas Steffen
                            |verify (e=f4) |>.334   |>.194   |>.181    |
49 20 Andreas Steffen
|ECDSA 256    |>.128 bits   |verify        |=._N/A_ |=._N/A_ |>.459    |
50 20 Andreas Steffen
|ECDSA 384    |>.192 bits   |verify        |=._N/A_ |=._N/A_ |>.196    |
51 20 Andreas Steffen
|ECDSA 521    |>.260 bits   |verify        |=._N/A_ |=._N/A_ |>.94     |
52 13 Martin Willi
53 13 Martin Willi
_* = cryptographic strength estimates according to_ "RFC 3766":http://tools.ietf.org/html/rfc3766 _using_ "www.keylength.com":http://www.keylength.com
54 13 Martin Willi
55 11 Martin Willi
h3. Diffie-Hellman Key Exchange
56 11 Martin Willi
57 22 Andreas Steffen
|_.DH group   |_.Strength  |_.Operations/s|_.gmp  |_.gcrypt|_.openssl |_.gmp* |_.gcrypt*|_.openssl*|
58 22 Andreas Steffen
|/2.MODP 768  |/2>.62 bits |A=g^a mod p   |>.468  |>.293   |>.371     |>.1'271|>.866    |>.1'060   |
59 22 Andreas Steffen
                           |S=B^a mod p   |>.489  |>.205   |>.393     |>.1'418|>.618    |>.1'101   |
60 22 Andreas Steffen
|/2.MODP 1024 |/2>.73 bits |A=g^a mod p   |>.216  |>.136   |>.192     |>.792  |>.540    |>.706     |
61 22 Andreas Steffen
                           |S=B^a mod p   |>.222  |>.92    |>.195     |>.845  |>.372    |>.728     |
62 22 Andreas Steffen
|/2.MODP 1536 |/2>.89 bits |A=g^a mod p   |>.71   |>.46    |>.70      |>.395  |>.279    |>.379     |
63 22 Andreas Steffen
                           |S=B^a mod p   |>.71   |>.31    |>.71      |>.409  |>.188    |>.382     |
64 22 Andreas Steffen
|/2.MODP 2048 |/2>.103 bits|A=g^a mod p   |>.31   |>.20    |>.31      |>.161  |>.112    |>.155     |
65 22 Andreas Steffen
                           |S=B^a mod p   |>.31   |>.14    |>.31      |>.163  |>.74     |>.156     |
66 22 Andreas Steffen
|/2.MODP 3072 |/2>.125 bits|A=g^a mod p   |>.10   |>.6     |>.11      |>.77   |>.55     |>.81      |
67 22 Andreas Steffen
                           |S=B^a mod p   |>.10   |>.4     |>.11      |>.77   |>.36     |>.80      |
68 22 Andreas Steffen
|/2.MODP 4096 |/2>.142 bits|A=g^a mod p   |>.4    |>.3     |>.4       |>.34   |>.24     |>.35      |
69 22 Andreas Steffen
                           |S=B^a mod p   |>.4    |>.2     |>.4       |>.34   |>.16     |>.35      |
70 22 Andreas Steffen
|/2.MODP 6144 |/2>.171 bits|A=g^a mod p   |>.1    |>.1     |>.1       |>.17   |>.11     |>.17      |
71 22 Andreas Steffen
                           |S=B^a mod p   |>.1    |>.0     |>.1       |>.17   |>.7      |>.17      |
72 22 Andreas Steffen
|/2.MODP 8096 |/2>.193 bits|A=g^a mod p   |>.1    |>.1     |>.0       |>.11   |>.7      |>.10      |
73 22 Andreas Steffen
                           |S=B^a mod p   |>.1    |>.0     |>.1       |>.11   |>.4      |>.10      |
74 22 Andreas Steffen
|/2.ECP 192   |/2>.96 bits |A=g^a mod p   |=._N/A_|=._N/A_ |>.961     |=.-    |=.-      |=.-       |
75 22 Andreas Steffen
                           |S=B^a mod p   |=._N/A_|=._N/A_ |>.950     |=.-    |=.-      |=.-       |
76 22 Andreas Steffen
|/2.ECP 224   |/2>.112 bits|A=g^a mod p   |=._N/A_|=._N/A_ |>.724     |=.-    |=.-      |=.-       |
77 22 Andreas Steffen
                           |S=B^a mod p   |=._N/A_|=._N/A_ |>.716     |=.-    |=.-      |=.-       |
78 22 Andreas Steffen
|/2.ECP 256   |/2>.128 bits|A=g^a mod p   |=._N/A_|=._N/A_ |>.577     |=.-    |=.-      |=.-       |
79 22 Andreas Steffen
                           |S=B^a mod p   |=._N/A_|=._N/A_ |>.564     |=.-    |=.-      |=.-       |
80 22 Andreas Steffen
|/2.ECP 384   |/2>.192 bits|A=g^a mod p   |=._N/A_|=._N/A_ |>.243     |=.-    |=.-      |=.-       |
81 22 Andreas Steffen
                           |S=B^a mod p   |=._N/A_|=._N/A_ |>.239     |=.-    |=.-      |=.-       |
82 22 Andreas Steffen
|/2.ECP 521   |/2>.260 bits|A=g^a mod p   |=._N/A_|=._N/A_ |>.117     |=.-    |=.-      |=.-       |
83 22 Andreas Steffen
                           |S=B^a mod p   |=._N/A_|=._N/A_ |>.116     |=.-    |=.-      |=.-       |
84 1 Martin Willi
85 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
86 11 Martin Willi
87 19 Andreas Steffen
h2. 64 bit, under VirtualBox, Core2Duo T9400 (one core):
88 4 Martin Willi
89 7 Andreas Steffen
h3. Public Key Signature
90 5 Andreas Steffen
91 21 Andreas Steffen
|_.Key type   |_.Strength*  |_.Operations/s|_.gmp    |_.gcrypt|_.openssl|
92 21 Andreas Steffen
|/2.RSA 512   |/2>.50 bits  |sign (e=3)    |>.12'715 |>.3474  |>.7'405  |
93 21 Andreas Steffen
                            |sign (e=f4)   |>.12'453 |>.3463  |>.4'471  |
94 21 Andreas Steffen
|/2.RSA 768   |/2>.62 bits  |sign (e=3)    |>.5'414  |>.1234  |>.2'371  |
95 21 Andreas Steffen
                            |sign (e=f4)   |>.5'617  |>.1142  |>.2'974  |
96 21 Andreas Steffen
|/2.RSA 1024  |/2>.73 bits  |sign (e=3)    |>.2'756  |>.769   |>.1'565  |
97 21 Andreas Steffen
                            |sign (e=f4)   |>.2'765  |>.516   |>.1'523  |
98 21 Andreas Steffen
|/2.RSA 1536  |/2>.89 bits  |sign (e=3)    |>.980    |>.181   |>.548    |
99 21 Andreas Steffen
                            |sign (e=f4)   |>.978    |>.279   |>.525    |
100 21 Andreas Steffen
|/2.RSA 2048  |/2>.103 bits |sign (e=3)    |>.447    |>.126   |>.160    |
101 21 Andreas Steffen
                            |sign (e=f4)   |>.453    |>.122   |>.147    |
102 21 Andreas Steffen
|/2.RSA 3072  |/2>.125 bits |sign (e=3)    |>.140    |>.45    |>.51     |
103 21 Andreas Steffen
                            |sign (e=f4)   |>.146    |>.44    |>.46     |
104 21 Andreas Steffen
|/2.RSA 4096  |/2>.142 bits |sign (e=3)    |>.71     |>.19    |>.36     |
105 21 Andreas Steffen
                            |sign (e=f4)   |>.62     |>.11    |>.34     |
106 21 Andreas Steffen
|/2.RSA 6144  |/2>.171 bits |sign (e=3)    |>.19     |>.7     |>.11     |
107 21 Andreas Steffen
                            |sign (e=f4)   |>.20     |>.6     |>.10     |
108 21 Andreas Steffen
|/2.RSA 8192  |/2>.193 bits |sign (e=3)    |>.7      |>.3     |>.4      |
109 21 Andreas Steffen
                            |sign (e=f4)   |>.8      |>.3     |>.4      |
110 21 Andreas Steffen
|ECDSA 256    |>.128 bits   |sign          |=._N/A_  |=._N/A_ |>.1'204  |
111 21 Andreas Steffen
|ECDSA 384    |>.192 bits   |sign          |=._N/A_  |=._N/A_ |>.551    |
112 21 Andreas Steffen
|ECDSA 521    |>.260 bits   |sign          |=._N/A_  |=._N/A_ |>.280    |
113 21 Andreas Steffen
|/2.RSA 512   |/2>.50 bits  |verify (e=3)  |>.131'663|>.50'944|>.86'962 |
114 21 Andreas Steffen
                            |verify (e=f4) |>.85'975 |>.25'927|>.34'702 |
115 21 Andreas Steffen
|/2.RSA 768   |/2>.62 bits  |verify (e=3)  |>.114'546|>.47'151|>.67'016 |
116 21 Andreas Steffen
                            |verify (e=f4) |>.51'425 |>.23'467|>.36'163 |
117 21 Andreas Steffen
|/2.RSA 1024  |/2>.73 bits  |verify (e=3)  |>.89'899 |>.41'223|>.57'059 |
118 21 Andreas Steffen
                            |verify (e=f4) |>.40'736 |>.9'569 |>.26'082 |
119 21 Andreas Steffen
|/2.RSA 1536  |/2>.89 bits  |verify (e=3)  |>.59'941 |>.33'632|>.33'338 |
120 21 Andreas Steffen
                            |verify (e=f4) |>.20'979 |>.9'520 |>.12'731 |
121 21 Andreas Steffen
|/2.RSA 2048 |/2>.103 bits |verify (e=3)  |>.35'728 |>.22'385|>.16'076 |
122 21 Andreas Steffen
                            |verify (e=f4) |>.12'313 |>.5'140 |>.4'630  |
123 21 Andreas Steffen
|/2.RSA 3072  |/2>.125 bits |verify (e=3)  |>.16'474 |>.21'272|>.12'929 |
124 21 Andreas Steffen
                            |verify (e=f4) |>.6'318  |>.3'377 |>.2'305  |
125 21 Andreas Steffen
|/2.RSA 4096  |/2>.142 bits |verify (e=3)  |>.9'081  |>.4'894 |>.4'643  |
126 21 Andreas Steffen
                            |verify (e=f4) |>.2'975  |>.919   |>.2'128  |
127 21 Andreas Steffen
|/2.RSA 6144  |/2>.171 bits |verify (e=3)  |>.3'758  |>.6'793 |>.2'666  |
128 21 Andreas Steffen
                            |verify (e=f4) |>.1'540  |>.1'047 |>.894    |
129 21 Andreas Steffen
|/2.RSA 8192  |/2>.193 bits |verify (e=3)  |>.3'039  |>.3'871 |>.1'204  |
130 21 Andreas Steffen
                            |verify (e=f4) |>.1'643  |>.579   |>.462    |
131 21 Andreas Steffen
|ECDSA 256    |>.128 bits   |verify        |=._N/A_  |=._N/A_ |>.1'098  |
132 21 Andreas Steffen
|ECDSA 384    |>.192 bits   |verify        |=._N/A_  |=._N/A_ |>.484    |
133 21 Andreas Steffen
|ECDSA 521    |>.260 bits   |verify        |=._N/A_  |=._N/A_ |>.239    |
134 7 Andreas Steffen
135 7 Andreas Steffen
_* = cryptographic strength estimates according to_ "RFC 3766":http://tools.ietf.org/html/rfc3766 _using_ "www.keylength.com":http://www.keylength.com
136 7 Andreas Steffen
137 7 Andreas Steffen
h3. Diffie-Hellman Key Exchange
138 7 Andreas Steffen
139 17 Martin Willi
140 23 Andreas Steffen
|_.DH group   |_.Strength  |_.Operations/s|_.gmp  |_.gcrypt|_.openssl|_.gmp* |_.gcrypt*|_.openssl*|
141 23 Andreas Steffen
|/2.MODP 768  |/2>.62 bits |A=g^a mod p   |>.1'631|>.756   |>.1'040  |>.3'847|>.2'121  |>.2'786   |
142 23 Andreas Steffen
                           |S=B^a mod p   |>.1'931|>.565   |>.1'119  |>.5'474|>.1792   |>.3'300   |
143 23 Andreas Steffen
|/2.MODP 1024 |/2>.73 bits |A=g^a mod p   |>.805  |>.342   |>.484    |>.2'722|>.1'381  |>.1'764   |
144 23 Andreas Steffen
                           |S=B^a mod p   |>.866  |>.232   |>.382    |>.3'271|>.1037   |>.1'993   |
145 23 Andreas Steffen
|/2.MODP 1536 |/2>.89 bits |A=g^a mod p   |>.268  |>.130   |>.99     |>.1'340|>.783    |>.873     |
146 23 Andreas Steffen
                           |S=B^a mod p   |>.279  |>.88    |>.135    |>.1'590|>.574    |>.920     |
147 23 Andreas Steffen
|/2.MODP 2048 |/2>.103 bits|A=g^a mod p   |>.121  |>.56    |>.70     |>.592  |>.320    |>.343     |
148 23 Andreas Steffen
                           |S=B^a mod p   |>.123  |>.38    |>.50     |>.634  |>.216    |>.366     |
149 23 Andreas Steffen
|/2.MODP 3072 |/2>.125 bits|A=g^a mod p   |>.38   |>.20    |>.21     |>.282  |>.172    |>.159     |
150 23 Andreas Steffen
                           |S=B^a mod p   |>.38   |>.13    |>.14     |>.289  |>.118    |>.165     |
151 23 Andreas Steffen
|/2.MODP 4096 |/2>.142 bits|A=g^a mod p   |>.16   |>.6     |>.8      |>.125  |>.75     |>.70      |
152 23 Andreas Steffen
                           |S=B^a mod p   |>.16   |>.4     |>.9      |>.126  |>.49     |>.67      |
153 23 Andreas Steffen
|/2.MODP 6144 |/2>.171 bits|A=g^a mod p   |>.5    |>.2     |>.3      |>.59   |>.38     |>.31      |
154 23 Andreas Steffen
                           |S=B^a mod p   |>.5    |>.1     |>.1      |>.61   |>.25     |>.31      |
155 23 Andreas Steffen
|/2.MODP 8096 |/2>.193 bits|A=g^a mod p   |>.2    |>.1     |>.0      |>.34   |>.22     |>.17      |
156 23 Andreas Steffen
                           |S=B^a mod p   |>.2    |>.0     |>.1      |>.39   |>.14     |>.18      |
157 23 Andreas Steffen
|/2.ECP 192   |/2>.96 bits |A=g^a mod p   |=._N/A_|=._N/A_ |>.988    |=.-    |=.-      |=.-       |
158 23 Andreas Steffen
                           |S=B^a mod p   |=._N/A_|=._N/A_ |>.1'058  |=.-    |=.-      |=.-       |
159 23 Andreas Steffen
|/2.ECP 224   |/2>.112 bits|A=g^a mod p   |=._N/A_|=._N/A_ |>.873    |=.-    |=.-      |=.-       |
160 23 Andreas Steffen
                           |S=B^a mod p   |=._N/A_|=._N/A_ |>.963    |=.-    |=.-      |=.-       |
161 23 Andreas Steffen
|/2.ECP 256   |/2>.128 bits|A=g^a mod p   |=._N/A_|=._N/A_ |>.823    |=.-    |=.-      |=.-       |
162 23 Andreas Steffen
                           |S=B^a mod p   |=._N/A_|=._N/A_ |>.851    |=.-    |=.-      |=.-       |
163 23 Andreas Steffen
|/2.ECP 384   |/2>.192 bits|A=g^a mod p   |=._N/A_|=._N/A_ |>.360    |=.-    |=.-      |=.-       |
164 23 Andreas Steffen
                           |S=B^a mod p   |=._N/A_|=._N/A_ |>.364    |=.-    |=.-      |=.-       |
165 23 Andreas Steffen
|/2.ECP 521   |/2>.260 bits|A=g^a mod p   |=._N/A_|=._N/A_ |>.180    |=.-    |=.-      |=.-       |
166 23 Andreas Steffen
                           |S=B^a mod p   |=._N/A_|=._N/A_ |>.210    |=.-    |=.-      |=.-       |
167 1 Martin Willi
168 1 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