Draft: draft-ietf-mls-protocol

Commentary: Here 's the Weekly Digest for : - - Last week 2 issues were created . Of these , 0 issues have been closed and 2 issues are still open . : greenheart : , by : greenheart : , by - - Last week , 8 pull requests were created , updated or merged . Last week , 1 pull request was opened . : greenheart : , by Last week , 5 pull requests were updated . : yellowheart : , by : yellowheart : , by : yellowheart : , by : yellowheart : , by : yellowheart : , by Last week , 2 pull requests were merged . : purpleheart : , by : purpleheart : , by - - Last week there were 2 commits . : hammerandwrench : by : hammerandwrench : by - - Last week there was 1 contributor . : bustinsilhouette : - - Last week there was 1 stargazer . : star : You are the star ! : star2 : - - Last week there were no releases . - - That 's all for last week , please < kbd : eyes : Watch</kbdand < kbd : star : Star</kbdthe repository to receive next weekly updates . : smiley : You can also .
Paragraph (version A):
In this document, we describe a protocol based on tree structures
that enable asynchronous group keying with forward secrecy and post-
compromise security.  Based on earlier work on "asynchronous
ratcheting trees" art, the mechanism presented here use a
asynchronous key-encapsulation mechanism for tree structures.  This
mechanism allows the members of the group to derive and update shared
keys with costs that scale as the log of the group size.
Paragraph (version B):
In this document, we describe a protocol based on tree structures
that enable asynchronous group keying with forward secrecy and post-
compromise security.  Based on earlier work on "asynchronous
ratcheting trees" art, the protocol presented here uses an
asynchronous key-encapsulation mechanism for tree structures.  This
mechanism allows the members of the group to derive and update shared
keys with costs that scale as the log of the group size.
Paragraph (version A):
A secret that represent a member's contribution to the group
secret (so called because the members' leaf keys are the leaves in
the group's ratchet tree).
Paragraph (version B):
A secret that represents a member's contribution to the group
secret (so called because the members' leaf keys are the leaves in
the group's ratchet tree).
Paragraph (version A):
Merge the updated path secrets into the tree * Replace the public
keys for nodes on the direct path with the received public keys *
For nodes where an updated path secret was computed in step 1,
compute the corresponding node secret and node key pair and
replace the values stored at the node with the computed values.
Paragraph (version A):
In this table, the value pk(X) represents the public key
corresponding derived from the node secret X.  The value E(K, S)
represents the public-key encryption of the path secret S to the
public key K.
Paragraph (version B):
Compute the updated path secrets.
Paragraph (version B):
Identify a node in the direct path for which the local member
is in the subtree of the non-updated child.
Paragraph (version B):
Identify a node in the resolution of the copath node for which
this node has a private key.
Paragraph (version B):
Decrypt the path secret for the parent of the copath node using
the private key from the resolution node.
Paragraph (version B):
Derive path secrets for ancestors of that node using the
algorithm described above.
Paragraph (version B):
The recipient SHOULD verify that the received public keys agree
with the public keys derived from the new node_secret values.
Paragraph (version B):
Merge the updated path secrets into the tree.
Paragraph (version B):
Replace the public keys for nodes on the direct path with the
received public keys.
Paragraph (version B):
For nodes where an updated path secret was computed in step 1,
compute the corresponding node secret and node key pair and
replace the values stored at the node with the computed values.
Paragraph (version B):
In this table, the value pk(X) represents the public key derived from
the node secret X.  The value E(K, S) represents the public-key
encryption of the path secret S to the public key K.
Paragraph (version A):
Construct a ratchet tree with its leaves populated with the public
keys and credentials from the UserInitKeys of the members, and all
other nodes blank.
Paragraph (version B):
Construct a ratchet tree with its leaves populated with the public
keys and credentials from the ClientInitKeys of the members, and
all other nodes blank.