Symmetric
只有密文的零知識證明
假設有一個明文p,使用密鑰k用對稱密碼加密,得到密文c。Bob 知道c和k,但 Alice 只知道c。是否有任何協議可以讓 Alice 確定(可能有一定的機率) Bob 確實知道p ,而不向她的****p本身透露?
此外,不必有任何第三方參與也很棒。
是的,這是可能的:NP 中的每一個陳述都可以用零知識證明,也就是說,除了陳述是真的這一事實之外,沒有任何其他資訊。事實上,這個結果可以擴展到知識證明,證明者不僅證明一個陳述是真實的,而且他確實認識一個證人(仍然沒有透露它)。
當然,一般的技術是非常低效的。對於標準對稱密碼,最好的方法將對布爾電路表示的語句使用一般的零知識證明 - 請參閱我對 AleksanderRas 在評論部分連結到的問題的回答。您還應該注意,如果您將對稱密碼替換為具有強代數結構的密碼(例如 ElGamal),則存在許多(許多)更有效的解決方案 - 例如,在 ElGamal 中,證明明文知識只需要交換一些字元串(大約比簡單地發送密文多兩倍的通信 - 所以真的不多)。