Research Article

An Aggregate Signature Based Trust Routing for Data Gathering in Sensor Networks

Algorithm 1

The algorithm of aggregate signature based trust routing (ASTR) scheme.
(1) aggregate signature stage
(1)  For each node Do
(2)    running aggregator determining algorithm which is is
     similar to cluster-head selection algorithm in [36];
(3)  End for
   // now, nodes either belong to aggregators or belong to member nodes
(4)  For each member node Do
(5)    send its data as well as node ID, data time to its aggregator
(6)  End for
(7)  For each aggregator node Do
(8)     aggregate its member nodes’ data into a data packet
     using ID-based aggregate signature technology as [1];
(9)     aggregate its member nodes’ abstract into an abstract
     using ID-based aggregate signature technology as [1];
(10)  End for
(2)  stage
(11)   compute according to the using formula (17);
    // is the maximum retransmission times of
(12)  Let ;
(13)   select a set of values random from
(14)   select neighbor nodes with higher trust
      than the rest neighbor nodes;
(15)   send to each node in the set ;
     // begin abstract routing
(16)  For each in the set   Do
(17)   While Do
(18)    select its highest trust of left (right) neighbor node ;
(19)    send to ;
(20)    ;
(21)    ;
(22)   End While
(23)   While is not sink Do
(24)    select its high trust and the nearest to sink neighbor ;
(25)    send to ;
(26)    ;
(27)   End While
(28)  End for //end abstract route to sink
(29)   select neighbor nodes with higher trust
     than the rest neighbor nodes;
(30)   send to each node in the set ;
    // begin data routing
(31)  For each in the set   Do
(32)   While Do
(33)    select its highest trust of left (right) neighbor node ;
(34)    send to ;
(35)    ;
(36)    ;
(37)   End While
(38)   While is not sink Do
(39)    select its high trust & the nearest to sink neighbor ;
(40)    send to ;
(41)    ;
(42)   End While
(43)  End for //end data route to sink
(44)  Let ;
(45)  aggregator wait for the message from sink;
(46)  If message from sink indicate that data routing failure then
(47)    If
(48)    goto step ;
(49)    End if
(50)  End if
(3) Trust computing stage
(50)  aggregator get a message from sink
(51)  If message from sink indicate that data routing failure then
(52)   ;
      // is the neighbor of that data routing through
(53)  Else
(54)   ;
(55)  End if