IP Library Granted Patent US 12,430,475
Granted Patent B2
US 12,430,475 · App. 18/112,079 · Granted Sep 30, 2025

Computer and data processing method

Inventors: Nagamasa Mizushima (Tokyo, JP); Yoshihiro Yoshii (Tokyo, JP); Naoya Okada (Tokyo, JP)
Assignee: HITACHI VANTARA, LTD.
G06F21/78G06F21/602G06F21/64
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,430,475
App. No.
18/112,079
Granted
Sep 30, 2025
Kind
B2
Abstract

A computer includes a processor including a plurality of registers, a memory, and a storage medium. A processor of a computer is configured to execute an encryption process of generating encrypted user data including a plurality of encrypted data blocks using the plurality of registers, and add a DIF including CRC to the encrypted data blocks and store the result in a storage medium. The encryption process includes repeatedly executing a first process of reading partial data from a predetermined number of the data blocks and storing the partial data in a first register, a second process of storing encrypted partial data obtained by encrypting the partial data stored in the first register in a second register, and a third process of executing an operation for calculating CRC using the encrypted partial data stored in the second register and storing a result of the operation in a third register.

Claims (75)

1. A computer that writes and reads user data including a plurality of data blocks, comprising:

a processor, a memory connected to the processor, a storage medium connected to the processor, and a connection interface connected to the processor,

wherein the processor includes a plurality of registers, and is configured to:

receive a request to write the user data;

store the user data written in response to the write request in the memory;

execute an encryption process of generating encrypted user data including a plurality of encrypted data blocks using the plurality of registers;

store a plurality of first data integrity fields in a first resister;

execute a first setting process to set a first address indicating a storage location of one of the plurality of encrypted data blocks in parallel to each of the plurality of first data integrity fields stored in the first register;

add one of the plurality of first data integrity fields including the first address to each of the plurality of encrypted data blocks in the encrypted user data, respectively; and

store the encrypted user data in the storage medium.

2. The computer according to claim 1 ,

wherein a first generation number representing a generation of writing of the data block can be set in the first data integrity field, and

wherein the processor is configured executes a second setting process to set the first generation number of the one of the plurality of encrypted data blocks in parallel to each of the plurality of first data integrity fields stored in the first register.

3. The computer according to claim 2 ,

wherein the processor is configured to:

receive a request to read the encrypted user data;

read the encrypted user data specified by the read request from the storage medium and store the read data in the memory;

execute decryption process for decrypting the encrypted user data using the plurality of registers;

store a plurality of second data integrity fields in a second register;

execute a third setting process to set a second address indicating a storage location of one of the plurality of encrypted data blocks in parallel to each of the plurality of second data integrity fields stored in the second register; and

add one of the plurality of second data integrity fields including the second address to each of the plurality of data blocks in the decrypted user data, respectively, and store a result in the memory.

4. The computer according to claim 3 ,

wherein a second generation number representing a generation of writing of the data block can be set in the second data integrity field, and

wherein the processor is configured to executes a fourth setting process to set the second generation number of the one of the plurality of encrypted data blocks in parallel to each of the plurality of second data integrity fields stored in the second register.

5. The computer according to claim 4 ,

wherein the processor uses Single Instruction/Multiple Data (SIMD) instructions to execute the first setting process in parallel, execute the second setting process in parallel, execute the third setting process in parallel, and execute the fourth setting process in parallel.

6. The computer according to claim 3 ,

wherein each of the plurality of second data integrity fields includes a first error code.

7. The computer according to claim 1 ,

wherein each of the plurality of first data integrity fields includes a first error code.

8. A computer that writes and reads user data including a plurality of data blocks, comprising:

a processor, a memory connected to the processor, a storage medium connected to the processor, and a connection interface connected to the processor,

wherein the processor includes a plurality of registers, and is configured to:

receive a request to write the user data;

store the user data written in response to the write request in the memory;

execute an encryption process of generating encrypted user data including a plurality of encrypted data blocks using the plurality of registers;

execute a first inspection process for detecting corruption of the user data using the plurality of registers;

store a plurality of first data integrity fields in a first register;

execute a first setting process to set a first address indicating a storage location of one of the plurality of encrypted data blocks in parallel to each of the plurality of first data integrity fields stored in the first register;

add one of the plurality of first data integrity fields including the first address to each of the plurality of encrypted data blocks in the encrypted user data, respectively; and

store the encrypted user data in the storage medium.

9. The computer according to claim 8 ,

wherein a first generation number representing a generation of writing of the data block can be set in the first data integrity field, and

the processor is configured executes a second setting process to set the first generation number of the one of the plurality of encrypted data blocks in parallel to each of the plurality of first data integrity fields stored in the first register.

10. The computer according to claim 9 ,

wherein the processor is configured to:

receive a request to read the encrypted user data;

read the encrypted user data specified by the read request from the storage medium and store the read data in the memory;

execute decryption process for decrypting the encrypted user data using the plurality of registers;

store a plurality of second data integrity fields in a second register;

execute a third setting process to set a second address indicating a storage location of one of the plurality of encrypted data blocks in parallel to each of the plurality of second data integrity fields stored in the second register;

add one of the plurality of second data integrity fields including the second address to each of the plurality of data blocks in the decrypted user data, respectively, and store a result in the memory,

execute a second inspection process for detecting corruption of the encrypted user data using the plurality of registers; and

store the user data in the memory.

11. The computer according to claim 10 ,

wherein the second data integrity field includes a second generation number representing a generation of writing of the data block, and

wherein the processor is configured to executes a fourth setting process to set the second generation number of the one of the plurality of encrypted data blocks in parallel to each of the plurality of second data integrity fields stored in the second register.

12. The computer according to claim 11 ,

wherein the processor uses Single Instruction/Multiple Data (SIMD) instructions to execute the first setting process in parallel, execute the second setting process in parallel, execute the third setting process in parallel, and execute the fourth setting process in parallel.

13. The computer according to claim 8 ,

wherein each of the plurality of first data integrity fields includes a first error code.

14. A data processing method executed by a computer that writes and reads user data including a plurality of data blocks,

wherein the computer includes a processor, a memory connected to the processor, a storage medium connected to the processor, and a connection interface connected to the processor,

the processor includes a plurality of registers, and

the data processing method comprises:

receiving, by the processor, a request to write the user data;

in response to the write request, storing, by the processor, the user data to write in the memory;

executing, by the processor, an encryption process of generating encrypted user data including a plurality of encrypted data blocks using the plurality of registers;

executing, by the processor, an inspection process to detect corruption of the user data using the plurality of registers;

storing a plurality of first data integrity fields in a first register;

executing a first setting process to set a first address indicating a storage location of one of the plurality of encrypted data blocks in parallel to each of the plurality of first data integrity fields stored in the first register;

adding one of the plurality of first data integrity fields including the first address to each of the plurality of encrypted data blocks in the encrypted user data, respectively; and

storing, by the processor, the encrypted user data on the storage medium.

15. The data processing method according to claim 14 ,

wherein each of the plurality of second data integrity fields includes a first error code.

Assignments (2)
COMPANY SPLIT Recorded Aug 20, 2024
From: HITACHI, LTD.
To: HITACHI VANTARA, LTD.
Reel/Frame 069518/0761 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2023
From: MIZUSHIMA, NAGAMASA; YOSHII, YOSHIHIRO; OKADA, NAOYA
To: HITACHI, LTD.
Reel/Frame 062753/0380 →
Priority Claims (1)
JP 2022-141346 · Sep 6, 2022 · national
Continuity (1)
Related Publication 20240078347A1 · Mar 7, 2024
References Cited (7)
US 8194854B2 · Gueron et al. · 2012 [cited by applicant]
US 10320558B2 · Leventhal et al. · 2019 [cited by applicant]
US 20210264063A1 · Monji · 2021 [cited by examiner]
US 20220283731A1 · Yoo · 2022 [cited by examiner]
US 20230342121A1 · Wilkinson · 2023 [cited by examiner]
JP 2021132342A · 2021 [cited by applicant]
Japanese Office Action received in corresponding Japanese Application No. 2022-141346 dated May 28, 2024. [cited by applicant]