-
Notifications
You must be signed in to change notification settings - Fork 499
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use of 'internal' procedures for testing of FIPS algorithms #2049
Comments
Hi @RodriM11, liboqs currently tests the NIST ACVP vectors, covering both the deterministic and randomized versions of FIPS 203, as well as the internal sign and verify functions of FIPS 204. You can find the relevant test implementations here: vectors_kem.c #2051 will further cover the updated FIPS 204 vectors covering the external interface. Let me know if this answers your question or if you think anything is missing. |
Can we consider this resolved by the merging of #2051? |
Hi @bhess! First, thanks for your detailed answer. I did see the code you mentioned, but I fail to understand how the code is actually accessing My question was if there will be a way (or a compilation option, etc...) in which the |
I think you interpret it the correct way, we create a custom DRBG that outputs the deterministic values needed to perform the derandomized tests. Looking at FIPS 203, Sec 3.3 states:
I interpret the text as permitting these functions to be made available (only) for testing purposes, but it does not require that they must be explicitly exposed. Since we have a less intrusive way to run the tests by using a custom DRBG, I believe there is no need to explicitly expose the internal functions. Let me know if you interpret this differently. |
I understand your interpretation (IMO it is a perfectly valid way of testing the procedures, given
Nevertheless, my question was not so much related to the specific wording of NIST, and more over the question of whether it might be desirable for users not on academic uses to have a testing procedure that does not involve DRBG toggling. |
According to FIPS 203, 204 and 205, the separation between the
main internal
and the actual processes of each operation of the PQ FIPS algorithms is done to allow testing directly over the internal (derandomized) versions, as for example FIPS 203 establishes:"The interfaces specified in this section will be used to test ML-KEM implementations through the Cryptographic Algorithm Validation Program (CAVP). "
My question was whether the internal processes already present on ML-KEM and ML-DSA will be made available 'somehow', in order to test the 'derandomized' versions of these algorithms.
Thanks in advance!
The text was updated successfully, but these errors were encountered: