Multiparty-Computation

布爾電路:一個門的輸出線可以被下一層的許多不同門使用嗎?

  • February 8, 2022

有兩種典型的使用布爾電路的安全多方計算範式,即亂碼電路和基於秘密共享的布爾計算。眾所周知,亂碼電路可以逐層建構,其中每個亂碼門的扇入為2,扇出為1(即兩根輸入線和一根輸出線)。我們在基於秘密共享的布爾電路中也有類似的結構。但是,我沒有找到任何明確的評論,即一個門的輸出線是否可以被下一層的多個門同時使用。在布爾電路(例如,this)的一些可用實現中,不使用多於一次的輸出線。

在我看來,輸出線的重複使用不會破壞整個電路的安全性,因為通過觀察亂碼門或秘密共享輸出似乎不會洩露任何資訊。我錯了嗎?

但是,我沒有找到任何明確的評論,即一個門的輸出線是否可以被下一層的多個門同時使用。

你當然可以這樣做。

事實上,在您連結到的儲存庫中有一些範例,例如3488AES-128 實現的線被使用了兩次。

從某種意義上說,另一個答案是正確的,是的,現在亂碼電路支持高扇出是標準的。但情況並非總是如此,而且亂碼電路沒有什麼基本的東西可以自動保證這一點。

亂碼電路的基礎論文是第一個系統化亂碼電路的符號和術語的論文。他們明確強調了精確電路模型的重要性:

明確定義電路很重要有幾個原因(由於許多原因,不僅僅是 DAG)。首先,有許多“邊界情況”,只有約定可以決定某物是否是有效電路。 $ {}^{8} $ 邊界情況很重要;我們一再發現,如果亂碼方案正確,退化或分析不足的電路類型會產生重大影響。 $ {}^{9} $ 除此之外,對什麼是電路缺乏一致意見甚至會導致非正式的討論成為問題。 $ {}^{10} $

本節的腳註很有啟發性。腳註 9 特別給出了兩個在已發布方案中處理不當的扇出範例。

  1. 例如,輸入線可以是輸出線嗎?輸出線可以成為另一個門的輸入線嗎?輸出線可以使用兩次來形成輸出嗎?一根線可以兩次餵一個門嗎?常數可以餵一個門嗎?門可以計算不對稱函式嗎 $ G(x,y) = \overline{x} \lor y $ ?
  2. 例如,Naor、Pinkas 和 Sumner的方案不能處理被用作另一個門的輸入兩次的導線(就像從 NAND 製作非門時一樣),這是一個沒有明確說明的限制。Beaver、Micali 和 Rogaway的方案存在缺陷,因為與扇出相關的門標籤依賴 $ \ge $ 2個門。
  3. 例如,是否從每個門發出單根導線,一根導線連接到它饋送的所有門,或者從門的輸出到它饋送的每個門是否有單獨的導線?(對我們來說,這將是第一個。)這些是電線的不同含義

亂碼電路的基礎以來,扇出通常不是問題。標準方法是對門進行編號,然後將門編號作為隨機數包含在用於混淆該門的密碼算法中。這確保不會意外重複使用加密材料來混淆不同的門,即使輸入線標籤用於多個門。

引用自:https://crypto.stackexchange.com/questions/83500