Diffie-Hellman

來自 DH 密鑰交換的私鑰知識證明

  • September 21, 2021

給定一個計算 Diffie-Hellman (DH) 假設成立的組和生成器G。

假設有一組隨機選擇的私鑰*{a, b, c, d, e,…}和相應的公鑰集{A, B, C, D, E,…}計算為A=aG* . 每個公鑰都公開連結到其相應的使用者/所有者。

Alice 可以使用其私鑰a和 Bob 的公鑰B來計算K=aB。此K用作兩個使用者的標籤,可以公開使用,因為它不會用於加密消息,僅作為參考。Bob 可以通過知道 Alice 正在發出請求(假設這一點)、計算K’=bA並檢查是否K=K’來驗證這一點。只有 Alice 和 Bob 可以知道這個K與他們有關。

從計算 DH 假設來看,K對其他使用者沒有意義。K是一種為相關使用者(在本例中為 Alice 和 Bob)跟踪此組合的方法。我現在假設這個K對於每個私鑰組合都是唯一的。

是否可以在不洩露私鑰的情況下證明K包含私鑰集合中的兩個不同私鑰?

需要使用私鑰/公鑰來創建另一個組合,例如 Alice 和 Charlie,acG。因此,Moreno 中使用的 (M)LSAG 不可用,因為密鑰需要重複使用,並且這樣的連結可能會向 Charlie 揭示 Alice 已經與公鑰集中的其他人進行了某種交易。

我想要這個證明,以便每個使用者都可以驗證K是否有效(即,使用集合中的私鑰計算),以避免垃圾郵件。邪惡的使用者可以使用他/她的私鑰生成隨機 K,但對其他人來說毫無意義。區塊鏈將用於跟踪參考。

LSAG代表Linkable Spontaneous Anonymous Group,M 代表矩陣版本。

如果我理解正確,你想要一種方法來證明,給定一個列表 $ {A, B, C, D, \cdots} $ 公鑰,一些給定的密鑰 $ K $ 是與此列表中的一對鍵對應的“標籤”,但沒有透露是哪一個。讓我稱之為“有效標籤”。

為簡單起見,假設 $ K $ 是 Alice 和 Bob 的標籤。Alice 或 Bob 都可以證明 $ K $ 是一個有效的標籤,使用標準的零知識證明技術。直覺如下:

(1) 如果對 $ (A,B) $ 不應該保持隱藏,那麼 Bob 可以執行一個零知識證明 $ (G,A,B,K) $ 是一個 Diffie-Hellman 元組,使用他的見證 $ b $ (這樣 $ G^b = B $ 和 $ A^b = K $ )。這種關係有標準的零知識證明,例如我的答案在這裡

(2) 為了保持對隱藏,我們改變了陳述:而不是證明“ $ (G,A,B,K) $ 是一個 Diffie-Hellman 元組”,Bob 證明了“ $ (G,A,B,K) $ 是一個 Diffie-Hellman 元組,或 $ (G,A,C,K) $ 是一個 Diffie-Hellman 元組,或 $ (G,A,D,K) $ 是一個 Diffie-Hellman 元組……”等等(對於每對不同的公鑰)。然後,使用CDS OR-trick,我們可以將 Diffie-Hellman 關係的零知識證明轉換為零-許多 Diffie-Hellman 關係的 OR 的知識證明(特別是,結果證明不會揭示 OR 中的哪些陳述是真實的)。

以上是最簡單,最直接的解決方案。當然,它是昂貴的:證明的成本隨著 $ n\cdot(n-1)/2 $ 乘以單個 Diffie-Hellman 證明的成本(或 $ n $ 如果我們可以洩露標籤所涉及的兩方之一的身份 $ K $ )。存在降低成本的解決方案,但它們使用了更先進的加密技術。一個很好的例子是一對一的證明,它可以精確地實現這種 OR 證明,但在 OR 子句的數量上使用對數通信。

最後一件事:如果您希望每個人都檢查證明並且不想與每個人重新做證明,那麼您可以使用 Fiat-Shamir 變換在隨機預言機模型中使證明非互動;這樣,它就可以公開驗證。另外,請注意,當一方發送此證明時,這總是會洩漏資訊:例如,Bob 發送的證明 $ K $ 是一個有效的標籤總是表明 Bob 可以首先檢查他自己,這意味著 Bob 的公鑰是所涉及的密鑰之一。在您的情況下可能沒問題,但您必須清楚這一點。

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