128
8111C–MCU Wireless–09/09
AT86RF231
11. AT86RF231 Extended Feature Set
11.1
Security Module (AES)
The security module (AES) is characterized by:
Hardware accelerated encryption and decryption
Compatible with AES-128 standard (128-bit key and data block size)
ECB (encryption/decryption) mode and CBC (encryption) mode support
Stand-alone operation, independent of other blocks
11.1.1
Overview
The security module is based on an AES-128 core according to FIPS197 standard, refer to
[5].The security module works independent of other building blocks of the AT86RF231, encryption
and decryption can be performed in parallel to a frame transmission or reception.
Controlling the security block is implemented as an SRAM access to address space 0x82 to
0x94. A Fast SRAM access mode allows simultaneously writing new data and reading data from
previously processed data within the same SPI transfer. This access procedure is used to
In addition, the security module contains another 128-bit register to store the initial key used for
security operations. This initial key is not modified by the security module.
11.1.2
Security Module Preparation
The use of the security module requires a configuration of the security engine before starting a
security operation. The following steps are required:
Before starting any security operation a key must be written to the security engine, refer to
Sec-AES engine KEY mode using register bits AES_MODE (SRAM address 0x83, AES_CTRL).
The following step selects the AES mode, either electronic code book (ECB) or cipher block
bit AES_DIR (SRAM address 0x83, AES_CTRL).
As next the 128-bit plain text or ciphertext data has to be provided to the AES hardware engine.
The data uses the SRAM address range 0x84 - 0x93.
Table 11-1.
AES Engine Configuration Steps
Step
Description
Section
1
Key Setup
Write encryption or decryption key to SRAM
2
AES Mode
Select AES mode: ECB or CBC
Select encryption or decryption
3
Write Data
Write plaintext or cipher text to SRAM
4
Start Operation
Start AES operation
5
Read Data
Read cipher text or plaintext from SRAM