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
dlr-ne-ics-security — Code de recherche implémentant le calcul de l'équilibre de Nash dynamique à rang faible pour les jeux de sécurité ICS stochastiques entre menaces persistantes avancées et défenses à cible mobile. | Kitploit
Outils/GitHubGitHub/tz98lab/dlr-ne-ics-security
Outils DéfensifsAnalyse des VulnérabilitésSécurité SCADA/ICSUtilitaires et FrameworksApprentissage AutomatiqueArticles et Recherche
GitHubtz98lab/dlr-ne-ics-security

dlr-ne-ics-security

Code de recherche implémentant le calcul de l'équilibre de Nash dynamique à rang faible pour les jeux de sécurité ICS stochastiques entre menaces persistantes avancées et défenses à cible mobile.

Voir le dépôt
18il y a 4 joursPas 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

DLR-NE pour les jeux de sécurité ICS

Python 3.10+ License: MIT

Calcul d'équilibre dynamique de rang faible pour les jeux stochastiques entre menaces persistantes avancées et défense par cible mobile

Article régulier, en cours d'évaluation à Automatica (resoumis en octobre 2026)

Vue d'ensemble

Ce dépôt contient l'implémentation et la validation expérimentale de l'algorithme Dynamical Low-Rank Nash Equilibrium (DLR-NE) pour le calcul des équilibres de Nash dans les jeux de sécurité des systèmes de contrôle industriels (ICS) de grande dimension.

L'interaction stratégique entre les menaces persistantes avancées (APT) et les défenses par cible mobile (MTD) est modélisée comme un jeu stochastique à somme nulle à deux joueurs sur un espace d'états continu de dimension $n \sim 10^3$–$10^4$. L'idée clé est que le couplage physique de rang faible des canaux d'attaque et de défense (une propriété structurelle inhérente à la topologie des réseaux ICS) permet une approximation tractable par réseau de neurones de rang faible de la fonction de valeur d'équilibre, réduisant la complexité par itération de $\mathcal{O}(n^2)$ à $\mathcal{O}(nr^2)$, soit une accélération de $\Theta(n/r^2)$.

Contributions théoriques principales

ThéorèmeÉnoncéExpérience
Théorème 1Borne globale d'erreur d'approximation de rang faible pour la fonction de valeur optimale $V^*$Exp. 1
Théorème 2Convergence géométrique de DLR-NE avec décomposition explicite de l'erreur en régime permanentExp. 2
Théorème 3Complexité par itération $\mathcal{O}(nr^2)$ et accélération $\Theta(n/r^2)$ par rapport aux références de rang pleinExp. 3
Corollaire 1Robustesse théorique des jeux : la sensibilité de l'équilibre est contrôlée par le nombre de conditionnement $\kappa(S)$Exp. 4

Structure du dépôt

dlr-ne-ics-security/
├── src/                          # Core algorithmic modules
│   ├── environment.py            # Synthetic nonlinear power-system dynamics
│   ├── networks.py               # Low-rank and full-rank neural networks
│   ├── bellman.py                # Bellman operator and greedy Nash policy extractor
│   ├── dlra_vi.py                # Algorithm 1: DLR-NE
│   └── utils.py                  # FLOPs accounting, EYM error, metrics
│
├── experiments/                  # Experimental scripts (one per theorem)
│   ├── exp01_truncation_error.py     # Theorem 1: Low-rank truncation error
│   ├── exp02_convergence.py          # Theorem 2: Convergence of DLR-NE
│   ├── exp03_complexity.py           # Theorem 3: Computational complexity
│   ├── exp04_robustness.py           # Corollary 1: Game-theoretic robustness
│   ├── exp05_tradeoff.py             # Compression-accuracy Pareto frontier
│   └── exp06_ablation.py             # Ablation: necessity of basis augmentation
│
├── data/                         # Generated datasets (excluded from git)
├── results/                      # Figures and logs (excluded from git)
├── notebooks/                    # Prototyping and visualization
├── requirements.txt              # Python dependencies
└── README.md                     # This file

Installation

Prérequis

  • Python >= 3.10
  • NumPy, SciPy, Matplotlib, PyTorch (CPU ou CUDA)

Configuration rapide

# Clone the repository
git clone https://github.com/tz98lab/dlr-ne-ics-security.git
cd dlr-ne-ics-security

# Create a virtual environment (recommended)
python -m venv venv
source venv/bin/activate        # Linux/Mac
# venv\Scripts\activate         # Windows

# Install dependencies
pip install -r requirements.txt

Dépendances

numpy>=1.24.0
scipy>=1.10.0
matplotlib>=3.7.0
torch>=2.0.0

Expériences

Toutes les expériences sont autonomes et peuvent être exécutées indépendamment. Chaque script génère des figures dans le répertoire results/figures/.

Note sur l'échelle : Les configurations par défaut utilisent $n=200$ pour une démonstration rapide. Pour reproduire les résultats à pleine échelle rapportés dans l'article ($n \sim 10^3$), modifiez le PowerSystemConfig en haut de chaque script (voir les commentaires en ligne).

Exp. 1 : Erreur de troncature de rang faible (Théorème 1)

Valide que l'erreur de troncature $|V_{\mathrm{full}} - \widehat{V}r|\infty$ décroît avec le rang $r$ et correspond à la prédiction théorique d'Eckart-Young-Mirsky.

python experiments/exp01_truncation_error.py

Sortie : results/figures/exp1_truncation_error.png
Attendu : L'erreur mesurée (cercles bleus) suit la borne théorique $L_\phi |w_{\mathrm{out}}^*|2 R{\mathcal{X}} \epsilon_{\mathrm{EYM}}(r)$ (ligne pointillée violette) ; le spectre des valeurs singulières montre une décroissance rapide.

Exp. 2 : Convergence de DLR-NE (Théorème 2)

Valide la convergence géométrique avec un taux $\gamma$ et le voisinage d'erreur explicite en régime permanent $\varepsilon_{\mathrm{total}}/(1-\gamma)$.

python experiments/exp02_convergence.py

Sortie : results/figures/exp2_convergence.png
Attendu : Les courbes d'erreur décroissent d'abord le long de l'enveloppe $\gamma^k$, puis s'aplatissent en un plateau dominé par le budget de la boucle interne $s^$ (diviser $s^$ par deux coûte un facteur d'environ $20$ en précision) ; la taille du lot $N_b$ a un effet comparativement négligeable.

Exp. 3 : Complexité computationnelle (Théorème 3)

Valide la complexité par itération $\mathcal{O}(nr^2)$ et l'accélération $\Theta(n/r^2)$ par rapport aux références FC-NN de rang plein.

python experiments/exp03_complexity.py

Sortie : results/figures/exp3_complexity.png
Attendu : DLR-NE évolue linéairement en $n$ (pente 1 en log-log), FC-NN évolue quadratiquement (pente 2) ; accélération mesurée en FLOPs $\approx 12\times$ (temps réel $\approx 4\times$) à $n=2000, r=10$.

Exp. 4 : Robustesse théorique des jeux (Corollaire 1)

Valide la relation linéaire $|V(\cdot;\pi_D,\pi_A) - V(\cdot;\tilde{\pi}D,\pi_A)|\infty \le L_\kappa |\Delta S|F$ avec une constante de sensibilité finie et ajustable par $\beta$, $L\kappa$, certifiée par le nombre de conditionnement $\kappa(S)$ (un certificat a priori du pire cas).

python experiments/exp04_robustness.py

Sortie : results/figures/exp4_robustness.png
Attendu : La déviation de valeur est linéaire en $|\Delta S|_F$ avec une pente décroissante en fonction du poids de régularisation spectrale $\beta$ ; $\kappa(S)$ est réduit en augmentant $\beta$.

Exp. 5 : Compromis compression–précision

Explore la frontière de Pareto entre le taux de compression et l'utilité de la politique d'équilibre.

python experiments/exp05_tradeoff.py

Sortie : results/figures/exp5_tradeoff.png
Attendu : Point optimal à $r = 5$ : $\approx 94%$ de compression des paramètres pour $\approx 2.3%$ de perte d'utilité.

Exp. 6 : Ablation—Nécessité de l'augmentation de base

Compare trois variantes : (i) l'algorithme 1 complet, (ii) base fixe, (iii) sans rétraction.

python experiments/exp06_ablation.py

Sortie : results/figures/exp6_ablation.png
Attendu : La variante à base fixe stagne ; la variante sans rétraction est instable ; l'algorithme 1 complet atteint une décroissance stable à coût contrôlé.

Déclaration de reproductibilité

Télécharger l’outil