2015-06-28 109 views
2

我特別關心iOS和OS X.函數`arc4random`系列是否安全?

如果沒有,那麼隨機密碼質量可能的替代品是什麼?

+3

您的線程安全擔憂是什麼?那是不會線程安全的問題呢?字節可能會混合?這將如何導致結果不那麼隨意? – zaph

+1

@zaph:種族情況導致*未定義的行爲*,其中包括各種奇怪的魔法。我能想象的一種情況是兩個線程獲得完全相同的隨機數。如果這是AES-CTR的初始化矢量,那完全破壞安全保證。 –

+1

@zaph如果它不是線程安全的,不僅可以是未定義的行爲,從多個線程同時調用非線程安全的PRNG,但它也可能嚴重擾亂其內部狀態並破壞所有未來結果的隨機性。另外,如果PRNG沒有受到這個影響,它可能仍然會爲同時調用返回相同的結果,例如,這會完全搞亂任何類型的多線程蒙特卡洛近似...(儘管在這種使用中它通常更好有一個單獨的PRNG實例,每個實例的接收方式不同,以避免需要同步。) – Arkku

回答

3

是,arc4random,arc4random_uniform,arc4random_buf,arc4random_stirarc4random_addrandom是線程安全的。

您可以在source code中看到這一點,並且也得到了Apple開發人員關係人員的確認(但目前我找不到該鏈接)。