# Key Recovery for Content Protection Using Ternary PUFs Designed with Pre-Formed ReRAM
## 5 Implementation with SRAM and ReRAM Devices
### Description and Analysis of the SRAM Implementation  
A set of switches allows quick power-off cycling of the SRAM to reset the device prior to the response generation. The load around the I/Os of the SRAM are such that a power-off cycle still takes at least two seconds before the flip-flops of each cell are properly grounded. The read cycles of the SRAM are extremely fast, a 256-bit long key only needs 10 \(\upmu\)s. Most SRAM cells always wake in the same state, as a \"0\" or a \"1\" after power off--power on cycles; however, 3 to 5 % of the array changes states in each cycle. This could result in high BERs, so during the enrollment cycle of each SRAM, we performed repetitive power-off-on cycles to identify the unstable cells.  
Examples of the experimental results are shown in Figure 9. The results represent 30 successive key generation cycles, lasting 2 s each; the enrollment had 100 cycles at room temperature. At each key generation cycle, the server randomly selects 512 positions, of which 256 are masked to keep only the most stable cells. The 256-bit long keys generated from the look-up table are on the left, those from the SRAM-PUF are on the right, and are  
Figure 7: Block diagram of the encryption of file M for IoTs. The server prepares the challenges (**T**, _IDAccess_). The digital file **M** is encrypted with **K** by the IoT, which stores only **T**, ciphertext **C**, and message digest **H(K)**. The server keeps _IDAccess_ in a look-up table for future operations.  
followed by the count of errors. The average BERs were about one percent, i.e., 3 erratic bits per key, which were due to both the SRAM instability and noises in the electronic system. Such BERs are well within the capability of the RBC, with false reject rates (FRR) below 1%, and one-second average latencies. After about 100 cycles, we were left with approximately 88 % of the cells waking in the same state, the rest of the population had at least one erratic response. At between 100 cycles and 1000 cycles, less than 5% of the additional cell population was still unstable.  
Figure 8: Pictures of the hardware set up for the SRAM (**left**), and the ReRAM (**right**). The data acquisition board for the memory chips is plugged into “WiFire” engineering boards provided by Digilent. A pair of ReRAM devices are needed for the differential circuit generating responses.  
Figure 9: Set of thirty 256-bit long key generation cycles with SRAM. The keys generated by the server from the look-up table are on the left, those generated from the SRAM PUF are on the right, followed by the count of errors. BERs are in the one percent range.  
The results presented below in Figure 10 were derived from using the same methodology of varying the number of enrollment cycles at different temperatures. We performed tens of thousands of key generation cycles to obtain statistically significant results, which is necessary to report BERs in the one part per million range. The SRAM was subjected to 1000 enrollment cycles at different temperatures: 0 \({}^{\circ}\)C in light blue, 20 \({}^{\circ}\)C in red, 40 \({}^{\circ}\)C in grey, 60 \({}^{\circ}\)C in orange, and 80 \({}^{\circ}\)C in dark blue. The BER was then computed with responses generated in the 0 \({}^{\circ}\)C to 80 \({}^{\circ}\)C temperature range for each temperature of enrollment. We observed smaller BERs, in the 2 \(\times\) 10\({}^{-5}\) range, when the responses were generated at the same temperature as the enrollment; however, the BERs quickly degraded when these temperatures did not match. A multi-temperature enrollment, shown in green in Figure 9, yielded BERs in the 1 \(\times\) 10\({}^{-5}\) to 2 \(\times\) 10\({}^{-6}\) range. However, such a high-quality enrollment is time-consuming as we needed to pause two seconds between cycles, in addition to the 3 s needed to test the devices. The multi-temperature enrollment took 5 \(\times\) 5000 s, or 7 h, which is not practical for some applications.