# A PUF- and Biometric-Based Lightweight Hardware Solution to Increase Security at Sensor Nodes
## 6 Experimental Results and Discussion
### Trusted Sensor Nodes Based on SRAM PUFs  
The first question addressed experimentally was to evaluate if sensor nodes can be identified unequivocally by their SRAM PUFs. For that purpose, the communication module of the node was selected as a good candidate where to find SRAM PUFs, because, in order to save power budget, communication module is better powered down by the main processor of the node at times whenever no communication is carried out. Whenever communication is needed and the module is powered up, the start-up values of the SRAM are obtained. Since many sensor nodes use wireless communications based on Bluetooth Low Energy (BLE), BLE chips were analyzed. Among the BLE system on chips (SoCs) commercially available, the CC2541 from Texas Instruments was selected. The CC2541 contains an Intel 8051 microcontroller capable to access 256-KB of in-system-programmable flash and 8-KBSRAM through a memory arbitrator block. That SRAM was evaluated in 10 BLE chips, taking 56,000 bits per SRAM (7000 bytes) and measurement. A specific firmware was developed to carry out the first registration phase of the BLE chip. It powered down and up the SRAM 20 times and compared the start-up values obtained to classify the SRAM cells into STB and RND cells and to select the ID cells from the STB cells that provided debiased values (as described in Section 3.2). The end of the first registration phase is that the binary masks that identify the ID and the RND cells are stored in the non-volatile memory of the BLE chip. This information is not sensitive. Since the first registration phase is carried out before the sensor node is deployed, there is no problem of power consumption at this phase. Once the ID and RND cells are identified and stored, the subsequent key reconstruction stages need only one powered-up as well as the subsequent registration stages whenever the session keys are derived. After registration, Helper Data obtained from each chip are stored, \(\left\{HD_{K}^{D}\right\}=\left\{ID_{x}^{D}\oplus\ Koded_{x}\right\}\), and the responses \(\left\{ID_{x}^{D}\right\}\) are not stored anywhere. The minimum number of ID cells found in the BLE chips was 14,758. Hence, CC2541 was able to generate at least 14 ID responses with 1024 bits, which can obfuscate 14 secret keys of 128 bits encoded with an 8-bit Error Correcting Code (and generate the corresponding Helper Data) as well as obfuscate two QFM-based features per sample, three samples per finger, and two fingers per user (and generate the corresponding Salted Data). For the analysis carried out herein, these responses were enough. If more ID cells are needed (to obfuscate more QFM-based features per sample), other debiasing algorithms, as reported in [19], can be employed instead of pair-output von Neumann or 20-VN debiasing algorithm employed herein. The minimum number of STB cells found in the BLE chips was 41,213 and this debiasing algorithm reduces them to 14,758 ID cells. Once registered, other 20 measurements were taken to evaluate the difference between the new ID responses obtained, \(\left\{\overline{ID_{x}^{D}}\right\}\), and the ID responses considered for the Helper-Data generation, \(\left\{ID_{x}^{D}\right\}\). Figure 7 illustrates at the left part the distribution of fractional Hamming distances (Hdist) obtained from the comparisons of \(\left\{\overline{ID_{x}^{D}}\right\}\) and \(\left\{ID_{x}^{D}\right\}\), for any chip \(D\) (\(D\) = 1,..., 10) and any response (\(i\) = 1,..., 14), which corresponds to the genuine population of ID responses. The average fractional Hdist, calculated as in (1), is 0.0063. Considering that the secret \(K\) is encoded into \(K_{coded}\) at the Helper-Data generation stage and decoded from \(\overline{K}_{coded}\) at the reconstruction stage by using an 8-bit repetition Error Correcting Code, the probability of failure in reconstructing a bit of the secret \(K\) (as was described in Section 3.2) is equivalent to the probability that 8 bits of \(\overline{K}_{coded}\) differ from \(K_{coded}\) in 4 bits or more.