mirror of
https://github.com/open-quantum-safe/liboqs.git
synced 2025-12-16 00:03:39 -05:00
* Add copy_from_libjade.yml Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Modify copy_from_upstream.py Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Add patches for libjade Kyber code Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Update alg_support.cmake templates Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Update KEM famiy templates Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Fix copy_from_upstream.py Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Correct copy_from_upstream.py Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Modify copy_from_upstream.yml Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Update KEM family templates Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Fix copy_from_upstream.py Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Fix KEM family templates Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Fix KEM family templates Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Update templates for build system files Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Update build system files Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Fix add_enable_by_alg_conditional.libjade Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Run copy_from_upstream.py Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Update KEM family templates Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Update KEM templates Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Update KEM templates Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Update copy_from_upstream.yml with libjade implementation info Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Update KEM templates Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Edit KEM templates Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Run copy_from_upstream.py Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Update copy_from_upstream.py Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Fix KEM temlates Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Run copy_from_upstream.py Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Add libjade_shim Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Add jasmin/libjade namespaces to test_binary.py Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Update testing Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Allow manually triggering CI tests Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Change container for upstreamcheck in unix.yml Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Update copy_from_upstream.py Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Edit unix.yml Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Edit unix.yml Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Restrict copying of code from libjade repo to relevant files Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Remove irrelevant libjade code Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Remove redundant KEM templates Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Update KEM template to accomodate new dir structure Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Debug: tweak unix.yml Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Re-build libjade with jasmin version used in CI Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Debug: undo unix.yml tweak Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Allow MSVC to ignore libjade_shims Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Simplify name scheme for libjade code Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Update alg docs, libjade code name scheme, and license Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Update copy_from_upstream documentation Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Fix copy_from_upstream.py and simply libjade code name scheme Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Update alg docs and CBOM Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Correct alg doc generation Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Generate CBOM with unique bom-ref Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Cleanup unix.yml Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * fix patches to include api.c; fix kem templates Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * fix kyber patch Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * turn off weekly constant time tests for libjade implementations Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * update documentation Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * change upstream to stable libjade release Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * fix kyber documentation Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * fix kyber documentation Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * fix kem template again Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * fix weekly.yml and unix.yml to test libjade code Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * rename libjade asm files from *.s to *.S Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * end libjade_kyber*/api.c files with newline Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * fix kem template to prevent duplicate symbols in object files Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * fix indentation in weekly.yml Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * skip testing libjade on macos-14 in CI Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * use release tag/branch with libjade upstream url instead of commit Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * fix build error when OQS_ENABLE_LIBJADE_KEM_ALG=OFF Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * initialize LIBJADE_RANDOMBYTES when OQS_LIBJADE_BUILD=OFF Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * remove redundant comment Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * fix comment typo Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * make string explicit when comparing with variable in cmake Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * add libjade kyber licensing to README.md Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * remove reference to oldpqclean_kyber* code from libjade if branchin kem_kyber_*.c Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Update CMakeLists.txt Co-authored-by: Spencer Wilson <spencer.wilson@uwaterloo.ca> Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * track jasminc version in copy_from_libjade.yml; check jasminc version in copy_from_upstream.py Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * add OQS_LIBJADE_BUILD to build flags output Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * remove link from CONFIGURE.md Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Update libjade to dual license Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Patch gcc version for MacOS CI runs Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Fix doc generation Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * Fix libjade docs Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * fix license info in README.md Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> * update libjade_randombytes spdx-license Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> --------- Signed-off-by: Pravek Sharma <sharmapravek@gmail.com> Co-authored-by: Spencer Wilson <spencer.wilson@uwaterloo.ca>
8.2 KiB
8.2 KiB
Kyber
- Algorithm type: Key encapsulation mechanism.
- Main cryptographic assumption: Module LWE+R with base ring Z[x]/(3329, x^256+1).
- Principal submitters: Peter Schwabe.
- Auxiliary submitters: Roberto Avanzi, Joppe Bos, Léo Ducas, Eike Kiltz, Tancrède Lepoint, Vadim Lyubashevsky, John M. Schanck, Gregor Seiler, Damien Stehlé.
- Authors' website: https://pq-crystals.org/
- Specification version: NIST Round 3 submission.
- Primary Source:
- Source:
441c0519a0with copy_from_upstream patches - Implementation license (SPDX-Identifier): CC0-1.0 or Apache-2.0
- Source:
- Optimized Implementation sources:
441c0519a0with copy_from_upstream patches- oldpqclean-aarch64:
- Source:
8e220a8730with copy_from_upstream patches - Implementation license (SPDX-Identifier): CC0-1.0 and (CC0-1.0 or Apache-2.0) and (CC0-1.0 or MIT) and MIT
- Source:
- oldpqclean-aarch64:
- Formally-verified Implementation sources:
- libjade:
- Source: https://github.com/formosa-crypto/libjade/tree/release/2023.05-2 with copy_from_upstream patches
- Implementation license (SPDX-Identifier): CC0-1.0 OR Apache-2.0
- libjade:
Parameter set summary
| Parameter set | Parameter set alias | Security model | Claimed NIST Level | Public key size (bytes) | Secret key size (bytes) | Ciphertext size (bytes) | Shared secret size (bytes) |
|---|---|---|---|---|---|---|---|
| Kyber512 | NA | IND-CCA2 | 1 | 800 | 1632 | 768 | 32 |
| Kyber768 | NA | IND-CCA2 | 3 | 1184 | 2400 | 1088 | 32 |
| Kyber1024 | NA | IND-CCA2 | 5 | 1568 | 3168 | 1568 | 32 |
Kyber512 implementation characteristics
| Implementation source | Identifier in upstream | Supported architecture(s) | Supported operating system(s) | CPU extension(s) used | No branching-on-secrets claimed? | No branching-on-secrets checked by valgrind? | Large stack usage?‡ |
|---|---|---|---|---|---|---|---|
| Primary Source | ref | All | All | None | True | True | False |
| Primary Source | avx2 | x86_64 | Linux,Darwin | AVX2,BMI2,POPCNT | True | True | False |
| oldpqclean-aarch64 | aarch64 | ARM64_V8 | Linux,Darwin | None | True | False | False |
| libjade | ref | x86_64 | Linux,Darwin | None | True | False | False |
| libjade | avx2 | x86_64 | Linux,Darwin | AVX2,BMI2,POPCNT | True | False | False |
Are implementations chosen based on runtime CPU feature detection? Yes.
‡For an explanation of what this denotes, consult the Explanation of Terms section at the end of this file.
Kyber768 implementation characteristics
| Implementation source | Identifier in upstream | Supported architecture(s) | Supported operating system(s) | CPU extension(s) used | No branching-on-secrets claimed? | No branching-on-secrets checked by valgrind? | Large stack usage? |
|---|---|---|---|---|---|---|---|
| Primary Source | ref | All | All | None | True | True | False |
| Primary Source | avx2 | x86_64 | Linux,Darwin | AVX2,BMI2,POPCNT | True | True | False |
| oldpqclean-aarch64 | aarch64 | ARM64_V8 | Linux,Darwin | None | True | False | False |
| libjade | ref | x86_64 | Linux,Darwin | None | True | False | False |
| libjade | avx2 | x86_64 | Linux,Darwin | AVX2,BMI2,POPCNT | True | False | False |
Are implementations chosen based on runtime CPU feature detection? Yes.
Kyber1024 implementation characteristics
| Implementation source | Identifier in upstream | Supported architecture(s) | Supported operating system(s) | CPU extension(s) used | No branching-on-secrets claimed? | No branching-on-secrets checked by valgrind? | Large stack usage? |
|---|---|---|---|---|---|---|---|
| Primary Source | ref | All | All | None | True | True | False |
| Primary Source | avx2 | x86_64 | Linux,Darwin | AVX2,BMI2,POPCNT | True | True | False |
| oldpqclean-aarch64 | aarch64 | ARM64_V8 | Linux,Darwin | None | True | False | False |
Are implementations chosen based on runtime CPU feature detection? Yes.
Explanation of Terms
- Large Stack Usage: Implementations identified as having such may cause failures when running in threads or in constrained environments.