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
Priv-QDNN — Forschungscodebasis zur Privatsphärenbewertung quantisierter neuronaler Netze: trainiert Ziel-/Shadow-Modelle unter PTQ/QAT und führt Membership-Inference-Angriffe (MIA, RMIA, White-Box) mit DP-Verteidigungen aus. | Kitploit
Tools/GitHubGitHub/jefffffffu/priv-qdnn
PrivatsphäreMaschinelles LernenPapers & ForschungLernen & BildungKI-Sicherheit
GitHubjefffffffu/priv-qdnn

Priv-QDNN

Forschungscodebasis zur Privatsphärenbewertung quantisierter neuronaler Netze: trainiert Ziel-/Shadow-Modelle unter PTQ/QAT und führt Membership-Inference-Angriffe (MIA, RMIA, White-Box) mit DP-Verteidigungen aus.

Repository anzeigen
1vor 2 MonatenNoch 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

Priv-QDNN

Dieses Repository enthält eine Forschungscodebasis zur Datenschutzbewertung quantisierter tiefer neuronaler Netze. Es unterstützt das Training von Ziel-/Schattenmodellen unter gängigen Einstellungen der Post-Training-Quantisierung (PTQ) und des quantisierungsbewussten Trainings (QAT), das Speichern von Zwischenangriffsmerkmalen auf der Festplatte sowie die Ausführung einer Suite von Membership-Inference-bezogenen Angriffen und Metriken (z. B. MIA, RMIA, WhiteBoxMIA, WhiteBoxMIA_Partial). Die Codebasis integriert außerdem Opacus-basierte Pfade für differenzielles Privatsphäre-Training für verteidigte Modelle (z. B. Dropout-/DP-/Adversarial-Varianten in den bereitgestellten Beispielskripten).

Der Evaluierungsworkflow ist in zwei Phasen unterteilt: (1) Training (--training target|shadow|both), um save/<attack_method>/...-Artefakte zu erzeugen, und (2) reine Angriffsauswertung (--training None), die gespeicherte Posteriors/Modelle lädt und Metriken unter result/<attack_method>/... ausgibt.

Installation

Sie benötigen einen Rechner mit NVIDIA-GPU-Unterstützung für typische Experimente. Wir empfehlen CUDA 12.1-Wheels für PyTorch (siehe Befehle unten). Verwenden Sie Python 3.10, um den in requirements.txt festgelegten Versionen zu entsprechen.

Die meisten Anforderungen können Sie installieren mit:

conda create --name priv-qdnn python=3.10
conda activate priv-qdnn
pip install -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cu121

Hinweise:

  • Für reines CPU-PyTorch führe pip install -r requirements.txt ohne --extra-index-url aus (PyPI-CPU-Wheels, falls für deine Plattform verfügbar).
  • Wenn du die AdaRound / AIMET-Quantisierungspfade verwendest, benötigst du eine funktionierende aimet-torch-Installation (siehe quantization/PTQ/adaround.py). Falls pip aimet-torch auf deiner Plattform nicht auflösen kann, folge zuerst den Installationsanweisungen von Qualcomm AIMET und installiere anschließend die übrigen Abhängigkeiten.

Datensätze

Datensätze sind nicht in diesem Repository enthalten. Vier werden unterstützt, und sie unterscheiden sich darin, wie viel Einrichtung sie erfordern.

CIFAR-100 und CINIC-10 (automatisch)

Beide werden bei der ersten Verwendung nach data/ abgerufen, sodass kein manueller Schritt erforderlich ist – stelle nur sicher, dass die Maschine beim ersten Ausführen eines Experiments Netzwerkzugriff hat.

  • CIFAR-100 wird von torchvision.datasets.CIFAR100(..., download=True) in data/load_data.py heruntergeladen.
  • CINIC-10 wird von fetch_cinic10() in data/cinic10.py vom Edinburgh DataShare-Mirror heruntergeladen und entpackt. Es handelt sich um ein großes Archiv, plane daher Zeit und Speicherplatz für den ersten Lauf ein.

Texas100 und Location (manuell)

Diese beiden haben keinen automatischen Downloader. Lade die Roharchive herunter, entpacke sie unter data/<dataset>/raw/ und konvertiere sie anschließend in die .npy-Dateien, die die Loader erwarten.

DatensatzRoharchiv
Texas100https://www.comp.nus.edu.sg/~reza/files/dataset_texas.tgz
Locationhttps://github.com/privacytrustlab/datasets (das location-Set)

Erwartete Struktur nach dem Entpacken:

data/texas/raw/texas/100/feats
data/texas/raw/texas/100/labels
data/location/raw/bangkok

Dann erstelle die Train-/Test-Splits:

python data/prepare_tabular.py --dataset both

--dataset akzeptiert texas, location oder both. Verwenden Sie --raw_root, um auf einen anderen Speicherort zu verweisen (Standard data/<dataset>/raw), und --test_size / --seed, um die Aufteilung zu ändern (Standardwerte 0.2 und 41).

Dies schreibt die Dateien, die data/tabular_datasets.py lädt:

data/<dataset>/{train_feats,train_labels,test_feats,test_labels}.npy

Wenn diese .npy-Dateien fehlen, schlägt jeder Lauf mit --dataset_name texas oder --dataset_name location mit einem FileNotFoundError fehl, der den fehlenden Pfad benennt.

Codestruktur von Priv-QDNN

  • attack: Angriffsimplementierungen und Evaluierungs-Einstiegspunkte (MIA, RMIA, WhiteBox_MIA usw.).
  • training: Trainingsschleifen für Target/Shadow und verteidigte Trainingsvarianten (DP-/Adversarial-Zweige, Hilfsfunktionen).
  • model: Modelldefinitionen und Wrapper, die von Training und Angriffen verwendet werden.
  • quantization: PTQ/QAT-Quantisierungspipelines und Hilfsfunktionen (einschließlich AIMET-AdaRound-Integration).
  • data: Hilfsfunktionen zum Herunterladen von Datensätzen, Vorbereitungsskripte und PyTorch-Dataset-Wrapper.
  • dp: Differential-Privacy-Hilfsfunktionen, die von DP-Trainingspfaden verwendet werden.
  • example: Shell-Skripte für End-to-End-Experimente (MIA-Datenerfassung + reine Angriffs-Evaluierung / Verteidigungen).
  • experiment: Mechanistische Studien hinter der Analyse des Papers — LOOD-artige Memorization-Scores (memorization.py) und die Gradient-Norm-Quantisierungstabellen (grad_norm_quantization_table.py, grad_norm_range_normalized_table.py).
  • plot: Abbildungs- und Tabellengenerierung für das Paper; Ausgabe-PDFs und CSVs landen in plot/figures/.
  • main.py: Einheitlicher CLI-Einstiegspunkt (--training wechselt zwischen Trainings- und reinem Angriffsmodus).
  • parameter_parser.py: Alle Kommandozeilenargumente und Standardwerte.
  • extract_last_layer_grad_norm.py: Probenweise L2-Normen des Klassifikator-Gradienten der letzten Schicht für Member- und Non-Member-Teilmengen, wiederverwendet von den Tabellen in experiment/.

Demo-Experimente

Datenerfassung für Membership Inference + reine Angriffs-MIA (CIFAR-100)

Das folgende Muster entspricht dem vorgesehenen Workflow des Repositories: Mit MIA trainieren, um save/MIA/... zu befüllen, dann MIA mit --training None ausführen.

# Stage 1: train target + shadow and save MIA artifacts
python main.py \
  --dataset_name cifar100 \
  --net_name resnet18 \
  --quantization hawq --a_bit 8 --w_bit 8 \
  --attack_method MIA \
  --training both \
  --num_epochs 50 --trials 3 \
  --device cuda:0

# Stage 2: attack-only MIA evaluation (confidence threshold attack only)
python main.py \
  --dataset_name cifar100 \
  --net_name resnet18 \
  --quantization hawq --a_bit 8 --w_bit 8 \
  --attack_method MIA \
  --compleaknr_attacks confidence \
  --training None \
  --trials 3 \
  --device cuda:0

Für jeden Angriffslauf gibt die Konsole den Fortschritt der entsprechenden Angriffsimplementierung aus (z. B. trialweise Metriken für MIA; reine Angriffsläufe werden unter result/MIA/... gespeichert).

Auswahl, welche Black-Box-Angriffe ausgeführt werden sollen

--compleaknr_attacks steuert den reinen MIA-Angriffseintrag:

  • confidence — führt nur den Confidence-Threshold-Angriff aus. Er nutzt ausschließlich die gespeicherten Posterior-Wahrscheinlichkeiten, ist daher schnell und benötigt keine Modelldateien.
  • all (der Standardwert des Arguments) — führt alle sechs Black-Box-Varianten aus: Confidence-Threshold, Entropy-Threshold, modifizierte Entropie, zwei train-basierte Angriffe (LR/RF auf Posterior-Wahrscheinlichkeiten sowie auf Posterior-Wahrscheinlichkeiten plus Label) und SAMIA.

Beachten Sie, dass die beiden Modi unterschiedliche Anforderungen haben. Die ersten fünf Varianten lesen nur die gespeicherten Posterior-Wahrscheinlichkeiten, aber SAMIA lädt zusätzlich die gespeicherten Target- und Shadow-Modelle aus save/MIA/.../target/<trial>/model.pth und save/MIA/.../shadow/0/model.pth und fragt sie mit perturbierten Eingaben ab, um die Ausgabensensitivität zu schätzen. Dies ist insofern weiterhin Black-Box, als nur Modellausgaben verwendet werden — keine Gradienten oder internen Aktivierungen —, aber es erfordert, dass diese Checkpoints vorhanden sind, und ist deutlich langsamer.

Tool herunterladen