You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix presentation issues in tables, titles (#3282) (#3283)
* Fix presentation issues in tables, titles (#3282)
* Change layout for h4 in PDF (\paragraph)
* Fix column widths in in cryptographic appendix
* Tweak column widths in in cryptographic appendix
Interestingly, the column width is proportional to the number of dashed
* Fix presentation of the argon2id and scrypt parameters
* Use multiple rows for argon2id and scrypt parameters
* Port presentation fixed to translations
* Update PDFs
---------
Co-authored-by: Gabriel Corona <corona.gabriel@gmail.com>
Copy file name to clipboardExpand all lines: 5.0/en/0x92-Appendix-C_Cryptography.md
+38-31Lines changed: 38 additions & 31 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -49,7 +49,7 @@ This section provides additional information
49
49
for V11.5 Random Values.
50
50
51
51
| Name | Version/Reference | Notes | Status |
52
-
|:-:|:-:|:-:|:-:|
52
+
|:---|:----|:----|:-:|
53
53
|`/dev/random`| Linux 4.8+ [(Oct 2016)](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=818e607b57c94ade9824dad63a96c2ea6b21baf3), also found in iOS, Android, and other Linux-based POSIX operating systems. Based on [RFC7539](https://datatracker.ietf.org/doc/html/rfc7539)| Utilizing ChaCha20 stream. Found in iOS [`SecRandomCopyBytes`](https://developer.apple.com/documentation/security/secrandomcopybytes(_:_:_:)?language=objc) and Android [`Secure Random`](https://developer.android.com/reference/java/security/SecureRandom) with the correct settings provided to each. | A |
54
54
|`/dev/urandom`| Linux kernel's special file for providing random data | Provides high-quality, entropy sources from hardware randomness | A |
55
55
|`AES-CTR-DRBG`|[NIST SP800-90A](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-90Ar1.pdf)| As used in common implementations, such as [Windows CNG API `BCryptGenRandom`](https://learn.microsoft.com/en-us/windows/win32/api/bcrypt/nf-bcrypt-bcryptgenrandom) set by [`BCRYPT_RNG_ALGORITHM`](https://learn.microsoft.com/en-us/windows/win32/seccng/cng-algorithm-identifiers). | A |
@@ -67,7 +67,7 @@ for V11.3 Encryption Algorithms.
67
67
Approved cipher algorithms are listed in order of preference.
68
68
69
69
| Symmetric Key Algorithms | Reference | Status |
70
-
|--|--|--|
70
+
| ------ | ------ |:-:|
71
71
| AES-256 |[FIPS 197](https://csrc.nist.gov/pubs/fips/197/final)| A |
72
72
| Salsa20 |[Salsa 20 specification](https://cr.yp.to/snuffle/spec.pdf)| A |
73
73
| XChaCha20 |[XChaCha20 Draft](https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-xchacha-03)| A |
@@ -90,7 +90,7 @@ Block ciphers, such as AES, can be used with different modes of operations. Many
| GCM | Yes |[NIST SP 800-38D](https://csrc.nist.gov/pubs/sp/800/38/d/final)| A ||
95
95
| CCM | Yes |[NIST SP 800-38C](https://csrc.nist.gov/pubs/sp/800/38/c/upd1/final)| A ||
96
96
| CBC | No |[NIST SP 800-38A](https://csrc.nist.gov/pubs/sp/800/38/a/final)| L ||
@@ -117,7 +117,7 @@ However, serious consideration should be given to understanding the nature (e.g.
117
117
Specifically, AES-256 MUST be used for key wrapping, following [NIST SP 800-38F](https://csrc.nist.gov/pubs/sp/800/38/f/final) and considering forward-looking provisions against the quantum threat. Cipher modes using AES are the following, in order of preference:
118
118
119
119
| Key Wrapping | Reference | Status |
120
-
|--|--|--|
120
+
|--|--|:-:|
121
121
| KW |[NIST SP 800-38F](https://csrc.nist.gov/pubs/sp/800/38/f/final)| A |
122
122
| KWP |[NIST SP 800-38F](https://csrc.nist.gov/pubs/sp/800/38/f/final)| A |
123
123
@@ -132,7 +132,7 @@ The application should preferably use an approved AEAD scheme. It might alternat
132
132
MAC-then-encrypt is still allowed for compatibility with legacy applications. It is used in TLS v1.2 with old ciphers suites.
133
133
134
134
| AEAD mechanism | Reference | Status |
135
-
|--------------------------|---------|-----|
135
+
|---|---------|:-:|
136
136
|AES-GCM |[SP 800-38D](https://csrc.nist.gov/pubs/sp/800/38/d/final)| A |
137
137
|AES-CCM |[SP 800-38C](https://csrc.nist.gov/pubs/sp/800/38/c/upd1/final)| A |
138
138
|ChaCha-Poly1305 |[RFC 7539](https://datatracker.ietf.org/doc/html/rfc7539)| A |
@@ -156,7 +156,7 @@ The following table lists hash functions approved in general cryptographic use c
156
156
* Hash function with less than 254 bit of output have insufficient collision resistance and must not be used for digital signature or other applications requiring collision resistance. For other usages, they might be used for compatibility and verification ONLY with legacy systems but must not be used in new designs.
157
157
158
158
| Hash function | Reference | Status | Restrictions |
| SHA3-512 |[FIPS 202](https://csrc.nist.gov/pubs/fips/202/final)| A ||
161
161
| SHA-512 |[FIPS 180-4](https://csrc.nist.gov/pubs/fips/180-4/upd1/final)| A ||
162
162
| SHA3-384 |[FIPS 202](https://csrc.nist.gov/pubs/fips/202/final)| A ||
@@ -180,10 +180,14 @@ The following table lists hash functions approved in general cryptographic use c
180
180
181
181
For secure password hashing, dedicated hash functions must be used. These slow-hashing algorithms mitigate brute-force and dictionary attacks by increasing the computational difficulty of password cracking.
182
182
183
-
| KDF | Reference | Required Parameters | Status |
| argon2id |[RFC 9106](https://www.rfc-editor.org/info/rfc9106)| t = 1: m ≥ 47104 (46 MiB), p = 1<br>t = 2: m ≥ 19456 (19 MiB), p = 1<br>t ≥ 3: m ≥ 12288 (12 MiB), p = 1 | A |
186
-
| scrypt |[RFC 7914](https://www.rfc-editor.org/info/rfc7914)| p = 1: N ≥ 2^17 (128 MiB), r = 8<br>p = 2: N ≥ 2^16 (64 MiB), r = 8<br>p ≥ 3: N ≥ 2^15 (32 MiB), r = 8 | A |
183
+
| KDF | Reference | Required Parameters | Status |
184
+
| ---------- | --------- | ------------ |:-:|
185
+
| argon2id |[RFC 9106](https://www.rfc-editor.org/info/rfc9106)| t = 1: m ≥ 47104 (46 MiB), p = 1 | A |
186
+
||| t = 2: m ≥ 19456 (19 MiB), p = 1 | A |
187
+
||| t ≥ 3: m ≥ 12288 (12 MiB), p = 1 | A |
188
+
| scrypt |[RFC 7914](https://www.rfc-editor.org/info/rfc7914)| p = 1: N ≥ 2^17 (128 MiB), r = 8 | A |
| argon2id |[RFC 9106](https://www.rfc-editor.org/info/rfc9106)| t = 1: m ≥ 47104 (46 MiB), p = 1<br>t = 2: m ≥ 19456 (19 MiB), p = 1<br>t ≥ 3: m ≥ 12288 (12 MiB), p = 1 | A |
210
-
| scrypt |[RFC 7914](https://www.rfc-editor.org/info/rfc7914)| p = 1: N ≥ 2^17 (128 MiB), r = 8<br>p = 2: N ≥ 2^16 (64 MiB), r = 8<br>p ≥ 3: N ≥ 2^15 (32 MiB), r = 8 | A |
211
+
| KDF | Reference | Required Parameters | Status |
212
+
| ---------- | --------- | ------------ |:-:|
213
+
| argon2id |[RFC 9106](https://www.rfc-editor.org/info/rfc9106)| t = 1: m ≥ 47104 (46 MiB), p = 1 | A |
214
+
||| t = 2: m ≥ 19456 (19 MiB), p = 1 | A |
215
+
| scrypt |[RFC 7914](https://www.rfc-editor.org/info/rfc7914)| p = 1: N ≥ 2^17 (128 MiB), r = 8 | A |
@@ -222,7 +229,7 @@ for V11.6 Public Key Cryptography.
222
229
A security strength of 112 bits or above MUST be ensured for all Key Exchange schemes, and their implementation MUST follow the parameter choices in the following table.
| Finite Field Diffie-Hellman (FFDH) | L >= 3072 & N >= 256 | Yes | A |
227
234
| Elliptic Curve Diffie-Hellman (ECDH) | f >= 256-383 | Yes | A |
228
235
| Encrypted key transport with RSA-PKCS#1 v1.5 || No | D |
@@ -240,7 +247,7 @@ Any new implementation MUST NOT use any scheme that is NOT compliant with [NIST
240
247
The following groups are approved for implementations of Diffie-Hellman key exchange. Security strengths are documented in [NIST SP 800-56A](https://csrc.nist.gov/pubs/sp/800/56/a/r3/final), Appendix D, and [NIST SP 800-57 Part 1 Rev.5](https://csrc.nist.gov/pubs/sp/800/57/pt1/r5/final).
241
248
242
249
| Group | Status |
243
-
|------------------|--------|
250
+
|------------------|:------:|
244
251
| P-224, secp224r1 | A |
245
252
| P-256, secp256r1 | A |
246
253
| P-384, secp384r1 | A |
@@ -270,26 +277,26 @@ The following groups are approved for implementations of Diffie-Hellman key exch
270
277
271
278
Message Authentication Codes (MACs) are cryptographic constructs used to verify the integrity and authenticity of a message. A MAC takes a message and a secret key as inputs and produces a fixed-size tag (the MAC value). MACs are widely used in secure communication protocols (e.g., TLS/SSL) to ensure that messages exchanged between parties are authentic and intact.
272
279
273
-
| MAC Algorithm | Reference | Status | Restrictions |
0 commit comments