Coursera - Dan Boneh - Cryptography 1 - Week 1 - PRG Security Definitions 学习笔记【4】

本篇文章要介绍的内容包括:可忽略的(negligible)、伪随机数生成器(PRG)、Statistical tests(统计检验)、Advantage、Secure PRGs(安全伪随机生成器)、computationally indistinguishable(计算不可区分)。
明天再补。

可忽略的(negligible)

首先我们尝试用实践的角度理解,如果 ε ≥ 1 / 2 30 \varepsilon\geq 1/2^{30} ε1/230,那么 ε \varepsilon ε是不可忽略的(non-neg),因为很有可能在 1 G B 1GB 1GB的数据中出现一次;如果 ϵ ≤ 1 / 2 80 \epsilon\leq1/2^{80} ϵ1/280,那么 ε \varepsilon ε是可忽略的(negligible),在很多很多的数据中也不太可能出现一次。

从理论的角度来说, ε \varepsilon ε是一个 Z ≥ 0 → R ≥ 0 \mathbb{Z}^{\geq0}\rightarrow\mathbb{R}^{\geq0} Z0R0的函数并且
ε \varepsilon ε是不可忽略的(non-neg),当且仅当 ∃ d : ε ( λ ) ≥ 1 / λ d . \exists d:\varepsilon(\lambda)\geq 1/\lambda^{d}. d:ε(λ)1/λd.
ε \varepsilon ε是可忽略的(negligible),当且仅当 ∀ d , λ ≥ λ d : ε ( λ ) ≤ 1 / λ d . \forall d,\lambda\geq\lambda_{d}:\varepsilon(\lambda)\leq 1/\lambda^{d}. d,λλd:ε(λ)1/λd.

理解:当 ε \varepsilon ε是不可忽略的(non-neg),
ε ( λ ) ≥ 1 λ d ≥ 1 λ d + λ d − 1 + ⋯ + λ 0 , \varepsilon(\lambda) \geq \frac{1}{\lambda^{d}} \geq\frac{1}{{\lambda^{d}+\lambda^{d-1}+\cdots+\lambda^{0}}}, ε(λ)λd1λd+λd1++λ01,
ε ≥ 1 / p o l y \varepsilon\geq 1/poly ε1/poly ε \varepsilon ε也是大于等于某个多项式的倒数的。
类似的,当 ε \varepsilon ε是可忽略的(negligible),如果 λ \lambda λ足够大,有 ε ≤ 1 / p o l y \varepsilon\leq 1/poly ε1/poly ε \varepsilon ε是小于等于所有多项式的倒数的。

三个例子

例1 ε ( λ ) = 1 / 2 λ \varepsilon(\lambda)=1/2^{\lambda} ε(λ)=1/2λ是可忽略的(negligible)。
简单说明:无论 d d d取什么值, λ \lambda λ总是可以取对应的值,使得 2 λ ≥ λ d 2^{\lambda}\geq \lambda^{d} 2λλd

例2 ε ( λ ) = 1 / λ 1000 \varepsilon(\lambda)=1/{\lambda}^{1000} ε(λ)=1/λ1000是不可忽略的(non-neg)。
简单说明:当 λ ≥ 1 \lambda\geq 1 λ1时,可取 d = 1001 d=1001 d=1001;当 0 ≤ λ < 1 0\leq\lambda< 1 0λ<1时,可取 d = 999 d=999 d=999

例3 ε ( λ ) = { 1 / 2 λ , 当 λ 为 奇 数 时 ; 1 / λ 1000 , 当 λ 为 偶 数 时 . \varepsilon(\lambda)=\left\{\begin{array}{cr} 1/2^\lambda, &当\lambda为奇数时;\\ 1/{\lambda}^{1000}, &当\lambda为偶数时. \end{array}\right. ε(λ)={1/2λ,1/λ1000,λλ. ε ( λ ) \varepsilon(\lambda) ε(λ)是不可忽略的(non-negligible)。
简单说明:因为要对 ∀ d \forall d d都成立,当 λ \lambda λ为偶数时,根据例2是不可忽略的,所以 ε ( λ ) \varepsilon(\lambda) ε(λ)不可忽略。

伪随机数生成器(PRG)

定义:设 G : K → { 0 , 1 } n G:\mathcal{K}\rightarrow\{0,1\}^{n} G:K{0,1}n,如果说 [ k ← R K , 输 出 G ( k ) ] [k\stackrel{R}{\leftarrow}\mathcal{K},输出G(k)] [kRK,G(k)] [ r ← R { 0 , 1 } n , 输 出 r ] [r\stackrel{R}{\leftarrow}\{0,1\}^{n},输出r] [rR{0,1}nr]是不可区分(indistinguishable)的,那么就说 G G G是伪随机数生成器(PRG)。

注释 r ← R { 0 , 1 } n r\stackrel{R}{\leftarrow}\{0,1\}^n rR{0,1}n表示从 { 0 , 1 } n \{0,1\}^{n} {0,1}n均匀地取出一个数 r r r(即,均匀抽样)。
不可区分(indistinguishable)是说两者非常非常接近,相差很小。
定义中因为是均匀抽样,所以 G ( k ) G(k) G(k) r r r的不可区分是从他们的概率分布来看的,他们的任意两个数输出的概率相差地非常非常小,小到几乎可以忽略(negligible,如 ≤ 2 30 \leq2^{30} 230),多项式时间内看不出两者的区别。

Statistical Tests(统计检验)

定义:统计检验(Statistical test)是一个算法 A ( x ) , x ∈ { 0 , 1 } n A(x),x\in\{0,1\}^{n} A(x),x{0,1}n,且满足 A ( x ) ∈ { 0 , 1 } A(x)\in\{0,1\} A(x){0,1}

注释:假设算法 A ( x ) A(x) A(x)用来判断 x x x是否是随机数,若是随机数,则 A ( x ) A(x) A(x)输出 1 1 1;若不是随机数, A ( x ) A(x) A(x)输出 0 0 0

两个例子

例1:如果“算法 A ( x ) A(x) A(x)判断 x x x是否是随机数“是通过 0 0 0 1 1 1的个数是否很接近得到的,那么可以如下定义 A ( x ) A(x) A(x)
A ( x ) = 1 A(x)=1 A(x)=1当且仅当 ∣ # 0 ( x ) − # 1 ( x ) ∣ ≤ 10 ⋅ n |\#0(x)-\#1(x)|\leq 10\cdot\sqrt{n} #0(x)#1(x)10n ,其中 # 0 ( x ) \#0(x) #0(x)表示 x x x 0 0 0的个数, # 1 ( x ) \#1(x) #1(x)表示 x x x 1 1 1的个数。

例2:如果“算法 A ( x ) A(x) A(x)判断 x x x是否是随机数“是通过连续两个 0 0 0的个数是否接近 1 4 n \frac{1}{4}n 41n得到的,那么可以如下定义 A ( x ) A(x) A(x)
A ( x ) = 1 A(x)=1 A(x)=1当且仅当 ∣ # 00 ( x ) − n 4 ∣ ≤ 10 ⋅ n |\#00(x)-\frac{n}{4}|\leq 10\cdot\sqrt{n} #00(x)4n10n ,其中 # 00 ( x ) \#00(x) #00(x)表示 x x x 00 00 00的个数。

PRG的Advantage

定义:定义为算法 A A A是伪随机数生成器 G G G相对于随机数的Advantage为
A d v P R G [ A , G ] = ∣ P r [ A ( G ( k ) ) = 1 ] − P r [ A ( r ) = 1 ] ∣ , Adv_{PRG}[A,G]=\big|Pr[A(G(k))=1] - Pr[A(r)=1]\big|, AdvPRG[A,G]=Pr[A(G(k))=1]Pr[A(r)=1],其中 A ( x ) A(x) A(x)是统计检验(Statistical test), G : K → { 0 , 1 } n G:\mathcal{K}\rightarrow\{0,1\}^n G:K{0,1}n,以及 r ← R { 0 , 1 } n r\stackrel{R}{\leftarrow}\{0,1\}^n rR{0,1}n

注释:如果 P r [ A ( G ( k ) ) = 1 ] Pr[A(G(k))=1] Pr[A(G(k))=1]是算法 A A A判定 G ( k ) G(k) G(k)是随机数的概率, P r [ A ( r ) = 1 ] Pr[A(r)=1] Pr[A(r)=1]是算法 A A A判定 r r r是随机数的概率,那么 A d v P R G [ A , G ] Adv_{PRG}[A,G] AdvPRG[A,G]表示 G ( k ) G(k) G(k)在算法 A A A下离均匀抽样 r r r的距离,越接近均匀抽样透露的原信息就越少,越不容易预测 G ( k ) G(k) G(k),所以 A d v P R G [ A , G ] Adv_{PRG}[A,G] AdvPRG[A,G]越小越好。

一个例子

现在有伪随机数生成器 G : K → { 0 , 1 } n G:\mathcal{K}\rightarrow\{0,1\}^n G:K{0,1}n,有 2 3 \frac{2}{3} 32的概率使得 m s b ( G ( k ) ) = 1 msb(G(k))=1 msb(G(k))=1(其中 m s b ( x ) msb(x) msb(x)表示二进制下 x x x的最高位),定义统计检验 A ( x ) A(x) A(x)
“如果 m s b ( x ) = 1 msb(x)=1 msb(x)=1那么 A ( x ) = 1 A(x)=1 A(x)=1;否则 A ( x ) = 0 A(x)=0 A(x)=0”,则有
A d v P R G [ A , G ] = ∣ P r [ A ( G ( k ) ) = 1 ] − P r [ A ( r ) = 1 ] ∣ = ∣ 2 / 3 − 1 / 2 ∣ = 1 / 6 , Adv_{PRG}[A,G]=\big|Pr[A(G(k))=1] - Pr[A(r)=1]\big|=\big|2/3-1/2\big|=1/6, AdvPRG[A,G]=Pr[A(G(k))=1]Pr[A(r)=1]=2/31/2=1/6,即算法 A A A能够预测生成器 G G G的Advantage为 1 / 6 1/6 1/6

Secure PRGs(安全伪随机生成器)

定义:设 G : K → { 0 , 1 } n G:\mathcal{K}\rightarrow\{0,1\}^n G:K{0,1}n,如果所有高效(Efficient)的统计检验(Statistics tests) A : A d v P R G [ A , G ] A:Adv_{PRG}[A,G] A:AdvPRG[A,G]是可忽略的(negligible),那么 G G G是安全伪随机生成器(Secure PRG)。

注释:现在还不知道是否存在可证明的Secure PRG。一个Secure PRG是不可预测(unpredictable)的。

定理(Yao’82)

定理(Yao’82):设 G : K → { 0 , 1 } n G:\mathcal{K}\rightarrow\{0,1\}^n G:K{0,1}n是一个PRG,如果 ∀ i ∈ { 0 , 1 , ⋯   , n − 1 } \forall i\in\{0,1,\cdots,n-1\} i{0,1,,n1} G G G输出的第 i i i位都是不可预测的,那么 G G G是一个Secure PRG。

注释:这个定理只需要一位一位考虑是否不可预测,而不用整体的看,极大地简化了判断Secure PRG的方式。

computationally indistinguishable(计算不可区分)

定义:如果 P 1 P_1 P1 P 2 P_2 P2是在 { 0 , 1 } n \{0,1\}^n {0,1}n上的两个分布函数,当所有高效的统计检验(Statistics tests) A : ∣ P r x ← P 1 [ A ( x ) = 1 ] − P r x ← P 2 [ A ( x ) = 1 ] ∣ A:\big|Pr_{x\leftarrow P_1}[A(x)=1]-Pr_{x\leftarrow P_2}[A(x)=1]\big| A:PrxP1[A(x)=1]PrxP2[A(x)=1]是可忽略的(negligible),那么 P 1 P_1 P1 P 2 P_2 P2是计算不可区分(computationally indistinguishable)的,记作 P 1 ≈ p P 2 P_1 \approx_p P_2 P1pP2

一个例子

如果 { k ← R K : G ( k ) } ≈ p u n i f o r m ( { 0 , 1 } n ) \{k\stackrel{R}{\leftarrow}\mathcal{K}:G(k)\}\approx_p uniform(\{0,1\}^n) {kRK:G(k)}puniform({0,1}n),PRG是安全的。

uniform是均匀分布。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Coursera-ml-andrewng-notes-master.zip是一个包含Andrew Ng的机器学习课程笔记和代码的压缩包。这门课程是由斯坦福大学提供的计算机科学和人工智能实验室(CSAIL)的教授Andrew Ng教授开设的,旨在通过深入浅出的方式介绍机器学习的基础概念,包括监督学习、无监督学习、逻辑回归、神经网络等等。 这个压缩包中的笔记和代码可以帮助机器学习初学者更好地理解和应用所学的知识。笔记中包含了课程中涉及到的各种公式、算法和概念的详细解释,同时也包括了编程作业的指导和解答。而代码部分包含了课程中使用的MATLAB代码,以及Python代码的实现。 这个压缩包对机器学习爱好者和学生来说是一个非常有用的资源,能够让他们深入了解机器学习的基础,并掌握如何运用这些知识去解决实际问题。此外,这个压缩包还可以作为教师和讲师的教学资源,帮助他们更好地传授机器学习的知识和技能。 ### 回答2: coursera-ml-andrewng-notes-master.zip 是一个 Coursera Machine Learning 课程的笔记和教材的压缩包,由学生或者讲师编写。这个压缩包中包括了 Andrew Ng 教授在 Coursera 上发布的 Machine Learning 课程的全部讲义、练习题和答案等相关学习材料。 Machine Learning 课程是一个介绍机器学习的课程,它包括了许多重要的机器学习算法和理论,例如线性回归、神经网络、决策树、支持向量机等。这个课程的目标是让学生了解机器学习的方法,学习如何使用机器学习来解决实际问题,并最终构建自己的机器学习系统。 这个压缩包中包含的所有学习材料都是免费的,每个人都可以从 Coursera 的网站上免费获取。通过学习这个课程,你将学习到机器学习的基础知识和核心算法,掌握机器学习的实际应用技巧,以及学会如何处理不同种类的数据和问题。 总之,coursera-ml-andrewng-notes-master.zip 是一个非常有用的学习资源,它可以帮助人们更好地学习、理解和掌握机器学习的知识和技能。无论你是机器学习初学者还是资深的机器学习专家,它都将是一个重要的参考工具。 ### 回答3: coursera-ml-andrewng-notes-master.zip是一份具有高价值的文件,其中包含了Andrew Ng在Coursera上开授的机器学习课程的笔记。这份课程笔记可以帮助学习者更好地理解掌握机器学习技术和方法,提高在机器学习领域的实践能力。通过这份文件,学习者可以学习到机器学习的算法、原理和应用,其中包括线性回归、逻辑回归、神经网络、支持向量机、聚类、降维等多个内容。同时,这份笔记还提供了很多代码实现和模板,学习者可以通过这些实例来理解、运用和进一步深入研究机器学习技术。 总的来说,coursera-ml-andrewng-notes-master.zip对于想要深入学习和掌握机器学习技术和方法的学习者来说是一份不可多得的资料,对于企业中从事机器学习相关工作的从业人员来说也是进行技能提升或者知识更新的重要资料。因此,对于机器学习领域的学习者和从业人员来说,学习并掌握coursera-ml-andrewng-notes-master.zip所提供的知识和技能是非常有价值的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值