Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Priv-QDNN — Base de code de recherche pour l'évaluation de la confidentialité des réseaux neuronaux quantifiés : entraîne des modèles cibles/ombres en PTQ/QAT et exécute des attaques par inférence d'appartenance (MIA, RMIA, boîte blanche) avec des défenses DP. | Kitploit
Outils/GitHubGitHub/jefffffffu/priv-qdnn
Protection de la Vie PrivéeApprentissage AutomatiqueArticles et RechercheApprentissage et ÉducationSécurité de l'IA
GitHubjefffffffu/priv-qdnn

Priv-QDNN

Base de code de recherche pour l'évaluation de la confidentialité des réseaux neuronaux quantifiés : entraîne des modèles cibles/ombres en PTQ/QAT et exécute des attaques par inférence d'appartenance (MIA, RMIA, boîte blanche) avec des défenses DP.

Voir le dépôt
1il y a 2 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Priv-QDNN

Ce dépôt contient une base de code de recherche pour l'évaluation de la confidentialité des réseaux de neurones profonds quantifiés. Il prend en charge l'entraînement de modèles cibles/fantômes dans des configurations courantes de quantification post-entraînement (PTQ) et d'entraînement conscient de la quantification (QAT), la sauvegarde sur disque des caractéristiques intermédiaires d'attaque, ainsi que l'exécution d'une suite d'attaques et de métriques liées à l'inférence d'appartenance (par ex. MIA, RMIA, WhiteBoxMIA, WhiteBoxMIA_Partial). La base de code intègre également des chemins d'entraînement à confidentialité différentielle basés sur Opacus pour les modèles défendus (par ex. variantes dropout / DP / adversariales dans les scripts d'exemple fournis).

Le flux d'évaluation est divisé en deux étapes : (1) l'entraînement (--training target|shadow|both) pour matérialiser les artefacts save/<attack_method>/..., et (2) l'évaluation en mode attaque seule (--training None) qui charge les postérieurs/modèles sauvegardés et rapporte les métriques sous result/<attack_method>/....

Installation

Vous avez besoin d'une machine avec prise en charge d'un GPU NVIDIA pour les expériences typiques. Nous recommandons les wheels CUDA 12.1 pour PyTorch (voir les commandes ci-dessous). Utilisez Python 3.10 pour correspondre aux versions épinglées dans requirements.txt.

Vous pouvez installer la plupart des dépendances avec :

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

Remarques :

  • Pour PyTorch CPU uniquement, exécutez pip install -r requirements.txt sans --extra-index-url (roues CPU PyPI si disponibles pour votre plateforme).
  • Si vous utilisez les chemins de quantification AdaRound / AIMET, vous avez besoin d'une installation fonctionnelle de aimet-torch (voir quantization/PTQ/adaround.py). Si pip ne parvient pas à résoudre aimet-torch sur votre plateforme, suivez d'abord les instructions d'installation de Qualcomm AIMET, puis installez les dépendances restantes.

Jeux de données

Les jeux de données ne sont pas inclus dans ce dépôt. Quatre sont pris en charge, et ils diffèrent par la quantité de configuration nécessaire.

CIFAR-100 et CINIC-10 (automatique)

Les deux sont récupérés lors de la première utilisation dans data/, donc aucune étape manuelle n'est requise — assurez-vous simplement que la machine dispose d'un accès réseau la première fois que vous lancez une expérience.

  • CIFAR-100 est téléchargé par torchvision.datasets.CIFAR100(..., download=True) dans data/load_data.py.
  • CINIC-10 est téléchargé et extrait par fetch_cinic10() dans data/cinic10.py depuis le miroir Edinburgh DataShare. Il s'agit d'une archive volumineuse, prévoyez donc du temps et de l'espace disque pour la première exécution.

Texas100 et Location (manuel)

Ces deux jeux de données n'ont pas de téléchargeur automatique. Récupérez les archives brutes, décompressez-les sous data/<dataset>/raw/, puis convertissez-les en fichiers .npy attendus par les chargeurs.

Jeu de donnéesArchive brute
Texas100https://www.comp.nus.edu.sg/~reza/files/dataset_texas.tgz
Locationhttps://github.com/privacytrustlab/datasets (le jeu location)

Disposition attendue après décompression :

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

Ensuite, construisez les ensembles d'entraînement et de test :

python data/prepare_tabular.py --dataset both

--dataset accepte texas, location ou both. Utilisez --raw_root pour pointer vers un autre emplacement (par défaut data/<dataset>/raw), et --test_size / --seed pour modifier la répartition (valeurs par défaut 0.2 et 41).

Cela écrit les fichiers que data/tabular_datasets.py charge :

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

Si ces fichiers .npy sont absents, toute exécution utilisant --dataset_name texas ou --dataset_name location échoue avec une FileNotFoundError qui nomme le chemin manquant.

Structure du code de Priv-QDNN

  • attack : implémentations des attaques et points d'entrée d'évaluation (MIA, RMIA, WhiteBox_MIA, etc.).
  • training : boucles d'entraînement cible/shadow et variantes d'entraînement défendues (branches DP / adversariales, utilitaires).
  • model : définitions de modèles et wrappers utilisés par l'entraînement et les attaques.
  • quantization : pipelines et utilitaires de quantification PTQ/QAT (y compris l'intégration d'AIMET AdaRound).
  • data : utilitaires de téléchargement de jeux de données, scripts de préparation et wrappers Dataset PyTorch.
  • dp : utilitaires de confidentialité différentielle utilisés par les chemins d'entraînement DP.
  • example : scripts shell pour des expériences de bout en bout (collecte de données MIA + évaluation attaque seule / défenses).
  • experiment : études mécanistes sous-jacentes à l'analyse de l'article — scores de mémorisation de type LOOD (memorization.py) et les tableaux de quantification de la norme du gradient (grad_norm_quantization_table.py, grad_norm_range_normalized_table.py).
  • plot : génération de figures et de tableaux pour l'article ; les PDF et CSV produits sont déposés dans plot/figures/.
  • main.py : point d'entrée CLI unifié (--training bascule entre les modes entraînement et attaque seule).
  • parameter_parser.py : tous les arguments de ligne de commande et leurs valeurs par défaut.
  • extract_last_layer_grad_norm.py : normes L2 par échantillon du gradient du classifieur de la dernière couche pour les sous-ensembles membres et non-membres, réutilisées par les tableaux de experiment/.

Expériences de démonstration

Collecte de données d'inférence d'appartenance + MIA en mode attaque seule (CIFAR-100)

Le schéma suivant correspond au flux de travail prévu du dépôt : entraîner avec MIA pour remplir save/MIA/..., puis exécuter MIA avec --training None.

# 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

Pour chaque exécution d'attaque, la console affichera la progression de l'implémentation d'attaque correspondante (par exemple, les métriques par essai pour MIA ; les exécutions en mode attaque seule sont enregistrées dans result/MIA/...).

Choisir quelles attaques en boîte noire exécuter

--compleaknr_attacks contrôle l'entrée MIA en mode attaque seule :

  • confidence — exécute uniquement l'attaque par seuil de confiance. Elle ne consomme que les postérieurs enregistrés, elle est donc rapide et ne nécessite aucun fichier de modèle.
  • all (valeur par défaut de l'argument) — exécute les six variantes en boîte noire : seuil de confiance, seuil d'entropie, entropie modifiée, deux attaques basées sur l'entraînement (LR/RF sur les postérieurs, et sur les postérieurs plus l'étiquette), et SAMIA.
Télécharger l’outil