# Protecting Private Communications in Cyber-Physical Systems through Physical Unclonable Functions
## 4 Performance Evaluation and Results
### Experiment Description  
Five different experiments were carried out in order to evaluate five basic indicators: (1) randomness level; (2) the bit error rate depending on the accumulated operation time; (3) the distance between key streams generated by a similar PUF; (4) the malfunction probability depending on the number of EB devices in the PUF; and (5) the resource consumption caused by the proposed encryption scheme. The first four parameters are going to be evaluated with experiments based on simulation scenarios and tools. The last and fifth KPI is evaluated using a real implementation. Simulation scenarios were built using the MATLAB and SimuLink software tools, which also include mechanisms for electromagnetic and engineering simulations. It is a proprietary suite that employs a specific programming language based on C syntaxis. However, libraries based on other technologies such as C or Java may be employed. This suite was deployed in a Linux (Ubuntu 16.04) machine with 8 GB of RAM memory and an Intel i7 processor. The simulation scenario consisted of two nodes creating a bidirectional communication link between them (see Figure 1). Models for magnetic materials, radio channels, magnetization vectors, etc., were taken from standard existing libraries. The simulation model for the EB devices was configured and characterized through numerical functions fitted to follow and behave as the measures obtained by [PERSON] and other authors [45] indicate. Apart from the magnetic components, each node was constructed with a relatively small amount of hardware: a general-purpose embedded processor with analog-digital converters, 5 kilobits of SRAM and 32 kilobytes of DRAM. In order to pack and assign the described resources to the nodes, virtual containers were employed. In particular, Kernel-based Virtual Machine (KVM) technologies were employed with the libVirt Application Programming Interface (API). In that way, a simple C++ program may be employed to control virtual instances and they may be managed from the MATLAB suite. With the objective of connecting the virtual instances and the MATLAB suite where the simulation scenario runs, the bridges provided by the MATLAB and Simulink libraries are deployed and executed. These bridges forward the input traffic in the simulated nodes to the external virtual machine, so real algorithms, solutions, and protocols may be easily tested. In the first four experiments, simulation tools are adequate to provide relevant results as the limitations due to hardware issues are not evaluated (we are considering nodes can easily implement the proposed cipher). In the last experiment, hardware limitations were considered and real devices were employed. For the first experiment, the NIST SP 800-22 test suite [46] was considered. This suite includes 15 tests that are usually employed to evaluate the randomness of key generators, PUFs, and other similar proposals. These tests consider two parameters (usually known as \(\alpha\) and \(p\)) to determine if the evaluated number sequence is random. Basically, the tests evaluate if a sequence is random with a confidence equal to \((1-\alpha)\). Tests obtain the \(p\)-value and they are successful (the sequence is random) if it is greater than \(\alpha\). In our experiment we are considering \(\alpha=0.01\). The simulation scenario consisted of the proposed key generator where 64 different EB devices where integrated. For the second experiment, a collection of different simulations was carried out. For each different simulation, the number of EB devices in the proposed PUF was increased. A bidirectional secure communication link is stablished between both the transmitter and the receiver for each configuration. As a supporting wireless communication module, we have selected a Bluetooth 4.0 technology solution (available in the NS3 libraries). Communication links were configured to be 10 Mbps links (Bluetooth 4.0 enables up to 32 Mbps connections). Using these links, 100 information packets per second were transmitted.