9.8. Bidirectional Encryption (双向加密)
9.8. 双向加密
如第 5.2 节所述, HPKE 加密是从发送方到接收方的单向加密。需要双向加密的应用程序可以使用秘密导出接口 (第 5.3 节) 派生必要的密钥材料。此类密钥材料的类型和长度取决于应用程序用例。
例如, 如果应用程序需要从接收方到发送方的 AEAD 加密, 它可以从相应的 HPKE 上下文派生密钥和随机数, 如下所示:
key = context.Export("response key", Nk)
nonce = context.Export("response nonce", Nn)
在此示例中, 每个秘密的长度基于用于相应 HPKE 上下文的 AEAD 算法。
请注意, HPKE 关于发送方认证的限制在此上下文中成为接收方认证的限制。特别是, 在 Base 模式中, 根本没有对远程方的认证。即使在 Auth 模式中, 远程方已证明他们持有特定的私钥, 但如第 9.1.1 节所述, 此认证仍然受到密钥泄露冒充的影响。