Path: utzoo!attcan!uunet!husc6!cmcl2!rutgers!mcnc!rti!trt From: trt@rti.UUCP (Thomas Truscott) Newsgroups: comp.unix.wizards Subject: Re: Crays and password cracking Summary: Vectorizing DES -- good news and bad news Message-ID: <2576@rti.UUCP> Date: 16 Nov 88 14:28:11 GMT References: <17550@adm.BRL.MIL> Organization: Research Triangle Institute, RTP, NC Lines: 29 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