Protocol-Design
為什麼我們要實現一個協議?
一般來說,在我們設計了一個安全的密碼協議並確保它是有效的(例如,通過複雜性分析)之後,我們就會實現它。
問題:
- 我們是否為了概念驗證而實施它?
- 我們是否實施它來支持我們聲稱該協議是有效的?
我假設這個問題與學術工作有關:如果我們已經通過複雜性分析知道協議的效率,為什麼還要實施它?答案很大程度上取決於協議的類型。然而,答案通常是理論上的複雜性分析通常不足以理解具體的效率。如果“以前最知名的協議”需要一定數量的操作,而您的改進完全相同但操作更少,那麼這就足夠了。但是,這種情況很少見。相反,您的協議可能具有更少的冪運算但更多的通信;它可能具有較少的對稱操作,但記憶體效率較低。如果不實施它,幾乎不可能真正知道它更有效。
另一個問題,在安全多方計算(我工作的地方)中肯定是這種情況,是實現幫助我們了解瓶頸是什麼。事實上,我們經常對“昂貴”的部分感到驚訝。僅舉一個例子,在這篇論文中(對不起,自引用,但這只是一個很好的說明性例子),我們非常驚訝地發現大部分時間都在進行矩陣求逆,這與加密操作的成本。如果不實施,我們永遠不會發現這一點。
作為一個領域,我們必須改進的一件事是我們在這個意義上的工作質量。我們沒有很好的基準,實現和比較都是非常臨時的。
我將以最後一條評論結束。儘管如此,並非所有新協議都需要實施才能發布。當協議包含一個重要的新想法,或者當它明顯優於以前的工作時,它可以在沒有實現的情況下發布。但是,實施的後續工作始終很重要。(當然,聲稱是漸近和理論效率的協議永遠不需要實現。)