From 0645347685c21e279c29a4944f2e7f31417a8c4a Mon Sep 17 00:00:00 2001 From: KiHoLee Date: Sat, 29 Aug 2026 00:15:02 +0900 Subject: [PATCH] Carry the figure-style and table-order fixes into the release The lower of two coinciding curves is the wide one, the random-guess reference is dotted everywhere and never borrows a scheme colour, the three collection SNRs in the known-plaintext figure differ by face and width rather than by dash alone, and the legend floor now prints at six points with an assertion that fails if any figure drags it lower. Both table generators list the proposal first. --- code/make_tables.py | 5 +++-- code/merge_learned_rows.py | 2 ++ code/replot_security.py | 35 ++++++++++++++++++++++------------- data/refresh_summary.csv | 4 ++-- fig/fig_sec_brute.pdf | Bin 20693 -> 20699 bytes fig/fig_sec_jam.pdf | Bin 19296 -> 19305 bytes fig/fig_sec_keylen.pdf | Bin 22444 -> 22473 bytes fig/fig_sec_kpa.pdf | Bin 21565 -> 21580 bytes fig/fig_sec_real.pdf | Bin 17533 -> 17527 bytes fig/fig_sec_sens.pdf | Bin 17165 -> 17176 bytes fig/fig_sec_snr.pdf | Bin 18809 -> 18797 bytes 11 files changed, 29 insertions(+), 17 deletions(-) diff --git a/code/make_tables.py b/code/make_tables.py index 9e9275d..690edac 100644 --- a/code/make_tables.py +++ b/code/make_tables.py @@ -59,8 +59,9 @@ def cell(x: str, bold: bool, wide: bool = False) -> str: def compare_table(): print("% Table: scheme comparison (from sec_compare.csv)") rows = list(csv.DictReader(open(DATA / "sec_compare.csv"))) - order = ["public_mask", "perm_key", "index_cipher", "oma_plain", - "proposed", "proposed_learned"] + # 9.3: the proposal first, as every figure legend lists it + order = ["proposed", "proposed_learned", "public_mask", "perm_key", + "index_cipher", "oma_plain"] rows.sort(key=lambda r: order.index(r["scheme"])) # stage_E does not jam the orthogonal reference, because the jammer an # OMA user faces is targeted at public slots rather than mask-matched diff --git a/code/merge_learned_rows.py b/code/merge_learned_rows.py index ad44ecf..6945422 100644 --- a/code/merge_learned_rows.py +++ b/code/merge_learned_rows.py @@ -64,6 +64,8 @@ def main(): {"scheme": "Invariant, KM (lrn.)", "legit": "%.6f" % lg, "eve": "%.6f" % ev, "entropy_bits": ent}) + # 9.3: the proposal first, as every figure legend lists it + rows.sort(key=lambda x: 0 if x["scheme"].startswith("Invariant") else 1) write("refresh_summary.csv", fields, rows) print("refresh_summary.csv Invariant, KM (lrn.) legit %.5f eve %.5f" % (lg, ev)) diff --git a/code/replot_security.py b/code/replot_security.py index 411a262..2c13b18 100644 --- a/code/replot_security.py +++ b/code/replot_security.py @@ -248,7 +248,7 @@ def _rank(label): def place_legend(ax, cands=("lower left", "upper left", "center left", "center right", "lower center", "upper right", "upper center", "center", "lower right"), - sizes=(9.2, 8.8, 8.4, 8.0, 7.6, 7.2, 6.8, 6.4), ncol=1): + sizes=(9.2, 8.8, 8.4, 8.0, 7.6, 7.4), ncol=1): """Choose the location and font size whose box the fewest curve points fall inside, scored on rendered geometry rather than guessed from the data. The size sweep is what makes a long label set placeable: a @@ -342,7 +342,7 @@ def fig_snr(): # the chance level lies within 3.5e-4 of the wrong-key curve, so it is # drawn for reference but left out of the legend, which the caption # names instead; five long entries leave this figure no clear corner - ax.plot(x, col(r, "chance"), color=C_CH, ls="-.", lw=0.9) + ax.plot(x, col(r, "chance"), color=C_CH, ls=":", lw=0.9) ax.set_xlabel("SNR (dB)") ax.set_ylabel("SER") ax.set_xlim(min(x), max(x)) @@ -360,7 +360,8 @@ def fig_keylen(): r = load("sec_keylen.csv") x = col(r, "L", int) fig, ax = plt.subplots() - ax.semilogy(x, col(r, "legit_ser"), **STY["km_str"], label=LBL["legit"]) + ax.semilogy(x, col(r, "legit_ser"), **STY["km_str"], markevery=(0, 2), + label=LBL["legit"], **UNDER) rl = load("sec_keylen_learned.csv") ax.semilogy(col(rl, "L", int), col(rl, "legit_ser"), **STY["km_lrn"], label=LBL["legit_learned"]) op = [(l, v) for l, v in zip(x, col(r, "oma")) if not math.isnan(v)] @@ -377,14 +378,13 @@ def fig_keylen(): assert min(float(r["eve_ser"]) for r in rp) > 0.999, "the permutation outsider left the random-guess level" ax.semilogy(col(rp, "L", int), col(rp, "legit_ser"), **STY["perm"], markevery=(1, 2), label=LBL["perm"], **OVER) - ax.set_ylim(top=22.0) # headroom above the flat eavesdropper curve - # an error rate cannot exceed one, and the room below the data holds - # the legend, since every curve decays to the right - ax.set_ylim(top=1.4, bottom=1.2e-2) + # every curve is high at short key lengths and decays to the right, + # so the lower left is clear and the limits only frame the data + ax.set_ylim(top=1.4, bottom=8.0e-3) ax.set_xlabel("Key length $L$") ax.set_ylabel("SER") ax.set_xscale("log", base=2) - place_legend(ax) + place_legend(ax, cands=("lower left",)) save(fig, "fig_sec_keylen") @@ -419,7 +419,7 @@ def fig_jam(): # Behind the legend rather than through it. The placement guard skips # axis-spanning lines, so it cannot move the legend off this one, and # a reference drawn along the legend frame reads as part of the box. - ax.axhline(nojam, color=C_OMA, ls=(0, (1, 3)), lw=0.9, zorder=0) + ax.axhline(nojam, color=C_CH, ls=":", lw=0.9, zorder=0) ax.set_ylim(2.5e-2, 1.4) # a log axis spanning little more than a decade prints minor labels # like 6x10^-1 that consume the left margin, so only the decades are @@ -524,14 +524,17 @@ def fig_kpa(): # one scheme, three collection SNRs, so the marker stays the # scheme's and only the line style and the fill carry the SNR; # borrowing another scheme's marker shape would read as that scheme - sty = {0.0: ("o", "-"), 10.0: ("o", "--"), 20.0: ("o", ":")} - for off, (snr, (mk, ls)) in enumerate(sty.items()): + # the three curves are one scheme at three collection SNRs, and the + # 10 and 20 dB ones run within 0.001 of each other from four frames + # on, so face and width separate them rather than the dash alone + sty = {0.0: ("o", "-", 2.6, None), 10.0: ("o", "--", 1.5, "none"), + 20.0: ("o", ":", 1.0, "none")} + for off, (snr, (mk, ls, lw, mfc)) in enumerate(sty.items()): rows = [row for row in r if float(row["snr_db"]) == snr] n = [float(row["n_frames"]) for row in rows] ser = [float(row["eve_ser"]) for row in rows] ax.semilogx(n, ser, color=STY["km_str"]["color"], marker=mk, ls=ls, - markevery=(off, 4), - markerfacecolor="none" if off else None, + lw=lw, markevery=(off, 4), markerfacecolor=mfc, label=f"KM (str.), {int(snr)} dB") if snr == 10.0: kl = [q for q in load("kpa_learned.csv") @@ -593,6 +596,12 @@ def main(): run_all() if PL_CHOSEN: PL_FORCED = min(PL_CHOSEN) + # 7.4 canvas points is 6.0 on the page at the 0.74-column include + # width, which is the floor the standard sets. Falling below it + # would mean one figure had dragged every other one down. + assert PL_FORCED >= 7.4, ( + "legend fell to %.1f pt; give the failing figure headroom " + "or move a reference entry to its caption" % PL_FORCED) print("[uniform] legend size %.1f pt on every figure" % PL_FORCED) PL_CHOSEN.clear() run_all() diff --git a/data/refresh_summary.csv b/data/refresh_summary.csv index 05d8cb3..84e3b5d 100644 --- a/data/refresh_summary.csv +++ b/data/refresh_summary.csv @@ -1,5 +1,5 @@ scheme,legit,eve,entropy_bits -None (fixed key),0.05300666667,0.9997075,23.76910417 -Fresh orthogonal keys,0.1215548611,0.9996535069,23.76910417 "Invariant, KM (str.)",0.05304121528,0.9995528819,364.5801064 "Invariant, KM (lrn.)",0.061279,0.998895,364.5801064 +None (fixed key),0.05300666667,0.9997075,23.76910417 +Fresh orthogonal keys,0.1215548611,0.9996535069,23.76910417 diff --git a/fig/fig_sec_brute.pdf b/fig/fig_sec_brute.pdf index 6c705d771cef031e785a17d88cb5196adc4bb9dc..ac2697fcc5b813d3e051b5105ec04087bdf1530c 100644 GIT binary patch delta 3365 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 diff --git a/fig/fig_sec_jam.pdf b/fig/fig_sec_jam.pdf index 4e89528573207b62914350eeee367e57d40ef6bb..dfe1288098d7cb3fcd31789cf2774f4c16aae54a 100644 GIT binary patch delta 3627 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 delta 3695 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 diff --git a/fig/fig_sec_real.pdf b/fig/fig_sec_real.pdf index e7bd0bf5cb006cc5ce481deeab18fcc0e61613d0..b729021d4c4aba414021522b6afe94ca32726c18 100644 GIT binary patch delta 3235 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 diff --git a/fig/fig_sec_sens.pdf b/fig/fig_sec_sens.pdf index 4ef34992e2ebeccc46cc6dbad6fd064bfef23262..1fa953efba7ccc27ddc687d34c37ec7e85c34f46 100644 GIT binary patch delta 3034 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 delta 3057 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 delta 3013 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