Patent ID: 8837717

Claim:
A method comprising: receiving, using one or more computing devices, a message; generating, using the one or more computing devices, a globally unique key; generating, using the one or more computing devices, a hashed index based at least in part on the globally unique key and a device key; generating, using the one or more computing devices, an encryption key based at least in part on the globally unique key; encrypting, using the one or more computing devices, the message using the encryption key; storing, using the one or more computing devices, the encrypted message in a non-transitory, non-persistent memory of the one or more computing devices using the hashed index; generating, using the one or more computing devices, a message identifier based at least in part on the globally unique key; sending, using the one or more computing devices, the message identifier to a recipient device; expunging, using the one or more computing devices, by removing the globally unique key, the hashed index and the message identifier from the one or more computing devices responsive to sending the message identifier to the recipient device; determining, using the one or more computing devices, whether a selection of the message identifier is received; responsive to determining that the selection of the message identifier has been received: (a) determining, using the one or more computing devices, the hashed index from the globally unique key received responsive to selection of the message identifier; (b) retrieving, using the one or more computing devices, the encrypted message from the non-transitory, non-persistent memory using the hashed index; (c) determining, using the one or more computing devices, the encryption key using the globally unique key and decrypting the encrypted message using the encryption key; (d) sending the message to the recipient device for presentation; and (e) expunging, using the one or more computing devices, by removing the encrypted message from the one or more devices responsive to sending the message to the recipient device for presentation; responsive to determining that the selection of the message identifier has not been received: (a) determining, using one or more computing devices, whether a user defined message lifespan or a system defined message lifespan has been exceeded; and (b) responsive to determining that at least one of the user defined message lifespan and the system defined message lifespan has been exceeded, expunging, using the one or more computing devices, by removing the encrypted message from the one or more devices.