Project

General

Profile

Speed Comparison of Public Key Algorithms » History » Version 16

Andreas Steffen, 10.06.2009 17:55
moved public exponent to operations field

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 16 Andreas Steffen
|_.Key type|_.Strength*|_.Operations/s|_.gmp   |_.gcrypt|_.openssl|
8 16 Andreas Steffen
|RSA 512   |>.50 bits  |sign (e=3)    |>.3'708 |>.1'814 |>.2'286  |
9 16 Andreas Steffen
|RSA 512   |>.50 bits  |sign (e=f4)   |>.3'946 |>.1'780 |>.2'150  |
10 16 Andreas Steffen
|RSA 768   |>.62 bits  |sign (e=3)    |>.1'483 |>.625   |>.521    |
11 16 Andreas Steffen
|RSA 768   |>.62 bits  |sign (e=f4)   |>.1'486 |>.626   |>.783    |
12 16 Andreas Steffen
|RSA 1024  |>.73 bits  |sign (e=3)    |>.724   |>.301   |>.488    |
13 16 Andreas Steffen
|RSA 1024  |>.73 bits  |sign (e=f4)   |>.722   |>.285   |>.475    |
14 16 Andreas Steffen
|RSA 1536  |>.89 bits  |sign (e=3)    |>.242   |>.99    |>.117    |
15 16 Andreas Steffen
|RSA 1536  |>.89 bits  |sign (e=f4)   |>.243   |>.98    |>.111    |
16 16 Andreas Steffen
|RSA 2048  |>.103 bits |sign (e=3)    |>.110   |>.30    |>.80     |
17 16 Andreas Steffen
|RSA 2048  |>.103 bits |sign (e=f4)   |>.109   |>.28    |>.89     |
18 16 Andreas Steffen
|RSA 3072  |>.125 bits |sign (e=3)    |>.35    |>.9     |>.33     |
19 16 Andreas Steffen
|RSA 3072  |>.125 bits |sign (e=f4)   |>.35    |>.15    |>.32     |
20 16 Andreas Steffen
|RSA 4096  |>.142 bits |sign (e=3)    |>.15    |>.6     |>.9      |
21 16 Andreas Steffen
|RSA 4096  |>.142 bits |sign (e=f4)   |>.15    |>.6     |>.9      |
22 16 Andreas Steffen
|RSA 6144  |>.171 bits |sign (e=3)    |>.4     |>.2     |>.3      |
23 16 Andreas Steffen
|RSA 6144  |>.171 bits |sign (e=f4)   |>.4     |>.2     |>.3      |
24 16 Andreas Steffen
|RSA 8192  |>.193 bits |sign (e=3 )   |>.2     |>.1     |>.2      |
25 16 Andreas Steffen
|RSA 8192  |>.193 bits |sign (e=f4)   |>.2     |>.1     |>.1      |
26 16 Andreas Steffen
|ECDSA 256 |>.128 bits |sign          |=._N/A_ |=._N/A_ |>.546    |
27 16 Andreas Steffen
|ECDSA 384 |>.192 bits |sign          |=._N/A_ |=._N/A_ |>.233    |
28 16 Andreas Steffen
|ECDSA 521 |>.260 bits |sign          |=._N/A_ |=._N/A_ |>.113    |
29 16 Andreas Steffen
|RSA 512   |>.50 bits  |verify (e=3)  |>.76'683|>.36'626|>.55'685 |
30 16 Andreas Steffen
|RSA 512   |>.50 bits  |verify (e=f4) |>.32'577|>.15'860|>.25'086 |
31 16 Andreas Steffen
|RSA 768   |>.62 bits  |verify (e=3)  |>.52'707|>.31'167|>.37'112 |
32 16 Andreas Steffen
|RSA 768   |>.62 bits  |verify (e=f4) |>.17'375|>.10'054|>.15'034 |
33 16 Andreas Steffen
|RSA 1024  |>.73 bits  |verify (e=3)  |>.37'826|>.25'688|>.28'879 |
34 16 Andreas Steffen
|RSA 1024  |>.73 bits  |verify (e=f4) |>.11'402|>.6'640 |>.10'380 |
35 16 Andreas Steffen
|RSA 1536  |>.89 bits  |verify (e=3)  |>.22'143|>.18'505|>.10'393 |
36 16 Andreas Steffen
|RSA 1536  |>.89 bits  |verify (e=f4) |>.5'892 |>.3'770 |>.3'686  |
37 16 Andreas Steffen
|RSA 2048  |>.103 bits |verify (e=3)  |>.14'175|>.8'307 |>.11'625 |
38 16 Andreas Steffen
|RSA 2048  |>.103 bits |verify (e=f4) |>.3'481 |>.1'423 |>.3'535  |
39 16 Andreas Steffen
|RSA 3072  |>.125 bits |verify (e=3)  |>.7'207 |>.4'930 |>.5'654  |
40 16 Andreas Steffen
|RSA 3072  |>.125 bits |verify (e=f4) |>.1'729 |>.1'150 |>.1'857  |
41 16 Andreas Steffen
|RSA 4096  |>.142 bits |verify (e=3)  |>.5'887 |>.4'960 |>.2'263  |
42 16 Andreas Steffen
|RSA 4096  |>.142 bits |verify (e=f4) |>.1'049 |>.684   |>.672    |
43 16 Andreas Steffen
|RSA 6144  |>.171 bits |verify (e=3)  |>.3'171 |>.2630  |>.977    |
44 16 Andreas Steffen
|RSA 6144  |>.171 bits |verify (e=f4) |>.544   |>.335   |>.324    |
45 16 Andreas Steffen
|RSA 8192  |>.193 bits |verify (e=3)  |>.2'015 |>.1638  |>.839    |
46 16 Andreas Steffen
|RSA 8192  |>.193 bits |verify (e=f4) |>.334   |>.194   |>.181    |
47 16 Andreas Steffen
|ECDSA 256 |>.128 bits |verify        |=._N/A_ |=._N/A_ |>.459    |
48 16 Andreas Steffen
|ECDSA 384 |>.192 bits |verify        |=._N/A_ |=._N/A_ |>.196    |
49 16 Andreas Steffen
|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 15 Martin Willi
|_.DH group|_.Strength|_.Operations/s|_.gmp  |_.gcrypt|_.openssl |_.gmp* |_.gcrypt*|_.openssl*|
56 15 Martin Willi
|MODP 768  |>.62 bits |A=g^a mod p   |>.468  |>.293   |>.371     |>.1'271|>.866    |>.1'060   |
57 15 Martin Willi
|MODP 1024 |>.73 bits |A=g^a mod p   |>.216  |>.136   |>.192     |>.792  |>.540    |>.706     |
58 15 Martin Willi
|MODP 1536 |>.89 bits |A=g^a mod p   |>.71   |>.46    |>.70      |>.395  |>.279    |>.379     |
59 15 Martin Willi
|MODP 2048 |>.103 bits|A=g^a mod p   |>.31   |>.20    |>.31      |>.161  |>.112    |>.155     |
60 15 Martin Willi
|MODP 3072 |>.125 bits|A=g^a mod p   |>.10   |>.6     |>.11      |>.77   |>.55     |>.81      |
61 15 Martin Willi
|MODP 4096 |>.142 bits|A=g^a mod p   |>.4    |>.3     |>.4       |>.34   |>.24     |>.35      |
62 15 Martin Willi
|MODP 6144 |>.171 bits|A=g^a mod p   |>.1    |>.1     |>.1       |>.17   |>.11     |>.17      |
63 15 Martin Willi
|MODP 8096 |>.193 bits|A=g^a mod p   |>.1    |>.1     |>.0       |>.11   |>.7      |>.10      |
64 15 Martin Willi
|ECP 192   |>.96 bits |A=g^a mod p   |=._N/A_|=._N/A_ |>.961     |=.-    |=.-      |=.-       |
65 15 Martin Willi
|ECP 224   |>.112 bits|A=g^a mod p   |=._N/A_|=._N/A_ |>.724     |=.-    |=.-      |=.-       |
66 15 Martin Willi
|ECP 256   |>.128 bits|A=g^a mod p   |=._N/A_|=._N/A_ |>.577     |=.-    |=.-      |=.-       |
67 15 Martin Willi
|ECP 384   |>.192 bits|A=g^a mod p   |=._N/A_|=._N/A_ |>.243     |=.-    |=.-      |=.-       |
68 15 Martin Willi
|ECP 521   |>.260 bits|A=g^a mod p   |=._N/A_|=._N/A_ |>.117     |=.-    |=.-      |=.-       |
69 15 Martin Willi
|MODP 768  |>.62 bits |S=B^a mod p   |>.489  |>.205   |>.393     |>.1'418|>.618    |>.1'101   |
70 15 Martin Willi
|MODP 1024 |>.73 bits |S=B^a mod p   |>.222  |>.92    |>.195     |>.845  |>.372    |>.728     |
71 15 Martin Willi
|MODP 1536 |>.89 bits |S=B^a mod p   |>.71   |>.31    |>.71      |>.409  |>.188    |>.382     |
72 15 Martin Willi
|MODP 2048 |>.103 bits|S=B^a mod p   |>.31   |>.14    |>.31      |>.163  |>.74     |>.156     |
73 15 Martin Willi
|MODP 3072 |>.125 bits|S=B^a mod p   |>.10   |>.4     |>.11      |>.77   |>.36     |>.80      |
74 15 Martin Willi
|MODP 4096 |>.142 bits|S=B^a mod p   |>.4    |>.2     |>.4       |>.34   |>.16     |>.35      |
75 15 Martin Willi
|MODP 6144 |>.171 bits|S=B^a mod p   |>.1    |>.0     |>.1       |>.17   |>.7      |>.17      |
76 15 Martin Willi
|MODP 8096 |>.193 bits|S=B^a mod p   |>.1    |>.0     |>.1       |>.11   |>.4      |>.10      |
77 15 Martin Willi
|ECP 192   |>.96 bits |S=B^a mod p   |=._N/A_|=._N/A_ |>.950     |=.-    |=.-      |=.-       |
78 15 Martin Willi
|ECP 224   |>.112 bits|S=B^a mod p   |=._N/A_|=._N/A_ |>.716     |=.-    |=.-      |=.-       |
79 15 Martin Willi
|ECP 256   |>.128 bits|S=B^a mod p   |=._N/A_|=._N/A_ |>.564     |=.-    |=.-      |=.-       |
80 15 Martin Willi
|ECP 384   |>.192 bits|S=B^a mod p   |=._N/A_|=._N/A_ |>.239     |=.-    |=.-      |=.-       |
81 15 Martin Willi
|ECP 521   |>.260 bits|S=B^a mod p   |=._N/A_|=._N/A_ |>.116     |=.-    |=.-      |=.-       |
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. 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