Skip to main content

Module param

Module param 

Source
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§

CbdSamplingSize
An integer that describes a bit length to be used in CBD sampling
KemParams
Derived parameters relevant to ML-KEM
ParameterSet
A ParameterSet captures 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§

DecapsulationKeySize 🔒
EncapsulationKeySize 🔒
EncodedDecryptionKey 🔒
EncodedEncryptionKey 🔒
EncodedNttVector 🔒
EncodedU 🔒
EncodedUSize 🔒
EncodedV 🔒
EncodedVSize 🔒
ExpandedDecapsulationKey
Serialized decapsulation key after having been expanded from a Seed.