# US 2018/0024813 A1 · Pseudo-random number generation device and computer readable medium

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2018/0024813 A1
- Document ID: US20180024813A1
- Status: Published application
- Kind: A1
- Application number: 15/549,047
- Filed: 2015-02-19
- Published: 2018-01-25
- Earliest claimed: 2015-02-19
- Assignees: Mitsubishi Electric Corporation
- Applicants: Mitsubishi Electric Corporation
- Inventors: Yusuke NAITO; Toru SORIMACHI; Tomomi KASUYA
- Web page: https://patentgrep.com/patent/US20180024813A1

## CPC

- G06F 7/586: {using an integer algorithm, e.g. using linear congruential method}
- G06F 7/58: Random or pseudo-random number generators
- G09C 1/00: Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system (cryptographic typewriters G09C3/00)
- H04L 9/0625: {with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI}
- H04L 9/0631: {Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms}
- H04L 9/0656: {Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G09C: CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A pseudo-random number generation device calculates a value st[i] of b[i] bits by using a function F[i] taking a value st[i−1] as input for each integer value i with i=1, . . . , n in ascending order. The pseudo-random number generation device calculates a value x[i] of r[i] bits by using a function g[i] taking as input at least a part of bits of a value st[j] and at least a part of bits of the value st[i] for at least a part of an integer value i with i=1, . . . , n, where a value j is an integer value smaller than the integer value i. The pseudo-random number generation device combines the values x[i] calculated by using the function g[i] to obtain a pseudo random number.

## Claims

### Claim 1

A pseudo-random number generation device comprising:
processing circuitry to:
calculate a value st[0] by using a function F[0];
calculate a value st[i] by using a function F[i] taking a value st[i−1] as input, for each integer value i with i=1, . . . , n in ascending order, where a value n is an integer value equal to or larger than 1;
calculate a value x[i] by using a function g[i] to perform an operation using both of at least a part of bits of a value st[j] and at least a part of bits of the value s[i], taking as input at least a part of bits of the value st[j] and at least a part of bits of the value st[i], for at least a part of an integer value i with i=1, . . . , n, where a value j is an integer value smaller than the integer value i; and
calculate a pseudo random number from the value x[i] calculated.

### Claim 2 (depends on 1)

The pseudo-random number generation device as defined in claim 1,
wherein the processing circuitry calculates the value x[i] by using the function g[i] taking as input at least a part of bits of the value st[i−1] and at least a part of bits of the value st[i], for each integer value i with i=1, . . . , n.

### Claim 3 (depends on 1)

The pseudo-random number generation device as defined in claim 1,
wherein the function F[i] for each integer value i with i=1, . . . , n is a same non-linear function.

### Claim 4 (depends on 1)

The pseudo-random number generation device as defined in claim 1,
wherein the function F[i] for each integer value i with i=0, . . . , n is a same non-linear function.

### Claim 5 (depends on 1)

The pseudo-random number generation device as defined in claim 1,
wherein the function F[0] is a function to calculate a round function R[i] for each integer value i with i=1, . . . , t sequentially, the round function R[i] constructing a block cipher, where a value t is an integer number equal to or larger than 1, and
wherein the function F[i] for each integer value i with i=1, . . . , n is a function to sequentially calculate a round function R[i] being at least a part of the round function R[i] calculated in the function F[0].

### Claim 6 (depends on 1)

The pseudo-random number generation device as defined in claim 1,
wherein the function F[0] is a function to calculate a round function R[i] for each integer value i with i=1, . . . , t sequentially, the round function R[i] constructing a block cipher, where a value t is an integer number equal to or larger than 1, and further, to calculate a round function R[i] being at least a part of the round function R[i] sequentially, and
wherein the function F[i] for each integer value i with i=1, . . . , n is a function to sequentially calculate a round function R[i] being at least a part of the round function R[i] calculated in the function F[0].

### Claim 7 (depends on 5)

The pseudo-random number generation device as defined in claim 5,
wherein the processing circuitry calculates the value st[0] by combining values that are calculated by using the round function R[i] being at least the part of the round function R[i] calculated in the function F[i], and
wherein the processing circuitry calculates the value st[i] by combining values calculated by using the round function R[i] being at least the part of the round function R[i] calculated in the function F[i].

### Claim 8 (depends on 5)

The pseudo-random number generation device as defined in claim 5,
wherein the processing circuitry takes a part of bits selected from bits of the value st[i−1] as an input value into a round function R[i] that is calculated first, and a part of bits selected from the bits of the value st[i−1] as a key used for each round function R[i].

### Claim 9 (depends on 5)

The pseudo-random number generation device as defined in claim 5,
wherein the block cipher is AES (Advanced Encryption Standard), and the round function R[i] for each integer value i with i=1, . . . , t is a round function in AES.

### Claim 10 (depends on 5)

The pseudo-random number generation device as defined in claim 5,
wherein the block cipher is Camellia (registered trademark), and the round function R[i] for each integer value i with i=1, . . . , t is a round function in Camellia (registered trademark).

### Claim 11 (depends on 2)

The pseudo-random number generation device as defined in claim 2,
wherein the function g[i] for each integer value i with i=1, . . . , n is a function to calculate an exclusive OR of at least a part of bits of the value st[i−1] and at least a part of bits of the value st[i], and output at least a part of bits as the value x[i].

### Claim 12 (depends on 11)

The pseudo-random number generation device as defined in claim 11,
wherein the value st[i] for each integer value i with i=1, . . . , n has a same number of bits.

### Claim 13

A non-transitory computer readable medium storing a pseudo-random number generation program that causes a computer to execute:
first function F calculation processing to calculate a value st[0] by using a function F[0];
second function F calculation processing to calculate a value st[i] by using a function F[i] taking a value st[i−1] as input, for each integer value i with i=1, . . . , n in ascending order, where a value n is an integer value equal to or larger than 1;
function g calculation processing to calculate a value x[i] by using a function g[i] to perform an operation using both of at least a part of bits of a value st[j] and at least a part of bits of the value st[i], taking as input at least a part of bits of the value st[j] and at least a part of bits of the value st[i], for at least a part of an integer value i with i=1, . . . , n, where a value j is an integer value smaller than the integer value i; and
random number value calculation processing to calculate a pseudo random number from the value x[i] calculated by the function g calculation processing.
