https://github.com/mupq/pqm4

sort by:
Revision Author Date Message Commit Date
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 https://falcon-sign.info/ 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 README.md 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 README.md 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 README.md 21 May 2019, 08:37:25 UTC
3a581d7 Add NewHope Round2 (clean+m4) (#87) * fix skip list in interface.py * 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 interface.py 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 README.md 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 README.md 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 README.md 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
13579e4 allow filter in build_everything.py 15 May 2019, 06:26:56 UTC
90fdaca Re-benchmark with arm-none-eabi-gcc 9.1.0 (#82) * skip clean frodo implementations; they don't fit * re-benchmarked everything with arm-none-eabe-gcc 9.1.0; differences are mostly minor * update gcc version 15 May 2019, 06:25:37 UTC
530f4cb update mupq 14 May 2019, 07:47:41 UTC
b85ef84 Update benchmarks for SABER Compiled with arm-none-eabi-gcc 9.1.0, 100 measurements. 13 May 2019, 16:26:14 UTC
7be7ce2 Update SABER to round 2, add LightSABER and FireSABER 13 May 2019, 16:18:18 UTC
0bec37d Update README.md 13 May 2019, 13:08:22 UTC
a04f89a Add memory-efficient high-speed Kyber M4 implementation (#80) * update m4 implementations of kyber512, kyber768, and kyber1024 * update kyber benchmarks 13 May 2019, 12:08:35 UTC
1a0c3a9 update kyber512, kyber768, kyber1024, ntruhrss701; add ntruhps2048677, ntruhps4096821 (#79) 10 May 2019, 09:42:20 UTC
8627f53 pqm4 V2 (#78) * Add mupq submodule * Word-align the address of polymul_asm (#37) * added hal.h * hal.h * Rewrite utils to use interface.py Fix dev references * Actually register submodule * add stm32f4 hal.c * Refactor Makefile; build single binaries * kick-out schemes that did not make it to round2. Resolves #40 * Shrink RAM from 128 KiB to 112 KiB (#73) By not using SRAM2 we get more consistent benchmarks since SRAM2 seems to slow down memory accesses. This lead to schemes that are wasteful with stack (i.e., overflowing the 16 KiB SRAM2 into SRAM1) were faster. * Move common sources and headers to mupq * Use a pattern rule for various tests in Makefile * replaced cortexm4 specific function calls by hal calls * Adhere to slightly changed randombytes API * integrate hal for stm32f4 * fix variable renaming * update mupq * use hal.h from mupq * fix crypto sign benchmarks * adds hashing benchmarks. Closes #29 * Update README.md * Update README.md * Big refactor of python files * Include project into makefile targets * fix frodo builds * add hashing benchmarks * benchmarks * Refactor makefile As a bonus, includes build_everything.py * fix sike build * support sign in type detection * Add mupq note * suppress output of st-flash * removed stuff that now resides in mupq from pqm4, resolved symlinks * updated submodule * Use context manager to handle device * fix builds for kyber and frodo * add mupq implementations to builds * allow partial benchmarks and tests; small bug fixes * fix build everything and allow skipping stack benchmarks * fix recovery after flashing fails * remove duplicate code * CSV Benchmarks (#75) * hashing benchmarks * some more refactoring * sample benchmarks * sample benchmarks * new benchmarks * fix kyber1024 benchmarks * PQClean Integration (#76) * hashing benchmarks * some more refactoring * sample benchmarks * sample benchmarks * namespacing for pqclean * namespacing in testvectors on host * Integrate PQClean's AES into pqm4 * Fix path for host sources in Makefile * Update mupq * Fix bug in testvectors AES-128 * Add optimized AES-192/256 implementations. Round-2-Kyber will use this. Everything is put into separate sections such that the linker with gc-sections will succesfully throw out an AES instance (or all of them) whenever it is not used by a scheme. * Update mupq * fix incremental keccak implementation * added benchmarks for ntruhps2048509 and sphincs-shake256-128f-simple * make frodo scheme naming consistent with PQClean (breaks testvectors) * rename frodo in benchmark results * Measure code size (#77) * code-size in benchmarks * update README.md * Fix minor typo's in README.md * Add instructions for using AES to README * Update README.md * Some more polishing of README.md 01 May 2019, 10:02:18 UTC
eaf7c6e Fix typo in README: 571->751 (#74) 06 April 2019, 05:18:53 UTC
ae06d3d Add kyber512 and kyber1024 (#35) * add kyber512 and kyber1024 ref * add m4 optimized kyber512 and kyber1024 * add kyber512 and kyber1024 benchmarks 31 January 2019, 10:15:17 UTC
c589096 fix flashing retry 25 January 2019, 13:38:07 UTC
60aba47 Add M4 version of Dilithium (#34) 17 December 2018, 12:07:33 UTC
a1c5bab Add M4 versions of frodo640-cshake and frodo640-aes [Fly, you fool!] (#33) 17 December 2018, 11:55:48 UTC
9ba4793 add some canaries in tests to detect implementations reading/writing out of bounds (#32) 11 December 2018, 11:01:10 UTC
402048b Fix 2 typos in README and more consistency with -ise/-ize 22 November 2018, 09:27:46 UTC
bc61119 Refactor crypto_hash_sha512 and add sha384 (#31) This renames crypto_hash_sha512 to sha512. This makes it more consistent with the fips202 functions. The header is renamed to sha2.h, such that it can also contain other SHA-2 instances. In particular, SHA-384 is added as some NIST submissions use it. 22 November 2018, 09:05:08 UTC
d5727e1 Check for incorrect keys when benchmarking KEMs (#30) This may occur e.g. when implementations make illegal use of the stack. It may be tempting to read/write beyond the stack pointer, but if measurement interrupts occurs, this data gets overwritten. 23 October 2018, 11:05:08 UTC
9c52e35 Add license references for saber and kindi 19 October 2018, 16:20:22 UTC
c367f6f Add Optimised Implementations of Kindi, NTRU-HRSS, NTRUEncrypt, Saber, and RLizard (#27) 19 October 2018, 15:56:57 UTC
2bae04e Add RLizard-1024 (#26) 19 October 2018, 14:29:00 UTC
d66799f Centralise flashing of binaries (#25) 17 October 2018, 15:39:32 UTC
17253f7 Add NTRU-KEM-743 (#24) 17 October 2018, 12:55:45 UTC
b03b5fd Updated benchmarks with arm-none-eabi-gcc 8.2.0 (#23) 17 October 2018, 07:32:36 UTC
ac3e242 NTRU-HRSS: rotate by k using fixed memory pattern 16 October 2018, 08:15:04 UTC
fcf7344 Fix potential branching in NTRU-HRSS ref 15 October 2018, 16:24:16 UTC
abc55c0 fixes markdown generation if benchmarks are one line off could be done more elegantly 13 October 2018, 10:13:15 UTC
f58c06a Add bibTeX 12 October 2018, 13:00:24 UTC
dc46471 Check for .m4ignore in makefile (#22) 11 October 2018, 08:42:09 UTC
9a7890c Centralise SHA512 (#19) * centralises sha512 * updates sntrup4591761 benchmarks 10 October 2018, 19:31:37 UTC
4e8b88d Refactor kindi256342 to not use dynamic memory allocations (#20) * Fixes #18 for Kindi * update kindi speed benchmarks * remove include 10 October 2018, 18:59:54 UTC
8a83a1e updates libopencm3 and adds while(1) at the end of each main 04 October 2018, 07:16:40 UTC
770b7db Small update to the setup and build instructions 01 October 2018, 12:39:21 UTC
109e191 update libopencm3 With the most up to date version of the ARM toolchain our speed benchmarks broke (looping forever). Updating libopencm3 solves this. 13 August 2018, 11:05:22 UTC
133c0e8 Clean up and reorder License section 12 July 2018, 10:13:02 UTC
254cc69 Also fix headers in Makefile for qTesla-I 12 July 2018, 09:58:17 UTC
7e61b0f Fix erroneous newlines in signature speed table 12 July 2018, 09:56:33 UTC
f9948e5 Reference implementations for qTesla-III_speed and qTesla-III_size (#13) * Reference implementations for qTesla-III_speed and qTesla-III_size * License information added for qTesla-III * Fix header files in Makefiles of qTesla-III 12 July 2018, 09:50:29 UTC
back to top