As of August 2020 the site you are on (wiki.newae.com) is deprecated, and content is now at rtfm.newae.com. |
Difference between revisions of "Tutorial A8 32bit AES"
(Created page with "Most of our previous tutorials were running on 8-bit modes of operation. We can target typical implementation on ARM devices which actually looks a little different. This tut...") |
|||
Line 6: | Line 6: | ||
A 32-bit machine can operate on 32-bit words, so it seems wasteful to use the same 8-bit operations. Indeed we can speed up the AES operation considerably by generating several tables (called T-Tables), as was described in the book [http://www.springer.com/gp/book/9783540425809 The Design of Rijndael] which was published by the authors of AES. | A 32-bit machine can operate on 32-bit words, so it seems wasteful to use the same 8-bit operations. Indeed we can speed up the AES operation considerably by generating several tables (called T-Tables), as was described in the book [http://www.springer.com/gp/book/9783540425809 The Design of Rijndael] which was published by the authors of AES. | ||
+ | |||
+ | == Building Firmware == | ||
+ | |||
+ | You will have to build with the <code>PLATFORM</code> set to one of the ARM targets (such as <code>CW308_STM32F0</code> for the STM32F0 victim, or <code>CW308_STM32F3</code> for the STM32F3 victim). If you haven't setup the ARM build environment see the page [[CW308T-STM32F#Example_Projects]]. Assuming your build environment is OK, you can build it as follows: | ||
+ | |||
+ | cd chipwhisperer\hardware\victims\firmware\simpleserial-aes | ||
+ | make PLATFORM=CW308_STM32F3 CRYPTO_TARGET=MBEDTLS | ||
+ | |||
+ | If this works you should get something like the following: | ||
+ | |||
+ | Creating Symbol Table: simpleserial-aes-CW308_STM32F3.sym | ||
+ | arm-none-eabi-nm -n simpleserial-aes-CW308_STM32F3.elf > simpleserial-aes-CW308_ | ||
+ | STM32F3.sym | ||
+ | Size after: | ||
+ | text data bss dec hex filename | ||
+ | 8440 1076 10320 19836 4d7c simpleserial-aes-CW308_STM32F3.elf | ||
+ | +-------------------------------------------------------- | ||
+ | + Built for platform CW308T: STM32F3 Target | ||
+ | +-------------------------------------------------------- | ||
+ | |||
+ | == Hardware Setup == | ||
+ | |||
+ | == Capturing Traces == | ||
+ | |||
+ | == Running Attack == |
Revision as of 04:24, 18 July 2017
Most of our previous tutorials were running on 8-bit modes of operation. We can target typical implementation on ARM devices which actually looks a little different.
This tutorial is ONLY possible if you have an ARM target. For example the UFO Board with the STM32F3 target (or similar).
Background
A 32-bit machine can operate on 32-bit words, so it seems wasteful to use the same 8-bit operations. Indeed we can speed up the AES operation considerably by generating several tables (called T-Tables), as was described in the book The Design of Rijndael which was published by the authors of AES.
Building Firmware
You will have to build with the PLATFORM
set to one of the ARM targets (such as CW308_STM32F0
for the STM32F0 victim, or CW308_STM32F3
for the STM32F3 victim). If you haven't setup the ARM build environment see the page CW308T-STM32F#Example_Projects. Assuming your build environment is OK, you can build it as follows:
cd chipwhisperer\hardware\victims\firmware\simpleserial-aes make PLATFORM=CW308_STM32F3 CRYPTO_TARGET=MBEDTLS
If this works you should get something like the following:
Creating Symbol Table: simpleserial-aes-CW308_STM32F3.sym arm-none-eabi-nm -n simpleserial-aes-CW308_STM32F3.elf > simpleserial-aes-CW308_ STM32F3.sym Size after: text data bss dec hex filename 8440 1076 10320 19836 4d7c simpleserial-aes-CW308_STM32F3.elf +-------------------------------------------------------- + Built for platform CW308T: STM32F3 Target +--------------------------------------------------------