IP Library Granted Patent US 10,078,493
Granted Patent B2
US 10,078,493 · App. 15/289,211 · Granted Sep 18, 2018

Secured pseudo-random number generator

Inventors: Yutaka Kawai (Tokyo, JP); Yohichi Miwa (Yokohama, JP)
Assignee: International Business Machines Corporation
G06F7/584
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,078,493
App. No.
15/289,211
Granted
Sep 18, 2018
Kind
B2
Abstract

The present invention provides a method of generating a sequence of pseudo-random numbers which are difficult to predict. The method includes: (i) generating a plurality of candidate pseudo-random numbers by a respectively corresponding plurality of (differently structured) linear feedback shift registers; (ii) generating a “selector number” from one or more additional linear feedback shift registers; and (iii) selecting a candidate number from the plurality of candidate numbers, based on the “selection number” to produce a selected pseudo-random number for output.

Claims (36)

1. A method comprising:

receiving, by a selector, a plurality of pseudo-random numbers (PRNs) including a first pseudo-random number (PRN), a second PRN, and a third PRN;

selecting, from the plurality of PRNs, a selected PRN, based at least in part upon the first PRN; and

outputting the selected PRN;

wherein:

the plurality of PRNs are generated by a corresponding plurality of pseudorandom number generators (PRNGs) respectively including a first PRNG, a second PRNG, and a third PRNG; and

a PRNG of the plurality of PRNGs is provided with a different seed each time a random number is generated by the respective PRNG.

2. The method of claim 1 , wherein feedback configurations of the first PRNG, the second PRNG and the third PRNG are mutually unique.

3. The method of claim 1 , wherein the second PRNG is a Fibonacci linear feedback shift register (LFSR).

4. The method of claim 1 , wherein the third PRNG is a Galois LFSR.

5. The method of claim 1 , wherein a full PRN generated by a PRNG of the plurality of PRNGs, the full PRN having a length of n bits, is partitioned into two or more PRNs having respective lengths of less than n bits.

6. An apparatus comprising:

a plurality of pseudorandom number generators (PRNGs), including a first PRNG, a second PRNG, and a third PRNG, configured to generate a corresponding plurality of pseudo-random numbers (PRNs) including, respectively, a first pseudo-random number (PRN), a second PRN, and a third PRN; and

a selector, configured to:

receive a plurality of pseudo-random numbers (PRNs) including a first pseudo-random number (PRN), and a second PRN, and a third PRN,

select, from the plurality of PRNs, a selected PRN, based at least in part upon the first PRN, and

output the selected PRN;

wherein the apparatus is configured to provide a different seed to a PRNG of the plurality of PRNGs each time a random number is generated by the respective PRNG.

7. The apparatus of claim 6 , wherein the first PRNG, the second PRNG and the third PRNG are mutually uniquely configured.

8. The apparatus of claim 6 , wherein the second PRNG is configured as a Fibonacci linear feedback shift register (LFSR).

9. The apparatus of claim 6 , wherein the third PRNG is configured as a Galois LFSR.

10. The apparatus of claim 6 , configured with respect to a PRN generated by at least one of the plurality of PRNGs, to divide the output of the PRNG having a length of n bits, into two or more PRNs having respective lengths less than or equal to n bits.

11. A computer program product comprising a computer readable storage medium having stored thereon instructions to perform:

receiving, by a selector, a plurality of pseudo-random numbers (PRNs) including a first pseudo-random number (PRN), a second PRN, and a third PRN;

selecting, from the plurality of PRNs, a selected PRN, based at least in part upon the first PRN; and

outputting the selected PRN;

wherein:

the plurality of PRNs are generated by a corresponding plurality of pseudorandom number generators (PRNGs) respectively including a first PRNG, a second PRNG, and a third PRNG; and

a PRNG of the plurality of PRNGs is provided with a different seed each time a random number is generated by the respective PRNG.

12. The computer program product of claim 11 , wherein feedback configurations of the first PRNG, the second PRNG and the third PRNG are mutually unique.

13. The computer program product of claim 11 , wherein the second PRNG is a Fibonacci linear feedback shift register (LFSR).

14. The computer program product of claim 11 , wherein the third PRNG is a Galois LFSR.

15. The computer program product of claim 11 , wherein a full PRN generated by a PRNG of the plurality of PRNGs, the full PRN having a length of n bits, is partitioned into two or more PRNs having respective lengths of less than n bits.

16. The computer program product of claim 11 wherein:

the computer program product is a computer system; and

the product further comprises a processor(s) set structured and/or connected in data communication with the storage medium so that the processor(s) set executes computer instructions stored on the storage medium.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2016
From: KAWAI, YUTAKA; MIWA, YOHICHI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 040293/0518 →
Continuity (1)
Related Publication 20180101360A1 · Apr 12, 2018