Four-scheme jamming comparison and a fully generated refresh table
Give the orthogonal-access jammer its own Rayleigh channel in oma_ser_jammed, matching the convention every simulated scheme already used. Without it the closed-form curve faced a jammer at full power in every frame while the Monte Carlo curves faced a fading one, which inverted the ordering of the comparison. Measure the outsider error rate for the fixed-key and naive-refresh cases as well, and emit the two refresh tables from make_tables.py, so no cell of the paper is hand-typed.
This commit is contained in:
@@ -24,14 +24,14 @@ hold the key, at no extra bandwidth, power, or rate.
|
||||
```
|
||||
code/
|
||||
sse_lib.py transmit and receive core, channel, training, OMA reference
|
||||
exp_full.py stages A-F: SNR sweep, key length, jamming, key families,
|
||||
scheme comparison, attack difficulty
|
||||
exp_full.py stages A-F and L: SNR sweep, key length, jamming across
|
||||
schemes, key families, scheme comparison, attack difficulty
|
||||
exp_kpa.py stage H: known-plaintext attack on the key
|
||||
exp_refresh.py stage K: the key-refresh layer, invariance group
|
||||
exp_real_sec.py stage G: real BERT WordPiece token streams
|
||||
verify_math.py closed-form checks V1-V5 against Monte Carlo, PASS/FAIL
|
||||
replot_security.py every result figure, from data/ to fig/
|
||||
make_tables.py LaTeX rows of the two result tables, from data/
|
||||
make_tables.py LaTeX rows of every result table, from data/
|
||||
feasibility_security.py early CPU-sized study, kept for the record
|
||||
data/ CSV results, one file per stage
|
||||
fig/ figure PDFs, regenerated by replot_security.py
|
||||
@@ -47,15 +47,18 @@ libraries.
|
||||
|
||||
```bash
|
||||
python verify_math.py # closed-form verification, prints PASS/FAIL
|
||||
python exp_full.py # stages A-F
|
||||
python exp_full.py # stages A-F and L
|
||||
python exp_kpa.py # known-plaintext attack
|
||||
python exp_refresh.py # the key-refresh layer
|
||||
python exp_real_sec.py # real token streams
|
||||
python replot_security.py # all figures from the CSVs
|
||||
python make_tables.py # LaTeX rows of the result tables
|
||||
```
|
||||
|
||||
Seeds are fixed: training 1, evaluation 777, attacker key guess
|
||||
20260813. Re-running reproduces the released CSV files.
|
||||
20260813, key recovery 4242, brute-force search 31, cross-scheme
|
||||
comparison 11, key refresh 5150. Re-running reproduces the released CSV
|
||||
files.
|
||||
|
||||
## Figure and table map
|
||||
|
||||
@@ -63,15 +66,15 @@ Seeds are fixed: training 1, evaluation 777, attacker key guess
|
||||
|---|---|---|
|
||||
| Fig. 2 SER against SNR | `exp_full.stage_A` | `sec_snr.csv` |
|
||||
| Fig. 3 key length | `exp_full.stage_B` | `sec_keylen.csv` |
|
||||
| Fig. 4 jamming | `exp_full.stage_C` | `sec_jam.csv` |
|
||||
| Fig. 5 key sensitivity | `exp_full.stage_F` | `sec_sens.csv` |
|
||||
| Fig. 6 brute-force search | `exp_full.stage_F` | `sec_brute.csv` |
|
||||
| Fig. 4 jamming | `exp_full.stage_L` | `sec_jam_cmp.csv`, `sec_jam.csv` |
|
||||
| Fig. 5 key sensitivity | `exp_full.stage_I` | `sec_sens_cmp.csv` |
|
||||
| Fig. 6 brute-force search | `exp_full.stage_J` | `sec_brute_cmp.csv`, `sec_brute.csv` |
|
||||
| Fig. 7 known-plaintext attack | `exp_kpa` | `kpa.csv` |
|
||||
| Fig. 8 real token streams | `exp_real_sec` | `real_sec_ter.csv` |
|
||||
| Scheme comparison table | `exp_full.stage_E` | `sec_compare.csv` |
|
||||
| Key family table | `exp_full.stage_D` | `sec_maskfam.csv`, `sec_regjam.csv` |
|
||||
| Headline recovery table | `exp_real_sec` | `real_sec_stats.json` |
|
||||
| Key refresh tables | `exp_refresh` | `refresh.csv`, `refresh_kpa.csv` |
|
||||
| Key refresh tables | `exp_refresh` | `refresh_summary.csv`, `refresh_kpa.csv` |
|
||||
|
||||
## Security scope
|
||||
|
||||
|
||||
Reference in New Issue
Block a user