在计算复杂性理论和密码学中,伪随机发生器与单向函数通过一些定理发生关联,统称为伪随机发生器定理。
如果没有有效的计算方法能够以不可忽略的优势将某种分布与真实的均匀分布区分开来,则该分布被认为是伪随机的。形式上,分布族Dn是伪随机的条件是,如果对于任何多项式大小电路C和n中的任何ε逆多项式:
函数 Gl : {0,1}l → {0,1}m,如果:满足下面的条件,而且l < m ,则Gl 是伪随机发生器,
可以证明,如果有伪随机发生器 Gl 满足以下内容: {0,1}l → {0,1}l+1, 即 仅添加一 个伪随机位的生成器,那么对于任何 m = poly(l),有一个伪随机发生器 g 'l 满足: {0,1}l → {0,1}m。
证明的想法如下: 第一个来自均匀分布Ul 的s位比特被用作的第一个实例Gl的种子, 称为伪随机发生器。接下来 ,将Gl 的第一个实例的输出分为两个部分:第一 l 位被馈送到的第二个实例中 的Gl 作为种子,而最后一位成为输出的第一位。重复此过程 m 次,产生的输出是 m 个伪随机位。
可以证明的是G'l, 包括 m 个实例 Gl,实际上是伪随机发生器,可以使用如下的混合方法并通过矛盾方法证明 :
假设 m+1 中间分布 Hi: 0 ≤ i ≤ m,其中从均匀分布中选择第一个i 位,从G'l 输出中选择最后m − i 位。这样,H0 是 G'l 的全部输出,而Hm 是真正的均匀分布 Um。因此,分布 Hi 和 Hi+1 仅在一位(位数 i+1)上存在差异。
现在,假设 G'l 不是伪随机分布;也就是说,存在一些电路 C 以有优势 ε = 1/ Poly(l) 区分G'l 和Um 。换句话说,这个电路可以区分 H0 和 Hm。因此,存在这样的 i ,使电路 C 可以至少 以 ε / m 区分 Hi 和 Hi+1 。请注意,既然m是l 多项式, 那么 ε / m 也是l 多项式, 并且仍然是以不可忽视的优势区分。
现在,假设 l+1 位 要么从 Gl 中输出,要么从均匀分布中抽取。让我们重用从实例Gl 中构建大型伪随机发生器的方法,并构造一串长度为m−i−1的伪随机比特,同样使用第一个l 位作为种子。然后,让我们创建一个从均匀分布中提取的i 位,构成的字符串, 将其与最后一个给定的位连接,然后是创建的 m−i−1 位。结果输出是 Hi 或者 Hi+1,其中i+1 位或者来自均匀分布或者来自 Gl。因为假设我们可以以不可忽略 优势区分 Hi 和 Hi+1 ,那么我们可以区分 U 和 Gl,这意味着 Gl 不是伪随机发生器,这与假设是矛盾的。证明完毕。
现在,让我们举例说明,如果存在不需通过随意扔硬币的方式区分 Gl 和 Ul+1 。如上所示,如果存在电路 C 用于区分 G'l 和 Um,其中 m = Poly(l),则存在一个电路C' 使用 i 随机位区分Gl和Ul+1。对于这个电路C' :| Probu, s [C' (u1,...,ui,Gl(s)) = 1 ] − Probu, y [C' (u1,>,...,ui,y) = 1] | ≥ ε / m,
其中u是一串 i 均匀随机位,s 是一串 l 均匀随机位,以及 y 是一串 l+1个均匀随机位。
然后,
Probu[ | Probs [C' (u1,...,ui,Gl(s)) = 1] - Proby [C' (u1,...,ui,y) = 1] | ] ≥ ε / m;
也就是说,存在一些固定的i 位的字符串 u ,可以用作C' 的“建议”用于区分 Gl 和 Ul+1。
伪随机发生器的存在与单向函数和硬核谓词相关.形式上,仅当单向函数存在时,伪随机发生器才存在,或者
PRG ↔ OWF
单向函数
直观地单向功能是易于计算且难以反转的函数。换句话说,函数的复杂性(或电路尺寸)比它的反向推导小得多。形式上,如果满足条件:对于任何电路C 满足其大小≤ S, Prob[ƒ(C(ƒ(x))) = ƒ(x)] ≤ ε,函数(S,ε): {0,1}n → {0,1}n 是单向函数。
此外,单向函数还满足下面结果
核心谓词
函数 B : {0,1}n → {0,1} 如果对函数ƒ满足下面条件就是一个硬核谓词
换句话说,很难通过 ƒ(x)来预测 B(x)
这里给出了概要的证明。请参阅参考资料了解详细证明。
PRG → OWF
考虑伪随机发生器 Gl: {0,1}l → {0,1}2l。让我们创建以下单向函数: {0,1}n → {0,1}n 它使用 Gl 输出的前半部分作为它的输出。形式上,
ƒ(x,y) → Gl(x)
证明这种选择合理的一个关键现象是函数的图像大小为2n ,并且是大小为2n 的预图像空间中可以忽略的一部分。
为了证明ƒ确实是单向函数,让我们来构造一个矛盾。假设存在一个电路 C 作用于ƒ 满足下面的ε:
Prob[ƒ(C(ƒ(x,y))) = ƒ(x,y)] > ε
然后我们可以创建以下算法来区分 Gl 和均匀分布,这与假设相矛盾。该算法需要输入2n 位z 和计算(x,y) = C(z)。如果 Gl(x) = z ,则算法会接受,否则会拒绝。
现在,如果 z 取自均匀分布,上述算法接受的概率≤ 1/2l,,因为图像的大小是1/2l 前图像的大小。然而,如果 z 是从Gl的输出中提取的,那么假设电路的存在 C,其接受的概率是> ε 。因此,电路的优点是 C 区分均匀分布 U 和输出 Gl > ε − 1/2l, 这是不可忽略的,因此与我们设定的Gl 作为伪随机发生器的假设相矛盾 。证明完毕。
OWF → PRG
对于这种情况,我们证明了定理较弱的版本:
单向的排列 →伪随机发生器
单向排列是单向函数,也是输入位的排列。伪随机发生器可以由单向排列构成,如下所示:
Gl: {0,1}l→{0,1}l+1 = ƒ(x).B(x),其中B 是ƒ 和"."的核心谓词,是串联运算符。注意,根据上面证明的定理,只需要证实只添加一个伪随机位的发生器的存在。
核心谓词 → PRG
首先,让我们证明如果B 是一个核心谓词, Gl 确实是伪随机的。同样,我们将通过构造一个矛盾来证明这个论点。
假设 Gl 不是伪随机发生器;也就是说,存在多项式大小的电路C 以优势≥ε区别Gl(x) =ƒ(x).B(x)和Ul+1 ,同时ε 不可忽视。请注意,由于ƒ(x)是一个置换,那么如果 x 是从均匀分布中得出的。因此, Ul+1 相当于ƒ(x).b,这里 b 是独立的从均匀分布抽取的一个位。形式上,
Probx~U [C(G(x))=1] − Probx~U,b~U [C(x.b)=1] ≥ ε
让我们构造以下算法 C:
1. Given z=f(x) guess bit b 2. Run C on z.b 3. IF C(z.b)=1 4. output b 5. ELSE 6. output 1-b
给定ƒ的输出,算法首先通过投掷随机硬币猜测位b,即 Prob[b=0] = Prob[b=1] = 0.5。然后,算法(电路) C 运行f(x).b 如果结果是1,那么 b 输出,否则1-b返回。
那么C' 猜对B(x)的概率为:
Probx~U [C'(z)=B(x)] =
Prob[b=B(x) ∧ C(z.b)=1] + Prob[b≠B(x) ∧ C(z.b)=0] =
Prob[b=B(x)]⋅Prob[C(z.b)=1 | b=B(x)] + Prob[b≠B(x)]⋅Prob[C(z.b)=0 | b≠B(x)] =
1/2⋅Prob[C(z.b)=1 | b=B(x)] + 1/2⋅Prob[C(z.b)=0 | b≠B(x)] =
(1−1/2)⋅Prob[C(z.b)=1 | b=B(x)] + 1/2⋅(1−Prob[C(z.b)=1 | b≠B(x)]) =
1/2+Probz.b~G(x) [C(z.b)=1] − 1/2⋅(Prob[C(z.b)=1 | b=B(x)]+Prob[C(z.b)=1 | b≠B(x)]) =
1/2+Probz.b~G(x) [C(z.b)=1] − Probz.b~U [C(z.b)=1] ≥ 1/2+ε
这意味着电路C' 能够以概率大于1/2 + ε预测 B(x),这意味着 B 不可能是ƒ的核心谓词,这与假设是矛盾的。证明完毕。
OWP → 硬核谓词
概要的证明如下:
如果ƒ{0,1}n→{0,1}n 是单向排列,那么 ƒ'{0,1}2n→{0,1}2n也是单向排列,根据定义其中ƒ'(x,y)=ƒ(x).y。然后 B(x,y)=x⋅y 是ƒ'的核心谓词,其中 ⋅ 是一个向量点积。为了证明它确实是硬核,让我们假设不是这样,并证明与ƒ是单向函数假设的矛盾。如果 B 不是一个核心谓词,那么就存在一个电路C 可以预测,所以
Probx,y[C(ƒ(x),y)=x⋅y] ≥ 1/2+ε. 这个事实可以用通过巧妙的使用来自x 孤立的位输入来构建排列y 来恢复 x 。事实上,对于 x,有一个多项式时间算法列出O(1/&epsilon2) 所有有效的候选x。因此,算法可以用多项式时间反转ƒ(x)的不可忽略的部分x。这与假设相矛盾。
暂无