雙非對稱加密與知識拆分問題
嗚嗚嗚,
假設有兩個密鑰對
(d1,e1)
和(d2,e2)
,其中d1
和d2
是不相關的私鑰,e1
和e2
是對應的公鑰。想像一下,Alice 不知道**也不知道d1
,d2
**而 Bob 只知道d1
,**不d2
**知道。Alice 有一個使用RSAc
加密消息產生的密文。她無法解密它,因為她不知道。Alice使用非對稱密碼(仍有待選擇)再次加密並將其發送給 Bob。Bob 無法解密它,因為他沒有. 然後他可以使用某種算法並生成可以發送給我的可以解密的東西嗎?m``e1``d1``c``e2``d2``d1``d1``d2
導致原始消息?我想要的是,Alice 和 Bob 無法讀取消息,只有兩個密鑰的組合知識才能讓他們解密它。
虛擬碼:
m
是消息c := RSAEncrypt(m, using: e1)
愛麗絲會:
c2 := AsymEncrypt(c, using: e2)
鮑勃這樣做:
c3 := RSADecryptAlgo(c2, using: d1)
我想要:
m = SomeDecryptionAlgo(c3, using: d2)
這種情況(雖然很奇怪)甚至可能嗎?如果是這樣,有沒有人知道適合我的情況的Google術語或算法?
提前致謝
編輯:密鑰對不共享相同的模數
我想要的是,愛麗絲和鮑勃無法閱讀消息,只有他們的綜合知識才能讓他們破譯它。
在CECC 2010上展示了“在部分了解組訂單的情況下送出”方案。
設計了一個方案,將類似 RSA 的乘法群的順序分成由兩方共享的兩部分,以便雙方都必須參與解密。從技術上講,模數是四個素數的乘積,每一方分成兩對。
這個問題有點令人困惑,但對我來說,它與三通協議非常相關。具體來說,我們需要一個“可交換的”(與順序無關的)加密方案,其中(對於所有消息), $$ c = Enc(k_1, Enc(k_2, m)) = Enc(k_2, Enc(k_1, m)). $$
在這種情況下,密文 $ c $ 可以解密 $ k_1 $ 和 $ k_2 $ 為了重新獲得 $ m $ .
我相信這只有在兩個密鑰都使用相同的模數時才能使用 RSA。也可以使用 ElGamal(參考)和其他方案來完成。在任何情況下,只有兩個密鑰/加密步驟使用相同的算法和公共參數才有可能。