Skip to content

Requirements

PranayAnchuri edited this page Feb 1, 2023 · 1 revision

Overview

In this document, we look at the requirements of our Group Key Agreement protocol. Please note that some of the properties mentioned here require the support of our network.

Requirements

Core

Asynchronous

The group initiator/creator should be able to start a group even when none of the other participants are online.

Scalable

The complexity of the group set up should scale linearly with the number of participants. Key updates from members should scale sub-linearly.

Multi-purpose

The same group key agreement primitive should be usable for both group messaging and managing multiple devices owned by a single user.

Store-and-forward network

Asynchronous group setup requires a network to store the setup information. When the participants come online they should be able to join the group solely based on the setup information previously published by the creator. In this sense, the network plays a very minimal role in the group setup.

Simple cryptographic primitives

Key agreement protocol should be based on well-known and time-tested cryptographic primitives.

No roundtrip

This is related to the notion of asynchronous setup. The protocol shouldn't require roundtrip communication between the creator and participant before they participate in the group.

Computational equality

The computational burden should be the same for all the participants, except maybe for the group initiator/administrator.

Trust equality

There are two types of participants in a group: Administrators/managers and participants. Members of each type are trusted equally.

Contractible membership

Participants can exit the group without restarting the protocol.

Expandable membership

Participants can be added to the group without restarting the protocol.

Updatable keys

Participants can update their keys without restarting the protocol.

Membership transparency

Participants should have a consistent view of all participants and their roles in the group.

Security

The following set of properties is common for most secure two-party messaging systems. Here we list the equivalent properties in a multi-party setting.

Confidentiality

Messages are encrypted before they are stored on the network. Only group participants should be able to read the plaintext of encrypted messages.

Authenticity

Group participants agree on each other's identities (their long-term keys).

Integrity

Group participants will reject messages that have been sent or tampered with by an outsider.

Forward secure

Forward secrecy is the property that an active network adversary who compromises some or all users should not be able to decrypt messages from before the compromise.

PCS

Post-compromise security is the property that an active network adversary who temporarily compromises some or all users should not be able to decrypt messages indefinitely after the compromise is healed.

Conversation security

Transcript consistency

All honest members of the group have a consistent linear/causal ordering of messages.

Participant consistency

At any time after group creation, all active participants have the same view of the participant list.

Speaker consistency

All participants agree on the sequence of messages sent by each participant. This doesn't necessarily mean there is a global ordering of the messages in a group.

Message repudiation

Group messages should have offline deniability. This means that a malicious group participant shouldn't be able to prove authorship to an external party long after the message is sent.

Message authentication

Out-of-band or pairwise communication

It should be possible for the participants of a group to communicate out of band or via pairwise secure channels while still preserving the conversation history in the group.