1. Introduction
Recently, as the amount of IoT devices has increased tremendously, there has been considerable interest in the security issues of IoT devices. Due to the limited resources of IoT devices, it is difficult to install the conventional security solutions [
1]. In addition, one of the biggest weakness in IoT device security is that many of them come set up with a default ID/PW. It has been shown that just a small set of ID/PW gives an access to a great number of IoT devices. Based on this vulnerability, the largest Distributed Denial-of-Service (DDoS) attack ever was launched using an IoT botnet (Mirai Botnet) in October of 2016. Therefore, it is highly required to ensure that IoT devices are autonomously secured, where ID/PW or security keys are set and managed without user intervention.
One approach to enhance the security of IoT devices is to utilize physically unclonable functions (PUFs). A PUF has emerged as a new alternative to meet the increasing demand for protection of embedded systems against security attacks such as replication of semiconductors, or stealing default ID/PW or security keys stored in nonvolatile memory. It generates device-specific random sequences unique to a semiconductor or hardware by using the innate hardware uncertainty derived from the manufacturing process [
2,
3,
4].
Since a PUF is extremely difficult to replicate even by the manufacturer, it can be used to generate and maintain secret credentials that are even unknown to semiconductor architectures or device programmers. In the process of creating and maintaining a secret key or ID/PW unique to a device, it does not store the secret information in the non-volatile memory (NVM). Therefore, even if one device is attacked, the same attack vector may not be used for other devices, which makes a PUF as a promising primitive for IoT devices to prevent large-scale DDoS attacks [
5]. Exploiting the PUF as a source of “secret” information, it can be used in applications such as secret key management, data privacy, device authentication, and intellectual property (IP) protection of FPGAs or chips [
6].
There are various works related with PUFs, including delay-based PUF [
1,
6,
7,
8,
9], and memory-based PUF [
10,
11] over the past decade. Please refer to [
6] for a comprehensive overview on PUFs. In terms of implementation methods, the majority of such PUFs must be fabricated as separate ASICs or FPGAs, or embedded in the chip at the design time. In recent years, there have been attempts to implement a PUF using the components of the device itself such as dynamic RAM (DRAM) PUF [
12,
13] and radio frequency (RF) PUF [
14]. DRAM PUFs identified unexpected setup behavior in commercial off-the-shelf DRAMs that could be used as a PUF. RF PUFs identified the effect of variations in analog, RF, and mixed signal properties in wireless radios, where inherent RF properties were used to make a PUF without any additional hardware. Some studies have shown that it is possible to construct SRAM PUFs using existing off-the-shelf components [
15]. The advantage of these PUFs is that they can be implemented without any extra hardware.
In terms of circuit for implementing a PUF, another interesting approach is to use analog circuits as a PUF primitive [
16]. This study showed an analog PUF structure based on analog and mixed signal circuits. In this implementation, an input challenge was converted to an analog signal by digital-to-analog converters (DACs) and passed through low pass filters and amplifiers. The resulting signal was sampled by an analog-to-digital converter (ADC), and a response was generated from sampled bits.
Recently, a resistor-capacitor (RC) PUF has been proposed that used passive components such as resistors and capacitors as a PUF primitive [
17]. Focusing on the fact that resistors and capacitors have inherent tolerances that arise in the manufacturing process, it achieved PUF-like properties by combining those components with ADCs embedded in many commercial microcontrollers (MCUs). The RC PUF adopts analog circuits and an ADC as PUF primitives, which is similar to [
16]. However, instead of exploiting active components such as amplifiers, only passive components are simply employed for analog circuits and DACs are not used. The motivation for this work is similar with [
14] in that it can provide affordable PUF functionality for resource-constrained IoT devices without using previously mentioned on-chip/off-chip PUF-dedicated hardware.
In this paper, we extend our previous work published in [
17]. In the previous work, only first-order RC circuit was used for the RC PUF. In this work, we add a second-order RC circuit to evaluate the performance change due to the increase in RC components and circuit types. In addition, we provide randomness characteristics of the RC PUF with the NIST statistical test suite instead of uniformity used in the previous work. We explain the operation and the architecture of the RC PUF again, describing how to choose resistor and capacitor components and other parameters. Finally, we present experimental results to characterize the RC PUF with two types of RC circuits.
3. Experimental Results
As described in
Section 2, once all bits of one challenge are applied to the RC circuit, the final output value of the RC circuit is sampled by the ADC. Then the sampled ADC value is used to generate a response bit. Since the ADCs built into the MCU typically support multiple bit resolution, e.g., 12-bit, we need to determine which bit is used for the response bit among multiple bits. For example, the valid bit must be selected from bit 11 to bit 0, where bit 0 represents the least significant bit.
The response bit between different PUFs for the same challenge is more likely to be the same as the selected bit position is closer to the most significant fit. For example, the experiment using the RC PUF shows that the differences in ADC sampling values in different PUFs for the same challenge are in the order of tens to hundreds, which means that the response bit can be extracted at approximately bit 6 or less. Conversely, the error probability for the response value increases as the selected bit position approaches bit 0. This means that the probability of obtaining the same response value for the same challenge is reduced, resulting in poor reliability characteristics. Several experiments have shown that bit 5 is the most appropriate bit position given the uniqueness and reliability of the implemented RC PUF board, although bit 4 to bit 6 can be used as response bits. Once the bit position is selected, the same bit position can be used for the same type of device. However, if the design changes, it is necessary to reselect the appropriate bit position considering several factors, such as values, types, and tolerances of RC components.
Since we fixed the ADC bit position, it is possible to evaluate the performance of the RC PUF. In order to characterize the RC PUF, we use three commonly employed performance metrics: uniqueness, reliability (also known as steadiness), and randomness [
1,
17,
28].
Uniqueness represents the variations in the responses of multiple devices to the same challenge and can be referenced as extra-chip variation (EC), which is calculated as [
1,
17,
29]
where
M is the number of devices,
n is the length of response,
N is the number of
n bit responses per device,
is the
j-th response sample from the
i-th board,
is the mean value of the
N responses from the
k-th board, and
HD represents the hamming distance. We note that the optimal value for uniqueness is 50%
Reliability or
steadiness represents the ability of a particular device to generate the same response and can be referenced as intra-chip variation (IC), which is given by [
1,
17]
where
is the mean value of responses of the
i-th board. We note that this metric depends on the environmental parameters, such as temperature (
T) and voltage (
V). The percentage figure for reliability can be defined as
Obviously, the optimal value for reliability is 100%.
For the randomness test, we use a subset of NIST randomness test suit (NIST SP 800-22) [
30]. To evaluate the performance of RC PUF, a total of 100 RC PUF boards were tested for the above three metrics.
In addition to the performance metrics, we also describe the characteristics of the RC PUF for input challenges with similar bit patterns or hamming weights.
3.1. Uniqueness and Reliability
For the uniqueness and reliability test, the evaluation of the RC PUF consisting of two different RC circuits, RC1 and RC2, was performed with 32,768 random challenges for each RC PUF, where each 32-bit challenge was repeated 100 times. Then majority voting was applied to determine the response bit. In order to improve the reliability of the experiment, 1-bit response was obtained by repeating 100 times for one challenge. However, since the error correction method, such as a fuzzy extractor, may be used in the actual execution environment, it will be enough to repeat 1~3 times considering the reliability characteristics of RC PUF.
The MCU used in this experiment operates at 96 MHz, but the time required to obtain 1-bit response is determined by the bit delay time, not the MCU’s operating speed. For example, if we set the bit delay time to 2 us in FD mode and repeat 3 times for the same 32-bit challenge to generate the 1-bit response, it takes approximately 192 us to generate one response. In VD mode, each MCU uses its own bit delay time, resulting in different response generation times.
We first tested the RC PUF with the bit delay time fixed (FD) at 2 us and 32 us to evaluate the performance change over the bit delay time. Next, we added 4-bit and 5-bit MCU-specific temperature sensor calibration data to the initial bit delay time so that the newly generated bit delay times were between 8~24 us (VD4) and 1 ~ 32 us (VD5), respectively. For example, if we run RC PUF in FD mode, then the same bit delay time (
) is used for all challenges in all RC PUF boards. However, for VD4 or VD5 modes,
is unique among different RC PUF boards but the same for all challenges in one RC PUF board. The procedure for setting the bit delay time is the same as described in [
17].
Table 1 shows the uniqueness and reliability performance in FD and VD modes for both RC1 and RC2. The performance values for RC1 are the same as described in [
17], and new performance values for RC2 are added. As shown in
Table 1, when the fixed bit delay time (FD) increases from 2 us to 32 us, the uniqueness and reliability are improved in both RC1 and RC2. This is because the longer the operating time is, the more differences are accumulated due to the tolerance of the RC circuit. When using the MCU-specific bit delay time (VD4 and VD5), both types of RC circuits have more than 48% uniqueness, which is close to the ideal value of 50%, while achieving more than 98% reliability.
In several experiments, we can see that the difference in ADC values between different PUFs is in the range of several tens to hundreds when using different bit delay times, i.e., VD4 and VD5, resulting in a better uniqueness than using the same fixed delay time for all PUFs. These results can be observed from the standard deviation of the difference in ADC values for the same challenge when using the variable bit delay time, which will be discussed later in
Section 3.4.
Since the RC PUF uses the response of sequential unit step inputs to the RC circuit, the output of the RC circuit can be represented by a series of an exponential curve that steeply rises or falls at the beginning of the input and then converges to a constant value as the slope of the curve decreases over time as shown in Equations (1), (2), or (9). As explained in
Section 2.1, the generation and maintenance of the bit delay time of the RC PUF and the latching of the ADC value are done by the MCU. If the bit delay time is small to use only the initial stage of the exponential curve, the error rate increases due to the relationship between the accuracy of the MCU clock and the fast change rate of the exponential curve.
For example, the time constant for RC1 is calculated as
τ = 20 us for
R = 100 kΩ and
C = 200 pF, although the measured time constant is larger than this by the parasitic components on the board. If the bit delay time is fixed to 2 us, corresponding to 1/20 of the calculated time constant, the output of RC1 changes at the initial stage of the exponential curve. In this case, because the output curve of RC1 changes faster than RC2, the reliability of RC1 is 1.5% lower than that of RC2 as shown in
Table 1. On the other hand, if the bit delay time is large enough to be 32 us, the reliability of RC1 and RC2 is equal to 98.5%. In VD4 and VD5 modes, because the small and large bit delay times are mixed, the reliability values are similar for RC1 and RC2 with a small difference of 0.1% ~ 0.2%. Since we only used 100 boards in the experiment, it is necessary to test on even more boards to distinguish these sub-dot differences.
The bit delay time also affects the uniqueness characteristics of the RC PUF. In the fixed mode, when the bit delay time is 2 us, the uniqueness value of RC2 is 1.5% higher than that of RC1, but when 32 us, the uniqueness value of RC1 and RC2 becomes similar within 0.2%. In VD4 and VD5 modes, the uniqueness values of RC2 are 0.3% to 0.4% higher than those of RC1. We think that because RC2 uses more RC components than RC1, it is more affected by the accumulation of tolerance values of these components and the parasitic resistance and capacitance on the board.
Figure 6 shows the uniqueness characteristic of RC2 in VD5 mode.
3.2. Randomness
In contrast with the uniqueness metric, there is no specific formula measuring the randomness of PUFs. A commonly used method is measuring the bias of the PUF response, but this is not sufficient to represent the randomness of PUFs [
1]. For this reason, some previous works have employed the NIST SP 800-22, originally designed to evaluate the performance of the random number generator (RNG), to measure the randomness of PUFs [
1,
8,
14].
To evaluate the randomness of the RC PUF, we selected nine subsets of the NIST statistical test suite because some test cases of the NIST SP 800-22 must be performed using a minimum stream size of 10
6 bits, which is generally not suitable for a PUF [
1]. To better understand how the nine test suites are used, each one is briefly described as follows.
- (1)
Frequency Test (T1): The first test measures the proportion of 0′s and 1′s for the binary sequence.
- (2)
Frequency Test within a Block (T2): The second test is similar to the first Frequency Test but measures the number of 1′s within M-bit blocks.
- (3)
Cumulative Sums Test (T3): The purpose of this test is to measure the maximal excursion of the binary string. In other words, the initial value of the Cumulative Sums is set to 0 and add or subtract to this value for each 1 and 0 of the binary sequence. The final value of the Cumulative Sums shows the random walk characteristics of the binary sequence.
- (4)
Runs Test (T4): This test aims to evaluate linear dependencies between fix-length of bit strings inside the binary sequences.
- (5)
Longest Runs Test (T5): This test checks the irregularity of the longest run of 1′s within M-bit subblocks of the binary sequences.
- (6)
Rank Test (T6): The focus of this test is to measure the linear dependencies among fixed length substrings of the binary sequences.
- (7)
Discrete Fourier Transform (DFT) Test (T7): The purpose of this test is to calculate the peak value through the DFT and use it to detect repetitive patterns near each other within the binary sequence.
- (8)
Approximate Entropy Test (T11): This test focuses on the frequency of all possible fixed-length of consecutive overlapping patterns in the binary sequences.
- (9)
Serial Test (T14): The last test aims to check the frequency of every overlapping m-bit pattern across entire binary sequences.
For the selected subset, we performed the test using VD4 and VD5 bit delays for both RC1 and RC2, and the 1,048,576 response bits were generated using randomly selected challenges for each of the 100 RC PUFs. The results of all test suites were tested using the response of each RC PUF, and the final results were expressed as the average of 100 RC PUFs. As shown in
Figure 7, the pass rates for all combinations are higher than 90%, and RC2 combinations of RC2-VD4 and RC2-VD5 show similar pass rates compared to the NIST recommended random data (NIST RND) [
30]. Any bit bias for the entire bit strings of the PUF output can be checked using T1, T2 or T3 [
11], which exhibits pass rates >0.95 for all combinations. However, the result of T4 shows that RC1 has more consecutive 1′s or 0′s than RC2. In addition, T11 and T14 show that RC2 has better irregularity characteristics for overlapping patterns than RC1. More specifically, two RC PUFs showed below 15% pass rate in T11 for VD5 mode in RC1. Their response includes bit strings with similar bit patterns, such as “…1100000000110000…” or “…0011000110001100…”, resulting in relatively low pass rates. In addition, since one response bit is generated from one random challenge, it is difficult to physically explain why similar bit patterns are generated, and it is unclear whether it is caused by structural differences between RC1 and RC2. Nevertheless, the results of all NIST test suites for the RC PUF in
Figure 7 show that RC2 has better randomness characteristics than RC1, and further analysis is required using more samples.
3.3. Stability against Voltage and Temperature Variations
We consider two environmental variations such as temperature and voltage to evaluate the stability of the RC PUF. The evaluation was performed with a 1024-bit reference response over 10 randomly selected RC PUF boards under normal conditions such as room temperature of 25 °C and supply voltage of 3.3 V, and FD, VD4, and VD5 bit delay cases are considered. Then the stability was calculated based on how many bit flips occurred compared with the reference response.
First, to evaluate the stability to temperature variations, the RC PUF boards were placed on a temperature chamber, as shown in
Figure 8, and the temperature was increased by 10 °C from –30 °C to 70 °C.
Figure 9 shows that the stabilities of both RC1 and RC2 are maintained within 2% at temperatures below 50 °C, but increases above 50 °C, as shown in
Figure 9. More specifically, RC1 exhibits less than 3% stability over the entire range, but the stability of RC2 increases by 5% above 50 °C. We think that this difference is due to the number of resistors used in the RC circuits. As explained earlier, we exploit class 1 (C0G) capacitors, which are robust to temperature variation and aging, while the resistors used in RC circuits are commonly used thin film resistors with slightly different characteristics over temperature changes. Two thin film resistors are used in RC2, increasing the error rate at higher temperatures. Although the stability increases above 50 °C, the worst case 5% stability on the RC2 is an acceptable error rate that can be recovered using commonly used error correction codes [
6].
Next, the stability to voltage changes was measured in 0.05 V steps over a voltage range of 3.0~3.6 V.
Figure 10 reveals less than 1% stability over the entire range for both RC1 and RC2, which corresponds to a bit flip of less than 10 bits of 1024 bits. The main reason that the RC PUF is robust to voltage variations is because the power supply voltage of the MCU is equal to both the output voltage of the GPIO used as the input voltage of the RC circuit and the operating voltage of the ADC. Therefore, the ADC value is determined by the voltage change ratio, not the absolute voltage.
3.4. RC PUF Behavior against Various Challenge Bit Patterns
In the RC PUF, the final output value of the RC circuit is determined by the input challenge. Therefore, it is important to look at the different behavior of the RC PUF for input challenges with similar bit patterns or hamming weights. As shown in
Table 2, we first tested the RC PUF by fixing the bit delay times (FD) 8 us for RC1 and 16 us for RC2. We also used 5-bit MCU-specific temperature sensor calibration data, which has been explained in
Section 3.1, to generate variable bit delay times (VD4 and VD5). Then we compared the average and standard deviation of the final latched ADC values for each RC1 and RC2 over 10 randomly selected RC PUF boards.
In order to make the reference ADC values, we first run the RC PUF with the initial 32-bit challenge of 0x5A5A5A5A, where the least significant bit (LSB) of bit 0 is the first bit of the input sequence and the most significant bit (MSB) of bit 31 is the last input to the RC circuits. Therefore, the input sequence for the initial input challenge becomes 01011010…01011010 and the number of 0’s and 1’s in the entire input sequence is the same.
Next, we apply different values as input challenges such as 0xA5A5A5A5 and 0xCCCCCCCC, which have the same number of 0’s and 1’s but different bit patterns compared to the initial challenge. As shown in
Table 2, it can be seen that there are significant differences in ADC values for input challenges with different bit patterns compared to the ADC value generated by the initial challenge in FD, VD4, and VD5 mode for both RC1 and RC2. This result shows that although input challenges consist of the same number of 0′s and 1′s, it is difficult to guess the ADC value according to input challenges with different bit patterns.
In fact, we note that the latched ADC value is affected by the bit pattern closer to the final bit in the input sequence, rather than the number of 0’s and 1’s and the overall bit pattern. For example, when 0x5ACCCCCC is used as the input challenge, only the last 8 bits of the input sequence are the same as compared to the initial challenge. In this case, it can be seen that there are significant differences in FD mode between the ADC value generated by the initial challenge and the ADC value generated by 0x5ACCCCCC as shown in
Table 2.
However, when 0x5A5CCCCC is used as an input challenge so that the last 16 bits are the same as the initial challenge, the latched ADC value is almost similar to the ADC value generated by the initial challenge in FD mode. Furthermore, the standard deviation in the FD mode shows that the ADC values are very similar on all RC PUF boards. This result can be one of the reasons that the uniqueness in FD mode is worse than those of VD4 and VD5 modes.
In VD mode, the standard deviations are larger than those in FD mode because the bit delay times on each board are different. The ADC values for the 0xA5A5A5A5 and 0xCCCCCCCC challenges differ significantly from the ADC value of the initial challenge, as in FD mode. In VD5 mode, the ADC values for input challenge of 0x5ACCCCCC and 0x5A5CCCCC in RC1 and RC2 are significantly different from the ADC values for the initial challenge, but in VD4 mode, RC2 shows similar values to the ADC values of the initial challenge for the previous input challenge. However, because the ADC value for RC2 in VD4 mode is the average value and the standard deviation is greater than 70, it can be thought that the ADC values are evenly distributed.
Next, the differences in ADC values between the initial challenge of 0x5A5A5A5A and 0x5A5CCCCC are 63 in RC1, 1 in RC2 for VD4, and 86 in RC1 and 10 in RC2 for VD5 mode, which is greater than in FD mode. As expected, since the deviation of the bit delay time in VD5 is greater than VD4, the standard deviation of latched ADC values of VD5 is greater than VD4, with some exceptions.
As a result, VD4 and VD5 mode show less similarity of the latched ADC values according to the bit pattern of input sequences than FD mode, and VD5 mode is less affected by the bit pattern close to the last bit in the input sequence than VD4. Although the uniqueness of the RC PUF can be affected by the similarity of the bit patterns closest to the last bit rather than the number of 0’s and 1’s of the input sequence, the standard deviation of VD4 and VD5 mode is large enough to ensure uncorrelated responses to the same input challenge.
4. Conclusions
In this paper, we presented a novel RC PUF that can be easily implemented using one MCU with ADC function and several low-cost passive components such as resistors and capacitors. The structure of the proposed RC PUF is very simple and easy to implement in resource-constrained IoT devices. Experimental results showed that the proposed RC PUF achieved 49% uniqueness and 98% reliability by appropriately selecting those components and using MCU-specific helper data. Thanks to the structural characteristics, the RC PUF showed less than 1% stability over 10% voltage variation.
We characterized the RC PUF with two different RC circuits. Comparing the experimental results of the two RC circuits, both types showed similar reliability and stability over voltage variation, while the second-order RC circuit had slightly better uniqueness and randomness. On the other hand, the first-order RC circuit showed better stability against temperature variation, although the stability of the second-order RC circuit at high temperature was below 5%. In summary, the second-order RC circuit is suitable for the RC PUF for use in typical applications, and the first-order RC circuit can also be considered for products where implementation cost is important.
Future works will include probing analysis against the proposed RC PUF with various types of RC circuits and operating conditions. Other passive components will also be considered to make PUF-like characteristics. A generalized randomness test using more samples will also be included in our future works.