Skip to main content
. 2021 Feb 4;21(4):1058. doi: 10.3390/s21041058
Algorithm 1 Anonymous Tree Generation
  • 1:

    functionCreate (node,size)

  • 2:

        if size1 then

  • 3:

            if size is odd then

  • 4:

               Let last node of newNode be node[size]

  • 5:

            end if

  • 6:

            for i=1;i<size;i+=2 do

  • 7:

               newNode[(i+1)/2].skt(node[i].sk·node[i+1].pk)

  • 8:

               newNode[(i+1)/2].pknewNode[(i+1)/2].sk·P

  • 9:

               Let newNode[(i+1)/2] be the parent of node[i] and node[i+1]

  • 10:

            end for

  • 11:

            return Create(newNode,size(newNode))

  • 12:

        else

  • 13:

            return node

  • 14:

        end if

  • 15:

    end function

  • 16:

    procedureInit(ikA,IK,EK,size n)

  • 17:

        size2n,suk$Zq*,SUKsuk·P,ck0$K

  • 18:

        Send IKA,SUK,ck0 to other members through trust third-party

  • 19:

        for each i[1,2n] do

  • 20:

            if imod2=0 or i=A then

  • 21:

               node[i].sk$Zq*

  • 22:

            else

  • 23:

               node[i].skKeyExchange(ikA,IKi,suk,EKi)

  • 24:

            end if

  • 25:

        end for

  • 26:

        agtCreate(node,size), gpkagt, delete all sk from gpk

  • 27:

        Run σ0Sig(ikA,gpk1) and broadcast (gpk1,σ0) to other group members

  • 28:

        return gpk,agt,node

  • 29:

    end procedure