Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
qai2026-fgsm-transfer — Код и результаты для статьи QAI 2026 о переносимости атаки FGSM из симуляции на квантовое оборудование IBM. | Kitploit
Инструменты/GitHubGitHub/xeeshanajmal/qai2026-fgsm-transfer
Сетевая безопасностьМашинное ОбучениеОбнаружение ВторженийСтатьи и ИсследованияБезопасность ИИСостязательная Атака
GitHubxeeshanajmal/qai2026-fgsm-transfer

qai2026-fgsm-transfer

Код и результаты для статьи QAI 2026 о переносимости атаки FGSM из симуляции на квантовое оборудование IBM.

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Репозиторий
1241 месяц назадЕщё не проверено
Поделиться

Состязательная устойчивость вариационного квантового классификатора для обнаружения сетевых вторжений

Код, обученные параметры и результаты для статьи FGSM Attack Transferability from Simulation to Quantum Hardware in Network Intrusion Detection, IEEE International Conference on Quantum Artificial Intelligence (QAI) 2026.

Числа в статье получены из 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.pymodels/clean_params.npyсекунды
03_retrain_poisoning_and_noise.pyотравленные и зашумлённые модели, два файла результатовнесколько часов
04_epsilon_sweep.pyresults/epsilon_sweep.jsonменьше минуты
05_compare_attack_guidance.pyresults/gradient_vs_untargeted.jsonменьше минуты
06_finish_rq3.pyбезшумовой базовый уровень и развёртка FGSM по шумуоколо часа
07_margin_control.pyresults/margin_control.jsonнесколько минут
08_run_hardware_models.pyresults/hardware_clean_vs_poisoned.jsonвремя в очереди
09_run_hardware_fgsm.pyresults/hardware_fgsm_adam.jsonвремя в очереди
10_convert_hardware_results.pyresults/hardware_fgsm_cobyla.jsonсекунды
make_figures.pyдва рисункасекунды

Скрипт 03 — самый медленный. Он симулирует матрицы плотности, что занимает около шестнадцати минут на одну инициализацию. Он обучает три инициализации на каждом из трёх уровней шума.

Скрипты для оборудования отправляют все свои схемы одной задачей. Тогда все схемы в задаче используют одно и то же состояние калибровки. Оба скрипта принимают --dry-run, который транспилирует всё и выводит статистику схем, ничего не отправляя.

Какой файл даёт какой результат

СтатьяФайл результатаСкрипт
Таблица I, отравлениеpoisoning_retrained.json03
Таблица II, FGSM против ненаправленной атакиgradient_vs_untargeted.json05
Таблица III, симуляция против оборудованияhardware_clean_vs_poisoned.json, hardware_fgsm_adam.json08, 09
Таблица IV, деполяризующий шумnoise_retrained.json, noise_fgsm_sweep.json, noiseless_400_baseline.json03, 06
Рисунок 1, перенос на оборудованиеhardware_fgsm_adam.json, hardware_fgsm_cobyla.json09, 10
Рисунок 2, точность и запас при шумето же, что в Таблице IV03, 06
Раздел IV-A, чистый базовый уровеньclean_history.json, noise_retrained.json02, 03
Раздел IV-C, запасы решенийepsilon_sweep.json04
Раздел VI, контроль запасаmargin_control.json07

Обученные модели

ФайлЧто это
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 — 156-кубитный процессор Heron r2. 1024 выстрела на схему через Qiskit Runtime SamplerV2. Транспиляция выполнялась на уровне оптимизации 1.

Каждый запуск отправлял одну и ту же логическую схему: глубина 20 с 12 двухкубитными вентилями. Транспиляция отображает её на физические кубиты, что меняет оба числа при каждой отправке.

РезультатСкриптСхемыГлубина после транспиляцииДвухкубитные вентили
Точность чистой и отравленной модели0810010027
Перенос FGSM, модель с широким запасом091508742
Перенос FGSM, модель с узким запасомболее ранний код, заменён скриптом 09400не записаноне записано

Прогон переноса с узким запасом предшествует скриптам в этом репозитории. Его вывод — 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.

Скачать инструмент