如果R(x)是随机函数,则R(x)|| R(x')也是一个随机函数?

时间:2011-01-30 19:56:56

标签: math random

如果R(x)是随机函数,则R(x)|| R(x')也是一个随机函数?

R(x)在真正意义上是随机的。

x是一个超过0和1的位串。

X'是x的补充。

||是简单的连接

编辑:

该R(x)是从函数族{0,1} ^ k - >中随机选择的。 {0,1)^ķ。一旦选择了R(x),就会得到修复。因此相同的输入将生成相同的输出。 R(x)的长度是固定的(k,比如32)

G(x)= R(x)||器R(x&#39)

4 个答案:

答案 0 :(得分:3)

假设R()是标准种子PRNG函数,如果R(x)是随机的,那么R(x')也是随机的,因为它只是PRNG的替代种子。此外,R(x) + R(x')同样是随机的,因为它只是两个随机字符串的串联。

然而,有可能以x的知识攻击y = R(x) + R(x'),虽然它不会降低字符串的随机性,但如果将此随机函数用于任何字符串,可能会打开弱点与安全相关的目的。

答案 1 :(得分:1)

看起来像是:

考虑p与任何给定R(x) || R(x')相等的概率y,让y = y_1 || y_2。然后p等于R(x) = y_1概率为R(x') = y_2的概率,因为这两个案例是独立的。我们发现它不依赖于y,因此对于每个y都是一样的。


编辑:
但是,如果R(x)的值唯一确定R(x')的值,则生成的函数不是随机的!因为R(x) || R(x')的值不能是任意的:值的前半部分决定了后半部分,所以值不能是任意的。这意味着某些值的概率为0。

感谢@adamax指出这一点。

答案 2 :(得分:0)

是的,如果R(x)在真正意义上被定义为RANDOM,那么输出会随着x的微小变化而变化很大。这意味着R(x)与R(x')的输出完全不同且无关。此外,集中在两个随机输出上也会产生随机输出。

答案 3 :(得分:0)

我给出了一个随机函数的定义存在根本缺陷。

应该定义为: 随机函数{0,1} ^ k1 - > {0,1} ^ k2是来自{0,1} ^ k1 - >的所有可能函数的族的随机选择的函数。 {0,1} ^ k2

现在通过这个定义,为了证明任何函数是随机的,我们必须反过来证明它从所有这些函数的族中随机选择。

在我们的情况下假设R(x):{0,1} ^ k - > {0,1} ^ k是随机函数,R(x)从函数族中随机选择。

证明G(x)= R(x)|| R(x'):{0,1} ^ k - > {0,1} ^ 2k是一个随机函数,我们需要确定G(x)确实从{0,1} ^ k - >上的函数族中随机选择。 {0,1} ^ 2k,假设R(x)是随机函数。然而,事实并非如此,因为小的计数器示例将显示G(x)从函数族的较小子集中选择。

因此即使R(x)是

,G(x)也不是随机的