В статье изучены существующие алгоритмы криптографии и хеширования, для которых есть специальные ассемблерные инструкции из спецификации «К», в частности рассмотрены инструкции «Кузнечик», «Стрибог», «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), представляющие из себя электронные схемы, выполняющие некоторые функции и размещенные на одной интегральной схеме.
Рис. 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 — это сложная, но важная задача. С помощью К-спецификации можно значительно ускорить этот процесс и повысить эффективность алгоритмов. Это открывает новые возможности для обеспечения безопасности данных в мире, где цифровые технологии играют все более важную роль.
Литература:
- Александров С. В., Кузмин В. В., Романов А. С. Программно-аппаратные средства реализации криптографических алгоритмов на языках с/с++. Москва: Издательский дом «Университет», 2015.
- Барвачин М. Г., Голубев А. В., Лефер Д. А. Криптографическая защита информации. Москва: БИНОМ. Лаборатория знаний, 2018.
- Вилкер В. А., Белов А. В., Головин А. А. Разработка криптографических алгоритмов шифрования на языках с/с++. Москва: Питер, 2019.
- Гладышев А. Ю., Заболотнов А. В., Лихотвин А. Г. Реализация алгоритмов шифрования на языках с/с++. Москва: Наука, 2017.
- Дашков В. А., Гуреев С. В., Кожевникова О. В. Проектирование и анализ криптографических схем. Москва: Лори, 2016.