Data Encryption Standard


My thesis work involved the optimization of DES in assembler for the Intel Pentium processor. This resulted in speed records for both the Pentium and other PC processors, as shown in the table.  The Pentium III version is even faster (~9%) than May, Penna and Clark's bitslice implementation on the same processor.

Processor
Key setup
(enc&dec)
ECB
CBC
Encrypt
Decrypt
Encrypt
Decrypt
Pentium
576
315
315
316
318
Pentium III
1124
319


Pentium IV
636
445


Athlon
496
240



Notes

In March 2005 I made a DES implementation in C, and adapted it to the Linux kernel. It is available under the GNU General Public License. The table below provides some performance data. For practical reasons it's limited to the cases where the optimization target for gcc and the actual processor are the same.

Processor
Clock speed
(MHz)
Approximate speed relative to old kernel implementation
des_setkey
des_encrypt
des3_ede_setkey
des3_ede_encrypt
Pentium
120
6.8
0.82
7.2
0.86
Pentium 3
1266
5.6
1.19
5.8
1.34
Pentium M
1300
5.7
1.15
6.0
1.31
Pentium 4
2266
5.8
1.24
6.0
1.40
Pentium 4E
3000
5.4
1.27
5.5
1.48
StrongARM 1110
206
4.3
1.03
4.4
1.14
Athlon XP
2000
7.8
1.44
8.1
1.61
Athlon 64
2000
7.8
1.34
8.3
1.49