首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JDK1.7安全随机生成器种子和不可预测性

JDK1.7安全随机生成器种子和不可预测性
EN

Stack Overflow用户
提问于 2015-08-20 14:25:13
回答 1查看 257关注 0票数 0

我计划实现随机生成的MersenneTwister算法。由于它不安全,所以需要设置从SecureRandom派生的种子。

代码语言:javascript
复制
SecureRandom secureRandomGenerator = SecureRandom.getInstance("SHA1PRNG");
int seedSize = 100; 
int[] seed = new int[seedSize]; 
for (int i=0; i <seedSize; i++) { 
    seed[i] = secureRandomGenerator.nextInt(Integer.MAX_VALUE); 
}
randomGenerator = new MersenneTwister(seed);

我有两个问题

( 1)为SHA1PRNG设置种子是坏主意还是好主意?

( 2)如果这是个好主意,那么为SHA1PRNG设置种子以改善不可预测性的最佳方法是什么?

EN

Stack Overflow用户

回答已采纳

发布于 2015-08-20 14:40:55

我认为,如果它只是种子,您只使用它一次每次应用程序启动,所以这不是一个大的安全问题。任何好的安全随机算法(包括SHA1PRNG)都会对种子很好。最有问题的地方是梅森龙卷风本身。至少它的原始实现是不安全的,不管种子源是什么,正如维基百科中所述

本机形式的算法不具有密码安全性。原因是观察到足够数量的迭代(在MT19937中为624次,因为这是产生未来迭代的状态向量的大小),因此可以预测所有未来的迭代。

因此,不管种子来源如何,如果攻击者设法获得足够的数量,Mersenne龙卷风就会受到破坏。

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

https://stackoverflow.com/questions/32120912

复制
相关文章

相似问题

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