EmbeddedRelated.com
Forums

How to use 3DES in a micro?

Started by ElderUberGeek October 2, 2007
I need to implement some type of embedded security over a serial link,
like 3DES (or DES or AES), and really don't know where to start to
look, so some pointers would be really helpful.

- Can this be implemented only in software? (code space?)
- Does anyone sell a library that can be used?
- Do the two units (which can be any two units) have to know the keys
in advance?

Thanks

ElderUberGeek escribi�:
> I need to implement some type of embedded security over a serial link, > like 3DES (or DES or AES), and really don't know where to start to > look, so some pointers would be really helpful. > > - Can this be implemented only in software? (code space?)
Yes.
> - Does anyone sell a library that can be used?
Try googling OpenSSL.
> - Do the two units (which can be any two units) have to know the keys > in advance?
In symmetric crypto (like 3DES), the key must be known by both units. This can be done installing the key at production time in both units. Or, you can install the key in a unit, and deliver it to the other unit via asymmetric crypto. Or, you can _generate_ the key in a unit as needed, and deliver it to the other unit via asymmetric crypto. Other scenarios are possible as well. IMHO, a look at http://en.wikipedia.org/wiki/Cryptography won't do you any harm :-)

ElderUberGeek wrote:

> I need to implement some type of embedded security over a serial link, > like 3DES (or DES or AES), and really don't know where to start to > look, so some pointers would be really helpful.
Start with "Applied Cryptography" by Bruce Schnauer. Excellent book, a must for anyone implementing security algorithms.
> - Can this be implemented only in software? (code space?)
Yes. However the encryption/decryption speed may be the issue. Depending on the algorithm and CPU, you can expect something like 1 kbyte/sec per one MIPS.
> - Does anyone sell a library that can be used?
Avoid using anyone's code until you yourself realize the main concepts. You can seriously compromise the security. There are countless examples of the security flaws because someone used the code of the shelf brainlesly.
> - Do the two units (which can be any two units) have to know the keys > in advance?
Keyword: "public key cryptography" Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
Vladimir Vassilevsky wrote:
> ElderUberGeek wrote:
>> I need to implement some type of embedded security over a serial link, >> like 3DES (or DES or AES), and really don't know where to start to >> look, so some pointers would be really helpful. > > Start with "Applied Cryptography" by Bruce Schnauer.
The name's Schneier.
"ElderUberGeek" <aribloch@gmail.com> skrev i meddelandet 
news:1191339287.354196.179050@k79g2000hse.googlegroups.com...
> > I need to implement some type of embedded security over a serial link, > like 3DES (or DES or AES), and really don't know where to start to > look, so some pointers would be really helpful. > > - Can this be implemented only in software? (code space?) > - Does anyone sell a library that can be used? > - Do the two units (which can be any two units) have to know the keys > in advance? > > Thanks >
There is a 3DES H/W block in the AT91SAM7XC128/256. These parts cannot be exported outside E.U, US/Canada, Austrealia,New Zealand or Japan without applying for an export license though. -- Best Regards, Ulf Samuelsson This is intended to be my personal opinion which may, or may not be shared by my employer Atmel Nordic AB
On Oct 2, 11:34 pm, ElderUberGeek <aribl...@gmail.com> wrote:
> I need to implement some type of embedded security over a serial link, > like 3DES (or DES or AES), and really don't know where to start to > look, so some pointers would be really helpful. > > - Can this be implemented only in software? (code space?) > - Does anyone sell a library that can be used? > - Do the two units (which can be any two units) have to know the keys > in advance? >
Here's an implementation of DES and SKIPJACK on Microchip PIC: http://www.brouhaha.com/%7Eeric/crypto/ The DES code is about 700 instructions and SKIPJACK is around 300 instructions so they can easily be implemented on even the low end PICs.
Actually, as far as I have been looking in to it, AES is the way to
go.

Any idea about libraries or maybe an external chip?


On Oct 3, 7:41 am, "slebet...@yahoo.com" <slebet...@gmail.com> wrote:
> On Oct 2, 11:34 pm, ElderUberGeek <aribl...@gmail.com> wrote: > > > I need to implement some type of embedded security over a serial link, > > like 3DES (or DES or AES), and really don't know where to start to > > look, so some pointers would be really helpful. > > > - Can this be implemented only in software? (code space?) > > - Does anyone sell a library that can be used? > > - Do the two units (which can be any two units) have to know the keys > > in advance? > > Here's an implementation of DES and SKIPJACK on Microchip PIC: > > http://www.brouhaha.com/%7Eeric/crypto/ > > The DES code is about 700 instructions and SKIPJACK is around 300 > instructions so they can easily be implemented on even the low end > PICs.
You can always implement it into an FPGA or
another controller.

Rene

ElderUberGeek wrote:

> Actually, as far as I have been looking in to it, AES is the way to > go. > > Any idea about libraries or maybe an external chip? > > > On Oct 3, 7:41 am, "slebet...@yahoo.com" <slebet...@gmail.com> wrote: > >>On Oct 2, 11:34 pm, ElderUberGeek <aribl...@gmail.com> wrote: >> >> >>>I need to implement some type of embedded security over a serial link, >>>like 3DES (or DES or AES), and really don't know where to start to >>>look, so some pointers would be really helpful. >> >>>- Can this be implemented only in software? (code space?) >>>- Does anyone sell a library that can be used? >>>- Do the two units (which can be any two units) have to know the keys >>>in advance? >> >>Here's an implementation of DES and SKIPJACK on Microchip PIC: >> >>http://www.brouhaha.com/%7Eeric/crypto/ >> >>The DES code is about 700 instructions and SKIPJACK is around 300 >>instructions so they can easily be implemented on even the low end >>PICs.

ElderUberGeek wrote:

> Actually, as far as I have been looking in to it, AES is the way to > go.
No. XTEA is the way to go.
> Any idea about libraries or maybe an external chip?
The AES standard description with the reference C code is available from NIST web site. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
"ElderUberGeek" <aribloch@gmail.com> skrev i meddelandet 
news:1191387936.003175.86040@r29g2000hsg.googlegroups.com...
> > Actually, as far as I have been looking in to it, AES is the way to > go. > > Any idea about libraries or maybe an external chip? >
AT91SAM7XC128/256 has AES as well as 3DES. (Should have been in the first mail) This will give you a single chip solution with ARM7TDMI 128-256 kB Flash (soon 512 kB) 32-64 kB SRAM (soon 128 kB) 3DES, AES H/W encrypt/decrypt 3 x UARTs, SPI, I2C, I2S, ADC, Timers CAN controller, USB Full Speed device. What else do you need? -- Best Regards, Ulf Samuelsson This is intended to be my personal opinion which may, or may not be shared by my employer Atmel Nordic AB