FallenSigh
0a8b3dae69
feat(enc): Encaps E0 - op_i/msg_i/ek-load scaffold + H(ek)+G(m||H(ek))
...
Extend mlkem_top with a runtime op_i select (0=KeyGen, 1=Encaps) and the
first Encaps stages, reusing the shared keccak_core and the ST_H multi-block
SHA3-256 machinery:
ST_ENC_H: H(ek) over preloaded ek_bram (same FSM as KeyGen ST_H)
ST_ENC_G: (K,r) = G(m||H(ek)) via new 64-byte single-block SHA3-512
- sha3_top_shared: add mode=2'b11 = SHA3-512 over a full 512-bit message
(g512_pad). Standalone tb_sha3_g512 confirms it byte-exact.
- mlkem_top: new ports op_i, msg_i, ek_in_{we,addr,byte} (ek preload), ss_o,
dbg_ct_*, dbg_r_o/dbg_hek_o. st widened 4->5 bits; ST_ENC_* states added.
Renamed message port to msg_i to avoid collision with ST_M counter m_i.
- TB tb_mlkem_enc_katK + gen_encaps_vectors.py (per-byte ek/m/ct/ss vectors).
Verified ss==KAT.ss for K=2/3/4, cases 0-2 (all PASS). KeyGen unaffected
(K=2 c0 still ek==pk, dk==sk byte-exact).
2026-06-29 01:00: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 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