Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
378
Добавлен:
21.05.2015
Размер:
7.55 Mб
Скачать
    1. Обзор регистров

      Адрес

      Наименование

      Бит 7

      Бит 6

      Бит 5

      Бит 4

      Бит 3

      Бит 2

      Бит 1

      Бит 0

      +0x00

      TXPLCTRL

      TXPLCTRL[7:0]

      +0x01

      RXPLCTRL

      TXPLCTRL[7:0]

      +0x02

      CTRL

       

       

       

       

      EVSEL[3:0]

  1. Криптоускорители

      1. Отличительные особенности

  • Инструкция шифрования данных по стандарту DES

  • Модуль шифрования по стандарту AES

  • Инструкция DES

  • шифрация и дешифрация

  • одноцикловая инструкция

  • шифрация/дешифрация 8-байтного блока за 16 циклов синхронизации

  • Модуль AES

  • шифрация и дешифрация

  • поддержка 128-битных ключей

  • поддержка XOR режима загрузки данных в память состояния

  • шифрация/дешифрация 16-байтного блока за 375 циклов синхронизации

    1. Обзор

AES и DES - два наиболее распространенных стандарта шифрования. В микроконтроллерах XMEGA они поддерживаются на уровне модуля AES и инструкции DES.

Стандарт DES поддерживается инструкцией DES ядра AVR XMEGA. Перед выполнением инструкции в регистровый файл необходимо поместить 8-байтный блок ключа и 8-байтный блок данных. После этого, для выполнения шифрации или дешифрации блока данных инструкцию DES нужно выполнить 16 раз.

Модуль AES предназначен для шифрации и дешифрации 128-битных блоков данных с использованием 128-битного ключа. Перед запуском шифрации/дешифрации в модуль необходимо загрузить ключ и данные. Вся процедура шифрации/дешифрации длится 375 циклов синхронизации УВВ, после чего данные могут быть считаны.

    1. Инструкция des

Инструкция DES является одноцикловой. Для выполнения шифрации или дешифрации 64-битного (8-байтного) блока данных её необходимо выполнить 16 раз.

Блок ключа и блок данных помещается в регистровый файл перед запуском шифрации/дешифрации. 64-битный блок данных (PLAINTEXT или CIPHERTEXT) помещается в регистры R0-R7, причем младший бит данных помещается в младший бит регистра R0, а старший бит данных - в старший бит регистра R7. 64-битный ключ (вместе с битами паритета) хранится в регистрах R8-R15, причем младший бит ключа в младшем бите R8, а старший бит ключа - в старшем бите R15.

Рисунок 23.1. Использование регистрового файла в ходе шифрации/дешифрации инструкцией DES

Выполнение инструкции DES приводит к исполнению одного цикла алгоритма DES. Для корректной шифрации/дешифрации CIPHERTEXT или PLAINTEXT необходимо выполнить 16 циклов DES. Промежуточные результаты после выполнения каждой инструкции DES сберегаются в регистровом файле (R0-R15). После выполнения 16 циклов, ключ помещается в R8-R16, а зашифрованные/дешифрованные данные CIPHERTEXT/PLAINTEXT - в R0-R7. От операнда инструкции (K) зависит, какой цикл выполняется, а от флага полупереноса (H) в регистре статуса ЦПУ - тип выполняемой операции: шифрация или дешифрация. Если флаг полупереноса равен единице, выполняется дешифрация, а если нулю - шифрация.

Более подробно о работе инструкции DES см. в руководстве по набору инструкций AVR.

    1. Модуль aes

Модуль AES выполняет шифрацию и дешифрацию в соответствии со стандартом AES (FIPS-197). 128-битный блок ключа и 128-битный блок данных (PLAINTEXT или CIPHERTEXT) должны быть загружены в память ключа и память состояния модуля AES. Это достигается выполнением поочередной записи в регистр ключа и регистр состояния 16 байт.

Программно можно выбрать, что должен выполнить модуль: шифрацию или дешифрацию. Также возможно разрешить режим XOR, в котором ко всем новым данным, помещенным в ключ состояния, и текущим данным в памяти состояния применяется операция исключающего ИЛИ.

Операция шифрации/дешифрации в модуле AES выполняется 375 циклов, после чего данные CIPHERTEXT/PLAINTEXT могут быть считаны из памяти состояния.

Для настройки и использования модуля рекомендуется придерживаться следующей процедуры:

  • Разрешение прерываний модуля AES (опционально).

  • Выбор направления AES: шифрация или дешифрация.

  • Загрузка блока ключа в память ключа модуля AES.

  • Загрузка блока данных в память состояния модуля AES.

  • Запуск шифрации/дешифрации.

При необходимости шифрации или дешифрации более чем одного блока данных, данную процедуру необходимо выполнить требуемое число раз, начиная с пункта 3.

По завершении процедуры шифрации/дешифрации, устанавливается флаг AES и генерируется опциональное прерывание.

Соседние файлы в папке Архитектура ЭВМ