23.5. Обзор регистров модуля AES
23.5.1. CTRL - регистр управления модулем AES
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
+0x00 |
START |
AUTO |
RESET |
DECRYPT |
- |
XOR |
- |
- |
|
CTRL |
Чтение/запись |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт. |
Чт./Зап. |
Чт. |
Чт. |
Начальное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- Бит 7 - START: запуск AES
Установка данного бита запускает процедуру шифрации/дешифрации. Данный бит остается в установленном состоянии в процессе выполнения шифрации/дешифрации. Запись нуля в данный бит остановит выполняющийся процесс шифрации/дешифрации. Бит START автоматически сбрасывается при установке флага SRIF или ERROR в регистре STATUS.
- Бит 6 - AUTO: автоматический запуск AES
Установка данного бита разрешает работу в режиме автоматического запуска. В этом режиме, установка бита START, а, следовательно, и запуск процедуры шифрации/дешифрации происходит автоматически в следующих условиях:
- Бит AUT
- установлен перед загрузкой памяти состояния.
- Все указатели памяти (чтение/запись памяти состояния и чтение/запись памяти ключа) равны нулю.
- Память состояния полностью загружена.
С некорректным ключом запуск шифрации/дешифрации не выполняется.
- Бит 5 - RESET: программный сброс модуля AES
Установка данного бита приводит к сбросу модуля AES и его переводу в исходное состояние по следующему нарастающему фронту сигнала синхронизации УВВ. Все регистры, указатели и память модуля принимают их исходные значения. После записи единицы в данный бит, он остается в высоком состоянии в течение одного цикла синхронизации, а затем аппаратно будет сброшен к нулю.
- Бит 4 - DECRYPT: задание направления
Данный бит предназначен для задания направления работы модуля AES. Запись нуля в этот бит переводит модуль в режим шифрования, а запись единицы - в режим дешифрации.
- Бит 3 - Res: резервный бит
Данный бит не используется и зарезервирован для использования в будущем. Для совместимости с более новыми МК, выполняя запись в этот регистр, всегда записывайте нуль в резервный бит.
- Бит 2 - XOR: разрешение режима XOR загрузки памяти состояния модуля AES
Установка этого бита разрешает загрузку данных в память состояния в режиме XOR. Когда данный бит равен единице, загружаемые в память состояния данные подвергаются побитной операции исключающее ИЛИ (XOR) с текущими данными в памяти состояния. Запись нуля в этот бит отключает режим XOR и, поэтому, новые записываемые в память состояния данные будут перезаписывать текущие данные в памяти состояния.
- Биты 1:0 - Res: резервные биты
Данные биты не используются и зарезервированы для использования в будущем. Для совместимости с более новыми МК, выполняя запись в этот регистр, всегда записывайте нули в резервные биты.
23.5.2. STATUS - регистр статуса модуля AES
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
+0x01 |
|
STATUS |
Чтение/запись |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Начальное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- Бит 7 - ERROR: флаг ошибки модуля AES
Флаг ERROR сигнализирует о возникновении ошибки в работе модуля AES. Флаг становится равным единице в следующих случаях:
- в регистре управления установлен бит START, но память состояния и/или память ключа не записаны или не считаны полностью. Такая ошибка возникает, когда во время запуска AES общее число операций чтения или записи регистра состояния или регистра ключа оказывается некратным 16.
- выполнен доступ (чтение или запись) к регистру управления, когда бит START равен единице.
Флаг ошибки можно сбросить программно записью в него единицы.
- Биты 6:1 - RES: резервный бит
Данные биты является резервными и всегда считываются с нулевым значением. Для совместимости с более новыми МК, выполняя запись в этот регистр, всегда записывайте нули в резервные биты.
- Бит 0 - SRIF: флаг прерывания по готовности к чтению памяти состояния модуля AES
Данный флаг является флагом прерывания/DMA-запроса. Он становится равным единице по завершении процедуры шифрации/дешифрации, когда в памяти состояния имеются действительные данные. Равенство флага нулю указывает на то, что в памяти состояния нет действительных зашифрованных/дешифрованных данных.
Флаг сбрасывается аппаратно при чтении первого байта из памяти состояния. Альтернативно, данный флаг можно сбросить программно записью в него единицы.
23.5.3. STATE - регистр состояния модуля AES
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
+0x02 |
|
STATE |
Чтение/запись |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Начальное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Регистр состояния предназначен для доступа к памяти состояния. Прежде чем выполнить шифрацию/дешифрацию, необходимо заполнить память состояния путем последовательной записи байт данных в регистр состояния.
По завершении, шифрации/дешифрации, CIPHERTEXT/PLAINTEXT можно считать путем побайтного опроса регистра состояния.
Загрузку исходных данных в регистр состояния необходимо выполнить после установки соответствующего режима модуля AES и направления. По ходу шифрации/дешифрации доступ к этому регистру невозможен.
23.5.4. KEY - регистр ключа модуля AES
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
+0x03 |
|
KEY |
Чтение/запись |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Начальное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Регистр ключа используется для доступа к памяти ключа. Прежде чем выполнить шифрацию/дешифрацию, необходимо заполнить память ключа путем последовательной записи байт данных в регистр ключа. По завершении шифрации/дешифрации, может быть считан последний подключ. Для этого необходимо выполнить последовательность чтений байт из регистра ключа.
Загрузку исходных данных в регистр ключа необходимо выполнить после установки соответствующего режима модуля AES и направления.
23.5.5. INTCTRL - регистр управления прерыванием модуля AES
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
+0x04 |
|
INTCTRL |
Чтение/запись |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт./Зап. |
Чт./Зап. |
Начальное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- Биты 7:2 - RES: резервные биты
Данные биты не используются и зарезервированы для использования в будущем. Для совместимости с более новыми МК, выполняя запись в этот регистр, всегда записывайте нули в резервные биты.
- Биты 1:0 - INTLVL[1:0]: разрешение прерывания модуля AES и задание его приоритета
Данные биты предназначены для разрешения работы прерывания модуля AES и задания его приоритета в соответствии с описанием, приведенном в разделе 12 "Прерывания и программируемый многоуровневый контроллер прерываний". После разрешения прерывания, оно будет генерироваться при установке флага SRIF в регистре STATUS.
23.6. Обзор регистров модуля AES
Адрес |
Наименование |
Бит 7 |
Бит 6 |
Бит 5 |
Бит 4 |
Бит 3 |
Бит 2 |
Бит 1 |
Бит 0 |
+0x00 |
CTRL |
START |
AUTO |
RESET |
DECRYPT |
- |
XOR |
- |
- |
+0x01 |
STATUS |
ERROR |
- |
- |
- |
- |
- |
- |
SRIF |
+0x02 |
STATE |
STATE[7:0] |
+0x03 |
KEY |
KEY[7:0] |
+0x04 |
INTCTRL |
- |
- |
- |
- |
- |
- |
INTLVL[1:0] |
+0x05 |
(резерв) |
- |
- |
- |
- |
- |
- |
- |
- |
+0x06 |
|
|
|
|
|
|
|
|
|
+0x07 |
|
|
|
|
|
|
|
|
|
+0x08 |
|
|
|
|
|
|
|
|
|
+0x09 |
|
|
|
|
|
|
|
|
|
+0x0A |
|
|
|
|
|
|
|
|
|
+0x0B |
|
|
|
|
|
|
|
|
|
+0x0C |
|
|
|
|
|
|
|
|
|
+0x0D |
|
|
|
|
|
|
|
|
|
+0x0E |
|
|
|
|
|
|
|
|
|
+0x0F |
|
|
|
|
|
|
|
|
|
23.7. Вектор прерываний модуля AES
Таблица 23.2. Вектор прерываний модуля AES
Смещение |
Источник |
Описание прерывания |
0 |
AES |
Смещение вектора прерывания модуля AES |
|