如何使用布爾電路定義明文空間無限的 FHE 方案?
使用布爾電路的全同態加密方案有很多種。和明文空間 $ \mathcal{P} = { 0,1 } $ .
如果有一個-bit FHE 方案,我們可以構造一個可以加密所有消息的FHE 方案。對於一個字元串 $ x \in { 0,1 }^{*} $ 和 $ x = x_{1} \Vert x_{2} \Vert \cdots \Vert x_{n} $ ,我們可以定義 $$ \mathrm{Enc}{pk} (x) = y = \mathrm{Enc}{pk} (x_{1}) \Vert \mathrm{Enc}{pk} (x{2}) \Vert \cdots \Vert \mathrm{Enc}{pk} (x{n}) $$ 在哪裡 $ x_{i} \in { 0,1 } $
但是,如果我想定義一個 FHE $ \mathcal{P} = { 0,1 }^* $ , 這兒存在一個問題。
自然, $$ \mathrm{Enc}{pk}: \mathcal{P} \rightarrow \mathcal{C} $$ $$ \mathrm{Dec}{sk}: \mathcal{C} \rightarrow \mathcal{P} \text{ or } {, \bot ,} $$ $$ \mathrm{Eval}: \mathcal{B} \times \mathcal{C}^* \rightarrow \mathcal{C} $$ 在哪裡 $ \mathcal{B} $ 是所有布爾電路的集合。
給定 $ C \in \mathcal{B} $ 這樣 $ C \colon { 0,1 }^{n} \rightarrow { 0,1 }^m $ , 如果 $ c \leftarrow \mathrm{Eval} (C, c_{1}, c_{2}, \ldots, c_{l}) $ , 我們有 $$ |\mathrm{Dec}{sk}\left( c{1} \right)| + |\mathrm{Dec}{sk}\left( c{2} \right)| + \cdots + |\mathrm{Dec}{sk}\left( c{l} \right)| = n $$ 和 $$ |\mathrm{Dec}{sk}\left( c \right)| = m $$ 但是,我們怎麼知道大小 $ |\mathrm{Dec}{sk}\left( c_{i} \right)| $ 當我們要求訪問 $ \mathrm{Eval}(\cdot, \cdot) $ ?
我相信我們在嘗試處理任意長度的明文時遇到了一個更根本的問題。
假設我們有任何加密方案 $ \mathbb{B} $ (不一定是 FHE,甚至是不對稱的)試圖處理任意長度的明文。假設我們也有一個 $ \mathbb{B} $ 加密的密文,我們可以看到它有 1000 位長。我們不知道密鑰,但是,我們可以推斷出最多有 $ 2^{1000} $ 這可能對應的可能明文。
該扣除給我們帶來了什麼(鑑於我們不知道其中任何一個的價值 $ 2^{1000} $ 明文?好吧,即使解密過程可能有比密文更長的明文,明文的長度也不超過 1 GB,這是一個很好的猜測。
因此,如果我們嘗試處理無界明文,我們可以做的長度隱藏是有限度的。
如果你有 $ k_{sk} $ ,這意味著您已經知道明文的大小,因為您是設計者,所以在每個點都完全加密。
如果評估器具有在加密時提取明文大小的功能,則存在問題;應用這個
get the size, substruct 1, get size, substruct 1,...
當大小減小時,評估器會從密文中獲取您不想要的資訊。