IP Library Granted Patent US 10,693,659
Granted Patent B2
US 10,693,659 · App. 15/411,818 · Granted Jun 23, 2020

Generating pseudo random numbers for quantum computing secure authentication

Inventor: Tobias U. Bergmann (Weinstadt, DE)
Assignee: International Business Machines Corporation
H04L9/3247H04L9/0643H04L9/0662H04L9/0869H04L9/14H04L9/3239H04L2209/38
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 10,693,659
App. No.
15/411,818
Granted
Jun 23, 2020
Kind
B2
Abstract

A generator device being configured for generating pseudo random numbers, the generator device comprising a computing device operable for (i) calculating a first hash chain from an initial hash value (H_ 0 ), the first hash chain comprising a first sequence of M hash values (HA_ 1 , HA_ 2 , . . . , HA_M); (ii) calculating a second hash chain ( 20 ) comprising a second sequence of M hash values (HB_ 1 , HB_ 2 , . . . , HB_M) from the initial hash value (H_ 0 ) and the hash values (HA_ 1 , HA_ 2 , . . . , HA_M) of the first sequence; and (iii) determining the pseudo random numbers from the hash values (HB_ 1 , HB_ 2 , . . . , HB_M) of the second sequence. Also disclosed are a method for generating pseudo random numbers and a method for quantum computing secure authentication, as well as a computer program product and a data processing system.

Claims (88)

1. A generator device being configured for generating pseudo random numbers, the generator device comprising a processor and a memory storing instructions for:

(i) calculating a first hash chain from an initial hash value (H_ 0 ), the first hash chain comprising a first sequence of M hash values (HA_ 1 , HA_ 2 , . . . , HA_M), with index M being a positive integer;

(ii) calculating a second hash chain comprising a second sequence of M hash values (HB_ 1 , HB_ 2 , . . . , HB_M) from the initial hash value (H_ 0 ) and the hash values (HA_ 1 , HA_ 2 , . . . , HA_M) of the first sequence, wherein calculating the second hash chain comprises:

a. calculating a first hash value (HB_ 1 ) of the second sequence from the initial hash value (H_ 0 ) and a last hash value (HA_M) of the first sequence, and

b. calculating a subsequent hash value (HB_n+1) of the second sequence from a preceding hash value (HB_n) of the second sequence and a value (HA_ 1 −1) of the first sequence preceding the hash value (HA_ 1 ) of the first sequence that has been used to calculate the preceding hash value (HB_n) of the second sequence, with index n, 1 being a positive integer from 1 to M; and

(iii) determining the pseudo random numbers from the hash values (HB_ 1 , HB_ 2 , . . . , HB_M) of the second sequence; and

(iv) using a cryptographic algorithm based on the pseudo random numbers for quantum computing secure authentication.

2. The device according to claim 1 , being configured for calculating the subsequent hash value (HB_n+1) of the second sequence based on determining a binary concatenation.

3. The device according to claim 1 , being configured for calculating the subsequent hash value (HB_n+1) of the second sequence based on an XOR operation.

4. The device according to claim 1 , being configured for calculating the subsequent hash value (HB_n+1) of the second sequence from the preceding hash value (HB_n) of the second sequence and a hash value (HA_M−n) of the first sequence, where M equals an index of the last hash value (HA_M) of the first sequence.

5. The device according to claim 1 , being configured for subsequently applying a cryptographic hash function starting from the initial hash value (H_ 0 ) for calculating the hash values (HA_ 1 , HA_ 2 , . . . , HA_M) of the first sequence.

6. The device according to claim 1 , being configured for calculating the initial hash value (H_ 0 ) from a seed (S) by applying a cryptographic hash function.

7. A computer-implemented method for generating pseudo random numbers, the method comprising:

(i) calculating a first hash chain from an initial hash value (H_ 0 ), the first hash chain comprising a first sequence of hash values (HA_ 1 , HA_ 2 , . . . , HA_M), with index M being a positive integer;

(ii) calculating a second hash chain comprising a second sequence of hash values (HB_ 1 , HB_ 2 , . . . , HB_M) from the initial hash value (H_ 0 ) and the hash values (HA_ 1 , HA_ 2 , . . . , HA_M) of the first sequence, wherein calculating the second hash chain comprises:

a. calculating a first hash value (HB_ 1 ) of the second sequence from the initial hash value (H_ 0 ) and a last hash value (HA_M) of the first sequence, and

b. calculating a subsequent hash value (HB_n+1) of the second sequence from a preceding hash value (HB_n) of the second sequence and a value (HA_ 1 −1) of the first sequence preceding the hash value (HA_ 1 ) of the first sequence that has been used to calculate the preceding hash value (HB_n) of the second sequence, with index n, 1 being a positive integer from 1 to M; and

(iii) determining the pseudo random numbers from the hash values (HB_ 1 , HB_ 2 , . . . , HB_M) of the second sequence; and

(iv) using a cryptographic algorithm based on the pseudo random numbers for quantum computing secure authentication.

8. The method according to claim 7 , comprising calculating the subsequent hash value (HB_n+1) of the second sequence based on determining a binary concatenation.

9. The method according to claim 7 , comprising calculating the subsequent hash value (HB_n+1) of the second sequence based on an XOR operation.

10. The method according to claim 7 , comprising calculating the subsequent hash value (HB_n+1) of the second sequence from the preceding hash value (HB_n) of the second sequence and a hash value (HA_M−n) of the first sequence, where M equals an index of the last hash value (HA_M) of the first sequence.

11. The method according to claim 7 , comprising subsequently applying a cryptographic hash function starting from the initial hash value (H_ 0 ) for calculating the hash values (HA_ 1 , HA_ 2 , . . . , HA_M) of the first sequence.

12. The method according to claim 7 , comprising calculating the initial hash value (H_ 0 ) from a seed (S) by applying a secure cryptographic hash function.

13. A computer-implemented method for quantum computing secure authentication, comprising:

(i) generating pseudo random numbers using a generator device configured to generate pseudo random numbers, the generator device comprising a processor and a memory storing instructions for:

(i) calculating a first hash chain from an initial hash value (H_ 0 ), the first hash chain comprising a first sequence of M hash values (HA_ 1 , HA_ 2 , . . . , HA_M), with index M being a positive integer;

(ii) calculating a second hash chain comprising a second sequence of M hash values (HB_ 1 , HB_ 2 , . . . , HB_M) from the initial hash value (H_ 0 ) and the hash values (HA_ 1 , HA_ 2 , . . . , HA_M) of the first sequence, wherein calculating the second hash chain comprises:

i. calculating a first hash value (HB_ 1 ) of the second sequence from the initial hash value (H_ 0 ) and a last hash value (HA_M) of the first sequence, and

ii. calculating a subsequent hash value (HB_n+1) of the second sequence from a preceding hash value (HB_n) of the second sequence and a value (HA_ 1 −1) of the first sequence preceding the hash value (HA_ 1 ) of the first sequence that has been used to calculate the preceding hash value (HB_n) of the second sequence, with index n, 1 being a positive integer from 1 to M; and

(iii)determining the pseudo random numbers from the hash values (HB_ 1 , HB_ 2 , . . . , HB_M) of the second sequence; and

(iv)using a cryptographic algorithm based on the pseudo random numbers for quantum computing secure authentication;

(ii) using a secure cryptographic hash function;

(iii) using a secure signature scheme for creating signatures; and

(iv) creating a binary tree to prove an authenticity of a signee.

14. The method according to claim 13 , wherein the secure hash function is at least one of: SHA-3,AES-based hash.

15. The method according to claim 13 , wherein the secure hash function is based on a symmetric cipher.

16. The method according to claim 13 , wherein the secure signature scheme is a Lamport signature scheme.

17. The method according to claim 13 , comprising generating twice as many pseudo random numbers as a number of messages.

18. The method according to claim 17 , comprising:

(i) generating a list of the pseudo random numbers;

(ii) using half of the pseudo random numbers as secret keys and the other half as public keys for a Lamport signature scheme;

(iii) creating a Merkle tree computing the public keys; and

(iv) exporting a root node of the Merkle tree as a public key.

19. The method according to claim 17 , comprising:

(i) generating a list of the pseudo random numbers;

(ii) using half of the pseudo random numbers as secret keys and the other half as public keys for a Lamport signature scheme;

(iii) creating a Merkle tree computing the public keys; and

(iv) exporting intermediate nodes of the Merkle tree as part of the public key.

20. The method according to claim 17 , comprising:

(i) generating a list of the pseudo random numbers;

(ii) using half of the pseudo random numbers as secret keys and the other half as public keys for a Lamport signature scheme;

(iii) creating a Merkle tree computing the public keys; and

(iv) exporting a root node and at least one intermediate node of the Merkle tree as part of the public key.

21. The method according to claim 17 , comprising:

(i) generating a first list of the pseudo random numbers;

(ii) using half of the pseudo random numbers as secret keys and the other half as public keys for a Lamport signature scheme;

(iii) creating a Merkle tree computing the public keys;

(iv) generating a second list of pseudo random numbers before the last secret key in the first list is used up;

(v) using half of the pseudo random numbers of the second list as secret keys and the other half as public keys for the Lamport signature scheme;

(vi) creating a Merkle tree computing the public keys from the second list;

(vii) exporting the public keys from the second list on a public key chain; and

(viii) signing the public key chain with a remaining secret key of the first list.

22. A computer program product for generating pseudo random numbers, the computer program product comprising a non-transitory computer readable storage medium having program instructions embodied therewith, the program instructions executable by a computer to cause the computer to perform a method, comprising:

(i) calculating, by the computer, a first hash chain from an initial hash value (H_ 0 ), the first hash chain comprising a first sequence of hash values (HA_ 1 , HA_ 2 , . . . , HA_M), with index M being a positive integer;

(ii) calculating, by the computer, a second hash chain ( 20 ) comprising a second sequence of hash values (HB_ 1 , HB_ 2 , . . . , HB_M) from the initial hash value (H_ 0 ) and the hash values (HA_ 1 , HA_ 2 , . . . , HA_M) of the first sequence wherein calculating the second hash chain comprises:

a. calculating, by the computer, a first hash value (HB_ 1 ) of the second sequence from the initial hash value (H_ 0 ) and a last hash value (HA_M) of the first sequence, and

b. calculating, by the computer, a subsequent hash value (HB_n+1) of the second sequence from a preceding hash value (HB_n) of the second sequence and a value (HA_ 1 −1) of the first sequence preceding the hash value (HA_ 1 ) of the first sequence that has been used to calculate the preceding hash value (HB_n) of the second sequence, with index n, 1 being a positive integer from 1 to M; and

(iii) determining, by the computer, the pseudo random numbers from the hash values (HB_ 1 , HB_ 2 , . . . , HB_M) of the second sequence; and

(iv) using, by the computer, a cryptographic algorithm based on the pseudo random numbers for quantum computing secure authentication.

23. A data processing system comprising a processor and memory storing having stored therein instructions for execution of a data processing program executable by the processor for causing the processor to perform the steps comprising:

(i) calculating a first hash chain from an initial hash value (H_ 0 ), the first hash chain comprising a first sequence of hash values (HA_ 1 , HA_ 2 , . . . , HA_M), with index M being a positive integer;

(ii) calculating a second hash chain comprising a second sequence of hash values (HB_ 1 , HB_ 2 , . . . , HB_M) from the initial hash value (H_ 0 ) and the hash values (HA_ 1 , HA_ 2 , . . . , HA_M) of the first sequence, wherein calculating the second hash chain comprises:

a. calculating a first hash value (HB_ 1 ) of the second sequence from the initial hash value (H_ 0 ) and a last hash value (HA_M) of the first sequence, and

b. calculating a subsequent hash value (HB_n+l) of the second sequence from a preceding hash value (HB_n) of the second sequence and a value (HA_ 1 −1) of the first sequence preceding the hash value (HA_ 1 ) of the first sequence that has been used to calculate the preceding hash value (HB_n) of the second sequence, with index n, 1 being a positive integer from 1 to M; and

(iii) determining the pseudo random numbers from the hash values (HB_ 1 , HB_ 2 , . . . , HB_M) of the second sequence; and

(iv) using a cryptographic algorithm based on the pseudo random numbers for quantum computing secure authentication.

24. A computer program product for quantum computing secure authentication, the computer program product comprising a non-transitory computer readable storage medium having program instructions embodied therewith, the program instructions executable by a computer to cause the computer to perform a method, comprising:

(i) generating, by the computer, pseudo random numbers with a generator device configured to generate pseudo random numbers, the generator device comprising a processor and a memory storing instructions for:

a. calculating a first hash chain from an initial hash value (H_ 0 ), the first hash chain comprising a first sequence of M hash values (HA_ 1 , HA_ 2 , . . . , HA_M), with index M being a positive integer;

b. calculating a second hash chain comprising a second sequence of M hash values (HB_ 1 , HB_ 2 , . . . , HB_M) from the initial hash value (H_ 0 ) and the hash values (HA_ 1 , HA_ 2 , ..., HA_M) of the first sequence, wherein calculating the second hash chain comprises:

i. calculating a first hash value (HB_ 1 ) of the second sequence from the initial hash value (H_ 0 ) and a last hash value (HA_M) of the first sequence, and

ii. calculating a subsequent hash value (HB_n+1) of the second sequence from a preceding hash value (HB_n) of the second sequence and a value (HA_ 1 −1) of the first sequence preceding the hash value (HA_ 1 ) of the first sequence that has been used to calculate the preceding hash value (HB_n) of the second sequence, with index n, 1 being a positive integer from 1 to M; and

c. determining the pseudo random numbers from the hash values (HB_ 1 , HB_ 2 , . . . , HB_M) of the second sequence; and

d. using a cryptographic algorithm based on the pseudo random numbers for quantum computing secure authentication;

(ii) using, by the computer, a secure cryptographic hash function;

(iii) using, by the computer, a secure signature scheme for creating signatures; and

(iv) creating, by the computer, a binary tree to prove an authenticity of a signee.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2017
From: BERGMANN, TOBIAS U.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 041070/0138 →
Continuity (1)
Related Publication 20180212779A1 · Jul 26, 2018
Cited By (1)
US 12,217,280