如果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)
答案 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)也不是随机的