Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
mojo-v — ML-KEM-512 키 캡슐화와 SIMON-128 암호화를 사용하는 하드웨어 강제 비밀 연산용 RISC-V ISA 확장으로, 네이티브에 가까운 성능으로 데이터 무관 실행을 가능하게 합니다. | Kitploit
도구/GitHubGitHub/toddmaustin/mojo-v
Embedded Systems SecurityEncryption/Decryption ToolsCryptographyPrivacyHardware SecurityPapers & ResearchLearning & Education
GitHubtoddmaustin/mojo-v

mojo-v

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

저장소 보기
15098일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

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를 소개하는 소개 영상: https://www.youtube.com/watch?v=HUT46TcNyyM
  • Mojo-V 프로젝트 개요를 제공하는 슬라이드: https://drive.google.com/file/d/1VVzZqYHvQgnKMgXZjg7I_cX2GzF7awSN

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

  • [PDF 형식.] (https://drive.google.com/file/d/1yfiBqp0xyXD-S_G5d2o7Ggta5wI6nRot)

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

  • 이메일: [email protected]

🧩 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

root@kitploit:~
### 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

root@kitploit:~
### **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

    root@kitploit:~

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

root@kitploit:~
## 🧪 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 벤치마크 애플리케이션이 포함됩니다.

| 프로그램 | 설명 |
|:---------|:-------------|
| `bitonic-sort` | 데이터-비의존적 바이토닉 정렬 벤치마크 |
| `bloom-filter` | 블룸 필터 집합-소속 벤치마크 |
| `bubble-sort` | 정수 버블 정렬 벤치마크 |
| `bubble-sort-strong` | 강력한 암호화로 구성된 정수 버블 정렬 벤치마크 |
| `chi-squared` | 카이제곱 통계 적합도 검정 벤치마크 |
| `distinctness` | 고유성 분석 벤치마크 |
| `distinctness-Onlog2n` | O(n log² n) 전략을 사용하는 고유성 벤치마크 변형 |
| `edit-distance` | 편집 거리(문자열 거리) 벤치마크 |
| `eulers-approx` | 오일러 상수/급수 근사 벤치마크 |
| `fft-int` | 정수 FFT 벤치마크 |
| `flood-fill` | 플러드 필 벤치마크 |
| `flood-fill-On2` | O(n²) 동작을 갖는 플러드 필 벤치마크 변형 |
| `fuzzy-match` | 퍼지 문자열 매칭 벤치마크 |
| `gcd-list` | 리스트에 대한 최대공약수 벤치마크 |
| `gemm` | 일반 행렬 곱셈 벤치마크 |
| `gemm-strong` | 강력한 암호화로 구성된 GEMM 벤치마크 |
| `grad-descent` | 경사 하강 최적화 벤치마크 |
| `heat-calc` | 열 전달/열 방정식 계산 벤치마크 |
| `heldkarp-tsp` | 암호화된 그래프에 대한 Held-Karp 동적 프로그래밍 외판원 벤치마크 |
| `highlife` | 암호화된 보드 상태 진화를 갖는 HighLife 셀룰러 오토마타 벤치마크 |
| `kadane` | 최대 부분배열 벤치마크 (Kadane 알고리즘) |
| `kalman-filter` | 칼만 필터링 벤치마크 |
| `kcore-decomp` | 그래프 k-core 분해 벤치마크 |
| `kepler-calc` | 케플러 방정식/수치 계산 벤치마크 |
| `knapsack` | 배낭 최적화 벤치마크 |
| `lcs` | 암호화된 문자열에 대한 데이터-비의존적 최장 공통 부분 수열 벤치마크 |
| `lda` | 잠재 디리클레 할당 벤치마크 |
| `manacher-lps` | 최장 팰린드롬 부분 문자열 벤치마크 (Manacher 알고리즘) |
| `mersenne` | 메르센 수 계산 벤치마크 |
| `minspan` | 최소 신장 구조 벤치마크 |
| `monte-carlo` | 몬테카를로 시뮬레이션 벤치마크 |
| `moving-average` | 이동 평균 분석 벤치마크 |
| `moving-average-fp64` | FP64 이동 평균 분석 벤치마크 |
| `nbody-sim` | N-체 시뮬레이션 벤치마크 |
| `nonlinear-nn` | 비선형 신경망 벤치마크 |
| `nr-solver` | 뉴턴-랩슨 솔버 벤치마크 |
| `ntt-kernel` | 수론적 변환 커널 벤치마크 |
| `packet-filter` | 패킷 필터링 벤치마크 |
| `pagerank` | PageRank 그래프 벤치마크 |
| `parrondo` | Parrondo 과정/전략 벤치마크 |
| `partition-equal` | 암호화된 집합에 대한 분할 동일 부분집합 합 벤치마크 |
| `pca-analysis` | 주성분 분석 벤치마크 |
| `primal-test` | 소수 판정 벤치마크 |
| `private-join` | 프라이버시 보존 조인 벤치마크 |
| `psi` | 개인 집합 교집합 벤치마크 |
| `quartile-stats` | 암호화된 데이터에 대한 사분위수 절단 및 사분위수 평균 분석 벤치마크 |
| `rabinkarp-search` | 라빈-카프 패턴 검색 벤치마크 |
| `rad-to-deg` | 라디안-도 변환 벤치마크 |
| `randshell-sort` | 무작위 셸 정렬 벤치마크 |
| `ransac` | RANSAC 모델 피팅 벤치마크 |
| `regex-match` | 정규 표현식 매칭 벤치마크 |
| `risk-score` | 위험 점수 분석 벤치마크 |
| `scrambled-compare` | 암호화된 동적 프로그래밍을 사용하는 스크램블 문자열 비교 벤치마크 |
| `seq-align` | 암호화된 문자열에 대한 전역 서열 정렬 벤치마크 (Needleman-Wunsch) |
| `shortest-path` | 최단 경로 그래프 벤치마크 |
| `sieve` | 소수 체 벤치마크 |
| `skeleton` | 브링업(bring-up) 기준으로 사용되는 스켈레톤/템플릿 벤치마크 |
| `soundex` | Soundex 음성 인코딩 벤치마크 |
| `string-search` | 문자열 검색 벤치마크 |
| `tea-cipher` | TEA 암호 벤치마크 |
| `tiny-NN` | 소형 신경망 추론 벤치마크 |
| `triangle-count` | 삼각형 개수 세기 그래프 벤치마크 |
| `variability-sample` | 변동성 및 표본 통계 벤치마크 |
| `verlet` | Verlet 적분 물리 벤치마크 |

## Mojo-V 안전 공개 데모 개요

Mojo-V는 `bringup-bench`에 세 가지 안전 공개 데모 벤치마크를 포함합니다. 이 애플리케이션들은 증명 전달 암호화 메모리와 암호화 데이터 그랜트를 사용하여, 프로그램이 민감한 입력에 대해 계산하고, 명시적으로 승인된 파생 결과만 공개하며, 다른 값, 원시 입력, 오래된 계산, 변조된 그랜트 또는 중간 조건자에 대해 그랜트를 재사용하려는 시도를 트래핑하는 방법을 보여줍니다.

| 프로그램 | 민감한 입력 | 승인된 공개 | 입증된 보호 기능 |
|:---------|:----------------|:------------------------|:--------------------------|
| `private-auction` | 8개의 암호화된 비공개 입찰가. | 낙찰자 ID 및 낙찰가. | 암호화된 비교와 `cmov()`로 최대 입찰가를 찾은 다음, 출력별 데이터 그랜트를 검증합니다. 부정 사례는 불일치 그랜트, 원시 낙찰가 공개, 가짜 또는 변조된 그랜트, 경매 변경 후 오래된 그랜트, 파생된 `winning_bid + 1` 값 및 중간 비교 조건자를 거부합니다. |
| `vote-tally` | 세 후보에 걸친 32개의 암호화된 투표용지(두 개의 무효 투표용지 포함). | 후보 A, B, C에 대한 집계 득표 수와 투표용지별 큐어 조건자. | 모든 후보 득표 수와 투표용지 유효성 조건자를 암호화된 형태로 계산합니다. 부정 사례는 한 집계 그랜트를 다른 집계에 사용하는 것, 원시 투표용지 공개, 가짜 또는 변조된 그랜트, 투표용지 수정 후 오래된 그랜트, 파생된 집계 값 및 중간 투표용지 조건자를 거부합니다. |
| `gene-risk` | 장난감(toy) 유전체 위험 워크로드를 위한 8개의 암호화된 SNP 마커 용량. | 파생된 다유전자 위험 점수와 저/중/고 위험 버킷. | 가중 위험 점수를 누적하고 암호화된 조건자와 `cmov()`로 위험 버킷을 도출합니다. 부정 사례는 점수와 버킷 그랜트의 교차 사용, 원시 마커 공개, 가짜 또는 변조된 그랜트, 유전체 변경 후 오래된 그랜트, 파생된 점수 값 및 중간 고위험 조건자를 거부합니다. |

각 데모는 `MOJOV_DISCAPPS`에 나열되어 있으므로 안전 공개 애플리케이션 배터리의 일부입니다. 하나를 직접 실행하려면 해당 벤치마크 디렉터리로 이동하여 Mojo-V 대상을 사용하십시오. 예:```bash
cd bringup-bench/private-auction
make TARGET=mojov-spike clean build test

데모를 수동으로 실행할 때 Spike의 --mojov-arg=<n> 옵션을 사용하여 정상 경로(0) 또는 부정적 공개 테스트 중 하나(1 이상)를 선택하세요.

Mojo-V 인증 TRNG 데모 개요

Mojo-V는 세 가지 인증 진난수 생성기(CERTRNG) 데모 벤치마크를 bringup-bench에 포함합니다. 이들은 서로 다른 CERTRNG 사이트, 증명 전달 암호화 계산, 요청 nonce를 사용하여 클라이언트가 승인된 계산의 어느 지점에 새 난수 값이 입력되었는지 검증할 수 있음을 보여줍니다. 결과는 영수증 검증과 커밋 전까지 암호화된 상태로 유지됩니다. 부정적 사례들은 소프트웨어 생성 난수, 누락되거나 재사용된 추출, 잘못된 사이트 할당, 만료된 요청, 변경된 계산 그래프, 그리고 편향된 재표본추출이 정직한 데이터 부여를 충족하지 못함을 보여줍니다. 또한 중요한 한계: 커밋 전에 (Mojo-V DISC 또는 FDISC 명령어를 사용하여) 결과가 공개되면 인증된 난수만으로는 그라인딩을 막을 수 없습니다.

이 데모들은 MOJOV_CERTRNG_APPS에 나열되어 있으므로 Mojo-V 벤치마크 배터리에 포함됩니다. 하나를 해당 디렉터리에서 직접 실행할 수 있습니다. 예를 들어:```bash cd bringup-bench/blind-audit make TARGET=mojov-spike clean build test

root@kitploit:~
Use Spike's `--mojov-arg=<n>` option when running a demonstrator manually. Case `0` is the honest path, low-numbered cases are successful explanatory controls, and cases `10` and higher are attacks expected to terminate with a Mojo-V security exception. The exact matrix for each application is documented in its benchmark-local `README.md`.

Spike의 `--mojov-arg=<n>` 옵션을 사용하여 데모를 수동으로 실행하십시오. 케이스 `0`은 정직한 경로이고, 낮은 번호의 케이스는 성공적인 설명용 제어이며, 케이스 `10` 이상은 Mojo-V 보안 예외로 종료될 것으로 예상되는 공격입니다. 각 애플리케이션의 정확한 매트릭스는 해당 벤치마크 로컬 `README.md`에 문서화되어 있습니다.


## 🛠️ Mojo-V 데이터 계약 멀티툴 사용법

데이터 계약 멀티툴 "dc-tool"은 Mojo-V 데이터 계약을 생성하고 검증하는 데 사용됩니다.

ML-KEM512 공개/개인 키 쌍을 생성하려면 다음 명령을 실행하십시오. 공개 키는 데이터 계약을 준비하기 위해 제3자 데이터 제공자와 공유해야 합니다. 개인 키는 하드웨어(또는 시뮬레이터)에 설치됩니다.```bash
./dc-tool keygen <pk_file> <sk_file>          # public key in <pk_file>, private key in <sk_file>

공개/개인 키 쌍이 존재하면 암호화된 데이터 계약을 생성할 수 있습니다. 데이터 계약에는 암호화된 데이터 액세스 키(Mojo-V 하드웨어가 타사 데이터에 액세스하기 위한 키)와 암호화된 메모리 모드 구성이 포함됩니다. 다음 명령을 실행하여 암호화된 데이터 계약을 생성하십시오.```bash ./dc-tool dcgen <pk_file> {fast,strong,proof-carrying} <ct_file> # specify mem mode, contract in <ct_file>

root@kitploit:~
계약을 암호화하는 데 사용된 공개 ML-KEM512 키에 해당하는 Mojo-V 하드웨어와 암호화된 데이터 계약을 공유하면, Mojo-V 지원 CPU가 보호된 제3자 데이터에 대해 비밀 연산을 수행할 수 있습니다. 암호화된 계약이 유효한지 검증하려면 다음 명령어를 사용하십시오.```bash
./dc-tool dcchk <sk_file> <ct_file>           # decrypt contract <ct_file> with secret key <sk_file>
./dc-tool dcchk-v <sk_file> <ct_file>         # same as above, but also dump decrypted contents of <ct_file>

🛠️ RISC-V Spike ISA 시뮬레이터에 추가된 Mojo-V 전용 옵션

표준 RISC-V ISA 시뮬레이터인 Spike에 다음 옵션들이 추가되었습니다.```bash --mojov-verbose Mojo-V setup processing is verbose --mojov-fast Use Mojo-V fast encryption mode (default mode) --mojov-strong Use Mojo-V strong encryption format (otherwise using data contract specified mode) --mojov-proofcarrying Use Mojo-V proof-carrying encryption format (otherwise use data contract specified mode) --mojov-arg= Pass a numeric argument to a Mojo-V test code --mojov-pk=<pem_file> Load Mojo-V CPU public key from <pem_file> --mojov-sk=<pem_file> Load Mojo-V CPU secret key from <pem_file>

root@kitploit:~
## 🧠 Mojo-V 프로그래밍 개요

Mojo-V 소프트웨어 개발은 현재 EXO 컴파일러 라이브러리를 사용하며 안전한 데이터 비의존적(data-oblivious) 코딩 방식을 따릅니다:

1. **EXO 라이브러리 헤더로 프로그래밍**
   - `exo/mojov-exo.h`를 포함하여 Mojo-V 프로그래밍 프레임워크와 암호화 타입 추상화에 접근합니다.
   - `exo/mojov-math.h`를 포함하여 암호화된 수학 연산 지원 및 헬퍼 연산에 접근합니다.

2. **암호화된 변수에 데이터 비의존적 계산 사용**
   - 암호화된 값은 Mojo-V의 무소음 실행과 부채널 저항 목표를 유지하기 위해 데이터 비의존적 제어 흐름 및 메모리 접근 패턴으로 조작되어야 합니다.

3. **EXO 프로그래밍 튜토리얼 따르기**
   - EXO 프로그래밍 가이드를 참조하세요: [exo/EXO-library-programming.md](https://github.com/toddmaustin/mojo-v/blob/HEAD/exo/EXO-library-programming.md)

4. **EXO 문서에서 컴파일러 구조 및 아키텍처 세부 사항 확인**
   - 현재 Mojo-V 컴파일러/라이브러리 접근 방식에 대한 내부 구조 및 설계 맥락은 다음 문서에 설명되어 있습니다: [exo/EXO-library-overview.md](https://github.com/toddmaustin/mojo-v/blob/HEAD/exo/EXO-library-overview.md)

---
## 코드 라이선스
이 저장소의 모든 Mojo-V 관련 코드는 수정된 도구(예: Spike, LLVM, Bringup-Bench)의 라이선스에 따라 배포됩니다. 라이선스 세부 사항은 각 도구의 해당 디렉터리를 참조하세요.

---

## 💬 질문 및 피드백
기여, 버그 보고, 제안을 환영합니다!

📧 **이메일:** [[email protected]](mailto:[email protected])  
🌐 **프로젝트 홈:** [https://github.com/toddmaustin/mojo-v](https://github.com/toddmaustin/mojo-v)
도구 다운로드
Program인증 난수 워크로드정상 동작입증된 보호 기능
blind-audit여덟 개의 서로 다른 요청에 묶인 난수 우선순위 중 최솟값을 취해 여덟 개의 감사 기록 중 하나를 선택합니다.전체 고정 argmin 그래프를 인증하며, 사용되지 않은 추출이 영수증에 영향을 미치지 않는다는 것과 조기 공개가 그라인딩을 가능하게 한다는 것도 보여줍니다.강제된 대상, 소프트웨어 RNG, 누락되거나 만료된 nonce, 추출 재사용, 누락된 후보, 서로 바뀐 사이트, 미리 계산된 선택의 재생을 거부합니다.
diffpriv-count16개의 서로 다른 난수 사이트를 사용하여, 두 독립적인 Binomial(8, 1/2) 값의 차이로 형성된 중심 이항 노이즈를 암호화된 개수에 더합니다.노이즈와 답변을 검증 전까지 숨긴 채 정밀한 노이즈 생성 및 요청 결합 그래프를 인증합니다.누락되거나 약화된 노이즈, 소프트웨어 RNG, 유리한 재표본추출, 만료된 요청 재생을 거부합니다. 관련 없는 미사용 난수는 영수증 외부에 남습니다.
certified-lotto여덟 개의 암호화된 항목 중 최고 점수의 적격 참가자를 선택하고, 점수 동률을 깨기 위해 서로 다른 요청에 묶인 우선순위를 사용합니다.모든 참가자, 난수 사이트, nonce 혼합, 토너먼트 단계를 인증하며, 미사용 추출 동작과 커밋 전 공개로 인한 그라인딩 위험도 보여줍니다.누락된 참가자, 소프트웨어 RNG, 건너뛰거나 만료된 nonce, 추출 재사용, 서로 바뀐 사이트, 결정적 동률 해결기를 거부합니다.