Skip to main content
. 2022 Apr 30;22(9):3426. doi: 10.3390/s22093426
Algorithm 2 Intelligent Elliptic Curve Digital Signature Algorithm (IECDSA)

Input:MList, EList // MList is the information shared set by the edge nodes of the message sender. EList is information set of edge nodes in the network.

Output: Status of signatures and verification of signatures.

  • 1:

    for i to size(MList) do

  • 2:

        Selecting the data signature private key.

  • 3:

        PuK=PrK*G // Calculating a digitally signed public key. distribution the public key.

  • 4:

        RandSeed=a*RandSeed+c%m // Generate random numbers.

  • 5:

        P=RandSeedG(x,y)=(x1,y1) // Calculation of the parameter P.

  • 6:

        Generate data signature s_a by Equation (4).

  • 7:

        h(MList(i))=Hash(MList(i)) //Calculating hash values of shared information.

  • 8:

        Generate data signature s_b by Equation (6).

  • 9:

        KDSC(PuK,EList) // Key Distribution Smart Contracts enables intelligent distribution of public keys.

  • 10:

        if s_a&&s_b[1,n1] then // Information receiver edge nodes verify signatures.

  • 11:

            Signature verification failure.

  • 12:

        else

  • 13:

            Calculating hash values of shared information by Equation (5).

  • 14:

            Calculate the parameters w,u1,u2 according to Equations (7)–(9).

  • 15:

            X=u1G+u2PuK=(x1,y1) // Calculate the parameter X.

  • 16:

            if x1modn=s_a then

  • 17:

               Successful signature verification.

  • 18:

            else

  • 19:

               Signature verification failure.

  • 20:

            end if

  • 21:

        end if

  • 22:

    end for

  • 23:

    return Status of signatures and verification of signatures.