One way communication with forward secrecy? Is it possible to achieve forward secrecy using a one way communication channel with pre-shared secret?

I have a setup where I need to send some information across a unsafe channel between server A and server B. This communication can only go from A to B so no handshake or two way key exchange is possible.

I could simply share a key between the two servers and use symmetric encryption. But I would like to get forward secrecy if possible so that if the shared keys are compromised in the future the old communication is not compromised.

Is there a known protocol that can do this?

I guess the problem is its impossible to share random session keys like you can in say diffie-hellman and then have to rely on deterministic key generation such as TOTP which derives from the shared secret.

The data to be transmitted is less then 2 kb, all the usual stuff about authentication, replay, tampering etc. still applies.
Is there a known protocol that can do this?


It's easy to see that forward security is impossible with the constraints you have.

Suppose an attacker breaks into B to create a B' with the exact same state.

Then, from now on, when A sends a message to B, the attacker takes that message and also submits it to B'.

B and B' are essentially identical; if B can understand the message, so can B'. 

This remains true even if B can generate some local entropy (e.g. has an entropy source whose output the attacker cannot predict); as B cannot send its entropy back to A, it has to understand the message from A no matter what the entropy is (and hence B' can as well, even if its entropy sample is different).