Public-Key

不經意解密:在不知道消息的情況下使用私鑰解密

  • October 3, 2018

我正在嘗試設計一個協議,對私有集合交叉點進行補充,涉及三方,即 Alice、Bob 和 Charlie。

Alice 有一個公鑰和一個私鑰。並接收來自查理的網站日誌。

Charlie 經營著一個網站,他將他的網站日誌發送給 Alice,使用 Alice 的公鑰加密使用者 ID。假設他們對每個日誌條目使用帶有填充的 RSA,這樣相同的使用者 ID 在加密時總是看起來是隨機的。

Bob 正在管理 Charlie 網站的一小部分。Charlie 已同意將日誌的相關部分轉發給 Bob。但它是直接從 Alice 獲得的相同日誌中採樣的,因此它們帶有用 Alice 的公鑰加密的使用者 ID。

當然,Bob 沒有 Alice 的私鑰,並且想要了解訪問他的部分的使用者 ID。他可以要求 Alice 解密他擁有的使用者 ID,但是他不想向 Alice 提供他感興趣的使用者的資訊。

是否有可能設計一個協議,讓 Alice 解密由她的公鑰加密的消息,而無需真正知道消息是什麼。因此,名稱不經意的解密……

所以,我想到了RSA的交換性。如果 Bob 有一個對自己保密的私鑰和公鑰,那麼在將消息發送給 Alice 之前,他可能已經加密然後解密了 Alice 解密的內容,只能訪問自己的使用者 ID。然而,為了讓 Bob 能夠創建這樣的密鑰對,他需要知道模數的主要因素。

有沒有辦法,可以實現。如果不能,我們能否證明這是不可能的?

這可以通過利用 RSA 的同態特性來完成。假設 Alice 的密鑰是 $ (e,N,d) $ 在哪裡 $ e $ 是公共指數, $ N $ 模數,和 $ d $ 私人指數。

解密 $ x $ , Bob 樣本 $ r $ 隨機從 $ {1,\cdots,N} $ 併計算 $ xr^e\mod N $ 並將其發送給愛麗絲。愛麗絲計算 $ (xr^e)^d=x^dr\mod N $ 並將其發回給 Bob。鮑勃乘以 $ r^{-1} $ 提取 $ x^d $ .

請注意,愛麗絲不知道 $ r $ 因此無法確定 $ x^d $ 從 $ x^dr $ . 這確實導致了至少一個漏洞:Bob 可以向 Alice 發送他喜歡的任何東西。特別是,他可以要求解密他以某種方式獲得的愛麗絲的其他私人消息。

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