Method and system for secure key exchange using physically unclonable function (PUF)-based keys
View Patent ↗A method includes retrieving a registered response obtained in a registration process, the registered response being a physically unclonable function (PUF)-based response associated with a device; retrieving a registered helper data obtained in the registration process, the registered helper data corresponding to the registered response; generating a cipher text by encrypting a message with the registered response; and sending to the device over a public channel the cipher text with the registered helper data.
1. A method, comprising:
retrieving a registered response obtained in a registration process, the registered response being a physically unclonable function (PUF)-based response associated with a device;
retrieving a registered helper data obtained in the registration process, the registered helper data corresponding to the registered response;
generating a cipher text by encrypting a message with the registered response;
sending to the device over a public channel the cipher text with the registered helper data;
receiving the cipher text with the registered helper data;
generating a noisy response;
reshaping the noisy response to obtain the registered response by using the registered helper data; and
decrypting the cipher text to obtain the message by using the registered response.
2. The method according to claim 1 , wherein the registration process comprises:
generating a pair of public key and secret key;
sending the public key to the device; and
receiving a cipher text from the device, the received cipher text generated at the device by using the public key to encrypt a response and a helper data corresponding to the response.
3. The method according to claim 2 further comprising:
decrypting the received cipher text by using the secret key to obtain a message in the received cipher text; and
storing the response and the helper data.
4. The method according to claim 2 further comprising:
sending a challenge together with the public key to the device.
5. The method according to claim 1 , wherein the registration process comprises:
receiving a public key sent from a server;
generating a response and a helper data in response to the public key;
generating a cipher text by using the public key to encrypt the response and the helper data; and
sending the generated cipher text to the server.
6. The method according to claim 5 further comprising:
concatenating the response and the helper data before encrypting the response and the helper data.
7. The method according to claim 1 , wherein the PUF-based response includes a built-in response in the device.
8. The method according to claim 1 , wherein the PUF-based response includes a response generated at the device in response to a challenge from a server.
9. A method, comprising:
generating a noisy response, the noisy response being a noise version of a registered response having been registered with a server in a registration process;
generating a helper data corresponding to the noisy response;
generating a cipher text by encrypting a message with the noisy response;
sending to the server over a public channel the cipher text with the helper data;
receiving the cipher text and the helper data;
deriving the noisy response from the registered response by using the helper data received; and
decrypting the cipher text to obtain the message by using the noisy response.
10. The method according to claim 9 further comprising:
receiving the cipher text and the helper data;
determining that the helper data received is identical with a registered helper data corresponding to the registered response; and
decrypting the cipher text to obtain the message by using the registered response.
11. The method according to claim 9 further comprising:
receiving a challenge together with a public key during the registration process.
12. The method according to claim 11 , wherein the registered response includes a response generated in response to the received challenge.
13. A system, comprising:
a physical server configured to:
retrieve a registered response obtained in a registration process, the registered response being a physically unclonable function (PUF)-based response associated with an integrated circuit (IC) device;
retrieve a registered helper data obtained in the registration process, the registered helper data corresponding to the registered response;
generate a cipher text by encrypting a message with the registered response; and
send to the IC device over a public channel the cipher text with the registered helper data,
wherein the IC device is configured to:
receive the cipher text with the registered helper data;
generate a noisy response;
reshape the noisy response to obtain the registered response by using the registered helper data; and
decrypt the cipher text to obtain the message by using the registered response.
14. The system according to claim 13 , wherein the physical server is further configured to, during the registration process:
generate a pair of public key and secret key;
send the public key to the IC device; and
receive a cipher text from the IC device, the received cipher text generated at the IC device by using the public key to encrypt a response and a helper data corresponding to the response.
15. The system according to claim 14 , wherein the physical server is further configured to, during the registration process:
decrypt the received cipher text by using the secret key to obtain a message in the received cipher text; and
store the response and the helper data.
16. The system according to claim 14 , wherein the physical server is further configured to, during the registration process:
send a challenge together with the public key to the IC device.
17. The system according to claim 13 , wherein the IC device is configured to, during the registration process:
receive a public key sent from the physical server;
generate a response and a helper data in response to the public key received;
generate a cipher text by using the public key to encrypt the response and the helper data; and
send the generated cipher text to the physical server.