Public-Key

給定不同消息P1和P2的密文C1、C2;我們如何證明 C1 和 C2 都是使用同一對的公鑰加密的?

  • April 5, 2021

我隱約記得讀過有關實現此目的的計劃,但無法弄清楚它是哪一個。為了簡潔起見,我將省略任何隨機數。

假設我們有一個非對稱密鑰對: (K pub , K priv )

提供了一個觀察者: C 1 = E(K pub , P 1 )

P 1是已知的。可以驗證通過執行 E(K pub , P 1 ) 結果確實是 C 1。

然後提供觀察者: C 2 = E(K pub , P 2 )

P 2不為觀察者所知,他們提供了一個證明,可以用來驗證 C 1和 C 2確實是可以用相同的私鑰解密的密文(或者換句話說;是通過使用加密獲得的)相同的公鑰)。

我認為 ElGamal 和 NIZK 是證明的一部分,但我不確定。有任何想法嗎?

用Sigma AND 組合調整的Chaum-Pedersen 協議應該可以。

高級直覺:使用Chaum-Pedersen 協議進行 DH-triple,可以證明秘密見證的知識 $ \alpha $ 在(誠實驗證者)零知識中的以下關係:

$$ \mathcal{R}:=\left{((x, y, z), \alpha)\in\mathbb{G}^3\times\mathbb{Z}_q: \quad y=g^\alpha \land z=x^\alpha\right} $$

在哪裡 $ (x,y,z) $ 是聲明(“聲稱他們是 DH-triple”)

回想一下下面的ElGamal 加密方案: 在此處輸入圖像描述

現在讓 $ y $ 成為你的公鑰和 $ \alpha $ 你的秘密指數(密鑰),讓 $ x $ 成為上述ElGamal密文的第一部分(即 $ v $ 在螢幕截圖中),自然而然 $ z = y^\alpha = g^{\alpha\cdot\beta} $ 是共享的秘密,讓它成為 $ w $ 在 ElGamal 加密過程中。

使用上面的 Chaum-Pedersen Sigmal 協議,我們可以證明知道為特定消息生成密文的密鑰。

最後組成兩個Sigmal協議,每個(消息,密文)元組一個,使用AND-proof構造,驗證者可以很容易地驗證兩個密文是在相同的密鑰下加密的,因為兩個語句共享相同 $ y $ . $ \blacksquare $

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