Скачиваний:
0
Добавлен:
14.07.2026
Размер:
1.95 Mб
Скачать

2. Стандарт шифрования aes.

Схема, как примерно работает

AES – симметричный блочный алгоритм, преобразует 128/192/256-битные блоки с помощью 128/192/256-битного ключа за 10/12/14 раундов (кол-во раундов зависит от длины блока и длины ключа).

1) На вход подается блок информации, который преобразуется в матрицу состояний (каждый элемент матрицы это байт), и начальный ключ. Затем матрица XORится с начальным ключом функцией AddRoundKey(). В каждом раунде происходит преобразование с помощью функций SubBytes(), ShiftRows(), MixColumns() и AddRoundKey().

SubBytes() – аффинное преобразование, т.е. замена байтов матрицы по таблице S-box.

ShiftRows() – сдвиг элементов матрицы влево в рамках строки, сдвиг зависит от размера блока информации и порядкового номера строки.

MixColumns() – перемножение столбцов матрицы состояний на фиксированную матрицу.

AddRoundKey() – XOR элементов матрицы с раундовым ключом.

На последнем раунде не используется функция MixColumns().

2) Для генерации раундовых ключей w используется функция KeyExpansion(). Исходный ключ разбивается на блоки по 4 байта, Почти все ключи получается после XOR предыдущего w[i-1] и блока, стоящего на n позиций раньше w[i-n] (n = количество полученных блоков из исходного ключа), каждый первый блок каждого нового раундового ключа подвергается преобразованию с помощью функций RotByte(), SubBytes(результат предыдущей функции) и RC().

RotBytes() – байты блока сдвигаются циклически влево на 1 байт.

RC() – XOR результата SubBytes() с константой раунда.

3. Гост р 34.12-2015. Шифр «Магма».

Схема, как примерно работает

Магма (ГОСТ 34.12.2018) – симметричный блочный алгоритм, работает по принципу сети Фейстеля. На вход подается 64-битный блок информации и 256-битный начальный ключ, который затем разбивается на восемь 32-битных раундовых ключей. Блок делится пополам, правая половина складывается с раундовым ключом по модулю 232, проходит через замену по таблице S-box и циклически сдвигается. Полученное значение XORится с левым блоком, после чего становится новым правым блоком. Предыдущий правый блок становится левым блоком в новом раунде.

Порядок использования ключей раундов распределен по 32 раундам, с 1 по 24 раунд ключи используются в прямом порядке, с 25 по 32 раунд – в обратном.

4. Гост р 34.12-2015. Шифр «Кузнечик».

Схема, как примерно работает

1) Кузнечик (ГОСТ 34.12.2018) – симметричный блочный алгоритм, на вход подается 128-битный блок информации и 256-битный начальный ключ. В каждом раунде блок XORится с раундовым ключом, проходит через замену по таблице S-box и линейно преобразуется с помощью умножения вектора состояний (типо как в AES штука) на константную матрицу. Всего в алгоритме используется 10 раундов.

2) Раундовые ключи генерируются на основе начального ключа. Начальный ключ разбивается пополам, первый раундовый ключ – это левая половина изначального ключа, второй раундовый ключ – правая половина начального ключа. Остальные восемь ключей получаются с помощью сети Фейстеля: правая половина преобразуется с помощью функции F и константы, а затем XORится с левой частью. Полученное значение становится новой правой половиной, а предыдущая правая – левой.

3) Функция F преобразует правый блок с помощью XOR с раундовой константой, замены по таблице S-box и нелинейного преобразования (по сути, умножение в поле Галуа).