УДК 004.021
Классификация блочных симметричных алгоритмов
Донгак Шорана Март-ооловна – старший преподаватель кафедры Компьютерной и информационной безопасности МИРЭА – Российского технологического университета.
Аннотация: В данной статье представлена классификация блочных симметричных алгоритмов по архитектуре построения, также учебные версии двух стандартов шифрования DES и AES. Рассматриваются основные операции, функции и преобразования данных алгоритмов, адаптированные для изучения в деталях.
Ключевые слова: криптография, блочные алгоритмы, обучение, DES, AES.
Введение
В современном мире криптография практически используется во всех технологиях передачи и хранения данных. Шифрование данных происходит в мессенджерах, веб-браузерах, также защищаются транзакции по различным картам, например банковских, транспортных. Востребованность специалистов в области криптографии высока и в связи с чем, есть большая необходимость в их обучении.
Классификация криптографических алгоритмов
Существует множество средств и методов криптографической защиты информации, которые используют различные виды шифрования, такие как симметричные, асимметричные и бесключевые. Примерами асимметричного шифрования могут быть алгоритмы электронной подписи, а бесключевого - алгоритмы хэширования.
В зависимости от шифруемого блока симметричные алгоритмы делятся на блочные и потоковые [1]. Наиболее часто встречающимися для обучения симметричного шифрования являются криптографические алгоритмы Data Encryption Standard - DES и Advanced Encryption Standard - AES. Данные алгоритмы являются блочными алгоритмами с разными архитектурами. Алгоритм DES основан на Сети Фейстеля, также как и множество других алгоритмов. В архитектуре Сеть Фейстеля информация делится на два или несколько блоков, в которой один из блоков в каждом раунде проходит преобразование с помощью функции f. В свою очередь алгоритм AES имеет архитектуру Квадрат. Данная архитектура отличается от архитектуры Сеть Фейстеля тем, что информация проходит преобразования единым блоком. На рис. 1 приведена классификация блочных симметричных алгоритмов.
Рисунок 1. Классификация блочных алгоритмов по архитектуре.
Данные алгоритмы в своих оригинальных версиях используют относительно большие размеры ключей и данных, а также проходят 10 и выше раундов. В каждом раунде используется множество операций, функций составляющие разные преобразования. Эти преобразования, за счет объема и сложности, бывают непонятны в своих решениях. Поэтому для лучшего усвоения материала разработаны упрощенные версии алгоритмов для обучения: DES учебная (DES/у) и AES учебная (AES/у).
- DES учебная (DES/у)
Алгоритм DES учебная (DES/у) адаптирован для ручных расчетов, 64 бит уменьшен до 32 бита, а также представлен только 1 раунд (рис. 2).
В данном алгоритме сохранены все операции и функции как в оригинальном алгоритме:
- начальная перестановка - IP;
- расщепление блока пополам;
- 1 раунд сети Фейстеля;
- соединение половин блока;
- конечная перестановка - IP-1 (обратная начальной).
Рисунок 2. Схема алгоритма DES учебная (DES/у).
Начальная перестановка IP и конечная перестановка IP-1 (обратная начальной) были адаптированы для 32-битового размера блока (рис. 3).
Рисунок 3. Начальная перестановка IP и конечная перестановка IP-1.
В циклах преобразования Фейстеля функция f играет роль
шифрования [2]. Для вычисления функции f последовательно используются:
- функция расширения E;
- сложение по модулю 2 с ключом k;
- преобразование S, состоящее из 4 S-блоков;
- перестановка P.
Функция Е расширяет 16-битовый вектор до 24-битового вектора путём дублирования некоторых битов (рис. 4)
Рисунок 4. Схема функции f.
После сложения с ключом по модулю 2, далее идет преобразование S состоящее из 4 S-блоков. Для удобства использования были взяты первые 4 блока из оригинального алгоритма (рис. 5). На вход в S-блок подается 6 бит, первый и шестой определяют номер строки, а 4 бита посередине определяют номер столбца (Рис. 6)
Рисунок 5. S-блоки.
Рисунок 6. Считывание бит в S-блоках.
Далее полученные биты переставлются по P-box (рис. 7)
Рисунок 7. P-box.
После преобразования P заканчивается функция f, результат которого дальше преобразуется по схеме алгоритма DES/y. В данном алгоритме реализован только 1 раунд, в котором присутствуют все операции, для быстроты вычислений, например, в рамках одного занятия.
- AES учебная (AES/у)
Алгоритм AES учебная (AES/у) также адаптирован для ручных расчетов, 64 бит уменьшен до 32 бита, а также представлены только 2 раунда, где во втором раунде представлена имитация последнего раунда оригинального алгоритма, где отсутствует преобразование MixColumns.
На рис. 8 представлена схема алгоритма AES учебная (AES/у).
Рисунок 8. Схема алгоритма AES учебная (AES/у).
Раунд состоит из 4 различных преобразований:
- SubBytes – побайтовая подстановка в S-боксе с фиксированной таблицей замен (рис. 9);
- ShiftRows – побайтовый сдвиг строк матрицы State на различное количество байт;
- MixColumns – перемешивание байт в столбцах;
- AddRoundKey – сложение с раундовым ключом (операция XOR).
Рисунок 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 этапа:
- циклический сдвиг двухбайтового слова влево на один байт (операция RotWord);
- замена каждого байта слова, полученного на 1 этапе, в соответствии с таблицей SubBytes (рис.2), используемой при шифровании (операция SubWord);
- суммирование по mod 2 байтов, полученных на шаге 2, с раундовой постоянной Rcon[i] = (RC[i],00), несекретной и уникальной для каждого раундового ключа Ki. Правый байт этой константы – нули, а ненулевой левый байт меняется по известному закону рекурсии: RC[1] = 1,
RC[i] = 2*RC[i-1], где i=1, 2, и т.д.
Рисунок 10. Алгоритм расширения ключа.
Выводы
Таким образом, упрощенные версии охватывают и показывают все преобразования и функции оригинальных алгоритмов, и рассчитаны для ознакомления с алгоритмами более детально. Предложенные алгоритмы могут применяться в образовательных целях для изучения и представления работы блочных симметричных алгоритмов.
Список литературы
- Васильева, И. Н. Криптографические методы защиты информации: учебник и практикум для вузов / И. Н. Васильева. – Москва: Издательство Юрайт, 2023. – 349 с. – (Высшее образование). – ISBN 978-5-534-02883-6.
- Лось, А. Б. Криптографические методы защиты информации для изучающих компьютерную безопасность : учебник для вузов / А. Б. Лось, А. Ю. Нестеренко, М. И. Рожков. – 2-е изд., испр. – Москва : Издательство Юрайт, 2023. – 473 с. – (Высшее образование). – ISBN 978-5-534-12474-3.
- Токарева Н. Н. Симметричная криптография. Краткий курс: учебное пособие / Новосиб. гос. ун-т. Новосибирск, 2012. 234 с.