Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
GhostFaceMPC — Implementazione di riferimento per il riconoscimento facciale che preserva la privacy tramite replicated secret sharing in MP-SPDZ, con inferenza quantizzata di GhostFaceNet, benchmark e strumenti QAT. | Kitploit
Strumenti/GitHubGitHub/crypto-unict/ghostfacempc
CrittografiaPrivacyMachine LearningPaper e RicercaApprendimento e Formazione
GitHubcrypto-unict/ghostfacempc

GhostFaceMPC

Implementazione di riferimento per il riconoscimento facciale che preserva la privacy tramite replicated secret sharing in MP-SPDZ, con inferenza quantizzata di GhostFaceNet, benchmark e strumenti QAT.

Vedi Repository
1477 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

GhostFaceMPC: Riconoscimento Facciale che Preserva la Privacy con il Calcolo Multi-Partitico

Implementazione ufficiale di GhostFaceMPC: Privacy-Preserving Face Recognition with Multi-Party Computation (Davide Carnemolla, Dario Catalano, Mario Di Raimondo — Università di Catania). Paper: Cryptology ePrint Archive, Paper 2026/2499.

GhostFaceMPC esegue il riconoscimento facciale con GhostFaceNetV1 (width 1.3, stride 1, testa ArcFace, addestrato su MS1MV3) tra tre server con replicated secret sharing in MP-SPDZ.

  • Il client condivide in modo segreto il volto allineato 112×112: produce esso stesso la condivisione replicata, così i server caricano le proprie coppie senza ricondividere nulla. Nessun server vede mai l'immagine, un'attivazione, l'embedding o il database registrato.
  • I parametri del modello sono pubblici, quindi ogni layer lineare è un'aritmetica locale segreto-per-pubblico con una riduzione in virgola fissa per output.
  • Il modello è quantizzato su un anello a 32 bit (6 bit frazionari, 9 per i kernel) tramite addestramento consapevole della quantizzazione sull'esatta aritmetica che i server eseguono.
  • Supporta due profili di sicurezza: semi-onesto (replicated-ring-party) e malevolo con abort (ps-rep-ring-party).
  • Ogni richiesta è suddivisa in una fase offline e una fase online. La fase offline genera il preprocessing indipendente dall'input. La fase online è l'inferenza stessa, seguita da un punteggio di verifica 1:1 o da un'identificazione closed-set 1:N. Nessuna delle due fasi apre nulla.

Questo repository contiene esattamente il codice necessario per riprodurre gli esperimenti del paper.

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

Contenuti

PercorsoDi cosa si tratta
src/ghostmpc/Pacchetto Python e riga di comando ghostmpc
src/ghostmpc/codegen/compilatore dal manifest del modello a un programma MP-SPDZ
src/ghostmpc/eval/oracolo in chiaro sull'anello (bit-exact con il programma MPC) e valutazione dell'accuratezza
src/ghostmpc/benchmark/harness di benchmark a tre parti e reti emulate
src/ghostmpc/training/addestramento consapevole della quantizzazione sul passaggio in avanti fedele all'anello
third_party/patches/le istruzioni della macchina virtuale che questo lavoro aggiunge a MP-SPDZ
baselines/le baseline: TensorFlow in chiaro, MP-SPDZ naive, EzPC/Porthos
run_experiments.shun unico script che esegue ogni esperimento del paper
scripts/setup, emulazione di rete rootless, raccolta delle tabelle
tests/test unitari (pytest)

1. Requisiti

  • Macchina. Linux su x86-64. Il paper ha utilizzato una VM a 32 core (Intel Xeon Gold 6238R) ed esegue 8 thread per parte. Tutti e tre i server girano su un unico host.

  • Python. Python ≥ 3.10 (testato con 3.11).

  • Dipendenze di build di MP-SPDZ (elenco upstream):

    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
    
  • Emulazione LAN/WAN. Richiede iproute2 (ip, tc), iputils-ping, unshare (util-linux) e user namespace non privilegiati. Lo script non richiede root. Su Debian/Ubuntu: sudo sysctl kernel.unprivileged_userns_clone=1.

  • Solo baseline Porthos.

    • libboost-system-dev
    • una CPU con AES-NI
    • OCaml 4.14 tramite opam, con opam install ocamlbuild menhir ocamlfind stdint

2. Configurazione

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

scripts/setup.sh fa quattro cose:

  1. Crea .venv e installa il pacchetto. Questo scarica tensorflow-cpu, Pillow, onnx, onnxruntime e onnxsim.
  2. Prepara MP-SPDZ in third_party/MP-SPDZ:
    • effettua il checkout della revisione fissata;
    • applica third_party/patches/;
    • abilita l'anello a 32 bit (MY_CFLAGS += -DRING_SIZE=32 in CONFIG.mine);
    • compila replicated-ring-party.x e ps-rep-ring-party.x;
    • genera i certificati TLS delle tre parti.
  3. Scarica i file del modello (vedi la tabella sottostante).
  4. Verifica i dataset di benchmark.

I file del modello finiscono in artifacts/:

FileContenuto
GhostFaceNet_W1.3_S1_ArcFace.h5teacher float, dalla release di GhostFaceNets
model/il modello quantizzato ring32/f6/f_w9, con i relativi report di accuratezza
model-ring64-f16-b0/manifest ring64 da cui viene esportata la baseline Porthos
legacy-scalar-236/manifest ring64/f20 della baseline naive MP-SPDZ

I bundle sono asset di release di questo repository, e ogni archivio viene verificato rispetto al suo SHA-256. ghostmpc fetch-bundles --bundle qat-start scarica anche il manifest da cui parte il QAT (vedi §5).

Dataset

L'esperimento di accuratezza e la baseline in chiaro leggono cinque set di valutazione InsightFace: LFW, AgeDB-30, CALFW, CPLFW e CFP-FP. Usa i file .bin distribuiti con i dati di training MS1MV3 dello zoo di dataset InsightFace e posizionali come:

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

scripts/setup.sh li verifica rispetto ai digest SHA-256 che abbiamo utilizzato. I benchmark MPC non necessitano dei dataset: la loro comunicazione non dipende dai valori di input, quindi condividono in modo segreto input sintetici.

3. Riproduzione degli esperimenti

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

I risultati vanno in results/ (un report.json e un summary.csv per esecuzione), e tables scrive results/tables.md con il layout del paper. I target possono essere eseguiti separatamente e in qualsiasi ordine. Un'esecuzione il cui report esiste già viene saltata.

TargetPaperTempo di esecuzione sulla nostra macchina (approssimativo)
accuracytabella di confronto, colonne di accuratezza3 h per dataset per core; suddiviso con WORKERS
verificationFace Verification Benchmarks: HbC e M, Co-Host / LAN / Fast-WAN / WAN~6 h
identificationFace Identification Benchmarks: 1:128 closed set, stessa griglia~6 h
plaintexttabella di confronto, riga TensorFlow1 min
naivetabella di confronto, riga MP-SPDZ (naive)~1 h inclusa la compilazione
porthostabella di confronto, riga EzPC (Porthos)~5 min di build + ~1.5 h
baselinesle tre baseline
ablationtabella di ablazione: le ottimizzazioni una alla volta, dalla baseline naive a GhostFaceMPC (HbC, co-host)~4 h

Variabili d'ambiente:

VariabileSignificatoPredefinito
THREADSthread per party8
NETWORKSreti da misurareco-host lan fast-wan wan
WORKERSprocessi per l'oracolo di accuratezzanumero di CPU
POOLS, WARMUPS, TRIALSsovrascrivono il design dei poolquello del paper
RESULTSdirectory di outputresults
Scarica lo strumento