是否可以在不知道這兩個數字的情況下找到兩個數字的乘積?
我正在做一個思想實驗:
愛麗絲選擇一個數字 $ a $ 和鮑勃 $ b $ . 他們發送 $ A(a) $ 和 $ B(b) $ 給查理。他表演 $ C(A(a), B(b)) $ 並得到 $ ab $ .
是否存在不易逆轉的函式 $ A, B, C $ 以上哪項是正確的?
我是初學者,所以如果有人知道,我會更加感激:)
謝謝!
在您設置問題的方式中,答案是否定的。
正如查理可以表演的那樣 $ C(A(1),B(b)) $ .
這是一個有趣的問題!可能接近您正在尋找的東西是同態加密。直覺地說:
一個公鑰加密方案是(完全)同態的,如果在通常的密鑰生成、加密和解密算法之上,我們可以獲得(在不知道私鑰的情況下)加密 $ f(m_1,\ldots,m_k) $ 從加密 $ m_1,\ldots, m_k $ .
因此,如果查理有鑰匙 $ (pk, sk) $ 一個 FHE 方案,Alice 和 Bob 知道公鑰 $ pk $ ,那麼 Alice 和 Bob 可以計算 $ c_1 = \mathsf{Enc}{pk}(a) $ 和 $ c_2 = \mathsf{Enc}{pk}(b) $ 分別,然後他們計算一個加密 $ a\cdot b $ 使用同態屬性並將其發送給查理。然後他可以解密這個值以獲得 $ a\cdot b $ .
請注意,在您的特定應用程序中,您只需要一次乘法,這比任何通用函式的情況更容易處理。事實上,有一些同態加密(SHE)的概念,它與上面解釋的概念非常相似,但函式被限制為具有一定的乘法深度。這很有用,因為 (1) SHE 方案確實存在,基於不同的問題,例如近似 GCD 或 LWE,並且 (2) 有一種稱為引導的技術可以將您從具有某些屬性的 SHE 帶到 FHE。
此解決方案可能無法滿足您的要求,因為 Alice 和 Bob 不會分別向 Charlie 發送值。
正如 SEJPM 在評論中指出的那樣,另一個工具可以是Secure Multiparty Computation。在這種情況下,各方參與了一個協議,其中 A 和 B 輸入 $ a $ 和 $ b $ , C 得到 $ c = ab $ . 通常,這不必具有您在問題中指定的語法,但很容易提出與它有一些相似之處的協議。
Alice 和 Bob合作採樣一個公共隨機值 $ r $ ,查理不知道。愛麗絲然後讓 $ A(a) = a\cdot r $ 和鮑勃集 $ B(b) = b\cdot r^{-1} $ . 這兩個值被發送給查理,查理簡單地將它們相乘得到 $ (ar)(br^{-1}) = ab $ . 我們可以證明,即使 C 是腐敗的,他也不會學到任何關於 $ a $ 和 $ b $ ,除了他們的產品是他剛剛學到的。從某種意義上說,這意味著“ $ A $ 和 $ B $ 不可逆”。直覺是我們可以僅根據 $ a\cdot b $ ,而查理無法區分,因此,他沒有得到任何關於 $ a $ 和 $ b $ . 當然,這假設我們有某種欄位結構。