Encryption

RSA-OAEP 填充方案

  • November 13, 2019

老實說,我真的對 RSA 方案中的填充感到困惑。我不學習電腦科學,我是學習密碼學的初學者(自學)。誰能給我建議?

直接使用教科書 RSA 進行加密是非常不安全的。例如,可以檢查明文的猜測:如果加密的是班級名冊上的名字,則對班級名冊上的所有名字進行加密,直到獲得密文破壞機密性。還有其他幾種攻擊。

這激發了 RSA-OAEP。它將教科書 RSA、散列和隨機位源轉變為可證明的安全加密方案。消息加密 $ M $ 第一次轉換 $ M $ 進入填充消息 $ X $ 通過將其與隨機位混合併對雜湊應用可逆變換;然後加密 $ X $ 進入 $ X^e\bmod N $ ,即按照教科書的 RSA 加密。解密從教科書 RSA 解密開始,產生 $ X $ ; 然後填充被撤消,產生 $ M $ 或錯誤指示。

我的精華,配置 $ X $ 足夠隨機,以至於教科書 RSA 變得安全。可以為密碼安全性的最強定義IND-CCA2以及在某些假設下進行證明:

  • 尋找隨機數的 RSA 問題 $ X $ 給定 $ X^e\bmod N $ 很難;
  • 雜湊與隨機選擇的公共函式無法區分;
  • 隨機位的來源與產生均勻隨機和獨立位的來源無法區分;
  • 給定密碼的解密設備僅輸出正確的明文或錯誤指示(它不會洩漏任何其他資訊)。

(高度技術性的)參考證明在 Eiichiro Fujisaki、Tatsuaki Okamoto、David Pointcheval 和 Jacques Stern 的RSA-OAEP 在 RSA 假設下是安全的,在密碼學雜誌,2004中。更溫和的文本是 David Pointcheval 的如何使用 RSA 正確加密?, 最初在Cryptobytes 5n1, 2002中。

RSA-OAEP 的實際形式被命名為 RSAES-OAEP,並在PKCS#1 v2.2中定義。

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