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