mirror of
https://github.com/open-quantum-safe/liboqs.git
synced 2025-12-15 00:03:27 -05:00
* Updated sig templates to add support for arch specific upstreams. Currently behaves as expected, but still need to test (and integrate) dilithium * Fixed a couple of build errors, and started work on dilithium integration from pqclean. Currently failing kat tests * Updated templating for both sig and kem to make them look a little better * Renamed dilithium folders so they are consistent across pqclean and pqcrystals so that copy_from_upstream script will function correctly * Added arm optimized version of dilithium[2|3|5] * Updating other signature schemes CMakeLists.txt to be the output of the updated templates * Arm optimized implementation of dilithium is added, with randomized signing patched into it. copy_from_upstream script is working properly. Still need to update the update_docs scripts before ready to merge * Finished updating docs scripts and yml files. Builds pass, so should be ready for a merge * Fixed template issue with multiple compile flags * Updated doc generation scripts so that all '_' in scheme names are replaced with '\_'
278 lines
7.4 KiB
YAML
278 lines
7.4 KiB
YAML
name: Kyber
|
|
type: kem
|
|
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é
|
|
crypto-assumption: Module LWE+R with base ring Z[x]/(3329, x^256+1)
|
|
website: https://pq-crystals.org/
|
|
nist-round: 3
|
|
spec-version: NIST Round 3 submission
|
|
primary-upstream:
|
|
source: https://github.com/pq-crystals/kyber/commit/faf5c3fe33e0b61c7c8a7888dd862bf5def17ad2
|
|
with copy_from_upstream patches
|
|
spdx-license-identifier: CC0-1.0
|
|
optimized-upstreams:
|
|
pqclean-aarch64:
|
|
source: https://github.com/PQClean/PQClean/commit/4c9e5a3aa715cc8d1d0e377e4e6e682ebd7602d6
|
|
with copy_from_upstream patches
|
|
spdx-license-identifier: CC0-1.0
|
|
parameter-sets:
|
|
- name: Kyber512
|
|
claimed-nist-level: 1
|
|
claimed-security: IND-CCA2
|
|
length-public-key: 800
|
|
length-ciphertext: 768
|
|
length-secret-key: 1632
|
|
length-shared-secret: 32
|
|
implementations-switch-on-runtime-cpu-features: true
|
|
implementations:
|
|
- upstream: primary-upstream
|
|
upstream-id: ref
|
|
supported-platforms: all
|
|
common-crypto:
|
|
- SHA3: liboqs
|
|
no-secret-dependent-branching-claimed: true
|
|
no-secret-dependent-branching-checked-by-valgrind: true
|
|
large-stack-usage: false
|
|
- upstream: primary-upstream
|
|
upstream-id: avx2
|
|
supported-platforms:
|
|
- architecture: x86_64
|
|
operating_systems:
|
|
- Linux
|
|
- Darwin
|
|
required_flags:
|
|
- avx2
|
|
- bmi2
|
|
- popcnt
|
|
common-crypto:
|
|
- SHA3: liboqs
|
|
no-secret-dependent-branching-claimed: true
|
|
no-secret-dependent-branching-checked-by-valgrind: true
|
|
large-stack-usage: false
|
|
- upstream: pqclean-aarch64
|
|
upstream-id: aarch64
|
|
supported-platforms:
|
|
- architecture: ARM64_V8
|
|
operating_systems:
|
|
- Linux
|
|
- Darwin
|
|
common-crypto:
|
|
- SHA3: liboqs
|
|
no-secret-dependent-branching-claimed: true
|
|
no-secret-dependent-branching-checked-by-valgrind: false
|
|
large-stack-usage: false
|
|
- name: Kyber512-90s
|
|
claimed-nist-level: 1
|
|
claimed-security: IND-CCA2
|
|
length-public-key: 800
|
|
length-ciphertext: 768
|
|
length-secret-key: 1632
|
|
length-shared-secret: 32
|
|
implementations-switch-on-runtime-cpu-features: true
|
|
implementations:
|
|
- upstream: primary-upstream
|
|
upstream-id: ref
|
|
supported-platforms: all
|
|
common-crypto:
|
|
- AES: pqcrystals-kyber_common_ref
|
|
- SHA3: liboqs
|
|
no-secret-dependent-branching-claimed: true
|
|
no-secret-dependent-branching-checked-by-valgrind: true
|
|
large-stack-usage: false
|
|
- upstream: primary-upstream
|
|
upstream-id: avx2
|
|
supported-platforms:
|
|
- architecture: x86_64
|
|
operating_systems:
|
|
- Linux
|
|
- Darwin
|
|
required_flags:
|
|
- aes
|
|
- avx2
|
|
- bmi2
|
|
- popcnt
|
|
- sse2
|
|
- ssse3
|
|
common-crypto:
|
|
- AES: pqcrystals-kyber_common_aes
|
|
- SHA3: liboqs
|
|
no-secret-dependent-branching-claimed: true
|
|
no-secret-dependent-branching-checked-by-valgrind: true
|
|
large-stack-usage: false
|
|
- name: Kyber768
|
|
claimed-nist-level: 3
|
|
claimed-security: IND-CCA2
|
|
length-public-key: 1184
|
|
length-ciphertext: 1088
|
|
length-secret-key: 2400
|
|
length-shared-secret: 32
|
|
implementations-switch-on-runtime-cpu-features: true
|
|
implementations:
|
|
- upstream: primary-upstream
|
|
upstream-id: ref
|
|
supported-platforms: all
|
|
common-crypto:
|
|
- SHA3: liboqs
|
|
no-secret-dependent-branching-claimed: true
|
|
no-secret-dependent-branching-checked-by-valgrind: true
|
|
large-stack-usage: false
|
|
- upstream: primary-upstream
|
|
upstream-id: avx2
|
|
supported-platforms:
|
|
- architecture: x86_64
|
|
operating_systems:
|
|
- Linux
|
|
- Darwin
|
|
required_flags:
|
|
- avx2
|
|
- bmi2
|
|
- popcnt
|
|
common-crypto:
|
|
- SHA3: liboqs
|
|
no-secret-dependent-branching-claimed: true
|
|
no-secret-dependent-branching-checked-by-valgrind: true
|
|
large-stack-usage: false
|
|
- upstream: pqclean-aarch64
|
|
upstream-id: aarch64
|
|
supported-platforms:
|
|
- architecture: ARM64_V8
|
|
operating_systems:
|
|
- Linux
|
|
- Darwin
|
|
common-crypto:
|
|
- SHA3: liboqs
|
|
no-secret-dependent-branching-claimed: true
|
|
no-secret-dependent-branching-checked-by-valgrind: false
|
|
large-stack-usage: false
|
|
- name: Kyber768-90s
|
|
claimed-nist-level: 3
|
|
claimed-security: IND-CCA2
|
|
length-public-key: 1184
|
|
length-ciphertext: 1088
|
|
length-secret-key: 2400
|
|
length-shared-secret: 32
|
|
implementations-switch-on-runtime-cpu-features: true
|
|
implementations:
|
|
- upstream: primary-upstream
|
|
upstream-id: ref
|
|
supported-platforms: all
|
|
common-crypto:
|
|
- AES: pqcrystals-kyber_common_ref
|
|
- SHA3: liboqs
|
|
no-secret-dependent-branching-claimed: true
|
|
no-secret-dependent-branching-checked-by-valgrind: true
|
|
large-stack-usage: false
|
|
- upstream: primary-upstream
|
|
upstream-id: avx2
|
|
supported-platforms:
|
|
- architecture: x86_64
|
|
operating_systems:
|
|
- Linux
|
|
- Darwin
|
|
required_flags:
|
|
- aes
|
|
- avx2
|
|
- bmi2
|
|
- popcnt
|
|
- sse2
|
|
- ssse3
|
|
common-crypto:
|
|
- AES: pqcrystals-kyber_common_aes
|
|
- SHA3: liboqs
|
|
no-secret-dependent-branching-claimed: true
|
|
no-secret-dependent-branching-checked-by-valgrind: true
|
|
large-stack-usage: false
|
|
- name: Kyber1024
|
|
claimed-nist-level: 5
|
|
claimed-security: IND-CCA2
|
|
length-public-key: 1568
|
|
length-ciphertext: 1568
|
|
length-secret-key: 3168
|
|
length-shared-secret: 32
|
|
implementations-switch-on-runtime-cpu-features: true
|
|
implementations:
|
|
- upstream: primary-upstream
|
|
upstream-id: ref
|
|
supported-platforms: all
|
|
common-crypto:
|
|
- SHA3: liboqs
|
|
no-secret-dependent-branching-claimed: true
|
|
no-secret-dependent-branching-checked-by-valgrind: true
|
|
large-stack-usage: false
|
|
- upstream: primary-upstream
|
|
upstream-id: avx2
|
|
supported-platforms:
|
|
- architecture: x86_64
|
|
operating_systems:
|
|
- Linux
|
|
- Darwin
|
|
required_flags:
|
|
- avx2
|
|
- bmi2
|
|
- popcnt
|
|
common-crypto:
|
|
- SHA3: liboqs
|
|
no-secret-dependent-branching-claimed: true
|
|
no-secret-dependent-branching-checked-by-valgrind: true
|
|
large-stack-usage: false
|
|
- upstream: pqclean-aarch64
|
|
upstream-id: aarch64
|
|
supported-platforms:
|
|
- architecture: ARM64_V8
|
|
operating_systems:
|
|
- Linux
|
|
- Darwin
|
|
common-crypto:
|
|
- SHA3: liboqs
|
|
no-secret-dependent-branching-claimed: true
|
|
no-secret-dependent-branching-checked-by-valgrind: false
|
|
large-stack-usage: false
|
|
- name: Kyber1024-90s
|
|
claimed-nist-level: 5
|
|
claimed-security: IND-CCA2
|
|
length-public-key: 1568
|
|
length-ciphertext: 1568
|
|
length-secret-key: 3168
|
|
length-shared-secret: 32
|
|
implementations-switch-on-runtime-cpu-features: true
|
|
implementations:
|
|
- upstream: primary-upstream
|
|
upstream-id: ref
|
|
supported-platforms: all
|
|
common-crypto:
|
|
- AES: pqcrystals-kyber_common_ref
|
|
- SHA3: liboqs
|
|
no-secret-dependent-branching-claimed: true
|
|
no-secret-dependent-branching-checked-by-valgrind: true
|
|
large-stack-usage: false
|
|
- upstream: primary-upstream
|
|
upstream-id: avx2
|
|
supported-platforms:
|
|
- architecture: x86_64
|
|
operating_systems:
|
|
- Linux
|
|
- Darwin
|
|
required_flags:
|
|
- aes
|
|
- avx2
|
|
- bmi2
|
|
- popcnt
|
|
- sse2
|
|
- ssse3
|
|
common-crypto:
|
|
- AES: pqcrystals-kyber_common_aes
|
|
- SHA3: liboqs
|
|
no-secret-dependent-branching-claimed: true
|
|
no-secret-dependent-branching-checked-by-valgrind: true
|
|
large-stack-usage: false
|