
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 (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:
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]
Specifica ISA Mojo-V v1.02
doc/Spike (Instruction Set Simulator) con estensioni Mojo-V
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.--isa=rv64gc_zicond_zkmojov_zicntr quando si esegue spikeData 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à:
Benchmark Mojo-V Bringup-Bench
Nota: il resto dei benchmark Bringup-bench non è ancora stato portato a Mojo-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
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
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
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 ../Makefile e imposta TARGET_CC per il target mojov sulla 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