Dear all,
I would like to request clarification regarding the role and necessity of input checking in the recently published PQC standards.
Why is input checking considered so important? More specifically, in the absence of such checks, how can “strong unforgeability” be broken? I am also curious whether the similar reasoning applies to ML-KEM. As far as I know, the submissions did not explicitly include such requirements (even though they claimed strong properties such as SUF-CMA and IND-CCA); these requirements appear to have been added later. In addition, I could not find input-checking requirements in the ISO standard for FrodoKEM. Is input checking considered a relative or implementation-dependent requirement, or is it in fact a strict necessity?
For reference, FIPS 204 states:
"3.6.2 Public-Key and Signature Length Checks
Algorithm 3, implementing verification for ML-DSA, and Algorithm 5, implementing verification for HashMLDSA, specify the length of the signature 𝜎 and the public key 𝑝𝑘 in terms of the parameters described in
Table 1. If an implementation of ML-DSA can accept inputs for 𝜎 or 𝑝𝑘 of any other length, it shall return
false whenever the lengths of either of these inputs differ from their lengths specified in this standard.
Failing to check the length of 𝑝𝑘 or 𝜎 may interfere with the security properties that ML-DSA is designed
to have, like strong unforgeability."
FIPS 203 states that:
"Input checking. The algorithms ML-KEM.Encaps and ML-KEM.Decaps require input checking.
Implementers shall ensure that ML-KEM.Encaps and ML-KEM.Decaps are only executed on
inputs that have been checked, as described in Section 7"
NIST.SP.800-227 says that:
"Input checking. The correct and secure operation of cryptographic operations depends
crucially on the validity of the provided inputs. Even relatively benign faults, such as accepting an input that is too long or too short, can have serious security consequences.
KEM implementations need to perform input checking in an appropriate manner for all
KEM algorithms (i.e., KeyGen, Encaps, and Decaps). The exact form of the required input
checking is described in the FIPS or SP that specifies the relevant KEM."
Best.
--
You received this message because you are subscribed to the Google Groups "pqc-forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pqc-forum+...@list.nist.gov.
To view this discussion visit https://groups.google.com/a/list.nist.gov/d/msgid/pqc-forum/CAJ92McPbfOw-bYmJbwfAjba_J70Lqwh9K9XinGhCy7028mBVow%40mail.gmail.com.