Most key exchange protocols are
interactive, requiring bidirectional communication between the parties. A protocol that permits the sender to transmit data without first needing to receive any replies from the recipient may be called
non-interactive, or
asynchronous, or
zero round trip (0-RTT). Interactivity is onerous for some applications—for example, in a secure messaging system, it may be desirable to have a
store-and-forward implementation, rather than requiring sender and recipient to be online at the same time; loosening the bidirectionality requirement can also improve performance even where it is not a strict requirement, for example at connection establishment or resumption. These use cases have stimulated interest in non-interactive key exchange, and, as forward security is a desirable property in a key exchange protocol, in non-interactive forward secrecy. This combination has been identified as desirable since at least 1996. However, combining forward secrecy and non-interactivity has proven challenging; it had been suspected that forward secrecy with protection against
replay attacks was impossible non-interactively, but it has been shown to be possible to achieve all three desiderata. Broadly, two approaches to non-interactive forward secrecy have been explored,
pre-computed keys and
puncturable encryption. With pre-computed keys, many key pairs are created and the public keys shared, with the private keys destroyed after a message has been received using the corresponding public key. This approach has been deployed as part of the
Signal protocol. In puncturable encryption, the recipient modifies their private key after receiving a message in such a way that the new private key cannot read the message but the public key is unchanged.
Ross J. Anderson informally described a puncturable encryption scheme for forward secure key exchange in 1997, and formally described such a system, building on the related scheme of , which modifies the private key according to a schedule so that messages sent in previous periods cannot be read with the private key from a later period. make use of
hierarchical identity-based encryption and
attribute-based encryption, while use a different construction that can be based on any hierarchical identity-based scheme. experimentally found that modifying
QUIC to use a 0-RTT forward secure and replay-resistant key exchange implemented with puncturable encryption incurred significantly increased resource usage, but not so much as to make practical use infeasible. == Weak perfect forward secrecy ==