# A PUF- and Biometric-Based Lightweight Hardware Solution to Increase Security at Sensor Nodes
## 3 Trusted Sensor Nodes Based on SRAM PUFs  
### Physical Identities of Sensor Nodes Based on SRAM PUFs  
SRAMs are composed of memory cells arranged in large memory array structures. Each SRAM cell is a bistable circuit whose logic memory functionality comes from two cross-coupled inverters. A write operation forces the SRAM cell to transition towards one of the two stable states. If the cell is powered-up and no write operation is carried out, the positive feedback between the two inverters leads the cell to the start-up value imposed by the inverter which begins to conduct. The conditions that make one inverter be the winner can be intrinsic or external. Intrinsic conditions are related to mismatching between the inverters due to the variability of semiconductor fabrication process. External conditions are aging, power supply voltage value (Vdd), ambient temperature, and ramp-up time (i.e., the time to reach Vdd after power-on), being the two last ones the most influential [8; 9]. The start-up values of SRAM cells have been used to identify the SRAM because the intrinsic often dominate over the external conditions in most cells. Hence, although the external conditions change, the SRAM intrinsic nature remains. If the intrinsic conditions are random, due to fabrication process variability, the start-up values of one SRAM are difficult to be generated by another SRAM or ascertained by someone willing to clone the SRAM. Hence, SRAMs behave as a PUF and can be identified by their start-up values (the PUF response). The start-up values of the memory cells of two different SRAMs are different (which is known as PUF uniqueness) and the start-up values in a specific SRAM are almost the same for each powered-up (which is known as PUF reliability). A sensor node has typically several parts: a communication module, a main microcontroller, and an energy source (a battery or an embedded form of energy harvesting). SRAMs which can be powered down and up to act as PUFs can be found, for example, in the communication module. The sensor can power down this module at certain times when no communication is carried out to save power (since sensor nodes have limited power budget). When communication is needed, the module is powered up and this can be exploited to obtain the SRAM start-up values. The difference between two PUF responses obtained from SRAM start-up values is measured by computing their Hamming distance (Hdist). In other words, Hdist computes the number of bits that are different in two PUF responses. Experimentally, given \(k\) sequences, \(R\), of \(n\) bits generated by the start-up values of SRAM cells, the average fractional Hdist is calculated as follows:  
\[\frac{Hdist}{n}\bigg{|}_{avg}=\frac{2}{k\cdot(k-1)\cdot n}\cdot\sum\
olimits_ {i=1}^{k-1}\sum\
olimits_{j=i+1}^{k}Hdist\big{(}R_{i},R_{j}\big{)}. \tag{1}\]  
A condition for ideal PUF uniqueness is that PUF responses from different memories (known as the impostor population of PUF responses, in recognition applications) are quite different and the average fractional Hdist is therefore 0.5. Concerning PUF reliability, if a SRAM PUF is completely reliable, all the PUF responses from the same memory (known as the genuine population of PUF responses, in recognition applications) should be the same, and the average fractional Hdist will therefore be zero. However, Hdist between two genuine responses is usually small but not zero. The reason is that most of the SRAM cells have a strong tendency to a preferred start-up value (they will be named herein as STB cells or stable cells). However, there are also a few cells that have a weak tendency or no preference at all (which will be named herein as RND cells or random cells). They provide different start-up values (known as flipping bits), due to variations of external conditions.