
الشيفرة والنتائج الخاصة بورقة QAI 2026 حول قابلية نقل هجوم FGSM من المحاكاة إلى عتاد IBM الكمي.
الشيفرة والمعاملات المدرَّبة والنتائج الخاصة بالورقة البحثية FGSM Attack Transferability from Simulation to Quantum Hardware in Network Intrusion Detection، المؤتمر الدولي للذكاء الاصطناعي الكمّي (QAI) 2026 التابع لمعهد IEEE.
الأرقام الواردة في الورقة مستمدة من ملفات JSON الموجودة في results/. والسكربتات
هنا هي التي أنتجت تلك الملفات.
src/ experiment scripts, numbered in run order
data/ preprocessed splits (the raw CICIDS2017 CSVs are not included)
models/ trained circuit parameters
results/ one JSON per experiment
figures/ the two figures in the paper
python >= 3.10
pennylane == 0.44.1
qiskit-ibm-runtime
numpy, scipy, scikit-learn, pandas, matplotlib
ثبّت باستخدام pip install -r requirements.txt.
يعمل السكربتان 08 و09 على عتاد حقيقي، لذا يحتاجان إلى حساب IBM Quantum.
انسخ .env.example وضع رمزك المميز ونسختك (instance) فيه.
ثم عيّنهما كمتغيرات بيئة. تقرأ السكربتات بيانات الاعتماد من
البيئة فقط.
الالتقاط الخام ليس هنا. نزّل CICIDS2017 من
المعهد الكندي للأمن السيبراني
وضع Friday-WorkingHours-Afternoon-DDos.pcap_ISCX.csv في data/.
هذا هو الملف الوحيد المستخدم.
يبني 01_preprocess.py التقسيمات الأربعة بصيغة .npy. يجب أن تحصل على 1134
عينة هجوم و866 عينة سليمة في التدريب. وفي الاختبار، 284 هجومًا و216
سليمة. الأعداد المختلفة تعني ملف التقاط مختلفًا، أو إصدار
scikit-learn مختلفًا.
شغّل السكربتات بترتيب أرقامها. تحتاج السكربتات من 04 إلى 07 إلى أن تكون السكربتات 01 و02 و03 قد شُغّلت أولًا.
| السكربت | يُنتج | مدة التشغيل |
|---|---|---|
01_preprocess.py | التقسيمات الأربعة في data/ | ثوانٍ |
02_train_narrow_margin.py | models/clean_params.npy | ثوانٍ |
03_retrain_poisoning_and_noise.py | نماذج مسمومة ومشوّشة، وملفّا نتائج | عدة ساعات |
04_epsilon_sweep.py | results/epsilon_sweep.json | أقل من دقيقة |
05_compare_attack_guidance.py | results/gradient_vs_untargeted.json | أقل من دقيقة |
06_finish_rq3.py | خط الأساس الخالي من التشويش ومسح FGSM للتشويش | نحو ساعة |
07_margin_control.py | results/margin_control.json | بضع دقائق |
08_run_hardware_models.py | results/hardware_clean_vs_poisoned.json | وقت الانتظار في الطابور |
09_run_hardware_fgsm.py | results/hardware_fgsm_adam.json | وقت الانتظار في الطابور |
10_convert_hardware_results.py | results/hardware_fgsm_cobyla.json | ثوانٍ |
make_figures.py | الشكلان | ثوانٍ |
السكربت 03 هو البطيء. فهو يحاكي مصفوفات الكثافة، وهو ما يكلّف نحو ست عشرة دقيقة لكل تهيئة. يدرّب ثلاث تهيئات عند كل مستوى من مستويات التشويش الثلاثة.
ترسل سكربتات العتاد جميع دوائرها في مهمة واحدة. ثم تشترك كل دائرة في
المهمة في حالة معايرة واحدة. يأخذ كلا السكربتين الخيار
--dry-run، الذي يحوّل (transpiles) كل شيء ويطبع إحصاءات الدوائر
دون إرسال أي شيء.
| الورقة | ملف النتيجة | السكربت |
|---|---|---|
| الجدول I، التسميم | poisoning_retrained.json | 03 |
| الجدول II، FGSM مقابل غير المستهدف | gradient_vs_untargeted.json | 05 |
| الجدول III، المحاكاة مقابل العتاد | hardware_clean_vs_poisoned.json، hardware_fgsm_adam.json | 08، 09 |
| الجدول IV، التشويش مزيل الاستقطاب | noise_retrained.json، noise_fgsm_sweep.json، noiseless_400_baseline.json | 03، 06 |
| الشكل 1، الانتقال إلى العتاد | hardware_fgsm_adam.json، hardware_fgsm_cobyla.json | 09، 10 |
| الشكل 2، الدقة والهامش تحت التشويش | نفس الجدول IV | 03، 06 |
| القسم IV-A، خط الأساس النظيف | clean_history.json، noise_retrained.json | 02، 03 |
| القسم IV-C، هوامش القرار | epsilon_sweep.json | 04 |
| القسم VI، التحكم في الهامش | margin_control.json | 07 |
| الملف | ما هو |
|---|---|
clean_params.npy | مصنّف ضيق الهامش، COBYLA، دقة 86.8% عند هامش 0.07 |
noisy_0.0_params.npy | مصنّف واسع الهامش، Adam، دقة 92.2% عند هامش 0.54 |
noisy_0.0_params_400.npy | نموذج خالٍ من التشويش مدرَّب على المجموعة الفرعية ذات 400 عينة، للمقارنة عبر مستويات التشويش |
noisy_0.001_params.npy، noisy_0.01_params.npy، noisy_0.05_params.npy | واحد لكل مستوى من مستويات التشويش مزيل الاستقطاب |
poisoned_5pct_params.npy، poisoned_10pct_params.npy، poisoned_15pct_params.npy | واحد لكل معدل من معدلات قلب التسميات |
استخدمت جميع التشغيلات IBM Fez، وهو معالج Heron r2 بـ 156 كيوبت. 1024 لقطة لكل دائرة، عبر Qiskit Runtime SamplerV2. وكان التحويل (transpilation) عند مستوى التحسين 1.
أرسل كل تشغيل الدائرة المنطقية نفسها: عمق 20 مع 12 بوابة ثنائية الكيوبت. يحوّلها التحويل إلى كيوبتات فيزيائية، وهو ما يغيّر كلا الرقمين في كل إرسال.
| النتيجة | السكربت | الدوائر | العمق بعد الترجمة | بوابات ثنائية الكيوبت |
|---|---|---|---|---|
| دقة النموذج النظيف والمسموم | 08 | 100 | 100 | 27 |
| نقل FGSM، نموذج واسع الهامش | 09 | 150 | 87 | 42 |
| نقل FGSM، نموذج ضيق الهامش | كود سابق، استُبدل بالسكربت 09 | 400 | غير مسجّل | غير مسجّل |
تعود تجربة النقل ضيقة الهامش إلى ما قبل السكربتات الموجودة في هذا المستودع.
مخرجاتها هي results/transferability_hw_50_expA.json، والتي يحوّلها السكربت 10
إلى الصيغة التي تقرأها الأشكال. استخدمت التجربة نفس الدائرة
ونفس مستوى التحسين المستخدم في السكربت 09.
يختلف العمقان المسجّلان. يختار المترجم الكيوبتات الفيزيائية باستخدام إرشادات تقريبية، لذا تُسقَط الدائرة نفسها بشكل مختلف في كل إرسال. ومع ذلك، اتفقت التجربتان مع المحاكاة.
تعتمد نتائج العتاد على حالة المعايرة الخاصة بالجهاز في ذلك اليوم. أرسل الدوائر نفسها مرة أخرى وستحصل على أعداد مختلفة. ملفات JSON هي سجل لما فعله الجهاز.
لا يمكن إعادة توليد models/clean_params.npy. جاءت معاملاته الأولية
من حالة NumPy العشوائية العامة بدلاً من مولّد مزوّد ببذرة.
يقوم 02_train_narrow_margin.py الآن بتهيئة بذرته، لذا فإن التشغيلات الجديدة
قابلة لإعادة الإنتاج فيما بينها. لكنها تستقر في مكان آخر،
والتباين واسع. يمكن لمحسّن بلا تدرّج على هدف عشوائي
أن ينهار إلى التنبؤ بالفئة الأغلبية. يذكر السكربت ذلك عندما
يحدث.
الباقي مزوّد ببذرة. لا تزال الدقة تتفاوت عبر التهيئات الأولية، لذا تُبلّغ السكربتات عن المتوسط والانحراف المعياري بدلاً من تشغيل واحد. يشرح القسم VI من الورقة السبب.
@inproceedings{ajmal2026fgsm,
author = {Ajmal, Zeeshan and Halunen, Kimmo and Mau{\ss}ner, Marc
and Reers, Volker and Khan, Arif Ali},
title = {{FGSM} Attack Transferability from Simulation to Quantum
Hardware in Network Intrusion Detection},
booktitle = {IEEE International Conference on Quantum Artificial
Intelligence (QAI)},
year = {2026},
note = {To appear},
}
الشيفرة بموجب رخصة MIT. راجع LICENSE.
تأتي CICIDS2017 من المعهد الكندي للأمن السيبراني وفقًا لشروطه الخاصة. ولا يُعاد توزيعها هنا.
أُنجز هذا العمل بدعم من مشروع Business Finland (24304955) SeQuSoS. ونشكر استخدام خدمات IBM Quantum. الآراء المُعبَّر عنها هي آراء المؤلفين ولا تعكس السياسة الرسمية أو موقف IBM أو فريق IBM Quantum.