PUFs are well known to be used for authentication. In this section, we explore the feature of PCPUFs and propose new strategies to generate secure responses. We also discuss their authentication application.
5.1. Unstable-Stable Response
Modeling and machine learning attacks are well known for PUF adversaries. The successful prediction is due to the accurate calculation and measurement of physical parameters such as delay and frequency. To achieve a secure PUF-based solution against those attacks, we propose a novel method to generate responses, which uses the instability of PUFs. Since the unstable bits in the RO PUF response are hard to predict, they provide a better security guarantee than the stable ones. In the past, these unstable bits have been simply considered for random number generation applications. For other scenarios, only stable bits are usually required. In our work, we find the possibility to transfer unstable bits to stable bits and apply them to PUF responses, which are presented as Unstable-Stable Responses (USR), a more stable and secure response.
Figure 15 shows how to generate USR with a PCPUF. We set another hash function module out of the PCPUF, which can provide multiple sub-challenges with only one challenge input. Once a sub-challenge is created, it is sent to the challenge register for temporary storage. By reading the value from the register, PCPUF selects two RO pairs and keeps outputting the one-bit response to the first address of the unstable bit counter 1000 times. The accumulated value in the counter reflects the stability of this output. A number that is close to zero or 1000 is known to be stable, while 500 is regarded as the most unstable. With the help of the internal hash function module, the model generates a 128-bit raw response and stores it in the counter. Since PCPUFs provide good stability in their responses, the obvious unstable bits become so limited that less than one unstable bit can be found in 128 bits. In the unstable bit counter, we mark the unstable bits as ‘1’ and stable ones as ‘0’. The counter records the number of ones and sends the 128 bits to the response register. Obviously, a 128-bit response marked with only unstable bits is highly-biased towards zeroes. Therefore, the counter enables the hash function module in order to launch the next progress with a different internal challenge. Another raw response is generated and transferred to an internal response in the counter. We apply a bitwise OR operation to this internal response and the one that was previously stored in the response register. After updating the register value, the new response should have a higher probability of containing more ones. By repeating the same process, the response in the register will eventually reach a balance between ‘1’ and ‘0’. Now, it is ready to serve as the final response.
Note that the current design cannot guarantee a static threshold of how many times the process should be executed. The first reason is that the unstable bits selected by the hash function module are not controllable. Secondly, the ones in two responses may be overlapped. Thus, the amount of ones is reduced by the OR operation. To estimate the threshold, we define
u as the number of unstable bits in the 128-bit internal response. The probability that a certain bit is not set to ‘1’ in one process is
. If we assume that the process in
Figure 15 is repeated
n times, the probability that the bit is not set to ‘1’ after
n process iterations is:
The probability that it is ‘1’ is therefore:
Given the 128 bits in the complete response, we should have on average 64 ones and 64 zeroes. Since the 128 bits are independent, we can calculate the expected number of ones as
. In order to have the expected 64 ones,
should thus equal
. Plugging in Equation (
6), we can calculate that
n should be:
By solving the equation, we are able to set a reasonable threshold in order to control the bias. When the unstable bits is 0.5%, n is about 138. Though it is possible to control the bias with a dynamic adjustment, the required logic resources will increase significantly. This strategy can be applied to different PUFs for stability improvement.
5.2. USR-Based Authentication
As a well-known application of PUFs, authentication does not require a very low bit error rate of the PUF responses. Thus, we can apply our USRs directly to the solution. For the simplest authentication, we compare two responses and check if the mismatched bits are larger than a threshold
t. In this application, the false negative rate and false positive rate are critical for performance evaluation. Given a bit error rate
e in 128-bit USRs, the false negative should be:
On the other side, the false positive is:
in which
p is the probability of a random collision in 128 trials. Ideally, the value is close to 0.5.
Apart from the accuracy, we also need to estimate the cost of this solution. One important aspect is the utilization of the memory space. In the simplest solution, we do not require ECC as the bit error rate in USRs is very low. Thus, there is no additional overhead except the CRPs. Given the CRP length of n, the memory cost is 2n bits per CRP. This is acceptable for small amounts of authentication requests. However, as the requests grow, the memory cost increases linearly. A lightweight solution is to record the instability information of PUFs instead of CRPs. The assumption is that we trust the security of the database, which contains some sensitive information of PUFs. In that case, we can calculate the USRs with the known hash function, instability RO pairs and the corresponding challenges.
As we mentioned above, an effective solution is based on the assumption that the database is secure. However, we must consider the scenario that the information is disclosed to attackers. The typical solution is to encrypt the database. Alternatively, we can choose a solution that combines the ECC and Bloom filter [
22], which is both secure and efficient.
5.3. Obfuscation-Based Authentication
Since some authentication applications require a higher security level, we provide another scheme for our PUFs with a strong obfuscation. Our prime goal is that even if a current response is disclosed, it does not leak non-negligible information about the next responses with the same challenge, which means attackers cannot use the replay attack to pass the authentication when a repeated challenge is applied. Secondly, the scheme has strong modeling attack resistance by involving unstable bits in the responses, but the authentication accuracy will not be affected in the database. Furthermore, though probe attacks can obtain the information, the final response is still unpredictable.
The scheme starts from the
N-bit challenge register in
Figure 16. Before launching the challenges, a PCPUF stability model is created in the hardware memory. It records the stable RO pairs and unstable ones. After a challenge is received from the database, the register value will not be updated until the final response is generated. In the first loop, the challenge is hashed by a one-way hash function module with an initial seed. The hash value is sent to the secure address generator as a secure challenge. By mapping the generated addresses to the PCPUF stability model, we select
stable bits and one very unstable RO pair. We enable the unstable RO pair in order to generate one-bit output for obfuscation. The position of the inserted unstable bit depends on the hash value. The
N-bit temporary response is saved in
. Then, we apply the exclusive or operation to the value between
and
and store the result in
. In the first loop, the value in
is zero as it is reset along with a new challenge. Since the secure address generator knows the selected
stable bits, they are sent to the one-way hash function module and hashed as the secure challenge of the second loop. Before the hash operation, a one-bit ‘0’ is added to the end of the stable bits to ensure that the input length is
N-bit. This process repeats
T times to generate the final response. In the loop
t, the secure address generator still selects
stable bits and one unstable RO pair, which is stored in
. However, there are
t accumulated unstable bits in
, given the different inserted positions by the secure address generator. As Algorithm 3 showed, the final response contains
T unstable bits.
To check the collision, we involve a Bloom filter and its reset control logic module in our scheme. A Bloom filter is a space-efficient probabilistic data structure that is used to test whether an element is a member of a set. With an obfuscation bit mask from the secure address generator, the stable bits are sent from to the Bloom filter. After being added by T-bit zeroes, the string is hashed by k hash functions, and the hashed values are stored in an M-bit Non-Volatile Memory (NVM) Bloom filter. The NVM should be tamper resistant against any malicious reset. Whenever a final response is generated, we check the Bloom filter first to ensure that the response has never been released before. If there is no collision, we update the Bloom filter with the k hash values and output as the final response. However, once a collision is found, the final response will be stalled in . As a further obfuscation, we rerun this process for T times to generate a new response. However, this time, we switch the hash function input to the entire , which means the unstable bit is included in the one-way hash input. After T loops, the final response will hardly disclose any information of the PUF state and pattern.
Due to memory space limitation, it is not possible to store infinite hash values in the NVM. Therefore, we use a reset control logic to clean the Bloom filter when the false positive reaches a preset threshold. According to our scheme, the PUF is not allowed to generate the same response twice within the threshold times. Modeling attacks are also inefficient as stable response bits, and the internal state is obfuscated by the unstable bits, one-way hash function and the Bloom filter. Even if the Bloom filter is reset, the pattern cannot be detected due to the T times one-way hashing. The complexity of our scheme also makes probe attacks useless since the next final response is unpredictable given a known PCPUF model, Bloom filter content and the current register value. Since the attackers cannot try all input patterns when N is large, our scheme is secure.
To authenticate our PUFs in a secure way, we avoid recording any data in the database that may disclose the information of the PUFs. Instead, we use Bloom filters for authentication, in which the hash functions provide strong resistance against software reverse engineering. When a PUF is manufactured, we test the PUF and store the PCPUF stability model in the database. Then, we redo the response generation process by software, with our challenge set and the known initial seed in the PUF. Since we cannot predict the unstable bits in the response, all the possibilities must be generated by an authentication tree, as shown in
Figure 17. The responses of
are generated after the first loop of calculations according to the challenge
.
and
are based on the assumption that the obfuscating unstable bit is ‘0’ and ‘1’. In the second loop, the responses of
are generated with the
stable bits from
, and the unstable bits lead to four combinations. By following this progress, we obtain
possibilities of the final response. With the same challenge
, the final response of this PUF must belong to the set of
. Thus, all the responses in this set need to be recorded in the Bloom filter with
as one-time CRP. As we apply nonce to the challenge set, it is not necessary to calculate and store the final response set of the second
T loop. By mapping the response set with one-way hash functions, we can guarantee the data security in the database.
Algorithm 3 Secure authentication scheme. |
- 1:
procedureObfuscation - 2:
wait: - 3:
enable goto loop 1 - 4:
goto wait - 5:
Loop 1: - 6:
reset , - 7:
- 8:
- 9:
Loop 2: - 10:
if then hash() - 11:
else if & no collision then goto Loop 3 - 12:
else if & collision then output goto wait - 13:
else if then hash( + ‘0’) - 14:
else if then hash() - 15:
generate stable bits with the PCPUF model - 16:
generate 1 unstable RO pair with the PCPUF model - 17:
generate 1 obfuscation bit with the RO array - 18:
generate inserted position with the hash value - 19:
bits - 20:
- 21:
- 22:
goto Loop 2 - 23:
Loop 3: - 24:
receive - 25:
‘0’ - 26:
if then goto Loop 2 - 27:
else if then update output goto wait - 28:
end Loop 3
|
This security scheme sacrifices hardware resources, however. For instance, after generating one million responses, the Bloom filter will be reset to maintain a false positive of
. The size of NVM and the number of hash functions are calculated as:
In the database, the false positive rate of the Bloom filter affects the authentication accuracy. Thus, it needs to be much lower than that in the PUF. If we set it to
, the size of Bloom filter for one million CRPs is:
Obviously, the cost is higher than the USR-based authentication solution. In summary, there is always a trade-off between the cost and the security. Those low-cost solutions are suitable for a large amount of chips, while this scheme enhances the security level for some critical applications.