為什麼 Cramer-Shoup 的精簡版不是 IND-CCA2 安全的?
在 Cramer-Shoup 的精簡版中,我們有一個小組 $ G $ 帶發電機 $ g_1 $ 和 $ g_2 $ , 私鑰 $ a_1, a_2, b_1, b_2 $ , 和公鑰 $ A = g_1^{a_1} g_2^{a_2} $ , $ B = g_1^{b_1} g_2^{b_2} $ . 加密通過選擇一個隨機整數來工作 $ r $ 並發送元組 $ (g_1^r, g_2^r, A^r m, B^r) $ . 解密時我們檢查 $ B^r $ 密文的一部分是正確的,如果是,則獲得 $ m $ 通過計算的倒數 $ A^r $ 和相乘 $ A^r m $ 用它。
考慮 DDH 的以下公式:對於隨機群元素 $ g_1, g_2, u_1, u_2 $ 和隨機整數 $ r $ , $ (g_1, g_2, u_1, u_2) $ 無法區分 $ (g_1, g_2, g_1^r, g_2^r) $ . 在此假設下,可以證明 Cramer-Shoup lite 是 IND-CCA1 安全的。通過使用假設的 CCA1 攻擊者來證明 $ \mathcal{A} $ 這打破了 Cramer-Shoup lite 以打破 DDH。我們的挑戰實例是四倍 $ (g_1, g_2, u_1, u_2) $ . 我們模擬IND實驗 $ \mathcal{A} $ 使用我們自己生成的私鑰和公鑰;因此我們也可以模擬它的解密預言,因為我們完全了解該方案的私鑰。什麼時候 $ \mathcal{A} $ 將自己送出給消息對 $ m_0, m_1 $ ,我們向它發送一條加密的消息(隨機選擇),但使用 $ g_1^r $ 替換為 $ u_1 $ 和 $ g_2^r $ 和 $ u_2 $ . 因此 $ \mathcal{A} $ 收到 $ (u_1, u_2, u_1^{a_1} u_2^{a_2} m, u_1^{b_1} u_2^{b_2}) $ , 這是一個有效的加密 iff $ u_1 = g_1^r $ 和 $ u_2 = g_2^r $ 對於相同的指數 $ r $ . $ \mathcal{A} $ 的響應(密文有效與否)以不可忽略的機率正確,因此我們可以以不可忽略的機率區分 DDH 四元組。
我無法理解為什麼 IND-CCA2 的論點失敗。是不是因為 $ \mathcal{A} $ 可以使用 $ u_1 $ 和 $ u_2 $ 在隨後的解密查詢中?
CS-lite 具有與 ElGamal 相同的同態屬性。特別是, $ \textsf{Enc}(pk,m_1) $ 和 $ \textsf{Enc}(pk,m_2) $ 是一個有效的加密 $ m_1 m_2 $ (因此將正確解密):
$$ (g_1^r, g_2^r, A^r m_1, B^r) \cdot (g_1^s, g_2^s, A^s m_2, B^s) = (g_1^{r+s}, g_2^{r+s}, A^{r+s} (m_1m_2), B^{r+s}) $$ 所以一個簡單的CCA2攻擊就是請求 $ \textsf{Enc}(pk,m) $ 對於一個未知的 $ m $ ,將此密文乘以新的加密 1,並要求解密 oracle 解密結果(揭示 $ m $ ).