Исследование и разработка криптографических алгоритмов шифрования на языках С/С++ для микроконтроллеров с ядром RISC-V с применением дополнительных наборов команд по К-спецификации | Статья в журнале «Молодой ученый»

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

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

Автор:

Научный руководитель:

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

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

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

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

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

Жиленкова, О. М. Исследование и разработка криптографических алгоритмов шифрования на языках С/С++ для микроконтроллеров с ядром RISC-V с применением дополнительных наборов команд по К-спецификации / О. М. Жиленкова. — Текст : непосредственный // Молодой ученый. — 2023. — № 51 (498). — С. 5-7. — URL: https://moluch.ru/archive/498/109511/ (дата обращения: 19.12.2024).



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

Ключевые слова: алгоритмы, криптография, хеширование, спецификация «К«, ассемблерные инструкции, «Кузнечик», «Стрибог», «3DES», математическая точка зрения, типовые операции.

The article examines existing cryptography and hashing algorithms, for which there are special assembly instructions from the “K” specification; in particular, the «Kuznechik», «Stribog», «3DES» instructions are considered. Also, all algorithms are studied from a mathematical point of view and the typical operations that are used in them are considered.

Keywords: algorithms, cryptography, hashing, specification «K«, assembly instructions, «Kuznechik», «Stribog», «3DES», mathematical point of view.

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

RISC-V (рис. 1) — это открытая система команд, которая содержит несколько спецификаций, и представляет собой АЛУ с открытым кодом, который призван предложить гибкий и относительно простой процесс проектирования и разработки процессорных систем на кристалле System-on-a-Chip (SoC), представляющие из себя электронные схемы, выполняющие некоторые функции и размещенные на одной интегральной схеме.

Структура RISC-V Структура RISC-V

Рис. 1. Структура RISC-V

Одна из основных причин востребованности системы команд RISC-V заключается в их свободном распространении и использовании. Это означает, что любой желающий может использовать описанную систему команд в коммерческих целях, в частности, для разработки собственных многоядерных SOC без выплат роялти.

Также такой подход позволяет разработчикам самостоятельно реализовывать описанные в спецификациях систему команд, а также её расширять путём внесения в архитектуру АЛУ своих команд, необходимых для специального приложения, например, для задач криптографии.

Наиболее популярные криптографические алгоритмы как для защиты информации, так и для создания цифровой подписи получили поддержку у сообщества RISC-V, что дало толчок к развитию нового расширения для системы команд RISC-V в виде спецификации «K».

К-спецификация в RISC-V — это набор дополнительных команд, предназначенных для ускорения криптографических операций. Он включает в себя команды для работы с большими числами, а также команды для выполнения специфических криптографических операций, таких как умножение в Галуа поле.

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

__asm__(«aes32esi %0, %1, %2, %3": "=r«(instance->roundKey [i]): «r«(instance->roundKey [i — instance->u8KeyLen]^(u8Rcon [i / instance->u8KeyLen — 1])), «r«(tmp), «i«(0));

__asm__(«aes32esi %0, %0, %1, %2": "+r»(instance->roundKey [i]): «r«(tmp), «i«(1));

__asm__(«aes32esi %0, %0, %1, %2": "+r»(instance->roundKey [i]): «r«(tmp), «i«(2));

__asm__(«aes32esi %0, %0, %1, %2": "+r»(instance->roundKey [i]): «r«(tmp), «i«(3));

Пример кода для вычисления ускоренного времени после битовых расширений:

t0 = riscv_get_mtime();

for (int32_t i = 0; i < DATA_SIZE_1KB; i += GOST_MAGMA_DATA_BLOCK_SIZE)

{

gost_magma_encrypt(magma_mkey, &data_1kb [i], &encrypt_data_1kb [i]);

}

t1 = riscv_get_mtime();

delta += t1 — t0;

Разработка криптографических алгоритмов шифрования на языках С/С++ для микроконтроллеров с ядром RISC-V — это сложная, но важная задача. С помощью К-спецификации можно значительно ускорить этот процесс и повысить эффективность алгоритмов. Это открывает новые возможности для обеспечения безопасности данных в мире, где цифровые технологии играют все более важную роль.

Литература:

  1. Александров С. В., Кузмин В. В., Романов А. С. Программно-аппаратные средства реализации криптографических алгоритмов на языках с/с++. Москва: Издательский дом «Университет», 2015.
  2. Барвачин М. Г., Голубев А. В., Лефер Д. А. Криптографическая защита информации. Москва: БИНОМ. Лаборатория знаний, 2018.
  3. Вилкер В. А., Белов А. В., Головин А. А. Разработка криптографических алгоритмов шифрования на языках с/с++. Москва: Питер, 2019.
  4. Гладышев А. Ю., Заболотнов А. В., Лихотвин А. Г. Реализация алгоритмов шифрования на языках с/с++. Москва: Наука, 2017.
  5. Дашков В. А., Гуреев С. В., Кожевникова О. В. Проектирование и анализ криптографических схем. Москва: Лори, 2016.
Основные термины (генерируются автоматически): RISC-V, система команд, SOC, криптографический алгоритм шифрования.


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

криптография, алгоритмы, «Кузнечик», хеширование, спецификация «К«, ассемблерные инструкции, «Стрибог», «3DES», математическая точка зрения, типовые операции

Похожие статьи

Разработка систем рекомендаций на основе Big Data

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

Обзор поточного шифра А5/2

В данной статье авторы стремятся исследовать поточное шифрование и шифр A5/2 с целью анализа их применения в современных информационных системах. Статья описывает алгоритм шифрования A5/2, который был разработан в результате международных переговоро...

Реализация Windows-приложения, выполняющего шифрование и дешифрование текста шифрами Цезаря и Хилла

В данной статье разобраны алгоритмы шифрования и дешифрования текста шифром Цезаря и шифром Хилла, а также описывается Windows-приложение, реализующее данные алгоритмы.

Разработка программного модуля защиты информации методом стеганографии

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

Разработка в среде C# программной реализации алгоритма выделения структурных особенностей

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

Методы верификации программного обеспечения

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

Сравнительный анализ методов Наивного Байеса и SVM алгоритмов при классификации текстовых документов

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

Анализ эффективности алгоритмов сортировки и вcтроенных реализаций на примере языка программирования Java

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

Модель системы передачи данных с использованием помехоустойчивых кодов LT в среде Simulink для каналов со стираниями пакетов

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

Применение векторизации слов для нечеткого поиска

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

Похожие статьи

Разработка систем рекомендаций на основе Big Data

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

Обзор поточного шифра А5/2

В данной статье авторы стремятся исследовать поточное шифрование и шифр A5/2 с целью анализа их применения в современных информационных системах. Статья описывает алгоритм шифрования A5/2, который был разработан в результате международных переговоро...

Реализация Windows-приложения, выполняющего шифрование и дешифрование текста шифрами Цезаря и Хилла

В данной статье разобраны алгоритмы шифрования и дешифрования текста шифром Цезаря и шифром Хилла, а также описывается Windows-приложение, реализующее данные алгоритмы.

Разработка программного модуля защиты информации методом стеганографии

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

Разработка в среде C# программной реализации алгоритма выделения структурных особенностей

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

Методы верификации программного обеспечения

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

Сравнительный анализ методов Наивного Байеса и SVM алгоритмов при классификации текстовых документов

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

Анализ эффективности алгоритмов сортировки и вcтроенных реализаций на примере языка программирования Java

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

Модель системы передачи данных с использованием помехоустойчивых кодов LT в среде Simulink для каналов со стираниями пакетов

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

Применение векторизации слов для нечеткого поиска

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

Задать вопрос