现代密码学(五)——零知识证明
? ? ? ?零知識證明(Zero—Knowledge Proof),是由S.Goldwasser、S.Micali及C.Rackoff在20世紀(jì)80年代初提出的。它指的是證明者能夠在不向驗證者提供任何有用的信息的情況下,使驗證者相信某個論斷是正確的。零知識證明實質(zhì)上是一種涉及兩方或更多方的協(xié)議,即兩方或更多方完成一項任務(wù)所需采取的一系列步驟。證明者向驗證者證明并使其相信自己知道或擁有某一消息,但證明過程不能向驗證者泄漏任何關(guān)于被證明消息的信息。大量事實證明,零知識證明在密碼學(xué)中非常有用。如果能夠?qū)⒘阒R證明用于驗證,將可以有效解決許多問題。
?
在最小泄露協(xié)議中零知識證明需要滿足下述兩個性質(zhì):
(1)正確性。P(示證者)無法欺騙V(驗證者)。換言之,若P不知道一個定理的證明方法,則P使V相信他會證明定理的概率很低。
(2)完備性。V無法欺騙P。若P知道一個定理的證明方法,則P使V以絕對優(yōu)勢的概率相信他能證明。
在零知識協(xié)議中,除滿足上述兩個條件以外,還滿足下述的第三個性質(zhì)。
(3)零知識性。V無法獲取任何額外的知識。
我們把性質(zhì)(1)和(2)稱為零知識證明的正確性和完備性,而性質(zhì)(3)稱為零知識性。
?
零知識證明分為交互式零知識證明和非交互式零知識證明:
交互式零知識證明:
? ? ? ? V向P提問,若P知道證明則可正確回答V的提學(xué)問;若P不知道證明,則對提問給出正確回答概率僅為1/2。V以足夠多的提問就可推定P是否知道證明,且要保證這些提問及其相應(yīng)的回答不會泄露出有關(guān)P所知道的知識。
非交互式零知識證明:
? ? ? ?非交互式的證明則不需要這種互動。但是會額外需要一些機器或者程序,并且需要一串試驗序列,這個試驗序列不能被任何人知道。有了這么一個程序和試驗序列,證明機就能自動算出一個證明,并且能防止任何一方作假。
? ? ? ?對于非交互式零知識證明,示證者可以公布證明,任何人可以花時間檢驗該證明的正確性,而交互式只能驗證在交互時是正確的。
?
零知識證明的基本協(xié)議:
?設(shè)P知道咒語,可以打開C和D之間的機關(guān)門,不知道者將走向死胡同中。
1)V站在A點;
2)P進入洞中任意一點C或D;
3)當(dāng)P進洞之后,V走到B點;
4)V叫P:(a)從左邊出來,或(b)從右邊出來;
5)P按要求實現(xiàn)(以咒語,即解數(shù)學(xué)難題);
6)P和V重復(fù)執(zhí)行(1)~(5)共n次。
? ? ?若P不知道咒語,則只有50%的概率猜中V的要求,協(xié)議執(zhí)行n次,則只有的機會完全猜中。
?
另一種形式:
1)P用其信息和某種隨機數(shù)將難題轉(zhuǎn)成另一種難題,且與原來的同構(gòu),A可用其信息和隨機數(shù)解新的難題;
2)P想出新的難題的解;
3)P將新難題出示給V,但V不能由此新難題得到有關(guān)原問題或其解;
4)V向P提下述問題之一:(a)向V證明老和新問題是同構(gòu)的,(b)公開(2)中的解,并明它是新難題的解;
5)P按V的要求執(zhí)行;
6)P和V重復(fù)執(zhí)行(1)~(6)共n次。
? ? ? ?必須仔細選擇適當(dāng)問題和隨機信息,使V即使重復(fù)執(zhí)行多次協(xié)議也得不到有關(guān)原問題的任何信息。并非所有的“難題”都可用于零知識證明,但有不少可用于此。
?
用基于離散對數(shù)問題構(gòu)造零知識證明:
公鑰:,且??,P要向V證明他擁有私鑰,但并不像讓V知道私鑰的任何信息;
1)V選擇一個隨機數(shù),并計算??,并將發(fā)送給P;
2)P收到之后,計算?=???,將發(fā)送給V;
3)V收到之后,計算?=???,判斷是否成立;
4)重復(fù)(1)~(3)n次。
這個的安全性依賴于解決離散對數(shù)問題的困難性。
?
總結(jié)
以上是生活随笔為你收集整理的现代密码学(五)——零知识证明的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 七十年代译制片机器人的_老电影合集,怀旧
- 下一篇: 根据分钟数换算成天/小时/分钟
