# Protecting Private Communications in Cyber-Physical Systems through Physical Unclonable Functions
## 4 Performance Evaluation and Results
### Results
Thus, results with real devices might strongly change (BER may go up several magnitude orders) and advanced techniques, such as error correction modules, could be necessary. Figure 11 shows the results of the third experiment. Distances between key streams are calculated using a statistical expression. In particular, this distance is defined as the mutual information between both key streams (a similar understating to which employed in context-tree weighting method [48]). Mutual information is null when both streams are statistically independent and equal to \(N\) (the number of bits per sample, see Section 3), when they are statistically equivalent. To normalize the mutual information, ranging between zero and \(N\), and turn this function into a distance function a simple algebraic expression is employed (26). This definition guarantees two streams that are 100% different are statistically independent, contrary to traditional (Euclidean) distance definitions. \[d(k;k^{*})=\ \frac{N-I(k;k^{*})}{N} \tag{26}\]  
Distance between the manufacturing conditions of two PUF is evaluated using a Euclidean distance and the notion of mean square error. Being \(C_{1}\) and \(C_{2}\) vectors describing the manufacturing conditions (\(M\) variables), the distance between the two corresponding PUF may be directly obtained (27). \[d(C_{1};C_{2})=\frac{1}{M}\sqrt{\sum_{i=1}^{M}(C_{1}(i)-C_{2}(i))^{2}} \tag{27}\]  
Figure 10: Results from the second experiment. As can be seen, even two PUFs manufactured as 'clones' generate key streams that are 50% different. In other words, and considering the distance between key streams is evaluated using the mutual information, only half of bits per sample in the key streams are statistically independent. For configurations including more than two EB devices, even PUFs manufactured with only 10% difference generate statistically independent key streams (distance 100%). Configurations including only one or two EB devices also generate independent key streams and secure encryptions (as only identical key streams may grant access to the private information). However, similar PUFs generate dependent key streams if fewer EB devices are included. Even if as more different PUFs are manufactured the distance between key streams also increases, one-device configurations only produce totally independent key streams for totally different PUFs; while two-device configuration required materials with at least 50% differences. Any case, this experiment validates the unclonable behavior of the proposed PUF and encryption solution. Figure 12 shows the results of the fourth experiment. As Figure 12 shows, the malfunction probability is also higher as more EB devices are employed to build the PUF. In fact, as more identical EB devices must be manufactured, the malfunction probability  
Figure 11: Results from the third experiment. Figure 12: Results from the fourth experiment. grows up. In any case, above \(N_{d}=16\), configurations present a stable malfunction probability around 0.01%. Between \(N_{d}=1\) and \(N_{d}=16\), the malfunction probability goes up exponentially, being \(10^{-6}\)% the minimum probability (for a one EB device configuration). With the four previously described experiments, the performance of the PUF is evaluated. However, one final experiment is required to evaluate indicators related to hardware nodes and limitations. Table 2 shows the obtained results from the fifth experiment. As can be seen, results are almost independent from the sample length (\(N\)). In general, the proposed solution consumes around 70% of available program space in resource constrained nodes. Although this amount may seem too high, the remaining 30% is enough to implement sensing algorithms and other similar small software solutions. On the other hand, the consumed processing time is quite low, so sampling algorithms can be easily implemented. Considering the required time to encrypt one sample, the fastest signal our nodes could sample is 200 KHz.