Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
GhostFaceMPC — Implementação de referência de reconhecimento facial com preservação de privacidade usando compartilhamento de segredo replicado no MP-SPDZ, com inferência quantizada do GhostFaceNet, benchmarks e ferramentas de QAT. | Kitploit
Ferramentas/GitHubGitHub/crypto-unict/ghostfacempc
CriptografiaPrivacidadeAprendizado de MáquinaPapers e PesquisaAprendizado e Educação
GitHubcrypto-unict/ghostfacempc

GhostFaceMPC

Implementação de referência de reconhecimento facial com preservação de privacidade usando compartilhamento de segredo replicado no MP-SPDZ, com inferência quantizada do GhostFaceNet, benchmarks e ferramentas de QAT.

Ver Repositório
18há 6 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

GhostFaceMPC: Reconhecimento Facial com Preservação de Privacidade usando Computação Multipartidária

Implementação oficial de GhostFaceMPC: Privacy-Preserving Face Recognition with Multi-Party Computation (Davide Carnemolla, Dario Catalano, Mario Di Raimondo — Universidade de Catania). Artigo: Cryptology ePrint Archive, Paper 2026/2499.

O GhostFaceMPC executa reconhecimento facial com o GhostFaceNetV1 (largura 1.3, stride 1, cabeça ArcFace, treinado no MS1MV3) entre três servidores com partilha de segredo replicada no MP-SPDZ.

  • O cliente faz a partilha de segredo do rosto alinhado de 112×112: ele próprio produz a partilha replicada, de modo que os servidores carregam os seus pares sem re-partilhar nada. Nenhum servidor vê jamais a imagem, uma ativação, o embedding ou a base de dados de inscritos.
  • Os parâmetros do modelo são públicos, portanto cada camada linear é uma aritmética local de segredo-por-público com uma redução de ponto fixo por saída.
  • O modelo é quantizado para um anel de 32 bits (6 bits fracionários, 9 para os kernels) por meio de treino ciente de quantização sobre a aritmética exata que os servidores executam.
  • Suporta dois perfis de segurança: semi-honesto (replicated-ring-party) e malicioso com aborto (ps-rep-ring-party).
  • Cada pedido é dividido numa fase offline e numa fase online. A fase offline gera o pré-processamento independente da entrada. A fase online é a própria inferência, seguida de uma pontuação de verificação 1:1 ou de uma identificação de conjunto fechado 1:N. Nenhuma das fases revela nada.

Este repositório contém exatamente o código necessário para reproduzir as experiências do artigo.

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

Conteúdo

CaminhoO que é
src/ghostmpc/Pacote Python e linha de comando ghostmpc
src/ghostmpc/codegen/compilador do manifesto do modelo para um programa MP-SPDZ
src/ghostmpc/eval/oráculo de anel em texto claro (bit-exato com o programa MPC) e avaliação de precisão
src/ghostmpc/benchmark/harness de benchmark de três partes e redes emuladas
src/ghostmpc/training/treinamento com reconhecimento de quantização sobre o passo direto fiel ao anel
third_party/patches/as instruções de máquina virtual que este trabalho adiciona ao MP-SPDZ
baselines/as linhas de base: TensorFlow em texto claro, MP-SPDZ ingênuo, EzPC/Porthos
run_experiments.shum script que executa todos os experimentos do artigo
scripts/configuração, emulação de rede sem root, coleta de tabelas
tests/testes unitários (pytest)

1. Requisitos

  • Máquina. Linux em x86-64. O artigo usou uma VM de 32 núcleos (Intel Xeon Gold 6238R) e executa 8 threads por parte. Todos os três servidores são executados em um único host.

  • Python. Python ≥ 3.10 (testado com 3.11).

  • Dependências de compilação do MP-SPDZ (lista 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
    
  • Emulação LAN/WAN. Requer iproute2 (ip, tc), iputils-ping, unshare (util-linux) e namespaces de usuário sem privilégios. O script não precisa de root. No Debian/Ubuntu: sudo sysctl kernel.unprivileged_userns_clone=1.

  • Apenas o baseline do Porthos.

    • libboost-system-dev
    • uma CPU com AES-NI
    • OCaml 4.14 via opam, com opam install ocamlbuild menhir ocamlfind stdint

2. Configuração

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

scripts/setup.sh faz quatro coisas:

  1. Cria .venv e instala o pacote. Isso baixa tensorflow-cpu, Pillow, onnx, onnxruntime e onnxsim.
  2. Prepara o MP-SPDZ em third_party/MP-SPDZ:
    • faz checkout da revisão fixada;
    • aplica third_party/patches/;
    • habilita o anel de 32 bits (MY_CFLAGS += -DRING_SIZE=32 em CONFIG.mine);
    • compila replicated-ring-party.x e ps-rep-ring-party.x;
    • gera os certificados TLS das três partes.
  3. Baixa os arquivos do modelo (ver a tabela abaixo).
  4. Verifica os conjuntos de dados de benchmark.

Os arquivos do modelo ficam em artifacts/:

ArquivoConteúdo
GhostFaceNet_W1.3_S1_ArcFace.h5professor float, da release do GhostFaceNets
model/o modelo quantizado ring32/f6/f_w9, com seus relatórios de acurácia
model-ring64-f16-b0/manifesto ring64 a partir do qual a baseline Porthos é exportada
legacy-scalar-236/manifesto ring64/f20 da baseline ingênua do MP-SPDZ

Os bundles são assets de release deste repositório, e cada arquivo é verificado contra seu SHA-256. ghostmpc fetch-bundles --bundle qat-start também baixa o manifesto a partir do qual o QAT inicia (ver §5).

Conjuntos de dados

O experimento de acurácia e a baseline em texto claro leem cinco conjuntos de avaliação do InsightFace: LFW, AgeDB-30, CALFW, CPLFW e CFP-FP. Use os arquivos .bin distribuídos com os dados de treinamento MS1MV3 do InsightFace dataset zoo e coloque-os como:

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

scripts/setup.sh verifica-os em relação aos resumos SHA-256 que utilizámos. Os benchmarks MPC não precisam dos conjuntos de dados: a sua comunicação não depende dos valores de entrada, pelo que partilham de forma secreta entradas sintéticas.

3. Reproduzir as experiências

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

Os resultados vão para results/ (um report.json e um summary.csv por execução), e tables escreve results/tables.md no formato do artigo. Os alvos podem ser executados separadamente e em qualquer ordem. Uma execução cujo relatório já existe é ignorada.

AlvoArtigoTempo de execução na nossa máquina (aprox.)
accuracytabela de comparação, colunas de precisão3 h por conjunto de dados por núcleo; dividir com WORKERS
verificationFace Verification Benchmarks: HbC e M, Co-Host / LAN / Fast-WAN / WAN~6 h
identificationFace Identification Benchmarks: 1:128 closed set, mesma grelha~6 h
plaintexttabela de comparação, linha TensorFlow1 min
naivetabela de comparação, linha MP-SPDZ (naive)~1 h incluindo compilação
porthostabela de comparação, linha EzPC (Porthos)~5 min de compilação + ~1,5 h
baselinesas três baselines
ablationtabela de ablação: as otimizações uma de cada vez, desde a baseline naive até GhostFaceMPC (HbC, co-host)~4 h

Variáveis de ambiente:

VariávelSignificadoPredefinição
THREADSthreads por parte8
NETWORKSredes a medirco-host lan fast-wan wan
WORKERSprocessos para o oráculo de precisãonúmero de CPUs
POOLS, WARMUPS, TRIALSsubstituir o desenho de poolso do artigo
RESULTSdiretório de saídaresults
Baixar ferramenta