Multiparty-Computation

姚氏亂碼中如何知道何時解密失敗

  • March 27, 2018

我正在閱讀姚氏亂碼電路的簡要介紹,我偶然發現了這段話:

請注意,為了使其正常工作,Evan 需要知道解密何時成功,何時不成功。否則,他無法知道哪個密文會產生正確的答案。因此,簡單地用加密值對密鑰進行異或運算在這裡不起作用。

本質上,Alice 發送了 4 個值,每個值都使用對稱密鑰加密的不同密鑰進行加密。Bob 擁有 4 個密鑰之一,並且需要知道 4 個值中的哪一個解密成功。Bob 如何做到這一點?

我認為由於未加密的值都是 0 或 1,因此可以以某種方式設置加密,以便解密失敗以非常高的機率產生非 0/1 值,但我不知道這是否正確。

Yao’s Garbled Circuits 中如何檢測到對稱密鑰解密失敗?

您的直覺是正確的,加密設置為在密文使用不正確的密鑰時指示解密失敗。一個非常簡單的方法可以如下:加密消息時 $ m $ 用鑰匙 $ K $ , 加密 $ m||0^{\lambda} $ ( $ \lambda $ 是一個安全參數,例如 80 或 128)。解密密文時,檢查最後一個是否 $ \lambda $ 位是 $ 0 $ ; 如果不是這種情況,則解密失敗。

請注意,您正在閱讀的論文還描述了點和置換技術,它允許找出我們應該解密的密文,而無需全部嘗試。這是對亂碼電路的重要優化。

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