업데이트로 돌아가기
New releaseAug 13, 2026

mojo-v mojov-v1.03

ML-KEM-512 키 캡슐화와 SIMON-128 암호화를 사용하는 하드웨어 강제 비밀 연산용 RISC-V ISA 확장으로, 네이티브에 가까운 성능으로 데이터 무관 실행을 가능하게 합니다.

공유

Mojo-V Logo

Mojo-V: RISC-V를 위한 비밀 연산

Mojo-V (발음: “mojo-five”)는 RISC-V를 위한 새로운 RISC-V 확장으로, 개인정보 보호 지향 프로그래밍 기능을 도입합니다. Mojo-V는 비밀 연산(secret computation)을 구현하여 취약한 소프트웨어와 프로그래머 신뢰에 의존하지 않고도 안전하고 효율적이며 데이터 비노출(data-oblivious) 실행을 가능하게 합니다. 민감한 데이터를 전용 비밀 레지스터에 격리하고 제3자 키로 메모리를 암호화함으로써, Mojo-V는 정보 노출을 방지하고 직접적인 노출이 없는(blind) 동시에 부채널 누출이 없는(silent) 연산을 강제합니다. 이 설계는 단 하나의 모드 비트와 네 개의 새 명령어만으로 기존 RISC-V ISA에 완벽하게 통합되며, 전적으로 디코드 단계에서 적용됩니다. 초기 결과는 완전 동형 암호화(FHE)와 비교해 5~7 자릿수 이상의 성능 향상을 제공하면서도 네이티브에 가까운 실행 속도를 보여주며, CPU, GPU 및 특수 가속기로의 통합을 위한 명확한 로드맵을 제시합니다.

자세한 내용을 보려면...

현재 Mojo-V ISA 확장 사양(릴리스 1.02):

Mojo-V 개발자에게 연락하려면:

🧩 Mojo-V 참조 플랫폼 — 릴리스 1.03

🚧 프로젝트 상태

Mojo-V 참조 플랫폼 릴리스 1.03은 RISC-V RV64GC용 참조 Spike 시뮬레이터 플랫폼과 Mojo-V ISA 사양 v1.02용 EXO 컴파일러를 구현합니다. 현재 구현은 고속, 강력, 증명 수반 암호화 모드와 함께 암호화된 연산 결과의 안전한 공개 및 인증된 난수 생성을 지원합니다. 이 릴리스는 광범위한 Mojo-V 테스트, 개인정보 보호 지향 벤치마크, 안전한 공개를 위한 데모 애플리케이션을 포함합니다. 또한 완전한 Mojo-V ISA 사양과 개발자 문서를 포함합니다.

이 릴리스는 i) Mojo-V 애플리케이션 개발 플랫폼, ii) Mojo-V 하드웨어 구현 검증을 위한 골든 모델, iii) 보안 분석용 참조 구현으로 사용하기에 적합합니다. 현재 작업은 i) LLVM 기반 Mojo-V 컴파일러, ii) 아키텍처 탐색 및 분석을 위한 gem5 기반 Mojo-V 모델, iii) Mojo-V 확장을 포함한 RISC-V RV64GC의 참조 CVA6 SystemVerilog RTL 구현 개발에 초점을 맞추고 있습니다.

사양 버전: 1.02 (2026년 8월)
연락처: [email protected]

현재 구성 요소

  1. Mojo-V ISA 사양 v1.02

    • doc/에 릴리스되어 있습니다.
  2. Mojo-V 확장 기능을 갖춘 Spike(명령어 집합 시뮬레이터)

    • Mojo-V는 riscv-isa-sim에 통합되어 있으며, 데이터 계약 로딩을 위한 ML-KEM-512 키 캡슐화와 비밀 연산 보호를 위한 SIMON-128 대칭 키 암호화를 갖춘 RV64GC CPU에 대해 기능이 완전합니다.
    • Mojo-V 확장을 활성화한 상태로 Spike를 실행하려면 spike 실행 시 --isa=rv64gc_zicond_zkmojov_zicntr 플래그를 추가하세요.
  3. 데이터 계약 멀티툴

    데이터 계약은 Mojo-V CPU 하드웨어가 Mojo-V 암호화 데이터 세트에 대한 데이터 액세스 키와 구성 정보(예: 메모리 암호화 모드)에 접근할 수 있게 해주는 암호화 패킷입니다. DC 멀티툴은 다음 기능을 제공합니다:

    • 하드웨어 개발자는 공개/비공개 ML-KEM512 키 쌍을 생성할 수 있습니다. 공개 키는 서비스 제공자와 공유되고, 비공개 키는 Mojo-V 하드웨어 구현에 내장됩니다.
    • 데이터 소유자는 데이터 계약을 생성하고 서비스 제공자의 공개 ML-KEM512 키로 암호화할 수 있습니다. 그러면 일치하는 Mojo-V 하드웨어가 보호된 제3자 암호화 데이터에 대해 비밀 연산을 수행할 수 있습니다.
  4. Mojo-V Bringup-Bench 벤치마크

    • RV64GC+Mojo-V에 대한 전체 보안 테스트 배터리
    • RV64GC+Mojo-V에 대한 전체 무결성 공격 테스트 배터리
    • EXO 컴파일러 라이브러리 테스트의 전체 배터리
    • EXO 수학 및 문자열 라이브러리 테스트의 전체 배터리
    • EXO Mojo-V 컴파일러 라이브러리를 사용하여 구축된 다양한 개인정보 보호 지향 벤치마크
    • 안전한 공개 데모 애플리케이션의 전체 배터리
    • 인증된 TRNG 데모 애플리케이션의 전체 배터리
    • Mojo-V가 비밀 연산을 수행하는 모습을 보여주는 수작업 코딩 예제(예: 버블 정렬)

참고: 나머지 Bringup-bench 벤치마크는 아직 Mojo-V로 포팅되지 않았습니다.

⚙️ Mojo-V 참조 플랫폼 빌드 및 실행

A. RISC-V LLVM 컴파일러 설치

RV64GC 바이너리를 생성할 수 있는 LLVM 기반 RISC-V 크로스 컴파일러가 필요합니다.

여기에서 시작하는 것이 좋습니다: https://github.com/openssl/openssl

B. OpenSSL 버전 3.6 이상 설치

OpenSSL 버전 3.6 이상의 개발자 설치가 필요합니다. 이는 Spike가 보호된 키 교환에 사용하는 ML-KEM512를 구현하는 라이브러리를 제공합니다.

여기에서 시작하는 것이 좋습니다: https://clang.llvm.org/get_started.html

C. Mojo-V 저장소 클론```bash

git clone https://github.com/toddmaustin/mojo-v.git cd mojo-v

### D. Mojo-V를 지원하는 RISC-V Spike 시뮬레이터 빌드```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 빌드 및 테스트

데이터 계약은 Mojo-V CPU 하드웨어가 Mojo-V 암호화 데이터 세트의 데이터 액세스 키 및 구성 정보(예: 메모리 암호화 모드)에 액세스할 수 있게 해주는 암호화된 패킷입니다.``` cd dc-tool make clean build test

### **E. Mojo-V Bringup-Bench 벤치마크 테스트 빌드 및 실행**

1. **Spike 디바이스 드라이버 빌드**   ```bash
   cd bringup-bench/target
   make
  1. 컴파일러 구성

    ../Makefile을 편집하고 mojov 타깃의 TARGET_CC를 LVM Clang 기반 RISC-V 컴파일러의 위치로 설정하세요.

  2. Bringup-Bench 테스트 프로그램 빌드 및 테스트 ```bash cd .. # go to the top-level bringup-bench directory make TARGET=mojov-spike mojov-tests # run all Mojo-V tests

대안으로, 해당 디렉토리로 이동하여 다음 명령을 실행함으로써 개별 벤치마크를 실행할 수 있습니다. ```bash cd ../mojov-test make TARGET=mojov-spike clean build test

## 🧪 Mojo-V Bringup-Bench 테스트 개요

| 프로그램 | 설명 |
|:---------|:-------------|
| `mojov-test` | 슬라이드에서 가져온 소개 예제 |
| `mojov-test1` | 비밀 레지스터 및 암호화 메모리 의미론 테스트 |
| `mojov-test2` | Mojo-V 고속 암호화(int,fast)를 사용하는 수작업 코딩 데이터-비의존적 정수 버블 정렬 벤치마크 |
| `mojov-test3` | Mojo-V 고속 암호화(fp,fast)를 사용하는 수작업 코딩 데이터-비의존적 부동소수점 버블 정렬 벤치마크 |
| `mojov-test4` | Mojo-V 강력한 암호화(int,strong)를 사용하는 수작업 코딩 데이터-비의존적 정수 버블 정렬 벤치마크 |
| `mojov-test5` | Mojo-V 강력한 암호화(fp,strong)를 사용하는 수작업 코딩 데이터-비의존적 부동소수점 버블 정렬 벤치마크 |
| `mojov-typetests` | Mojo-V 암호화 타입 및 EXO 라이브러리 사용에 대한 타입 시스템 검증 테스트 |
| `mojov-pctests` | Mojo-V의 증명 전달 암호화 형식(proofcarrying)에 대한 긍정 및 부정 테스트를 포함하는 RV64GC+Mojo-V용 수작업 코딩 무결성 검사 테스트 스위트 |
| `mojov-sectests` | 130개의 긍정 및 245개의 부정 테스트(총 375개)를 포함하는 RV64GC+Mojo-V용 수작업 코딩 보안 테스트 스위트 (int,fp,fast,strong) |
| `mojov-stringtests` | 안전한 문자열 연산 및 비교를 위한 암호화된 EXO 문자열 라이브러리 검증 테스트 |
| `mojov-mathtests` | `_sincos`, `mojov_sin`, `mojov_cos`, `mojov_fabs`, `mojov_floor`, `mojov_pow`, `mojov_round`, `mojov_sqrt`에 대한 암호화된 EXO 수학 라이브러리 검증 테스트 |

이 테스트 벤치마크는 Mojo-V ISA 규칙, EXO 라이브러리 동작 및 보안 의미론을 보여줍니다.

## 🧪 Mojo-V Bringup-Bench 벤치마크 개요

현재 브링업 벤치마크 세트에는 다음 Mojo-V 벤치마크 애플리케이션이 포함됩니다.

카테고리