## 4 Proposed Scheme  
### Concepts and Definitions  
In our proposed algorithms, we have used two notions: direction and trust. Both these notions (direction and trust) are used to provide reliable (non-malicious and non-faulty) secure paths for achieving robust route privacy. Direction information will help to forward packet to the destination in a timely manner and trust will help to forward the packets via reliable nodes. Detail definitions of both notions are given below. **Direction:** The first notion used in our algorithms is that of direction. The physical location of the base station is the reference point for each sensor node. Based on this reference point, each node classifies its neighboring nodes into four categories: (1) forward neighboring nodes (\(F\)), (2) right side backward neighboring nodes (\(B_{r}\)), (3) left side backward neighboring nodes (\(B_{l}\)), and (4) middle backward neighboring nodes (\(B_{m}\)). The objective of this categorization is to provide more path diversity as discussed in Section 4.2. A node \(x\) classifies its neighboring node \(y\) in following fashion:  
\[C_{x,y}=\left\{ \begin{array}{ll}F&\frac{-\pi}{2}\leq\,\theta\,\leq\,\frac{ \pi}{2}\\ B_{r}&\frac{\pi}{2}<\,\theta\,\leq\,\frac{5\pi}{6}\\ B_{m}&\frac{5\pi}{6}<\,\theta\,\leq\,\frac{7\pi}{6}\\ B_{l}&\frac{7\pi}{6}<\,\theta\,<\,\frac{3\pi}{2}\\ \end{array} \right. \tag{1}\]  
where \(\theta\) is the angle between the node \(x\) and its neighboring node \(y\) with respect to the line joining node \(x\) and the base station as shown in Figure 2.  
Figure 2: Neighbor node classification  
**Trust:** The second notion used in our algorithms is that of trust. The definition of a trust here is based on our other paper [19] and restated here. A node can be classified into one of the three categories [20]: trustworthy, untrustworthy, and uncertain. A node is considered trustworthy if it interacts successfully most of the time with the other nodes. A node is considered untrustworthy if it tries to do as many unsuccessful interactions as possible with the other nodes. An untrustworthy node could be a faulty [21] or malicious node. A node is considered uncertain if it performs both successful and unsuccessful interactions. Detailed definition of the successful and unsuccessful interactions and trust calculation methodology is available in our paper [22] and provided here in a simplified form. A sender will consider an interaction successful if the sender receives confirmation that the packet is successfully received by the neighbor node and forwarded towards the destination in an unaltered fashion. The first requirement of successful reception is achieved on the reception of the link layer acknowledgment (ACK). The second requirement of forwarding towards the destination is achieved with the help of enhanced passive acknowledgment (PACK) by overhearing the transmission of a next hop on the route, since they are within the radio range [23]. If the sender node does not overhear the retransmission of the packet within a threshold time from its neighboring node or if the overheard packet is found to be illegally fabricated (by comparing the payload that is attached to the packet), then the sender node will consider that interaction as unsuccessful. With the help of this simple approach, several attacks can be prevented, _i.e._, the black hole attack is straightforwardly detected when malicious node drops the incoming packets and keeps sending self generated packets [24]. Similarly, sink hole attack [25], an advanced version of the black hole attack, is also easily detectable by looking at the passive acknowledgment. Likewise, the selective forwarding attack [26] and gray-hole attack [27] can also be eliminated with the aid of above mentioned approach. Based on these successful and unsuccessful interactions node \(x\) can calculate the trust value of node \(y\) in following fashion:  
\[T_{x,y}=\left[100\left(\frac{S_{x,y}}{S_{x,y}+U_{x,y}}\right)\left(1-\frac{1}{ S_{x,y}+1}\right)\right] \tag{2}\]  
where [.]