
mojo-v mojov-v1.03
RISC-V-ISA-Erweiterung für hardwaregestützte Geheimberechnung unter Verwendung von ML-KEM-512-Schlüsselverkapselung und SIMON-128-Verschlüsselung, die eine datenoblivious Ausführung mit nahezu nativer Leistung ermöglicht.
Mojo-V: Secret Computation für RISC-V
Mojo-V (ausgesprochen „mojo-five“) ist eine neue RISC-V-Erweiterung, die datenschutzorientierte Programmiermöglichkeiten für RISC-V einführt. Mojo-V implementiert Secret Computation und ermöglicht sichere, effiziente und daten-oblivious Ausführung ohne Abhängigkeit von fragiler Software und Vertrauen in Programmierer. Durch die Absonderung sensibler Daten in dedizierten Secret-Registern und die Verschlüsselung des Speichers unter einem Drittanbieter-Schlüssel verhindert Mojo-V Offenlegungen und erzwingt eine Berechnung, die sowohl blind (keine direkten Offenlegungen) als auch still (kein Seitenkanal-Leck) ist. Das Design integriert sich nahtlos in die bestehende RISC-V-ISA mit nur einem Modus-Bit und vier neuen Instruktionen, die vollständig beim Decode erzwungen werden. Erste Ergebnisse zeigen nahezu native Ausführungsgeschwindigkeiten und bieten gleichzeitig eine Leistungsverbesserung von über 5–7 Größenordnungen im Vergleich zu vollständig homomorpher Verschlüsselung (FHE), mit einer klaren Roadmap für die Integration in CPUs, GPUs und spezialisierte Beschleuniger.
Um mehr zu erfahren...
- Hier ist ein Einführungsvideo, das Mojo-V beschreibt: https://www.youtube.com/watch?v=HUT46TcNyyM
- Folien, die einen Überblick über das Mojo-V-Projekt geben: https://drive.google.com/file/d/1VVzZqYHvQgnKMgXZjg7I_cX2GzF7awSN
Die aktuelle Mojo-V-ISA-Erweiterungsspezifikation (Release 1.02):
- [Im PDF-Format.] (https://drive.google.com/file/d/1yfiBqp0xyXD-S_G5d2o7Ggta5wI6nRot)
Um die Entwickler von Mojo-V zu kontaktieren:
- E-Mail: [email protected]
🧩 Mojo-V-Referenzplattform — Release 1.03
🚧 Projektstatus
Die Mojo-V-Referenzplattform Release 1.03 implementiert eine Referenz-Spike-Simulatorplattform für RISC-V RV64GC und den EXO-Compiler für die Mojo-V-ISA-Spezifikation v1.02. Die aktuelle Implementierung unterstützt schnelle, starke und beweistragende Verschlüsselungsmodi sowie die sichere Offenlegung verschlüsselter Berechnungsergebnisse und zertifizierte Zufallszahlengenerierung. Das Release enthält eine breite Palette von Mojo-V-Tests, datenschutzorientierten Benchmarks und Demonstrator-Anwendungen für sichere Offenlegung. Es enthält außerdem die vollständige Mojo-V-ISA-Spezifikation und Entwicklerdokumentation.
Dieses Release eignet sich für die Verwendung als i) Mojo-V-Anwendungsentwicklungsplattform, ii) Golden Model zur Validierung von Mojo-V-Hardwareimplementierungen und iii) Referenzimplementierung für Sicherheitsanalysen. Die aktuelle Arbeit konzentriert sich auf die Entwicklung von i) einem LLVM-basierten Mojo-V-Compiler, ii) einem gem5-basierten Mojo-V-Modell für Architekturerkundung und -analyse und iii) einer Referenz-CVA6-SystemVerilog-RTL-Implementierung von RISC-V RV64GC mit Mojo-V-Erweiterungen.
Spezifikationsversion: 1.02 (August 2026)
Kontakt: [email protected]
Aktuelle Komponenten
-
Mojo-V-ISA-Spezifikation v1.02
- veröffentlicht in
doc/
- veröffentlicht in
-
Spike (Instruction-Set-Simulator) mit Mojo-V-Erweiterungen
- Mojo-V integriert in
riscv-isa-simund funktionsvollständig für eine RV64GC-CPU mit ML-KEM-512-Schlüsselkapselung für das Laden von Datenverträgen und SIMON-128-Symmetrischer-Schlüsselverschlüsselung für den Schutz der Secret Computation. - Um Spike mit aktivierten Mojo-V-Erweiterungen auszuführen, fügen Sie beim Ausführen von
spikedas Flag--isa=rv64gc_zicond_zkmojov_zicntrhinzu
- Mojo-V integriert in
-
Datenvertrags-Multitool
Datenverträge sind verschlüsselte Pakete, die der Hardware einer Mojo-V-CPU den Zugriff auf den Datenzugriffsschlüssel und Konfigurationsinformationen (z. B. Speicherverschlüsselungsmodus) für einen Mojo-V-verschlüsselten Datensatz ermöglichen. Das DC-Multitool ermöglicht die folgenden Funktionen:
- Hardwareentwickler können öffentliche/private ML-KEM512-Schlüsselpaare erstellen: Öffentliche Schlüssel werden mit Dienstanbietern geteilt, private Schlüssel werden in die Mojo-V-Hardwareimplementierung eingebettet.
- Dateneigentümer können Datenverträge erstellen und sie unter den öffentlichen ML-KEM512-Schlüsseln der Dienstanbieter verschlüsseln. Die passende Mojo-V-Hardware kann dann Secret Computation an den geschützten, von Dritten verschlüsselten Daten durchführen.
-
Mojo-V-Bringup-Bench-Benchmarks
- Vollständige Batterie von Sicherheitstests für RV64GC+Mojo-V
- Vollständige Batterie von Integritätsangriffstests für RV64GC+Mojo-V
- Vollständige Batterie von EXO-Compiler-Bibliothekstests
- Vollständige Batterien von EXO-Mathe- und String-Bibliothekstests
- Zahlreiche datenschutzorientierte Benchmarks, die mit der EXO-Mojo-V-Compiler-Bibliothek erstellt wurden
- Vollständige Batterie von Demonstrationsanwendungen für sichere Offenlegung
- Vollständige Batterie von zertifizierten TRNG-Demonstrationsanwendungen
- Handcodierte Beispiele (z. B. Bubble-Sort), die die funktionierende Secret Computation von Mojo-V zeigen
Hinweis: Der Rest der Bringup-Bench-Benchmarks wurde noch nicht auf Mojo-V portiert.
⚙️ Erstellen und Ausführen der Mojo-V-Referenzplattform
A. Installieren Sie einen RISC-V-LLVM-Compiler
Sie benötigen einen LLVM-basierten RISC-V-Cross-Compiler, der in der Lage ist, RV64GC-Binärdateien zu erzeugen.
Hier ist ein guter Ausgangspunkt: https://github.com/openssl/openssl
B. Installieren Sie OpenSSL Version 3.6 oder neuer
Sie benötigen eine Entwicklerinstallation von OpenSSL Version 3.6 oder neuer. Diese stellt Bibliotheken bereit, die ML-KEM512 implementieren, das von Spike für den geschützten Schlüsselaustausch verwendet wird.
Hier ist ein guter Ausgangspunkt: https://clang.llvm.org/get_started.html
C. Klonen Sie das Mojo-V-Repository```bash
git clone https://github.com/toddmaustin/mojo-v.git cd mojo-v
### D. Den RISC-V-Spike-Simulator mit Mojo-V-Unterstützung bauen```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. Data-Contract-Multi-Tool erstellen und testen
Data Contracts sind verschlüsselte Pakete, die es der Hardware einer Mojo-V-CPU ermöglichen, auf den Datenzugriffsschlüssel und die Konfigurationsinformationen (z. B. den Speicherverschlüsselungsmodus) für einen verschlüsselten Mojo-V-Datensatz zuzugreifen.``` cd dc-tool make clean build test
### **E. Mojo-V Bringup-Bench-Benchmarktests erstellen und ausführen**
1. **Den Spike-Gerätetreiber erstellen** ```bash
cd bringup-bench/target
make
-
Konfiguriere deinen Compiler
Bearbeite
../Makefileund setzeTARGET_CCfür dasmojov-Ziel auf den Speicherort deines LVM-Clang-basierten RISC-V-Compilers. -
Erstelle und teste die Bringup-Bench-Testprogramme ```bash cd .. # go to the top-level bringup-bench directory make TARGET=mojov-spike mojov-tests # run all Mojo-V tests
Als Alternative können Sie einen einzelnen Benchmark ausführen, indem Sie in dessen Verzeichnis wechseln und den folgenden Befehl ausführen. ```bash cd ../mojov-test make TARGET=mojov-spike clean build test
## 🧪 Übersicht der Mojo-V Bringup-Bench-Tests