IP Library Granted Patent US 12,095,933
Granted Patent B2
US 12,095,933 · App. 17/879,697 · Granted Sep 17, 2024

PUF-protected pseudo-homomorphic methods to generate session keys

Inventors: Bertrand F. Cambou (Flagstaff, AZ); Donald A. Telesca (Rome, NY); H. Shelton Jacinto (Rome, NY)
Assignee: Arizona Board of Regents on Behalf of Northern Arizona University
H04L9/3278H04L9/14H04L9/3236
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,095,933
App. No.
17/879,697
Granted
Sep 17, 2024
Kind
B2
Abstract

Systems and methods for the generation and use of session keys supporting secure communications between a client and server device are disclosed. The client device has or receives a password, which it hashes a predetermined first number of times. The hashed password is sent as a message digest to a server. The server applies the hashed password to a an array of PUF devices, and receives a response bitstream which is stored. The client later hashes the password a second predetermined number of times, which is less than the first predetermined number, and this second message digest is sent to the server. The server continues to hash the second message digest, generate PUF responses, and compare the result to the initially stored responses. The number of hashes necessary to achieve a match is the session key.

Claims (61)

1. A method of generating and using a session key at a server device having a first physical-unclonable-function (“PUF”) array of addressable of PUF devices, comprising:

receiving a first message digest, the first message digest comprising a password that has been iteratively hashed a first predetermined number of times according to a hashing method;

generating, from the first message digest, a series of PUF challenges;

applying the PUF challenges to the first array of addressable PUF devices;

receiving a first response bitstream from the first array of addressable PUF responses corresponding to the PUF challenges;

storing the first response bitstream;

receiving a second message digest, the second message digest comprising the password that has been iteratively hashed a second predetermined number of times by the hashing method, the second predetermined number of times being less than the first predetermined number of times;

iteratively performing the following steps n times until a stop condition is reached:

hashing the second message digest using the hashing method;

generating from the hashed second message a series of PUF challenges;

applying the PUF challenges to the first array of addressable PUF devices;

receiving a response bitstream from the first array of addressable PUF responses corresponding to the PUF challenges; and

comparing the received response bitstream to the first response bitstream, wherein the stop condition is reached when the received response bitstream matches the first response bitstream.

2. The method of claim 1 , wherein generating, from the first message digest, a series of PUF challenges, comprises, generating, from the first message, a range of addresses of devices within the PUF array.

3. The method of claim 2 , wherein applying the PUF challenges to the array of addressable PUF devices comprises measuring physical characteristics of PUF devices having addresses within the range of addresses of devices within the PUF array.

4. The method of claim 1 , further comprising using the session key to generate a cryptographic key, and using the cryptographic key to engage in encrypted communication with the client.

5. The method of claim 4 , wherein using the session key to generate a cryptographic key comprises using the session key to generate a seed input to a cryptographic key generation algorithm.

6. The method of claim 5 , wherein the server includes an image of a second addressable array of PUF devices, and wherein using the session key to generate a cryptographic key comprises generating, from the session key, a set of addresses in the second addressable array of PUF devices, retrieving previously stored responses corresponding to the PUF devices in the set of addresses resulting in a second response bitstream, and using the second response bitstream to generate a cryptographic key.

7. The method of claim 6 , wherein generating, from the session key, a set of addresses in the second addressable array of PUF devices comprises XORing the session key with a random number generated by a random number generator, applying the resulting number to a one-way cryptographic function resulting in an output number of a predetermined length, and parsing the output number into a set of addresses in the second addressable array of PUF devices.

8. The method of claim 7 , further comprising transmitting the random number to the client.

9. The method of claim 1 , further comprising deleting the first message digest after generating, from the first message digest, the series of PUF challenges.

10. A method of cryptographic communication with a server device having a first physical-unclonable-function (“PUF”) array of addressable of PUF devices, comprising:

receiving a password;

applying a one-way cryptographic function to the password a first predetermined number of times resulting in a first hashed password;

transmitting the first hashed password to a server device as a first message digest;

applying a one way cryptographic function to the password a second predetermined number of times, the second predetermined number of times being less than the first predetermined number of times resulting in a second hashed password, and transmitting the second hashed password to the server as a second message digest;

generating a client session key reflecting a difference between the first and second predetermined number of times;

receiving a third message digest from the server, wherein the third message digest was generated with a server session key generated with the assistance of the server's first PUF array;

determining whether the third message digest was generated with a server session key matching the client session key.

11. The method of claim 10 , wherein if the third message digest was generated with a server session key matching the client session key, engaging in cryptographic communication with the server.

12. The method of claim 11 , wherein engaging in cryptographic communication with the server comprises generating a cryptographic key with the session key, and using the cryptographic key to engage in encrypted communication with the server.

13. The method of claim 12 , wherein using the session key to generate a cryptographic key comprises generating, from the session key, a set of addresses in a second addressable array of PUF devices, measuring physical characteristics of PUF devices having addresses within the range of addresses of devices within the second PUF array resulting in a response bitstream, and using the second response bitstream to generate a cryptographic key.

14. The method of claim 13 , wherein generating, from the session key, a set of addresses in the second addressable array of PUF devices comprises XORing the session key with a random number generated by a random number generator, applying the resulting number to a one-way cryptographic function resulting in an output number of a predetermined length, and parsing the output number into a set of addresses in the second addressable array of PUF devices.

15. The method of claim 10 , wherein if the third message digest was generated with a server session key matching the client session key, accepting a software download from the server.

16. The method of claim 10 , wherein if the third message digest was not generated with a server session key matching the client session key, refusing further communication with the server.

17. A method of cryptographic communication between a client and a server device having a first physical-unclonable-function (“PUF”) array of addressable of PUF devices, comprising:

at the client:

receiving a password;

applying a one-way cryptographic function to the password a first predetermined number of times resulting in a first hashed password;

transmitting the first hashed password to a server device as a first message digest;

at the server:

receiving a first hashed password;

generating, from the first hashed password, a series of PUF challenges;

applying the series PUF challenges to the first array of addressable PUF devices;

receiving a first response bitstream from the first array of addressable PUF responses corresponding to the PUF challenges;

storing the first response bitstream;

at the client:

applying the one-way cryptographic function to the password a second predetermined number of times, the second predetermined number of times being less than the first predetermined number of times resulting in a second hashed password, and transmitting the second hashed password to the server;

generating a client session key reflecting a difference between the first and second predetermined number of times;

at the server:

receiving the second hashed password;

iteratively performing the following steps n times until a stop condition is reached:

hashing the second hashed password using the one-way cryptographic function;

generating from the hashed password a series of PUF challenges;

applying the PUF challenges to the first array of addressable PUF devices;

receiving a response bitstream from the first array of addressable PUF responses corresponding to the PUF challenges; and

comparing the received response bitstream to the first response bitstream, wherein the stop condition is reached when the received response bitstream matches the first response bitstream;

generating a server session key reflecting the number of hashes required to reach the stop condition.

18. The method of claim 17 , wherein the server retains no copy of the first hashed password after receiving the first response bitstream.

19. The method of claim 17 , further including, at the server, generating an authentication message digest with the server session key, and transmitting the authentication message digest to the client, and at the client, comparing the authentication message digest with a message generated with the client session key to authenticate the server.

20. The method of claim 17 , further including generating at the server, a server cryptographic key with the session key and, at the client, a client cryptographic key with the client session key.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 12, 2024
From: CAMBOU, BERTRAND F.
To: ARIZONA BOARD OF REGENTS ON BEHALF OF NORTHERN ARIZONA UNIVERSITY
Reel/Frame 067974/0227 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 12, 2024
From: JACINTO, H. SHELTON; TELESCA, DONALD A.
To: GOVERNMENT OF THE UNITED STATES AS REPRESENTED BY THE SECRETARY OF THE AIR FORCE
Reel/Frame 067974/0558 →
CONFIRMATORY LICENSE Recorded May 30, 2024
From: NORTHERN ARIZONA UNIVERSITY
To: GOVERNMENT OF THE UNITED STATES AS REPRESENTED BY THESECRETARY OF THE AIR FORCE
Reel/Frame 067571/0465 →
Continuity (2)
Provisional Application 63228564 · Aug 2, 2021
Related Publication 20230045288A1 · Feb 9, 2023