
Simulationscode und Ergebnisse für ein privates, verifizierbares, byzantinisch-robustes föderiertes Eindringlingserkennungsprotokoll unter Verwendung von Secret Sharing, Merkle-Audits und Pedersen-Commitments.
Simulationscode, Rohdaten und Skripte zur Erstellung der Abbildungen für das Paper
Mustafa S. Aljumaily, Ali Ataeemh Allami, Mustafa N. Mnati, Nawar S. Alseelawi, Shahab Abdulla, "PVBRF-ID: Private, Verifiable and Byzantine-Robust Federated Intrusion Detection for Oilfield Enterprise Networks," arXiv preprint, 2026. (arXiv-Link wird nach der Ankündigung hinzugefügt.)
PVBRF-ID ist ein Zwei-Server-Aggregator für föderiertes Lernen. Die Standorte teilen ihre Modell-Updates mittels Secret Sharing auf; die Server prüfen gemeinsam die Norm jedes Updates und dessen Kosinusähnlichkeit zu einer sauberen Root-Set-Referenz innerhalb der Shares, geben ein Akzeptanz-Bit pro Standort preis und veröffentlichen Commitments, Merkle-Wurzeln und ein homomorphes Audit, sodass die Aufnahme akzeptierter Updates verifizierbar ist.
Umfang. Dies ist eine Simulation. Sicherer Vergleich, Range Proofs pro Koordinate, Beaver-Triple-Generierung und sicheres Clipping sind als ideale Funktionalitäten modelliert; die Pedersen-Gruppe ist eine Spielzeug-512-Bit-Gruppe, die nur zur Kostenskalierung dient. Die Experimente verwenden den öffentlichen Edge-IIoTset-Verkehr mit simulierten Standorten. Es wurden keine Betreiberdaten verwendet. Lesen Sie die Einschränkungen des Papers, bevor Sie eine Zahl zitieren.
| Pfad | Zweck |
|---|---|
faithful_agg.py | Protokollkern: additive Secret Sharing über GF(2^127-1), Festkomma-Kodierung, Beaver-Triple-Norm- und Kosinus-Tests (einschließlich des toleranten Falls tau < 0), SHA-256-Merkle-Inklusion, Pedersen-Commitments und das homomorphe Audit |
test_core.py | 12 Korrektheits- und Manipulationserkennungstests (python test_core.py) |
demo_sanity.py | End-to-End-Sanity-Lauf auf synthetischen Daten plus ein Kosten-Benchmark |
exp_ref_tau.py | Sweep über Referenzquelle x Kosinus-Schwellenwert x Angriff auf synthetischen Daten (einzelner Seed, nur Sanity) |
notebooks/faithful_agg_edgeiiot_v5_final.ipynb | das Hauptexperiment: 870 Läufe (10 Seeds x 87 Konfigurationen) auf Edge-IIoTset |
notebooks/faithful_agg_edgeiiot_v5b_tolerance_attack.ipynb | das ergänzende Experiment: 160 Läufe mit dem toleranzausnutzenden adaptiven Angreifer |
results/v5_full/ | Rohausgabe pro Lauf des Hauptexperiments (results.csv) und alle abgeleiteten Tabellen |
results/v5b_tolerance/ | Rohausgabe pro Lauf des ergänzenden Experiments |
make_figures.py | generiert die Manuskript-Abbildungen 2-5 und die ergänzende Tabelle S3 aus den beiden results.csv-Dateien neu |
figures/ | die Manuskript-Abbildungen |
Der Code und die Ergebnisdateien behalten den Entwicklungsnamen der Methode bei, faithful_agg / faithful_root; faithful_root_t-0.3 in results.csv ist PVBRF-ID mit der Root-Set-Referenz und tau = -0.3.
pip install -r requirements.txt
python test_core.py # 12 tests, about a minute
python make_figures.py # figures from the shipped results, seconds
Um die Experimente erneut auszuführen, laden Sie die Edge-IIoTset-DNN-Datei herunter (DNN-EdgeIIoT-dataset.csv, 2.219.201 Flows; erhältlich bei den Dataset-Autoren über IEEE DataPort oder Kaggle), legen Sie sie unter data/DNN-EdgeIIoT-dataset.csv ab und führen Sie die beiden Notebooks aus dem Ordner notebooks/ der Reihe nach aus:
faithful_agg_edgeiiot_v5_final.ipynb (etwa 1,1-2,9 h auf 8 Kernen; wiederaufnehmbar; schreibt results/v5_full/)faithful_agg_edgeiiot_v5b_tolerance_attack.ipynb (etwa 30 min; schreibt results/v5b_tolerance/)Pfade können mit den Umgebungsvariablen EDGE_DATA, CORE_DIR und OUT_DIR überschrieben werden.
Alle Läufe sind deterministisch gegeben die Seeds in config.json. Die vier Klartext-Baselines erscheinen in beiden Experimenten und müssen bis zur letzten Ziffer übereinstimmen; sie tun es.
r_t zu erhalten; veröffentlichen B_t = kappa * ||r_t|| und r_t / ||r_t||.||u_i||^2 und <u_i, r_t>^2 mit Beaver-Triples; ein idealer Vergleich gibt nur das Akzeptanz-Bit b_i preis.prod_{i accepted} C_i^j = Com(A_j; R_j) für beide Server prüfen; jeder Standort prüft seinen Merkle-Inklusionspfad.Real: Sharing, Festkomma-Kodierung, Beaver-Skalarprodukte, Merkle-Bäume, Pedersen-Commitments und das Audit. Ideal: sicherer Vergleich (seine Kommunikation ist eine Platzhalter-Schätzung), Range Proofs, Triple-Generierung, sicheres Clipping und Rauschen im Aggregat.
| clean | sign-flip | adaptive 30% | |
|---|---|---|---|
| FedAvg | 0.706 | 0.091 | 0.046 |
| Multi-Krum (plaintext) | 0.690 | 0.686 | 0.693 |
| PVBRF-ID (tau = -0.3) | 0.708 | 0.696 | 0.571 |
| PVBRF-ID + secure clip | 0.697 | 0.688 | 0.641 |
Backdoors passieren den Filter (ASR 1.00); rauschbasierte Mitigation ist heuristisch (epsilon >= 16.9). Ein Update-Inferenz-Angreifer rekonstruiert die Klassenmischung aus Klartext-Updates (Spearman 0.81), aber nicht aus dem Share eines Servers (0.00). Die Kommunikation beträgt etwa das 19-fache des Uploads von reinem FedAvg.
MIT, siehe LICENSE.