|
1 | 1 | # CRYSTALS-Dilithium |
2 | 2 |
|
3 | | -- **Algorithm type**: signature |
| 3 | +- **Algorithm type**: Digital signature scheme. |
4 | 4 | - **Main cryptographic assumption**: hardness of lattice problems over module lattices. |
5 | | -- **Scheme authors**: Vadim Lyubashevsky, Leo Ducas, Eike Kiltz, Tancrede Lepoint, Peter Schwabe, Gregor Seiler, Damien Stehle |
| 5 | +- **Principal submitters**: Vadim Lyubashevsky. |
| 6 | +- **Auxiliary submitters**: Shi Bai, Léo Ducas, Eike Kiltz, Tancrède Lepoint, Peter Schwabe, Gregor Seiler, Damien Stehlé. |
6 | 7 | - **Authors' website**: https://pq-crystals.org/dilithium/ |
7 | | -- **Version**: 3.1 |
8 | | - |
9 | | -## Implementation |
10 | | - |
11 | | -- **Source of implementation**: https://github.com/pq-crystals/dilithium |
12 | | -- **Implementation version**: https://github.com/pq-crystals/dilithium.git, master, 9dddb2a0537734e749ec2c8d4f952cb90cd9e67b |
13 | | -- **License**: public domain |
14 | | -- **Constant-time**: Yes |
15 | | -- **Optimizations**: Portable C with AES, AVX2, POPCNT, SSE2, SSSE3 instructions (if available at run-time) |
16 | | - |
17 | | -## Parameter sets |
18 | | - |
19 | | -| Parameter set | Security model | Claimed NIST security level | Public key size (bytes) | Secret key size (bytes) | Signature size (bytes) | |
20 | | -| -------------- | -------------- | --------------------------- | ----------------------- | ----------------------- | ---------------------- | |
21 | | -| Dilithium2 | EUF-CMA | 2 | 1312 | 2528 | 2420 | |
22 | | -| Dilithium3 | EUF-CMA | 3 | 1952 | 4000 | 3293 | |
23 | | -| Dilithium5 | EUF-CMA | 5 | 2592 | 4864 | 4595 | |
24 | | -| Dilithium2-AES | EUF-CMA | 2 | 1312 | 2528 | 2420 | |
25 | | -| Dilithium3-AES | EUF-CMA | 3 | 1952 | 4000 | 3293 | |
26 | | -| Dilithium5-AES | EUF-CMA | 5 | 2592 | 4864 | 4595 | |
| 8 | +- **Specification version**: 3.1. |
| 9 | +- **Implementation source**: https://github.com/pq-crystals/dilithium/commit/d9c885d3f2e11c05529eeeb7d70d808c972b8409 |
| 10 | +- **Implementation license (SPDX-Identifier)**: CC0-1.0. |
| 11 | + |
| 12 | +## Parameter set summary |
| 13 | + |
| 14 | +| Parameter set | Security model | Claimed NIST Level | Public key size (bytes) | Secret key size (bytes) | Signature size (bytes) | |
| 15 | +|:---------------:|:-----------------|---------------------:|--------------------------:|--------------------------:|-------------------------:| |
| 16 | +| Dilithium2 | EUF-CMA | 2 | 1312 | 2528 | 2420 | |
| 17 | +| Dilithium3 | EUF-CMA | 3 | 1952 | 4000 | 3293 | |
| 18 | +| Dilithium5 | EUF-CMA | 5 | 2592 | 4864 | 4595 | |
| 19 | +| Dilithium2-AES | EUF-CMA | 2 | 1312 | 2528 | 2420 | |
| 20 | +| Dilithium3-AES | EUF-CMA | 3 | 1952 | 4000 | 3293 | |
| 21 | +| Dilithium5-AES | EUF-CMA | 5 | 2592 | 4864 | 4595 | |
| 22 | + |
| 23 | +## Dilithium2 implementation characteristics |
| 24 | + |
| 25 | +| 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? | |
| 26 | +|:------------------------:|:----------------------------|:--------------------------------|:------------------------|:-----------------------------------|:-----------------------------------------------|:---------------------| |
| 27 | +| ref | All | All | None | True | True | False | |
| 28 | +| avx2 | x86\_64 | Linux,Darwin | AVX2,POPCNT,SSE2,SSSE3 | True | True | False | |
| 29 | + |
| 30 | +Are implementations chosen based on runtime CPU feature detection? **Yes**. |
| 31 | + |
| 32 | +## Dilithium3 implementation characteristics |
| 33 | + |
| 34 | +| 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? | |
| 35 | +|:------------------------:|:----------------------------|:--------------------------------|:------------------------|:-----------------------------------|:-----------------------------------------------|:---------------------| |
| 36 | +| ref | All | All | None | True | True | False | |
| 37 | +| avx2 | x86\_64 | Linux,Darwin | AVX2,POPCNT,SSE2,SSSE3 | True | True | False | |
| 38 | + |
| 39 | +Are implementations chosen based on runtime CPU feature detection? **Yes**. |
| 40 | + |
| 41 | +## Dilithium5 implementation characteristics |
| 42 | + |
| 43 | +| 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? | |
| 44 | +|:------------------------:|:----------------------------|:--------------------------------|:------------------------|:-----------------------------------|:-----------------------------------------------|:---------------------| |
| 45 | +| ref | All | All | None | True | True | False | |
| 46 | +| avx2 | x86\_64 | Linux,Darwin | AVX2,POPCNT,SSE2,SSSE3 | True | True | False | |
| 47 | + |
| 48 | +Are implementations chosen based on runtime CPU feature detection? **Yes**. |
| 49 | + |
| 50 | +## Dilithium2-AES implementation characteristics |
| 51 | + |
| 52 | +| 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? | |
| 53 | +|:------------------------:|:----------------------------|:--------------------------------|:---------------------------|:-----------------------------------|:-----------------------------------------------|:---------------------| |
| 54 | +| ref | All | All | None | True | True | False | |
| 55 | +| avx2 | x86\_64 | Linux,Darwin | AES,AVX2,POPCNT,SSE2,SSSE3 | True | True | False | |
| 56 | + |
| 57 | +Are implementations chosen based on runtime CPU feature detection? **Yes**. |
| 58 | + |
| 59 | +## Dilithium3-AES implementation characteristics |
| 60 | + |
| 61 | +| 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? | |
| 62 | +|:------------------------:|:----------------------------|:--------------------------------|:---------------------------|:-----------------------------------|:-----------------------------------------------|:---------------------| |
| 63 | +| ref | All | All | None | True | True | False | |
| 64 | +| avx2 | x86\_64 | Linux,Darwin | AES,AVX2,POPCNT,SSE2,SSSE3 | True | True | False | |
| 65 | + |
| 66 | +Are implementations chosen based on runtime CPU feature detection? **Yes**. |
| 67 | + |
| 68 | +## Dilithium5-AES implementation characteristics |
| 69 | + |
| 70 | +| 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? | |
| 71 | +|:------------------------:|:----------------------------|:--------------------------------|:---------------------------|:-----------------------------------|:-----------------------------------------------|:---------------------| |
| 72 | +| ref | All | All | None | True | True | False | |
| 73 | +| avx2 | x86\_64 | Linux,Darwin | AES,AVX2,POPCNT,SSE2,SSSE3 | True | True | False | |
| 74 | + |
| 75 | +Are implementations chosen based on runtime CPU feature detection? **Yes**. |
0 commit comments