
mojo-v mojov-v1.03
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.
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ù...
- Ecco un video introduttivo che descrive Mojo-V: https://www.youtube.com/watch?v=HUT46TcNyyM
- Slide che forniscono una panoramica del progetto Mojo-V: https://drive.google.com/file/d/1VVzZqYHvQgnKMgXZjg7I_cX2GzF7awSN
L'attuale specifica dell'estensione ISA Mojo-V (release 1.02):
- [In formato PDF.] (https://drive.google.com/file/d/1yfiBqp0xyXD-S_G5d2o7Ggta5wI6nRot)
Per contattare gli sviluppatori di Mojo-V:
- Email: [email protected]
🧩 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
-
Specifica ISA Mojo-V v1.02
- rilasciata in
doc/
- rilasciata in
-
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_zicntrquando si eseguespike
- Mojo-V integrato in
-
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.
-
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
-
Configura il tuo compilatore
Modifica
../Makefilee impostaTARGET_CCper il targetmojovsulla posizione del tuo compilatore RISC-V basato su LVM Clang. -
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