[2435] in cryptography@c2.net mail archive
Re: Biham's vectorized DES
daemon@ATHENA.MIT.EDU (C Matthew Curtin)
Tue Mar 31 23:41:25 1998
Date: Tue, 31 Mar 1998 23:19:47 -0500 (EST)
From: C Matthew Curtin <cmcurtin@interhack.net>
To: karn@qualcomm.com
Cc: cryptography@c2.net
In-Reply-To: <m0yK6XX-000HdbC@laptop.ka9q.ampr.org>
Reply-To: cmcurtin@interhack.net
>>>>> "Phil" == Phil Karn <karn@maggie.ka9q.AMPR.ORG> writes:
Phil> Has anybody looked at this?
We released a deschall client last summer that was inspired by this
method. Darrell Kindred did some incredible work to speed up the
operation of our clients this way.
On a 167 MHz UltraSPARC, deschall client v0.214 was processing 669K
keys per second. Darrell's bitslice client (which also had an S-Box
optimization from Rocke Verser), v0.215-dk003, ran at an incredible
2400K keys per second. Benchmarks on a bunch of clients follow.
The observant among us will say "hey, even though the UltraSPARC is a
64-bit processor, Solaris is a 32-bit operating system." Darrell's
bitslice implementation for Solaris is a "two-headed" client. Two
processes are started, and work in tandem, one using the low-order 32
bits, and the other using the high-order 32-bits on the UltraSPARC's
processor. Details are at
http://www.cs.cmu.edu/People/dkindred/des/twoheads.html
http://www.cs.cmu.edu/People/dkindred/des/bitslice.html
Alpha 21164a 500MHz clone .... 5.336M keys per second -- bitslice v0.215dk002
DEC AlphaStation 600 5/333 ... 3.664M keys per second -- bitslice v0.215dk002
UltraSPARC 167 MHz ........... 2.400M keys per second -- bitslice v0.215dk003
HAL 385 (161 MHz Sparc64-II) . 2.350M keys per second -- bitslice v0.215dk002
SGI Onyx2 (194 MHz R10000) ... 2.114M keys per second -- bitslice v0.215dk002
Dual Pentium 200 MHz ......... 2.003M keys per second -- reported by user
AlphaStation 255/233 ......... 1.806M keys per second -- bitslice v0.215dk002
UMAX S900 250MHz 604e ........ 1.449M keys per second -- 6/5 -- user report
Sun Ultra Single CPU ......... 1.206M keys per second -- bitslice v0.215dk002
PowerMac 8500 200MHz 604e .... 1.095M keys per second -- reported by user
PowerBook 3400 240MHz 603e ... 1.086M keys per second -- 6/5 -- user report
Sun Ultra2 Dual CPU .......... 1.060M keys per second -- Sparc client
PowerMac 8500 180MHz 604e ..... 990K keys per second -- reported by user
PentiumPro 166MHz ............. 901K keys per second -- Linux P6 client
HP 9000/780C 180Mhz ........... 870K keys per second -- HP PA-RISC client
PentiumPro 180MHz ............. 850K keys per second -- reported by user
Pentium 166MHz ................ 835K keys per second -- OS/2 reported by user
SGI Indy (180 MHz R5000) ...... 820K keys per second -- bitslice v0.215dk001
PowerBook 3400c 180MHz 603e ... 775K keys per second -- reported by user
Apple PowerPC 604 180 MHz ..... 774K keys per second -- Linux client
Pentium 133 MHz ............... 662K keys per second -- Windows P5 client
Pentium 120 MHz ............... 600K keys per second -- Linux P5 client
DEC Alpha 3000/400 ............ 600K keys per second -- bitslice v0.215dk001
Pentium 90 MHz ................ 454K keys per second -- FreeBSD P5 client
Sun SS20-60 Dual CPU .......... 382K keys per second -- Sparc client
Performa 6215 100MHz 603e...... 324K keys per second -- 6/5 -- user report
AMD 5x86-133 .................. 312K keys per second -- Linux P5 client
PowerMac 7500 100MHz 601....... 308K keys per second -- 6/4 -- user report
Pentium 60 .................... 302K keys per second -- Linux P5 client
HP 9000/715E 100 Mhz .......... 280K keys per second -- HP PA-RISC client
SparcStation IPX 4/50 ......... 157K keys per second -- Sparc client
486-DX2/66 .................... 155K keys per second -- FreeBSD 486 client
486-DX2/66 .................... 153K keys per second -- OS/2 Warp 486 client
486-DX2/66 .................... 135K keys per second -- Windows 486 client
SparcStation IPC 4/40 ......... 40K keys per second -- Sparc client
--
Matt Curtin cmcurtin@interhack.net http://www.interhack.net/people/cmcurtin/