第四章 安全性分析
第三節 安全性證明
在上一節我們討論了各種攻擊法來分析為什麼無法成功攻擊PS的原 因,但是攻擊的方式不斷的在更新與改變,因此單純的討論是無法滿足我 們所需求的安全性的,所以本節將對我們的PS分三個步驟,做一個正規化 的證明,第一個步驟是要證明RealWorld(A)與IdealWorld(A*)是等價的,第 二個步驟則是要證明在傳遞訊息中利用ElGamal加密系統是安全的,第三 步則是證明我們的數位簽章是知識簽章。
第一項 理想世界與真實世界的不可分辨
正如第一節中所定義的,我們的協定對於簽章的私密性而言必須滿足兩 個性質,首先我們先來看正確性,我們直接檢視協定的運作,便可以發現 他滿足了正確性的要求。而在可擬性方面,我們需要做的就是在理想領域 中造出一個模擬器,使得RealWorld(A)=cIdealWorld(A*),也就是說針對攻 擊者A在真實領域中所有可能得到的謄本記錄,我們的模擬器必須對理想 領域中的攻擊者A*造出等價的謄本記錄,並且維持一致性。
讓我們回想之前對真實領域中與理想領域中攻擊者運作的定義,我們可 以發現在真實領域中的「傳遞訊息」以及「隨機聖賢」是在理想領域中不 存在的,因此我們必須要利用理想領域中的“履行"來造出相同的謄本記 錄,至於真實領域其他的運作都可以由理想領域的運作造出相同的謄本記 錄。在接下來的過程中,我們會造出模擬器,一旦無法造出真實領域的謄 本記錄,我們可以證明這個謄本記錄不會發生,否則我們可以造出一個演 算法來解決DDH 問題。
35
-我們定義攻擊者在真實領域所的傳遞訊息運作
-的輸入,並且設定其輸出為δ
'
。-2. 我們將公開金鑰的值設為Z,在B1(ρ,
r
3)這個動作中,將 設“True"否則輸出“False"。
p
我們所造出的辨別器D能夠成功分辨DDH數值組的機率為(1/2+ε),因此 我們知道攻擊者是不會去詢問( )
辨別器之後,已經使得IdealWorld(A)=RealWorld(A*),也就是說如果 真實領域的攻擊者A可以得到通行碼,那麼理想領域的攻擊者A*也可以得 攻擊者來解Diffie-Hellman 判決問題。ElGamal 加密系統包含了三個部分的演算法,分別是 KGen、Enc、Dec 分別介紹如下:
‧ KGen(1n)=((p,g,y),(p,g,x)):這個演算法的輸入是安 全參數n,在這個演算法中,首先我們隨機選取一個長度為n個位
38
-元的安全質數p,接著計算出在Zp*中的原生根g,然後隨機由Zp-1中 選取私密金鑰x,並且計算y=gx mod p。最後輸出金鑰配對((p,g,
y),(p,g,x))。
‧ Enc((p,g,y),m)=(gk mod p,m⋅yk mod p):其中訊息m是 Zp*這個群的元素,而k則是隨機由Zp-1所選出。
‧ Dec((p,g,x),(r,s))=s/rx mod p:解密的方式是將s除以r 的x次方,因為s/rx mod p= m⋅yk/gxy mod p=m mod p,這樣我們 就可以計算出我們的明文m。
EaGamal 加密系統的安全性是建立在 DDH 假設上,我們說對於一個 攻擊者A 在不知道私密金鑰的情況下,A 是無法辨別加密過後的明文的,
否則我們可以造出一個辨別器D 來解 DDH 問題,辨別器 D 如下圖所示:
39
-我們要判別的DH值是(X,Y,Z),在這裡我們將把攻擊者A當作一 個子程式來呼叫。首先我們將ElGamal加密系統中的公開金鑰設為Y,攻擊 者選取兩個明文m0與m1,接著我們由{0,1}中隨機選取一個值b,並且將
公開金鑰Y 辨別器D
(m0,m1) input(X,Y,Z)
1.Randomly 攻擊者 A
choose b∈{0,1} (mb⋅Z mod p,X)
b’
2. If m=m’ output T Else output F
(mb⋅Z mod p,X)當作密文傳送給攻擊者,此時攻擊者會輸出b’,我們比 對b與b’的值,如果兩者相等,那麼表示(X,Y,Z)這數值組中的Z等於 DH(X,Y),否則表示Z是一個隨機的值。假設攻擊者A能夠成功辨別加 密過後的訊息的機率是一個不可忽略的值ε,那麼我們所造出的D正確地 解DDH問題的機率就是(1/2+ε)。
第三項 數位簽章的安全性
如果我們能證明我們的數位簽章是知識簽章也就是零知識非互動式證 明系統,那麼便可以達到私密性以及不可偽造性的要求。在這裡我們先將 我們協定所產生的數位簽章轉換為零知識互動式證明系統並且證明之,接 著再利用U. Feige、A. Fiat 與 A. Shamir 在[18]中所提出的方式,將這個互 動式證明系統轉換為利用雜湊函數取代挑戰的零知識非互動式證明系 統,也就是經由我們協定所產生的數位簽章。
40
< P , V > ( p , g
1, g
2, g
3, z ) z=g
1πg
2αg
3βmod pProver Verifier
r
1, r
2, r
3∈RZ
qa p
g g g
a =
1r1 2r2 3r3mod
c c∈
R{0,1}w
1, w
2, w
3verify if
w
1=r
1-cπ mod q
p z
g g g
a
=? 1w1 2w2 3w3 ⋅ c modw
2=r
2-cα mod q
w
3=r
3-cβ mod q
我們假設證明者P 擁有 π、α、β 這三個秘密資訊,而驗證者 V 要利用 成,另外我們說零知識的模擬是黑盒子模擬(Black Box Simulation),也就 是說模擬器將驗證者視為黑盒子,我們不能將驗證者拆解而去瞭解其內部
-)
樹T的重(heavy)階層(level),否則 會輸出接受的 機率是可以忽略的值,如果以Ni來表示T在第i個階層的點(node)個數,-那麼重階層就是指Ni+1≧0.75Ni。我們的知識擷取者E完成第一步的機率是
-而我們的模擬器M*運作方式如下:
(Polynomial time bounded)內的。所以我們的
< P , V > ( p , g
1, g
2, g
3, z )
是一 個零知識互動式證明系統,接下來我們對< P , V > ( p , g
1, g
2, g
3, z )
做一些修改 成為下圖的形式,接著再根據U. Feige、A. Fiat與A. Shamir在[18]中所提出 的方式,我們便可以將轉換成零知識非互動式證明系統:46
-可偽造性這兩個性質。
我們將協定的安全性分成三個步驟討論,經由第一項第二項以及第三 項的證明,我們可以確定我們的 PS 協定是安全的無論是在做身份確認的 動作、產生數位簽章過程或是最後產生出的數位簽章,都可以滿足我們所 定義的私密性以及不可偽造性的要求,因此我們說我們的協定 PS 是安全 無虞的。