[Python-checkins] bpo-42982: Improve the text on suggested number of iterations of PBKDF2 (GH-24276)

gpshead webhook-mailer at python.org
Thu Jan 27 03:39:23 EST 2022


https://github.com/python/cpython/commit/897ce9018775bcd679fb49aa17258f8f6e818e23
commit: 897ce9018775bcd679fb49aa17258f8f6e818e23
branch: main
author: Illia Volochii <illia.volochii at gmail.com>
committer: gpshead <greg at krypto.org>
date: 2022-01-27T00:39:09-08:00
summary:

bpo-42982: Improve the text on suggested number of iterations of PBKDF2 (GH-24276)

Less specific number wording (as there is no one right number - the old 100k is too big for some applications and woefully small for others). We now link to NIST SP 800-132 to tell people what to read in there on how to decide for their application.

Co-authored-by: Gregory P. Smith <greg at krypto.org> [Google]

files:
M Doc/library/hashlib.rst

diff --git a/Doc/library/hashlib.rst b/Doc/library/hashlib.rst
index 53320d9cb0d6c..269e8a834d58d 100644
--- a/Doc/library/hashlib.rst
+++ b/Doc/library/hashlib.rst
@@ -249,8 +249,9 @@ include a `salt <https://en.wikipedia.org/wiki/Salt_%28cryptography%29>`_.
    a proper source, e.g. :func:`os.urandom`.
 
    The number of *iterations* should be chosen based on the hash algorithm and
-   computing power. As of 2013, at least 100,000 iterations of SHA-256 are
-   suggested.
+   computing power. As of 2022, hundreds of thousands of iterations of SHA-256
+   are suggested. For rationale as to why and how to choose what is best for
+   your application, read *Appendix A.2.2* of NIST-SP-800-132_.
 
    *dklen* is the length of the derived key. If *dklen* is ``None`` then the
    digest size of the hash algorithm *hash_name* is used, e.g. 64 for SHA-512.
@@ -731,6 +732,7 @@ Domain Dedication 1.0 Universal:
 .. _SHA-3: https://en.wikipedia.org/wiki/NIST_hash_function_competition
 .. _ChaCha: https://cr.yp.to/chacha.html
 .. _pyblake2: https://pythonhosted.org/pyblake2/
+.. _NIST-SP-800-132: https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf
 
 
 
@@ -754,3 +756,6 @@ Domain Dedication 1.0 Universal:
 
    https://www.ietf.org/rfc/rfc8018.txt
       PKCS #5: Password-Based Cryptography Specification Version 2.1
+
+   https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf
+      NIST Recommendation for Password-Based Key Derivation.



More information about the Python-checkins mailing list