Сравнение быстродействия алгоритмов, входящих в состав ГОСТ Р 34.12–2015 | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 22 мая, печатный экземпляр отправим 26 мая.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №16 (358) апрель 2021 г.

Дата публикации: 13.04.2021

Статья просмотрена: 10 раз

Библиографическое описание:

Чумакова, М. С. Сравнение быстродействия алгоритмов, входящих в состав ГОСТ Р 34.12–2015 / М. С. Чумакова. — Текст : непосредственный // Молодой ученый. — 2021. — № 16 (358). — С. 21-22. — URL: https://moluch.ru/archive/358/80031/ (дата обращения: 09.05.2021).



В данной статье рассматриваются два криптоалгоритма, входящих в состав ГОСТ Р 34.12–2015 и сравнивается их быстродействие.

Ключевые слова: ГОСТ Р 34.12–2015, «Кузнечик», «Магма», криптоалгоритмы.

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

Большинство российских компаний, связанных с защитой информации, достаточно активно используют ГОСТ Р 34.12–2015. Данный ГОСТ включает в себя два блочный криптоалгоритма, которые получили названия «Кузнечик» и «Магма».

Краткое описание алгоритма «Магма». Данный алгоритм является копией блочного алгоритма шифрования и ГОСТ 28147–89 с заданной таблицей перестановок. Длин шифруемых блоков равна 64 бита, длина ключа шифрования — 256 бит.

В «Магме» каждый блок информации разделяется на две равные по длине (32 бита) части — правую и левую. Далее выполняется тридцать две итерации с использованием итерационных ключей, получаемых из исходного ключа шифрования. Во время каждой итерации с первой по тридцать первую с правой и левой половиной зашифровываемого блока производится одно преобразование, основанное на сети Фейстеля порядок действий следующий:

— правая часть складывается по модулю 32 с текущим итерационным ключом, затем полученное 32-битное число делится на восемь 4-битных и каждое из них с использованием таблицы перестановки преобразуется в другое 4-битное число;

— полученное число циклически сдвигается влево на одиннадцать разрядов;

— результат складывается по модулю два с левой половиной блока, получившееся 32-битное число записывается в правую половину блока, а старое содержимое — в левую половину.

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

Итерационные ключи получаются из исходного 256-битного ключа. Исходный ключ делится на восемь 32-битных подключей, и далее они используются в следующем порядке: три раза с первого по восьмой и один раз с восьмого по первый.

Немного об алгоритме «Кузнечик». Основу алгоритма составляет подстановочно-перестановочная сеть (SP — Substitution-Permutation network). Шифр на такой основе получает на вход блок данных (для алгоритма «Кузнечик» 128 бит) и ключ, с которыми совершает несколько чередующихся раундов, состоящих из нескольких стадий. В «Кузнечике» каждый раунд включает в себя:

— линейное преобразование;

— нелинейное преобразование;

— операцию наложения итерационного ключа.

Всего таких раундов десять, первых девять раундов проходят полностью, а последнем неполном раунде выполняется только наложение последнего итерационного ключа.

Итерационные (раундовые) ключи получаются путем преобразования мастер-ключа длиной 256 бит, полученного на входе. Процесс получения итерационных ключей начинается с разбиения мастер-ключа пополам, так получается первая пара раундовых ключей. Для генерации каждой последующей пары раундовых ключей применяется восемь итераций сети Фейстеля, в каждой итерации используется константа, которая вычисляется путем применения линейного преобразования алгоритма к значению номера итерации.

Тесты на скорость шифрования криптоалгоритмов проводились на программно-аппаратном комплексе межсетевого экранирования и VPN «Застава-150».

Первое тестирование производилось с помощью утилиты plg_test (входит в состав программного пакета, предустановленного на ПАКе «Застава-150»). Данная утилита запускает заданный алгоритм кодирования с определенным числом итераций и замеряет время необходимое для шифрования, а также вычисляет среднюю скорость шифрования в Мбит/с и итераций/с. За одну итерацию кодируется 1 Кбайт (1024 байт) информации. Данные полученные в результате тестирования (время, потраченное на шифрование определенного объема информации в зависимости от криптоалгоритма) представлены в таблице 1.

Таблица 1

Сравнительная характеристика скорости шифрования

«Кузнечик»

«Магма»

100 Кбайт

0.007787 с

0.005715 с

1000 Кбайт

0.074484 с

0.055194 с

10 000 Кбайт

0.740529 с

0.549552 с

50 000 Кбайт

3.708025 с

2.748987 с

100 000 Кбайт

7.417684 с

5.498026 с

200 000 Кбайт

14.820075 с

10.994278 с

1 000 000 итераций

79.697352 с

55.213849 с

Так же в результате тестирования получили следующие средние показатели скорости шифрования:

— для алгоритма «Магма»: 141 Мбит/с (18188 итераций/с);

— для алгоритма «Кузнечик»: 98 Мбит/с (13403 итераций/с).

Как видно из данных, приведенных в таблице 1, и средних показателей, приведенных выше, скорость шифрования информации алгоритмом «Магма» примерно в 1,4 раза быстрее, чем алгоритмом «Кузнечик».

Второе тестирование производилось с помощью утилиты iperf (распространяется бесплатно). Iperf является консольной клиент-серверной программой — генератором TCP, UDP и SCTP трафика для тестирования пропускной способности сети. Переданный объем информации в результате тестирования в зависимости от времени передачи и алгоритма шифрования (или его отсутствия) представлен в таблице 2.

Таблица 2

Сравнительная характеристика скорости передачи информации

Без шифрования

«Кузнечик»

«Магма»

60 секунд

6,57 Гбайт

0,63 Гбайт

0,9 Гбайт

120 секунд

12,9 Гбайт

1,38 Гбайт

1,8 Гбайт

180 секунд

19,7 Гбайт

2,08 Гбайт

2,71 Гбайт

240 секунд

26,3 Гбайт

2,7 Гбайт

3,61 Гбайт

В результате тестирования получили следующие средние показатели скорости шифрования:

— без использования криптоалгоритма: 940 Мбит/с;

— для криптоалгоритма «Магма»: 129 Мбит/с;

— для криптоалгоритма «Кузнечик»: 93 Мбит/с.

Как видно из результатов, приведенных выше, скорость передачи информации при использовании шифрования алгоритмом «Магма» примерно в 1,4 раза быстрее, чем алгоритмом «Кузнечик». Скорость передачи незащищенной информации выше в 7,3 и 10 раз, чем при передаче информации, зашифрованной криптоалгоритмами «Магма» и «Кузнечик» соответственно.

Можно сделать следующие выводы: алгоритм «Магма» реализуется проще, и скорость шифрования выше примерно в 1,4 раза, чем в алгоритме «Кузнечик». Но при этом алгоритм «Кузнечик» более современный и теоретически более стойкий, чем алгоритм «Магма».

Литература:

  1. ГОСТ Р 34.12–2015. Информационная технология. Криптографическая защита информации: Блочные шифры.
  2. Русская «Магма». Как работает отечественный алгоритм блочного шифрования. — Текст: электронный // xakep.ru: [сайт]. — URL: https://xakep.ru/2018/05/10/working-with-magma/ (дата обращения: 12.04.2021).
  3. Работаем с алгоритмом блочного шифрования «Кузнечик» из ГОСТ 34.12–2015. — Текст: электронный // xakep.ru: [сайт]. — URL: https://xakep.ru/2017/02/02/working-with-grasshopper/ (дата обращения: 12.04.2021).
Основные термины (генерируются автоматически): алгоритм, Гбайт, результат тестирования, ГОСТ Р, итерация, SCTP, TCP, UDP, левая половина, правая половина.


Ключевые слова

криптоалгоритмы, ГОСТ Р 34.12–2015, «Кузнечик», «Магма»
Задать вопрос