1 Introduction
-
The testbed comprising 217 FPGA devices with 8000 PicoPUF instances and 6592 RO instances is, to the best of the authors’ knowledge, the largest reported to date.
-
A comprehensive large-scale experimental analysis of uniqueness, reliability, uniformity, bit-aliasing, correlation and min-entropy for both RO and PicoPUF.
-
The impact of floorplan on min-entropy of ROs and quality metrics of PicoPUF evaluated over a large-scale testbed.
-
A detailed analysis and comparison of the two single-slice entropy sources for the design and application consideration of security primitives made of these components on FPGA platform.
-
A comparison of both single-slice designs with other related works is presented.
-
The raw data are made publicly available to the research community as a reference for further research into the design and implementation of security primitives on FPGA.
2 Related works
3 FPGA-based design entities under tests
3.1 RO design
3.2 PicoPUF design
4 FPGA implementation
Location | #ROs | #PicoPUFs |
---|---|---|
LEFT-UPPER | 1600 | 1952 |
LEFT-LOWER | 1600 | 1952 |
RIGHT-UPPER | 1696 | 2048 |
RIGHT-LOWER | 1696 | 2048 |
Total | 6592 | 8000 |
5 Experimental results
5.1 Experimental setup
5.2 Overall metrics
LEFT-LOWER | LEFT-UPPER | RIGHT-LOWER | RIGHT-UPPER | ALL | Ideal | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
PUF type | PicoPUF | RO | PicoPUF | RO | PicoPUF | RO | PicoPUF | RO | PicoPUF | RO | – |
# Bits (n) | 1952 | 1600 | 1952 | 1600 | 2048 | 1696 | 2048 | 1696 | 8000 | 6592 | – |
Uniqueness | |||||||||||
\(\mu _\mathrm{inter}\) | 0.4796 | 0.4717 | 0.4968 | 0.4895 | 0.4816 | 0.4714 | 0.4962 | 0.4895 | 0.4886 | 0.4805 | 0.50 |
\(\sigma _\mathrm{inter}\) | 0.0158 | 0.0174 | 0.0124 | 0.0178 | 0.0151 | 0.0169 | 0.0124 | 0.0173 | 0.0094 | 0.0087 | 0.00 |
Uniformity | |||||||||||
\(0_\mathrm{frac}\) | 0.4103 | 0.5127 | 0.4790 | 0.5045 | 0.4180 | 0.5172 | 0.4726 | 0.5019 | 0.4450 | 0.5091 | 0.50 |
\(1_\mathrm{frac}\) | 0.5897 | 0.4873 | 0.5210 | 0.4955 | 0.5820 | 0.4828 | 0.5274 | 0.4981 | 0.5550 | 0.4909 | 0.50 |
Reliability | |||||||||||
\(0_\mathrm{stable}\) | 48.09% | 46.70% | 41.37% | 47.48% | 47.26% | 46.22% | 42.75% | 47.75% | 44.87% | 47.75% | 50% |
\(1_\mathrm{stable}\) | 31.65% | 49.22% | 37.61% | 48.39% | 32.16% | 49.69% | 37.70% | 48.11% | 34.78% | 48.11% | 50% |
\(\mu _\mathrm{intra}\) | 0.0229 | 0.0068 | 0.0243 | 0.0068 | 0.0237 | 0.0067 | 0.0225 | 0.0069 | 0.0233 | 0.0069 | 0.00 |
\(\sigma _\mathrm{intra}\) | 0.0037 | 0.0030 | 0.0036 | 0.0030 | 0.0036 | 0.0029 | 0.0037 | 0.0029 | 0.0020 | 0.0029 | 0.00 |
Bit-Aliasing | |||||||||||
\(\mu _\mathrm{bit}\) | 0.4103 | 0.5127 | 0.4790 | 0.5045 | 0.4180 | 0.5172 | 0.4726 | 0.5019 | 0.4450 | 0.5091 | 0.50 |
\(\sigma _\mathrm{bit}\) | 0.0593 | 0.1229 | 0.0505 | 0.0797 | 0.0616 | 0.1228 | 0.0501 | 0.0798 | 0.0636 | 0.1038 | 0.00 |
Correlation | |||||||||||
\(\mu _\mathrm{bit}\) | 0.0146 | 0.0605 | 0.0103 | 0.0254 | 0.0157 | 0.0604 | 0.0102 | 0.0255 | 0.0165 | 0.0431 | 0.00 |
\(\sigma _\mathrm{bit}\) | 0.0770 | 0.0728 | 0.0774 | 0.0751 | 0.0769 | 0.0722 | 0.0772 | 0.0746 | 0.0744 | 0.0674 | 0.00 |
Min-entropy | |||||||||||
\(\mu _{H_\mathrm{min}}\) | 0.7585 | 0.7734 | 0.8826 | 0.7945 | 0.7706 | 0.7701 | 0.8781 | 0.7928 | 0.8225 | 0.7825 | 1.00 |
\(\sigma _{H_\mathrm{min}}\) | 0.1278 | 0.0768 | 0.0861 | 0.0813 | 0.1261 | 0.0786 | 0.0897 | 0.0794 | 0.1236 | 0.0790 | 0.00 |
5.3 Uniqueness
5.4 Correlation
5.5 Min-entropy
5.5.1 Effect of locations and evaluation time for the ROs
5.5.2 Effect of the number of devices
5.6 Reliability
5.7 Uniformity
5.8 Bit-aliasing
5.9 Comparison and discussion
PUF design | Type | Uniqueness | Reliability | Hardware | Response (bit) | Resource consumption |
---|---|---|---|---|---|---|
SRAM PUF [31] | Weak | 49.97% |
\(>88\%^{t}\)
| FPGA | 128 | 4600 SRAM memory bits |
Latch PUF [32] | Weak | 50.55% |
\(96.96\%\)
| 0.13\(\mu \)m CMOS | 128 | 1 latch for each ID cell |
Latch PUF [33] | Weak | 46% |
\(>87\%^{t}\)
| Spartan 3 | 128 | \(2\times 128\) slices |
Flip-flop PUF [34] | Weak |
\(\approx 50\%^{*}\)
|
\(>95\%^{*}\)
| Virtex 2 | 4096 | 4096 flip flops |
Flip-flop PUF [24] | Weak | 36% |
\(>87\%^{t}\)
| ASIC | 1024 | 1024 flip flops |
Buskeeper PUF [25] | Weak | 49% | \(>80\%^{t}\), \(>95\%^{v}\) | TSMC 65-nm | 192 | 1 \(GE^{1}\) |
Butterfly PUF [35] | Weak |
\(\approx 50\%\)
|
\(94\%\)
| Virtex 5 | 64 | 130 slices |
RO PUF [5] | Weak | 46.15% |
\(99.52\%\)
| Virtex 4 | 128 |
\(16\times 64\)
\(array^{2}\)
|
PicoPUF [3] | Weak | 48.52% |
\(93.00\%\)
| Spartan-6 | 128 | 128 slices |
PicoPUF [30] | Weak | 49.90% |
\(94.53\%\)
| Artix-7 | 128 | 128 slices |
PicoPUF\(^{*}\) [30] | Weak | 45.60%\(^{*}\) |
\(98.74\%^*\)
| Artix-7 | 128 | 128 slices |
RO PUF (this work) | Weak | 48.05% |
\(99.30\%^t\)
| Artix-7 | 128 | \(> 256\) slices\(^{a}\) |