RSA-OAEP 如何不受 CCA2 的影響?
這裡加密完成如下: $$ C=P^e \textrm{mod} , n =(P_1||P_2)^e \textrm{mod} , n. $$ 這是我的場景,CCA2 的對手獲勝。
對手選擇 $ X_1, X_2 $ 大小相同 $ P_1, P_2 $ 並相乘 $ C’=(X_1||X_2)^e \textrm{mod} , n $ 經過 $ C $ 要得到 $ CC’=(P_1X_1||P_2X_2)^e \textrm{mod} , n $ . 敵手要求解密預言機解密 $ CC’ $ 要得到 $ (P_1X_1||P_2X_2) $ . 然後對手可以得到 $ (P_1||P_2) $ 只需乘以 $ (X_1||X_2) $ . 最後,攻擊者可以像 Bob 一樣解密原始消息。
這與教科書 RSA 上的 CCA 相同。我看到 RSA-OAEP 是 IND-CCA2 安全的,但為什麼這種攻擊不可能?
攻擊假設 $$ (P_1\mathbin|P_2)(X_1\mathbin|X_2)\equiv P_1X_1\mathbin|P_2X_2\pmod n $$ 大多數參數沒有理由成立。
注:位大小為 $ P_2X_2 $ 沒有標准定義。在下文中,我假設其目的是使其成為參數大小的總和 $ P_2 $ 和 $ X_2 $ 表示為固定大小的位串¹。
4位參數的反例 $ P_1 $ , $ P_2 $ , $ X_1 $ , $ X_2 $ 全部設置為
1111
: $ P_1\mathbin|P_2 $ 和 $ X_1\mathbin|X_2 $ 是11111111
, $ P_1X_1 $ 和 $ P_2X_2 $ 是11100001
,左側 $ (P_1\mathbin|P_2)(X_1\mathbin|X_2) $ 是1111111000000001
,右手邊 $ P_1X_1\mathbin|P_2X_2 $ 是1110000111100001
。他們沒有理由模數相等 $ n $ .¹ 另一個合理的定義是 $ P_1X_1\mathbin|P_2X_2 $ 有價值 $ P_1X_1,2^\ell+P_2X_2 $ 在哪裡 $ \ell $ 是位串的常見位大小 $ P_2 $ 和 $ X_2 $ ,但這也不能使等式成立。