# US 12,216,924 B2 · Semiconductor device and semiconductor storage device

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

- Number: US 12,216,924 B2
- Document ID: US12216924B2
- Status: Granted
- Kind: B2
- Application number: 18/500,577
- Filed: 2023-11-02
- Published: 2024-02-22
- Granted: 2025-02-04
- Earliest claimed: 2020-06-02
- Assignees: Kioxia Corporation
- Applicants: Kioxia Corporation
- Inventors: Tsuyoshi Atsumi; Yasuhiko Kurosawa
- Web page: https://patentgrep.com/patent/US12216924B2

## CPC

- G06F 3/0623: {in relation to content}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F 7/584: {using finite field arithmetic, e.g. using a linear feedback shift register}
- G11C 7/1006: {Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor}
- G11C 7/1036: {using data shift registers}
- G11C 19/00: Digital stores in which the information is moved stepwise, e.g. shift registers
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G11C: STATIC STORES (semiconductor memory devices H10B)

## Abstract

A semiconductor device of an embodiment includes a seed generator circuit configured to generate a seed from inputted data by using first random number sequence data generated by an XorShift circuit; and a random number generator circuit configured to receive the seed as input to generate second random number sequence data by a second XorShift circuit.

## Claims

### Claim 1

A method of generating a random number, comprising:
generating first random number sequence data by performing a first XorShift operation on inputted data;
generating a seed by using the first random number sequence data; and
generating second random number sequence data by performing a second XorShift operation on the seed, wherein
the first random number sequence data are generated by using a plurality of XorShift circuits and a nonlinear transformation circuit, and
the nonlinear transformation circuit is configured to perform a nonlinear transformation on output data from at least one of the plurality of XorShift circuits.

### Claim 2 (depends on 1)

The method according to claim 1, wherein
the plurality of XorShift circuits include a first XorShift circuit and a second XorShift circuit,
the first XorShift circuit is configured to perform the first XorShift operation on the inputted data, and
the second XorShift circuit is configured to perform processing on output data from both the first XorShift circuit and the nonlinear transformation circuit to generate the seed.

### Claim 3 (depends on 2)

The method according to claim 2, further comprising:
performing an XOR operation on an operation result of the second XorShift operation to generate the second random number sequence data.

### Claim 4 (depends on 2)

The method according to claim 2, further comprising:
performing an XOR operation on an operation result from the second XorShift circuit; and
performing the second XorShift operation on an operation result of the XOR operation to generate the second random number sequence data.

### Claim 5 (depends on 1)

The method according to claim 1, wherein
the nonlinear transformation circuit includes a plurality of S-box circuits configured to perform a nonlinear transformation of a same kind.

### Claim 6 (depends on 1)

The method according to claim 1, wherein
the nonlinear transformation circuit includes a plurality of S-box circuits configured to perform a plurality of kinds of different nonlinear transformations.

### Claim 7 (depends on 6)

The method according to claim 6, wherein
the plurality of S-box circuits include at least two S-box circuits configured to output different numbers of bits.

### Claim 8 (depends on 1)

The method according to claim 1, further comprising:
exchanging data positions in the second random number sequence data.

### Claim 9 (depends on 1)

The method according to claim 1, further comprising:
performing bit inversion, byte inversion, or word inversion before or after performing the second XorShift operation.

### Claim 10 (depends on 1)

The method according to claim 1, wherein
the method is performed in a semiconductor device,
the semiconductor device includes a first XorShift circuit, a second XorShift circuit, a first S-box circuit, and a second S-box circuit,
the first XorShift circuit includes a first input and a first output,
the second XorShift circuit includes a second input and a second output,
the first input is connected to an output of the first S-box circuit, and the first output is connected to an input the second S-box circuit, and
the second input is connected to an output of the second S-box circuit, and the second output is connected to an input of the first S-box circuit.

### Claim 11 (depends on 1)

The method according to claim 1, wherein
the method is performed in a semiconductor device,
the semiconductor device includes a plurality of units, each of which includes a first XorShift circuit, a second XorShift circuit, a first S-box circuit, and a second S-box circuit,
in each of the plurality of units,
the first XorShift circuit includes a first input and a first output, and
the second XorShift circuit includes a second input and a second output,
the first input is connected to an output of the first S-box circuit, and the first output is connected to an input of the second S-box circuit,
the second input is connected to an output of the second S-box circuit, and the second output is connected to an input of the first S-box circuit, and
a bit shift amount used in the first and second XorShift circuits of each of the plurality of units differs among the plurality of units.

### Claim 12

A method of controlling a nonvolatile memory, the method comprising:
generating first random number sequence data by performing a first XorShift operation on storage location data indicating a storage location of the data in the nonvolatile memory;
generating a seed by using the first random number sequence data; and
generating second random number sequence data by performing a second XorShift operation on the seed, wherein
the first random number sequence data are generated by using a plurality of XorShift circuits and a nonlinear transformation circuit, and
the nonlinear transformation circuit is configured to perform a nonlinear transformation on output data from at least one of the plurality of XorShift circuits.

### Claim 13 (depends on 12)

The method according to claim 12, further comprising:
storing the data at the storage location in the nonvolatile memory designated by a page number; wherein
the storage location data contains the page number, or the page number and a frame number contained in the page number.

### Claim 14 (depends on 12)

The method according to claim 12, further comprising:
randomizing user data using the second random number sequence data; and
storing the randomized user data as the data at the storage location in the nonvolatile memory.

### Claim 15 (depends on 12)

The method according to claim 12, wherein
the plurality of XorShift circuits include a first XorShift circuit and a second XorShift circuit,
the first XorShift circuit is configured to perform the first XorShift operation on the storage location data, and
the second XorShift circuit is configured to perform processing on output data from both the first XorShift circuit and the nonlinear transformation circuit to generate the seed.

### Claim 16 (depends on 15)

The method according to claim 15, further comprising:
performing an XOR operation on an operation result of the second XorShift operation to generate the second random number sequence data.

### Claim 17 (depends on 15)

The method according to claim 15, further comprising:
performing an XOR operation on an operation result from the second XorShift circuit; and
performing the second XorShift operation on an operation result of the XOR operation to generate the second random number sequence data.

### Claim 18 (depends on 12)

The method according to claim 12, wherein
the nonlinear transformation circuit includes a plurality of S-box circuits configured to perform a nonlinear transformation of a same kind.
