-
Notifications
You must be signed in to change notification settings - Fork 950
[crypto] ML-DSA-87 verify (1/24) #29299
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
base: master
Are you sure you want to change the base?
Conversation
This file documents the high-level implementation choices and should be the initial contact point when navigating to the `mldsa87` directory. Signed-off-by: Andrea Caforio <[email protected]>
Two Bazel build files are required for the ML-DSA-87 apps: One for the sources files and another one for the unit tests. Signed-off-by: Andrea Caforio <[email protected]>
Increase the size of the OTBN DMEM from 4 KiB to 32 KiB (32768 bytes) and the size of the IMEM from 8 KiB to 16 KiB (16384 bytes). Signed-off-by: Andrea Caforio <[email protected]>
| /* Copyright lowRISC contributors (OpenTitan project). | ||
| Licensed under the Apache License, Version 2.0, see LICENSE for details. | ||
| SPDX-License-Identifier: Apache-2.0 */ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| /* Copyright lowRISC contributors (OpenTitan project). | |
| Licensed under the Apache License, Version 2.0, see LICENSE for details. | |
| SPDX-License-Identifier: Apache-2.0 */ | |
| /* Copyright lowRISC contributors (OpenTitan project). */ | |
| /* Licensed under the Apache License, Version 2.0, see LICENSE for details. */ | |
| /* SPDX-License-Identifier: Apache-2.0 */ |
etterli
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me except that the memory increase should probably be an atomic commit which also touches the RTL and DV. The reason is that otherwise the DV and potentially IBEX SW breaks.
I think increasing the memories should touch the same files as in this commit: etterli/opentitan-otbn-pqc-isa@b0ce32d
| Note that DMEM is actually 4kiB in size, but only the first 3kiB of | ||
| the memory is visible through this register interface. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| TODO: Document the .bss and .scratchpad split | |
| Note that DMEM is actually 32kiB in size, but only the first XkiB of | |
| the memory is visible through this register interface. |
First PR of the series adding package documentation, Bazel build files and increases the OTBN memories:
This is a series of PRs that in their composition result in FIPS-204-compliant OTBN implementation of ML-DSA-87 verify.
Resources
Preamble
docNumber-theoretic transform
NTTINTTPolynomial 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