-
Notifications
You must be signed in to change notification settings - Fork 0
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.
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()
}
- group_info : Maintains a mapping between the group_id and the corresponding group's state
- Keys: Member's key bundle
- init : Initializes a user in the network by setting up their key bundles
- 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.
- propose: Given a group_id, proposal_type = one of {ADD, REMOVE, UPDATE}, and a payload for the proposal. This method creates a proposal object.
- commit: Given a group_id and a list of proposals, this method collates the proposals and generates a control message.
- process: Given a group_id and a control message, this method processes the instructions from the control message and updates the group state.
- key: Given a group_id, this method returns the group secret.
- Policy: