BGV KeyGen——惡意生成的秘密共享密鑰能否破壞安全性(例如 SPDZ)?
我正在(重新)閱讀論文“為不誠實的多數人提供實用的秘密保護 MPC——或:打破 SPDZ 限制”。
本文的一個關鍵點是他們提出了一種隱蔽安全的 BGV 密鑰生成協議(Protocol B1,p15)。公開密鑰,但秘密密鑰在各方之間進行全門檻值秘密共享。
他們通過生成多個密鑰來實現隱蔽的安全性,然後隨機打開所有但一個(可證明的)並檢查參數是否正確生成。
我明白為什麼這是必要的 $ \epsilon_{i, j} $ . 如果誤差參數太小,那麼潛在的晶格問題就不夠難。但似乎這可以通過每一方添加一個足夠大的錯誤來解決,以使格子問題變得困難。那麼安全性就會得到滿足,即使 $ n-1 $ 各方送出 0 作為他們的錯誤值。在誠實的情況下,錯誤將超出必要,但絕對在可容忍的範圍內,因為 BGV 支持大量(同態)密文添加,而密文不會停止解密。
為什麼需要檢查 $ s_{i, j} $ 和 $ b_{i,j} $ ? 是否存在被對手控制的攻擊 $ n-1 $ 各方可以在他們選擇不好的地方做 $ s_{i, j} $ 或計算錯誤 $ b_{i, j} $ 這樣他們就可以在不與誠實玩家合作的情況下解密密文?或者換句話說,為什麼這個協議對惡意對手不安全?
**簡短的回答:**我不知道任何利用惡意密鑰生成協議的實際攻擊,例如,了解有關加密消息的資訊。但是,我認為這是高度依賴於上下文的(例如,以這種方式攻擊 SPDZ 似乎很難,可能還有其他易受攻擊的應用程序)並且沒有證據表明不存在此類攻擊。
更長的答案: 格式錯誤的公鑰可能會導致解密錯誤,其中錯誤的機率取決於某些秘密資訊(例如私鑰)。這允許選擇性失敗攻擊,其中對手觀察是否發生錯誤以嘗試了解有關秘密的資訊,並且難以證明協議安全。
一般來說,這些類型的攻擊可能非常令人擔憂,儘管在這種情況下它似乎更難被利用。
考慮格式錯誤的公鑰 $ pk = (a, \hat b:= b + \hat e) \in R_q^2 $ , 在哪裡 $ (a,b) $ 是正確的密鑰並且 $ \hat e $ 是一些惡意選擇,誤差較大。
誠實生成的密文的第一個組成部分 $ (c_0,c_1) = Enc_{pk}(m) $ 有形式 $$ c_0 = \hat b\cdot v + p\cdot e_0 + m $$
在哪裡 $ v $ 來自環-LWE 秘密分佈,並且 $ e_0 $ 是雜訊項(均在加密期間採樣)。
惡意的 $ pk $ 引入了一個額外的錯誤 $ \hat e \cdot v $ 進入 $ c_0 $ . 解密密文時,解密可能是正確的,如果 $ |\hat e \cdot v|_\infty < q/p $ , 但否則會發生錯誤。
現在,如果解密成功,攻擊者將了解有關秘密的一點資訊 $ v $ ,即 $ |\hat e \cdot v|_\infty < q/p $ . 這意味著我們不能再使用在 ring-LWE 下顯示密文是偽隨機的標準技術。那是因為證明需要 $ v $ 像環 LWE 秘密一樣分發,完全不知道 $ n-1 $ 締約方,因此 $ (c_0,c_1) $ 看起來像一個有效的環 LWE 樣本。
最後,請注意,在實際攻擊中利用這種洩漏似乎非常困難,特別是因為 $ v $ 每個密文的值都不一樣,因此洩漏的內容不能被重複使用。我推測,在某些帶有洩露秘密的環 LWE 變體下,甚至有可能證明 SPDZ 是安全的。