Skip to content

Protocol

PranayAnchuri edited this page Feb 1, 2023 · 1 revision

CGKA protocol is completely defined by the following seven algorithms. Each user in the network has access to these algorithms. Here, we show the input and outputs of these algorithms.

Algorithms

classDiagram
    class Member{
      +Map~Group_id,Group_state~ group_info
      +KeyBundle keys
      +init() KeyBundle
      +create(List~KeyBundle~) : (Group_id, Control_message)
      +propose(Group_id, proposal_type, proposal_payload) Proposal
      +commit(Group_id, List~Proposal~) Control_message
      +process(Group_id, Control_message) Group_state
      +key(Group_id) Group_secret
      +policy()
    }
Loading

Description

Members

  1. group_info : Maintains a mapping between the group_id and the corresponding group's state
  2. Keys: Member's key bundle

Methods

  1. init : Initializes a user in the network by setting up their key bundles
  2. create : Given a list of members' key bundles(only the public part) and creates a new group with a group_id and a message for other members to initialize the group.
  3. propose: Given a group_id, proposal_type = one of {ADD, REMOVE, UPDATE}, and a payload for the proposal. This method creates a proposal object.
  4. commit: Given a group_id and a list of proposals, this method collates the proposals and generates a control message.
  5. process: Given a group_id and a control message, this method processes the instructions from the control message and updates the group state.
  6. key: Given a group_id, this method returns the group secret.
  7. Policy:

Clone this wiki locally