АВТОМАТИЗИРОВАННАЯ СИСТЕМА КРИПТОГРАФИЧЕСКИХ ПРЕОБРАЗОВАНИЙ ПО ГОСТ Р 34. 12-2015 - Студенческий научный форум

X Международная студенческая научная конференция Студенческий научный форум - 2018

АВТОМАТИЗИРОВАННАЯ СИСТЕМА КРИПТОГРАФИЧЕСКИХ ПРЕОБРАЗОВАНИЙ ПО ГОСТ Р 34. 12-2015

Шишкин А.О. 1, Воронова Л.И. 1
1Московский Технический Университет Связи и Информатики
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
Настоящая статья написана на основании результатов научно-исследовательской работы «Анализ существующих алгоритмов криптографических преобразований и методов их реализации, способов передачи данных по проводному каналу связи и протоколов обмена данными» [1], выполненной на факультете «Информационные технологии» кафедры «Интеллектуальные системы в управлении и автоматизации» МТУСИ в рамках работы над магистерской диссертацией [2].

В статье исследуется возможность применения для существующих стандартов криптографических преобразований метода конечного автомата на основе «жесткой» логики, который не использует ресурсы ЦП и позволяет увеличить скорость обработки входных данных. Автомат на «жесткой» логике выполнен с применением логических элементов, таких как: конъюнкторов (элементы «И»), дизъюнкторов (элементы «ИЛИ»), инверторов (элементы «НЕ»), их комбинаций (элементы «И-НЕ», «ИЛИ-НЕ», «И-ИЛИ-НЕ» и т.п.), а также включает в себя и более сложные элементы – дешифраторы (DC), мультиплексоры (MS), элементы памяти (триггера).

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

Основные понятия

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

Развитые страны разрабатывают свои стандарты алгоритмов криптографических преобразований, обязывающие их применение для всех заинтересованных организаций. В России такими стандартами являются ГОСТ 28147-89 (Магма) и ГОСТ Р 34.12-2015 [3] (Блочный шифр «Кузнечик»). В США применяется стандарт AES (Advanced Encryption Standard).

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

Функциональная схема автоматизированной системы криптографических преобразований

Функциональная схема автоматизированной системы криптографических преобразований представлена на рисунке 1.

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

Где:

DD1 – микросхема ПЛИС, выполняет криптографические преобразования данных по ГОСТ Р 34.12-2015;

DD2 – микросхема ППЗУ, необходима для хранения значений поля Галуа (216), таблицы замен, итерационных констант для криптографических преобразований и итерационных констант для выработки раундовых ключей.

DD3 – микросхема USB 2.0 контроллер, служит для передачи ключа, хранящегося на FLash-носителе по USB интерфейсу в память ПЛИС;

DD4 – микросхема USB 2.0 контроллер, служит для передачи входных данных (открытые данные) по USB интерфейсу из ПК1 в модуль;

DD5,DD6 – микросхемы стабилизаторы напряжения, необходимы для подачи питания на ПЛИС, ППЗУ;

DD7 – микросхема приемопередатчика RS-485.

Описание работы автоматизированной системы криптографических преобразований

Для защиты от несанкционированного доступа (НСД) ключ загружается отдельно от данных, через разъем X1 на DD3 [4]. Flash-носитель с ключом должен быть недоступен для рядовых пользователей и должен храниться только у персонала, обладающего соответствующим допуском.

После подключения модуля к ПК 1 через разъем X2, открытые входные данные поступают на DD4 (USB 2.0) по цепи «D+». Выходные данные c DD4, по цепи «Din_data» поступают на вход в DD1 (ПЛИС) [5]. По цепи «DSin_data» в ПЛИС передается строб данных (сигнал разрешения на запись).

Ключ поступает на DD3 (USB 2.0) по цепи «D+». Выходные данные из контроллера DD3 по цепи «Din_key», поступают в ПЛИС. По цепи «DSin_key» в ПЛИС передается строб данных (сигнал разрешения на запись).

После выполнения X-преобразования согласно ГОСТ Р 34.12-2015, по команде «read» поступает запрос на чтения информации, хранящейся в DD2 (ППЗУ) [6]. По шине «addr» передается адрес ячейки из которой нужно считать данные. Выходные данные из ППЗУ в ПЛИС передаются по шине «data_ram».

После 10-го раунда преобразований, зашифрованные данные передаются в канал передачи данных по интерфейсу RS-485 DD7 [7].

Питание модуля осуществляется постоянным напряжением +5В, поступающего от стабилизированного источника питания на разъём X3. Для питания микросхем применяются преобразователи напряжения DD5 и DD6 серии LM3607. [8]

Передача данных между пользователями

Схема передачи данных между пользователями показана на рисунке 2.

Рис.2. Схема передачи данных между пользователями

Где:

Модуль 1 – модуль шифрования и дешифрования данных от ПК 1.

Модуль 2 – модуль шифрования и дешифрования данных от ПК 2.

Открытые данные от ПК1 передаются в модуль 1. После криптографических преобразований в соответствии с ГОСТ Р 34.12-2015, зашифрованные данные передаются по интерфейсу RS-485 в канал передачи данных. На другой стороне канала данные поступают в модуль 2 и после дешифрования передается в ПК 2.

Основные этапы криптографических преобразований по

ГОСТ Р 34.12-2015

В ГОСТ Р 34.12-2015 приведено описание двух базовых блочных шифров с длинами блоков n =128 бит и n = 64 бит и длинами ключей k = 128 бит.

В модуле шифрования и дешифрования данных используется входной блок n = 128 бит.

Основные этапы реализации алгоритма шифрования:

  1. X преобразование: побитовое сложение по модулю 2 преобразуемых данных и очередного раундового ключа.

  2. S преобразование: 128-битный вектор после сложения по модулю 2 побайтно преобразовывается в десятичный вид, тем самым определяется позиция каждого байта в таблице подстановок (Sbox16).

  3. L преобразование: Результат S-преобразования побайтно считывается, затем каждый считанный байт умножается на 256 (это необходимо для вычисления позиции числа в таблице table со всеми возможными результатами умножения поля Галуа). Из позиции считывается число, к нему прибавляется коэффициент из таблицы констант (Lbox), в зависимости от номера итерации, так происходит со всеми байтами. Байты складываются между собой, а полученное число записывается на место считанного байта. Регистр сдвигается в сторону младшего разряда и перезаписывается 16 раз.

  4. Алгоритм выработки итерационных ключей.

Алгоритм дешифрования выполняется в последовательности, обратной алгоритму шифрования.

Результаты моделирования работы алгоритма криптографических преобразований

Для моделирования работы автоматизированной системы шифрования данных разработаны тестовые входные воздействия в соответствии с эталонным примером, приведенным в ГОСТ Р 34.12-2015.

Входные данные: 'H1122334455667700ffeeddccbbaa9988.

Ключ:

'h8899aabbccddeeff0011223344556677fedcba98765432100123456789abcdef

Моделирование работы криптографических преобразований выполнено на языке высокого уровня Verilog, в соответствии с ГОСТ Р 34.12-2015 и осуществлено в системе автоматического проектирования (САПР) Aldec Active-HDL.[9][10]

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

На рисунке 3 показана последовательная запись входных данных из USB контроллера в модуль шифрования.

Рис.3. Последовательная запись входных данных в модуль шифрования

Где:

сlk – входная частота;

reset – сигнал сброса;

load_data – сигнал загрузки данных из микроконтроллера а модуль шифрования;

data – входные данные;

data_rg – внутренний регистр хранения данных.

На рисунке 4 показан первый раунд шифрования по ГОСТ Р 34.12-2015.

Рис.4. Результат первого раунда шифрования по ГОСТ Р 34.12 – 2015

Где:

сlk – входная частота;

reset – сигнал сброса;

load_data – сигнал загрузки данных из микроконтроллера а модуль шифрования;

data – входные данные;

data_rg – внутренний регистр хранения данных;

new_key – сигнал загрузки итерационного ключа;

key – итерационный ключ;

key_rg – регистр хранения итерационного ключа;

X_rg – регистр хранения результата X преобразования;

data_count – счетчик принятых из микроконтроллера бит;

mem_count – счетчик для обращения к памяти;

addr – адрес регистра в памяти;

read – команда на чтение из памяти;

X_addr – адрес ячейки (X преобразование);

data_mem – данные из памяти;

S_rg – массив хранения результата S-преобразования;

R_rg – результат побайтного умножения S_rg на 256;

L_l_rg – данные из памяти;

L_rg – регистр хранения результата XOR операции данных из L_l_rg;

load_rg – получено новое L_rg;

load_count – обновленных L_rg;

new_key_counter – счетчик раундов шифрования;

done – флаг ожидания следующего итерационного ключа.

Полученный результат первого раунда шифрования совпадает с эталонным примером первого раунда шифрования, приведенного в качестве примера в ГОСТ Р 34.12 – 2015.

На рисунке 5 показан результат шифрования входного 128-го слова по ГОСТ Р 34.12 – 2015.

Рис.5. Результат шифрования входного 128-го слова

Где:

data_out – регистр хранения полученного результата шифрования.

Полученный результат шифрования совпадает с эталонным примером, приведенным в ГОСТ Р 34.12 – 2015.

Выводы

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

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

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

Разработка модуля шифрования данных произведена на языке описания работы аппаратуры – Verilog.

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

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

  1. Шишкин А.О. Отчет о производственной практике (НИР). Анализ существующих алгоритмов криптографических преобразований и методов их реализации, способов передачи данных по проводному каналу связи и протоколов обмена данными. МТУСИ, Москва, 2017. 34 с.

  2. В.И.Воронов, Л.И.Воронова «О повышении результативности магистерских программ в условиях инновационной экономики//в кн. Инновационные подходы в науке и образования: ТЕОРИЯ, МЕТОДОЛОГИЯ, ПРАКТИКА»: Монография/ Пенза: МЦНС "Наука и просвещение". - 2017. – с. - с.35-44.

ISBN 978-5-9909511-5-0.

  1. Национальный стандарт Российской Федерации. Информационная технология. Криптографическая защита информации. Блочные шифры. ГОСТ Р 34.12─ 2015. Москва: Стандартинформ 2015.

  2. USB контроллер PL2303TA. Фирма Prolific. Техническое описание на английском языке (Datasheets).

  3. ПЛИС Virtex 5 X5VFX70T. Фирма Xilinx. Техническое описание на английском языке (Datasheets).

  4. Постоянное запоминающее устройство AT28LV010-20TU. Фирма

Atmel. Техническое описание на английском языке (Datasheets).

  1. Маломощный приемопередатчик интерфейса RS-485 ADM1485ANZ. Техническое описание на английском языке (Datasheets).

  2. Понижающие преобразователи напряжения серии LM3607. Техническое описание на английском языке (Datasheets).

  3. Inc. Aldec. Active-HDL 6.3 Student Edition. Prentice Hall, 2005. 178 c. Описание на английском языке 178 c.

  4. К. Максфилд. Проектирование на ПЛИС. Издательство: М : Додэка-21, 2007. 408 с.

Просмотров работы: 276