Homomorphic-Encryption

可以使用同態加密交換密鑰嗎?

  • October 1, 2019

完全同態加密 (FHE) 允許對密文進行計算。這種技術可以用來交換密鑰嗎?

例如,Alice 和 Bob 需要就 4 位密鑰達成一致。Alice 向 Bob 發送 4 個不同的字元串,它們分別是0001, 0010, 0100,的密文1000。現在 Bob 選擇了密鑰01010100他對和對應的密文進行按位或運算0001,並將結果發回給 Alice。愛麗絲破譯結果並得到0101

這個方案安全嗎?(除了密鑰通常更長的事實之外)

簡而言之

它可以是安全的,但效率會非常低。

詳細地

如果您將這些位字元串0001, 0010, 0100,1000等視為整數(即, $ 2^0, 2^1, 2^2, 2^3 $ , 等) 並按位或對其中一些應用邏輯相當於將兩個的某些冪相加。

因此,您提出的方案是 Alice 發布了幾個 2 的冪的加密, $ c_i := Enc(2^i) $ Bob 以某種隨機方式組合它們,即 Bob 選擇 $ b_i \in {0,1} $ 併計算 $$ c_B := \sum_{i=0}^{n-1} b_i\cdot c_i = Enc\left(\sum_{i=0}^{n-1} b_i\cdot 2^i\right). $$

很容易看出,如果每個 $ b_i $ 被統一選擇,則加密值的分佈由 $ c_B $ 是統一的 $ {0, 1, …, 2^n-1} $ ,這是一個完美的場景(交換​​的密鑰是統一的,那麼,很難猜到)。

但是,這種方法的問題是攻擊者可以查看 $ c_B $ 和所有的 $ c_i $ 的並嘗試找出 $ b_i $ 的。請注意,如果我們設法發現至少一個 $ b_i $ ,那麼我們知道什麼是 $ i $ - 交換密鑰的第一個位。所以,我們必須排除這種可能性。

一種標準的做法是使用 Leftover Hash Lemma 來保證 $ c_B $ 在密文集上在統計上接近統一 $ \mathcal C $ ,但它需要 $ n $ 遠大於安全參數 $ \lambda $ . 這意味著 Alice 需要發布的內容遠遠超過 $ \lambda $ 密文,每一個都有超過 $ \lambda $ 位,這意味著發布的內容遠遠超過 $ \lambda^2 $ 位(可能超過 $ \lambda^3 $ )。而且我們仍然必須考慮加密和組合所有這些值所需的時間……

此外,我認為沒有另一種已知的方法可以使這種密鑰交換安全,因為隱藏這些密鑰的問題 $ b_i $ ’s 與同態加密方案在轉化為公鑰方案時所面臨的問題基本相同,而我在論文中經常看到的解決方案就是我所說的(使用 Leftover Hash Lemma)。

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