[crypto] ML-DSA-87: backward number-theoretic transform (3/24)#29334
Merged
nasahlpa merged 2 commits intolowRISC:masterfrom Feb 19, 2026
Merged
[crypto] ML-DSA-87: backward number-theoretic transform (3/24)#29334nasahlpa merged 2 commits intolowRISC:masterfrom
nasahlpa merged 2 commits intolowRISC:masterfrom
Conversation
d227ff5 to
41dee12
Compare
nasahlpa
reviewed
Feb 19, 2026
41dee12 to
7123373
Compare
This is an implementation of the backward number-theoretic transform over the polynomial ring Z_q[X] / (X^256 + 1) using the 512-th root of unity 1753. Signed-off-by: Andrea Caforio <andrea.caforio@lowrisc.org>
The composition of the forward and backward NTT must result in the identity function. Signed-off-by: Andrea Caforio <andrea.caforio@lowrisc.org>
7123373 to
68f400c
Compare
This was referenced Feb 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is an implementation of the backward number-theoretic transform over the
polynomial ring
Z_q[X] / (X^256 + 1)using the 512-th root of unity 1753(see #29333 for the forward variant).
Design rationale (from
mldsa87_ntt.s):This is a series of PRs that in their composition result in FIPS-204-compliant OTBN implementation of ML-DSA-87 verify.
Resources
Preamble
[crypto] ML-DSA-87 verify (1/24) #29299docNumber-theoretic transform
[crypto] ML-DSA-87: forward number-theoretic transform (2/24) #29333NTTINTTPolynomial arithmetic
poly_add,poly_sub,poly_mulpoly_mul_addXOF
xof_init,xof_poll,xof_finishxof_absorbxof_squeezeRounding
shift_leftdecomposeReduction
reduceInfinity norm
norm_checkSampling
rej_ntt_poly,expand_asample_in-ballchallenge_hashEncoding
decode_zdecode_t1decode_hintencode_w1Vector operations
sig_decodenorm_check_zA*z,c * t1,Az - ct1use_hintEpilogue
app