Multiparty-Computation
是否有一個系統可以讓多人加密一條消息,然後以任何順序解密它?
例如,A 加密了一條消息。
B對其進行加密。
C對其進行加密。
然後 B 解密,然後是 A,然後是 C。
是否有允許這樣做的系統?這樣的財產有名字嗎?
是的,允許這樣做的系統有一個名稱:交換加密。
在實踐中,有兩個品種:
如果 A、B、C 只是在一個密鑰流中異或,它就會全部通勤。當然,任何人看到中間結果都可以推斷出很多;這可能會使某些用途無法接受。
Pohlig-Hellman(與 Pohlig-Hellman 算法無關);我們選擇一個全球素數 $ p $ ,並且每個人都選擇一個相對質數的秘密值 $ p-1 $ ; 一個選秀權 $ a $ , B 選擇 $ b $ , 和 C 選擇 $ c $ . 然後;
- 愛麗絲加密 $ M $ 通過計算 $ M^a \bmod p $
- 愛麗絲解密 $ C $ 通過計算 $ M^{a^{-1} \bmod p-1} \bmod p $
如果你通過數學,你會看到:
- 加密和解密是互逆的,例如 $ \operatorname{Dec}_a(\operatorname{Enc}_a(M)) = M $
- 就像你問的那樣通勤: $ \operatorname{Enc}_b(\operatorname{Enc}_a(M)) = \operatorname{Enc}_a(\operatorname{Enc}_b(M)) $ , ETC
- 沒有人可以通過觀察中間結果推斷出任何東西(假設素數大到足以使 DLog 和 Diffie-Hellman 問題變得困難)