Crays and password cracking

Thomas Truscott trt at rti.UUCP
Thu Nov 17 00:28:11 AEST 1988


I have been experimenting with vectorizing DES,
using James Ellis' suggestion of doing 64 encryptions at a time
rather than trying to vectorize a single encryption.
Here is the essence of the code:

    long long int code[64];	/* "long long" is 64 bits */
    long long int table[8][64];

    for (a whole bunch of times)
	for (i = 0; i < 64; i++)
	    code[i] ^= table[0][(code[i]>>(8*0))&03f]
		    ^= table[1][(code[i]>>(8*1))&03f]
		    ...
		    ^= table[7][(code[i]>>(8*7))&03f];

The "code>>" business extracts the different bytes out of "code",
I have experimented with a few different ways of doing that.

This code fully vectorizes on a Convex (no Crays were handy),
but unfortunately is only about 5x the speed of the scalar version.
I suspect that "indexed vector load" (or whatever it is really called)
is not very fast.  I know almost nothing about Convex optimization,
perhaps a Convex (or Cray) guru could help with this.
Until then I am stuck with Bob Baldwin's scalar version
which only gets 1000 trial enc ... uhm ... never mind.

I suppose this is (decades) old news for some people.
	Tom Truscott



More information about the Comp.unix.wizards mailing list