遇见数据集

PQ-NEXT: MAYO Secret Linear Map on Cortex-M4: Power Side-Channel Traces for Unprotected and Protected Implementations

收藏
Zenodo2026-08-12 更新2026-08-13 收录
官方服务:

资源简介:

Code repository: https://github.com/pq-next/mayo-sca Measurement setup Item Value Target STM32F303 (ARM Cortex-M4), CW308 UFO board, PLATFORM=CW308_STM32F3 Capture ChipWhisperer-Lite CW1173 Target clock 7.37 MHz ADC ×4 synchronous (29.54 MS/s), 25 dB gain Primitive MAYO-1 secret linear map O·x over GF(16), 78 × 8 secret matrix Trace dtype float32 The reduced target isolates the MAYO secret linear map using the MAYO-C reference GF(16) arithmetic verbatim; full mayo_sign does not fit the STM32F303's ~48 KB SRAM. Contents Archive Contents Arrays Size traces.zip fixed-vs-random TVLA + row-0 CPA set 1000 × 5000 39 MB traces_fvf.zip fixed-vs-fixed, unprotected (max |t| = 195.7) 2 × 500 × 20000 77 MB traces_masked.zip naive mask, no shuffle (max |t| = 17.94) 2 × 1000 × 24000 188 MB traces_masked2.zip mask + shuffle, sequential capture (|t| = 9.72, drift-affected) 2 × 800 × 24000 161 MB traces_masked2_bi.zip mask + shuffle, block-interleaved (max |t| = 3.62) 2 × 800 × 24000 161 MB traces_cpa.zip dedicated CPA capture 2500 × 6000 58 MB traces_rand_O.zip random-O / fixed-x 1969 × 20000 163 MB code.zip firmware, capture and analysis scripts, measured results, figures — 1.2 MB extra_analysis_scripts.zip exploratory analyses not used in the paper (template, stochastic, GE/SR) — small logs.zip capture logs, result JSONs, .npy intermediates (provenance) — small MANIFEST.sha256 SHA-256 for every .npy 31 entries — Array naming Within each trace directory: traces_A.npy, traces_B.npy — the two TVLA classes O_A.npy, O_B.npy — the two secret matrices (78 × 8, uint8 nibbles) x_seq.npy / rand_pt.npy / x.npy — public inputs t_stat_fvf.npy, tvla_t.npy — precomputed t-traces The secret matrices are test keys generated as O_flat[i] = (7i+3) mod 16, included so that recovery can be scored. They are not, and never were, live key material. Note that this generator repeats with period two across rows, so this dataset cannot establish row-to-row independence. Reproducing the headline results bash unzip 'traces*.zip' code.zip cd code && pip install -r requirements.txt export MAYO_SCA_ROOT=.. python analysis/cpa.py # row 0 -> ranks [2,1,1,1,4,1,3,1], 24 candidates python analysis/cpa.py --plain # g=1 alias control -> 1/8 python analysis/analyze_all.py # TVLA, chi-squared, t-vs-N, CPA -> results.json python analysis/fig_final.py # regenerates the paper figures Result Value TVLA unprotected, fixed-vs-random |t| = 53.7 (2971/5000 > 4.5) TVLA unprotected, fixed-vs-fixed |t| = 195.7 (12,298/20,000), χ² = 975 CPA row 0 5/8 top-1, mean rank 1.75/16, 16⁸ → 24 candidates Masking alone |t| = 17.94 (10,799/24,000) — still fails Mask + shuffle, drift-free |t| = 3.62, 0/24,000 Overhead 16,242 → 36,130 cycles = 2.22× Two notes for reusers Drift-free acquisition matters. traces_masked2/ and traces_masked2_bi/ are the same firmware. The sequential capture reports |t| ≈ 9.72; the block-interleaved capture reports 3.62. A same-secret control shows the difference is acquisition drift, not leakage. Both sets are released so the comparison can be reproduced. The GF(16) identity rule. Partial correlation annihilates the g=1 predictor, so a nibble whose true value is 1 is invisible to it. Such a nibble is identifiable without the key (plain spectrum peaks at g=1, partial spectrum flat). cpa.py and analyze_all.py apply this rule; omitting it mis-ranks those nibbles and inflates the reported key-space. Licence Data (traces*, logs): CC BY 4.0 Code (code.zip, extra_analysis_scripts.zip): Apache-2.0. firmware/simple_arithmetic.h and firmware/mem.h are reproduced unmodified from the MAYO reference implementation under the same licence — see NOTICE. Funding Supported by the European Union's Horizon Europe programme under grant agreements No. 101225759 (PQ-NEXT) and No. 101119547 (PQ-REACT). Views and opinions expressed are those of the authors only and do not necessarily reflect those of the European Union.

提供机构:
Zenodo
创建时间:
2026-08-12
二维码
社区交流群
二维码
科研交流群
商业服务