FallenSigh
030931d4e5
feat(dec): Decaps D0 - op_i widen + dk/c load + parse
...
Scaffolding for ML-KEM Decaps (FIPS 203 Alg 18):
- op_i widened to 2-bit: 00=KeyGen, 01=Encaps, 10=Decaps (op_r too).
- New ST_DEC_LOAD state (D0: settles to DONE so load/parse is dbg-checkable).
- dk (=sk) streamed via dk_in_*; load logic routes each byte by region:
[0,384K)->dk_pke (dkp_bram), [384K,768K+32)->ek_pke (ek_bram),
[768K+32,+32)->H(ek) (hek_r), [768K+64,+32)->z (z_r). Routing uses the
LIVE k_i input, not start-captured k_r (dk is streamed before start_i).
- c (=ct) streamed via c_in_* into a SEPARATE c_in_bram, so the computed c'
(ct_bram) can later be compared against original c and J(z||c) can read c.
- New dbg taps: dbg_mprime_o/dbg_kbar_o/dbg_decz_o/dbg_dech_o.
TB: tb_mlkem_dec_katK_xsim verifies dk parse (H(ek), z, ek_pke/dk_pke BRAM
round-trip). gen_decaps_vectors.py emits dec_k{K}_c{N}_{dk,ct,ss,ctn,ssn}.hex
from the NIST KAT. run_tb.sh gains a 'dec' module (mirrors 'enc').
Regression fix: old KeyGen/Encaps TBs didn't connect the new input ports,
floating them to X and corrupting the ek/dkp write muxes -> tied off
dk_in_*/c_in_*/new dbg taps in both.
Verified: dec D0 K=2/3/4 PASS; KeyGen K=2 + Encaps K=2 unregressed.
2026-06-29 15:22:34 +08:00
..
2026-06-29 01:55:47 +08:00
2026-06-28 02:18:52 +08:00
2026-06-28 02:03:03 +08:00
2026-06-28 02:03:03 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 15:22:34 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-29 01:00:47 +08:00
2026-06-28 02:23:18 +08:00
2026-06-28 02:23:18 +08:00
2026-06-28 02:23:18 +08:00
2026-06-28 02:23:18 +08:00
2026-06-28 02:23:18 +08:00
2026-06-28 02:23:18 +08:00
2026-06-28 02:23:18 +08:00
2026-06-28 02:23:18 +08:00
2026-06-28 02:23:18 +08:00
2026-06-28 02:23:18 +08:00
2026-06-28 02:23:18 +08:00
2026-06-28 02:23:18 +08:00
2026-06-28 02:23:18 +08:00
2026-06-28 02:23:18 +08:00
2026-06-28 02:23:18 +08:00
2026-06-28 02:23:18 +08:00
2026-06-28 02:23:18 +08:00
2026-06-28 02:23:18 +08:00
2026-06-28 02:23:18 +08:00
2026-06-28 02:23:18 +08:00
2026-06-28 03:06:41 +08:00
2026-06-28 03:06:41 +08:00
2026-06-28 03:06:41 +08:00
2026-06-28 03:06:41 +08:00
2026-06-28 03:06:41 +08:00
2026-06-28 03:06:41 +08:00
2026-06-28 03:06:41 +08:00
2026-06-28 03:06:41 +08:00
2026-06-28 03:06:41 +08:00
2026-06-28 03:06:41 +08:00
2026-06-28 03:06:41 +08:00
2026-06-28 03:06:41 +08:00
2026-06-28 03:06:41 +08:00
2026-06-28 03:06:41 +08:00
2026-06-28 03:06:41 +08:00
2026-06-28 03:06:41 +08:00
2026-06-28 03:06:41 +08:00
2026-06-28 03:06:41 +08:00
2026-06-28 03:06:41 +08:00
2026-06-28 03:06:41 +08:00
2026-06-28 02:59:58 +08:00
2026-06-28 02:59:58 +08:00
2026-06-28 02:59:58 +08:00
2026-06-28 02:59:58 +08:00
2026-06-28 02:59:58 +08:00
2026-06-28 02:59:58 +08:00
2026-06-28 02:59:58 +08:00
2026-06-28 02:59:58 +08:00
2026-06-28 02:59:58 +08:00
2026-06-28 02:59:58 +08:00
2026-06-28 02:59:58 +08:00
2026-06-28 02:59:58 +08:00
2026-06-28 02:59:58 +08:00
2026-06-28 02:59:58 +08:00
2026-06-28 02:59:58 +08:00
2026-06-28 02:59:58 +08:00
2026-06-28 02:59:58 +08:00
2026-06-28 02:59:58 +08:00
2026-06-28 02:59:58 +08:00
2026-06-28 02:59:58 +08:00
2026-06-28 02:59:58 +08:00
2026-06-28 02:59:58 +08:00
2026-06-28 02:59:58 +08:00
2026-06-28 02:59:58 +08:00
2026-06-28 01:41:44 +08:00
2026-06-28 01:47:54 +08:00
2026-06-28 01:53:23 +08:00
2026-06-27 01:07:34 +08:00
2026-06-27 01:07:34 +08:00