# CNT-PUFs: Highly Robust and Heat-Tolerant Carbon-Nanotube-Based Physical Unclonable Functions +
## 6 Stable Key Extraction from CNT-PUFs
### Entrolment  
The enrolment phase must be executed in a secure environment. This ensures that no malicious adversary may attempt to eavesdrop or manipulate the PUF readout while executing this phase. During enrolment, the raw PUF measurements \(M_{p}^{set}\) are acquired, consisting of multiple \(I_{D,\rm max,p}\) measurements of all PUF cells of a PUF \(p\). These measurements are used to generate helper data represented as a list of indices to stable PUF cells. Figure 11: Figure (**a**) shows the number of unstable cells (in comparison to the 23 \({}^{\circ}\)C measurement) evaluated across the temperatures in \(T\). The dashed grey lines indicate the range in which the value of unstable cells is almost optimal and is the same as in Figure 4. Figure (**b**) shows the deviation of the drain current \(I_{D}\) under temperatures \(T\) when varying \(V_{GS}\). In Figure (**c**), the extraction of activation energies for temperature-induced resistance changes underlines the excellent heat tolerance of the PUF construction. \(R_{\rm on,p}\) and \(R_{\rm off}\) were extracted from a representative CNT-FET (conducting cell), whereas \(R_{\rm non-conductive}\) mirrors the average temperature dependence of 81 non-conductive cells. This list serves as a challenge \(C_{p}^{sel}\). The enrolment is described in the procedure denoted in Algorithm 1. ```
1:procedureEnrolment(\(M_{p}^{set},I_{th},L_{p}^{id},n_{bits}\))
2:return : \(C_{p}^{sel}\)
3:\(M_{p}^{min}\gets min(M_{p}^{set})\)
4:\(M_{p}^{max}\gets max(M_{p}^{set})\)
5:\(L_{th}^{min}\leftarrow\emptyset\)
6:for\(c_{id}\in L_{p}^{id}\)do
7:\(r_{p}^{i}\gets Quantise(M_{p}^{min}[c_{id}],I_{th})\)
8:\(r_{p}^{i}\gets Quantise(M_{p}^{max}[c_{id}],I_{th})\)
9:if\(r_{p}^{i}==r_{p}^{i}\)then
10:\(d_{min}\gets min([abs(I_{th}-M^{min(i)}[c_{id}]),\)
11:\(abs(I_{th}-M^{max(i)}[c_{id}])])\)
12:\(L_{th}^{min}\to append((c_{id},r_{p}^{i},d_{min}))\)
13:endif
14:endfor
15:\(L_{d_{min}}^{ordered}\gets order(L_{th}^{min},d_{min})\)
16:\(L_{0},L_{1}\gets split(L_{d_{min}}^{ordered},r_{p})\)
17:\(C_{p}^{sel}\leftarrow SelectRandomPUFCells(L_{0},L_{1},n_{bits})\)
18:endprocedure
```  
**Algorithm 1** Retrieving a challenge as a list of cell indices of stable cells of a CNT-PUF \(p\). This algorithm utilises a list of measurements \(M_{p}^{set}:=\{M_{p}^{0},\ldots M_{p}^{n-1}\}\) for each of the \(n\) PUF cells and a threshold \(I_{th}\). It additionally requires a list of cell indices \(L_{p}^{id}:=\{c_{id}^{0},\ldots,c_{id}^{n-1}\}\) of all cells contained in \(M_{p}^{set}\), as well as \(n_{bits}\in\{0,\ldots,n\}\) representing the desired length of the generated key. In the first step, the measurements with the lowest \((min(M_{p}^{i}))\) and the highest \((max(M_{p}^{i}))\) source-drain current of each cell \(i\) are extracted and stored in separate lists \(M_{p}^{min}:=\{min(M_{p}^{0}),\ldots,min(M_{p}^{n-1})\}\) and \(M_{p}^{max}:=\{max(M_{p}^{0}),\ldots,max(M_{p}^{n-1})\}\), respectively. Each PUF consists of \(n=144\) cells in this work. Subsequently, a quantisation of each cell's maximum and minimum values identified by \(c_{id}\) is performed using the quantisation algorithm described in Section 4.3. The resulting binary values are stored in the variables \(r_{p}^{i}\) and \(r_{p}^{j}\). If both values are identical, this indicates that the maximum and minimum values of all repeated measurements of a cell are located on the same side of \(I_{th}\), meaning that all intermediary measurements would be on the same side as well. Therefore, the cell can be reliably classified. The generated set of cell indices is stored in a list and ordered according to the distance \(d_{min}\) from the threshold \(I_{th}\), yielding a list \(L_{d_{min}}^{ordered}\). This list is further split into two new lists \(L_{0}\) and \(L_{1}\), where \(L_{0}\) contains the indices of cells assigned to logical 0, ordered by distance \(d_{min}\), and \(L_{1}\) contains the corresponding cells assigned to logical 1.