Rsa
RSA KTS-OAEP 是否必要?
通常使用對稱密碼對數據進行加密,並通過使用接收者的非對稱公鑰對其進行加密來與接收者共享對稱密鑰。NIST 特別出版物 800-56B,修訂版 2 第 9 節定義了RSA KTS-OAEP,以在發送者和接收者之間建立密鑰材料。真的有必要使用 RSA OAEP 或 RSA KTS-OAEP 在發送方和接收方之間建立密鑰材料嗎?
由於大多數時候,對稱密鑰長度遠小於非對稱密鑰長度,例如 256 與 2048。在發送方為每條消息隨機生成新對稱密鑰的情況下,使用教科書 RSA 加密對稱密鑰是否安全?
既然隨機生成的對稱密鑰不太可能重複,那麼就不用RSA OAEP和RSA KTS-OAEP了?
不,沒有必要,但是:
- 您將獲得(大約)與任何安全方案相同的 RSA 密文大小;
- 無論如何,OAEP 的計算成本是最小的;
- 使用教科書 RSA 是不安全的(請參閱其他答案);
- 其他填充模式可能不那麼安全(PKCS#1 v1.5 填充更容易受到填充預言攻擊)。
但還有其他可能:
- 您可以使用RSA-KEM - 這基本上是教科書 RSA 的模數大小的完全隨機數,然後是密鑰推導;
- 可以使用諸如 ECIES 之類的 IES 方案——你可以在其中包含 NaCL——這樣的方案可以大大減少計算資源和數據成本(非對稱加密)。
特別是 RSA-KEM 可能很有用,因為您只需要一個隨機數生成器和教科書 RSA + 某種方式來派生密鑰(這可能像加密雜湊一樣簡單)。