# Method for Improving the Reliability of SRAM-Based PUF Using Convolution Operation
## 3 The Proposed Scheme
### One-Layer Convolution Scheme  
The proposed scheme includes a standard matrix and a verification matrix. The standard matrix is obtained by calculating the average value of 100-times the initial power-on value and binarizing it. The output result is determined by the standard matrix. The PUF can better discriminate using the standard matrix generated by the average value. The initial value for any time can also be adopted for the standard matrix. Different standard matrices will produce different results. These approaches do not affect the reliability of the proposed scheme.  
The one-layer convolution scheme generates an \(m\times m\) standard matrix at the SRAM PUF registration stage. The convolution process calculates the sum of the elements in the standard matrix through an \(n\times n\) convolution kernel. The step size of the convolution is the same as the length of the convolution kernel. The new matrix generated is called the verification matrix, the size of which is \((m/n)\times(m/n)\) (\(m\) can be divided by \(n\)). The verification matrix, standard matrix and the address of SRAM need to be entered into the validator's database. The scheme sets a redundancy coefficient. The redundancy coefficient is a value that is determined according to different types of SRAM. The probabilities for the cells from 0 to 1 and from 1 to 0 are the same. The formula to calculate the redundancy coefficient is as follows.  
\[\frac{\mathrm{N}}{2}*\frac{\mathrm{L}}{\mathrm{S}}=\mathrm{Redundancy\;coefficient} \tag{3}\]  
where N is the naturally unstable rate of SRAM, L is the length of the convolution kernel and S is the step size of the convolution. The redundancy coefficient multiplied by the size of the convolution kernel represents the redundancy. The redundancy indicates the maximum number of unstable cells in the range of the convolution kernel size. A small redundancy coefficient can effectively distinguish two similar SRAM datasets. However, if the noise causes the number of unstable cells to be larger than the redundancy, the output results will be unstable. A large redundancy coefficient indicates strong anti-interference ability, which implies better reliability. However, a large redundancy coefficient reduces the discrimination between two similar SRAM datasets. The difference between the maximum inter-chip HD and the minimum inter-chip HD will also be large. Therefore, it is necessary to set up a suitable redundancy coefficient to meet different performance requirements.  
When an SRAM is authenticating, the scheme uses the same \(n\times n\) convolution kernel for the new \(m\times m\) data. It generates an unverified matrix for identity authentication. If the difference in the absolute value between the unverified matrix and the verification matrix in the same position is less than the redundancy, this position is stable. If the value of the stable positions in the verification matrix is larger than half of the size of the convolution kernel, the output signal is 1, otherwise it is 0. If it is an unstable position, the validator will output 0.5, indicating an abnormality. The workflow is shown in Figure 2.  
During initialization, the processor verifies the standard matrix with the standard matrix to obtain the standard output of SRAM PUF and adds it into the validator's database.