![NXP Semiconductors LPC43Sxx Скачать руководство пользователя страница 107](http://html1.mh-extra.com/html/nxp-semiconductors/lpc43sxx/lpc43sxx_user-manual_1721827107.webp)
UM10503
All information provided in this document is subject to legal disclaimers.
© NXP B.V. 2015. All rights reserved.
User manual
Rev. 2.1 — 10 December 2015
107 of 1441
NXP Semiconductors
UM10503
Chapter 8: LPC43Sxx Security API
OTP, a second key stored in the OTP (this key is not encrypted), a software supplied key,
or a key generated by an on-chip random number generator. For encryption and
decryption of data, an API is provided.
The AES hardware consists of these components:
•
One-time programmable (OTP) non-volatile memory to store the AES keys. Two
instances (OTP1/2) are offered to store the two keys using the AES API (
).
•
An AES decryption engine. The AES uses a 128-bit key and processes blocks of 128
bit. Using the AES API, the keys can be stored in a dedicated hardware interface that
is not visible to software.
•
The AES encryption engine. Encryption is selected through the AES_SetMode
command. The command returns an error if the parts are not configured for
encryption.
•
The AES encryption and decryption engine supports DMA for transferring data
between memory and the AES engine.
•
The ROM-based AES API for encrypting and decrypting data, storing and retrieving
keys, and for interfacing with the GPDMA.
The AES engine can be loaded with four different keys:
1. Key1 - user-defined and stored in the OTP uniquely encrypted for each part; used by
the boot code to decrypt boot image; can also be used to encrypt or decrypt data. This
key is the most secure key, as the original, programmed key is encrypted in the OTP
memory on-chip and cannot be read by software.
2. Key2 - user-defined and stored in the OTP; used to encrypt or decrypt data.
3. A software defined key.
4. A key generated by the Random Number Generator (RNG).
Using the GPDMA to transfer data in or out of the AES engine is optional.
Fig 30. AES data encryption/decryption
plain-text
data
AES
engine
ECB or CBC
key
CBC init
vector
encypted
data
OTP
bank 1
OTP
bank 2
software vector
unique id vector
software key
random number key
GPDMA
GPDMA
encrypt
decrypt