結合公鑰簽名方案和私鑰加密
我正在寫我的學士論文,我有一些問題。我想結合一個 CPA 安全的私鑰加密方案和一些不可偽造的公鑰簽名方案(在我的情況下是一些可清理的簽名方案,但我認為這沒關係)。生成的方案應該是 CCA 安全的。我怎樣才能做到這一點?
如果我使用 MAC 而不是簽名方案,我會得到一個 CCA 安全方案,但我必須使用簽名,因為我處於法律環境中。我試圖通過對消息進行簽名然後將簽名與消息一起加密來將這兩種方案結合起來。但我很難證明這樣的方案是 CCA 安全的。CCA Security 僅針對私鑰加密方案或公鑰加密方案定義,但我必須為 priv key encr 的組合證明它。和 pub 密鑰簽名。
所以我的問題是:
- 如何將不可偽造的公鑰簽名方案與 CPA 安全私鑰加密方案相結合,以使生成的方案是 CCA 安全的?
- 由於沒有定義,我如何證明這種方案的 CCA 安全性?
我試圖通過對消息進行簽名然後將簽名與消息一起加密來將這兩種方案結合起來。但我很難證明這樣的方案是 CCA 安全的。
我相信您遇到問題證明的原因是該系統的 CCA 安全性實際上並沒有遵循密碼的 CPA 安全性和簽名的不可偽造性。也就是說,您可以設計一個 CPA 安全密碼,該密碼具有不可偽造的簽名,表明系統不是 CCA 安全的。
考慮一種 CPA 安全加密,其中攻擊者可以修改密文,這樣修改後的密文的解密可能會產生原始明文,也可能不會(以及是否會向攻擊者提供有關密鑰的資訊) )。CPA-secure 允許這樣的漏洞,因為它不考慮修改的密文。
很明顯,CCA 攻擊者將如何破壞這樣的系統。他們會修改密文,並將其交給解密預言機。解密器將首先恢復簽名明文;如果它是原始的簽名明文,那麼簽名算法將接受它(因為如果它與先前簽名的文本按位相同,則它不是偽造的),因此解密 oracle 將發出明文。
您可以對 CPA 加密設置額外的限制,以確保不會發生這種情況。然而,更好的方法(無論是從可證明性的角度來看,還是從實現的角度來看)是顛倒操作順序;首先對明文進行 CPA 加密,然後對其進行簽名。我相信您會發現證明 CCA 安全很容易。