Coursera - Dan Boneh - Cryptography 1 - Week 1 - PRG Security Definitions 學習筆記【4】

本篇文章要介紹的內容包括:可忽略的(negligible)、僞隨機數生成器(PRG)、Statistical tests(統計檢驗)、Advantage、Secure PRGs(安全僞隨機生成器)、computationally indistinguishable(計算不可區分)。
明天再補。

可忽略的(negligible)

首先我們嘗試用實踐的角度理解,如果ε1/230\varepsilon\geq 1/2^{30},那麼ε\varepsilon是不可忽略的(non-neg),因爲很有可能在1GB1GB的數據中出現一次;如果ϵ1/280\epsilon\leq1/2^{80},那麼ε\varepsilon是可忽略的(negligible),在很多很多的數據中也不太可能出現一次。

從理論的角度來說,ε\varepsilon是一個Z0R0\mathbb{Z}^{\geq0}\rightarrow\mathbb{R}^{\geq0}的函數並且
ε\varepsilon是不可忽略的(non-neg),當且僅當d:ε(λ)1/λd.\exists d:\varepsilon(\lambda)\geq 1/\lambda^{d}.
ε\varepsilon是可忽略的(negligible),當且僅當d,λλd:ε(λ)1/λd.\forall d,\lambda\geq\lambda_{d}:\varepsilon(\lambda)\leq 1/\lambda^{d}.

理解:當ε\varepsilon是不可忽略的(non-neg),
ε(λ)1λd1λd+λd1++λ0,\varepsilon(\lambda) \geq \frac{1}{\lambda^{d}} \geq\frac{1}{{\lambda^{d}+\lambda^{d-1}+\cdots+\lambda^{0}}},
ε1/poly\varepsilon\geq 1/polyε\varepsilon也是大於等於某個多項式的倒數的。
類似的,當ε\varepsilon是可忽略的(negligible),如果λ\lambda足夠大,有ε1/poly\varepsilon\leq 1/polyε\varepsilon是小於等於所有多項式的倒數的。

三個例子

例1ε(λ)=1/2λ\varepsilon(\lambda)=1/2^{\lambda}是可忽略的(negligible)。
簡單說明:無論dd取什麼值,λ\lambda總是可以取對應的值,使得2λλd2^{\lambda}\geq \lambda^{d}

例2ε(λ)=1/λ1000\varepsilon(\lambda)=1/{\lambda}^{1000}是不可忽略的(non-neg)。
簡單說明:當λ1\lambda\geq 1時,可取d=1001d=1001;當0λ<10\leq\lambda< 1時,可取d=999d=999

例3ε(λ)={1/2λ,λ1/λ1000,λ.\varepsilon(\lambda)=\left\{\begin{array}{cr} 1/2^\lambda, &當\lambda爲奇數時;\\ 1/{\lambda}^{1000}, &當\lambda爲偶數時. \end{array}\right.ε(λ)\varepsilon(\lambda)是不可忽略的(non-negligible)。
簡單說明:因爲要對d\forall d都成立,當λ\lambda爲偶數時,根據例2是不可忽略的,所以ε(λ)\varepsilon(\lambda)不可忽略。

僞隨機數生成器(PRG)

定義:設G:K{0,1}nG:\mathcal{K}\rightarrow\{0,1\}^{n},如果說[kRK,G(k)][k\stackrel{R}{\leftarrow}\mathcal{K},輸出G(k)][rR{0,1}nr][r\stackrel{R}{\leftarrow}\{0,1\}^{n},輸出r]是不可區分(indistinguishable)的,那麼就說GG是僞隨機數生成器(PRG)。

註釋rR{0,1}nr\stackrel{R}{\leftarrow}\{0,1\}^n表示從{0,1}n\{0,1\}^{n}均勻地取出一個數rr(即,均勻抽樣)。
不可區分(indistinguishable)是說兩者非常非常接近,相差很小。
定義中因爲是均勻抽樣,所以G(k)G(k)rr的不可區分是從他們的概率分佈來看的,他們的任意兩個數輸出的概率相差地非常非常小,小到幾乎可以忽略(negligible,如230\leq2^{30}),多項式時間內看不出兩者的區別。

Statistical Tests(統計檢驗)

定義:統計檢驗(Statistical test)是一個算法A(x),x{0,1}nA(x),x\in\{0,1\}^{n},且滿足A(x){0,1}A(x)\in\{0,1\}

註釋:假設算法A(x)A(x)用來判斷xx是否是隨機數,若是隨機數,則A(x)A(x)輸出11;若不是隨機數,A(x)A(x)輸出00

兩個例子

例1:如果“算法A(x)A(x)判斷xx是否是隨機數“是通過0011的個數是否很接近得到的,那麼可以如下定義A(x)A(x)
A(x)=1A(x)=1當且僅當#0(x)#1(x)10n|\#0(x)-\#1(x)|\leq 10\cdot\sqrt{n},其中#0(x)\#0(x)表示xx00的個數,#1(x)\#1(x)表示xx11的個數。

例2:如果“算法A(x)A(x)判斷xx是否是隨機數“是通過連續兩個00的個數是否接近14n\frac{1}{4}n得到的,那麼可以如下定義A(x)A(x)
A(x)=1A(x)=1當且僅當#00(x)n410n|\#00(x)-\frac{n}{4}|\leq 10\cdot\sqrt{n},其中#00(x)\#00(x)表示xx0000的個數。

PRG的Advantage

定義:定義爲算法AA是僞隨機數生成器GG相對於隨機數的Advantage爲
AdvPRG[A,G]=Pr[A(G(k))=1]Pr[A(r)=1],Adv_{PRG}[A,G]=\big|Pr[A(G(k))=1] - Pr[A(r)=1]\big|,其中A(x)A(x)是統計檢驗(Statistical test),G:K{0,1}nG:\mathcal{K}\rightarrow\{0,1\}^n,以及rR{0,1}nr\stackrel{R}{\leftarrow}\{0,1\}^n

註釋:如果Pr[A(G(k))=1]Pr[A(G(k))=1]是算法AA判定G(k)G(k)是隨機數的概率,Pr[A(r)=1]Pr[A(r)=1]是算法AA判定rr是隨機數的概率,那麼AdvPRG[A,G]Adv_{PRG}[A,G]表示G(k)G(k)在算法AA下離均勻抽樣rr的距離,越接近均勻抽樣透露的原信息就越少,越不容易預測G(k)G(k),所以AdvPRG[A,G]Adv_{PRG}[A,G]越小越好。

一個例子

現在有僞隨機數生成器G:K{0,1}nG:\mathcal{K}\rightarrow\{0,1\}^n,有23\frac{2}{3}的概率使得msb(G(k))=1msb(G(k))=1(其中msb(x)msb(x)表示二進制下xx的最高位),定義統計檢驗A(x)A(x)
“如果msb(x)=1msb(x)=1那麼A(x)=1A(x)=1;否則A(x)=0A(x)=0”,則有
AdvPRG[A,G]=Pr[A(G(k))=1]Pr[A(r)=1]=2/31/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,即算法AA能夠預測生成器GG的Advantage爲1/61/6

Secure PRGs(安全僞隨機生成器)

定義:設G:K{0,1}nG:\mathcal{K}\rightarrow\{0,1\}^n,如果所有高效(Efficient)的統計檢驗(Statistics tests)A:AdvPRG[A,G]A:Adv_{PRG}[A,G]是可忽略的(negligible),那麼GG是安全僞隨機生成器(Secure PRG)。

註釋:現在還不知道是否存在可證明的Secure PRG。一個Secure PRG是不可預測(unpredictable)的。

定理(Yao’82)

定理(Yao’82):設G:K{0,1}nG:\mathcal{K}\rightarrow\{0,1\}^n是一個PRG,如果i{0,1,,n1}\forall i\in\{0,1,\cdots,n-1\}GG輸出的第ii位都是不可預測的,那麼GG是一個Secure PRG。

註釋:這個定理只需要一位一位考慮是否不可預測,而不用整體的看,極大地簡化了判斷Secure PRG的方式。

computationally indistinguishable(計算不可區分)

定義:如果P1P_1P2P_2是在{0,1}n\{0,1\}^n上的兩個分佈函數,當所有高效的統計檢驗(Statistics tests)A:PrxP1[A(x)=1]PrxP2[A(x)=1]A:\big|Pr_{x\leftarrow P_1}[A(x)=1]-Pr_{x\leftarrow P_2}[A(x)=1]\big|是可忽略的(negligible),那麼P1P_1P2P_2是計算不可區分(computationally indistinguishable)的,記作P1pP2P_1 \approx_p P_2

一個例子

如果{kRK:G(k)}puniform({0,1}n)\{k\stackrel{R}{\leftarrow}\mathcal{K}:G(k)\}\approx_p uniform(\{0,1\}^n),PRG是安全的。

uniform是均勻分佈。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章