I am struggling to understand how messaging protocols (like Signal) are able to use perfect forward secrecy. My understanding is that the server generates temporary keys which are used in combination with a user's persistent keys in generating shared session keys.
But if the temp keys are discarded after the session ends, how do the client devices decrypt messages from previous sessions? I must be missing something because I thought the whole point of PFS is that if an attacker got access to your private key, they could only decrypt messages from your current session. If that is true, how are you able to decrypt messages from previous sessions?