Assume that the group has users: . The new member initiates the protocol by sending a join request message that contains its own blinded key . This message is separate from any JOIN messages generated by the underlying group communication system, although, in practice, the two might be combined for efficiency's sake.
When current group members receive this message, they first determine the
insertion node in the tree. The insertion node is the shallowest rightmost node,
where the join does not increase the height of the key tree. Otherwise, (if the
key tree is well balanced), the new member joins to the root node. The sponsor
is the rightmost leaf node in the subtree rooted at the insertion node. Next,
the sponsorcreates a new intermediate node and a new member node, and promotes
the new intermediate node to be the parent of both the insertion node and the
new member node. After updating the tree, the sponsorcomputes the new group
key, since it knows all the necessary blinded keys. After computing the group
key, the sponsorbroadcasts the new tree which contains all blinded
keys. All other members
update their trees accordingly and compute the new group key (see
fact 1).
Figure 2 shows an example of member joining to a group, where the sponsor performs the following actions:
Since all members know and , can compute the new group key . Every other member performs step 1 and 2, but cannot compute the group key in the first round. Upon receiving the blinded keys, every member can compute the group key.
Figure 2: Tree updating in join operation