
mojo-v mojov-v1.03
Extensão da ISA RISC-V para computação secreta reforçada por hardware usando encapsulamento de chaves ML-KEM-512 e criptografia SIMON-128, permitindo execução data-oblivious com desempenho próximo ao nativo.
Mojo-V: Computação Secreta para RISC-V
Mojo-V (pronunciado “mojo-five”) é uma nova extensão RISC-V que introduz capacidades de programação voltadas à privacidade para RISC-V. Mojo-V implementa computação secreta, permitindo execução segura, eficiente e independente dos dados, sem depender de software frágil ou da confiança no programador. Ao isolar dados sensíveis em registradores secretos dedicados e criptografar a memória sob uma chave de terceiros, Mojo-V previne divulgações e impõe uma computação que é tanto cega (sem divulgações diretas) quanto silenciosa (sem vazamento por canais laterais). O design integra-se perfeitamente à ISA RISC-V existente com apenas um bit de modo e quatro novas instruções, imposto inteiramente na decodificação. Os primeiros resultados mostram velocidades de execução próximas às nativas, ao mesmo tempo em que oferecem uma melhoria de desempenho de 5 a 7 ordens de grandeza em comparação com a criptografia totalmente homomórfica (FHE), com um roteiro claro para integração em CPUs, GPUs e aceleradores especializados.
Para saber mais...
- Aqui está um vídeo introdutório descrevendo Mojo-V: https://www.youtube.com/watch?v=HUT46TcNyyM
- Slides que fornecem uma visão geral do projeto Mojo-V: https://drive.google.com/file/d/1VVzZqYHvQgnKMgXZjg7I_cX2GzF7awSN
A Especificação Atual da Extensão de ISA Mojo-V (lançamento 1.02):
- [Em formato PDF.] (https://drive.google.com/file/d/1yfiBqp0xyXD-S_G5d2o7Ggta5wI6nRot)
Para entrar em contato com os desenvolvedores de Mojo-V:
- E-mail: [email protected]
🧩 Plataforma de Referência Mojo-V — Lançamento 1.03
🚧 Status do Projeto
A Plataforma de Referência Mojo-V, lançamento 1.03, implementa uma plataforma de simulação Spike de referência para RISC-V RV64GC e o compilador EXO para a Especificação de ISA Mojo-V v1.02. A implementação atual suporta modos de criptografia rápidos, fortes e com prova, juntamente com a divulgação segura de resultados de computação criptografados e geração certificada de números aleatórios. O lançamento inclui uma ampla gama de testes Mojo-V, benchmarks voltados à privacidade e aplicações demonstrativas para divulgação segura. Também inclui a especificação completa da ISA Mojo-V e a documentação para desenvolvedores.
Este lançamento é adequado para uso como i) uma plataforma de desenvolvimento de aplicações Mojo-V, ii) um modelo de referência para validar implementações de hardware Mojo-V e iii) uma implementação de referência para análise de segurança. O trabalho atual concentra-se no desenvolvimento de i) um compilador Mojo-V baseado em LLVM, ii) um modelo Mojo-V baseado em gem5 para exploração e análise arquitetural e iii) uma implementação RTL de referência CVA6 SystemVerilog de RISC-V RV64GC com extensões Mojo-V.
Versão da Especificação: 1.02 (agosto de 2026)
Contato: [email protected]
Componentes atuais
-
Especificação de ISA Mojo-V v1.02
- disponibilizada em
doc/
- disponibilizada em
-
Spike (Simulador de Conjunto de Instruções) com Extensões Mojo-V
- Mojo-V integrado ao
riscv-isa-sim, e funcionalmente completo para uma CPU RV64GC com encapsulamento de chave ML-KEM-512 para carregamento de contrato de dados e criptografia de chave simétrica SIMON-128 para proteção da computação secreta. - Para executar o Spike com as extensões Mojo-V habilitadas, adicione a flag
--isa=rv64gc_zicond_zkmojov_zicntrao executarspike
- Mojo-V integrado ao
-
Ferramenta Multiuso de Contrato de Dados
Contratos de dados são pacotes criptografados que permitem que o hardware de uma CPU Mojo-V acesse a chave de acesso a dados e as informações de configuração (por exemplo, modo de criptografia de memória) para um conjunto de dados criptografados Mojo-V. A Ferramenta Multiuso DC permite as seguintes capacidades:
- Desenvolvedores de hardware podem criar pares de chaves públicas/privadas ML-KEM512: chaves públicas são compartilhadas com provedores de serviços, chaves privadas são incorporadas na implementação de hardware Mojo-V.
- Proprietários de dados podem criar contratos de dados e criptografá-los sob as chaves públicas ML-KEM512 dos provedores de serviços. O hardware Mojo-V correspondente pode então realizar computação secreta sobre os dados criptografados protegidos de terceiros.
-
Benchmarks Mojo-V Bringup-Bench
- Bateria completa de testes de segurança para RV64GC+Mojo-V
- Bateria completa de testes de ataque à integridade para RV64GC+Mojo-V
- Bateria completa de testes da biblioteca do compilador EXO
- Baterias completas de testes das bibliotecas matemática e de strings do EXO
- Diversos benchmarks voltados à privacidade construídos usando a biblioteca do compilador EXO Mojo-V
- Bateria completa de aplicações de demonstração de divulgação segura
- Bateria completa de aplicações de demonstração de TRNG certificado
- Exemplos codificados à mão (por exemplo, bubble-sort) mostrando a computação secreta em funcionamento no Mojo-V
Nota: o restante dos benchmarks Bringup-bench ainda NÃO foi portado para Mojo-V.
⚙️ Compilando e Executando a Plataforma de Referência Mojo-V
A. Instale um Compilador LLVM RISC-V
Você precisará de um compilador cruzado RISC-V baseado em LLVM capaz de produzir binários RV64GC.
Aqui está um bom lugar para começar: https://github.com/openssl/openssl
B. Instale OpenSSL versão 3.6 ou mais recente
Você precisará de uma instalação de desenvolvedor do OpenSSL versão 3.6 ou mais recente. Isso fornece bibliotecas que implementam ML-KEM512, usadas pelo Spike para troca de chaves protegida.
Aqui está um bom lugar para começar: https://clang.llvm.org/get_started.html
C. Clone o Repositório Mojo-V```bash
git clone https://github.com/toddmaustin/mojo-v.git cd mojo-v
### D. Construir o simulador RISC-V Spike com suporte 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. Construir e testar a Multi-ferramenta de Contrato de Dados
Os contratos de dados são pacotes criptografados que permitem que o hardware de uma CPU Mojo-V acesse a chave de acesso a dados e as informações de configuração (por exemplo, modo de criptografia de memória) para um conjunto de dados criptografados Mojo-V.``` cd dc-tool make clean build test
### **E. Compilar e executar os testes de benchmark Bringup-Bench do Mojo-V**
1. **Compilar o driver de dispositivo Spike** ```bash
cd bringup-bench/target
make
-
Configure seu compilador
Edite o
../Makefilee definaTARGET_CCpara o alvomojovcomo a localização do seu compilador LVM baseado em Clang para RISC-V. -
Compile e teste os programas de teste do Bringup-Bench ```bash cd .. # go to the top-level bringup-bench directory make TARGET=mojov-spike mojov-tests # run all Mojo-V tests
Como alternativa, você pode executar um benchmark individual entrando em seu diretório e executando o seguinte comando. ```bash cd ../mojov-test make TARGET=mojov-spike clean build test
## 🧪 Visão Geral dos Testes Mojo-V Bringup-Bench