Методические указания к лабораторной работе




Скачать 430.89 Kb.
страница2/6
Дата06.06.2016
Размер430.89 Kb.
1   2   3   4   5   6

1. ИСТОРИЯ возникновения и основные понятия AES


В 1998 году NIST (National Institute of Standards and Technology) объявил конкурс на создание алгоритма симметричного шифрования, алгоритм получил название AES (Advanced Encryption Standard). Алгоритм планировалось принять как стандарт Соединенных Штатов Америки взамен устаревшего к этому времени стандарту DES (Digital Encryption Standard), являвшегося американским стандартом с 1977 года. Необходимость в принятии нового стандарта была вызвана небольшой длиной ключа DES (56 бит), что позволяло успешно применять метод прямого перебора ключей для взлома DES. Кроме того, архитектура DES была ориентирована на аппаратную реализацию, и программная реализация алгоритма на платформах с ограниченными ресурсами не давала достаточного быстродействия. Модификация TripleDES обладала достаточной длиной ключа, но при этом была еще медленнее.

2 января 1997 года NIST объявляет о намерении выбрать преемника для DES. Конкурс был объявлен 12 сентября 1997г. Свой алгоритм могла предложить любая организация или группа исследователей. NIST опубликовал все данные о тестировании кандидатов на роль AES и потребовал от авторов алгоритмов сообщить о базовых принципах построения алгоритмов, используемых в них константах, таблицах для замен (S-box) и т.п. В отличие от ситуации с DES, NIST при выборе AES не стал опираться на секретные и, как следствие, запрещенные к публикации данные об исследовании алгоритмов-кандидатов.

Требования к кандидатам на новый стандарт были следующими:


  • блочный шифр;

  • длина блока, равная 128 битам;

  • ключи длиной 128, 192 и 256 бит.

Дополнительно кандидатам рекомендовалось:

  • использовать операции, легко реализуемые как аппаратно (в микрочипах), так и программно (на персональных компьютерах и серверах);

  • ориентироваться на 32-разрядные процессоры

  • не усложнять без необходимости структуру шифра для того, чтобы все заинтересованные стороны были в состоянии самостоятельно провести независимый криптоанализ алгоритма и убедиться, что в нём не заложено каких-либо недокументированных возможностей.

Кроме того, алгоритм, претендующий на то, чтобы стать стандартом, должен распространяться по всему миру на не эксклюзивных условиях и без платы за пользование патентом.

Алгоритм AES прежде всего должен предлагать высокую степень защиты, обладать простой структурой и высокой производительностью. Уже на уровне внутренней архитектуры он должен обладать надежностью, достаточной для того, чтобы противостоять будущим попыткам его взлома.

Был проведен конкурс среди алгоритмов шифрования на роль AES, 2 октября 2000 года было объявлено, что победителем конкурса стал алгоритм Rijndael и началась процедура стандартизации. 28 февраля 2001 года был опубликован проект, а 26 ноября 2001 года AES был принят как стандарт FIPS 197.

AES не тождественен Rijndael, т.к. оригинальный алгоритм Rijndael поддерживает более широкий диапазон длин ключей и блоков. В AES размер ключа фиксирован и равен 128 бит, а в Rijndael поддерживаются различные длины ключей - от 128 до 256 бит, с шагом 32 бита. AES оперирует с блоком данных 16 байт, а Rijndael позволяет выбирать размер блока.

Rijndael – быстрый и компактный алгоритм с простой математической структурой. Он продемонстрировал хорошую устойчивость к атакам на реализацию, при которых пытаются декодировать зашифрованное сообщение, анализируя внешние проявления алгоритма, в том числе уровень энергопотребления и время выполнения. Алгоритму присущ внутренний параллелизм, что позволяет без труда обеспечить эффективное использование процессорных ресурсов. Далее под AES можно понимать Rijndael с ключом в 128 бит и блоком данных 16 байт.

2. ОПИСАНИЕ алгоритма AES

2.1. Обозначения, используемые в описании алгоритма


В табл.  приведены основные обозначения функций и параметров ариптопреобразования AES.

Таблица 2.1



Параметры алгоритма, символы и функции

Обозначение

Смысл обозначения

AddRoundKey()

Преобразование в Шифровании и Дешифровании, в котором Раундовый ключ добавляется к state, используя операцию XOR.

InvMixColumns()

Преобразование в Дешифровании, которое является инверсией MixColumns.

InvShiftRows()

Преобразование в Дешифровании, которое является инверсией ShiftRows.

InvSubBytes()

Преобразование в Дешифровании, которое является инверсией SubBytes.

K

Ключ шифрования  массив из 128 бит или 16 байт.

MixColumns()

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

Rcon()

Массив постоянных раундовых Слов.

RotWord()

Функция используемая в операции Расширения ключа, она берет четырехбайтовое слово и выполняет циклическую перестановку.

ShiftRows()

Преобразование в процессе Шифрования, которое выполняется над state, циклически сдвигая последние 3 строки state на различные значения.

SubBytes()

Преобразование в процессе Шифрования, которое выполняется над state и состоит в замене каждого байта, используя таблицу замены (S-box).

Nk

Длина ключа в словах, для AES 4 слова.

Nb

Длина блока в словах, для AES 4 слова.

Nr

Число раундов при шифровании – 10.

XOR

Операция «исключающее ИЛИ» над битами.



Операция «исключающее ИЛИ» над битами.



Умножение в конечном поле.
1   2   3   4   5   6


База данных защищена авторским правом ©uverenniy.ru 2016
обратиться к администрации

    Главная страница