本篇文章要介紹的內容包括:可忽略的(negligible)、僞隨機數生成器(PRG)、Statistical tests(統計檢驗)、Advantage、Secure PRGs(安全僞隨機生成器)、computationally indistinguishable(計算不可區分)。
明天再補。
可忽略的(negligible)
首先我們嘗試用實踐的角度理解,如果ε≥1/230,那麼ε是不可忽略的(non-neg),因爲很有可能在1GB的數據中出現一次;如果ϵ≤1/280,那麼ε是可忽略的(negligible),在很多很多的數據中也不太可能出現一次。
從理論的角度來說,ε是一個Z≥0→R≥0的函數並且
ε是不可忽略的(non-neg),當且僅當∃d:ε(λ)≥1/λd.
ε是可忽略的(negligible),當且僅當∀d,λ≥λd:ε(λ)≤1/λd.
理解:當ε是不可忽略的(non-neg),
ε(λ)≥λd1≥λd+λd−1+⋯+λ01,
即ε≥1/poly,ε也是大於等於某個多項式的倒數的。
類似的,當ε是可忽略的(negligible),如果λ足夠大,有ε≤1/poly,ε是小於等於所有多項式的倒數的。
三個例子
例1:ε(λ)=1/2λ是可忽略的(negligible)。
簡單說明:無論d取什麼值,λ總是可以取對應的值,使得2λ≥λd。
例2:ε(λ)=1/λ1000是不可忽略的(non-neg)。
簡單說明:當λ≥1時,可取d=1001;當0≤λ<1時,可取d=999。
例3:ε(λ)={1/2λ,1/λ1000,當λ爲奇數時;當λ爲偶數時.,ε(λ)是不可忽略的(non-negligible)。
簡單說明:因爲要對∀d都成立,當λ爲偶數時,根據例2是不可忽略的,所以ε(λ)不可忽略。
僞隨機數生成器(PRG)
定義:設G:K→{0,1}n,如果說[k←RK,輸出G(k)]和[r←R{0,1}n,輸出r]是不可區分(indistinguishable)的,那麼就說G是僞隨機數生成器(PRG)。
註釋:r←R{0,1}n表示從{0,1}n均勻地取出一個數r(即,均勻抽樣)。
不可區分(indistinguishable)是說兩者非常非常接近,相差很小。
定義中因爲是均勻抽樣,所以G(k)和r的不可區分是從他們的概率分佈來看的,他們的任意兩個數輸出的概率相差地非常非常小,小到幾乎可以忽略(negligible,如≤230),多項式時間內看不出兩者的區別。
Statistical Tests(統計檢驗)
定義:統計檢驗(Statistical test)是一個算法A(x),x∈{0,1}n,且滿足A(x)∈{0,1}。
註釋:假設算法A(x)用來判斷x是否是隨機數,若是隨機數,則A(x)輸出1;若不是隨機數,A(x)輸出0。
兩個例子
例1:如果“算法A(x)判斷x是否是隨機數“是通過0和1的個數是否很接近得到的,那麼可以如下定義A(x):
A(x)=1當且僅當∣#0(x)−#1(x)∣≤10⋅n,其中#0(x)表示x中0的個數,#1(x)表示x中1的個數。
例2:如果“算法A(x)判斷x是否是隨機數“是通過連續兩個0的個數是否接近41n得到的,那麼可以如下定義A(x):
A(x)=1當且僅當∣#00(x)−4n∣≤10⋅n,其中#00(x)表示x中00的個數。
PRG的Advantage
定義:定義爲算法A是僞隨機數生成器G相對於隨機數的Advantage爲
AdvPRG[A,G]=∣∣Pr[A(G(k))=1]−Pr[A(r)=1]∣∣,其中A(x)是統計檢驗(Statistical test),G:K→{0,1}n,以及r←R{0,1}n。
註釋:如果Pr[A(G(k))=1]是算法A判定G(k)是隨機數的概率,Pr[A(r)=1]是算法A判定r是隨機數的概率,那麼AdvPRG[A,G]表示G(k)在算法A下離均勻抽樣r的距離,越接近均勻抽樣透露的原信息就越少,越不容易預測G(k),所以AdvPRG[A,G]越小越好。
一個例子
現在有僞隨機數生成器G:K→{0,1}n,有32的概率使得msb(G(k))=1(其中msb(x)表示二進制下x的最高位),定義統計檢驗A(x)爲
“如果msb(x)=1那麼A(x)=1;否則A(x)=0”,則有
AdvPRG[A,G]=∣∣Pr[A(G(k))=1]−Pr[A(r)=1]∣∣=∣∣2/3−1/2∣∣=1/6,即算法A能夠預測生成器G的Advantage爲1/6。
Secure PRGs(安全僞隨機生成器)
定義:設G:K→{0,1}n,如果所有高效(Efficient)的統計檢驗(Statistics tests)A:AdvPRG[A,G]是可忽略的(negligible),那麼G是安全僞隨機生成器(Secure PRG)。
註釋:現在還不知道是否存在可證明的Secure PRG。一個Secure PRG是不可預測(unpredictable)的。
定理(Yao’82)
定理(Yao’82):設G:K→{0,1}n是一個PRG,如果∀i∈{0,1,⋯,n−1},G輸出的第i位都是不可預測的,那麼G是一個Secure PRG。
註釋:這個定理只需要一位一位考慮是否不可預測,而不用整體的看,極大地簡化了判斷Secure PRG的方式。
computationally indistinguishable(計算不可區分)
定義:如果P1和P2是在{0,1}n上的兩個分佈函數,當所有高效的統計檢驗(Statistics tests)A:∣∣Prx←P1[A(x)=1]−Prx←P2[A(x)=1]∣∣是可忽略的(negligible),那麼P1和P2是計算不可區分(computationally indistinguishable)的,記作P1≈pP2。
一個例子
如果{k←RK:G(k)}≈puniform({0,1}n),PRG是安全的。
uniform是均勻分佈。