首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SecureRandom.getInstance("DRBG")使用的实际算法是什么?

SecureRandom.getInstance("DRBG")使用的实际算法是什么?
EN

Stack Overflow用户
提问于 2019-10-09 12:33:08
回答 2查看 1.1K关注 0票数 1

Java9 (JSR 379) 介绍NIST DRBG的9月273中指定。然而,NIST文档SP 800-90Ar1 (NIST特别出版物800-90A修订版1:使用确定性随机比特生成器生成随机数的建议)指定了总共的树机制:

在800-90Ar1中(在所有平台上)实现三种DRBG机制(Hash_DRBG、HMAC_DRBG、CTR_DRBG)。

然而,尽管您可能期望我们现在有三种方法来创建这样的安全随机算法:

  1. SecureRandom.getInstance("Hash_DRBG")
  2. SecureRandom.getInstance("HMAC_DRBG")
  3. SecureRandom.getInstance("CTR_DRBG")

可能有不同的配置参数,我们似乎只有一个:

  1. SecureRandom.getInstance("DRBG")

那么,开发人员如何配置和检测使用哪一种算法呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-09 12:44:06

来自杰普

一个新的SecureRandomParameters接口,以便可以向新的SecureRandom方法提供额外的输入。

从那里我们到达DrbgParameters,上面写着

实现注意事项: 以下说明适用于JDK参考实现的SUN提供程序中的"DRBG“实现。该实现使用DRBG算法AES-128、AES-192和AES-256支持Hash_DRBG和HMAC_DRBG机制,包括DRBG算法SHA-224、SHA-512/224、SHA-256、SHA-512/256、SHA-384和SHA-512,以及CTR_DRBG (使用派生函数和不使用派生函数)。 机制名和DRBG算法名由安全属性securerandom.drbg.config确定。默认选择是带有SHA-256的Hash_DRBG。

因此,实现依赖并在默认情况下只能使用属性切换。

票数 3
EN

Stack Overflow用户

发布于 2019-10-09 12:47:58

在调用Security.SetProperties之前使用SecureRandom:

代码语言:javascript
运行
复制
Security.setProperty("securerandom.drbg.config", "Hash_DRBG");

SecureRandom random = SecureRandom.getInstance("DRBG");

有关更多信息,本文提供了一些深入的信息:https://metebalci.com/blog/everything-about-javas-securerandom/

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58304220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档