Group Operations. To create a group G = (ID1, . . . , IDn), the manager first increments t then calls (τmj ka, skeleton) ← Init(τmka, G), which initializes the tree with the IDs in G at its leaves in τmka and re- turns the skeleton (which will be the whole tree). Then they call (I, K, CT, τmjjka) ← SecretGen(skeleton, τmj ka) to generate secrets and ciphertexts for skeleton, set T ← (t, create, −1, skeleton, CT) and return (I, T, K). To add a user ID to the group, the manager first increments t then calls (τmj ka, skeleton) ← Add(τmka, ID), which adds a leaf for ID to τmka. Then they call (I, K, CT, τmjjka) ← SecretGen(skeleton, τmj ka) to generate new secrets and ciphertexts for skeleton, set T ← (t, add, ID, skeleton, CT) and oob value kID ← K[ID], and return (I, T, kID). ← To remove a group member ID from the group, the group manager increments t then calls (τmj ka, skeleton) ← Remove(τmka, ID), which removes the leaf for ID from τmka. Then they call (I, K, CT, τmjjka) ← SecretGen( skeleton, τmj ka) to generate new secrets and ciphertexts for skeleton, set T (t, rem, ID, skeleton, CT), and return (I, T ). To update the secrets of a group member ID, the group manager first increments t, then, in the procedure skeleton ← SkelGen(τmka, ID), forms the skeleton skeleton, consisting of the nodes on the direct path of vID (the leaf occupied by ID) and its frontier being the copath of vID. They do so by traversing the direct path of vID, and for each node v besides vID, they color the edge to the child of v on the direct path as green. Then they call (I, K, CT, τmj ka) ← Secr▇▇▇▇▇(▇▇▇▇▇▇▇▇, ▇▇▇▇) ▇▇ generate new secrets and ciphertexts for skeleton, set control message T ← (t, up, ID, skeleton, CT) and out-of-band value kID ← K[ID], and return (I, T, kID).10
Appears in 2 contracts
Group Operations. To create a group G = (ID1, . . . , IDn), the manager first increments t then calls (τmj τm′ ka, skeleton) ← Init(τmka, G), which initializes the tree with the IDs in G at its leaves in τmka and re- turns returns the skeleton (which will be the whole tree). Then they call (I, K, CT, τmjjkaτm′′ka) ← SecretGen(skeleton, τmj τm′ ka) to generate secrets and ciphertexts for skeleton, set T ← (t, create, −11, skeleton, CT) and return (I, T, K). To add a user ID to the group, the manager first increments t then calls (τmj τm′ ka, skeleton) ← Add(τmka, ID), which adds a leaf for ID to τmka. Then they call (I, K, CT, τmjjkaτm′′ka) ← SecretGen(skeleton, τmj τm′ ka) to generate new secrets and ciphertexts for skeleton, set T ← (t, add, ID, skeleton, CT) and oob value kID ← K[ID], and return (I, T, kID). ← To remove a group member ID from the group, the group manager increments t then calls (τmj τm′ ka, skeleton) ← Remove(τmka, ID), which removes the leaf for ID from τmka. Then they call (I, K, CT, τmjjkaτm′′ka) ← SecretGen( skeletonSecretGen(skeleton, τmj τm′ ka) to generate gen- erate new secrets and ciphertexts for skeleton, set T (t, rem, ID, skeleton, CT), and return (I, T ). To update the secrets of a group member ID, the group manager first increments in- crements t, then, in the procedure skeleton ← SkelGen(τmka, ID), forms the skeleton skeleton, consisting of the nodes on the direct path of vID (the leaf occupied oc- cupied by ID) and its frontier being the copath of vID. They do so by traversing the direct path of vID, and for each node v besides vID, they color the edge to the child of v on the direct path as green. Then they call (I, K, CT, τmj τm′ ka) ← Secr▇▇▇▇▇▇▇▇▇(▇▇▇▇▇▇▇▇, ▇▇▇▇) ▇▇ to generate new secrets and ciphertexts for skeleton, set control message T ← (t, up, ID, skeleton, CT) and out-of-band value kID ← K[ID], and return (I, T, kID).10kID).9
Appears in 1 contract
Sources: Multicast Key Agreement