EVP_KDF-PBKDF2
名称
EVP_KDF-PBKDF2 - PBKDF2 EVP_KDF 实现
描述
通过 EVP_KDF API 支持计算 PBKDF2 基于密码的 KDF。
EVP_KDF-PBKDF2 算法实现了基于密码的密钥导出函数 PBKDF2,如 SP800-132 中所述;它使用盐和迭代次数从密码中导出密钥。
标识
"PBKDF2" 是此实现的名称;它可以与 EVP_KDF_fetch() 函数一起使用。
支持的参数
支持的参数是
- "pass" (OSSL_KDF_PARAM_PASSWORD) <八位字节串>
- "salt" (OSSL_KDF_PARAM_SALT) <八位字节串>
- "iter" (OSSL_KDF_PARAM_ITER) <无符号整数>
-
此参数的默认值为 2048。
- "properties" (OSSL_KDF_PARAM_PROPERTIES) <UTF8 字符串>
- "digest" (OSSL_KDF_PARAM_DIGEST) <UTF8 字符串>
-
这些参数的工作方式如 "PARAMETERS" in EVP_KDF(3) 中所述。
- "pkcs5" (OSSL_KDF_PARAM_PKCS5) <整数>
-
此参数可用于启用或禁用 SP800-132 符合性检查。将模式设置为 0 会启用符合性检查。
执行的检查是
- - 迭代次数至少为 1000。
- - 盐长度至少为 128 位。
- - 导出密钥长度至少为 112 位。
默认提供程序使用 1 的默认模式以实现向后兼容性,而 FIPS 提供程序使用 0 的默认模式。
值字符串应为十进制数 0 或 1。
注意
此算法的典型应用是从“pass”中的密码、”salt”中的盐和迭代次数中为加密算法导出密钥材料。
增加“iter”参数会减慢算法速度,这使得攻击者更难使用大量候选密码进行暴力攻击。
不会对给定的密码进行任何假设;它仅仅被视为一个字节序列。
符合
SP800-132
另请参阅
EVP_KDF(3), EVP_KDF_CTX_new(3), EVP_KDF_CTX_free(3), EVP_KDF_CTX_set_params(3), EVP_KDF_derive(3), "PARAMETERS" in EVP_KDF(3)
历史
此功能在 OpenSSL 3.0 中添加。
版权
Copyright 2018-2020 The OpenSSL Project Authors. All Rights Reserved.
根据 Apache 许可证 2.0(“许可证”)授权。除符合许可证的规定外,您不得使用此文件。您可以在源代码分发中的 LICENSE 文件或 https://www.openssl.org/source/license.html 中获取副本。