Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билеты зи(2016).docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
7 Мб
Скачать
☆
  1. Протоколы доказательства с нулевым разглашением знаний

  1. Стандарт криптозащиты aes-128

AES-128. RIJNDAEL – это итеративный блочный шифр, имеющий переменную длину блоков и различные длины ключей. Длина ключа и длина блока могут быть равны независимо друг от друга 128, 192 или 256 битам.

Рассмотрим версию криптоалгоритма AES-128. Промежуточные результаты преобразований, выполняемых в рамках криптоалгоритма, называются состояниями (state). Все входные блоки данных, все промежуточные результаты преобразований, все выходные блоки данных, а также ключ шифрования можно представить в виде квадратного массива байтов (рис. 2.12). Этот массив имеет четыре строки и четыре столбца.

В некоторых случаях ключ шифрования рассматривается как линейный массив 4-байтовых слов. Слова состоят из четырех байтов, которые находятся в одном столбце (при представлении в виде прямоугольного массива).

Входные данные для шифра обозначаются как байты состояния в порядке a00, a10, a20, a30, a01, a11, a21, a31, ... . После завершения действия шифра выходные данные получаются из байтов состояния в том же порядке.

В состав раунда AES-128 входят следующие четыре преобразования:

  • побайтовая замена байтов состояния с использованием фиксированной таблицы замен размером 8􀁵256 (SubBytes);

  • побайтовый циклический сдвиг строк результата – i-я строка сдвигается на i байтов влево, i = 0, 3 (ShiftRows);

  • перемешивание столбцов результата (MixColumns);

  • поразрядное сложение по модулю 2 (XOR) результата с раундовым ключом (AddRoundKey).

Десятый раунд отличается от остальных – в нем отсутствует предпоследняя операция для более эффективной реализации обратного преобразования.

Замена байтов (SubBytes). Преобразование представляет собой нелинейную замену байтов, выполняемую независимо с каждым байтом состояния. Таблица замены S-блока является инвертируемой. Рис. 2.14 иллюстрирует применение преобразования SubBytes к состоянию.

Преобразование сдвига строк (ShiftRows). Последние три строки состояния циклически сдвигаются на различное число байт. Строка 1 сдвигается на один байт, строка 2 – на два байта 100 и строка 3 – на три байта. Рис. 2.15 показывает влияние преобразования на состояние.

Преобразование перемешивания столбцов (MixColumns). Рис. 2.16 демонстрирует применение преобразования MixColumns к столбцу состояния.

Добавление раундового ключа (AddRoundKey). В данной операции раундовый ключ добавляется к состоянию посредством простого поразрядного XOR (рис. 2.17). Раундовый ключ вырабатывается из ключа шифрования посредством алгоритма выработки ключей (key schedule).

Алгоритм выработки ключей (Key Schedule). Раундовые ключи получаются из ключа шифрования посредством алгоритма выработки ключей. Он содержит два компонента: расширение ключа (Key Expansion) и выбор раундового ключа (Round Key Selection). Основополагающие принципы алгоритма выглядят следующим образом:

  • общее число бит раундовых ключей равно длине блока, умноженной на число раундов плюс 1 (например, для длины блока 128 бит и 10 циклов требуется 1408 бит циклового ключа);

  • ключ шифрования расширяется в расширенный ключ (Expanded Key);

  • раундовые ключи берутся из расширенного ключа следующим образом: первый раундовый ключ содержит первые четыре слова, второй – следующие четыре слова и т.д.

Расширение ключа (Key Expansion). Расширенный ключ представляет собой линейный массив 4-байтовых слов. Первые четыре слова содержат ключ шифрования. Все остальные слова определяются рекурсивно из слов с меньшими индексами.

Криптоалгоритм. Шифр AES-128 состоит из:

  • начального добавления раундового ключа;

  • девяти раундов;

  • заключительного раунда.

Новая архитектура (рис. 2.18,а), с использованием которой построена функция Ek, получила название «Квадрат». Свойства алгоритма иллюстрирует рис. 2.18,б, из которого видно, что два раунда обеспечивают полное рассеивание и перемешивание информации. Видно, что даже незначительные изменения на входе нелинейной функции приводят к существенным изменениям на выходе (в среднем изменяется половина бит преобразованного блока).

Обоснование числа раундов выглядит следующим образом. Авторы криптоалгоритма продемонстрировали эффективнейшую атаку на 4-раундовую версию RIJNDAEL [14]. После добавления 5-го раунда атака по-прежнему возможна, но становится сложнее. После добавления 6-го раунда атака по-прежнему возможна, но ее

сложность уже сопоставима с атакой полного перебора. К получившейся 6-раундовой функции шифрования, обладающей минимальной стойкостью к рассматриваемой атаке, добавляются два начальных раунда, обеспечивающих полное рассеивание и перемешивание, и два конечных раунда, обладающих тем же свойством. Таким образом, суммарное число раундов становится равным 10.

Основные достоинства AES-128:

  • новая архитектура «Квадрат», обеспечивающая быстрое рассеивание и перемешивание информации, при этом за один раунд преобразованию подвергается весь входной блок;

  • байт-ориентированная структура, удобная для реализации на 8-разрядных микроконтроллерах;

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