PC app compatible with xmega AES encryption?

Go To Last Post
5 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Does anybody have the source (or at least a binary library) for a PC based AES encryption algorithm that would be compatible with the AES hardware engine on the Xmega processors? I need to store some encrypted files on SD cards from a PC and then insert these cards into an embedded device using the xmega processor and have the embedded application be able to decrypt them (assuming the encryption key is known by both ends).

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thanks for the links. I'd still like to know if anybody has experience with a particular implementation of the AES algorithm that was proven compatible with the AES hardware and software examples provided for the xmega? I've gotten the xmega encryption to work between two xmega targets, and now need to get it to work with a PC target.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

https://www.dlitz.net/software/p...

Crypto.Cipher.AES appears to be configurable enough that you can set it up to match the XMEGA implementation.

Non XOR on the XMEGA would be the MODE_ECB, and I guess the XOR mode on the XMEGA appears to be the same as Cipher-Block Chaining (MODE_CBC), albeit without an initial vector on the XMEGA. As the IV is XORed with the initial block, you could just use an IV of all 0's and it appears to be the same behaviour as on the XMEGA.
http://csrc.nist.gov/publication... (chapter 6.2)

Not tried myself mind you, but it what I would try first at least.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

AES is an encryption primitive (a block cypher), not a file encryption algorithm. (you can build insecure file encryption algorithms out of AES.)
I would hope that the Atmel AES implementation is general enough that it can implement most of the bigger encryption schemes based on the AES block algorithm. But I think you sort-of need to pick a respected file encryption algorithm and figure out whether it's implementable on the xmega, rather than make something up based on the primitives that are obviously available.