
mojo-v mojov-v1.02
Расширение системы команд RISC-V для аппаратно-обеспечиваемых секретных вычислений с использованием инкапсуляции ключей ML-KEM-512 и шифрования SIMON-128, обеспечивающее не зависящее от данных выполнение с производительностью, близкой к нативной.
Mojo-V: секретные вычисления для RISC-V
Mojo-V (произносится «mojo-five») — это новое расширение RISC-V, которое добавляет возможности программирования, ориентированные на конфиденциальность, для RISC-V. Mojo-V реализует секретные вычисления, обеспечивая безопасное, эффективное и не зависящее от данных исполнение без опоры на хрупкое программное обеспечение и доверие к программисту. Изолируя конфиденциальные данные в выделенных секретных регистрах и шифруя память с помощью стороннего ключа, Mojo-V предотвращает раскрытие информации и обеспечивает вычисления, которые являются одновременно «слепыми» (без прямых раскрытий) и «тихими» (без утечек по побочным каналам). Архитектура бесшовно интегрируется в существующую ISA RISC-V всего лишь с одним битом режима и четырьмя новыми инструкциями, контроль которых осуществляется полностью на этапе декодирования. Ранние результаты демонстрируют скорость исполнения, близкую к нативной, обеспечивая при этом улучшение производительности на 5–7 порядков по сравнению с полностью гомоморфным шифрованием (FHE), а также содержат чёткую дорожную карту интеграции в CPU, GPU и специализированные ускорители.
Чтобы узнать больше...
- Вот вводное видео, описывающее Mojo-V: https://www.youtube.com/watch?v=HUT46TcNyyM
- Слайды, дающие обзор проекта Mojo-V: https://drive.google.com/file/d/1VVzZqYHvQgnKMgXZjg7I_cX2GzF7awSN
Текущая спецификация расширения ISA Mojo-V (релиз 1.02):
- [в формате PDF.] (https://drive.google.com/file/d/1yfiBqp0xyXD-S_G5d2o7Ggta5wI6nRot)
Для связи с разработчиками Mojo-V:
- Электронная почта: [email protected]
🧩 Эталонная платформа Mojo-V — выпуск 1.03
🚧 Статус проекта
Выпуск 1.03 эталонной платформы Mojo-V реализует эталонную платформу симулятора Spike для RISC-V RV64GC и компилятор EXO для спецификации ISA Mojo-V v1.02. Текущая реализация поддерживает быстрые, строгие и proof-carrying режимы шифрования, а также безопасное раскрытие результатов зашифрованных вычислений и сертифицированную генерацию случайных чисел. Релиз включает широкий набор тестов Mojo-V, ориентированных на конфиденциальность бенчмарков и демонстрационных приложений для безопасного раскрытия. Он также включает полную спецификацию ISA Mojo-V и документацию для разработчиков.
Этот выпуск подходит для использования в качестве i) платформы разработки приложений Mojo-V, ii) эталонной модели для проверки аппаратных реализаций Mojo-V и iii) эталонной реализации для анализа безопасности. Текущая работа сосредоточена на разработке i) компилятора Mojo-V на основе LLVM, ii) модели Mojo-V на основе gem5 для архитектурных исследований и анализа, и iii) эталонной реализации CVA6 SystemVerilog RTL для RISC-V RV64GC с расширениями Mojo-V.
Версия спецификации: 1.02 (август 2026)
Контакт: [email protected]
Текущие компоненты
-
Спецификация ISA Mojo-V v1.02
- выпущена в
doc/
- выпущена в
-
Spike (симулятор набора инструкций) с расширениями Mojo-V
- Mojo-V интегрирован в
riscv-isa-simи функционально полон для процессора RV64GC с инкапсуляцией ключей ML-KEM-512 для загрузки контрактов данных и симметричным шифрованием SIMON-128 для защиты секретных вычислений. - Чтобы запустить Spike с включёнными расширениями Mojo-V, добавьте флаг
--isa=rv64gc_zicond_zkmojov_zicntrпри запускеspike
- Mojo-V интегрирован в
-
Data Contract Multi-tool
Контракты данных — это зашифрованные пакеты, которые позволяют аппаратному обеспечению процессора Mojo-V получать доступ к ключу доступа к данным и информации о конфигурации (например, режиму шифрования памяти) для набора данных, зашифрованного с помощью Mojo-V. Инструмент DC Multi-tool предоставляет следующие возможности:
- Разработчики аппаратного обеспечения могут создавать пары открытый/закрытый ключей ML-KEM512: открытые ключи передаются поставщикам услуг, а закрытые ключи встраиваются в аппаратную реализацию Mojo-V.
- Владельцы данных могут создавать контракты данных и шифровать их с помощью открытых ключей ML-KEM512 поставщиков услуг. Соответствующее аппаратное обеспечение Mojo-V затем может выполнять секретные вычисления над защищёнными зашифрованными данными третьих сторон.
-
Бенчмарки Mojo-V Bringup-Bench
- Полный набор тестов безопасности для RV64GC+Mojo-V
- Полный набор тестов на атаки целостности для RV64GC+Mojo-V
- Полный набор тестов библиотеки компилятора EXO
- Полные наборы тестов математической и строковой библиотек EXO
- Многочисленные ориентированные на конфиденциальность бенчмарки, собираемые с использованием библиотеки компилятора EXO Mojo-V
- Полный набор демонстрационных приложений для безопасного раскрытия
- Полный набор демонстрационных приложений сертифицированного TRNG
- Примеры с ручным написанием кода (например, пузырьковая сортировка), демонстрирующие секретные вычисления Mojo-V в действии
Обратите внимание: остальная часть бенчмарков Bringup-bench пока НЕ перенесена на Mojo-V.
⚙️ Сборка и запуск эталонной платформы Mojo-V
A. Установка RISC-V LLVM-компилятора
Вам понадобится кросс-компилятор RISC-V на основе LLVM, способный создавать бинарные файлы RV64GC.
Вот хорошая отправная точка: https://github.com/openssl/openssl
B. Установка OpenSSL версии 3.6 или новее
Вам понадобится установка OpenSSL версии 3.6 или новее для разработчиков. Она предоставляет библиотеки, реализующие ML-KEM512, используемые Spike для защищённого обмена ключами.
Вот хорошая отправная точка: https://clang.llvm.org/get_started.html
C. Клонирование репозитория Mojo-V```bash
git clone https://github.com/toddmaustin/mojo-v.git cd mojo-v
### D. Сборка симулятора RISC-V Spike с поддержкой Mojo-V```bash
sudo apt-get install device-tree-compiler libboost-regex-dev libboost-system-dev
cd riscv-isa-sim
mkdir build
cd build
../configure --prefix=$RISCV
make
E. Сборка и тестирование Data Contract Multi-tool
Контракты данных — это зашифрованные пакеты, которые позволяют аппаратному обеспечению CPU Mojo-V получить доступ к ключу доступа к данным и конфигурационной информации (например, режиму шифрования памяти) для зашифрованного набора данных Mojo-V.``` cd dc-tool make clean build test
### **E. Сборка и запуск бенчмарк-тестов Mojo-V Bringup-Bench**
1. **Соберите драйвер устройства Spike** ```bash
cd bringup-bench/target
make
-
Настройте ваш компилятор
Отредактируйте
../Makefileи укажитеTARGET_CCдля целиmojovна расположение вашего LVM Clang-based RISC-V компилятора. -
Соберите и протестируйте тестовые программы Bringup-Bench ```bash cd .. # go to the top-level bringup-bench directory make TARGET=mojov-spike mojov-tests # run all Mojo-V tests
В качестве альтернативы вы можете запустить отдельный бенчмарк, перейдя в его каталог и выполнив следующую команду. ```bash cd ../mojov-test make TARGET=mojov-spike clean build test
## 🧪 Обзор тестов Mojo-V Bringup-Bench