# Pitfall of the Strongest Cells in Static Random Access Memory Physical Unclonable Functions
## 3 Cloning SRAM Power-on Value
### Effect of Strongest Cell Distribution in a SRAM Array on PUF Security  
The difference between the matrix \(E\) and PUFs' response \(R\) is determined by the first bit \(y_{0}\). Using the exhaustive method, traversing \(y_{0}\) for every \(n\)-bit data requires considerable time and effort to obtain the correct \(E\). However, with the distribution of the strongest cells in the SRAM array, the data in matrix \(E\) can be partially corrected to reduce the difference between the matrix \(E\) and the response \(R\). The correlation between cell \(S(i,j)\) and its closest cells is higher than with cells farther away: \(i\) is the row number of SRAM array and \(j\) is the column number. The correlation decreases with increasing distance. It is highly probably that a strongest cell is surrounded by cells with the same power-on value. According to this feature, we designed the following recovery algorithm. The enrollment procedure is performed \(N\) times to obtain \(N\) sets of helper data, denoted as \(H_{1}(x),H_{2}(x),H_{3}(x),\ldots,H_{N}(x)\), where \(x\in[0,\,l-1]\), \(l\) is the length of the helper data. For \(C_{rep}(n,k,t)\), each group of helper data consists of \(l/(n-1)\) blocks marked as \(B_{c}(0),B_{c}(1),\ldots,B_{c}(l/(n-1)-1)\), where \(c\) is the set number or helperdata and \(c\in[0,N]\). To describe simplicity, the first set of response \(R\) is chosen as the response to be cloned. From the analysis above, when the error bit occurs in the  
Figure 4: Mapping between the clone matrix \(E\) and response \(R\). position, the generated helper data of each set are opposite to each other. Therefore, the helper data need to be pre-processed one-by-one according to the block length (\(n-1\)) so the helper data truly reflects the power-on trend. First, calculate the difference of the two helper data block-by-block:  
\[Diff=B_{1}(f)\oplus B_{c}(f) \tag{3}\]  
where \(f\) is the block number and \(f\in[0,\,1/(n-1)-1]\). Then, we recover the block according to _Diff_:  
\[B^{\prime}_{c}(f)=\left\{ \begin{array}{rl}B_{c}(f),Diff&\leq t\\ \overline{B_{c}(f)},Diff&>t\end{array} \right. \tag{4}\]  
where \(t\) is the error correction capability of the repetition code. The error-corrected helper data are \(H^{\prime}_{c}(x)=\sum_{f=0}^{l/(n-1)-1}B^{\prime}_{c}(f)\). The weighted sum of the cell in \(N\) helper data at location \(x\) is:  
\[P=\frac{\sum_{c=1}^{N}H^{\prime}_{c}(x)}{N} \tag{5}\]  
A cell is a strong cell if \(P\) is close to 1 or 0. However, we cannot confirm whether it is a strong-1 cell or a strong-0 cell. We use \(T_{\text{th}}\) as the decision threshold for strong cells and \(T_{\text{th}}\in[0,\,100\%]\), i.e., when \(P\leq(1-T_{\text{th}})\) or \(P>T_{\text{th}}\), we label it as strong cell, otherwise it is a metastable cell. By analyzing the \(P\) value in the corresponding position of the helper data in matrix \(E\), we can identify whether the SRAM array corresponding to position \(x\) is a strong cell. Through the above analysis and processing, an element in matrix \(E\) has two attributes: one for its value, 0 or 1, and the other for the property of the cell, that is, whether it is a strong cell. Empty elements have initial attributes of value 0 and non-strong cell. The strongest cell in the SRAM is surrounded by cells with the same power-on tendency. When a series of cells in a group of helper data have the same trend of power-on value, the cell in the middle position is taken as strongest cell \(S(i,j)\). The correlation of the surrounding cells, \(S_{area}\), is generated by separately calculating the weight. As shown in Figure 5, the position \(S(i,j)\) to be calculated is a known strongest bit. There are eight cells, \(S(i-1,j-1)\), \(S(i,j-1)\), \(S(i+1,j-1)\), \(S(i-1,j)\), \(S(i+1,j)\), \(S(i-1,j+1)\), \(S(i,j+1)\) and \(S(i+1,j+1)\), around the cell \(S(i,j)\).