I am looking for a secure protocol that does not require more than one round trip to send a message and receive the response.
The reason behind this requirement is that our connection goes through a kind of proxy where we can send a binary blob and receive a response, but if we need to make more round trips, we would have to make several connections, which would be rather complicated on the server and involves remembering the state between the connections, in addition to being expensive on the side of latency.
We are authorized to exchange public keys before communicating through this channel. We assume that the exchange of public keys is not altered.
The immediate protocol I think about is the one used in gpg emails, but in this case the timing attacks are an attack vector, and as far as I know, gpg does not protect against that.
Is there a standard protocol that satisfies these requirements?