JEP 273:基于 DRBG 的 SecureRandom 实现
概述
实现 NIST 800-90Ar1 中描述的三种确定性随机比特生成器 (DRBG) 机制。
非目标
提供熵输入源(SEI)的 API,或者在所有平台上实现经核准的 SEI,其中“核准”是指获得 NIST 或 FIPS 的批准。
动机
NIST(如 SP 800-90Ar1 中所述)开发和批准的 DRBG 机制使用了诸如 SHA-512 和 AES-256 这样强大的现代算法。这些机制中的每一个都可以根据用户需求配置不同的安全强度和特性。在某些环境中,对这些机制的支持变得非常重要,尤其是对于美国政府而言。
描述
APIs
-
针对
SecureRandom
的新方法,符合 800-90C 标准,允许配置SecureRandom
对象,并在种子生成、重新播种和随机比特生成过程中指定额外的输入。 -
SecureRandomSpi
中的新方法,用于实现上述新方法。 -
一个新的
SecureRandomParameters
接口,以便可以为新的SecureRandom
方法提供额外的输入。
这些新的 API 应该足够通用,适用于任何 SecureRandom
变体(而不仅仅是 DRBG),并且可以添加到 SecureRandom
和 SecureRandomSpi
中。
- 新的
DrbgParameters
类(及其内部类)实现了SecureRandomParameters
,供 DRBG 使用。
实现
- 在 800-90Ar1 中实现三种 DRBG 机制(Hash_DRBG、HMAC_DRBG、CTR_DRBG)(在所有平台上)。
副产品
-
FIPS 180-4 中描述的 SHA-512/224 和 SHA-512/256 安全哈希算法。
测试
-
DRBG 实现必须通过 CAVP 测试向量。
-
SHA-512/224 和 SHA-512/256 测试向量。
-
HmacSHA512/224 和 HmacSHA512/256 的 非正式测试向量。