УДК 004.021

Классификация блочных симметричных алгоритмов

Донгак Шорана Март-ооловна – старший преподаватель кафедры Компьютерной и информационной безопасности МИРЭА – Российского технологического университета.

Аннотация: В данной статье представлена классификация блочных симметричных алгоритмов по архитектуре построения, также учебные версии двух стандартов шифрования DES и AES. Рассматриваются основные операции, функции и преобразования данных алгоритмов, адаптированные для изучения в деталях.

Ключевые слова: криптография, блочные алгоритмы, обучение, DES, AES.

Введение

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

Классификация криптографических алгоритмов

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

В зависимости от шифруемого блока симметричные алгоритмы делятся на блочные и потоковые [1]. Наиболее часто встречающимися для обучения симметричного шифрования являются криптографические алгоритмы Data Encryption Standard - DES и Advanced Encryption Standard - AES. Данные алгоритмы являются блочными алгоритмами с разными архитектурами. Алгоритм DES основан на Сети Фейстеля, также как и множество других алгоритмов. В архитектуре Сеть Фейстеля информация делится на два или несколько блоков, в которой один из блоков в каждом раунде проходит преобразование с помощью функции f. В свою очередь алгоритм AES имеет архитектуру Квадрат. Данная архитектура отличается от архитектуры Сеть Фейстеля тем, что информация проходит преобразования единым блоком. На рис. 1 приведена классификация блочных симметричных алгоритмов.

1

Рисунок 1. Классификация блочных алгоритмов по архитектуре.

Данные алгоритмы в своих оригинальных версиях используют относительно большие размеры ключей и данных, а также проходят 10 и выше раундов. В каждом раунде используется множество операций, функций составляющие разные преобразования. Эти преобразования, за счет объема и сложности, бывают непонятны в своих решениях. Поэтому для лучшего усвоения материала разработаны упрощенные версии алгоритмов для обучения: DES учебная (DES/у) и AES учебная (AES/у).

  1. DES учебная (DES/у)

Алгоритм DES учебная (DES/у) адаптирован для ручных расчетов, 64 бит уменьшен до 32 бита, а также представлен только 1 раунд (рис. 2).

В данном алгоритме сохранены все операции и функции как в оригинальном алгоритме:

  • начальная перестановка - IP;
  • расщепление блока пополам;
  • 1 раунд сети Фейстеля;
  • соединение половин блока;
  • конечная перестановка - IP-1 (обратная начальной).

2

Рисунок 2. Схема алгоритма DES учебная (DES/у).

Начальная перестановка IP и конечная перестановка IP-1 (обратная начальной) были адаптированы для 32-битового размера блока (рис. 3).

3

Рисунок 3. Начальная перестановка IP и конечная перестановка IP-1.

В циклах преобразования Фейстеля функция f играет роль
шифрования [2]. Для вычисления функции f последовательно используются:

  • функция расширения E;
  • сложение по модулю 2 с ключом k;
  • преобразование S, состоящее из 4 S-блоков;
  • перестановка P.

Функция Е расширяет 16-битовый вектор до 24-битового вектора путём дублирования некоторых битов (рис. 4)

4

Рисунок 4. Схема функции f.

После сложения с ключом по модулю 2, далее идет преобразование S состоящее из 4 S-блоков. Для удобства использования были взяты первые 4 блока из оригинального алгоритма (рис. 5). На вход в S-блок подается 6 бит, первый и шестой определяют номер строки, а 4 бита посередине определяют номер столбца (Рис. 6)

5

Рисунок 5. S-блоки.

6

Рисунок 6. Считывание бит в S-блоках.

Далее полученные биты переставлются по P-box (рис. 7)

7

Рисунок 7. P-box.

После преобразования P заканчивается функция f, результат которого дальше преобразуется по схеме алгоритма DES/y. В данном алгоритме реализован только 1 раунд, в котором присутствуют все операции, для быстроты вычислений, например, в рамках одного занятия.

  1. AES учебная (AES/у)

Алгоритм AES учебная (AES/у) также адаптирован для ручных расчетов, 64 бит уменьшен до 32 бита, а также представлены только 2 раунда, где во втором раунде представлена имитация последнего раунда оригинального алгоритма, где отсутствует преобразование MixColumns.

На рис. 8 представлена схема алгоритма AES учебная (AES/у).

8

Рисунок 8. Схема алгоритма AES учебная (AES/у).

Раунд состоит из 4 различных преобразований:

  • SubBytes – побайтовая подстановка в S-боксе с фиксированной таблицей замен (рис. 9);
  • ShiftRows – побайтовый сдвиг строк матрицы State на различное количество байт;
  • MixColumns – перемешивание байт в столбцах;
  • AddRoundKey – сложение с раундовым ключом (операция XOR).

9

Рисунок 9. S-блок.

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

Каждый раундовый ключ имеет длину 32 бита (или 2 двух байтовых слова wi, wi+1). На рис. 10 представлена схема расширения ключа. Первые два слова w0, w1, в ключевом массиве заполнены ключом шифра, из остальных выработанных слов выбираются по 2 слова для ключа раунда. Выбор слов прост: первые два слова (они совпадают с ключом шифра) являются ключом с номером 0, следующие два слова w2, w3, – раундовым ключом для первого полного раунда и т.д.

Новые слова wi+2, wi+3 следующего раундового ключа определяются из слов wi, wi+1 предыдущего ключа на основе уравнений:

wi+3, = wi+2 ⊕ wi+1.

Первое слово wi+2 в каждом раундовом ключе изменяется по другому:

wi+2 = wi ⊕ g(wi+3);

Функция g выполняется в 3 этапа:

  1. циклический сдвиг двухбайтового слова влево на один байт (операция RotWord);
  2. замена каждого байта слова, полученного на 1 этапе, в соответствии с таблицей SubBytes (рис.2), используемой при шифровании (операция SubWord);
  3. суммирование по mod 2 байтов, полученных на шаге 2, с раундовой постоянной Rcon[i] = (RC[i],00), несекретной и уникальной для каждого раундового ключа Ki. Правый байт этой константы – нули, а ненулевой левый байт меняется по известному закону рекурсии: RC[1] = 1,

RC[i] = 2*RC[i-1], где i=1, 2, и т.д.

10

Рисунок 10. Алгоритм расширения ключа.

Выводы

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

Список литературы

  1. Васильева, И. Н. Криптографические методы защиты информации: учебник и практикум для вузов / И. Н. Васильева. – Москва: Издательство Юрайт, 2023. – 349 с. – (Высшее образование). – ISBN 978-5-534-02883-6.
  2. Лось, А. Б. Криптографические методы защиты информации для изучающих компьютерную безопасность : учебник для вузов / А. Б. Лось, А. Ю. Нестеренко, М. И. Рожков. – 2-е изд., испр. – Москва : Издательство Юрайт, 2023. – 473 с. – (Высшее образование). – ISBN 978-5-534-12474-3.
  3. Токарева Н. Н. Симметричная криптография. Краткий курс: учебное пособие / Новосиб. гос. ун-т. Новосибирск, 2012. 234 с.

Интересная статья? Поделись ей с другими: