-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Welcome to the CGKA Research wiki. This is the starting point to explore how Group messaging works. Here, we briefly describe the high-level goals and overview of the approach. Please see the articles in the sidebar to understand the internals of protocols and algorithms used to support group messaging.
The primary goal of this research is to provide a primitive for secure communication among a group (>2) of participants.
There are two primary usecases for the above primitive
- Secure group messaging: This is a generalization of the familiar pairwise messaging to group messaging. Think of WhatsApp groups.
- Multi-device management: The same primitive is also used for managing the devices owned by a user.
There are two types of actors in a group: Administrators and Members.
Administrators are responsible for
- Creating groups
- Receive proposals from members
- Disseminate proposals to other members
Administrators operate in a store-and-forward manner. They are not aware of the keys used for secure communication.
Members in a group have the following functionalities
- Join groups
- Exit groups
- Update their keys in a group
Please note that members are the end users in Application #1. In application #2, however, they are the devices owned by an end user
There are three key modules for enabling group messaging:
- Key management deals with member keys and group secrets. Both these are used in the conversation module.
- Membership management deals with group initiation, adding members, and removing members. This is used in accepting incoming messages.
- Conversations: These are application-level messages sent and received in the group.

CGKA is a collection of protocols used to implement the first two modules. Most of the repo is focused on CGKA.