[Hardware] "success"

Dan Oetting dan_oetting at qwest.net
Sat Oct 21 00:08:03 EDT 2006


On Oct 20, 2006, at 7:11 AM, gmeurice at dice.ucl.ac.be wrote:

> Talking about devices, if the biggest device you "can" (afford) work
> with is a Spartan3E, there is maximum 14.5 kSlices and 36 bRAMS.
>> From my point of view, it is not possible to fit a fully unrolled RC5
> core with such amount of slices. (or I will be very happy to know
> how!).
> For such kind of devices, a partially unrolled core should probably be
> the best solution (with let's say 3 key schedule stages and 1 decrypt
> stage).

You either need to compute the L[ ] values to feed into the first  
round of each key schedule stage or save the S[ ] values for each  
iteration between stages. You could generate the L[ ] values by  
running your 3 stages through 3 passes with the same key to generate  
and pass the required values. Alternatively, you could replicate the  
early key schedule stages and feed them with the next 2 keys to be  
processed. You would then have a total of 6 key schedule stages and 1  
decrypt stage but only need 1 pass per key and no S[ ] storage. I  
figure that's about a 40% savings.

If you then unroll the loop you get a pure logic cascade with no  
storage requirements.

-- Dan Oetting



More information about the Hardware mailing list