Subject: Re: rc5des on NetBSD/vax
To: Dave McGuire , Brian D Chase <bdc@world.std.com>
From: Ignatios Souvatzis <ignatios@cs.uni-bonn.de>
List: port-vax
Date: 02/23/1999 11:25:31
On Sun, Feb 21, 1999 at 04:13:18PM -0500, Dave McGuire wrote:
>   Since this has come up before, here's the info on which my statement was
> based, from distributed.net's rc5 faq:
> 
> > Why are Intel and PowerPC computers so much faster than other
> > platforms?
> >
> >   Integral to the mathematics of the RC5 algorithm are 32-bit rotate
> > operations. For whatever reason, the designers of the x86 and the
> > PowerPC architectures decided to implement the rotate function as a
> > hardware instruction. Many other CPUs do not have built-in hardware
> > rotate instructions and must emulate the operation by (at the very
> > least) two shifts and a logical OR. This handicap is why many
> > non-Intel and non-PowerPC computers run RC5 slower than one might
> > expect based on real-world benchmarks. It is also the main reason why
> > the RC5 client is a poor benchmark to use in determining the speed or
> > performance of a particular CPU.

Well, the best-performing per MHZ of CPU clock is the Motorola 68060, if
you write a core in hand assembler that tries two keys at once.

I did that for the rc5-56 contest, and as (the predecessor of) distributed.net
was incommunicado, I finally offered it to the Swedish distributed cracking
effort.

As far as I know, the only Motorola 68k code available for Unix from 
distributed.net is still 25% slower than my code. (Although an "Amiga team"
member claimed that the experimental code he is working on does 1 or 2% better
than mine, but I can't verify that code is distributed, and can't use it 
on NetBSD, again as distributed.net has a strict binary-only policy and 
doesn't talk to outsiders about source).

(Yes, the same core can be used for rc5-56 and rc5-64, with only a small
change in the loop termination. You need to change the core for rc5-72).

Regards,
	Ignatios