Math 如果R(x)是一个随机函数,那么R(x)| R(x';)也是一个随机函数吗?
如果R(x)是一个随机函数,那么R(x)| | R(x')也是一个随机函数吗 R(x)在真正意义上是随机的 x是0和1之间的位字符串 x'是x的补码 ||是简单的连接 编辑: 这个R(x)是从函数族{0,1}^k->{0,1)^k中随机选择的。一旦选择了R(x),它就会固定。因此相同的输入将生成相同的输出。R(x)的长度是固定的(k,比如32) G(x)=R(x)| R(x')假设Math 如果R(x)是一个随机函数,那么R(x)| R(x';)也是一个随机函数吗?,math,random,Math,Random,如果R(x)是一个随机函数,那么R(x)| | R(x')也是一个随机函数吗 R(x)在真正意义上是随机的 x是0和1之间的位字符串 x'是x的补码 ||是简单的连接 编辑: 这个R(x)是从函数族{0,1}^k->{0,1)^k中随机选择的。一旦选择了R(x),它就会固定。因此相同的输入将生成相同的输出。R(x)的长度是固定的(k,比如32) G(x)=R(x)| R(x')假设R()是一个标准的种子PRNG函数,如果R(x)是随机的,那么R(x')也是随机的,因为它只是PRNG的一个备用种子
R()
是一个标准的种子PRNG函数,如果R(x)
是随机的,那么R(x')
也是随机的,因为它只是PRNG的一个备用种子。此外,R(x)
+R(x'))
也是随机的,因为它只是两个随机字符串的串联
但是,如果知道y=R(x)+R(x')
,就有可能攻击x
,虽然这不会降低字符串的随机性,但如果此随机函数用于任何安全相关目的,则可能会打开弱点。假设R()
是标准种子PRNG函数,如果R(x)
是随机的,那么R(x')
也是随机的,因为它只是PRNG的备用种子。此外,R(x)
+R(x')
也是随机的,因为它只是两个随机字符串的串联
但是,如果知道y=R(x)+R(x')
虽然不会降低字符串的随机性,但如果将此随机函数用于任何安全相关目的,则可能会攻击x
。看起来像是:
假设R(x)| R(x')
的概率p
等于任何给定的y
,让y=y|u 1 | y|u 2
,那么p
等于R(x)=y_1的概率乘以R(x')=y_2
,因为这两种情况是独立的。我们看到它不依赖于y
,所以对于每个y
,它都是相同的
编辑:
但是,如果R(x)
的值唯一地确定了R(x')
的值,则生成的函数不是随机的!因为R(x)| R(x')
的值不能是任意的:该值的前半部分确定后半部分,因此该值不能是任意的。这意味着某些值的概率为0
感谢@adamax指出这一点。看起来像是:
假设R(x)| R(x')
的概率p
等于任何给定的y
,让y=y|u 1 | y|u 2
,那么p
等于R(x)=y_1的概率乘以R(x')=y_2
,因为这两种情况是独立的。我们看到它不依赖于y
,所以对于每个y
,它都是相同的
编辑:
但是,如果R(x)
的值唯一地确定了R(x')
的值,则生成的函数不是随机的!因为R(x)| R(x')
的值不能是任意的:该值的前半部分确定后半部分,因此该值不能是任意的。这意味着某些值的概率为0
多亏@adamax指出了这一点。是的,如果R(x)被定义为真正意义上的随机,那么输出将随着x的微小变化而变化很大。这意味着R(x)完全不同,与R(x')的输出无关。此外,集中在两个随机输出上也会产生随机输出。是的,如果R(x)被定义为真正意义上的随机,输出会随着x的微小变化而变化很大。这意味着R(x)完全不同,与R(x′)的输出无关此外,集中精力于两个随机输出也会产生一个随机输出。我给出的随机函数定义中有一个基本缺陷
应将其定义为:
随机函数{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)从函数族的较小子集中选择
因此G(x)不是随机的,即使R(x)是在我给出的随机函数定义中有一个基本缺陷
应将其定义为:
随机函数{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)从函数族的较小子集中选择
因此G(x)不是随机的,即使R(x)是随机的“真正意义”是什么