- Гусаров Андрей Александрович
- НИУ МИЭТ, г. Москва
Тезис
Область применения смарт-карт постоянно расширяется: платежные карты; SIM-карты; электронные документы и т.д. Поэтому разработка программного обеспечения для смарт-карт является крайне актуальной задачей. Для защиты информации на смарт-картах применяются алгоритмы асимметричной криптографии. Так как эти алгоритмы имеют высокую сложность, для ускорения работы с ними используют модулярный сопроцессор внутри микроконтроллера смарт-карты. В АО «НИИМЭ» ведется разработка нового отечественного 32-битного микроконтроллера NE32BC16 на базе архитектуры RISC-V. Для отладки программного обеспечения под NE32BC16 требуется разработка соответствующего симулятора (LHD RISC-V).
Ближайшие аналоги симулятора LHD RISC-V, в частности, EIDVirtual, Vsmartcard, QEMU virt, имеют ряд критичных недостатков, главным из которых является несовместимость с NE32BC16.
Одной из задач разработки симулятора является программная реализация периферийного блока, симулирующего поведение модулярного сопроцессора. На основе структуры модулярного сопроцессора разработана его программная модель. Важнейшей частью модели является aрифметико-логическое устройство, выполняющее модулярные операции с большими числами (разрядность до 4096 бит).
Программная модель реализована в виде программного модуля в составе симулятора LHD RISC-V; на языке C++ в среде разработки Microsoft Visual Studio. Выполнение модулярных операций реализовано с помощью библиотеки OpenSSL. Реализованы десятки операций, в число которых входит умножение по методу Монгомери, деление и сложение по модулю и другие. Функционально модуль полностью соответствует блоку модулярного сопроцессора микроконтроллера и успешно проходит набор тестов.
В дальнейшем программный модуль будет использоваться в других симуляторах различных устройств, выпускаемых АО «НИИМЭ».