我想创建一个使用JavaScript的指数随机数生成器,它使用以前的StackOverflow答案中的方法。 :这个指数分布采样器是密码保密的吗?
function randomNumGen() {
var u = Math.random();
var mu = 0.3;
return -Math.log(1.0 - u)/mu;
}
不过,我后来发现,使用Math.random()
是不是从另一个StackOverflow答案加密安全。但是,我不完全确定它是否对我来说是密码保密的,因为它使用u
的统一随机性对指数分布进行抽样,但我认为它不安全。
在第二个站点,它推荐其他库,但它们使用不同的分布,而不是指数。我假设我不能简单地用它们的一个(例如window.crypto.getRandomValues)替代Math.random()
,因为它不统一。
关于我能做些什么的见解?
你是什么意思的“数学安全”?密码安全涉及状态空间太大而不能暴力,以及根据过去的输出预测未来输出的计算不可行性。在蒙特卡罗模拟(这是主要的指数随机变量将被使用的地方)等事情中,这些考虑都不是非常重要。你试图抵御什么样的攻击? –
@JohnColeman我的歉意,我认为他们是同义词。我试图实现密码安全 – user153882
你想达到什么作为最终目标?指数分布和密码安全的组合看起来有些奇怪。 – kraskevich