第四十六個知識點 在Sigma協議中,正確性,公正性和零知識性意味着什么


第四十六個知識點 在Sigma協議中,正確性,公正性和零知識性意味着什么

Sigma協議

Sigma協議是Alice想要向Bob證明一些東西的協議(Alice知道一些秘密)。他們有下面的一般范式:Alice知道一個秘密,Alice和Bob都分享了一些相同的信息。因此:

  • Alice給Bob發送了一個值,這個值叫做承諾(commitment)。
  • Bob均勻的隨機選擇一個挑戰(challenge)發送給Alice。
  • Alice計算一個回應(response)發送給Bob。
  • Bob檢查回應,接受或者拒絕Alice的解釋。

傳說中,如果你把上面的過程畫成一個圖,這個圖看起來像sigma(\(\sigma\)),所以這個協議就叫Sigma協議。(原來是這樣啊2333)

在密碼學中,我希望Sigma協議有下面的屬性:

  • 正確性,如果每個人都做了他們應該做的,Bob應該接受。
  • 公正性,如果Alice撒謊了,Bob可以知道(Alice不能欺騙Bob讓他接受錯誤的結果)。
  • 零知識性,如果Alice說真話了,那么Bob不能知道她的秘密輸入是什么。

一個更一般的理解

在提供了一個粗略的概述之后,我們現在根據David的[博士論文]https://www.cs.bris.ac.uk/~bernhard/thesis.pdf提供了一個更正式的處理方法。

定義Sigma協議

\(k\)是一個域。我們對一個線性函數感興趣\(f:W \rightarrow X\),從\(k\)維空間到另一個空間的映射,其中Alice和Bob都知道一些公共的\(x \in X\)。同時Alice也知道一個秘密\(w \in W\),使得\(f(w) = x\)。Alice想要給Bob證明她知道\(x\)的原像。

如果很多密碼學都在橢圓曲線上完成。橢圓曲線是一組\(P=(x,y)\)形式的點和一個特殊的點“在無窮遠處”,它是曲線的一個特別的成員。這些點都滿足一些方程,最重要的是橢圓線中的加法使得橢圓曲線滿足群的條件。每次由一個大素數\(p\)開始,在基\(k = F_p\)上計算,同時考慮點\(P\)\(E_p = E \cap \mathbb F_p \times \mathbb F_p\)

許多橢圓曲線協議從使用點乘法生成密鑰對開始:每個人協商一個共同的公共的基點\(P\)。然后一個人能選擇一個密鑰\(x \in F_p\)。然后計算相關的公鑰\(Y = x \cdot P\)。如果Alice想要在某處注冊她的公鑰,如果注冊員要求她證明她知道相關的密鑰,否則她可以將其他人的密鑰注冊為自己的密鑰,這對安全性是有好處的。但是愛麗絲當然不應該把她的秘密鑰匙告訴登記員。例如,她可以使用Sigma協議來證明她知道自己聲稱知道的密鑰,而不需要透露。

如果一個人能采取\(W = \mathbb F_p\)作為一個\(k\)維向量,同時\(X = E_p\),點乘固定的基點,特殊的,\(f:W \rightarrow X\)\(w \mapsto w \cdot P\)是一個線性函數。矩陣乘積函數也是如此。假設Alice有一個密鑰\(x\)有一個公鑰\(Y = x \cdot P\),同時有人給她發送了一個ElGamal密文\((C,D)\)。她想要解密,然后證明她已經成功的解密了,一種方式就是計算一個解密\(S = x \cdot C\)。解密就是\(D-S\),任何人都能從\((C,D)\)\(S\)計算出來。因此ALice想要展示她知道\(x\)\(Y = x \cdot P\)\(S = x \cdot C\)。因此我們設置\(W = k,X = E_p \times E_p\),同時\(f(x)=(x \cdot P,x \cdot C)\)線性函數\(f:W \rightarrow X.\)

Sigma協議\(f:W->X\)就是下面的結構。Alice知道\((x,w) \in X \times W\)\(f(w) = x\),Bob知道\(x\)

1.Alice選擇\(r \in W\)隨機的。設置\(A = f(r)\),然后把\(A\)發送給Bob。這就是承諾(Alice對\(r\)進行承諾)。

2.Bob選擇一個\(c \in k\)隨機的,然后發送給Alice。這就是挑戰。

3.Alice計算\(s = r+c \cdot w\)。然后發送\(s\)給Bob。

4.如果\(f(s) = A+c \cdot x\)成立,Bob接受。

讓我們來看Sigma協議的性質。

正確性

在剛才的協議中,正確性意味着如果每個人都遵守協議,那么協議按部就班的進行。在Sigma協議的上下文中,這意味着Alice和Bob這么做,Bob最后應該接受狀態。這是對的因為\(f\)是線性的。

公平性

公平性意味着Alice不能證明一個錯誤的陳述。大多數人都會很迷惑因為這是他們首先知道的是Schnoor協議,證明\(y = x \cdot P\),因此Alice證明這樣的\(x\)存在。但是這是顯而易見的!(Alice也證明了她知道\(x\),雖然很有趣,但這是另一個屬性了。)讓我們看看例子,Alice證明\(S\)是正確的在公鑰\(Y\)下對\(C\)的解密。因此,Alice證明\(x\)存在,使得\(Y = x \cdot P\)\(S = x \cdot C\)。這里說的就是函數\(f\)的原像是二維k-向量空間\(X\)的一維子空間。在我們的表示中,公平性意味着Bob不會接收(除非以可忽略概率)不是\(f\)原像的\(x\)

Sigma協議是公平的。實際上,協議的屬性不止於此,它存在的性質叫做特殊公平性。非正式的,考慮Alice已經發送給Bob的承諾\(A\)。針對哪個\(c\)(Bob提供的),Alice能找到一個\(r\)使得Bob接受?如果Alice存在\(1/|K|\)的可能讓Bob接受(\(|K|\)是指數空間大的)。特殊公平性就是說,如果Alice能讓Bob從\(|K|\)個挑戰中找到兩個挑戰,那么這兩個挑戰分別是\((c,s)\)\((c^{'},s^{'})\)。通過代數計算我們就有\(d = (c-c^{'})^{-1},w = d \cdot (s-s^{'})\)。這樣計算出\(w\)那么只能滿足其中一個等式。

零知識性

這個協議是公平的,Bob很高興。但是Alice仍然需要知道Bob不能從協議中知道\(w\)的值。實際上Alice要的更多,盡管Alice向Bob證明的秘密,但是Bob不應該能向Charlie證明Bob知道這個秘密。零知識說得更多,Bob從協議中什么也沒學到,除了Alice知道\(w\)

這個Sigma協議的零知識證明......並不存在!與人們在課本零知識一章中學習Sigma協議后可能會猜測的相反,Sigma協議通常不是零知識,而密碼學的初學者在考試時最好記住這一點。(他們滿足了一個較弱的要求,稱為誠實驗證者零知識。)

然而,在零知識的背景下討論Sigma協議並不是完全武斷的:人們可以通過幾種方式使它們成為零知識,其中最實用的是使它們成為非交互的。但這是下周的話題……


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM