# Pitfall of the Strongest Cells in Static Random Access Memory Physical Unclonable Functions
## 4 Proposed New Fuzzy Extractor
### ERFE Architecture
The number of errors in each group of 11-bit data that changes from 0 to 1 is recorded as \(N_{0\to 1}\), and the number of errors changing from 1 to 0 is recorded as \(N_{1\to 0}\). As shown in Equations (10) and (11), we obtain _Key_ = 0 and _sum_ = 0 or 2 in the enrollment phase. In the

Figure 6: Diagram of _AddOp_, _Mask_, _sum_ and _Key_. reconstruction phase, we obtain \(sum^{\prime\prime}=sum+(N_{0\to 1}-N_{1\to 0})\pm 1\), _Key_ extraction will return a wrong value if \(N_{0\to 1}-N_{1\to 0}\geq 5\). Similarly, key extraction will return a wrong value if \(N_{1\to 0}-N_{0\to 1}\geq 5\) at \(sum=9\) or \(sum=10\). ERFE can accommodate 4-bit errors in 11-bit data. If more than 4-bit errors occur ERFE does not work correctly when it meets the condition of \(|N_{0\to 1}-N_{1\to 0}|\geq 5\). \(p(n,\epsilon)\) is the probability that has \(e\) bit errors in \(n\) bits string, and \(N_{1\to 0}+N_{0\to 1}=e\). \(p(e,5)\) is the probability of \(|N_{0\to 1}-N_{1\to 0}|\geq 5\), assuming an error event that changes from \(0\to 1\) or \(1\to 0\) occurs with the same probability. The rate of extracting a wrong value is:

\[P_{FE}=\sum_{e=5}^{n}p(n,e)p(e,5)=\sum_{e=5}^{n}(C_{n}^{e}\ p_{2}^{e}\ (1-p_{2})^{n-e}\ \frac{\sum_{i=\epsilon/6+5}^{e}C_{e}^{i}}{2 \epsilon}) \tag{14}\]

In Equation (14), \(p_{2}=p_{s}\) if an error correcting code (ECC) like repetition code or BCH code is concatenated [14], otherwise, \(p_{2}=p_{b}\). \(\gamma\) is the length of extracted key, and the ERFE failure rate is:

\[P_{fail}=1-(1-P_{FE})^{\gamma} \tag{15}\]

Table 1 gives the result of \(P_{fail}\) with different \(p_{2}\). To obtain a failure rate less then \(10^{-6}\). ERFE needs to use the SRAM cell with \(p_{2}\) < 0.01. A method to find the stable bit with lower \(p_{b}\) was reported [21], and a stable bit rate of 59.26% in 6 KB SRAM was achieved after power-voltage variation, temperature variation and aging effects tests. They also proposed Neighborhood-Base Bit Selection Algorithm to determine the stable bits. Another method of obtaining lower \(P_{fail}\) is to add the error correction code after the SRAM responses are measured. The data are chosen by _Mask_, and invalid data are discarded. Since not all the SRAM cells are used and the mapping relationship of Figure 4 is broken, repetition code will not leak the information of the strongest cells. Repetition code \(C_{rep}(9,1,4)\) is used in ERFE. All the valid blocks create a matrix \(D_{fe}\) with nine rows. Each column of 9-bit data is sent to repetition code separately, and the first bit \(y_{0}\) in repetition code is chosen in different row. Figure 7 provides an example of \(D_{fe}\) with 100 blocks, so we obtain 1100 elements, the \(D_{fe}\) is a matrix with 9 rows and 123 columns, and \(u_{a\_b}\) is the element of \(D_{fe}\) which means it is at the \(a\)-th row and \(b\)-th column, \(a\in(0,\ 8)\), \(b\in(0,\ 122)\). The last \(123\times 9-1100=7\) empty elements are filled to zero. Each column data are sent to repetition code one at a time, and the data shown in red are considered as \(y_{0}\) in each column. ERFE was designed symmetrically. The opposite value of \(sum=0\) and \(sum=2\) is \(sum=11\) and \(sum=9\), so the opposite value of the key is generated. The probability of guessing the sum value using helper data generated by repetition code is 50%. \begin{table}
\begin{tabular}{c c c c c} \hline \hline \(p_{2}\) & **0.15** & **0.1** & **0.05** & **0.02** & **0.01** \\ \hline \(P_{fail}\) & 0.12 & 0.022 & \(9.8\times 10^{-4}\) & \(1.1\times 10^{-5}\) & \(3.5\times 10^{-7}\) \\ \hline \hline \end{tabular}
\end{table} 
Table 1: \(P_{fail}\) with different \(p_{2}\) (\(\gamma=256\)). Figure 7: Diagrams of \(D_{fe}\). ## 5 Experiment and Analysis

### Experimental Set-Up

Our experimental data were generated from System on Chip (SoC) chips that are manufactured in a HHGRACE 130 nm CMOS technology multi-project wafer run.