
mojo-v mojov-v1.03
Extensión de la ISA RISC-V para cómputo secreto reforzado por hardware usando encapsulación de clave ML-KEM-512 y cifrado SIMON-128, permitiendo ejecución oblivious a los datos con rendimiento cercano al nativo.
Mojo-V: Computación Secreta para RISC-V
Mojo-V (pronunciado “mojo-five”) es una nueva extensión de RISC-V que introduce capacidades de programación orientadas a la privacidad para RISC-V. Mojo-V implementa computación secreta, lo que permite una ejecución segura, eficiente y oblivious a los datos sin depender de software frágil ni de la confianza del programador. Al aislar los datos sensibles en registros secretos dedicados y cifrar la memoria con una clave de terceros, Mojo-V previene divulgaciones y aplica una computación que es tanto ciega (sin divulgaciones directas) como silenciosa (sin fugas por canales laterales). El diseño se integra sin problemas en la ISA RISC-V existente con solo un bit de modo y cuatro instrucciones nuevas, aplicadas íntegramente en la decodificación. Los primeros resultados muestran velocidades de ejecución casi nativas, ofreciendo al mismo tiempo una mejora de rendimiento de más de 5 a 7 órdenes de magnitud en comparación con el cifrado totalmente homomórfico (FHE), con una hoja de ruta clara para la integración en CPU, GPU y aceleradores especializados.
Para obtener más información...
- Aquí hay un video introductorio que describe Mojo-V: https://www.youtube.com/watch?v=HUT46TcNyyM
- Diapositivas que ofrecen una visión general del proyecto Mojo-V: https://drive.google.com/file/d/1VVzZqYHvQgnKMgXZjg7I_cX2GzF7awSN
La Especificación actual de la Extensión ISA de Mojo-V (versión 1.02):
- [En formato PDF.] (https://drive.google.com/file/d/1yfiBqp0xyXD-S_G5d2o7Ggta5wI6nRot)
Para contactar a los desarrolladores de Mojo-V:
- Correo electrónico: [email protected]
🧩 Plataforma de Referencia Mojo-V — Versión 1.03
🚧 Estado del Proyecto
La Plataforma de Referencia Mojo-V versión 1.03 implementa una plataforma de simulador Spike de referencia para RISC-V RV64GC y el compilador EXO para la Especificación ISA de Mojo-V v1.02. La implementación actual soporta modos de cifrado rápido, fuerte y con prueba, junto con la divulgación segura de resultados de computación cifrada y la generación certificada de números aleatorios. La versión incluye una amplia gama de pruebas de Mojo-V, benchmarks orientados a la privacidad y aplicaciones demostradoras para la divulgación segura. También incluye la especificación completa de la ISA de Mojo-V y documentación para desarrolladores.
Esta versión es adecuada para usarse como i) plataforma de desarrollo de aplicaciones Mojo-V, ii) modelo de referencia para validar implementaciones de hardware Mojo-V y iii) implementación de referencia para análisis de seguridad. El trabajo actual se centra en el desarrollo de i) un compilador Mojo-V basado en LLVM, ii) un modelo Mojo-V basado en gem5 para exploración y análisis arquitectónico y iii) una implementación RTL de referencia CVA6 SystemVerilog de RISC-V RV64GC con extensiones Mojo-V.
Versión de la Especificación: 1.02 (agosto de 2026)
Contacto: [email protected]
Componentes actuales
-
Especificación ISA Mojo-V v1.02
- publicada en
doc/
- publicada en
-
Spike (Simulador de Conjunto de Instrucciones) con Extensiones Mojo-V
- Mojo-V integrado en
riscv-isa-sim, con funcionalidad completa para una CPU RV64GC con encapsulación de claves ML-KEM-512 para la carga de contratos de datos y cifrado simétrico SIMON-128 para la protección de la computación secreta. - Para ejecutar Spike con las extensiones Mojo-V habilitadas, agregue la opción
--isa=rv64gc_zicond_zkmojov_zicntral ejecutarspike
- Mojo-V integrado en
-
Multi-herramienta de Contrato de Datos
Los contratos de datos son paquetes cifrados que permiten que el hardware de una CPU Mojo-V acceda a la clave de acceso a datos y a la información de configuración (por ejemplo, el modo de cifrado de memoria) para un conjunto de datos cifrados con Mojo-V. La Multi-herramienta DC permite las siguientes capacidades:
- Los desarrolladores de hardware pueden crear pares de claves ML-KEM512 públicas/privadas: las claves públicas se comparten con los proveedores de servicios y las claves privadas se incorporan en la implementación de hardware Mojo-V.
- Los propietarios de datos pueden crear contratos de datos y cifrarlos con las claves ML-KEM512 públicas de los proveedores de servicios. El hardware Mojo-V correspondiente puede entonces realizar computación secreta sobre los datos cifrados de terceros protegidos.
-
Benchmarks Mojo-V Bringup-Bench
- Batería completa de pruebas de seguridad para RV64GC+Mojo-V
- Batería completa de pruebas de ataque a la integridad para RV64GC+Mojo-V
- Batería completa de pruebas de la biblioteca del compilador EXO
- Baterías completas de pruebas de las bibliotecas matemáticas y de cadenas de EXO
- Numerosos benchmarks orientados a la privacidad compilados con la biblioteca del compilador EXO Mojo-V
- Batería completa de aplicaciones de demostración de divulgación segura
- Batería completa de aplicaciones de demostración de TRNG certificado
- Ejemplos codificados a mano (por ejemplo, bubble-sort) que muestran la computación secreta de Mojo-V en funcionamiento
Tenga en cuenta que el resto de los benchmarks Bringup-bench aún NO se han portado a Mojo-V.
⚙️ Compilación y Ejecución de la Plataforma de Referencia Mojo-V
A. Instale un Compilador LLVM para RISC-V
Necesitará un compilador cruzado RISC-V basado en LLVM capaz de producir binarios RV64GC.
Aquí hay un buen punto de partida: https://github.com/openssl/openssl
B. Instale OpenSSL versión 3.6 o más reciente
Necesitará una instalación para desarrolladores de OpenSSL versión 3.6 o más reciente. Esto proporciona bibliotecas que implementan ML-KEM512, utilizado por Spike para el intercambio de claves protegido.
Aquí hay un buen punto de partida: https://clang.llvm.org/get_started.html
C. Clone el Repositorio Mojo-V```bash
git clone https://github.com/toddmaustin/mojo-v.git cd mojo-v
### D. Construir el simulador Spike de RISC-V con soporte 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. Construir y probar la multiherramienta de contratos de datos
Los contratos de datos son paquetes cifrados que permiten al hardware de una CPU Mojo-V acceder a la clave de acceso a datos y a la información de configuración (p. ej., modo de cifrado de memoria) de un conjunto de datos cifrado con Mojo-V.``` cd dc-tool make clean build test
### **E. Construir y ejecutar las pruebas de benchmark Bringup-Bench de Mojo-V**
1. **Construir el controlador de dispositivo Spike** ```bash
cd bringup-bench/target
make
-
Configura tu compilador
Edita
../Makefiley estableceTARGET_CCpara el destinomojova la ubicación de tu compilador RISC-V de LVM basado en Clang. -
Compila y prueba los programas de prueba Bringup-Bench ```bash cd .. # go to the top-level bringup-bench directory make TARGET=mojov-spike mojov-tests # run all Mojo-V tests
Como alternativa, puedes ejecutar un benchmark individual entrando en su directorio y ejecutando el siguiente comando. ```bash cd ../mojov-test make TARGET=mojov-spike clean build test
## 🧪 Resumen de Pruebas de Mojo-V Bringup-Bench