-
Notifications
You must be signed in to change notification settings - Fork 25
Open
Description
Implement steps 4 and 5 in #736
- Introduce a compile-time option
MLD_CONFIG_REDUCE_RAM. It should be unset by default. Initially, it should be unused. - Implement
MLD_CONFIG_REDUCE_RAM, ignoring CBMC initially:- Modify the definition of
mld_polymatso it contains a singlemld_polyvecland a copy of the seed-bufferconst uint8_t rho[MLDSA_SEEDBYTES]. -
mld_polyvec_matrix_expand()should merely copy the seed buffer. Note that this changes the signature ofmld_polyvec_matrix_pointwise_montgomeryas it can no longer take the matrix asconst. -
mld_polymat_get_row()should ad-hoc generate the required row by callingmld_poly_uniformin a loop, just as inmld_polyvec_matrix_expand(), and callmld_poly_permute_bitrev_to_customon the generated entries to make sure they have the right ordering. Initially, this should ignore batched matrix generation, at the cost of performance. -
mld_polyvec_matrix_pointwise_montgomery()does not need changing since it already callsmld_polymat_get_row(). - Make sure
./scripts/tests allstill passes with and withoutMLD_CONFIG_REDUCE_RAM, but ignore CBMC annotations and proofs in this step.
- Modify the definition of
Metadata
Metadata
Assignees
Labels
No labels