Expand description
Section 7. Parameter Sets
This module encapsulates all of the compile-time logic related to parameter-set dependent sizes
of objects. ParameterSet captures the parameters in the form described by the ML-KEM
specification. EncodingSize, VectorEncodingSize, and CbdSamplingSize are “upstream” of
ParameterSet; they provide basic logic about the size of encoded objects. PkeParams and
KemParams are “downstream” of ParameterSet; they define derived parameters relevant to
K-PKE and ML-KEM.
While the primary purpose of these traits is to describe the sizes of objects, in order to
avoid leakage of complicated trait bounds, they also need to provide any logic that needs to
know any details about object sizes. For example, VectorEncodingSize::flatten needs to know
that the size of an encoded vector is K times the size of an encoded polynomial.
Traits§
- CbdSampling
Size - An integer that describes a bit length to be used in CBD sampling
- KemParams
- Derived parameters relevant to ML-KEM
- Parameter
Set - A
ParameterSetcaptures the parameters that describe a particular instance of ML-KEM. - PkeParams
- Derived parameter relevant to K-PKE
Functions§
- ones_
array 🔒 - To speed up CBD sampling, we pre-compute all the bit-manipulations:
Type Aliases§
- Decapsulation
KeySize 🔒 - Encapsulation
KeySize 🔒 - Encoded
Decryption 🔒Key - Encoded
Encryption 🔒Key - Encoded
NttVector 🔒 - EncodedU 🔒
- EncodedU
Size 🔒 - EncodedV 🔒
- EncodedV
Size 🔒 - Expanded
Decapsulation Key - Serialized decapsulation key after having been expanded from a
Seed.