Why is blowfish so slow? Other fast algorithms?

First, can someone tell me if the latest version of blowfish (the one in Applied Crypto 2nd edition) is available online somewhere? I looked at a bunch of crypto ftp servers and could only find an older version of blowfish that did not have the blf_ctx structure allowing multiple keys to be active at a time. More importantly, however, on a 120 MHz Pentium, the old blowfish (compiled with gcc version 2.7.2 optimization -O6) seems to take about 12.6 microseconds for 1 M encryptions and decryptions, which works out to about 95 cycles per byte. This is significantly more than the 26 cycles/byte number cited in Applied Crypto 2nd edition. Can anyone suggest what I might do to speed this up? Failing that, can anyone suggest other secure, preferably unpatented, shared-key encryption algorithms that could encrypt at ethernet speeds (1 MByte/sec) without using most of the CPU on a fast Pentium or equivalent processor? Thanks a lot, David

David Mazieres wrote: | First, can someone tell me if the latest version of blowfish (the one | in Applied Crypto 2nd edition) is available online somewhere? I | looked at a bunch of crypto ftp servers and could only find an older | version of blowfish that did not have the blf_ctx structure allowing | multiple keys to be active at a time. Did you check ftp.dsi.unimi.it? I seem to remember them having the latest source right after Crypto95. Also, ftp.csua.berkeley.edu should have it. (Their code is version 1.3; do you know what version you're after?) Adam -- "It is seldom that liberty of any kind is lost all at once." -Hume

From: Adam Shostack <adam@lighthouse.homeport.org> Date: Mon, 22 Jan 1996 11:20:57 -0500 (EST) Cc: cypherpunks@toad.com X-Mailer: ELM [version 2.4 PL24 ME8b] Content-Type: text Content-Length: 662
David Mazieres wrote:
| First, can someone tell me if the latest version of blowfish (the one | in Applied Crypto 2nd edition) is available online somewhere? I | looked at a bunch of crypto ftp servers and could only find an older | version of blowfish that did not have the blf_ctx structure allowing | multiple keys to be active at a time.
Did you check ftp.dsi.unimi.it? I seem to remember them having the latest source right after Crypto95. Also, ftp.csua.berkeley.edu should have it. (Their code is version 1.3; do you know what version you're after?)
Unfortunately, neither of those sites have it. The version I'm looking for has a blf_ctx structure that gets passed as the first argument to functions so you can use multiple keys at a time. It also has the initialization data stuck in the C code. Does anyone out there have the Applied Cryptography source code diskette? Would you be willing to mail me the code? It would probably take a while if I ordered the diskette myself and I'd like to get the code as soon as possible. Thanks, David
participants (2)
-
Adam Shostack
-
David Mazieres