通用協議(一)

協議

協議:
協議的本質就是執行一個任務,在密碼這個領域有時也稱一個協議就是爲了計算一個函數,即爲求一個函數值,但是這任務或者說求函數值,往往不是有一方來單獨計算的,而是由多個參與方合作完成的任務,或者合作計算的值。

舉個例子,TCP|IP 的握手協議其實目的就是完成一個認證的任務,由兩方來聯和執行。又比如,在密碼學中的一個經典問題:百萬富翁問題;多個富翁聊天,想要知道到底誰最有錢,但是他們又都不願意泄露自己有多少錢,所以需要一方法,既能比較出哪個富翁最有錢,並且不泄露每個人自己的私有財產。(姚期智解決了這個問題,並且由於他在量子計算機理論和密碼學上的貢獻,他獲得了圖領獎)

密碼學中的協議

現代密碼學中一個重要問題就是,如何設計一個安全的協議來計算和完成預定的任務,特別是最好能夠探索到一種通用的方法學,設計能夠實現通用任務的協議。密碼學協議是密碼學中一個獨立的組成部分,它不同於使用那些使用單向函數的具體的加密解密方案,它本質上就是聯合各方在符合預期的條件下,完成預定的任務。也可以成爲就是安全多方計算(Multi-party computation)或者安全函數計算(SFE)。

密碼學中的通用協議

一個通用的多方(m方)參與的密碼學問題主題一般包括以下的三部分:
1.m個輸入:即爲各個參與方的本地輸入。
2.m個輸出:即爲經過協商後的各方輸出。
3.一個特定的隨機過程:描述的是計算過程本身。

如果以上的m個參與方互相信任,那麼這個問題就非常好解決,即各個參與方將自己的數據發送到信任的參與方身上,然後由受信任的參與方來計算結果,最後將得到的數據發送給其他參與方即可,哪怕大家信任的是外部的參與方。這裏存在一個關鍵的密碼學問題是這個可信的參與方在多大程度上能夠被互相不信任的參與方模擬。

如下圖所示:在多大程度上真實模型能夠模擬理想模型
一個例子
但是在現實中,存在各種各樣的模型。這些模型依賴於不同的假設,不同的信道設置,以及不同的敵手行爲,還有不同的可信方的設計,所以接下來將在不同的情況下,討論這種模擬是否成立。

基本定義與一些模型

模擬範式:一個協議是安全的,當一個可行的敵手在攻擊這個協議後所能獲得的任意內容均可以在一個理想的情況下獲得。在零知識中,任何驗證者可以從與證明者交互後獲得的內容,都可以通過斷言本身獲得。在安全多方計算的場景下,我們主要考慮和比較敵手的影響在真實執行過程中和理想的有可信第三方幫助的情況下執行的影響。

如果敵手能夠在真實設置中獲得的信息也能夠在理想的環境下獲得,那麼這個協議真實的設置就能模擬一個理想的設置,即爲模擬一個可信方。並且是絕對安全的。這意味着這些屬性在理想情況下滿足也能通過一個安全的協議在真實的情況下模擬執行。

上文中的安全往往意味着,各個參與方的私有數據得到保護,並且誠實方收到的數據是安全的。上文的定義可以應用在各個方面。

一些安全模型中的參數

Set-up assumptions:在算法的初始化階段,沒有任何的假設,除非用戶的特殊說明。但是和我們平時所用的方案類似,在set up 中,一些公共的參數往往是已知的,例如橢圓曲線中的參數,和其他算法中的參數設置。

The communication channels:通信信道的設計主要關注的是通信信道的隱私性和可靠性(privacy & reliablity)。其中一個標準的假設是,敵手可以監聽到通信內容(即是是在兩個可信的通信方之間);也就是說信道並不保證隱私性。同時,如果需要假設用戶無法獲得用戶之間可以獲得的誠實方之間信息,這個就稱之爲私有信道(private-channel model).
對於標準假設的信道來說,敵手不能獲取,修改,複製或者放出信息在通信信道上,其實就是說此處的敵手只能進行監聽,即半誠實行爲。當然廣播信道也存在上述的假設,至少在一定程度上標準的假設可以保證信道上的消息的真實性。

Computational limitations:一般情況下我們考慮PPT敵手(概率多項式時間敵手),然而在私有信道上也允許考慮無限計算能力敵手。個人覺得這是一種折中,因爲在私有信道上,敵手不能獲得其他額外的信息,只能通過進一步擴大他的計算能力在擴張其能力。

Restricted adversarial behavior:在文獻中被提及的最一般的敵手就是那些能腐敗參與方的敵手,並且能在協議執行到當下,並進一步決定腐敗哪一個參與者基於潛在的信息。換句話說,就是這類敵手,能夠腐敗其中的參與方,從而達到破壞協議的目的。

non-adptive:  非適應性的敵手,即在協議開始前,不誠實方的集合是固定的(當然,誠實方是並不知道的)。
adptive: 適應性的敵手,即在協議開始前,不誠實方的集合是不固定的,隨着協議的執行會有一些被腐敗的參與方參與進來。
但是一旦被腐敗則不能再變回好的參與方。
passive: 消極的敵手也稱爲以下的一些名字,semi-honest, passive,honest-but-curious.
active: 積極的敵手也稱爲malicious.

Restricted notions of security: 有一些協議是可以容忍的不公平的執行過程的,但是可以被不誠實的參與方檢測並終止;並且在終止之後,不誠實的參與方不能比不終止獲得的信息更多。這個協議一種可能的結果是,一些誠實的參與方沒有獲得自己想要的結果,但是寧願終止這個過程,這種安全被叫做(allows abort)允許中斷的,也稱之爲(allows premature suspension of the execution)。

Upper bounds on the number of dishonest parties:在一些安全多方計算模型中,當且僅當大多數參與方誠實才能保證安全,有的協議也稱之爲三分之二。

Mobile adversary:移動敵手,極爲這個敵手是可移動的,他可能會抓住一個參與方腐敗他,然後進一步,可能會釋放這個敵手,這就是一個移動的敵手。

一個例子:在一個多方協議中存在大多數的誠實方

現在假設存在一個MPC協議,及有m個輸入,以及有m個輸出,然後計算一個既定的過程;

我們考慮的第一個問題是這樣的:在一個多方的協議中,每一方在輸入之前都是有可能修改自己的輸入的,因爲這個輸入其實是本地的內容,但是這並不被認爲是影響安全,這是不可避免的問題。在MPC中的有一個潛在的原語,即多方計算中的情況在真實模型下發生的也能發生在理想模型中。在定義一個安全多方協議的時候,我們需要準確的指出什麼是不可避免的情況,在理想的情況下。

一個理想的模型各方執行如下:

  1. 第一步,不誠實的少數可以和其他誠實方一樣,將輸入發送給可信方。
  2. 第二步,可信方收到來自各方的數據後,計算確定的輸出,然後將輸出發送到相應的地方。
  3. 第三步, 當接受到輸出後,誠實方將這個接受到的值作爲輸出,不誠實的參與方會根據當親自己的輸入和接受的輸出選擇自己的輸出值。

這種少數的參與方的行爲是不可避免的在任何協議的執行過程中(即使是在有可信方存在情況下)。這就是爲什麼要如此定義理想模型的原因。現在,一個安全多方計算協議要去模擬這樣一個理想的過程。就是說,任何可能敵手的影響在真實環境中,都可以被一個敵手在理想的環境下模擬。

所有這裏有一個重要的問題,爲什麼理想協議要這樣設計?

我嘗試總計下,對於MPC,SMPC,SFE來說,本質上其實都是在執行一個任務,或者需要聯和計算一個函數值。對於理想的協議來說,最重要的一定安全,這個是毋庸置疑的,肯定的。好的,我們就假定有一個可信的第三方,直接引入這個比較強的安全方,任何敵手不能用任何方法攻破這個可信方,但是我們依然要深入考慮還有沒有什麼問題,其實任務或者函數已經安全了,唯一的問題就是這些通信方和可信方的通信問題了,經過上文的描述,我們已經發現了,唯一就是這個不可避免的交互方式,所以一個理想的協議(模型)就這樣設計了。

還有一個更加本質的問題,爲什麼要這樣做?

答案應該在[GMW86] 裏邊,等我看了,我在填補這個答案。

以上內容參考《Foundations.of.Cryptography.Volume.2.Basic.Applications(Oded.Goldreich)》

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