Volver a actualizaciones
Nuevo releaseJul 26, 2026

mojo-v mojov-v1.02

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.

Compartir

Logo de Mojo-V

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...

La Especificación actual de la Extensión ISA de Mojo-V (versión 1.02):

Para contactar a los desarrolladores de Mojo-V:

🧩 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

  1. Especificación ISA Mojo-V v1.02

    • publicada en doc/
  2. 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_zicntr al ejecutar spike
  3. 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.
  4. 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
  1. Configura tu compilador

    Edita ../Makefile y establece TARGET_CC para el destino mojov a la ubicación de tu compilador RISC-V de LVM basado en Clang.

  2. 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

Categorías