sort by:
Revision Author Date Message Commit Date
8110b02 instead of sending more markers; just add delay in hal_setup 27 July 2020, 02:15:28 UTC
3a94b91 link libm 24 July 2020, 03:44:15 UTC
bd9654c add support for the efm32gg11b 24 July 2020, 03:04:53 UTC
cb2caa2 remove non-round3 schemes (#162) NIST announced the Round 3 finalists and alternate candidates: PQClean removed threebears, ledakem, newhope, mqdss, qtesla in MUPQ removed LUOV, RQC, ROLLO, Round5, ThreeBears, and LAC in This commit removes the M4 implementations of schemes that did not make it to round 3 from pqm4 (Round5 and NewHope). It also removes the corresponding benchmark results. 24 July 2020, 01:43:46 UTC
c32bcd0 Revert "clean up Makefile" This reverts commit b64e5f1073cc24097579417a91bcee3ee85eb260. Those lines were not unused. 15 June 2020, 18:45:45 UTC
b64e5f1 clean up Makefile there were some unused rules in our Makefile that still originate from the messy first round Makefile 11 June 2020, 02:34:52 UTC
28eb2d8 New Dilithium Code (#159) * Update Dilithium * Re-add optimizations from #105 * update dilithium benchmarks 11 June 2020, 02:32:37 UTC
aac104e Update NewHope to v1.1 (#158) * Update mupq; updates NewHope clean to v1.1 * Update NewHope m4 to v1.1 * Redo NewHope benchmarks 30 May 2020, 10:58:54 UTC
1cb728b Update Round5 to new version (#157) * Update mupq; integrates new version of Round5 opt * Update r5nd-1cca-5d m4 to new version * Update other Round5 m4 implementations to new version * Update benchmarks for Round5 30 May 2020, 09:29:13 UTC
bfef406 add gcc10 benchmarks 30 May 2020, 09:21:49 UTC
af4b38f update mupq (more robust result parsing) 29 May 2020, 06:12:56 UTC
84c5f91 Update ROLLO implementation (#155) * Update mupq; integrate new ROLLO ref implementation * Benchmark new ROLLO ref implementation 28 April 2020, 20:22:05 UTC
a1bbbd9 fix lac to adhere to the new aes keyexp api 27 April 2020, 23:26:41 UTC
479f4a5 Fix {sntrup,ntrulpr}761/m4f such that they compile Calls to aes256_keyexp were left in e1c6949 (#150) after attempting to rebase them after 1a6ee85 (#148). This changes the calls to aes256_ctr_keyexp. 27 April 2020, 20:06:25 UTC
7aa3be8 Extend SIKE M4 benchmarks Now with 100 executions instead of 1. Doesn't change the results at all though. 22 April 2020, 14:14:14 UTC
87dd5c1 Update RQC implementation (#153) * Update mupq; integrates new RQC implementations * Add rqc256 to skip_list On the host, rqc256 takes about 132KiB according to Valgrind * Increase stack to 128K for rqc192 On the host, Valgrind reported around 105KiB. On the board, test and testvectors ran fine with 112K, but the stack binary crashed, so it must have been very close. Increasing to 128K solved this. * Update RQC benchmarks Note that the stack numbers are not too interesting as the implementation uses dynamic memory allocation. 22 April 2020, 12:40:58 UTC
e1c6949 Add m4f Implementations of ntrulpr761 and sntrup761 (#150) * integrate sha512 from supercop20200409 * add sntrup761 m4 implementation * switch to m4f sha512 implementation * fix ntrup761 * rename implementation to m4f * ntrulpr761 * small changes to ntrulpr * another small speedup for sntrup761 * fix * another ntruprime update * NTRUPrime benchmarks 22 April 2020, 07:15:40 UTC
1da1518 LACv3 Benchmarks (#147) 21 April 2020, 07:08:26 UTC
1a6ee85 Update PQClean (#148) * integrate sha512 from supercop20200409 * skip mceliece * Port I'm not a big fan of this change, but we have to do it to be compatible with PQClean. * Port HQC; skip because it does not fit 21 April 2020, 07:05:29 UTC
04a8be2 Integrate SIKE M4 implementation (#146) * Add SIKE m4 implementations Taken from * update sike LICENSE * Fix bug by adding naked attribute to two functions sikep434 and sikep751 now terminate at least, but testvectors still don't match * Change cSHAKE_simple back to SHAKE * Change CRYPTO_BYTES for p503 from 16 back to 24 * Change wrong number in comment to avoid confusion * Add benchmarks Co-authored-by: Matthias J. Kannwischer <> 17 April 2020, 16:58:06 UTC
90754b1 Faster SHA512 (#136) * integrate sha512 from supercop20200409 * update benchmarks with new SHA512 17 April 2020, 04:51:51 UTC
20f1dff Update libopencm3 to fix build with make >= 4.3 make 4.3 changed the behaviour of '+=' in a backward-incompatible way. (See This broke the libopencm3 build and got fixed in 05 April 2020, 09:20:26 UTC
7e7703c Update Round5 to third round (#135) * Update mupq; Round5 opt implementations * Remove SNEIK variants * Rename Round5 m4 CCA variants * Update r5nd-1cca-5d m4 implementation * Update symlinks other Round5 m4 implementations * Add Round5 m4 CPA variants * Force assembly addsub for Round5 m4 * Update round5 benchmarks (#134) * Update Round5 opt benchmarks Co-authored-by: Daan Sprenkels <> 25 March 2020, 08:35:03 UTC
3b0ca85 Update mupq to make serial output processing more robust See 05 March 2020, 09:41:47 UTC
0972616 Fixes #132 (#133) 15 February 2020, 09:41:15 UTC
7b37f04 Take clean CPA three bears from PQClean (#131) * update three bears benchmarks for clean implementation * update mupq 04 February 2020, 11:52:48 UTC
2f3b8bd Remove unneeded file in NewHope m4 (#130) 30 January 2020, 13:35:35 UTC
f0f573e Integrate faster NewHope m4 implementation (#129) In Erdem Alkim, Yusuf Alper Bilgin, Murat Cenk, and François Gérard propose more optimizations to the NewHope M4 implementation. This integrates their nice work. We report a slightly higher cycle count than in that paper because of an extra bit reversal and because we currently don't use -flto. 30 January 2020, 10:08:04 UTC
944b3c3 Integrate faster Kyber m4 implementation (#128) In Erdem Alkim, Yusuf Alper Bilgin, Murat Cenk, and François Gérard propose more optimizations to the Kyber M4 implementation. This integrates their nice work. We report a slightly higher cycle count than in that paper because of an extra Barrett reduction and because we currently don't use -flto. 20 January 2020, 16:43:41 UTC
8136c82 Fix Round5 CCA KEMs (#127) * Update mupq; fixes Round5 opt CCA KEMs * Fix Round5 m4 CCA KEMs * Update Round5 benchmarks 03 December 2019, 08:05:37 UTC
89e9eb1 Update libopencm3 (#125) In libopencm3 slightly changed the clock setup so we need to adjust that as well. As all changes are in the clock setup, this does not affect benchmarks at all. 25 November 2019, 13:33:26 UTC
1624ff1 add benchmarks of clean threebears (#124) 18 November 2019, 09:34:49 UTC
6ba5207 len and flag were flipped (#123) * len and flag were flipped * apply same fix to mupq 15 November 2019, 12:34:27 UTC
670ec38 update mupq (#122) refactors our number printing to reduce code size. For pqm4 this does not matter that much, but let's keep it in sync with mupq. Our code benchmarks exclude this common code, so there is no need to update those numbers. This also pulls in a newer version of PQClean, which now includes qTesla ( Unfortunately, qtesla-I-p needs 174.5 KiB and qtesla-p-III needs 403.2 KiB of RAM, so it does not fit on our platform. 29 October 2019, 13:52:15 UTC
f25922b Add RQC{128,192,256} ref implementations (#121) * Update mupq; adds rqc ref implementations * Add RQC benchmarks 08 October 2019, 11:15:00 UTC
20bdec1 Add ROLLO-{I,II,III}-{128,192,256} ref implementations (#120) * Update mupq; adds ROLLO ref implementations * Add ROLLO benchmarks 08 October 2019, 10:48:50 UTC
970afc2 Add optimized Kyber-90s and update Kyber-90s from PQClean (#119) * change naming of falcon parameter sets to pqclean naming * add kyber-90 parameter sets * use our AES API in Kyber * fix symlinks * update pqclean; make kyber use fast aes * update kyber-90s benchmarks 07 October 2019, 13:43:24 UTC
fdd41fa Add missing fields in benchmarkclock struct The missing fields are initialized with default values following the conventions of the predefined profiles from <>. I did not test this patch on the M4 hardware. 07 October 2019, 12:07:29 UTC
667d80b Update PQClean (#116) * change naming of falcon parameter sets to pqclean naming * ignore rainbow paramter sets * add benchmarks for clean implementations of kyber-90s, falcon, and saber * update mupq to fix SHA2 SPHINCS+ builds 01 October 2019, 23:48:38 UTC
7514870 Fix kyber (#115) * fix inlined comparison * update documentation of indcpa_enc_cmp The `cmov` that is used in `crypto_kem_dec` to either derive the shared secret from the pre-key or the random `z` expects the `fail` input to be either 0 (if re-encryped ciphertext was the same as input ciphertext) or 1 (otherwise). We've inlined the comparison that used to be done by `verify` into `indcpa_enc` (renamed to `indcpa_enc_cmp`) to reduce the stack footprint. We made a small mistake in there so that it returned 0 in case of no failure and some other byte otherwise. This means that in case of a mismatch, cmov would write a mix of the pre-key and `z`. As this is hashed together with the ciphertext later this will still result in some shared secret different from the correct one, but this is not what you want. 30 September 2019, 11:58:39 UTC
b4fea3f Update Falcon to new fixed upstream version (#114) * Update Falcon to new fixed upstream version. On the 2019-09-18 the Falcon team announced that their implementation had two severe bugs that caused signatures to leak information about the secret key. These bugs also affected the implementations that were in pqm4. This commit updates our falcon implementation to the new upstream version from which fixes these bugs. * Update Falcon benchmarks 25 September 2019, 08:44:35 UTC
8a1a476 Update LUOV to v2.1 24 September 2019, 07:22:20 UTC
8e662d7 update mupq to fix Python 3.6 compatibility and dubious use of printf (#112) 19 September 2019, 07:38:03 UTC
3f2f58a fix incremental sha512 (#110) 10 September 2019, 09:43:44 UTC
f5198cb Fix hal_get_time() hal_get_time() gave wrong values if the SysTick counter reached 0 between reading overflowcnt and calling systick_get_value(). This behavior is now addressed by retrying if that happens. Thanks to djb for pointing that out to us. The reset value is also increased to the maximum of 2^24-1, such that there is less overhead from the interrupt handler, and overflowcnt is marked volatile. 10 September 2019, 08:42:46 UTC
60e418f fix sphincs-haraka-192s-robust benchmarks there seems to be a small mistake in our previous SPHINCS+ results. For sphincs-haraka-192s-robust the cycle count for key gen and signing was the same which doesn't make sense. When re-running the benchmarks I got vastly different numbers. This must have been a glitch during the previous benchmarks. 05 September 2019, 12:23:31 UTC
be0c421 New ARM assembly optimized code for NewHope (#108) * newhope512cpa * newhope512cca 1024cpa and 1024cca * benchmark newhope 05 September 2019, 07:53:57 UTC
da6104f Fix broken links in README 03 September 2019, 12:36:26 UTC
93cfaf4 remove withdrawn qTesla parameter sets (#107) 20 August 2019, 16:19:49 UTC
b87b354 Merge pull request #106 from mupq/posix Don't use any sed flags 15 August 2019, 12:50:42 UTC
64468e6 Don't use any sed flags 15 August 2019, 12:01:28 UTC
b2d4a8a Optimizations of Dilithium's signing procedure (#105) * Create opt * Delete opt * Create .gitkeep * Create .gitkeep * Delete .gitkeep * Delete .gitkeep * Create .gitkeep * Add files via upload * Delete poly.c * Delete poly.h * Delete sign.c * Add files via upload * Create .gitkeep * Create .gitkeep * Add files via upload * Add files via upload * dilithium signing procedure changes * prasanna latest commit * prasanna latest commit * Revert symlinks for r5nd-5kemcca-5d * prasanna latest commits with dilithium4 * Revert change to Makefile * Revert change to AES * Revert changes to r5nd-5kemcca-0d * add new dilithium benchmarks 15 August 2019, 11:09:48 UTC
93d444a Fix Kyber assembly for older compilers (#103) Newer compilers manage to detect this automatically and use movw instead, but this throws errors on older ones (e.g., on arm-none-abi-gcc 6.3.1). 22 July 2019, 14:00:26 UTC
f8408c0 Add Falcon (#102) * add -lm to LDFLAGS_HOST * skip implementations of falcon1024-tree * add m4 optimized implementations of falcon * add benchmarks 18 July 2019, 06:07:34 UTC
cd3d685 Update qTesla code (#101) * update mupq and README * qtesla benchmarks * update mupq 06 July 2019, 15:01:52 UTC
b5fd63b Skip pqclean implementations of ledakemlt{12,32,52} These implementations consume way too much RAM (see #59): - ledakemlt12: 853 KiB - ledakemlt32: 1533 KiB - ledakemlt52: 2523 KiB 01 July 2019, 06:52:57 UTC
7e000ce update mupq to add release function for AES key schedule. Fixes #98 (#100) 01 July 2019, 06:51:13 UTC
3533104 Add Round5 (#99) * Add R5ND_1KEMCCA_5d m4 implementation * Add other Round5 parameter sets * Add linker scripts for R5N1_5KEM parameter sets * Add Round5 benchmarks * Update mupq; integrate Round5 opt implementations 27 June 2019, 07:19:15 UTC
ee9fdb0 Merge branch 'frodokemround2' 13 June 2019, 14:33:37 UTC
972aa92 Merge branch 'frodokemround2' 13 June 2019, 14:31:41 UTC
c46a47b frodo benchmarks 13 June 2019, 14:11:12 UTC
f84574d frodokem640aes 13 June 2019, 09:13:27 UTC
711be16 reduce stack usage to make frodokem640aes fit 13 June 2019, 08:06:04 UTC
9a12821 optimized frodokem640shake round 2 12 June 2019, 14:08:30 UTC
cd1c7e4 Update README with cSHAKE The cshake{128,256}_simple API is now deprecated. Implementations should use the more generic cSHAKE API from sp800-185.h. 12 June 2019, 11:26:57 UTC
6e4d959 Add ThreeBears (#96) * Update mupq; import ThreeBears implementations * Add sp800-185.c to Makefile * Add ThreeBears to benchmarks 12 June 2019, 09:36:45 UTC
2362319 Update 12 June 2019, 08:44:29 UTC
93c5c86 Merge branch 'dilithium' 12 June 2019, 08:42:54 UTC
5e62e82 Add LUOV (#94) * Update mupq * Add larger LUOV parameter sets to skip_list * Add LUOV to benchmarks 12 June 2019, 08:25:49 UTC
2b67625 update dilithium 12 June 2019, 08:23:13 UTC
50b6e0c Fix typo in ldscript Makefile selection 12 June 2019, 06:29:50 UTC
4525a4b Allow implementation-specific linker scripts This already adds one for Frodo640AES/opt 12 June 2019, 06:29:32 UTC
3ba5029 Allow AES to be called with non-aligned pointers (#93) Passing a pointer to an address that is not a multiple of 4 bytes will incur a minor performance penalty. It's only a couple of cycles and it is better than hanging completely. To aligned pointers, there is no speed difference. Only a slightly larger code size. 10 June 2019, 15:04:32 UTC
375bf99 Cleaning m4 implementations of Kyber (#92) 05 June 2019, 17:12:55 UTC
79579db rename dilithium to dilithium2 31 May 2019, 06:44:52 UTC
0f29c2a Update NTRU Prime to Round 2 and add parameter sets (#91) * Update mupq * Update benchmarks NTRU Prime * Remove NTRU Prime from Round 1 list in README 29 May 2019, 12:50:00 UTC
7b01d1d update 27 May 2019, 00:40:03 UTC
9e86604 remove old m4 implementations 27 May 2019, 00:39:37 UTC
99a9a9e benchmarks frodokem opt 27 May 2019, 00:39:37 UTC
48772d0 update mupq; update skip_list 27 May 2019, 00:39:37 UTC
e209755 Fix typo in ldscript Makefile selection 27 May 2019, 00:39:37 UTC
1f1b96f Allow implementation-specific linker scripts This already adds one for Frodo640AES/opt 27 May 2019, 00:39:37 UTC
2cc2be9 update frodokem to r2 27 May 2019, 00:39:37 UTC
31280bc Update mupq/pqclean and port the opaque structs for the hashing API (#89) * Update Kyber m4 with opaque structs * Update NewHope m4 with opaque structs * Update Dilithium m4 with opaque structs * Update mupq mupq/pqclean now use an opaque state struct in the hashing API * Update README with modified hashing API 26 May 2019, 11:45:01 UTC
0da66bc Update 21 May 2019, 08:37:25 UTC
3a581d7 Add NewHope Round2 (clean+m4) (#87) * fix skip list in * benchmark clean implementations of all new hopes * add m4 implementations of round2 newhope * update newhope in readme * benchmarks for newhope m4 21 May 2019, 08:30:03 UTC
ab68fb4 Fix Commit bfb9144fd749e1b77be96755989b9346f5c1908e introduced a syntax error. For me it works again now. 20 May 2019, 08:47:36 UTC
bca2a07 add optimized ntru variants; add benchmarks (#86) 20 May 2019, 07:46:31 UTC
bfb9144 Add SPHINCS+ benchmarks (#85) * Add SPHINCS+ benchmarks * Add SPHINCS+ to the scheme list in README * Bring mupq/pqclean up to date for SPHINCS+ This includes MQDSS, which we need to skip * update mupq 18 May 2019, 12:09:04 UTC
83e9906 Update 17 May 2019, 14:41:19 UTC
94230ec properly check for errors for signatures 16 May 2019, 08:21:04 UTC
d99fe32 Add SIKEp{434,503,610,751} 15 May 2019, 09:40:09 UTC
99b58d9 Add LAC (#84) 15 May 2019, 09:36:20 UTC
5926ab3 Add LAC to list in 15 May 2019, 09:35:04 UTC
65f7a29 update mupq to include lac reference implementations; add benchmarks for lac 15 May 2019, 09:31:47 UTC
4fe0327 Update SHA-2 API in 15 May 2019, 08:35:55 UTC
03153ea Update SABER to round 2, add LightSABER and FireSABER (#81) * Update SABER to round 2, add LightSABER and FireSABER * Update benchmarks for SABER Compiled with arm-none-eabi-gcc 9.1.0, 100 measurements. * update mupq * change ntruhrss701 back to clean 15 May 2019, 06:58:43 UTC
4457e5b Add option to skip other types of benchmarks 15 May 2019, 06:57:45 UTC
4b9c6e3 change ntruhrss701 back to clean 15 May 2019, 06:52:48 UTC
188fd79 Merge branch 'master' into saber 15 May 2019, 06:49:53 UTC
back to top