Re: RC5 with FPGAs
david fleischer <cilantro_il-/[email protected]> Wed, 6 Sep 2006 11:07:38 -0700 (PDT)
| Newsgroups | gmane.comp.distributed-net.hardware |
|---|---|
| Message-ID | <[email protected]> |
Sounds like a good idea. > On 9/5/06, Fugu <[email protected]> wrote: > > > > By the way, I am also working on a FPGA > implementation. > > A technique that can accelerate keyspeed is this: > > 1) Use pipelining > > 2) Have the maximum numbers of decryption engines, > as to use all the > > gates. > > BTW, posting your core on opencores.org would > enable it to be checked for > > bugs and improved. You can probably add it to your list below as 3) Collect optimization parameters for each FPGA device. By the way, I'm not sure pipelining will bring you great benefits in an FPGA. A back of the laptop calculation tells me that you'll need approximately 1Kbit of memory per key. This may mean that most of the archirecture will be shoveling data back and forth to the core. I also have a question, can someone help me figure out the code in the source ANSI cores? I cannot understand how the key increment is done. (that is to say, I see what the code is doing, but I cannot figure out why this does any good.) Code snippet included below: #define key rc5_72unitwork->L0 key.hi = (key.hi + 0x01) & 0x000000FF; if (!key.hi) { key.mid = key.mid + 0x01000000; if (!(key.mid & 0xFF000000u)) { key.mid = (key.mid + 0x00010000) & 0x00FFFFFF; if (!(key.mid & 0x00FF0000)) { key.mid = (key.mid + 0x00000100) & 0x0000FFFF; if (!(key.mid & 0x0000FF00)) { key.mid = (key.mid + 0x00000001) & 0x000000FF; if (!key.mid) { key.lo = key.lo + 0x01000000; if (!(key.lo & 0xFF000000u)) { key.lo = (key.lo + 0x00010000) & 0x00FFFFFF; if (!(key.lo & 0x00FF0000)) { key.lo = (key.lo + 0x00000100) & 0x0000FFFF; if (!(key.lo & 0x0000FF00)) { key.lo = (key.lo + 0x00000001) & 0x000000FF; } } } } } } } } #undef key --- Fugu <[email protected]> wrote: > Doing a quick survey of the hardware list, there > seems to be many people(me > included), that seem, to various stages, to be > dabbling with an FPGA (or > other soft silicon) implementation. > I hereby propose that we make a central area for > such developments, to > coordinate development. > Another techinical idea: Instead of fine tuning each > implementation to each > FPGA, we could have one "main" code, and use a core > generator program to > tune it to each individual FPGA, to allow for > maximum optimization. > > > On 9/5/06, Fugu <[email protected]> wrote: > > > > By the way, I am also working on a FPGA > implementation. > > A technique that can accelerate keyspeed is this: > > 1) Use pipelining > > 2) Have the maximum numbers of decryption engines, > as to use all the > > gates. > > BTW, posting your core on opencores.org would > enable it to be checked for > > bugs and improved. > > > > > > On 6/14/06, Jim C. Nasby < > [email protected]> wrote: > > > > > > On Wed, Jun 14, 2006 at 03:13:04PM -0600, Fugu > wrote: > > > > One could do hardware error detection by > re-encrypting the "decrypted" > > > > message by the same key, and comparing it to > the given message. > > > > > > Yes, but that gives much less protection than > checking things on the > > > server does. > > > -- > > > Jim C. Nasby, Database Architect > [email protected] > > > Give your computer some brain candy! > www.distributed.net Team #1828 > > > > > > Windows: "Where do you want to go today?" > > > Linux: "Where do you want to go tomorrow?" > > > FreeBSD: "Are you guys coming, or what?" > > > _______________________________________________ > > > Hardware mailing list > > > Hardware-Ra3b/QYEcJ3d140v2zMXi0fjHoOT/h/[email protected] > > > > http://lists.distributed.net/mailman/listinfo/hardware > > > > > > > > > > > -- > > FIN|ACK > > > > > > -- > FIN|ACK > > _______________________________________________ > Hardware mailing list > Hardware-Ra3b/QYEcJ3d140v2zMXi0fjHoOT/h/[email protected] > http://lists.distributed.net/mailman/listinfo/hardware > _______________________________________________ Hardware mailing list Hardware-Ra3b/QYEcJ3d140v2zMXi0fjHoOT/h/[email protected] http://lists.distributed.net/mailman/listinfo/hardware