| CPC H04L 63/0428 (2013.01) [H04L 9/0822 (2013.01); H04L 9/0825 (2013.01); H04L 9/0844 (2013.01); H04L 9/14 (2013.01); H04L 9/30 (2013.01); H04L 51/04 (2013.01); H04L 63/061 (2013.01); H04L 63/062 (2013.01); H04L 2209/80 (2013.01); H04L 2463/062 (2013.01)] | 20 Claims | 

| 
               1. A method, comprising: 
            encrypting, by one or more processors, message content of a message with an encryption key to generate an encrypted message, the encrypted message designated for a specified recipient; 
                selecting a set of recipient keys for the specified recipient from a plurality of member keys, each recipient key of the set of recipient keys associated with a distinct client device that is used by the specified recipient to access a social messaging system; 
                encrypting the encryption key for each recipient key of the set of recipient keys to generate a set of encrypted keys for the specified recipient; 
                transmitting, to each client device that is used by the specified recipient to access the social messaging system, the encrypted message and an encrypted key of the set of encrypted keys that is associated with the recipient key for that distinct client device that was used to encrypt the encrypted key; 
                detecting a session termination for a sending client device associated with a sender of the encrypted message, the session termination representing the sender logging out of the social messaging system or the sending client device; 
                based on the detecting the session termination, generating a symmetric key for the sending client device and the sender; 
                encrypting a local state of the sender on the sending client device with the symmetric key, the local state comprising at least two of: private and public keys stored on the sending client device, certificates, private key correspondence to the public key, one or more outstanding or unsent messages, or one or more message content; and 
                transmitting a member log to a key database, the member log including a member identifier associated with the sender, a device identifier, and the symmetric key. 
               |