Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
mojo-v — امتداد لمجموعة تعليمات RISC-V ISA للحوسبة السرية المدعومة عبر العتاد، باستخدام تغليف مفاتيح ML-KEM-512 وتشفير SIMON-128، ما يتيح تنفيذًا غير مُطلِعٍ على البيانات (data-oblivious) بأداء قريب من الأداء الأصلي. | Kitploit
أدوات/GitHubGitHub/toddmaustin/mojo-v
أمان الأنظمة المدمجةأدوات التشفير/فك التشفيرالتشفيرالخصوصيةأمن الأجهزةالأوراق والأبحاثالتعلم والتعليم
GitHubtoddmaustin/mojo-v

mojo-v

امتداد لمجموعة تعليمات RISC-V ISA للحوسبة السرية المدعومة عبر العتاد، باستخدام تغليف مفاتيح ML-KEM-512 وتشفير SIMON-128، ما يتيح تنفيذًا غير مُطلِعٍ على البيانات (data-oblivious) بأداء قريب من الأداء الأصلي.

عرض المستودع
15095منذ 29 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

Mojo-V Logo

Mojo-V: الحوسبة السرية لـ RISC-V

Mojo-V (تُنطق “mojo-five”) هو امتداد جديد لمعمارية RISC-V يقدّم إمكانيات برمجة موجهة للخصوصية لـ RISC-V. ينفّذ Mojo-V الحوسبة السرية، مما يتيح تنفيذًا آمنًا وفعّالًا وغير مكشوف للبيانات دون الاعتماد على برمجيات هشّة أو ثقة المبرمج. من خلال عزل البيانات الحساسة في سجلات سرية مخصصة وتشفير الذاكرة بمفتاح طرف ثالث، يمنع Mojo-V تسريب المعلومات ويفرض حوسبة تكون عمياء (بدون كشف مباشر) وصامتة (بدون تسريب عبر القنوات الجانبية). يندمج التصميم بسلاسة في مجموعة تعليمات RISC-V الحالية باستخدام بت وضع واحد وأربع تعليمات جديدة فقط، ويُطبَّق بالكامل عند مرحلة فك الترميز. تُظهر النتائج المبكرة سرعات تنفيذ شبه أصلية مع تحسين في الأداء يتراوح بين 5-7 مراتب من حيث الحجم مقارنة بالتشفير المتماثل بالكامل (FHE)، مع خارطة طريق واضحة للتكامل في وحدات المعالجة المركزية ووحدات معالجة الرسوميات والمسرّعات المتخصصة.

لمعرفة المزيد...

  • إليك فيديو تعريفي يصف Mojo-V: https://www.youtube.com/watch?v=HUT46TcNyyM
  • شرائح تعطي نظرة عامة على مشروع Mojo-V: https://drive.google.com/file/d/1VVzZqYHvQgnKMgXZjg7I_cX2GzF7awSN

مواصفة امتداد ISA الحالية لـ Mojo-V (الإصدار 1.02):

  • [بتنسيق PDF.] (https://drive.google.com/file/d/1yfiBqp0xyXD-S_G5d2o7Ggta5wI6nRot)

للتواصل مع مطوّري Mojo-V:

  • البريد الإلكتروني: [email protected]

🧩 منصة Mojo-V المرجعية — الإصدار 1.03

🚧 حالة المشروع

يصدر الإصدار 1.03 من منصة Mojo-V المرجعية منصة محاكاة Spike مرجعية لـ RISC-V RV64GC ومترجم EXO لمواصفة ISA الخاصة بـ Mojo-V الإصدار 1.02. يدعم التطبيق الحالي أنماط التشفير السريع والقوي وحامل الإثبات، إلى جانب الكشف الآمن عن نتائج الحوسبة المشفرة وتوليد الأرقام العشوائية المعتمد. تتضمن النسخة مجموعة واسعة من اختبارات Mojo-V ومعايير الأداء الموجهة للخصوصية وتطبيقات توضيحية للكشف الآمن. كما تتضمن مواصفة ISA الكاملة لـ Mojo-V ووثائق المطوّرين.

هذه النسخة مناسبة للاستخدام كـ i) منصة لتطوير تطبيقات Mojo-V، ii) نموذج ذهبي للتحقق من تطبيقات أجهزة Mojo-V، iii) تطبيق مرجعي لتحليل الأمان. يركز العمل الحالي على تطوير i) مترجم Mojo-V يعتمد على LLVM، ii) نموذج Mojo-V قائم على gem5 للاستكشاف والتحليل المعماري، وiii) تطبيق مرجعي CVA6 SystemVerilog RTL لـ RISC-V RV64GC مع امتدادات Mojo-V.

إصدار المواصفة: 1.02 (أغسطس 2026)
للتواصل: [email protected]

المكونات الحالية

  1. مواصفة ISA لـ Mojo-V الإصدار 1.02

    • مُصدَرة في doc/
  2. Spike (محاكي مجموعة التعليمات) مع امتدادات Mojo-V

    • تم دمج Mojo-V في riscv-isa-sim، وهو مكتمل الميزات لوحدة معالجة مركزية RV64GC مع تغليف المفاتيح ML-KEM-512 لتحميل عقود البيانات، وتشفير المفتاح المتماثل SIMON-128 لحماية الحوسبة السرية.
    • لتشغيل Spike مع تفعيل امتدادات Mojo-V، أضف العلم --isa=rv64gc_zicond_zkmojov_zicntr عند تشغيل spike
  3. الأداة المتعددة لعقود البيانات

    عقود البيانات هي حزم مشفرة تتيح لعتاد وحدة معالجة Mojo-V الوصول إلى مفتاح الوصول إلى البيانات ومعلومات الإعداد (مثل وضع تشفير الذاكرة) لمجموعة بيانات مشفرة عبر Mojo-V. تتيح أداة DC متعددة الوظائف الإمكانيات التالية:

    • يمكن لمطوّري العتاد إنشاء أزواج مفاتيح ML-KEM512 عامة/خاصة: تُشارَك المفاتيح العامة مع مزوّدي الخدمة، وتُدمَج المفاتيح الخاصة في تنفيذ عتاد Mojo-V.
    • يمكن لأصحاب البيانات إنشاء عقود بيانات وتشفيرها بالمفاتيح العامة ML-KEM512 لمزوّدي الخدمة. يمكن بعد ذلك لعتاد Mojo-V المطابق إجراء حوسبة سرية على البيانات المشفرة المحمية من طرف ثالث.
  4. معايير أداء Mojo-V Bringup-Bench

    • مجموعة كاملة من اختبارات الأمان لـ RV64GC+Mojo-V
    • مجموعة كاملة من اختبارات هجمات السلامة لـ RV64GC+Mojo-V
    • مجموعة كاملة من اختبارات مكتبة مترجم EXO
    • مجموعات كاملة من اختبارات مكتبات الرياضيات والسلاسل النصية في EXO
    • معايير أداء عديدة موجهة للخصوصية بُنيت باستخدام مكتبة مترجم EXO الخاصة بـ Mojo-V
    • مجموعة كاملة من التطبيقات التوضيحية للكشف الآمن
    • مجموعة كاملة من التطبيقات التوضيحية لـ TRNG المعتمد
    • أمثلة مكتوبة يدويًا (مثل bubble-sort) تُظهر عمل Mojo-V في الحوسبة السرية

ملاحظة: لم يتم بعد نقل بقية معايير Bringup-bench إلى Mojo-V.

⚙️ بناء وتشغيل منصة Mojo-V المرجعية

أ. تثبيت مترجم LLVM لمعمارية RISC-V

ستحتاج إلى مترجم متقاطع RISC-V قائم على LLVM قادر على إنتاج ملفات ثنائية RV64GC.

إليك مكانًا جيدًا للبدء: https://github.com/openssl/openssl

ب. تثبيت OpenSSL الإصدار 3.6 أو أحدث

ستحتاج إلى تثبيت مطوّر لـ OpenSSL الإصدار 3.6 أو أحدث. يوفر هذا مكتبات تنفّذ ML-KEM512، التي يستخدمها Spike للتبادل الآمن للمفاتيح.

إليك مكانًا جيدًا للبدء: https://clang.llvm.org/get_started.html

ج. استنساخ مستودع Mojo-V```bash

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

root@kitploit:~
### D. قم ببناء محاكي RISC-V Spike مع دعم 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. بناء واختبار Data Contract Multi-tool

عقود البيانات هي حزم مشفرة تسمح لعتاد وحدة المعالجة المركزية Mojo-V بالوصول إلى مفتاح الوصول إلى البيانات ومعلومات الإعداد (على سبيل المثال، وضع تشفير الذاكرة) لمجموعة بيانات مشفرة بنظام 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 واضبط TARGET_CC للهدف mojov على موقع مترجم RISC-V المبني على Clang من LVM.

  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

| Program | الوصف |
|:---------|:-------------|
| `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` | مجموعة اختبارات التحقق من السلامة مكتوبة يدويًا لـ RV64GC+Mojo-V تتضمن اختبارات إيجابية وسلبية لتنسيق تشفير Mojo-V الحامل للإثبات (proofcarrying) |
| `mojov-sectests` | مجموعة اختبارات أمان مكتوبة يدويًا لـ RV64GC+Mojo-V تتضمن 130 اختبارًا إيجابيًا + 245 اختبارًا سلبيًا == 375 إجمالًا (int,fp,fast,strong) |
| `mojov-stringtests` | اختبارات التحقق من صحة مكتبة السلاسل المشفرة EXO لعمليات ومقارنات السلاسل الآمنة |
| `mojov-mathtests` | اختبارات التحقق من صحة مكتبة الرياضيات المشفرة EXO للدوال `_sincos`، `mojov_sin`، `mojov_cos`، `mojov_fabs`، `mojov_floor`، `mojov_pow`، `mojov_round`، و`mojov_sqrt` |

توضح هذه المقاييس الاختبارية قواعد ISA الخاصة بـ Mojo-V وسلوك مكتبة EXO ودلالات الأمان.

## 🧪 نظرة عامة على مقاييس أداء Mojo-V Bringup-Bench

تتضمن مجموعة مقاييس الأداء الحالية للإقلاع تطبيقات مقاييس Mojo-V التالية:

| Program | الوصف |
|:---------|:-------------|
| `bitonic-sort` | مقياس أداء لفرز بتوني متعامٍ مع البيانات |
| `bloom-filter` | مقياس أداء لعضوية المجموعة باستخدام مرشح Bloom |
| `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` | مقياس أداء لتحليل النواة-كـ للرسوم البيانية |
| `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` | مقياس أداء هيكلي/قالبي يُستخدم كخط أساس للإقلاع |
| `soundex` | مقياس أداء لترميز Soundex الصوتي |
| `string-search` | مقياس أداء للبحث في السلاسل |
| `tea-cipher` | مقياس أداء لخوارزمية تشفير TEA |
| `tiny-NN` | مقياس أداء لاستنتاج شبكة عصبية صغيرة |
| `triangle-count` | مقياس أداء لعد المثلثات في رسم بياني |
| `variability-sample` | مقياس أداء للإحصاءات المتعلقة بالتباين والعينات |
| `verlet` | مقياس أداء فيزيائي لتكامل فيرليه |

## نظرة عامة على عروض الإفصاح الآمن في Mojo-V

يتضمن Mojo-V ثلاثة مقاييس عروض توضيحية للإفصاح الآمن في `bringup-bench`. تستخدم هذه التطبيقات ذاكرة مشفرة حاملة للإثبات بالإضافة إلى منح بيانات مشفرة لإظهار كيف يمكن للبرنامج الحساب على مدخلات حساسة، والإفصاح فقط عن النتائج المشتقة المصرح بها صراحةً، والتصدي لمحاولات إعادة استخدام منحة لقيمة مختلفة، أو إدخال خام، أو حساب قديم، أو منحة معبثة، أو مسند وسيط.

| Program | الإدخال الحساس | الإفصاحات المصرح بها | الحمايات الموضحة |
|:---------|:----------------|:------------------------|:--------------------------|
| `private-auction` | ثمانية عروض خاصة مشفرة. | معرّف مقدم العرض الفائز وقيمة العرض الفائز. | يعثر على الحد الأقصى للعرض باستخدام مقارنات مشفرة و`cmov()`، ثم يتحقق من منح البيانات لكل مخرج. ترفض الحالات السلبية المنح غير المتطابقة، والإفصاح الخام عن العرض الفائز، والمنح المزيفة أو المعبثة، والمنح القديمة بعد تغيير المزاد، وقيم `winning_bid + 1` المشتقة، ومسندات المقارنة الوسيطة. |
| `vote-tally` | اثنان وثلاثون بطاقة اقتراع مشفرة عبر ثلاثة مرشحين، بما في ذلك بطاقتا اقتراع غير صالحتين. | الإجماليات الكلية للمرشحين A وB وC، بالإضافة إلى مسندات معالجة كل بطاقة اقتراع. | يحسب جميع أعداد المرشحين ومسندات صحة البطاقات في شكل مشفر. ترفض الحالات السلبية استخدام منحة إجمالية لمنحة أخرى، والإفصاح الخام عن البطاقات، والمنح المزيفة أو المعبثة، والمنح القديمة بعد تعديل البطاقات، وقيم الإجمالي المشتقة، ومسندات البطاقات الوسيطة. |
| `gene-risk` | ثماني جرعات مشفرة من علامات SNP لعمل تحميل مخاطر جينية تجريبي. | درجة مخاطر وراثية متعددة الجينات مشتقة وفئة مخاطر منخفضة/متوسطة/عالية. | يجمع درجة مخاطر مرجحة ويشتق فئة المخاطر باستخدام مسندات مشفرة و`cmov()`. ترفض الحالات السلبية الاستخدام المتبادل لمنحتي الدرجة والفئة، والإفصاح الخام عن العلامات، والمنح المزيفة أو المعبثة، والمنح القديمة بعد تغيير الجينوم، وقيم الدرجات المشتقة، ومسندات الخطورة العالية الوسيطة. |

كل عرض توضيحي مُدرج في `MOJOV_DISCAPPS`، لذا فهو جزء من مجموعة تطبيقات الإفصاح الآمن. لتشغيل أحدها مباشرةً، ادخل إلى دليل المقياس الخاص به واستخدم هدف Mojo-V، على سبيل المثال:```bash
cd bringup-bench/private-auction
make TARGET=mojov-spike clean build test

استخدم خيار --mojov-arg=<n> في Spike لتحديد المسار الإيجابي (0) أو أحد اختبارات الكشف السلبية (1 وما فوق) عند تشغيل عرض توضيحي يدويًا.

نظرة عامة على عروض Mojo-V التوضيحية المعتمدة لمولّد الأرقام العشوائية الحقيقي (TRNG)

يتضمن Mojo-V ثلاثة معايير توضيحية معتمدة لمولّد الأرقام العشوائية الحقيقي (CERTRNG) في bringup-bench. تستخدم مواقع CERTRNG متميزة، وحسابًا مشفرًا يحمل إثباتًا، وnonces خاصة بالطلبات لإظهار أن العميل يمكنه التحقق من مكان دخول القيم العشوائية الجديدة في عملية معتمدة. تظل النتائج مشفرة حتى التحقق من الإيصال والالتزام. تُظهر الحالات السلبية أن العشوائية المولّدة برمجيًا، والسحوبات المفقودة أو المعاد استخدامها، وتعيينات المواقع الخاطئة، والطلبات المنتهية الصلاحية، والرسوم البيانية الحسابية المعدّلة، وإعادة أخذ العينات المتحيزة لا تستوفي شرط منح البيانات الصادق. كما تُظهر حدًا مهمًا: العشوائية المعتمدة وحدها لا يمكنها إيقاف الـ grinding إذا تم الكشف عن النتائج (باستخدام تعليمات Mojo-V DISC أو FDISC) قبل الالتزام.

هذه العروض التوضيحية مدرجة في MOJOV_CERTRNG_APPS، لذا فهي مشمولة في مجموعة معايير Mojo-V. شغّل أحدها مباشرة من دليله، على سبيل المثال:```bash cd bringup-bench/blind-audit make TARGET=mojov-spike clean build test

root@kitploit:~
استخدم خيار `--mojov-arg=<n>` الخاص بـ Spike عند تشغيل المُوضِّح يدويًا. الحالة `0` هي المسار الصادق، والحالات ذات الأرقام المنخفضة هي تحكمات توضيحية ناجحة، والحالات `10` وما فوق هي هجمات من المتوقع أن تنتهي باستثناء أمني من Mojo-V. المصفوفة الدقيقة لكل تطبيق موثقة في `README.md` المحلي الخاص بمعيار التقييم.


## 🛠️ استخدام الأداة المتعددة لعقود بيانات Mojo-V

تُستخدم الأداة المتعددة لعقود البيانات "dc-tool" لإنشاء عقود بيانات Mojo-V والتحقق منها.

لإنشاء زوج مفاتيح عام/خاص ML-KEM512، نفّذ الأمر التالي. لاحظ أنه يجب مشاركة المفتاح العام مع مزوّدي البيانات من جهات خارجية لإعداد عقود البيانات. يتم تثبيت المفاتيح الخاصة في العتاد (أو المحاكي).```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:~
مشاركة عقد بيانات مشفّر مع عتاد Mojo-V المطابق للمفتاح العام ML-KEM512 المستخدم لتشفير العقد ستتيح لوحدة المعالجة المركزية (CPU) المفعّلة بتقنية Mojo-V إجراء حسابات سرية على بيانات الطرف الثالث المحمية. للتحقق من أن العقد المشفّر صالح، استخدم الأوامر التالية.```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>

🛠️ خيارات خاصة بـ Mojo-V مضافة إلى محاكي RISC-V Spike ISA

تمت إضافة الخيارات التالية إلى Spike، محاكي RISC-V ISA القياسي.```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/main/exo/EXO-library-programming.md)

4. **اطّلع على تفاصيل بنية المترجم والمعمارية في توثيق EXO**
   - البنية الداخلية وسياق التصميم لمنهج مترجم/مكتبة Mojo-V الحالي موثّقة في: [exo/EXO-library-overview.md](https://github.com/toddmaustin/mojo-v/blob/main/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)؛ ويُظهر أيضًا أن السحوبات غير المستخدمة لا تؤثر على الإيصال وأن الكشف المبكر يتيح الـ grinding.يرفض هدفًا مفروضًا، وRNG برمجيًا، وnonce مفقودًا أو منتهي الصلاحية، وإعادة استخدام السحب، ومرشحًا محذوفًا، ومواقع مبدلة، وإعادة استخدام اختيار محسوب مسبقًا.
diffpriv-countيضيف ضوضاء ذات حدّين ممركزة، تتكوّن من الفرق بين قيمتين مستقلتين من Binomial(8, 1/2)، إلى عدد مشفر باستخدام 16 موقعًا عشوائيًا متميزًا.يُصادق على الرسم البياني الدقيق لتوليد الضوضاء وربط الطلب مع إبقاء كل من الضوضاء والإجابة مخفية حتى التحقق.يرفض الضوضاء المحذوفة أو المُضعفة، وRNG البرمجي، وإعادة أخذ عينات منحازة، وإعادة إرسال الطلبات المنتهية الصلاحية؛ تبقى العشوائية غير المستخدمة غير المرتبطة خارج الإيصال.
certified-lottoيختار المشارك المؤهل الأعلى تسجيلًا من بين ثمانية إدخالات مشفرة ويستخدم أولويات عشوائية متميزة مرتبطة بالطلب لكسر التعادل في النقاط.يُصادق على كل مشارك، وموقع عشوائي، ومزيج nonce، وخطوة بطولة؛ ويُظهر أيضًا سلوك السحب غير المستخدم وخطر الـ grinding الناتج عن الكشف قبل الالتزام.يرفض مشاركًا محذوفًا، وRNG برمجيًا، وnonce تم تخطيه أو منتهي الصلاحية، وإعادة استخدام السحب، ومواقع مبدلة، وكاسر تعادل حتمي.