6. Overview of Schemes (方案概述)
方案 (Scheme) 将密码学原语和其他技术结合起来以实现特定的安全目标. 本文档规定了两种类型的方案: 加密方案 (Encryption Schemes) 和带附录的签名方案 (Signature Schemes with Appendix).
本文档规定的方案在范围上是有限的,因为它们的操作仅包含使用RSA公钥或私钥处理数据的步骤,不包括获取或验证密钥的步骤. 因此,除了方案操作之外,应用程序通常还会包括密钥管理操作 (Key Management Operations),通过这些操作,各方可以为方案操作选择RSA公钥和私钥. 具体的额外操作和其他详细信息超出了本文档的范围.
与密码学原语(第5节)的情况一样,方案操作的规范假设输入满足某些条件,特别是RSA公钥和私钥是有效的. 因此,当密钥无效时,实现的行为是未指定的. 这种未指定行为的影响取决于应用程序. 解决密钥验证问题的可能方法包括: 应用程序进行显式密钥验证; 在公钥基础设施内进行密钥验证; 以及将使用无效密钥执行操作的责任分配给生成密钥的一方.
一个普遍良好的密码学实践是仅在一个方案中使用给定的RSA密钥对. 这避免了一个方案中的漏洞可能损害另一个方案的安全性的风险,并且可能对于维护可证明的安全性 (Provable Security) 至关重要. 虽然RSAES-PKCS1-v1_5 (第7.2节) 和RSASSA-PKCS1-v1_5 (第8.2节) 传统上一起使用而没有任何已知的不良交互(实际上,这是PKCS #1 v1.5引入的模型),但对于新应用程序,不推荐 (NOT RECOMMENDED) 这种RSA密钥对的组合使用.
为了说明在多个方案中使用RSA密钥对的相关风险,假设RSA密钥对同时用于RSAES-OAEP (第7.1节) 和RSAES-PKCS1-v1_5. 尽管RSAES-OAEP本身可以抵抗攻击,但攻击者可能能够利用RSAES-PKCS1-v1_5实现中的弱点来恢复使用任一方案加密的消息. 另一个例子,假设RSA密钥对同时用于RSASSA-PSS (第8.1节) 和RSASSA-PKCS1-v1_5. 那么RSASSA-PSS的安全性证明将不再充分,因为该证明没有考虑可能使用第二个方案生成签名的可能性. 如果RSA密钥对用于此处定义的方案之一和在其他地方定义的变体,类似的考虑也可能适用.