[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Brute Force DES



At 04:55 PM 7/22/96 -6, Peter Trei wrote:
>Single DES has the security of 56 bits of key - there are 64 bits in the
>keys, but 8 of them are parity bits which add nothing to security.
>2^56  = 7.205e16 keys (which is a whopping big number)
>Let's guess that we can recruit the equivalent of full-time on 1000
>machines.
>7.205e13 keys/machine.
>Let's guess that we have about a month before people start to lose 
>interest - so we want to be more than 1/2 done by then. Lets say
>we want to sweep the whole space in 40 days.
>
>1.8e12 keys/machine/day 
>
>~21,000,000 keys/machine/second
>
>The fastest general purpose, freely available des implementation I'm
>aware of is libdes. by Eric Young. With this, I can do a set_key in 
>15.8 us, and an ecb_encrypt in 95 us/block. That adds up to 
>about 9,000 keytests/sec (this is on a 90 MHz P5, running NT).

For grins, I decided to look at some old Intel data books; I had recalled 
that they build a DES encrypt/decrypt chip.  It was the 8294A, which could 
do 400,000 bytes per second, or 50,000 blocks per second.   That's fairly 
good for 1983 technology.   Since the clock rate of the typical 
microprocessor of the day was a 6-MHz 80286, and today's rate pushes 200 
MHz, I think it's fair to conclude that a similarly state-of-the-art DES 
chip should be similarly improved, about a factor of 30, or about 1.5 
million blocks per second.  That's somewhat less than 2000 system-years of 
operation.

(In practice, a cracker might be even more improved:  The 8294A used an 
8-bit I/O bus, which probably limited the rate at which encrypts could be 
done:  400,000 bytes per second means 400,000 writes, and 400,000 reads per 
second, or 1.25 microseconds per I/O byte throughput.  This is sufficiently 
close to state-of-the-art for 1983 that I speculate the internal encryption 
rate might be substantially faster.  And remember that a dedicated cracker 
doesn't need to I/O very much:  Comparing with a previously-stored template 
requires no I/O, unless the compare is good, and that will rarely happen.)

Not that I think that such a dedicated chip necessarily exists; chances are 
good that there isn't all that much demand for a 12-megabyte/second 
encryptor.  However, appropriately-fast DSP chips tend to be at the cutting 
edge for wide-word operations, so I'll guess that the best way to 
implement DES today (absent a dedicated chip)  would be on a DSP.   It would 
also be the cheapest, because DSP's are built in huge numbers for other 
applications.  

What this shows you is that there is a vast difference between doing a task 
on a fairly optized platform, and a general-purpose computer.  This _also_ 
shows you why the government is being highly dishonest by quoting the 
difficulty in cracking ciphers on scalar machines, rather than 
more-dedicated vector units.


Jim Bell
[email protected]