Torna agli aggiornamenti
New releaseJul 26, 2026

mojo-v mojov-v1.02

Estensione ISA RISC-V per il calcolo segreto imposto dall'hardware utilizzando l'incapsulamento delle chiavi ML-KEM-512 e la crittografia SIMON-128, consentendo un'esecuzione data-oblivious con prestazioni quasi native.

Condividi

Mojo-V Logo

Mojo-V: Calcolo Segreto per RISC-V

Mojo-V (pronunciato “mojo-five”) è una nuova estensione RISC-V che introduce capacità di programmazione orientate alla privacy per RISC-V. Mojo-V implementa il calcolo segreto, consentendo un'esecuzione sicura, efficiente e data-oblivious senza affidarsi a software fragili e alla fiducia del programmatore. Isolando i dati sensibili in registri segreti dedicati e cifrando la memoria con una chiave di terze parti, Mojo-V previene le divulgazioni e impone un calcolo che è sia cieco (nessuna divulgazione diretta) sia silenzioso (nessuna perdita tramite canali laterali). Il design si integra perfettamente nell'ISA RISC-V esistente con un solo bit di modalità e quattro nuove istruzioni, applicate interamente in fase di decodifica. I primi risultati mostrano velocità di esecuzione quasi native, offrendo al contempo un miglioramento delle prestazioni di oltre 5-7 ordini di grandezza rispetto alla crittografia completamente omomorfica (FHE), con una chiara tabella di marcia per l'integrazione in CPU, GPU e acceleratori specializzati.

Per saperne di più...

L'attuale specifica dell'estensione ISA Mojo-V (release 1.02):

Per contattare gli sviluppatori di Mojo-V:

🧩 Piattaforma di Riferimento Mojo-V — Release 1.03

🚧 Stato del Progetto

La piattaforma di riferimento Mojo-V release 1.03 implementa una piattaforma di riferimento basata sul simulatore Spike per RISC-V RV64GC e il compilatore EXO per la specifica ISA Mojo-V v1.02. L'implementazione attuale supporta modalità di cifratura veloce, forte e proof-carrying, insieme alla divulgazione sicura dei risultati di calcoli cifrati e alla generazione certificata di numeri casuali. La release include un'ampia gamma di test Mojo-V, benchmark orientati alla privacy e applicazioni dimostrative per la divulgazione sicura. Include inoltre la specifica completa dell'ISA Mojo-V e la documentazione per gli sviluppatori.

Questa release è adatta all'uso come i) piattaforma di sviluppo di applicazioni Mojo-V, ii) golden model per la validazione di implementazioni hardware Mojo-V, e iii) implementazione di riferimento per l'analisi di sicurezza. Il lavoro attuale è focalizzato sullo sviluppo di i) un compilatore Mojo-V basato su LLVM, ii) un modello Mojo-V basato su gem5 per l'esplorazione e l'analisi architetturale, e iii) un'implementazione RTL SystemVerilog di riferimento CVA6 di RISC-V RV64GC con estensioni Mojo-V.

Versione della specifica: 1.02 (Agosto 2026)
Contatto: [email protected]

Componenti attuali

  1. Specifica ISA Mojo-V v1.02

    • rilasciata in doc/
  2. Spike (Instruction Set Simulator) con estensioni Mojo-V

    • Mojo-V integrato in riscv-isa-sim, e completo per una CPU RV64GC con incapsulamento delle chiavi ML-KEM-512 per il caricamento dei data contract e crittografia simmetrica SIMON-128 per la protezione del calcolo segreto.
    • Per eseguire Spike con le estensioni Mojo-V abilitate, aggiungere il flag --isa=rv64gc_zicond_zkmojov_zicntr quando si esegue spike
  3. Data Contract Multi-tool

    I data contract sono pacchetti cifrati che consentono all'hardware di una CPU Mojo-V di accedere alla chiave di accesso ai dati e alle informazioni di configurazione (ad es., modalità di cifratura della memoria) per un set di dati cifrati Mojo-V. Il DC Multi-tool abilita le seguenti capacità:

    • Gli sviluppatori hardware possono creare coppie di chiavi pubbliche/private ML-KEM512: le chiavi pubbliche sono condivise con i service provider, le chiavi private sono incorporate nell'implementazione hardware Mojo-V.
    • I proprietari dei dati possono creare data contract e cifrarli con le chiavi pubbliche ML-KEM512 dei service provider. L'hardware Mojo-V corrispondente può quindi eseguire calcolo segreto sui dati cifrati protetti di terze parti.
  4. Benchmark Mojo-V Bringup-Bench

    • Batteria completa di test di sicurezza per RV64GC+Mojo-V
    • Batteria completa di test di attacco all'integrità per RV64GC+Mojo-V
    • Batteria completa di test delle librerie del compilatore EXO
    • Batterie complete di test delle librerie matematiche e di stringhe EXO
    • Numerosi benchmark orientati alla privacy costruiti con la libreria del compilatore EXO Mojo-V
    • Batteria completa di applicazioni dimostrative di divulgazione sicura
    • Batteria completa di applicazioni dimostrative di TRNG certificato
    • Esempi scritti a mano (ad es., bubble-sort) che mostrano Mojo-V nell'esecuzione di calcolo segreto

Nota: il resto dei benchmark Bringup-bench non è ancora stato portato a Mojo-V.

⚙️ Compilazione ed Esecuzione della Piattaforma di Riferimento Mojo-V

A. Installare un compilatore LLVM per RISC-V

Avrai bisogno di un cross-compilatore RISC-V basato su LLVM in grado di produrre binari RV64GC.

Ecco un buon punto di partenza: https://github.com/openssl/openssl

B. Installare OpenSSL versione 3.6 o successiva

Avrai bisogno di un'installazione per sviluppatori di OpenSSL versione 3.6 o successiva. Questa fornisce le librerie che implementano ML-KEM512, utilizzate da Spike per lo scambio protetto di chiavi.

Ecco un buon punto di partenza: https://clang.llvm.org/get_started.html

C. Clonare il repository Mojo-V```bash

git clone https://github.com/toddmaustin/mojo-v.git cd mojo-v

### D. Costruisci il simulatore Spike RISC-V con supporto 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. Costruire e testare il Data Contract Multi-tool

I Data Contract sono pacchetti crittografati che consentono all'hardware di una CPU Mojo-V di accedere alla chiave di accesso ai dati e alle informazioni di configurazione (ad es. modalità di crittografia della memoria) per un dataset crittografato Mojo-V.``` cd dc-tool make clean build test

### **E. Compilare ed eseguire i test benchmark Mojo-V Bringup-Bench**

1. **Compila il driver del dispositivo Spike**   ```bash
   cd bringup-bench/target
   make
  1. Configura il tuo compilatore

    Modifica ../Makefile e imposta TARGET_CC per il target mojov sulla posizione del tuo compilatore RISC-V basato su LVM Clang.

  2. Compila e testa i programmi di test Bringup-Bench ```bash cd .. # go to the top-level bringup-bench directory make TARGET=mojov-spike mojov-tests # run all Mojo-V tests

In alternativa, puoi eseguire un singolo benchmark entrando nella sua directory ed eseguendo il seguente comando. ```bash cd ../mojov-test make TARGET=mojov-spike clean build test

## 🧪 Panoramica dei test di Bringup-Bench Mojo-V

Categorie