# Secure ECDSA SRAM-PUF Based on Universal Single/Double Scalar Multiplication Architecture
## Appendix A Soft-Decision SRAM-PUF Based on Reed-Muller Codes  
The algorithm of soft-decision SRAM-PUF based on Reed-Muller codes is given in Algorithm 1, which contains the registration stage and the recovery stage. 1. Registration stage: Initiate the SRAM power cycle, toggling it on and off for 100 iterations to document error probabilities \(P_{i}\). These probabilities indicate the likelihood of each bit differing from the corresponding bit in the standard value \(y\). The recorded error probabilities serve as indicators for the forthcoming response generation, revealing the likelihood of each bit being the same or different from the corresponding bit in \(y\). Subsequently, randomly select an RM code \(c\) and calculate the auxiliary data \(w\) by an exclusive-OR operation (XOR). Then, the auxiliary data \(w\) and error probabilities \(P\) are both stored in the ROM. The registration stage must be concluded before the chips depart the factory. The statistical analysis of \(P\) and the storage of \(w\) and \(P\) are stored during the manufacturing or testing phases of the chip. 2. Recovery stage: Following transactions, customers receive a response \(y^{\prime}\) with an error code when the SRAM is powered on. The value \(c^{\prime}\) is obtained by XORing with \(w\). Subsequently, utilizing RM code soft-decision decoding, \(c^{\prime}\) and error probability \(P\) are inputted to execute error correction. The error probability \(P\) enhances error correction capabilities by providing additional information to the RM code. Following the correction, the corrected code \(c\) is obtained, and \(c\oplus w\) yields the SRAM-PUF response \(y\). This stage is completed on the chip by customers. The RM code is a high-order repeat code obtained through iterative recursive operations of repeat codes. Therefore, the soft-decision method for RM codes evolves from the soft-decision method of repeat codes through recursive calculations. The soft-decision for repeat codes involves calculating the likelihood estimate \(L_{i}\) for each bit by substituting the bit error probability into Equation (1). In this formula, \(\beta\) is a constant adjusted for different precisions, and \(P_{i}\) and \(c_{i}^{\prime}\) represent the error probability for each bit and the codeword, respectively. The \"majority selection\" is employed for repeat codes, where the result of the majority bits is considered the correct value. The likelihood estimates for each bit are summed to obtain the overall likelihood estimate \(L^{*}\) for the codeword. As shown in Algorithm 2, if \(L^{*}>0\), the probability of the repeat code codeword \(c\) being all zeros is greater, resulting in a decoded result of all zeros. Conversely, \(L^{*}<0\) indicates that the probability of \(c\) being all ones is greater, leading to a decoded result of all ones. \[L_{i}=(-1)^{c_{i}^{\prime}}\log_{\beta}\frac{1-P_{i}}{P_{i}}. \tag{1}\]```
0:SRAMs. 0:A stable response \(y\). 1: Registration stage:
2:for\(j=0\) to \(100\)do
3: SRAMs power on to obtain \(y_{j}\);
4:end for
5: SRAMs power on to obtain \(y\);
6:for\(j=0\) to \(100\)do
7:for\(i=0\) to \(Bit\_Length(y)\)do
8:if\(y_{i}[i]\
eq y_{j}[i]\)then
9:\(P_{i}=P_{i}+1\);
10:endif
11:end for
12:end for
13: Choose one RM code \(c\);
14:\(\alpha=c\oplus y_{j}\);
15: Store \(w\) and \(P\) in the ROM;
16: Recovery stage:
17: SRAMs power on to obtain \(y^{\prime}\);
18:\(c\) = \(w\oplus y^{\prime}\);
19:\(c=RM\_Decode(c^{\prime},P)\);
20:\(y=c\oplus w\); Return:\(y\). ```

**Algorithm A1** Soft-Decision SRAM-PUF Algorithm Based on Reed-Muller Codes

The RM code encompasses two parameters: the order \(r\) and the frequency \(m\), where \(r\) determines the recursion complexity, and \(m\) determines the length of the code word \(2^{m}\). An RM (\(r\), \(m\)) code can be decomposed into an RM (\(r-1\), \(m-1\)) code and an RM (\(r\), \(m-1\)) code. When \(r=0\), the RM code becomes a repetitive code, and when \(r=m\), the RM code lacks error correction capability. For RM codes, the decoding processing is similar to repeat codes.