裁決協定

在日常生活中,幾乎所有的事情都有非正式的協定:電話訂貨、玩撲克、選舉中投票,沒有人認真考慮過這些協定,這些協定隨著時間的推移而發展,人們都知道怎樣使用它們,而且它們也很有效。

越來越多的人通過計算機網路交流,從而代替了面對面的交流。計算機需要正式的協定來完成人們不用考慮就能做的事情。

密碼協定(cryptographic protocol)是使用密碼學的協定。參與該協定的各方可能是朋友和完全信任的人,或者也可能是敵人和互相完全不信任的人。裁決協定就是密碼學協定中一項。

基本介紹

  • 中文名:裁決協定
  • 引用範圍:密碼學
協定概述,密碼協定,協定目的,裁決協定理解,協定中的角色,仲裁協定,裁決協定,

協定概述

協定(protocol)是一系列步驟,它包括兩方或多方,設計它的目的是要完成一項任務。這個定義很重要:“一系列步驟”意味著協定是從開始到結束的一個序列,每一步必須依次執行,在前一步完成之前,後面的步驟都不能執行;“包括兩方或多方”意味著完成這個協定至少需要兩個人,單獨的一個人不能構成協定,當然單獨的一個人也可採取一系列步驟去完成一個任務(例如烤蛋糕),但這不是協定(必須有另外一些人吃蛋糕才構成協定);最後,“設計它的目的是要完成一項任務”意味著協定必須做一些事。有些東西看起來像協定,但它不能完成一項任務,那也不是協定,只是浪費時間而已。
協定還有其他特點:
(1)協定中的每個人都必須了解協定,並且預先知道所要完成的所有步驟。
(2)協定中的每個人都必須同意並遵循它。
(3)協定必須是清楚的,每一步必須明確定義,並且不會引起誤解。
(4)協定必須是完整的,對每種可能的情況必須規定具體的動作。

密碼協定

密碼協定(cryptographic protocol)是使用密碼學的協定。參與該協定的各方可能是朋友和完全信任的人,或者也可能是敵人和互相完全不信任的人。密碼協定包含某種密碼算法,但通常協定的目的不僅僅是為了簡單的秘密性。參與協定的各方可能為了計算一個數值想共享它們的秘密部分,共同產生隨機系列,確定相互的身份或者同時簽署契約。在協定中使用密碼的目的是防止或發現竊聽者和欺騙。如果你以前沒有見過這些協定,它們會從根本上改變你的思想,相互不信任的各方也能夠在網路上完成這些協定。一般地,這能夠陳述為:
不可能完成或知道得比協定中規定的更多。

協定目的

在日常生活中,幾乎所有的事情都有非正式的協定:電話訂貨、玩撲克、選舉中投票,沒有人認真考慮過這些協定,這些協定隨著時間的推移而發展,人們都知道怎樣使用它們,而且它們也很有效。
越來越多的人通過計算機網路交流,從而代替了面對面的交流。計算機需要正式的協定來完成人們不用考慮就能做的事情。如果你從一個州遷移到另一個州,你可能會發現投票亭與你以前使用的完全不同,你很容易適應它。但計算機就不那么靈活了。
許多面對面的協定依靠人的現場存在來保證公平和安全。你會交給陌生人一疊現金去為你買食品嗎?如果沒有看到洗牌和發牌,你願意和陌生人玩撲克嗎?如果沒有匿名的保證,你會將秘密投票寄給政府嗎?
那種假設使用計算機網路的人都是誠實的想法,真是太天真了。天真的想法還有:假設計算機網路的管理員是誠實的,假設計算機網路的設計者是誠實的。當然,絕大多數人是誠實的,但是不誠實的少數人可能招致很多損害。通過規定協定,可以查出不誠實者企圖欺騙的把戲,還可開發挫敗這些欺騙者的協定。
除了規定協定的行為之外,協定還根據完成某項任務的機理,抽象出完成此任務的過程。不管是PC機還是VAX機,通信協定是相同的。我們能夠考查協定,而不用囿於具體的實現上。當我們堅信有一個好的協定時,在從計算機到電話再到智慧型烘箱的所有事情中,我們都能夠實現它。

裁決協定理解

協定中的角色

為了幫助說明協定,我列出了幾個人作為助手(圖1)。Alice和Bob是開始的兩個人。他們將完成所有的兩人協定。按規定,由Alice發起所有協定,Bob回響。如果協定需要第三或第四人,Carol和Dave將扮演這些角色。由其他人扮演的專門配角,將在後面介紹。
裁決協定
圖1 劇中人

仲裁協定

仲裁者(arbitrator)是在完成協定的過程中,值得信任的公正的第三方(見圖2),“公正”意味著仲裁者在協定中沒有既得利益,對參與協定的任何人也沒有特別的利害關係。“值得信任”表示協定中的所有人都接受這一事實,即仲裁者說的都是真實的,他做的都是正確的,並且他將完成協定中涉及他的部分。仲裁者能幫助互不信任的雙方完成協定。
裁決協定
圖2 仲裁協定
在現實社會中,律師經常作為仲裁者。例如,Alice要賣汽車給不認識的Bob。Bob想用支票付賬,但Alice不知道支票的真假。在Alice將車子轉給Bob前,她必須查清支票的真偽。同樣,Bob也並不相信Alice,就像Alice不相信Bob一樣,在沒有獲得所有權前,也不願將支票交與Alice。
這時就需要雙方都信任的律師。在律師的幫助下,Alice和Bob能夠用下面的協定保證互不欺騙。
(1)Alice將車的所有權交給律師。
(2)Bob將支票交給Alice。
(3)Alice在銀行兌現支票。
(4)在等到支票鑑別無誤能夠兌現的時間之後,律師將車的所有權交給Bob。如果在規定的時間內支票不能兌現,Alice將證據出示給律師,律師將車的所有權和鑰匙交還給Alice。
在這個協定中,Alice相信律師不會將車的所有權交給Bob,除非支票已經兌現;如果支票不能兌現,律師會把車的所有權交還給Alice。而Bob相信律師有車的所有權,在支票兌現後,將會把車的所有權和鑰匙交給他。而律師並不關心支票是否兌現,不管在什麼情況下,他只做那些他應該做的事,因為不管在哪種情況下,他都有報酬。
在這例子中,律師起著擔保代理作用。律師也作為遺囑和契約談判的仲裁人,還作為各種股票交易中買方和賣方之間的仲裁人。
銀行也使用仲裁協定。Bob能夠用保付支票從Alice手中購買汽車:
(1)Bob開一張支票並交到銀行。
(2)在驗明Bob的錢足以支付支票上的數目後,銀行將保付支票交與Bob。
(3)Alice將車的所有權交給Bob,Bob將保付支票交給Alice。
(4)Alice兌現支票。
這個協定也是有效的,因為Alice相信銀行的證明。Alice相信銀行保存有能付給她的Bob的錢,不會將錢用於蚊蟲滋生的國家財政不穩的房地產業務。
公證人是另一種仲裁者,當Bob從Alice接收到已公證的檔案時,他相信Alice簽署的檔案是她自己親自簽署的。如果有必要,公證人可出庭證實這個事實。
仲裁者的概念與人類社會一樣悠久。總是有那么一些人——統治者、牧師等,他們有公平處理事情的權威。在我們的社會中,仲裁者總是有一定社會地位和聲望的人。而背叛公眾的信任是很危險的事情。例如,視擔保為兒戲的律師幾乎肯定會被開除出律師界。現實世界裡並不總是如此美好的,但它確是理想的。
這種思想可以轉化到計算機世界中,但計算機仲裁者有下面幾個問題:
(1)如果你知道對方是誰,並能見到他的面,那么很容易找到和相信中立的第三方。而互相懷疑的雙方很可能也懷疑在網路別的什麼地方並不露面的仲裁者。
(2)計算機網路必須負擔仲裁者的費用。就像我們知道的律師費用,誰想負擔那種網路費用呢?
(3)在任何仲裁協定中都有延遲的特性。
(4)仲裁者必須處理每一筆交易。任何一個協定在大範圍執行時,仲裁者是潛在的瓶頸。增加仲裁者的數目能緩解這個問題,但費用將會增加。
(5)由於在網路中每人都必須相信仲裁者,對試圖破壞網路的人來說,仲裁者便是一個易受攻擊的弱點。
儘管如此,仲裁者仍扮演一個角色。在使用可信任的仲裁協定中,這個角色將由Trent來扮演。

裁決協定

由於雇用仲裁者代價高昂,仲裁協定可以分成兩個低級的子協定(subprotocol):一個是非仲裁子協定,執行協定的各方每次想要完成的;另一個是仲裁子協定,僅在例外的情況下,即有爭議的時候才執行。這種特殊的仲裁者叫做裁決者(參見圖3)。
裁決協定
圖3 裁決協定
裁決者也是公正和可信的第三方。他不像仲裁者,並不直接參與每一個協定。只有需要確定協定是否公平地執行時,才將他請來。
法官是職業的裁決者。法官不像仲裁者,僅僅在有爭議時才需要他出場,Alice和Bob可以在沒有法官的情況下訂立契約。除非他們中有一個人把另一人拖到法院,否則法官決不會看到契約。
契約簽字協定可以歸納為下面的形式。
非仲裁子協定(每次都執行):
(1)Alice和Bob談判契約的條款。
(2)Alice簽署契約。
(3)Bob簽署契約。
裁決子協定(僅在有爭議時執行):
(1)Alice和Bob出現在法官面前。
(2)Alice提出她的證據。
(3)Bob也提出他的證據。
(4)法官根據證據裁決。
裁決者和仲裁者之間的不同是裁決者並不總是必需的。如果有爭議,法官被請來裁決。如果沒有爭議,就沒有必要請法官。
已經有了計算機裁決協定。這些協定依賴於與協定有關的各方都是誠實的。如果有人懷疑被欺騙時,一個中立的第三方能夠根據存在的數據正文文本判斷是否有人在欺騙。在好的裁決協定中,裁決者還能確定欺騙人的身份。裁決協定是為了發現欺騙,而不是為了阻止欺騙。發現欺騙起了防止和阻礙欺騙的作用。

相關詞條

熱門詞條

聯絡我們