https://github.com/mupq/pqm4
Revision 12d5e56f1554339d9609b148782a920f86a8127e authored by rpls on 06 June 2021, 20:12:45 UTC, committed by GitHub on 06 June 2021, 20:12:45 UTC
* Adapt the PQM3 Multiplatform & Scheme Discovery to PQM4

* Add HAL support for CW308T-STM32F3

* Adapt platform interfaces

* Implement simplified platform running interface

* Simplify chipwhisperer interface

* Fix for systems without the GNU findutils

* Add the mps2-an386 platform, which is also supported by QEMU

* Speed up scheme search

* Skip scheme list generation if IMPLEMENTATION_PATH is given

* Optionally push all data/bss into the "flash" portion of the MPS2

The flash is actually just a RAM. The main purpose of the board here is stack
testing and this will allow us to use all 4MB of the "ram" memory region for
stack/heap.

* Implement stack size querying

* Don't capture stdin for QEMU platforms

* Fix argument parsing for benchmarks

* Add possibility to run QEMU benchmarks directly from make

* Fix scheme list generation

* Remove automatic call to git

* Add some comments for the scheme finding mechanism

* Add the possibility for scheme specific makefiles

* Clean up makefiles

* Generate a skiplist for each platform

* Move reusable buildsystem and interface code to mupq

* Move randombytes implementation to hal for testvector test

* Make all-in-one compilation the default

* Document the new platforms in the README.md

* Update mupq

* Add _sbrk wrapping to opencm3

* Update mupq

* adjust pqm4 to run multiple iterations in a single binary

* Always add LTO flag

* Update mupq

* Reorganize symmetric crypto sources

* Include HAL and crypto sources in AIO compilation

* Fix LTO compilation

* Use existing linker script if present

* Update mupq

* Don't use the nano libc (worse performance)

* Fix compilation for self-tests

* Quick-fix build error for bikel1 on mps2-an386 platform

* Update benchmarks

* Use full ram for some frodokem schemes

* Fix compilation on mps2-an386 platform

* Update skip_list.py

* switch to mupq master

Co-authored-by: Matthias J. Kannwischer <matthias@kannwischer.eu>
1 parent 8274c41
Raw File
Tip revision: 12d5e56f1554339d9609b148782a920f86a8127e authored by rpls on 06 June 2021, 20:12:45 UTC
Multiplatform support (#174)
Tip revision: 12d5e56
skiplist.py
skip_list = [
    {'scheme': 'bikel1', 'implementation': 'm4f', 'estmemory': 103424},
    {'scheme': 'bikel3', 'implementation': 'm4f', 'estmemory': 181248},
    {'scheme': 'frodokem640aes', 'implementation': 'm4', 'estmemory': 124928},
    {'scheme': 'firesaber', 'implementation': 'm4f', 'estmemory': 15360},
    {'scheme': 'frodokem640shake', 'implementation': 'm4', 'estmemory': 113664},
    {'scheme': 'kyber1024-90s', 'implementation': 'm4', 'estmemory': 14336},
    {'scheme': 'kyber1024', 'implementation': 'm4', 'estmemory': 12288},
    {'scheme': 'kyber512-90s', 'implementation': 'm4', 'estmemory': 9216},
    {'scheme': 'kyber512', 'implementation': 'm4', 'estmemory': 7168},
    {'scheme': 'kyber768-90s', 'implementation': 'm4', 'estmemory': 11264},
    {'scheme': 'lightsaber', 'implementation': 'm4f', 'estmemory': 10240},
    {'scheme': 'ntruhps2048509', 'implementation': 'm4f', 'estmemory': 25600},
    {'scheme': 'kyber768', 'implementation': 'm4', 'estmemory': 9216},
    {'scheme': 'ntruhps2048677', 'implementation': 'm4f', 'estmemory': 33792},
    {'scheme': 'ntruhps4096821', 'implementation': 'm4f', 'estmemory': 40960},
    {'scheme': 'ntruhrss701', 'implementation': 'm4f', 'estmemory': 32768},
    {'scheme': 'saber', 'implementation': 'm4f', 'estmemory': 12288},
    {'scheme': 'ntrulpr761', 'implementation': 'm4f', 'estmemory': 30720},
    {'scheme': 'sikep434', 'implementation': 'm4', 'estmemory': 10240},
    {'scheme': 'sikep610', 'implementation': 'm4', 'estmemory': 14336},
    {'scheme': 'sikep751', 'implementation': 'm4', 'estmemory': 16384},
    {'scheme': 'sikep503', 'implementation': 'm4', 'estmemory': 11264},
    {'scheme': 'sntrup761', 'implementation': 'm4f', 'estmemory': 70656},
    {'scheme': 'bikel1', 'implementation': 'opt', 'estmemory': 90112},
    {'scheme': 'sikep434', 'implementation': 'opt', 'estmemory': 10240},
    {'scheme': 'bikel3', 'implementation': 'opt', 'estmemory': 175104},
    {'scheme': 'sikep610', 'implementation': 'opt', 'estmemory': 14336},
    {'scheme': 'sikep503', 'implementation': 'opt', 'estmemory': 10240},
    {'scheme': 'sikep751', 'implementation': 'opt', 'estmemory': 16384},
    {'scheme': 'frodokem1344aes', 'implementation': 'clean', 'estmemory': 3852288},
    {'scheme': 'frodokem1344aes', 'implementation': 'opt', 'estmemory': 305152},
    {'scheme': 'frodokem1344shake', 'implementation': 'clean', 'estmemory': 3852288},
    {'scheme': 'frodokem1344shake', 'implementation': 'opt', 'estmemory': 252928},
    {'scheme': 'firesaber', 'implementation': 'clean', 'estmemory': 28672},
    {'scheme': 'frodokem640aes', 'implementation': 'clean', 'estmemory': 932864},
    {'scheme': 'frodokem640aes', 'implementation': 'opt', 'estmemory': 144384},
    {'scheme': 'frodokem640shake', 'implementation': 'clean', 'estmemory': 932864},
    {'scheme': 'frodokem640shake', 'implementation': 'opt', 'estmemory': 119808},
    {'scheme': 'frodokem976aes', 'implementation': 'clean', 'estmemory': 2080768},
    {'scheme': 'frodokem976aes', 'implementation': 'opt', 'estmemory': 222208},
    {'scheme': 'frodokem976shake', 'implementation': 'clean', 'estmemory': 2079744},
    {'scheme': 'frodokem976shake', 'implementation': 'opt', 'estmemory': 185344},
    {'scheme': 'hqc-rmrs-128', 'implementation': 'clean', 'estmemory': 81920},
    {'scheme': 'hqc-rmrs-192', 'implementation': 'clean', 'estmemory': 161792},
    {'scheme': 'hqc-rmrs-256', 'implementation': 'clean', 'estmemory': 257024},
    {'scheme': 'kyber1024-90s', 'implementation': 'clean', 'estmemory': 28672},
    {'scheme': 'kyber1024', 'implementation': 'clean', 'estmemory': 28672},
    {'scheme': 'kyber512-90s', 'implementation': 'clean', 'estmemory': 15360},
    {'scheme': 'kyber512', 'implementation': 'clean', 'estmemory': 14336},
    {'scheme': 'kyber768-90s', 'implementation': 'clean', 'estmemory': 21504},
    {'scheme': 'kyber768', 'implementation': 'clean', 'estmemory': 21504},
    {'scheme': 'lightsaber', 'implementation': 'clean', 'estmemory': 15360},
    {'scheme': 'mceliece348864', 'implementation': 'clean', 'estmemory': 833536},
    {'scheme': 'mceliece348864f', 'implementation': 'clean', 'estmemory': 833536},
    {'scheme': 'mceliece460896', 'implementation': 'clean', 'estmemory': 4733952},
    {'scheme': 'mceliece460896f', 'implementation': 'clean', 'estmemory': 4733952},
    {'scheme': 'mceliece6688128', 'implementation': 'clean', 'estmemory': 5255168},
    {'scheme': 'mceliece6688128f', 'implementation': 'clean', 'estmemory': 5255168},
    {'scheme': 'mceliece6960119', 'implementation': 'clean', 'estmemory': 5257216},
    {'scheme': 'mceliece6960119f', 'implementation': 'clean', 'estmemory': 5257216},
    {'scheme': 'mceliece8192128', 'implementation': 'clean', 'estmemory': 5568512},
    {'scheme': 'mceliece8192128f', 'implementation': 'clean', 'estmemory': 5568512},
    {'scheme': 'ntruhps2048509', 'implementation': 'clean', 'estmemory': 29696},
    {'scheme': 'ntruhps2048677', 'implementation': 'clean', 'estmemory': 38912},
    {'scheme': 'ntruhps4096821', 'implementation': 'clean', 'estmemory': 47104},
    {'scheme': 'ntruhrss701', 'implementation': 'clean', 'estmemory': 38912},
    {'scheme': 'ntrulpr653', 'implementation': 'clean', 'estmemory': 18432},
    {'scheme': 'ntrulpr761', 'implementation': 'clean', 'estmemory': 19456},
    {'scheme': 'ntrulpr857', 'implementation': 'clean', 'estmemory': 23552},
    {'scheme': 'saber', 'implementation': 'clean', 'estmemory': 20480},
    {'scheme': 'sntrup653', 'implementation': 'clean', 'estmemory': 15360},
    {'scheme': 'sntrup761', 'implementation': 'clean', 'estmemory': 18432},
    {'scheme': 'sntrup857', 'implementation': 'clean', 'estmemory': 20480},
    {'scheme': 'dilithium2', 'implementation': 'clean', 'estmemory': 60416},
    {'scheme': 'dilithium2aes', 'implementation': 'clean', 'estmemory': 61440},
    {'scheme': 'dilithium3aes', 'implementation': 'clean', 'estmemory': 92160},
    {'scheme': 'dilithium3', 'implementation': 'clean', 'estmemory': 91136},
    {'scheme': 'dilithium5', 'implementation': 'clean', 'estmemory': 136192},
    {'scheme': 'dilithium5aes', 'implementation': 'clean', 'estmemory': 138240},
    {'scheme': 'falcon-1024', 'implementation': 'clean', 'estmemory': 90112},
    {'scheme': 'falcon-512', 'implementation': 'clean', 'estmemory': 47104},
    {'scheme': 'rainbowI-circumzenithal', 'implementation': 'clean', 'estmemory': 490496},
    {'scheme': 'rainbowI-classic', 'implementation': 'clean', 'estmemory': 445440},
    {'scheme': 'rainbowI-compressed', 'implementation': 'clean', 'estmemory': 387072},
    {'scheme': 'rainbowIII-circumzenithal', 'implementation': 'clean', 'estmemory': 2383872},
    {'scheme': 'rainbowIII-classic', 'implementation': 'clean', 'estmemory': 2046976},
    {'scheme': 'rainbowIII-compressed', 'implementation': 'clean', 'estmemory': 2032640},
    {'scheme': 'rainbowV-circumzenithal', 'implementation': 'clean', 'estmemory': 6140928},
    {'scheme': 'rainbowV-classic', 'implementation': 'clean', 'estmemory': 3587072},
    {'scheme': 'rainbowV-compressed', 'implementation': 'clean', 'estmemory': 4732928},
    {'scheme': 'sphincs-haraka-128f-robust', 'implementation': 'clean', 'estmemory': 23552},
    {'scheme': 'sphincs-haraka-128f-simple', 'implementation': 'clean', 'estmemory': 23552},
    {'scheme': 'sphincs-haraka-128s-robust', 'implementation': 'clean', 'estmemory': 13312},
    {'scheme': 'sphincs-haraka-128s-simple', 'implementation': 'clean', 'estmemory': 13312},
    {'scheme': 'sphincs-haraka-192f-robust', 'implementation': 'clean', 'estmemory': 43008},
    {'scheme': 'sphincs-haraka-192f-simple', 'implementation': 'clean', 'estmemory': 43008},
    {'scheme': 'sphincs-haraka-192s-robust', 'implementation': 'clean', 'estmemory': 23552},
    {'scheme': 'sphincs-haraka-192s-simple', 'implementation': 'clean', 'estmemory': 23552},
    {'scheme': 'sphincs-haraka-256f-robust', 'implementation': 'clean', 'estmemory': 59392},
    {'scheme': 'sphincs-haraka-256f-simple', 'implementation': 'clean', 'estmemory': 59392},
    {'scheme': 'sphincs-haraka-256s-robust', 'implementation': 'clean', 'estmemory': 38912},
    {'scheme': 'sphincs-haraka-256s-simple', 'implementation': 'clean', 'estmemory': 38912},
    {'scheme': 'sphincs-sha256-128f-robust', 'implementation': 'clean', 'estmemory': 21504},
    {'scheme': 'sphincs-sha256-128f-simple', 'implementation': 'clean', 'estmemory': 21504},
    {'scheme': 'sphincs-sha256-128s-robust', 'implementation': 'clean', 'estmemory': 12288},
    {'scheme': 'sphincs-sha256-128s-simple', 'implementation': 'clean', 'estmemory': 12288},
    {'scheme': 'sphincs-sha256-192f-robust', 'implementation': 'clean', 'estmemory': 41984},
    {'scheme': 'sphincs-sha256-192f-simple', 'implementation': 'clean', 'estmemory': 41984},
    {'scheme': 'sphincs-sha256-192s-robust', 'implementation': 'clean', 'estmemory': 22528},
    {'scheme': 'sphincs-sha256-192s-simple', 'implementation': 'clean', 'estmemory': 22528},
    {'scheme': 'sphincs-sha256-256f-robust', 'implementation': 'clean', 'estmemory': 57344},
    {'scheme': 'sphincs-sha256-256f-simple', 'implementation': 'clean', 'estmemory': 57344},
    {'scheme': 'sphincs-sha256-256s-robust', 'implementation': 'clean', 'estmemory': 37888},
    {'scheme': 'sphincs-sha256-256s-simple', 'implementation': 'clean', 'estmemory': 37888},
    {'scheme': 'sphincs-shake256-128f-robust', 'implementation': 'clean', 'estmemory': 21504},
    {'scheme': 'sphincs-shake256-128f-simple', 'implementation': 'clean', 'estmemory': 21504},
    {'scheme': 'sphincs-shake256-128s-robust', 'implementation': 'clean', 'estmemory': 12288},
    {'scheme': 'sphincs-shake256-128s-simple', 'implementation': 'clean', 'estmemory': 12288},
    {'scheme': 'sphincs-shake256-192f-robust', 'implementation': 'clean', 'estmemory': 41984},
    {'scheme': 'sphincs-shake256-192f-simple', 'implementation': 'clean', 'estmemory': 41984},
    {'scheme': 'sphincs-shake256-192s-robust', 'implementation': 'clean', 'estmemory': 22528},
    {'scheme': 'sphincs-shake256-192s-simple', 'implementation': 'clean', 'estmemory': 21504},
    {'scheme': 'sphincs-shake256-256f-robust', 'implementation': 'clean', 'estmemory': 57344},
    {'scheme': 'sphincs-shake256-256f-simple', 'implementation': 'clean', 'estmemory': 57344},
    {'scheme': 'sphincs-shake256-256s-robust', 'implementation': 'clean', 'estmemory': 37888},
    {'scheme': 'sphincs-shake256-256s-simple', 'implementation': 'clean', 'estmemory': 37888},
    {'scheme': 'falcon-1024-tree', 'implementation': 'opt-ct', 'estmemory': 186368},
    {'scheme': 'falcon-1024-tree', 'implementation': 'opt-leaktime', 'estmemory': 186368},
    {'scheme': 'falcon-1024', 'implementation': 'opt-leaktime', 'estmemory': 90112},
    {'scheme': 'falcon-1024', 'implementation': 'opt-ct', 'estmemory': 90112},
    {'scheme': 'falcon-512-tree', 'implementation': 'opt-ct', 'estmemory': 91136},
    {'scheme': 'falcon-512-tree', 'implementation': 'opt-leaktime', 'estmemory': 91136},
    {'scheme': 'falcon-512', 'implementation': 'opt-ct', 'estmemory': 47104},
    {'scheme': 'falcon-512', 'implementation': 'opt-leaktime', 'estmemory': 47104},
    {'scheme': 'dilithium2', 'implementation': 'm4', 'estmemory': 60416},
    {'scheme': 'dilithium3', 'implementation': 'm4', 'estmemory': 91136},
    {'scheme': 'falcon-1024', 'implementation': 'm4-ct', 'estmemory': 90112},
    {'scheme': 'falcon-512-tree', 'implementation': 'm4-ct', 'estmemory': 91136},
    {'scheme': 'falcon-512', 'implementation': 'm4-ct', 'estmemory': 47104},
]
back to top