## 4 Proposed Method
### Proposed Method: AAD
Then, \(s_{j}\), according to \(d_{j}^{r}\), derives \(E_{k_{j}^{r}}(d_{j}^{r})\) and \(z_{j}^{r}\) to guarantee the data privacy and authenticity, respectively. Lastly, \(s_{j}\) sends \(\Omega_{j}^{r}\) to the sensors in \(\bar{S}_{j}^{r}\) whose second and third fields are always fixed to be \(1\) (lines 5 and 6 in Figure 5). **Receiving/Forwarding Phase. ** The algorithm of this phase is described in Figure 6. This phase is executed by each sensor when a message is received. According to the role it acts, each sensor executes different tasks (lines 1\(\sim\)7 in Figure 6); the receiving task will be executed if the received message is destined to itself, and the forwarding task (lines 8\(\sim\)13 in Figure 6) is performed otherwise. Assume that \(s_{j}\) is the forwarding sensor and receives \(\Omega=\langle s_{i},P,C,E,Z,s_{i^{\prime}}\rangle\) (line 9 in Figure 6). At first, \(s_{j}\) checks if it has \(\lambda\)-hop proximity relationship to the destination sensor \(s_{i^{\prime}}\) (lines 9\(\sim\)13 in Figure 6). \(s_{j}\) proceeds the procedures if \(s_{j}\) has \(\lambda\)-hop proximity relationship to the destination sensor \(s_{i^{\prime}}\) and drops the received \(\Omega\) otherwise. \(s_{j}\) then adds the existence evidence of itself on the forwarding path on \(\Omega\) so that the sink can check whether the received authentication tag passes through exactly those sensors it should pass. To achieve this goal, \(s_{j}\) applies the keyed hash function with its secret key \(k_{j}^{r}\) on \(Z\) to have \(h_{k_{j}^{r}}(Z)\). Moreover, to enable the sink to accomplish the verification, the information about the forwarding path should be included in \(\Omega\); it is the usage of \(P\) and \(C\) in \(\Omega\). \(C\) means that \(s_{j}\) is on the \((C+1)\)-th sensor of the forwarding path and \(P\) can be used to extract all the sensor IDs on the forwarding path (The details will be stated in the description of the verification phase later). More specifically, after receiving \(\Omega\), \(s_{j}\) increases \(C\) by one and multiplies \(P\) with \(p_{j}^{C+1}\), where \(p_{j}\) is the prime number stored in \(s_{j}\) in pre-deployment phase. Afterwards, the packet \(\langle s_{i},P\cdot p_{j}^{C+1},C+1,E,h_{k_{j}^{r}}(Z),s_{i^{\prime}}\rangle\) will be forwarded to the next sensor on the forwarding path. Note that the selection of the next sensor depends on the routing protocol the underlying network uses and is not the focus of this paper. Nevertheless, due to the fact that each sensor knows its position, geographic routing [20] is a reasonable choice. On the other hand, assume that \(s_{j}\) is the destination sensor and receives \(\Omega=\langle s_{i},P,C,E,Z,s_{j}\rangle\) (line 4 in Figure 6). Under this situation, \(s_{j}\) simply extracts \(\langle s_{i},P,E,Z\rangle\) from \(\Omega\) and then stores it into an ordered set \(R_{j}^{r}\) (line 5 in Figure 6). At the end of the round \(r\), the key \(k_{j}^{r}\) will be evolved to the key \(k_{j}^{r+1}\) of the next round \(r+1\) using the publicly-known hash function \(h\) (line 7 in Figure 6). Figure 5: The algorithm of sensing phase. **Verification Phase. ** The algorithm describing the verification phase is shown in Figure 7. Assume that the sink would like to obtain the data \(d_{j}^{\bar{r}}\) sensed by sensor \(s_{j}\) at the round \(\bar{r}\). What the sink should do is to perform the verification phase. Since the initial key of \(s_{j}\) is given by the sink, the key \(k_{j}^{\bar{r}}\) will be known by the sink. Thus, the co-authenticators of \(s_{j}\) at \(\bar{r}\) will also be known by the sink. This prevents the traces from being deleted by the adversary. The strategy of the sink is to move to the positions near those co-authenticators to collect \(d_{j}^{\bar{r}}\), acquiring the proper authentication tags. More specifically, assume that the co-authenticators of \(s_{j}\) are \(s_{q_{1}},\ldots,s_{q_{\bar{r}_{j}^{\bar{r}}}}\), \(s_{q_{1}},\ldots,s_{q_{\bar{r}_{j}^{\bar{r}}}}\in\{1,\ldots,n\}\setminus\{j\}\).