# The Eye-Opening Arbiter-PUF FPGA Implementation with Auto Error Detection
## 4 PUF Uniqueness Evaluation and Mean Frequency Tuning
Re-arranging and re-routing of the PUF did not help to reduce this bias in the challenged PUF response. Since the FPGA vendor does not provide detailed schematics of the internal architecture, it was also not possible to identify the reason for the residual bias in the ROs. To overcome the partially too large mean frequency difference in RO\({}_{\text{A}}\) vs. RO\({}_{\text{B}}\), an additional 20-bit PDL was added to the oscillating path of the ROs. By assigning these PDLs with different unary-coded vectors, the frequencies can be shifted, minimizing the frequency difference, similar to the arbiter tuning. The result for the same two ROs as in Figure 8 is shown in Figure 9. Due to the additional LUTs in the ROs, their mean frequencies decrease compared to Figure 8, but, most importantly, their random variation over different challenges is now distributed around the same mean. Even though an individual offset compensation must be found for every PUF instance, advantageously, these individual compensations remained stable over many evaluation cycles and can thus be stored as constant helper data. Since the PDL input vectors are thermometer-coded, a total of 10 bits are required per PUF instance. If these values are tampered with, the mean frequencies of the ROs will diverge again, which will result in a biased key and compromise the following application, similar to the insertion of a wrong key. With this PDL-based RO-bias compensation, the \(\mu_{\text{bit}}\) was re-evaluated for all PUF instances over all CRPs. The resulting distribution is plotted in Figure 10 in blue. The mean is at 50.2% with a standard deviation of \(\approx\)4%, which is comparable to the SotA [10; 11; 23]. Note that the choice of a length of the tuning-PDL depends on the expected variation in the employed FPGA and its LUTs. During our experiments, we evaluated varying lengths of tuning-PDLs and 20 bits was found to be suitable to tune all evaluated PUF instances. Changing the FPGA type would either require vendor information of statistical variation or a re-evaluation by experiment. Figure 8: Measured frequencies of both ROs of an exemplary PUF instance plotted over all challenges. The dashed lines are both mean frequencies. Figure 9: Frequency plot of both ROs after tuning in hardware. The dashed lines represent the mean over all challenges per RO. The red circles mark unstable challenges with very little phase difference; see Section 5. (2) Validation of PUF Response Uniqueness  
After removing the bias in the individual PUF instance, the above-introduced uniqueness requirement (2) is evaluated by computing the HDinter[3; 11]  
\[\text{HD}_{\text{inter}}=2\cdot\sum_{i=1}^{N-1}\sum_{j=i+1}^{N}\frac{HD(r_{i},r_{ j})}{N\cdot(N-1)}\cdot 100\%. \tag{3}\]  
\(\text{HD}_{\text{inter}}\) generally calculates for each bit \(r_{i}\) of a vector with length \(N\) the relative HD to all other bits \(r_{j}\) in the vector. An HDinter close to 50% indicates a unique distribution of the underlying bits, while HDinter close to 0% indicates that all bits result in the same response. HDinter was then calculated by comparing every bit of a PUF instance with all other bits extracted with the same challenge of all other PUF instances, and this again along all FPGAs. The resulting distribution is plotted in orange in Figure 10. The mean value is 50% with a standard deviation of \(\approx\) 0.2%, which fulfills the uniqueness requirement. (3) and (4) Validation of Uncorrelated PUF Responses  
To validate the earlier listed requirements of uncorrelated PUF responses (3) and (4), the correlation coefficient of every PUF to all other PUFs is evaluated. Thereby, the correlation coefficient ranges between \(\pm 1\) and represents the relation of two vectors: a value of \(\pm 1\) implies identity or inversion, while non-related vectors have a correlation coefficient of 0. The distributions of the correlation coefficients of (3) all CRPs on a single PUF instance and (4) all PUF instances per single challenge are plotted in Figure 11. Both are arranged around 0.