我想創建一個使用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