
Extension du jeu d'instructions RISC-V pour le calcul secret renforcé par matériel utilisant l'encapsulation de clés ML-KEM-512 et le chiffrement SIMON-128, permettant une exécution sans dépendance des données avec des performances proches du natif.
Mojo-V (prononcé « mojo-five ») est une nouvelle extension RISC-V qui introduit des capacités de programmation orientées confidentialité pour RISC-V. Mojo-V implémente le calcul secret, permettant une exécution sécurisée, efficace et insensible aux données (data-oblivious), sans dépendre de logiciels fragiles ni de la confiance accordée aux programmeurs. En séquestrant les données sensibles dans des registres secrets dédiés et en chiffrant la mémoire avec une clé tierce, Mojo-V empêche les divulgations et impose un calcul à la fois aveugle (aucune divulgation directe) et silencieux (aucune fuite par canaux auxiliaires). La conception s'intègre de manière transparente dans l'ISA RISC-V existante avec seulement un bit de mode et quatre nouvelles instructions, appliquées entièrement au décodage. Les premiers résultats montrent des vitesses d'exécution proches du natif, tout en offrant une amélioration de performance de 5 à 7 ordres de grandeur par rapport au chiffrement totalement homomorphe (FHE), avec une feuille de route claire pour l'intégration dans les CPU, GPU et accélérateurs spécialisés.
Pour en savoir plus...
La spécification actuelle de l'extension ISA Mojo-V (version 1.02) :
Pour contacter les développeurs de Mojo-V :
La plateforme de référence Mojo-V version 1.03 implémente une plateforme de simulateur Spike de référence pour RISC-V RV64GC ainsi que le compilateur EXO pour la spécification ISA Mojo-V v1.02. L'implémentation actuelle prend en charge les modes de chiffrement rapide, robuste et à preuve (proof-carrying), ainsi que la divulgation sécurisée des résultats de calcul chiffrés et la génération certifiée de nombres aléatoires. La version inclut une large gamme de tests Mojo-V, des benchmarks orientés confidentialité et des applications de démonstration pour la divulgation sécurisée. Elle inclut également la spécification complète de l'ISA Mojo-V et la documentation développeur.
Cette version est appropriée pour être utilisée comme i) une plateforme de développement d'applications Mojo-V, ii) un modèle de référence (golden model) pour valider les implémentations matérielles Mojo-V, et iii) une implémentation de référence pour l'analyse de sécurité. Les travaux actuels se concentrent sur le développement de i) un compilateur Mojo-V basé sur LLVM, ii) un modèle Mojo-V basé sur gem5 pour l'exploration et l'analyse architecturales, et iii) une implémentation RTL SystemVerilog de référence CVA6 de RISC-V RV64GC avec les extensions Mojo-V.
Version de spécification : 1.02 (Août 2026)
Contact : [email protected]
Spécification ISA Mojo-V v1.02
doc/Spike (simulateur de jeu d'instructions) avec extensions Mojo-V
riscv-isa-sim, et fonctionnellement complet pour un CPU RV64GC avec encapsulation de clé ML-KEM-512 pour le chargement des contrats de données, et chiffrement symétrique SIMON-128 pour la protection du calcul secret.--isa=rv64gc_zicond_zkmojov_zicntr lors de l'exécution de spikeMulti-outil de contrat de données
Les contrats de données sont des paquets chiffrés qui permettent au matériel d'un CPU Mojo-V d'accéder à la clé d'accès aux données et aux informations de configuration (par exemple, le mode de chiffrement mémoire) pour un ensemble de données chiffrées Mojo-V. Le multi-outil DC offre les capacités suivantes :
Benchmarks Mojo-V Bringup-Bench
Note : le reste des benchmarks Bringup-bench n'a pas encore été porté vers Mojo-V.
Vous aurez besoin d'un compilateur croisé RISC-V basé sur LLVM capable de produire des binaires RV64GC.
Voici un bon point de départ : https://github.com/openssl/openssl
Vous aurez besoin d'une installation de développement d'OpenSSL version 3.6 ou plus récente. Celle-ci fournit les bibliothèques qui implémentent ML-KEM512, utilisées par Spike pour l'échange de clés protégé.
Voici un bon point de départ : https://clang.llvm.org/get_started.html
git clone https://github.com/toddmaustin/mojo-v.git cd mojo-v
### D. Construire le simulateur Spike RISC-V avec le support 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
Les contrats de données sont des paquets chiffrés qui permettent au matériel d'un CPU Mojo-V d'accéder à la clé d'accès aux données et aux informations de configuration (par exemple, le mode de chiffrement de la mémoire) pour un ensemble de données chiffrées Mojo-V.``` cd dc-tool make clean build test
### **E. Compiler et exécuter les tests de référence Mojo-V Bringup-Bench**
1. **Compiler le pilote de périphérique Spike** ```bash
cd bringup-bench/target
make
Configurez votre compilateur
Modifiez ../Makefile et définissez TARGET_CC pour la cible mojov sur l'emplacement de votre compilateur RISC-V basé sur LVM Clang.
Compilez et testez les programmes de test Bringup-Bench ```bash cd .. # go to the top-level bringup-bench directory make TARGET=mojov-spike mojov-tests # run all Mojo-V tests
En alternative, vous pouvez exécuter un benchmark individuel en vous rendant dans son répertoire et en exécutant la commande suivante. ```bash cd ../mojov-test make TARGET=mojov-spike clean build test
## 🧪 Aperçu des tests de Mojo-V Bringup-Bench