IP Library › Granted Patent US 12,671,600
Granted Patent B2
US 12,671,600 · App. 18/356,707 · Granted Jun 30, 2026

Method for improved hash chaining authentication

Inventor: Donald E. Eastlake (Apopka, FL)
Assignee: Huawei Technologies Co., Ltd.
H04L9/50H04L9/0869H04L9/3213H04L61/5092H04L2101/622
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,671,600
App. No.
18/356,707
Filed
Jul 21, 2023
Granted
Jun 30, 2026
Kind
B2
Examiner
SUH, ANDREW
Art Unit
2493
USPC
713/159
Abstract

A method for authenticating messages implemented by a sending device. The method includes the sending device sending a first message that includes an N generation token of a first seed, where N is a first integer value greater than one. The method further includes the sending device sending a second message that includes an N−1 generation token of the first seed and an M generation token of a second seed, where M is a second integer value greater than one, and where the N−1 generation token is a different generation than the M generation token.

Claims (70)

1 . A method for authenticating messages implemented by a sending device, the method comprising:

generating, using a hash function, an N generation token of a first seed and an N−1 generation token of the first seed, wherein N is a firt integer value greater than one;

sending a first message that includes the N generation token of a first seed, wherein N is a first integer value greater than one; and

sending a second message that includes the N−1 generation token of the first seed and an M generation token of a second seed, wherein M is a second integer value greater than one, and wherein the N−1 generation token is a different generation than the M generation token.

2 . The method of claim 1 , further comprising:

prior to sending the first message, generating the N−1 generation token and the N generation token of the first seed by performing hash chaining using the first seed; and

storing the N−1 generation token.

3 . The method of claim 1 , further comprising:

prior to sending the second message, generating an M−1 generation token and the M generation token of the second seed by performing hash chaining using the second seed; and

storing the M−1 generation token.

4 . The method of claim 3 , wherein the first integer value of N is equal to the second integer value of M.

5 . The method of claim 4 , further comprising sending, when N is greater than two and M is greater than two, a third message that includes an N−2 generation token of the first seed and the M−1 generation token of a second seed.

6 . The method of claim 5 , further comprising:

prior to sending the third message, generating an N−3 generation token and the N−2 generation token of the first seed by performing hash chaining using the first seed; and

storing the N−3 generation token.

7 . The method of claim 1 , further comprising:

generating, when N is two and Mis two, an N−1 generation token and an N generation token of a third seed by performing hash chaining using the third seed;

sending a third message that includes an M−1 generation token of the second seed and the N generation token of the third seed; and

storing the N−1 generation token of the third seed.

8 . The method of claim 1 , further comprising overwriting or deleting any previously stored generation token that has been included in a sent message.

9 . A method for authenticating messages implemented by a receiving device, the method comprising:

receiving, from a sending device, a first message that includes an N generation token of a first seed, wherein N is a first integer value greater than one;

storing the N generation token of the first seed;

receiving, from the sending device, a second message that includes an N−1 generation token of the first seed and an M generation token of a second seed, wherein M is a second integer value greater than one, and wherein the N−1 generation token is a different generation than the M generation token;

determining whether a hash value of a hash of the N−1 generation token is equal to the N generation token of the first seed received in the first message; and

authenticating that the second message came from the sending device when the hash value of the hash of the N−1 generation token is equal to the N generation token received in the first message.

10 . The method of claim 9 , further comprising discarding the second message when the hash value of the hash of the N−1 generation token is not equal to the N generation token received in the first message.

11 . The method of claim 9 , further comprising storing the M generation token of the second seed when the hash value of the hash of the N−1 generation token is equal to the N generation token received in the first message.

12 . The method of claim 9 , further comprising deleting or overwriting the N generation token of the first seed from memory when the hash value of the hash of the N−1 generation token is equal to the N generation token received in the first message.

13 . The method of claim 9 , wherein the first integer value of N is equal to the second integer value of M.

14 . The method of claim 9 , further comprising:

receiving, when N is greater than two and M is greater than two, a third message that includes an N−2 generation token of the first seed and an M−1 generation token of the second seed;

determining whether the hash value of the hash of the M−1 generation token is equal to the M generation token; and

authenticating that the third message came from the sending device when the hash value of the hash of the M−1 generation token is equal to the M generation token.

15 . The method of claim 14 , further comprising storing the N−2 generation token of the first seed for authenticating a fourth message from the sending device.

16 . An apparatus comprising:

a memory configured to store instructions; and

a processor coupled to the memory and configured to execute the instructions, which when executed cause the apparatus to:

generate, using a hash function, an N generation token of a first seed and an N−1 generation token of the first seen, wherein N is a first integer value greater than one;

send a first message that includes the N generation token of a first seed, wherein N is a first integer value greater than one; and

send a second message that includes the N−1 generation token of the first seed and an M generation token of a second seed, wherein M is a second integer value greater than one, and wherein the N−1 generation token is a different generation than the M generation token.

17 . The apparatus of claim 16 , wherein the instructions when executed by the processor, further causes the apparatus to:

generate, prior to sending the first message, the N−1 generation token and the N generation token of the first seed by performing hash chaining using the first seed; and

store the N−1 generation token.

18 . The apparatus of claim 16 , wherein the instructions when executed by the processor, further causes the apparatus to:

generate, prior to sending the second message, an M−1 generation token and the M generation token of the second seed by performing hash chaining using the second seed; and

store the M−1 generation token.

19 . The apparatus of claim 18 , wherein the first integer value of N is equal to the second integer value of M.

20 . The apparatus of claim 19 , wherein the instructions when executed by the processor, further causes the apparatus to send, when N is greater than two and M is greater than two, a third message that includes an N−2 generation token of the first seed and the M−1 generation token of a second seed.

21 . The apparatus of claim 20 , wherein the instructions when executed by the processor, further causes the apparatus to generate, prior to sending the third message, an N−3 generation token and the N−2 generation token of the first seed by performing hash chaining using the first seed; and store the N−3 generation token.

22 . The apparatus of claim 16 , wherein the instructions when executed by the processor, further causes the apparatus to:

generate, when N is two and M is two, an N−1 generation token and the N generation token of a third seed by performing hash chaining using the third seed;

send a third message that includes an M−2 generation token of the second seed and the N generation token of the third seed; and

store the N−1 generation token of the third seed.

23 . The apparatus of claim 16 , wherein the instructions when executed by the processor, further causes the apparatus to overwrite or delete any previously stored generation token that has been included in a sent message.

24 . A computer program product comprising computer-executable instructions stored on a non-transitory computer-readable storage medium, the computer-executable instructions when executed by one or more processors of an apparatus, cause the apparatus to:

receive, from a sending device, a first message that includes an N generation token of a first seed, wherein N is a first integer value greater than one;

store the N generation token of the first seed;

receive a second message that includes an N−1 generation token of the first seed and an M generation token of a second seed, wherein M is a second integer value greater than one, and wherein the N−1 generation token is a different generation than the M generation token;

determine whether a hash value of a hash of the N−1 generation token is equal to the N generation token of the first seed received in the first message; and

authenticate that the second message came from the sending device when the hash value of the hash of the N−1 generation token is equal to the N generation token received in the first message.

25 . The computer program product of claim 24 , wherein the instructions when executed by the one or more processors, further causes the apparatus to discard the second message when the hash value of the hash of the N−1 generation token is not equal to the N generation token received in the first message.

26 . The computer program product of claim 24 , wherein the instructions when executed by the one or more processors, further causes the apparatus to store the M generation token of the second seed when the hash value of the hash of the N−1 generation token is equal to the N generation token received in the first message.

27 . The computer program product of claim 24 , wherein the instructions when executed by the one or more processors, further causes the apparatus to delete or overwrite the N generation token of the first seed from memory when the hash value of the hash of the N−1 generation token is equal to the N generation token received in the first message.

28 . The computer program product of claim 24 , wherein the first integer value of N is equal to the second integer value of M.

29 . The computer program product of claim 24 , wherein the instructions when executed by the one or more processors, further causes the apparatus to:

receive, when N is greater than two and M is greater than two, a third message that includes an N−2 generation token of the first seed and an M−1 generation token of the second seed;

determine whether the hash value of the hash of the M−1 generation token is equal to the M generation token; and

authenticate that the third message came from the sending device when the hash value of the hash of the M−1 generation token is equal to the M generation token.

30 . The computer program product of claim 29 , wherein the instructions when executed by the one or more processors, further causes the apparatus to store the N−2 generation token of the first seed for authenticating a fourth message from the sending device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2023
From: FUTUREWEI TECHNOLOGIES, INC.
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 065304/0322 →
Continuity (3)
Continuation PCTUS2022013400 · Jan 21, 2022
Provisional Application 63140677 · Jan 22, 2021
Related Publication 20230362022A1 · Nov 9, 2023
References Cited (27)
US 20060036548A1 · Roever · 2006 [cited by examiner]
US 20070150744A1 · Cheng · 2007 [cited by examiner]
US 20090138712A1 · Driscoll · 2009 [cited by examiner]
US 20120011566A1 · Youm · 2012 [cited by examiner]
US 20130238903A1 · Mizunuma · 2013 [cited by examiner]
US 20140173682A1 · Xiao · 2014 [cited by examiner]
US 20140250517A1 · Kim · 2014 [cited by examiner]
US 20150149779A1 · Falk · 2015 [cited by examiner]
US 20160080380A1 · Dawoud Shenouda Dawoud · 2016 [cited by examiner]
US 20180212779A1 · Bergmann · 2018 [cited by examiner]
US 20180234248A1 · Imamoto · 2018 [cited by examiner]
US 20200374295A1 · Palumbo · 2020 [cited by examiner]
US 20210135858A1 · Chu · 2021 [cited by examiner]
WO WO2019129417A1 · 2019 [cited by examiner]
Droms, R., “Dynamic Host Configuration Protocol,” Network Working Group, RFC 2131, Mar. 1997, 45 pages. [cited by applicant]
Eastlake, D., III, et al., “Randomness Requirements for Security,” Network Working Group, RFC 4086, Jun. 2005, 48 pages. [cited by applicant]
Eastlake, D., III, et al., “IANA Considerations and IETF Protocol and Documentation Usage for IEEE 802 Parameters,” Internet Engineering Task Force (IETF), RFC 7042, Oct. 2013, 27 pages. [cited by applicant]
Mrugalski, T., et al., “Dynamic Host Configuration Protocol for IPV6 (DHCPv6),” Internet Engineering Task Force (IETF), RFC 8415, Nov. 2018, 154 pages. [cited by applicant]
Volz, B., et al., “Link-Layer Address Assignment Mechanism for DHCPv6,” Internet Engineering Task Force (IETF), RFC 8947, Dec. 2020, 18 pages. [cited by applicant]
Bernardos, CJ., et al., “Structured Local Address Plan (SLAP) Quadrant Selection Option for DHCPv6,” Internet Engineering Task Force (IETF), RFC 8948, Dec. 2020, 13 pages. [cited by applicant]
De La Olivia, A., et al., “Protocol for Assignment of Local and Multicast Addresses (PALMA),” Interdigital, UC3M, IEEE 802.1CQ, Jun. 30, 2020, 18 pages. [cited by applicant]
Lamport, L., “Password Authentication with Insecure Communication,” SRI International, Communications of the ACM. Vol. 24, No. 11, Nov. 1981, 3 pages. [cited by applicant]
“Federal Information Processing Standards Publication Secure Hash Standard (SHS),” FIPS Pub 180-4, Information Technology Laboratory National Institute of Standards and Technology Gaithersburg, MD 20899-8900, Aug. 2015,… [cited by applicant]
Hu, C.H., et al., “Efficient Constructions for One-way Hash Chains,” ACNS 2005, LNCS 3531, pp. 423-441. [cited by applicant]
Zhao, Y., et al., “An Improved Elegant Method to Re-initialize Hash Chains,” Department of Information Engineering, Beijing University of Posts and Telecommunications, Jan. 18, 2005, 8 pages. [cited by applicant]
“Information Technology—Open Systems Interconnection—Base Reference Model: The Basic Model” ISO/IEC 7498-1, Second Edition Nov. 15, 1994, 6 pages. [cited by applicant]
“T/Key: Second-Factor Authentication From Secure Hash Chains,” arXiv:1708/08424v1, CCS '17, Oct. 30-Nov. 3, 2017, 17 pages. [cited by applicant]