Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
GhostFaceMPC — تنفيذ مرجعي للتعرّف على الوجوه مع الحفاظ على الخصوصية باستخدام مشاركة الأسرار المكررة في MP-SPDZ، مع استدلال GhostFaceNet المُكمَّم، واختبارات الأداء، وأدوات QAT. | Kitploit
أدوات/GitHubGitHub/crypto-unict/ghostfacempc
التشفيرالخصوصيةتعلم الآلةالأوراق والأبحاثالتعلم والتعليم
GitHubcrypto-unict/ghostfacempc

GhostFaceMPC

تنفيذ مرجعي للتعرّف على الوجوه مع الحفاظ على الخصوصية باستخدام مشاركة الأسرار المكررة في MP-SPDZ، مع استدلال GhostFaceNet المُكمَّم، واختبارات الأداء، وأدوات QAT.

عرض المستودع
146منذ 7 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

GhostFaceMPC: التعرف على الوجوه مع الحفاظ على الخصوصية باستخدام الحوسبة متعددة الأطراف

التنفيذ الرسمي لـ GhostFaceMPC: Privacy-Preserving Face Recognition with Multi-Party Computation (Davide Carnemolla, Dario Catalano, Mario Di Raimondo — جامعة كاتانيا). الورقة البحثية: Cryptology ePrint Archive, Paper 2026/2499.

يشغّل GhostFaceMPC التعرف على الوجوه باستخدام GhostFaceNetV1 (العرض 1.3، الخطوة 1، رأس ArcFace، مدرَّب على MS1MV3) بين ثلاثة خوادم باستخدام المشاركة السرية المكررة في MP-SPDZ.

  • يقوم العميل بتقسيم الوجه المحاذي 112×112 إلى مشاركات سرية: فهو ينتج المشاركة المكررة بنفسه، بحيث تحمّل الخوادم أزواجها دون إعادة مشاركة أي شيء. ولا يرى أي خادم الصورة أو أي تنشيط أو التضمين أو قاعدة البيانات المسجَّلة.
  • معاملات النموذج عامة، لذا فإن كل طبقة خطية هي حساب محلي سري-بعام مع تخفيض نقطة ثابتة واحد لكل مخرج.
  • يُكمَّم النموذج إلى حلقة 32-بت (6 بتات كسرية، و9 للنوى) عبر التدريب الواعي بالتكميم على الحساب الدقيق الذي تنفذه الخوادم.
  • يدعم ملفَّي أمان: شبه أمين (replicated-ring-party) و خبيث مع الإجهاض (ps-rep-ring-party).
  • تُقسَّم كل طلب إلى مرحلة غير متصلة ومرحلة متصلة. تولّد المرحلة غير المتصلة المعالجة المسبقة المستقلة عن المدخلات. أما المرحلة المتصلة فهي الاستدلال نفسه، يتبعه درجة تحقق 1:1 أو تعريف مجموعة مغلقة 1:N. ولا تكشف أي من المرحلتين أي شيء.

يحتوي هذا المستودع على الشيفرة اللازمة بالضبط لإعادة إنتاج تجارب الورقة البحثية.

@misc{cryptoeprint:2026/2499,
      author = {Davide Carnemolla and Dario Catalano and Mario Di Raimondo},
      title = {{GhostFaceMPC}: Privacy-Preserving Face Recognition with Multi-Party Computation},
      howpublished = {Cryptology {ePrint} Archive, Paper 2026/2499},
      year = {2026},
      url = {https://eprint.iacr.org/2026/2499}
}

المحتويات

المسارما هو
src/ghostmpc/حزمة Python وسطر أوامر ghostmpc
src/ghostmpc/codegen/مُصرِّف من بيان النموذج إلى برنامج MP-SPDZ
src/ghostmpc/eval/أوراكل الحلقة بالنص الصريح (مطابق بتّياً لبرنامج MPC) وتقييم الدقة
src/ghostmpc/benchmark/أداة اختبار قياس الأداء ثلاثية الأطراف والشبكات المُحاكاة
src/ghostmpc/training/التدريب المدرك للتكميم على تمرير أمامي وفيّ للحلقة
third_party/patches/تعليمات الآلة الافتراضية التي يضيفها هذا العمل إلى MP-SPDZ
baselines/خطوط الأساس: TensorFlow بالنص الصريح، MP-SPDZ الساذج، EzPC/Porthos
run_experiments.shسكربت واحد يشغّل كل تجربة في الورقة
scripts/الإعداد، محاكاة الشبكة بدون صلاحيات جذر، جمع الجداول
tests/اختبارات الوحدة (pytest)

1. المتطلبات

  • الجهاز. Linux على x86-64. استخدمت الورقة جهازاً افتراضياً بـ 32 نواة (Intel Xeon Gold 6238R) وتشغّل 8 خيوط لكل طرف. تعمل الخوادم الثلاثة جميعها على مضيف واحد.

  • Python. Python ≥ 3.10 (تم الاختبار مع 3.11).

  • تبعيات بناء MP-SPDZ (قائمة المنبع):

    sudo apt-get install automake build-essential clang cmake git libboost-dev \
        libboost-filesystem-dev libboost-iostreams-dev libboost-thread-dev \
        libgmp-dev libntl-dev libsodium-dev libssl-dev libtool python3 python3-venv
    
  • محاكاة LAN/WAN. تحتاج إلى iproute2 (ip، tc)، وiputils-ping، وunshare (util-linux)، ومساحات أسماء مستخدمين غير مميزة. لا يحتاج السكربت إلى صلاحيات الجذر. على Debian/Ubuntu: sudo sysctl kernel.unprivileged_userns_clone=1.

  • خط أساس Porthos فقط.

    • libboost-system-dev
    • معالج يدعم AES-NI
    • OCaml 4.14 عبر opam، مع opam install ocamlbuild menhir ocamlfind stdint

2. الإعداد

git clone --recursive https://github.com/crypto-unict/ghostfacempc.git
cd ghostfacempc
scripts/setup.sh

يقوم scripts/setup.sh بأربعة أشياء:

  1. ينشئ .venv ويثبّت الحزمة. يجلب هذا tensorflow-cpu وPillow وonnx وonnxruntime وonnxsim.
  2. يجهّز MP-SPDZ في third_party/MP-SPDZ:
    • يسحب المراجعة المثبّتة (pinned revision)؛
    • يطبّق third_party/patches/؛
    • يفعّل الحلقة 32-بت (MY_CFLAGS += -DRING_SIZE=32 في CONFIG.mine)؛
    • يبني replicated-ring-party.x وps-rep-ring-party.x؛
    • يولّد شهادات TLS للأطراف الثلاثة.
  3. ينزّل ملفات النموذج (انظر الجدول أدناه).
  4. يتحقق من مجموعات بيانات المعايير (benchmark datasets).

تستقر ملفات النموذج في artifacts/:

الملفالمحتوى
GhostFaceNet_W1.3_S1_ArcFace.h5المعلّم العشري (float teacher)، من إصدار GhostFaceNets
model/نموذج ring32/f6/f_w9 المكمَّم (quantized)، مع تقارير دقته
model-ring64-f16-b0/بيان (manifest) ring64 الذي يُصدَّر منه خط أساس Porthos
legacy-scalar-236/بيان ring64/f20 لخط أساس MP-SPDZ الساذج (naive)

الحزم (bundles) هي أصول إصدار (release assets) لهذا المستودع، ويُتحقق من كل أرشيف مقابل تجزئته SHA-256. كما ينزّل ghostmpc fetch-bundles --bundle qat-start البيان الذي يبدأ منه QAT (انظر §5).

مجموعات البيانات

تقرأ تجربة الدقة وخط الأساس النصي الصريح (plaintext baseline) خمس مجموعات تقييم من InsightFace: LFW وAgeDB-30 وCALFW وCPLFW وCFP-FP. استخدم ملفات .bin الموزّعة مع بيانات تدريب MS1MV3 من InsightFace dataset zoo وضعها كما يلي:

datasets/benchmarks/{lfw,agedb_30,calfw,cplfw,cfp_fp}.bin

scripts/setup.sh يتحقق منها مقابل ملخصات SHA-256 التي استخدمناها. لا تحتاج معايير MPC إلى مجموعات البيانات: فتواصلها لا يعتمد على قيم الإدخال، لذا فهي تشارك مدخلات اصطناعية عبر المشاركة السرية.

3. إعادة إنتاج التجارب

./run_experiments.sh --quick verification   # smoke test, about one hour
./run_experiments.sh all                    # every table of the paper
./run_experiments.sh tables                 # print the tables measured so far

تُحفظ النتائج في results/ (ملف report.json واحد وملف summary.csv واحد لكل تشغيل)، ويكتب tables الملف results/tables.md بتخطيط الورقة البحثية. يمكن تشغيل الأهداف بشكل منفصل وبأي ترتيب. يُتخطّى أي تشغيل يوجد تقريره بالفعل.

الهدفالورقة البحثيةزمن التشغيل على جهازنا (تقريبًا)
accuracyجدول المقارنة، أعمدة الدقة3 ساعات لكل مجموعة بيانات لكل نواة؛ قسّم باستخدام WORKERS
verificationمعايير التحقق من الوجه: HbC وM، وCo-Host / LAN / Fast-WAN / WAN~6 ساعات
identificationمعايير التعرف على الوجه: 1:128 مجموعة مغلقة، نفس الشبكة~6 ساعات
plaintextجدول المقارنة، صف TensorFlowدقيقة واحدة
naiveجدول المقارنة، صف MP-SPDZ (naive)~ساعة واحدة بما في ذلك الترجمة
porthosجدول المقارنة، صف EzPC (Porthos)~5 دقائق بناء + ~1.5 ساعة
baselinesخطوط الأساس الثلاثة
ablationجدول الاستئصال: التحسينات واحدًا تلو الآخر، من خط الأساس naive إلى GhostFaceMPC (HbC، co-host)~4 ساعات

متغيرات البيئة:

المتغيرالمعنىالقيمة الافتراضية
THREADSعدد الخيوط لكل طرف8
NETWORKSالشبكات المراد قياسهاco-host lan fast-wan wan
WORKERSعدد العمليات لأوراكل الدقةعدد وحدات المعالجة المركزية
POOLS، WARMUPS، TRIALSتجاوز تصميم المجموعاتتصميم الورقة البحثية
RESULTSدليل الإخراجresults

يشغّل --quick مجموعة واحدة من تسخين واحد وطلب مقاس واحد، والدقة على أول 600 زوج من كل مجموعة بيانات.

ما الذي يُقاس

تنزيل الأداة