Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
GhostFaceMPC — Referenzimplementierung der datenschutzwahrenden Gesichtserkennung mittels repliziertem Secret Sharing in MP-SPDZ, mit quantisierter GhostFaceNet-Inferenz, Benchmarks und QAT-Tooling. | Kitploit
Tools/GitHubGitHub/crypto-unict/ghostfacempc
KryptographiePrivatsphäreMaschinelles LernenPapers & ForschungLernen & Bildung
GitHubcrypto-unict/ghostfacempc

GhostFaceMPC

Referenzimplementierung der datenschutzwahrenden Gesichtserkennung mittels repliziertem Secret Sharing in MP-SPDZ, mit quantisierter GhostFaceNet-Inferenz, Benchmarks und QAT-Tooling.

Repository anzeigen
156vor 8 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

GhostFaceMPC: Datenschutzfreundliche Gesichtserkennung mit Multi-Party Computation

Offizielle Implementierung von GhostFaceMPC: Privacy-Preserving Face Recognition with Multi-Party Computation (Davide Carnemolla, Dario Catalano, Mario Di Raimondo — Universität Catania). Paper: Cryptology ePrint Archive, Paper 2026/2499.

GhostFaceMPC führt Gesichtserkennung mit GhostFaceNetV1 (Breite 1.3, Schrittweite 1, ArcFace-Head, trainiert auf MS1MV3) unter drei Servern mit repliziertem Secret Sharing in MP-SPDZ aus.

  • Der Client teilt das ausgerichtete 112×112-Gesicht geheim auf: Er erzeugt die replizierte Aufteilung selbst, sodass die Server ihre Paare laden, ohne irgendetwas erneut aufzuteilen. Kein Server sieht jemals das Bild, eine Aktivierung, das Embedding oder die registrierte Datenbank.
  • Die Modellparameter sind öffentlich, daher ist jede lineare Schicht lokale Arithmetik mit geheimem Wert und öffentlichem Wert mit einer einzigen Festkomma-Reduktion pro Ausgabe.
  • Das Modell wird durch quantisierungsbewusstes Training auf der exakten Arithmetik, die die Server ausführen, auf einen 32-Bit-Ring quantisiert (6 Nachkommabits, 9 für die Kernel).
  • Es werden zwei Sicherheitsprofile unterstützt: semi-honest (replicated-ring-party) und malicious mit Abbruch (ps-rep-ring-party).
  • Jede Anfrage wird in eine Offline-Phase und eine Online-Phase aufgeteilt. Die Offline-Phase erzeugt die eingabeunabhängige Vorverarbeitung. Die Online-Phase ist die Inferenz selbst, gefolgt von einer 1:1-Verifikationsbewertung oder einer 1:N Closed-Set-Identifikation. Keine der beiden Phasen öffnet irgendetwas.

Dieses Repository enthält genau den Code, der benötigt wird, um die Experimente des Papers zu reproduzieren.

@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}
}

Inhalt

PfadWas es ist
src/ghostmpc/Python-Paket und ghostmpc-Kommandozeile
src/ghostmpc/codegen/Compiler vom Modell-Manifest zu einem MP-SPDZ-Programm
src/ghostmpc/eval/Klartext-Ring-Orakel (bit-exakt mit dem MPC-Programm) und Genauigkeitsbewertung
src/ghostmpc/benchmark/Drei-Parteien-Benchmark-Harness und emulierte Netzwerke
src/ghostmpc/training/quantisierungsbewusstes Training auf dem ringgetreuen Forward-Pass
third_party/patches/die Virtual-Machine-Instruktionen, die diese Arbeit zu MP-SPDZ hinzufügt
baselines/die Baselines: TensorFlow im Klartext, naives MP-SPDZ, EzPC/Porthos
run_experiments.shein Skript, das jedes Experiment des Papers ausführt
scripts/Einrichtung, rootlose Netzwerkemulation, Tabellenerfassung
tests/Unit-Tests (pytest)

1. Anforderungen

  • Rechner. Linux auf x86-64. Das Paper verwendete eine 32-Kern-VM (Intel Xeon Gold 6238R) und führt 8 Threads pro Partei aus. Alle drei Server laufen auf einem Host.

  • Python. Python ≥ 3.10 (getestet mit 3.11).

  • MP-SPDZ-Build-Abhängigkeiten (Upstream-Liste):

    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-Emulation. Benötigt iproute2 (ip, tc), iputils-ping, unshare (util-linux) und unprivilegierte User-Namespaces. Das Skript benötigt kein Root. Unter Debian/Ubuntu: sudo sysctl kernel.unprivileged_userns_clone=1.

  • Nur Porthos-Baseline.

    • libboost-system-dev
    • eine CPU mit AES-NI
    • OCaml 4.14 über opam, mit opam install ocamlbuild menhir ocamlfind stdint

2. Einrichtung

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

scripts/setup.sh erledigt vier Dinge:

  1. Erstellt .venv und installiert das Paket. Dabei werden tensorflow-cpu, Pillow, onnx, onnxruntime und onnxsim heruntergeladen.
  2. Bereitet MP-SPDZ in third_party/MP-SPDZ vor:
    • checkt die festgelegte Revision aus;
    • wendet third_party/patches/ an;
    • aktiviert den 32-Bit-Ring (MY_CFLAGS += -DRING_SIZE=32 in CONFIG.mine);
    • baut replicated-ring-party.x und ps-rep-ring-party.x;
    • erzeugt die TLS-Zertifikate der drei Parteien.
  3. Lädt die Modelldateien herunter (siehe Tabelle unten).
  4. Prüft die Benchmark-Datensätze.

Die Modelldateien landen in artifacts/:

DateiInhalt
GhostFaceNet_W1.3_S1_ArcFace.h5Float-Teacher, aus dem Release von GhostFaceNets
model/das quantisierte ring32/f6/f_w9-Modell mit seinen Genauigkeitsberichten
model-ring64-f16-b0/ring64-Manifest, aus dem die Porthos-Baseline exportiert wird
legacy-scalar-236/ring64/f20-Manifest der naiven MP-SPDZ-Baseline

Die Bundles sind Release-Assets dieses Repositorys, und jedes Archiv wird gegen seinen SHA-256 geprüft. ghostmpc fetch-bundles --bundle qat-start lädt außerdem das Manifest herunter, von dem QAT startet (siehe §5).

Datensätze

Das Genauigkeitsexperiment und die Klartext-Baseline lesen fünf InsightFace-Evaluierungssets: LFW, AgeDB-30, CALFW, CPLFW und CFP-FP. Verwende die .bin-Dateien, die mit den MS1MV3-Trainingsdaten des InsightFace dataset zoo verteilt werden, und lege sie wie folgt ab:

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

scripts/setup.sh überprüft sie anhand der SHA-256-Digests, die wir verwendet haben. Die MPC-Benchmarks benötigen die Datensätze nicht: Ihre Kommunikation hängt nicht von den Eingabewerten ab, daher teilen sie synthetische Eingaben per Secret-Sharing auf.

3. Reproduzieren der Experimente

./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

Die Ergebnisse werden in results/ abgelegt (eine report.json und summary.csv pro Lauf), und tables schreibt results/tables.md im Layout des Papers. Die Targets können separat und in beliebiger Reihenfolge ausgeführt werden. Ein Lauf, dessen Report bereits existiert, wird übersprungen.

TargetPaperLaufzeit auf unserer Maschine (ca.)
accuracyVergleichstabelle, Genauigkeits-Spalten3 h pro Datensatz pro Kern; aufteilen mit WORKERS
verificationFace Verification Benchmarks: HbC und M, Co-Host / LAN / Fast-WAN / WAN~6 h
identificationFace Identification Benchmarks: 1:128 Closed-Set, gleiches Raster~6 h
plaintextVergleichstabelle, TensorFlow-Zeile1 min
naiveVergleichstabelle, MP-SPDZ (naive)-Zeile~1 h inklusive Kompilierung
porthosVergleichstabelle, EzPC (Porthos)-Zeile~5 min Build + ~1,5 h
baselinesdie drei Baselines
ablationAblationstabelle: die Optimierungen einzeln, von der naiven Baseline bis GhostFaceMPC (HbC, Co-Host)~4 h

Umgebungsvariablen:

Tool herunterladen