我应该使用什么值作为blum blum shub发生器的模数值

时间:2015-05-14 10:15:09

标签: matlab

blum blum shub发生器的模数值是2个素数的乘积。但是我应该使用什么值来生成256位序列?哪个值提供了良好的安全性?

1 个答案:

答案 0 :(得分:1)

这是一个有趣的问题,可能是Stackoverflow中的主题,但算法的名称是如此热闹(对不起原作者),我将尝试回答它。

一般来说,我将参考他们的原始论文。你可以在:

找到它

http://epubs.siam.org/doi/abs/10.1137/0215025

B.B.S gererator遵循等式:

enter image description here

其中N是相同长度的两个素数的乘积(我希望有人能够更好地澄清这对我意味着什么,因为文中的例子是N = 133 = 7 * 19而且我真的不知道如何7和19是相同的长度,但它与问题不是100%相关。

然后,要获得所需的随机位,您需要使用parity enter image description here其中enter image description here

系列b的序列的周期“通常等于enter image description here,其中函数λ是Carmichael function

因此,您可以尝试使用不同的数字作为N,计算enter image description here并确保它大于您希望完全随机的数量。

阅读关于Blum Blum Shub算法的维基百科文章似乎表明你只想拥有一个非常大的N.