There are two types of cryptographic implementations available for your browsing pleasure. They are either:
1. # AES-128 running on Atmel XMEGA, with power analysis. Key not stored in firmware (attack via DPA). 2. # AES-128 running on Linux computer, without power analysis. Key stored in firmware (White box).
As a user, you can submit source-code to accomplish #1, which will run the code on an embedded hardware platform.
To compile as the server does, simply [http://ctf.newae.com/media/cc_aesbuild.zip download the build directory]. To use this directory:
1. # Unzip that directory somewhere (for example in the "firmware" directory). 2. # Copy your source-codeto the "<code>firmware\simpleserial-aes\user_crypto" </code> directory. 3. # To build run "<code>make" </code> in "<code>simpleserial-aes"</code>.
Running make will require avr-gcc & avr-binutils installed. You can do this on Linux platforms with something like:
sudo apt-get install avr-gcc avr-binutils
On Windows platforms, install [http://winavr.sourceforge.net/ WinAVR].
==== Timing your AES Implementation ====
TODO - Check if Atmel Studio allows cycle-by-cycle timing?
== White Box Cryptography ==