This is a ratcheting forward secrecy protocol that works
in synchronous and asynchronous messaging environments.