A method for managing a group comprising a plurality of members (U1 . . . Un), each member (Ui) holding or being capable of holding a group secret key (SKj,k,p),
- the method using an asymmetric cryptosystem (Enc,Dec) verifying the property, for two asymmetric key pairs (PK1,SK1) and (PK2,SK2):
- Enc(PK1,SK2)=Enc(SK1, PK2), where Enc is the encryption function of the cryptosystem, and a registry wherein a smart contract is deployed;
- a binary tree (A) being used to organize the group members;
- each member being associated with a terminal node of the tree, this node being attached to a root node of the tree, directly or via a sequence of at least one node, the root node and when it exists said sequence of at least one node forming the attachment chain of the considered member;
- each group member having an asymmetric key pair, of which the secret key and the public key are considered as the node secret key and the node public key for the terminal node associated with the member;
- the public key of the root node being referred to as group public key;
- the method comprising a procedure for adding a member to include a candidate seeking to join the group in the group, at a given time when
- the group is formed by a set of members, referred to as pre-addition members, forming a pre-addition tree,
- each pre-addition member has or is capable of computing a pre-addition node secret key for any node of their attachment chain;
- and
- for each node of the pre-addition tree, a pre-addition node public key is registered in the registry;
- the procedure for adding a member comprising the following operations:
- S10) a request for entry of the candidate (Un+1) into the group is sent to the smart contract, the request for entry comprising an authenticator (accUser) and a personal public key (PKUn+1) of the candidate, the candidate further holding a personal private key (SKUn+1) from which their personal public key (PKUn+1) has been computed by means of the cryptosystem;
- S20) the smart contract registers in the registry the entry into the group of a new member having the candidate's authenticator (accUn+1) and the candidate's public key (PKUn+1);
- S30) the candidate determines or obtains from the smart contract a list of the node(s) of their attachment chain in the tree;
- S40) in a neighbor-to-neighbor manner, for each node of their attachment chain, from the node of the tree to which they are directly attached to the root node (N1), the candidate computes the node secret key (SKj+1,k1,n+1) followed by the node public key (PKj+1,k1,n+1);
- S50) the candidate publishes in the registry the node public key(s) (PKj,k,n) computed in step S40;
- S60) the smart contract sends a member addition message at least to each active pre-addition group member;
- and
- S70) on receipt of the member addition message, in a neighbor-to-neighbor manner, for each node of their attachment chain that is also part of the candidate's attachment chain, in the direction from the node of the tree to which they are directly attached to the root node, each active pre-addition member computes the node secret key (SKj+1,k1,n+1);
- the node secret key (NPKj,k,p+1) of a given node being computed by a party whose attachment chain contains a first child of the given node:
- if said given node has a second child and said party has access to a non-compromised public key of the second child, according to the secret key (SKj,k2−1,n) of the first active child and the public key (PKj,k2,n) of said second child of said given node;
- or in any other case,
- according to the secret key (SKj−1,k1,p) of the first child of said given node.