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