https://github.com/mupq/pqm4
Revision e122421d0ce033fbeabe217e1bae4e1a5f17b756 authored by Marc on 01 December 2023, 08:17:04 UTC, committed by Marc on 01 December 2023, 08:18:31 UTC
Add slightly modified reference implementations to haetae2,
Add slightly modified reference implementations to haetae2,
haetae3 and haetae5 with lower stack memory footprint than
the original reference implementation. This enables the
test vector comparison 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.
1 parent 258a11f
History
Tip revision: e122421d0ce033fbeabe217e1bae4e1a5f17b756 authored by Marc on 01 December 2023, 08:17:04 UTC
add low-mem ref implementation to all schemes
Tip revision: e122421
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

README.md

back to top