|
4 | 4 | - **Main cryptographic assumption**: learning with errors (LWE). |
5 | 5 | - **Principal submitters**: Michael Naehrig, Erdem Alkim, Joppe Bos, Léo Ducas, Karen Easterbrook, Brian LaMacchia, Patrick Longa, Ilya Mironov, Valeria Nikolaenko, Christopher Peikert, Ananth Raghunathan, Douglas Stebila. |
6 | 6 | - **Authors' website**: https://frodokem.org/ |
7 | | -- **Specification version**: NIST Round 3 submission. |
| 7 | +- **Specification version**: ISO Preliminary Standardization Proposal - 2023/03/14 |
8 | 8 | - **Primary Source**<a name="primary-source"></a>: |
9 | | - - **Source**: https://github.com/microsoft/PQCrypto-LWEKE/commit/b6609d30a9982318d7f2937aa3c7b92147b917a2 |
| 9 | + - **Source**: https://github.com/microsoft/PQCrypto-LWEKE/commit/a2f9dec8917ccc3464b3378d46b140fa7353320d |
10 | 10 | - **Implementation license (SPDX-Identifier)**: MIT |
11 | 11 |
|
12 | 12 |
|
13 | 13 | ## Parameter set summary |
14 | 14 |
|
15 | | -| 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) | Keypair seed size (bytes) | Encapsulation seed size (bytes) | |
16 | | -|:-------------------:|:----------------------|:-----------------|---------------------:|--------------------------:|--------------------------:|--------------------------:|-----------------------------:|:----------------------------|:----------------------------------| |
17 | | -| FrodoKEM-640-AES | NA | IND-CCA2 | 1 | 9616 | 19888 | 9720 | 16 | NA | NA | |
18 | | -| FrodoKEM-640-SHAKE | NA | IND-CCA2 | 1 | 9616 | 19888 | 9720 | 16 | NA | NA | |
19 | | -| FrodoKEM-976-AES | NA | IND-CCA2 | 3 | 15632 | 31296 | 15744 | 24 | NA | NA | |
20 | | -| FrodoKEM-976-SHAKE | NA | IND-CCA2 | 3 | 15632 | 31296 | 15744 | 24 | NA | NA | |
21 | | -| FrodoKEM-1344-AES | NA | IND-CCA2 | 5 | 21520 | 43088 | 21632 | 32 | NA | NA | |
22 | | -| FrodoKEM-1344-SHAKE | NA | IND-CCA2 | 5 | 21520 | 43088 | 21632 | 32 | NA | NA | |
| 15 | +| 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) | Keypair seed size (bytes) | Encapsulation seed size (bytes) | |
| 16 | +|:--------------------:|:----------------------|:-----------------|---------------------:|--------------------------:|--------------------------:|--------------------------:|-----------------------------:|:----------------------------|:----------------------------------| |
| 17 | +| FrodoKEM-640-AES | NA | IND-CCA2 | 1 | 9616 | 19888 | 9752 | 16 | NA | NA | |
| 18 | +| FrodoKEM-640-SHAKE | NA | IND-CCA2 | 1 | 9616 | 19888 | 9752 | 16 | NA | NA | |
| 19 | +| FrodoKEM-976-AES | NA | IND-CCA2 | 3 | 15632 | 31296 | 15792 | 24 | NA | NA | |
| 20 | +| FrodoKEM-976-SHAKE | NA | IND-CCA2 | 3 | 15632 | 31296 | 15792 | 24 | NA | NA | |
| 21 | +| FrodoKEM-1344-AES | NA | IND-CCA2 | 5 | 21520 | 43088 | 21696 | 32 | NA | NA | |
| 22 | +| FrodoKEM-1344-SHAKE | NA | IND-CCA2 | 5 | 21520 | 43088 | 21696 | 32 | NA | NA | |
| 23 | +| eFrodoKEM-640-AES | NA | IND-CCA2 | 1 | 9616 | 19888 | 9720 | 16 | NA | NA | |
| 24 | +| eFrodoKEM-640-SHAKE | NA | IND-CCA2 | 1 | 9616 | 19888 | 9720 | 16 | NA | NA | |
| 25 | +| eFrodoKEM-976-AES | NA | IND-CCA2 | 3 | 15632 | 31296 | 15744 | 24 | NA | NA | |
| 26 | +| eFrodoKEM-976-SHAKE | NA | IND-CCA2 | 3 | 15632 | 31296 | 15744 | 24 | NA | NA | |
| 27 | +| eFrodoKEM-1344-AES | NA | IND-CCA2 | 5 | 21520 | 43088 | 21632 | 32 | NA | NA | |
| 28 | +| eFrodoKEM-1344-SHAKE | NA | IND-CCA2 | 5 | 21520 | 43088 | 21632 | 32 | NA | NA | |
23 | 29 |
|
24 | 30 | ## FrodoKEM-640-AES implementation characteristics |
25 | 31 |
|
@@ -77,6 +83,60 @@ Are implementations chosen based on runtime CPU feature detection? **Yes**. |
77 | 83 |
|
78 | 84 | Are implementations chosen based on runtime CPU feature detection? **Yes**. |
79 | 85 |
|
| 86 | +## eFrodoKEM-640-AES implementation characteristics |
| 87 | + |
| 88 | +| 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? | |
| 89 | +|:---------------------------------:|:-------------------------|:----------------------------|:--------------------------------|:------------------------|:-----------------------------------|:-----------------------------------------------|:---------------------| |
| 90 | +| [Primary Source](#primary-source) | master | All | All | None | True | True | False | |
| 91 | +| [Primary Source](#primary-source) | master | x86\_64 | Linux,Darwin,Windows | AVX2 | True | True | False | |
| 92 | + |
| 93 | +Are implementations chosen based on runtime CPU feature detection? **Yes**. |
| 94 | + |
| 95 | +## eFrodoKEM-640-SHAKE implementation characteristics |
| 96 | + |
| 97 | +| 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? | |
| 98 | +|:---------------------------------:|:-------------------------|:----------------------------|:--------------------------------|:------------------------|:-----------------------------------|:-----------------------------------------------|:---------------------| |
| 99 | +| [Primary Source](#primary-source) | master | All | All | None | True | True | False | |
| 100 | +| [Primary Source](#primary-source) | master | x86\_64 | Linux,Darwin,Windows | AVX2 | True | True | False | |
| 101 | + |
| 102 | +Are implementations chosen based on runtime CPU feature detection? **Yes**. |
| 103 | + |
| 104 | +## eFrodoKEM-976-AES implementation characteristics |
| 105 | + |
| 106 | +| 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? | |
| 107 | +|:---------------------------------:|:-------------------------|:----------------------------|:--------------------------------|:------------------------|:-----------------------------------|:-----------------------------------------------|:---------------------| |
| 108 | +| [Primary Source](#primary-source) | master | All | All | None | True | True | False | |
| 109 | +| [Primary Source](#primary-source) | master | x86\_64 | Linux,Darwin,Windows | AVX2 | True | True | False | |
| 110 | + |
| 111 | +Are implementations chosen based on runtime CPU feature detection? **Yes**. |
| 112 | + |
| 113 | +## eFrodoKEM-976-SHAKE implementation characteristics |
| 114 | + |
| 115 | +| 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? | |
| 116 | +|:---------------------------------:|:-------------------------|:----------------------------|:--------------------------------|:------------------------|:-----------------------------------|:-----------------------------------------------|:---------------------| |
| 117 | +| [Primary Source](#primary-source) | master | All | All | None | True | True | False | |
| 118 | +| [Primary Source](#primary-source) | master | x86\_64 | Linux,Darwin,Windows | AVX2 | True | True | False | |
| 119 | + |
| 120 | +Are implementations chosen based on runtime CPU feature detection? **Yes**. |
| 121 | + |
| 122 | +## eFrodoKEM-1344-AES implementation characteristics |
| 123 | + |
| 124 | +| 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? | |
| 125 | +|:---------------------------------:|:-------------------------|:----------------------------|:--------------------------------|:------------------------|:-----------------------------------|:-----------------------------------------------|:---------------------| |
| 126 | +| [Primary Source](#primary-source) | master | All | All | None | True | True | False | |
| 127 | +| [Primary Source](#primary-source) | master | x86\_64 | Linux,Darwin,Windows | AVX2 | True | True | False | |
| 128 | + |
| 129 | +Are implementations chosen based on runtime CPU feature detection? **Yes**. |
| 130 | + |
| 131 | +## eFrodoKEM-1344-SHAKE implementation characteristics |
| 132 | + |
| 133 | +| 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? | |
| 134 | +|:---------------------------------:|:-------------------------|:----------------------------|:--------------------------------|:------------------------|:-----------------------------------|:-----------------------------------------------|:---------------------| |
| 135 | +| [Primary Source](#primary-source) | master | All | All | None | True | True | False | |
| 136 | +| [Primary Source](#primary-source) | master | x86\_64 | Linux,Darwin,Windows | AVX2 | True | True | False | |
| 137 | + |
| 138 | +Are implementations chosen based on runtime CPU feature detection? **Yes**. |
| 139 | + |
80 | 140 | ## Explanation of Terms |
81 | 141 |
|
82 | 142 | - **Large Stack Usage**: Implementations identified as having such may cause failures when running in threads or in constrained environments. |
0 commit comments