From 09efbef42399e5a33504fc2ec1cd277007f17169 Mon Sep 17 00:00:00 2001 From: FallenSigh Date: Sat, 27 Jun 2026 01:07:40 +0800 Subject: [PATCH] chore(task): archive 06-27-mlkem-top-tb --- .../2026-06/06-27-mlkem-top-tb/check.jsonl | 2 + .../06-27-mlkem-top-tb/implement.jsonl | 2 + .../archive/2026-06/06-27-mlkem-top-tb/prd.md | 50 +++++++++++++++++++ .../2026-06/06-27-mlkem-top-tb/task.json | 26 ++++++++++ 4 files changed, 80 insertions(+) create mode 100644 .trellis/tasks/archive/2026-06/06-27-mlkem-top-tb/check.jsonl create mode 100644 .trellis/tasks/archive/2026-06/06-27-mlkem-top-tb/implement.jsonl create mode 100644 .trellis/tasks/archive/2026-06/06-27-mlkem-top-tb/prd.md create mode 100644 .trellis/tasks/archive/2026-06/06-27-mlkem-top-tb/task.json diff --git a/.trellis/tasks/archive/2026-06/06-27-mlkem-top-tb/check.jsonl b/.trellis/tasks/archive/2026-06/06-27-mlkem-top-tb/check.jsonl new file mode 100644 index 0000000..663497a --- /dev/null +++ b/.trellis/tasks/archive/2026-06/06-27-mlkem-top-tb/check.jsonl @@ -0,0 +1,2 @@ +{"file": ".trellis/spec/rtl/xsim-tb-conventions.md", "reason": "XSIM TB quality checks"} + diff --git a/.trellis/tasks/archive/2026-06/06-27-mlkem-top-tb/implement.jsonl b/.trellis/tasks/archive/2026-06/06-27-mlkem-top-tb/implement.jsonl new file mode 100644 index 0000000..84e0b09 --- /dev/null +++ b/.trellis/tasks/archive/2026-06/06-27-mlkem-top-tb/implement.jsonl @@ -0,0 +1,2 @@ +{"file": ".trellis/spec/rtl/xsim-tb-conventions.md", "reason": "XSIM TB conventions"} + diff --git a/.trellis/tasks/archive/2026-06/06-27-mlkem-top-tb/prd.md b/.trellis/tasks/archive/2026-06/06-27-mlkem-top-tb/prd.md new file mode 100644 index 0000000..c3803ad --- /dev/null +++ b/.trellis/tasks/archive/2026-06/06-27-mlkem-top-tb/prd.md @@ -0,0 +1,50 @@ +# mlkem_top KAT Testbench + +## Goal + +编写 `mlkem_top` 的 KAT (Known Answer Test) testbench,使用 FIPS 203 标准测试向量验证 KeyGen/Encaps/Decaps 正确性。 + +## Data Source + +`/home/fallensigh/Dev/ml-kem-r/test_data/kat_MLKEM_512.rsp` +- 100 个测试向量 (count 0-99) +- 每个向量包含:d, z, msg, pk, sk, ct, ss +- NIST FIPS 203 标准格式 + +## Requirements + +1. Python `gen_vectors.py` 解析 KAT 文件,生成 `mlkem_top_input.hex` 和 `mlkem_top_expected.hex` +2. Verilog `tb_mlkem_top_xsim.v`: + - 读取输入向量 (d, z, msg) + - 驱动 KeyGen → 验证 pk, sk + - 驱动 Encaps → 验证 ct, ss + - 驱动 Decaps → 验证 ss + - 超时看门狗 + - pass/fail 统计 + +## Decisions + +* 先用 ML-KEM-512 (k=2),后续扩展 768/1024 +* 文件向量模式,遵循现有 TB 风格 +* 自检模式:与 KAT 期望值逐个字节比较 + +## Test Flow (per vector) + +1. 复位 +2. KeyGen: d → verify pk, sk +3. Encaps: msg → verify ct, ss +4. Decaps: ct → verify ss (output matches ss from encaps) + +## Acceptance Criteria + +* [ ] 至少 count=0 的 KeyGen 通过 +* [ ] 至少 count=0 的 Encaps 通过 +* [ ] at least basic Decaps consistency +* [ ] xvlog 编译通过 +* [ ] xsim 仿真通过 + +## Out of Scope + +* 全部 100 个向量(先做前 5 个) +* ct_n 无效密文测试 +* ML-KEM-768/1024 diff --git a/.trellis/tasks/archive/2026-06/06-27-mlkem-top-tb/task.json b/.trellis/tasks/archive/2026-06/06-27-mlkem-top-tb/task.json new file mode 100644 index 0000000..d6d0ec4 --- /dev/null +++ b/.trellis/tasks/archive/2026-06/06-27-mlkem-top-tb/task.json @@ -0,0 +1,26 @@ +{ + "id": "mlkem-top-tb", + "name": "mlkem-top-tb", + "title": "编写mlkem_top的KAT testbench", + "description": "", + "status": "completed", + "dev_type": null, + "scope": null, + "package": null, + "priority": "P2", + "creator": "FallenSigh", + "assignee": "FallenSigh", + "createdAt": "2026-06-27", + "completedAt": "2026-06-27", + "branch": null, + "base_branch": "main", + "worktree_path": null, + "commit": null, + "pr_url": null, + "subtasks": [], + "children": [], + "parent": null, + "relatedFiles": [], + "notes": "", + "meta": {} +} \ No newline at end of file