https://github.com/mupq/pqm4
Revision f7aedf0362e316ec222a9b7db4121c4f540d9438 authored by Marc on 01 December 2023, 08:30:58 UTC, committed by Marc on 01 December 2023, 08:38:02 UTC
Add slightly modified reference implementations to haetae2, haetae3 and haetae5, labeled as `ref`, with lower stack memory footprint than the original reference implementation. This enables running testvectors.py for all schemes. CAVEAT: This commit modifies the following PQM4 core files * ldscripts/stm32f4discovery.ld * ldscripts/stm32f4discovery_fullram.ld * mk/stm32f4discovery.mk The two load scripts are modified as recommended in [issue 310](https://github.com/mupq/pqm4/issues/310#issuecomment-1810255939). The make file is modified to use full ram for the implementations m4f and ref of scheme haetae5, as they would run out of memory otherwise, similar to dilithium5. The stack memory footprint was reduced by: * Storing A1 using uint16 instead of int32, halving its footprint * Grouping some vectors inside `crypto_sign_signature()`, whose periods of liveliness do not overlap, into unions. The modification is light enough to easily verify consistency with the reference implementation.
Tip revision: f7aedf0362e316ec222a9b7db4121c4f540d9438 authored by Marc on 01 December 2023, 08:30:58 UTC
Add low-mem ref implementation to all schemes
Add low-mem ref implementation to all schemes
Tip revision: f7aedf0
File | Mode | Size |
---|---|---|
common | ||
crypto_kem | ||
crypto_sign | ||
hostside | ||
ldscripts | ||
libopencm3 @ 1f3abd4 | ||
mk | ||
mupq @ 0abc3df | ||
.gitignore | -rw-r--r-- | 107 bytes |
.gitmodules | -rw-r--r-- | 168 bytes |
Makefile | -rw-r--r-- | 357 bytes |
README.md | -rw-r--r-- | 26.1 KB |
benchmarks.csv | -rw-r--r-- | 20.8 KB |
benchmarks.md | -rw-r--r-- | 31.8 KB |
benchmarks.py | -rwxr-xr-x | 1.1 KB |
build_everything.py | -rwxr-xr-x | 341 bytes |
convert_benchmarks.py | -rwxr-xr-x | 417 bytes |
interface.py | -rw-r--r-- | 3.6 KB |
requirements.txt | -rw-r--r-- | 19 bytes |
skiplist.py | -rw-r--r-- | 14.2 KB |
st_nucleo_l4r5.cfg | -rw-r--r-- | 225 bytes |
test.py | -rwxr-xr-x | 342 bytes |
testvectors.py | -rwxr-xr-x | 342 bytes |
Computing file changes ...