Материал: Разработка аппаратно-программного комплекса для безопасной передачи сообщения, с использованием алгоритмов шифрования и электронно-цифровой подписи

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Для этой задачи было взято готовое IP ядро фирмы AlteraTripleSpeedEthernetMegaCore. Ядро предоставляется без лицензии на ограниченный промежуток времени. Это значит, что по прошествии часа реального времени ядро отключается и ПЛИС необходимо перепрограммировать. Ядро поддерживает стандарт IEEE 802.3 10/100/1000 Мбит в секунду. Структура MAC уровня ядра показана на рис. 35.

Рис. 35. Структура MAC[27].

Конфигурация ядра MAC

Для того, чтобы ядро заработало корректно, необходимо сконфигурировать его должным образом. Для конфигурации регистров ядра используется шина AvalonMemoryMapped. AvalonMM- простая шинная архитектура, предназначенная для объединения процессоров на кристаллеи внешних устройств этих процессоров в system-on-a-programmable chip (SOPC). Avalon-интерфейс, который определяет подключение порта шины между мастером и подчиненными компонентами, определяет синхронизацию, которой эти компоненты связываются. По адресам 0x00-0x17 находятся базовые регистры, без конфигурации которых, ядро не будет работать корректно. Стоит обратить внимание на адреса 0x03 и 0x04. В них находится MAC-адрес. Это значит, что то значение, которое будет присвоено этим регистрам по заданным адресам, будет являться MAC-адресом ПЛИС. Так же одним из основных регистров является Command_ConfigRegister. Он находится в памяти с адресом 0x02 и, в основном, содержит в себе настройки MAC, такие как: _ENA (Разрешение приема кадров)._GEN (Пауза генерации кадров)._SPEED (Контроль скорости, логическая единица при режиме 1Гбит в секунду)._EN (Разрешение всех пакетов без фильтрации MAC адреса)._FWD (Выбор обсчета контрольной суммы кадров, логический ноль для обсчета КС модулем MAC, логическая единица для обсчета КС пользовательским модулем).

Архитектура стандарта GigabitEthernet

На рис. 36. показана модель OSI и структура GigabitEthernet. В GigabitEthernet не существует универсального кодирования сигналов, например 8б/10б кодирование используется в стандартах 1000Base-LX/SX/CX, а для стандарта 1000Base-T используется кодирование TX/T2. Функция кодирования выполняет подуровень PCS.

Рис. 36. Стандарт GigabitEthernet в модели OSI[1].

В данной работе используется стандарт 1000Base-X. Для реализации 1000BASE-X необходимо реализовать PCS и PMA. Реализация в ядре MAC показана на рис. 37.

Рис. 37. Реализация PMA и PCS[27].

Проведем анализ рис. 36 и 37, показанные выше. Прием кадра осуществляется по дифференциальной паре с трансивера. Кадр идет последовательно с частотой 1250Мгц. Далее он поступает в десериализатор на PMA модуль. Этот модуль преобразует последовательные данные в параллельные. Далее эти данные уходят в PCS модуль. Здесь происходит 8-10 битное кодирование и синхронизация. Далее эти данные конвертируются в параллельный интерфейс SGMII (по заданным настройкам), выполняется подсчет контрольной суммы и передается в буфер памяти FIFO, откуда по шине AvalonST пользовательский модуль получает кадр. AvalonST - это шина потокового интерфейса, отличие от AvalonMM в том, что в AvalonMM имеется адресация, а в AvalonST данные непрерывно проходят пачками. При передаче информации с пользовательского модуля происходит такой же порядок действий, только наоборот.

Входные и выходные сигналы модуля MAC показаны на рис. 38.

Рис. 38. Сигналы MAC модуля.

Разработанные модули для ПЛИС

Модуль приемника UART на ПЛИС

Для приема сообщений с ПК(1) и для дальнейшего формирования ЭЦП был разработан модуль приемника и передатчика UART. Формат стандартен: стартовый бит, 8 бит информационных данных, стоповый бит, без контрольного бита четности. Листинг приемника FT-232 представлен на рис. 39.

Рис. 39. Листинг приемника UART.

Так как ячейка ММ693 была изготовлена позже модуля формирования ЭЦП, для отладки использовался модуль передатчика UART. Он проще в отладке, чем модуль Ethernet, а по сложности модуль передатчика Ethernet равноценен имплементации алгоритма RSA. Листинг передатчика FT-232 показан на рис. 40.

Рис. 40. Листинг передатчика

Входы и выходы:

CLKS_PER_BIT._Clock.

I_TX_DV - Входной сигнал о начале передачи._TX_Byte - Входной 8-разрядный регистр данных._TX_Active - Выходной сигнал, означающий активность передачи._TX_Serial - Выходной последовательный сигнал UART._TX_Done - Выходной сигнал, означающий полную передачу пакета._Front_Done -Выходной передний фронт сигнала O_TX_DONE.

Модули формирования электронно-цифровой подписи

Сообщение принимается в виде 32 посылок по 8 бит. Сделано это из-за специфики алгоритма RSA. Модуль и его секретный ключ хранится в ПЛИС изначально. Размер ключа составляет 256 бит. Для формирования ЭЦП было разработано 2 модуля: модуль умножения по модулю и модуль возведения в степень по модулю. Модули являются параметризируемыми, это значит, что размеры ключа могут быть изменены перед синтезом проекта и «зашиты» в ПЛИС. Листинг модуля умножения по модулю показан на рис. 41 и 42.

Рис. 41. Модуль умножения по модулю.

Рис. 42. Основной алгоритм на языке Verilog.

По сигналу приема полного сообщения модуль формирования ЭЦП начинает работу. Сообщение передается в нужный регистр модуля и происходит процесс формирования ЭЦП. Процесс длится 8 мс и на выходе сформированная ЭЦП и исходное сообщение перенаправляются в память по кускам в 32 бита. Листинг модуля показан на рис. 43.

Рис. 43. Листинг модуля формирования ЭЦП.

Модуль передатчика по Ethernet.

После формирования ЭЦП, по сигналу готовности модуля из памяти в модуль передатчика по Ethernet поступает части сообщения и ЭЦП по 32 бита. Первым идет сообщение, затем ЭЦП. По сигналу готовности модуль передатчика формирует сигнал ff_tx_sop и ff_tx_wren. Сигнал ff_tx_sop показывает MAC уровню о том, что пошла первая 32-разрядная пачка и переходит в активное состояние. Сигнал ff_tx_wren активен на всем промежутке передачи данных. После передачи всех 512 бит информации из памяти становится активен сигнал ff_tx_eop. Он становится активным, когда из памяти приходит последняя посылка. Временная диаграмма цикла передачи показана на рис. 44.

Рис. 44. Временная диаграмма передачи по Ethernet.

Заключение

В ходе выполнения дипломной работы были изучены основы криптографии, а именно принципы работы симметричного и асимметричного шифрования, подробно был рассмотрен алгоритм шифрования AES. Также были рассмотрены протоколы распределения ключей и по результатам анализа существующих решений был изучен и реализован протокол Диффи-Хеллмана. Помимо этого, были рассмотрены методы передачи данных в локальной сетиинтернет. Результатом данной работы являются выполненные модули для шифрования и расшифровки, передачи и приема сообщения, а также модуль генерации общего ключа. В дальнейшем для развития и улучшения полученных результатов можно реализовать протокол передачи TCP или STS без использования встроенных библиотек C#, также возможно выбрать более сложный протокол распределения ключей, обеспечивающий более высокую защиту, а для уменьшения количества итераций функций шифрования и расшифровки алгоритм AES можно заменить алгоритмом ГОСТ Р 34.12-2015 [26].

В ходе выполнения данной дипломной работы были изучены преимущества использования криптографических алгоритмов на ПЛИС. Поскольку обычно компании специализирующиеся на криптографической защите информации используют свои алгоритмы защиты (кроме ГОСТ 34.10-2012[24]) использование алгоритма RSA в качестве надежного алгоритма формирования электронно-цифровой подписи, например в структурах государственной оборонной промышленности или космических технологий, нецелесообразно, нотем не менее, для показательного примера преимущества использования ПЛИС в криптографии результат очевиден. Так же с использованием технологий фирмы Altera был реализован физический и канальный уровень модели OSI на ПЛИС. В перспективе предполагается разработка криптографического модулей формирования ЭЦП и хэшфункций на ПЛИС ГОСТ 34.10-2012[24] и ГОСТ 34.11.2012[25], которые одобрены ФСБ Россиии применение этих алгоритмов в АО «Концерн «Автоматика».

Список источников

Блог компьютерного специалиста [Электронный ресурс]. - Режим доступа: http://www.lostop.ru/ (Дата обращения: 01.04.2017).

Национальный открытый университет «ИНТУИТ» [Электронный ресурс]. - Режим доступа: http://www.intuit.ru/ (Дата обращения: 10.02.2017).

Gilmore J. Cracking DES: Secrets of Encryption Research, Wiretap Politics & Chip Design. - 1998.M., Mishra P. A comparative survey on symmetric key encryption techniques //International Journal on Computer Science and Engineering. - 2012. - Т. 4. - №. 5. - P. 877.[Электронный ресурс]. - Режим доступа: http://networkdoc.ru/ (Дата обращения: 01.04.2017).

Панасенко С. П. Алгоритмы шифрования. Специальный справочник. - БХВ-Петербург, 2009. - C. 135 - 141.[Электронный ресурс]. - Режим доступа: http://infotecs.ru/ (Дата обращения: 19.03.2017).

Информационная безопасность: ФСТЭК, инсайдеры, шифрование, ЭЦП, вирусы, трояны, спам [Электронный ресурс]. - Режим доступа: http://www.itsec.ru/main.php (Дата обращения: 20.03.2017).

Хабрахабр [Электронный ресурс]. - Режим доступа: https://habrahabr.ru/ (Дата обращения: 15.01.2017).[Электронный ресурс]. - Режим доступа: http://cryptowiki.net/ (Дата обращения: 01.02.2017).[Электронный ресурс]. - Режим доступа: https://www.opengsm.ru/ (Дата обращения: 29.03.2017).

Daemen J., Rijmen V. Rijndael specification //AES specification. - 2004.

MSDN - сеть разработчиков Microsoft [Электронный ресурс]. - Режим доступа: https://msdn.microsoft.com/ru-ru/default.aspx (Дата обращения: 01.02.2017).

Rahman M., Rokon I. R., Rahman M. Efficient hardware implementation of RSA cryptography // 2009 3rd International Conference on Anti-counterfeiting, Security, and Identification in Communication. - IEEE, 2009. - P. 316-319.S. FPGA implementation of RSA encryption system. - 2012. - P. 2-4.C. C., Tseng S. Y. Integrated design of AES (Advanced Encryption Standard) encrypter and decrypter // Application-Specific Systems, Architectures and Processors, 2002. Proceedings. The IEEE International Conference on. - IEEE, 2002. - P. 277-285.R. et al. FPGA Implementation of RSA cryptosystem // World Academy of Science, Engineering and Technology, International Journal of Electrical, Computer, Energetic, Electronic and Communication Engineering. - 2008. - Vol. 2. - No. 8. - P. 1667-1671.D. et al. Implementation of RSA cryptoprocessor based on Montgomery algorithm // Solid-State and Integrated Circuit Technology. Proceedings. IEEE 1998 5th International Conference. - IEEE, 1998. - P. 524-526. S. RSA Security’s Official Guide To Cryptography. - 2001. - P. 98-105.B. Applied cryptography: protocols, algorithms, and source code in C. - John Wiley & Sons, 2007. - P. 384-387.

ГОСТ Р. 34.10 2012 Процессы формирования и проверки электронной цифровой подписи //М.: Изд-во стандартов. - 2012.

Гост Р. Р 34.11-2012: Национальный стандарт Российской Федерации. Информационная технология. Криптографическая защита информации. Функция хэширования. Издание официальное //М. Стандартинформ. - 2012.

ГОСТ Р. Р 34.12-2015 //Информационная технология. Криптографическая защита информации. Блочные шифры. М.: Стандартинформ. - 2015.V. R., Gad R. S., Naik G. M. Implementation of gigabit ethernet standard using fpga //International Journal of Mobile Network Communications & Telematics (IJMNCT). - 2012. - Т. 2. - №. 4.