pub fn keygen_sca<P: Params>(
d: &[u8; 32],
ek_out: &mut [u8],
dk_out: &mut [u8],
rng: &mut impl CryptoRng,
) -> Result<(usize, usize), MlKemError>Expand description
SCA-protected K-PKE key generation with shuffled NTT on secret polynomials.
Functionally identical to keygen but uses shuffle::ntt_shuffled for
the forward NTT on secret polynomials s and e, randomizing the butterfly
execution order to defeat Simple Power Analysis.
The NTT on public data (matrix A via SampleNTT) is unaffected.
§Arguments
d- 32-byte seed for deterministic key generation.ek_out- Output slice for ek_pke, must be at least384*k + 32bytes.dk_out- Output slice for dk_pke, must be at least384*kbytes.rng- A cryptographic RNG for shuffle permutation randomness.
§Errors
Returns MlKemError::RngFailure if the RNG fails.