如果存在 TDP,那麼 CCA 安全的 PKES 是否存在?
我的密碼學幻燈片描述了密碼學問題之間的幾種關係。我對以下內容仍然沒有充分的理由:
如果存在陷門排列,則存在 CCA 安全公鑰加密方案。
這如何合理?
幻燈片引用了這篇文章。我想知道是否對此有一個簡短的解釋。
對於這個答案的上下文,我假設作者的意思是雙重增強 TDP,因為這是我目前能想到的唯一途徑。(見定義 7)
建構CCA安全加密
相關建設歸功於Dolev、Dwork 和 Naor。它基於 CPA 安全公鑰加密方案、一次性簽名方案和非互動式零知識論證。我們將在下面展示它們是如何實例化的。
加密方案的基本思想是我們有 $ 2\ell $ 公鑰 $ (\mathsf{pk}1^0,\dots,\mathsf{pk}\ell^0) $ 和 $ (\mathsf{pk}1^1,\dots,\mathsf{pk}\ell^1) $ 的 CPA 安全 PKE,其中 $ \ell $ 是一次性簽名方案的驗證密鑰長度。為了加密消息,我們在下面單獨加密消息 $ \ell $ 公鑰,在哪裡 $ i $ 無論 $ \mathsf{pk}\ell^0 $ 或者 $ \mathsf{pk}\ell^1 $ 被使用,由 $ i $ 一次性簽名方案的新驗證密鑰的第 th 位。然後,我們使用 NIZK 證明所有密文都是同一消息的加密,最後使用一次性簽名方案對所有內容進行簽名。
安全證明的主要思想是:
- 由於我們對同一消息進行了多次加密(由 NIZK 的健全性強制執行),我們可以降低 CPA 安全性,同時仍然能夠解密,因為我們可以使用其他密鑰之一。
- 任何向解密預言機查詢的新密文要麼使用相同的驗證密鑰,在這種情況下,攻擊者就需要偽造簽名。或者它使用不同的驗證密鑰,在這種情況下,至少一個密文使用與挑戰密文不同的加密密鑰,我們可以使用相應的解密密鑰進行解密。
當然,仍然需要實例化所有這些建構塊。
積木。
CPA 安全 PKE
如果一系列活板門排列 $ \mathcal{F} $ 然後存在,由於Goldreich-Levin 定理,還存在一個帶有核心謂詞的陷門排列族。給定一個帶有硬核謂詞的 TDP,存在一個簡單的CPA安全 PKE 構造,其中一個密鑰對由一個描述 $ f_i\in\mathcal{F} $ 公鑰和相應的陷門為私鑰。那麼密文就是簡單的 $ (f_i(r),\mathsf{hc}_i(r)\oplus m) $ 在哪裡 $ r $ 是從 $ f_i $ 的域, $ \mathsf{hc}_i $ 表示核心謂詞 $ f_i $ 和 $ m\in{0,1} $ .
如有必要,此加密方案可用於通過單獨加密每個位來為更長的消息建構 CPA 安全加密。安全性遵循標準的混合參數。
一次性簽名
Lamport的構造為我們提供了一種存在性不可偽造的一次性簽名方案,用於來自任何單向函式的固定長度消息。因此,特別地,該構造可以從一系列活板門排列中實例化。
非互動式零知識證明
NIZK $ \mathsf{NP} $ 可以由雙重增強的陷門排列構成。該結構基本上是通過執行 $ \mathsf{NP} $ - 減少哈密頓循環問題並為哈密頓循環建構 NIZK。在 Goldreich 的密碼學基礎:第 1 卷,基本工具的原始構造中,錯誤地聲稱構造可以從任何 TDP 實例化,這在上面連結的論文中得到了糾正。