Sender KeysIn cryptography, Sender Keys is a variant of the Signal Protocol[1] used in end-to-end encryption used in instant messaging. Sender Keys is used for group chats.[1] Applications using it have included Signal, Matrix, WhatsApp, Session, and Facebook Messenger.[2][3][4][5][6][7] In order to scale to large groups, the protocol takes advantage of server-side fan-out and avoids computing a shared group key.[2][3][7] The algorithm relies upon secure pairwise communication channels between peers that provide confidentiality and authentication. For example, an Authenticated Key Exchange algorithm such as Extended Triple Diffie-Hellman (X3DH) may be combined with the Double Ratchet Algorithm to construct such a channel in practice, as is the case with WhatsApp.[8][2] The protocol was described in a whitepaper from WhatsApp[2], and it is also related to the Messaging Layer Security standard.[9] Functioning
In Sender Keys, users within a group are assumed to maintain secure pairwise communication channels with each other user. Each user constructs a session that consists of a symmetric key and an asymmetric signing key pair; each user sends their session's symmetric key and the signing key pair's public key to each other user through the respective pairwise secure channels.[citation needed] To send a message, a user "ratchets" their symmetric key forward by applying a cryptographic hash function, encrypts their message with the newly hashed symmetric key, and constructs a digital signature protecting the encrypted message with the private signing key. The sender forwards the encrypted message to the server, who then fans it out to all receivers. Each receiver checks the signature with public signing key, hashes their symmetric key to match the sender, and decrypts the message.[citation needed] Users regenerate and re-transmit sessions periodically, or whenever a user leaves or joins the group.[2][3][7] Security propertiesSecurity properties of Sender Keys include message confidentiality, message integrity, message authentication, forward secrecy, post-compromise security, scalability, and asynchronicity.[5][6] See alsoReferences
Textbook
|