Skip to main content
. 2021 Apr 19;21(8):2859. doi: 10.3390/s21082859
Algorithm 6 Adaptive method.
Input: s=6t+2, m= the bit length of s, P={(P1,,Pd)PjG1}, Q={(Q1,,Qk,Qk+1,,Qd)Qj is the precomputation tuple for QjG2,1<kd}
Output: eprod(P,Q)
  • 1:

    Write s in signed binary form, s=i=0m1s[i]2i with s[i]{1,0,1}

  • 2:

    f1

  • 3:

    forj1tokdo

  • 4:

        cnt[j]1

  • 5:

    end for

  • 6:

    forjk+1toddo

  • 7:

        TjQj

  • 8:

    end for

  • 9:

    forim2down to 0 do

  • 10:

        ff2

  • 11:

        for j1 to k do

  • 12:

            GDBL,GADDQj

  • 13:

            λ,cGDBL[i]

  • 14:

            Compute g(yP+λxP+c)

  • 15:

            ff·g

  • 16:

            if s[i]0 then

  • 17:

               λ,cGADD[cnt[j]]

  • 18:

               Compute g(yP+λxP+c)

  • 19:

               cnt[j]cnt[j]+1

  • 20:

               ff·g

  • 21:

            end if

  • 22:

        end for

  • 23:

        for jk+1 to d do

  • 24:

            ff·LTj,Tj(Pj),Tj[2]Tj

  • 25:

            if s[i]=1 then

  • 26:

               ff·LTj,Qj(Pj),TjTj+Qj

  • 27:

            else if s[i]=1 then

  • 28:

               ff·LTj,Qj(Pj),TjTjQj

  • 29:

            end if

  • 30:

        end for

  • 31:

    end for

  • 32:

    forj1tokdo

  • 33:

        πQ,(π)Q2Qj

  • 34:

        λ,cπQ

  • 35:

        Compute g(yP+λxP+c)

  • 36:

        ff·g

  • 37:

        λ,c(π)2Q

  • 38:

        Compute g(yP+λxP+c)

  • 39:

        ff·g

  • 40:

    end for

  • 41:

    forjk+1toddo

  • 42:

        Rπ(Qj),ff·LTj,R(Pj),TjTj+R

  • 43:

        Rπ2(Qj),ff·LTj,R(Pj),TjTjR

  • 44:

    end for

  • 45:

    ff(p121)/r

  • 46:

    returnf