Skip to content
PranayAnchuri edited this page Feb 1, 2023 · 4 revisions

Group messaging

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.

Goal

The primary goal of this research is to provide a primitive for secure communication among a group (>2) of participants.

Applications

There are two primary usecases for the above primitive

  1. Secure group messaging: This is a generalization of the familiar pairwise messaging to group messaging. Think of WhatsApp groups.
  2. Multi-device management: The same primitive is also used for managing the devices owned by a user.

Overview

Actors

There are two types of actors in a group: Administrators and Members.

Administrators

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

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

Modules

There are three key modules for enabling group messaging:

  1. Key management deals with member keys and group secrets. Both these are used in the conversation module.
  2. Membership management deals with group initiation, adding members, and removing members. This is used in accepting incoming messages.
  3. Conversations: These are application-level messages sent and received in the group.

Modules

Continuous Group Key Agreement (CGKA)

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

Clone this wiki locally