УСТРОЙСТВО РАУНДА ШИФРОВАНИЯ ДАННЫХ ПО АЛГОРИТМУ "МАГМА" И СТАНДАРТУ ГОСТ Р 34.12-2015

Заявленная полезная модель относится к шифровальным устройствам на основе стандарта шифрования данных, а именно к устройствам раунда шифрования данных по алгоритму «Магма» и стандарту ГОСТ P 34.12-2015, и может применяться в системах шифрования данных.
В 2015 году в России вышел новый стандарт блочного шифрования ГОСТ P 34.12-2015. В данном стандарте введены два алгоритма блочного шифрования «Кузнечик» и «Магма». Второй в значительной степени повторяет введенный еще в 1990 году стандарт ГОСТ 28147-89. По сравнению с алгоритмом «Кузнечик», алгоритм «Магма» обладает гораздо большей компактностью и простотой при аппаратной реализации и, соответственно, в некоторых устройствах, при которых требуется компактность, алгоритм «Магма» более предпочтителен. Однако главным его недостатком по сравнению с современными алгоритмами шифрования является низкая производительность главным образом из-за трудоемких, с точки зрения аппаратной реализации, операций преобразования данных.
Шифрацию/дешифрацию данных в алгоритме «Магма» осуществляют за 32 однотипных цикла (раундов), в ходе каждого из которых выполняют определенную последовательность действий, определяемых стандартом. Последовательность действий согласно стандарту определяется функцией преобразования:
где Vs - множество всех двоичных строк длины s, где s - целое неотрицательное число; нумерацию подстрок и компонент строки осуществляют справа налево начиная с нуля;
а
Вычисление значения функции g выполняют в три этапа. На первом этапе ее 32-битовый аргумент  складывают с подключом k по модулю 232. Далее на втором этапе данные при поступлении на блок подстановки t разбивают на восемь последовательных 4-битовых вектора, каждый из которых преобразуют в 4-битовый вектор соответствующим узлом замены π.
a
а
а
а
а
а
а
а
t()=t(7||…||0)=π7(7)||…||π0(0), где =7||…||0 ∈ V32, ai ∈ V4, i=0, 1, …, 7;
На третьем этапе с помощью регистра сдвига производят циклический сдвиг влево на 11 позиций.
Для аппаратной реализации шифрования по ГОСТ P 34.12-2015 и ГОСТ 28147-89 используют устройство шифрования данных (Фиг. 1), содержащее устройство раунда, регистры для хранения различной информации, а также устройство управления, которое управляет всеми процессами устройства шифрования данных. Данные, такие как ключ и блок данных для шифрования с указанием адресов для размещения, подают в устройство шифрования по шине данных, при этом устройство управления размещает входные данные по соответствующим им регистрам. Блоки подстановки фиксированы и реализованы на регистрах в виде таблицы замен. Далее осуществляют пересылку служебной информации, такой как режим шифрации и команда старт, которая свидетельствует о том, что все данные загружены и можно начинать шифровать блок входных данных.
Наиболее близким к заявленной полезной модели является устройство раунда шифрования данных, описанное в патенте RU 2498416, в котором 32-битный фрагмент данных из блока данных (AREG) последовательно проходит стадию суммирования в блоке суммирования (SUM), подстановки в блоке подстановки (SUBST) и сдвига в блоке сдвига (SHIFT) и снова возвращается в блок данных (AREG) (Фиг. 2). Данное устройство раунда выбрано в качестве прототипа заявленной полезной модели.
Недостатком устройства раунда прототипа является малая величина тактовой частоты, определяемая суммой задержек данных в каждом блоке преобразования.
Техническим результатом заявленной полезной модели является создание устройства раунда шифрования данных по алгоритму «Магма» и стандарту ГОСТ P 34.12-2015 с увеличенной тактовой частотой без увеличения длительности раунда в тактах (длительность раунда в тактах исходная и равна единице), за счет использования трех блоков суммирования, мультиплексора и трех блоков подстановки, которые позволяют увеличить тактовую частоту до величины F=1/((Т1/2+Т4)+Т2+Т3), где T1, Т2 и Т3 - времена работы блоков подстановки, а Т4 - время задержки мультиплексора.
Поставленный технический результат достигнут путем создания устройства раунда шифрования данных по алгоритму «Магма» стандарта ГОСТ P 34.12-2015, содержащего три блока суммирования, три блока подстановки, мультиплексор и блок сдвига, причем входы блоков суммирования соединены с внешним блоком данных, а выходы соединены со входами блоков подстановки, входы мультиплексора соединены с выходом первого сумматора, с выходом второго блока подстановки и с выходом третьего блока подстановки, входы блока сдвига соединены с выходом первого блока подстановки и с выходом мультиплексора, а выход блока сдвига соединен с внешним блоком данных.
Для лучшего понимания заявленной полезной модели далее приводится ее подробное описание с соответствующими графическими материалами.
Фиг. 1. Схема устройства шифрования данных, выполненная согласно полезной модели и прототипу.
Фиг. 2. Схема устройства раунда шифрования данных, выполненная согласно прототипу.
Фиг. 3. Схема устройства раунда шифрования данных, выполненная согласно полезной модели.
Элементы:
1 - первый блок суммирования;
2 - второй блок суммирования;
3 - третий блок суммирования;
4 - первый блок подстановки;
5 - второй блок подстановки;
6 - третий блок подстановки;
7 - мультиплексор;
8 - блок сдвига.
32
Рассмотрим более подробно функционирование заявленного устройства раунда с задержкой, сбалансированной за счет расщепления операции сложения (Фиг. 3). Сумматор по модулю 2 SUM разбит на две части, в которых производят суммирование младших разрядов слагаемых (первый сумматор 1), и старшую часть, в которой производят суммирование старших разрядов слагаемых и переноса из младшей части. Поскольку заранее неизвестно, будет ли перенос равен 0 или 1, то старшая часть выполнена в виде двух блоков (второй сумматор 2 и третий сумматор 3), один из которых выполняет суммирование старших разрядов слагаемых и 0 (переноса нет), а другой - суммирование старших разрядов слагаемых и 1 (перенос есть). Блок подстановки также разбит на две части, причем старшая часть дублируется для каждого варианта суммы (первый, второй и третий блоки подстановки 4, 5 и 6). Это возможно сделать, так как блок подстановки оперирует нибблами (4 бита) независимо друг от друга.
Первый сумматор 1 размерностью (0…n) суммирует младшую часть данных и ключа, а второй и третий сумматоры 2 и 3 суммируют старшие части данных и ключа. Перенос из младшего первого сумматора 1 управляет работой мультиплексора 7 MX, который выбирает путь прохождения данных через второй и третий сумматоры 2 и 3.
Поскольку задержка данных в блоках подстановки 4, 5 и 6 SUBST одинакова и не зависит от размерности данных (подстановка работает с четырьмя битами независимо друг от друга) и задержки данных через первый блок подстановки 4 SUBST1 и второй блок подстановки 5 SUBST2 или третий блок подстановки 6 SUBST3 (в зависимости от пути прохождения данных) приблизительно равны, то, варьируя параметр n (он может меняться от 15 до 27 с шагом 4 (размер ниббла в битах), можно добиться компенсации задержки в мультиплексоре 7. В результате задержки в прохождении данных через первый сумматор 1 и второй и третий сумматоры 2 и 3 (в зависимости от выбора по состоянию переноса из первого сумматора 1) приблизительно равны.
Пусть время работы каждого блока соответствует T1, Т2 и Т3. Таким образом, тактовая частота всего заявленного устройства раунда равна F=1/(Т1+Т2+Т3). Введение расщепления операции суммирования позволяет увеличить тактовую частоту до величины F=1/((Т1/2+Т4)+Т2+Т3), где Т4 - задержка мультиплексора 7. Поскольку задержка в мультиплексоре 7 относительно небольшая по сравнению с задержкой в сумматорах 1-3, можно считать, что задержка будет приблизительно равна F=1/((Т1/2)+Т2+Т3).
По сравнению с решением, предложенным в прототипе RU 2498416, схема заявленного устройства раунда позволяет увеличить тактовую частоту без увеличения длительности раунда в тактах (то есть она будет исходной, равной единице).
Хотя описанный выше вариант выполнения полезной модели был изложен с целью иллюстрации заявленной полезной модели, специалистам ясно, что возможны разные модификации, добавления и замены, не выходящие из объема и смысла заявленной полезной модели, раскрытой в прилагаемой формуле полезной модели.