Repository navigation
feat(ipsec): HMAC×17 流数参数化——两个既有缺陷修复 + VL=128 命题实证 (all-VL Phase 2 P4) #284
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
52d79aa
8e27f57
5e4fadc
b306e47
2e3f34d
4e78065
c9915f7
0079f91
2473615
7ba598e
f708332
3d40002
f5f3e77
4756a31
3ebcd40
ef1e73b
b8571a9
b53a758
e57459f
eafff1a
85823d6
047a88f
089c30d
c7c6fba
558f30f
7aa112c
32f1a11
a9a5f7e
306b9f8
c8ba532
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -687,6 +687,37 @@ M4 未尽项(假通过清单 ARM64 重推导、耗时尾部基线)在 v5 §1 | |||||
| fracture_loop_count 一致性问题记账未动。 | ||||||
| - **承接**:P4(ipsec HMAC×17)计划已就绪(docs/superpowers/plans/ | ||||||
| 2026-10-24-sve-sme-all-vl2-p4.md)。 | ||||||
| ## 2026-10-24(all-VL Phase 2 P4:ipsec HMAC×17 流数参数化——两个既有缺陷随阶段修复) | ||||||
|
|
||||||
| - **既有缺陷修复**(评估代理实证, 随 P4 落地): ①门控无上界——旧 | ||||||
| `svcntw()<8||svcntd()<4` 只查下界, VL≥512 硬件上 svst1 向 8 宽 W 行写 | ||||||
| 16/32 lane(越界栈写+串行污染); 修复=STREAMS_MAX_32/64 定维+require | ||||||
| 范围门+nstreams 填充三重防线。②data_size knob[1024,16MB] vs HMAC | ||||||
| 组装栈缓冲 2048B/流——>1975/1903 即溢出; 修复=hmac 层容量守卫 | ||||||
| (void→int 返回值, 17×3 调用点检查)+测试 knob 上限钳 1900/1830。 | ||||||
| - **重构**(feat/ipsec-allvl, 21 commit): 内核/HMAC 头参数化(内部 | ||||||
| 推导 n=svcntw()/svcntd()——向量通路按 VL 动作是自然律, 调用点最小 | ||||||
| 化; 向量代码零改动, 只动 C 层数组维度/循环边界)+17 测试五段式+ | ||||||
| verify.cpp 运行时化+meson 注释同步。docblock "Eight lanes"(4 流文件 | ||||||
| 实为 4 lane 的复制残留失实)一并修正。 | ||||||
| - **gem5 四档实证**(feat/sha-dual @ 955f766d, 16 run=四档×{fixed, | ||||||
| random×3}, 隔离代理执行): 流数逐档 4/8/16/32(32-bit 族)与 2/4/8/16 | ||||||
| (64-bit 族); 全部 SDCSHIELD_FAILS=0; **"VL=128 可跑"命题实证**(4/2 | ||||||
| 流全绿); W 定宽 32/16 在 512/1024 档无越界。**两轮验证**: 首轮 | ||||||
| 16/16 FAIL——验证代理抓住 kernel 标量 golden 两缺陷(&sw[0][s] 把 | ||||||
| [word][stream] 布局当连续状态, 行 1-4 恒 IV; mini-HMAC 两独立块被 | ||||||
| xN 连续读越界), 依规止步未提交; 修复后同矩阵全绿。findings.md 两轮 | ||||||
| 完整入档——"零告警构建≠正确"的纪律实录。 | ||||||
| - **验证模式**: 16-run 与 20-commit 实施均由隔离 subagent 执行; 每文件 | ||||||
| TU 零告警+skip 干净(框架编译特性门)+终态全量构建零告警+zstd19 pass。 | ||||||
| - **诚实边界**: verify.cpp 的 5200 向量 OpenSSL 重验需 SVE 硬件(本机 | ||||||
| 仅编译验证, commit 正文记录); hmac 容量守卫的 init 侧失败类别已由 | ||||||
| 20f73730 修正(compute_golden 经返回值传播, test_init 返回 | ||||||
| EXIT_FAILURE → 干净 Failed, 非 Skipped)——本条曾按旧形态记账, 评审 | ||||||
| 二轮勘误同步。 | ||||||
| - **承接**:P5(sleef/eigen×8)Eigen 侧已裁自 pin 回退(spike 证据: VLA | ||||||
| 语言级不可编译); sleef 半侧待 spike; P6 存量迁移(含本阶段 6 个 | ||||||
| 遗留手探文件)待做。 | ||||||
| ## 2026-10-25(PR #280 检视处置 R2:rebase 契约统一 + asm 加固 + FNV 重锚) | ||||||
|
|
||||||
| - **rebase 到 main(#277 已并入)**:11 条当前 head 意见中 6 条 | ||||||
|
|
@@ -717,3 +748,34 @@ M4 未尽项(假通过清单 ARM64 重推导、耗时尾部基线)在 v5 §1 | |||||
| 真实运行 pass;selftest_arm64_vl_require_sve 走 helper log_skip | ||||||
| 原文 skip;zstd19 -t 2000 -n 1 回归 pass;x86-64 零触及 | ||||||
| (全部变更位于 #elif __aarch64__/arm64 专属文件)。 | ||||||
| ## 2026-10-25(all-VL Phase 2 P4 评审二轮:移交项落地 + 真同源 gem5 实证 + 守卫/文档精度) | ||||||
|
|
||||||
| - **移交项落地(PR #282 处置确认)**: sve_hmac.h 五入口 msg_len 前置 | ||||||
| 上界守卫——body=64/128+msg_len 与 padded 均为 size_t 运算先于检查, | ||||||
| msg_len 邻近 SIZE_MAX 时回绕回 2048 以内骗过 padded 后置单检, | ||||||
| memcpy 巨量溢出; 前置钳 SVE_HMAC_MSG_MAX_32=1975/_64=1903 | ||||||
| (1f3b4869)。 | ||||||
| - **真同源 gem5 实证**(评审二轮 Important 采纳: 原证据载体 sve_sha_dual | ||||||
| 是镜像副本, 非同源): 新 harness **sve_hmac_dual** 直接 #include 仓库 | ||||||
| 实际 sve_hmac.h(+sve_sha_kernels.h)——被测机器码与 17 测试同源。 | ||||||
| 四档 16-run(128/256/512/1024-bit × {fixed, random×3})全绿: 流数逐档 | ||||||
| 4/8/16/32 与 2/4/8/16 精确; RFC 2202/4231 六已知答案向量双侧(oracle+ | ||||||
| SVE)锚定公开值(hex 经 python3 hmac 与 openssl 双独立核验); 8 长度× | ||||||
| 逐流字节精确(含 1900/1830 knob 上限与 1975/1903 精确边界); 守卫探测 | ||||||
| msg 21+14/key 6+4 全部 -1; 16 checksum 互异。**阴性对照**: 还原无 | ||||||
| 守卫形态, 同 harness 在 msg_len=SIZE_MAX 探针处页表错误崩溃 | ||||||
| (0x7fffff0000, gem5 exit 134)——回绕缺口与守卫负载性正反双向实证 | ||||||
| (gem5-fi feat/pr284-hmac-dual @ 805838f6, findings.md P4 二轮条目)。 | ||||||
| - **守卫/文档精度**(评审二轮 Minor 三条采纳): ①17 文件流数上界字面量 | ||||||
| 32/16 → SVE_SHA_STREAMS_MAX_32/64 宏, 解除数组定维/检查界限失同步 | ||||||
| 耦合(e8ccec8e); ②init/run VL 漂移守卫 report_fail_msg 硬失败改 | ||||||
| log_skip(CpuNotSupported)+EXIT_SKIP——部署侧 per-thread VL pinting | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 拼写错误: 同一文档的其他位置都使用 "VL pinning"。请统一术语。 📝 建议修改
Committable suggestion
|
||||||
| 形态下按环境不支持跳过而非污染 SDC 失败信号, fail-closed 核心语义 | ||||||
| 保留(3aeb7aa3); ③meson+17 docblock 验证宣称口径修正——OpenSSL 位级 | ||||||
| 验证属原固定 8/4 流形态(5200+1360 向量, VL=256 主机), 参数化形态由 | ||||||
| 真同源 dual 承载, OpenSSL 重验需 SVE 主机(b155ab02)。 | ||||||
| - **诚实边界(更新)**: 17 测试文件的框架胶水(fork/TEST_LOOP/ | ||||||
| arm64_require_sve_vl 的 log_skip 类别机制)仍为宿主编译+SKIP 验证—— | ||||||
| 完整 sdcshield 二进制(fork+96 线程+OpenSSL)不可入 gem5 SE 单进程 | ||||||
| 配置; 胶水依赖的算术不变式(lanes 换算 svl/4==svcntw()、[4,32]/ | ||||||
| [2,16] 范围、漂移比较操作数)已由同源 harness 逐档执行。 | ||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[claude] [Important] 正确性: 17 个测试文件的新门控/布线胶水层(arm64_require_sve_vl 调用、nstreams=svl/4、[4,32] 检查、漂移守卫、容量守卫)在任何 VL 下零执行证据——PR 标题『VL=128 命题实证』的实证对象只是 gem5 sve_sha_dual 内核副本,而非这 17 个测试本身;本机只验证了编译与 SKIP 路径。
证据: progress-log:653-654 自述每文件验证仅为 'TU 零告警+skip 干净(框架编译特性门)+终态全量构建零告警+zstd19 pass'(=编译+宿主机 SKIP 路径,宿主机 0xd01 无 SVE);:645-648 gem5 证据是 'sve_sha_dual' harness,首轮评审发现的 '&sw[0][s]'、'mini-HMAC' 表明它是 harness 本地精简副本(非同源测试文件);:655 自认 'verify.cpp 的 5200 向量 OpenSSL 重验需 SVE 硬件(本机仅编译验证)'。即 ipsec_aes128_cbc_hmac_sha1_sve.cpp:121 的 require 调用、:125 的范围检查、:191-195 的漂移守卫、sve_hmac.h 的容量守卫(这些恰是本 PR 新增的安全机制本身)从未在任何硬件/仿真上执行过——而 8.2 缺陷(VL≥512 时想当然的 [8] 定维)正藏在同类的'显然正确'边界代码里。违反 CLAUDE.md 规则 2(宿主不可跑的功能变更须 gem5-fi 验证,禁止以 SKIP 路径顶替功能验证;PR #242 先例)。