Symmetric

為什麼加密方案的機率語法?

  • February 7, 2020

在 Goldreich 的密碼學基礎 II 中,加密方案的基本機制是這樣寫的:

定義 5.1.1(加密方案):加密方案是三元組, $ (G,E,D) $ ,滿足以下兩個條件的機率多項式時間算法:

  1. 輸入時 $ 1^n $ , 算法 $ G $ (稱為密鑰生成器)輸出一對位串。
  2. 對於每一對 $ (e,d) $ 在範圍內 $ G(1^n) $ ,並且對於每個 $ \alpha\in{0,1}^* $ , 算法 $ E $ (加密)和 $ D $ (解密)滿足

公關 $ [D(d,E(e,\alpha)) = \alpha] = 1 $

其中機率被算法的內部拋硬幣取代 $ E $ 和 $ D $ .

我在自己的工作中重複了這個定義,並沒有過多考慮為什麼這個定義是用機率術語給出的。有人向我提出,沒有必要像這裡所寫的那樣將機率包括在內,並且可以將一致性方程寫成 $ D(d,E(e,\alpha)) = \alpha $ .

我在本書後面讀到,這個定義可能放寬了機率界限,以允許無法進行解密的一些可忽略的機會,並且這對於某些公鑰加密方案可能是必要的。

我的問題是,這個定義是否比不考慮解密成功機率的定義更好、更嚴格或更完整?為什麼要這樣制定加密機制?

為什麼要這樣制定加密機制?

寫作 $ D(d,E(e,\alpha)) = \alpha $ 會暗示 $ E(e, \alpha) $ 是一個唯一的值,並且通常不在實踐中(因為大多數加密方案實際上是不確定的;也就是說,有許多密文對應於任何特定的明文)。

書面文字 $ \text{Pr}[D(d,E(e,\alpha)) = \alpha] = 1 $ 事實的帳戶 $ E(e, \alpha) $ 可以採用許多不同的值(具有某種機率分佈),因此符合現實(同時尊重形式主義)。

我在本書後面讀到,這個定義可能放寬了機率界限,以允許無法進行解密的一些可忽略的機會,並且這對於某些公鑰加密方案可能是必要的。

是的,它出現在大多數基於格的公鑰加密方案和一些基於程式碼的公鑰加密方案中。我個人從未聽說過有可能解密失敗的對稱系統;也就是說,正確加密(且未修改)的密文的解密不會產生原始明文。

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