
論文 FGSM Attack Transferability from Simulation to Quantum Hardware in Network Intrusion Detection(IEEE International Conference on Quantum Artificial Intelligence (QAI) 2026)のコード、学習済みパラメータ、および結果です。
論文の数値は results/ 内の JSON ファイルから得られたものです。ここにある
スクリプトがそれらのファイルを生成しました。
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 をコピーして、自分のトークンとインスタンスを記入してください。その後、それらを環境変数として設定します。スクリプトは認証情報を環境からのみ読み取ります。
生のキャプチャデータはここにはありません。Canadian Institute for Cybersecurity から CICIDS2017 をダウンロードし、Friday-WorkingHours-Afternoon-DDos.pcap_ISCX.csv を data/ に配置してください。使用するファイルはこれだけです。
01_preprocess.py は4つの .npy 分割を生成します。訓練データでは攻撃サンプル1134件、正常サンプル866件が得られるはずです。テストでは攻撃284件、正常216件です。件数が異なる場合は、キャプチャファイルが異なるか、scikit-learn のバージョンが異なることを意味します。
スクリプトは番号順に実行してください。スクリプト04から07は、01、02、03が先に実行されている必要があります。
| スクリプト | 生成物 | 実行時間 |
|---|---|---|
01_preprocess.py | data/ 内の4つの分割 | 数秒 |
02_train_narrow_margin.py | models/clean_params.npy | 数秒 |
03_retrain_poisoning_and_noise.py | ポイズニング済みおよびノイズありモデル、2つの結果ファイル | 数時間 |
04_epsilon_sweep.py | results/epsilon_sweep.json | 1分未満 |
05_compare_attack_guidance.py | results/gradient_vs_untargeted.json | 1分未満 |
06_finish_rq3.py | ノイズなしベースラインとノイズ FGSM スイープ | 約1時間 |
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 | 2つの図 | 数秒 |
遅いのはスクリプト03です。密度行列をシミュレーションするため、初期化1回あたり約16分かかります。3つのノイズレベルのそれぞれで、3つの初期化を訓練します。
ハードウェア用スクリプトは、すべての回路を1つのジョブで送信します。すると、ジョブ内のすべての回路が同じキャリブレーション状態を共有します。両スクリプトは --dry-run を受け付け、すべてをトランスパイルして回路の統計を表示しますが、何も送信しません。
| 論文 | 結果ファイル | スクリプト |
|---|---|---|
| 表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、マージン0.07で精度86.8% |
noisy_0.0_params.npy | 広マージン分類器、Adam、マージン0.54で精度92.2% |
noisy_0.0_params_400.npy | 400サンプル部分集合で訓練したノイズなしモデル。ノイズレベル間の比較用 |
noisy_0.001_params.npy、noisy_0.01_params.npy、noisy_0.05_params.npy | 脱分極ノイズレベルごとに1つ |
poisoned_5pct_params.npy、poisoned_10pct_params.npy、poisoned_15pct_params.npy | ラベル反転率ごとに1つ |
すべての実行は IBM Fez(156量子ビットの Heron r2 プロセッサ)を使用しました。回路あたり1024ショットで、Qiskit Runtime SamplerV2 経由です。トランスパイルは最適化レベル1で行いました。
各実行は同じ論理回路を送信しました。深さ20、2量子ビットゲート12個です。トランスパイルにより物理量子ビットにマッピングされるため、送信のたびに両方の数値が変わります。
| 結果 | スクリプト | 回路 | トランスパイル後の深さ | 2量子ビットゲート |
|---|---|---|---|---|
| クリーンおよびポイズニング済みモデルの精度 | 08 | 100 | 100 | 27 |
| FGSM転移、広マージンモデル | 09 | 150 | 87 | 42 |
| FGSM転移、狭マージンモデル | 以前のコード、09により置き換え | 400 | 記録なし | 記録なし |
狭マージン転移の実行は、このリポジトリ内のスクリプトより前のものである。
その出力は results/transferability_hw_50_expA.json であり、スクリプト10が
図が読み取る形式に変換する。この実行はスクリプト09と同じ回路と
同じ最適化レベルを使用した。
記録された2つの深さは異なっている。トランスパイラはヒューリスティックに よって物理量子ビットを選択するため、同じ回路でも各投入時に異なるマッピングとなる。 それでも両方の実行はシミュレーションと一致した。
ハードウェアの結果は、その日のデバイスのキャリブレーション状態に依存する。 同じ回路を再度送信しても、異なるカウントが得られる。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 は Canadian Institute for Cybersecurity に由来し、同機関の 独自の条件に従います。本リポジトリでは再配布していません。
本研究は Business Finland プロジェクト (24304955) SeQuSoS の支援を受けたものです。IBM Quantum サービスの利用に感謝します。ここで述べられた見解は 著者らのものであり、IBM または IBM Quantum チームの公式な方針 または立場を反映するものではありません。