Project

General

Profile

Speed Comparison of Public Key Algorithms » History » Version 5

Andreas Steffen, 09.06.2009 13:59
increased legibility

1 1 Martin Willi
h1. Speed comparison of public key algorithms
2 1 Martin Willi
3 4 Martin Willi
h2. 32bit, User-Mode-Linux on a Core2Duo T9400 (one core)
4 1 Martin Willi
5 5 Andreas Steffen
|_.Key type|_.Operations/s|_.gmp   |_.gcrypt |_.openssl |
6 5 Andreas Steffen
|RSA 512   |sign          |>.3'791 |>.1'831  |>.2'105   |
7 5 Andreas Steffen
|          |verify        |>.29'630|>.16'667 |>.25'806  |
8 5 Andreas Steffen
|RSA 768   |sign          |>.1'519 |>.709    |>.810     |
9 5 Andreas Steffen
|          |verify        |>.18'182|>.10'714 |>.15'385  |
10 5 Andreas Steffen
|RSA 1024  |sign          |>.713   |>.292    |>.485     |
11 5 Andreas Steffen
|          |verify        |>.11'765|>.6'897  |>.11'111  |
12 5 Andreas Steffen
|RSA 1536  |sign          |>.240   |>.102    |>.184     |
13 5 Andreas Steffen
|          |verify        |>.5'882 |>.3'774  |>.5'882   |
14 5 Andreas Steffen
|RSA 2048  |sign          |>.110   |>.47     |>.93      |
15 5 Andreas Steffen
|          |verify        |>.3'571 |>.2'326  |>.3'704   |
16 5 Andreas Steffen
|ECDSA 256 |sign          |=._N/A_ |=._N/A_  |>.522     |
17 5 Andreas Steffen
|          |verify        |=._N/A_ |=._N/A_  |>.440     |
18 5 Andreas Steffen
|ECDSA 384 |sign          |=._N/A_ |=._N/A_  |>.226     |
19 5 Andreas Steffen
|          |verify        |=._N/A_ |=._N/A_  |>.180     |
20 5 Andreas Steffen
|ECDSA 521 |sign          |=._N/A_ |=._N/A_  |>.109     |
21 5 Andreas Steffen
|          |verify        |=._N/A_ |=._N/A_  |>.90      |
22 2 Martin Willi
23 3 Martin Willi
|_.DH group|_.Operations/s|_.gmp  |_.gcrypt |_.openssl |_.gmp*  |_.gcrypt*|_.openssl*|
24 3 Martin Willi
|MODP768   |A=g^a mod p   |>.368  |>.243    |>.212     |>.741   |>.531    |>.319     |
25 3 Martin Willi
|          |S=B^a mod p   |>.448  |>.190    |>.290     |>.1176  |>.496    |>.541     |
26 3 Martin Willi
|MODP1024  |A=g^a mod p   |>.196  |>.125    |>.136     |>.494   |>.388    |>.272     |
27 3 Martin Willi
|          |S=B^a mod p   |>.213  |>.89     |>.167     |>.727   |>.320    |>.440     |
28 3 Martin Willi
|MODP1536  |A=g^a mod p   |>.68   |>.45     |>.62      |>.308   |>.220    |>.196     |
29 3 Martin Willi
|          |S=B^a mod p   |>.71   |>.31     |>.64      |>.385   |>.175    |>.286     |
30 3 Martin Willi
|MODP2048  |A=g^a mod p   |>.31   |>.21     |>.28      |>.149   |>.98     |>.116     |
31 3 Martin Willi
|          |S=B^a mod p   |>.32   |>.13     |>.30      |>.164   |>.71     |>.141     |
32 5 Andreas Steffen
|ECP192    |A=g^a mod p   |=._N/A_|=._N/A_  |>.166     |=.-     |=.-      |=.-       |
33 5 Andreas Steffen
|          |S=B^a mod p   |=._N/A_|=._N/A_  |>.171     |=.-     |=.-      |=.-       |
34 5 Andreas Steffen
|ECP224    |A=g^a mod p   |=._N/A_|=._N/A_  |>.157     |=.-     |=.-      |=.-       |
35 5 Andreas Steffen
|          |S=B^a mod p   |=._N/A_|=._N/A_  |>.162     |=.-     |=.-      |=.-       |
36 5 Andreas Steffen
|ECP256    |A=g^a mod p   |=._N/A_|=._N/A_  |>.148     |=.-     |=.-      |=.-       |
37 5 Andreas Steffen
|          |S=B^a mod p   |=._N/A_|=._N/A_  |>.152     |=.-     |=.-      |=.-       |
38 5 Andreas Steffen
|ECP384    |A=g^a mod p   |=._N/A_|=._N/A_  |>.91      |=.-     |=.-      |=.-       |
39 5 Andreas Steffen
|          |S=B^a mod p   |=._N/A_|=._N/A_  |>.91      |=.-     |=.-      |=.-       |
40 5 Andreas Steffen
|ECP521    |A=g^a mod p   |=._N/A_|=._N/A_  |>.63      |=.-     |=.-      |=.-       |
41 5 Andreas Steffen
|          |S=B^a mod p   |=._N/A_|=._N/A_  |>.65      |=.-     |=.-      |=.-       |
42 4 Martin Willi
43 4 Martin Willi
h2. 64bit under VirtualBox, Core2Duo T9400 (one core):
44 4 Martin Willi
45 5 Andreas Steffen
|_.Key type|_.Operations/s|_.gmp    |_.gcrypt |_.openssl |
46 5 Andreas Steffen
|RSA 512   |sign          |>.13'082 |>.3'530  |>.7'478   |
47 5 Andreas Steffen
|          |verify        |>.103'733|>.36'197 |>.5'9598  |
48 5 Andreas Steffen
|RSA 768   |sign          |>.5'523  |>.1'603  |>.3'154   |
49 5 Andreas Steffen
|          |verify        |>.61'520 |>.25'411 |>.35'704  |
50 5 Andreas Steffen
|RSA 1024  |sign          |>.2'742  |>.766    |>.1'577   |
51 5 Andreas Steffen
|          |verify        |>.41'377 |>.16'098 |>.26'314  |
52 5 Andreas Steffen
|RSA 1536  |sign          |>.937    |>.285    |>.555     |
53 5 Andreas Steffen
|          |verify        |>.22'148 |>.10'941 |>.13'607  |
54 5 Andreas Steffen
|RSA 2048  |sign          |>.433    |>.133    |>.258     |
55 5 Andreas Steffen
|          |verify        |>.13'500 |>.6'524  |>.8'345   |
56 5 Andreas Steffen
|ECDSA 256 |sign          |=._N/A_  |=._N/A_  |>.1'267   |
57 5 Andreas Steffen
|          |verify        |=._N/A_  |=._N/A_  |>.1'143   |
58 5 Andreas Steffen
|ECDSA 384 |sign          |=._N/A_  |=._N/A_  |>.577     |
59 5 Andreas Steffen
|          |verify        |=._N/A_  |=._N/A_  |>.508     |
60 5 Andreas Steffen
|ECDSA 521 |sign          |=._N/A_  |=._N/A_  |>.291     |
61 5 Andreas Steffen
|          |verify        |=._N/A_  |=._N/A_  |>.255     |
62 4 Martin Willi
63 5 Andreas Steffen
|_.DH group|_.Operations/s|_.gmp   |_.gcrypt |_.openssl |_.gmp*  |_.gcrypt*|_.openssl*|
64 5 Andreas Steffen
|MODP768   |A=g^a mod p   |>.1'853 |>.790    |>.1'088   |>.5'622 |>.2'151  |>.2'656   |
65 5 Andreas Steffen
|          |S=B^a mod p   |>.1'882 |>.595    |>.1'191   |>.5'737 |>.1'779  |>.3'280   |
66 5 Andreas Steffen
|MODP1024  |A=g^a mod p   |>.862   |>.347    |>.491     |>.3'523 |>.1'352  |>.1'689   |
67 5 Andreas Steffen
|          |S=B^a mod p   |>.869   |>.274    |>.535     |>.3'431 |>.1'035  |>.1'928   |
68 5 Andreas Steffen
|MODP1536  |A=g^a mod p   |>.269   |>.135    |>.168     |>.1'612 |>.776    |>.837     |
69 5 Andreas Steffen
|          |S=B^a mod p   |>.278   |>.98     |>.174     |>.1'648 |>.571    |>.900     |
70 5 Andreas Steffen
|MODP2048  |A=g^a mod p   |>.117   |>.55     |>.73      |>.689   |>.298    |>.362     |
71 5 Andreas Steffen
|          |S=B^a mod p   |>.122   |>.38     |>.74      |>.660   |>.214    |>.380     |
72 5 Andreas Steffen
|ECP192    |A=g^a mod p   |=._N/A_ |=._N/A_  |>.1'699   |=.-     |=.-      |=.-       |
73 5 Andreas Steffen
|          |S=B^a mod p   |=._N/A_ |=._N/A_  |>.1'727   |=.-     |=.-      |=.-       |
74 5 Andreas Steffen
|ECP224    |A=g^a mod p   |=._N/A_ |=._N/A_  |>.1'494   |=.-     |=.-      |=.-       |
75 5 Andreas Steffen
|          |S=B^a mod p   |=._N/A_ |=._N/A_  |>.1'589   |=.-     |=.-      |=.-       |
76 5 Andreas Steffen
|ECP256    |A=g^a mod p   |=._N/A_ |=._N/A_  |>.1'298   |=.-     |=.-      |=.-       |
77 5 Andreas Steffen
|          |S=B^a mod p   |=._N/A_ |=._N/A_  |>.1'423   |=.-     |=.-      |=.-       |
78 5 Andreas Steffen
|ECP384    |A=g^a mod p   |=._N/A_ |=._N/A_  |>.591     |=.-     |=.-      |=.-       |
79 5 Andreas Steffen
|          |S=B^a mod p   |=._N/A_ |=._N/A_  |>.609     |=.-     |=.-      |=.-       |
80 5 Andreas Steffen
|ECP521    |A=g^a mod p   |=._N/A_ |=._N/A_  |>.306     |=.-     |=.-      |=.-       |
81 5 Andreas Steffen
|          |S=B^a mod p   |=._N/A_ |=._N/A_  |>.313     |=.-     |=.-      |=.-       |
82 2 Martin Willi
83 3 Martin Willi
_* = using reduced exponent size (libstrongswan.dh_exponent_ansi_x9_42 = no)_