WO2024142555A1 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
WO2024142555A1
WO2024142555A1 PCT/JP2023/037435 JP2023037435W WO2024142555A1 WO 2024142555 A1 WO2024142555 A1 WO 2024142555A1 JP 2023037435 W JP2023037435 W JP 2023037435W WO 2024142555 A1 WO2024142555 A1 WO 2024142555A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
hash value
erasure
storage area
information processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/JP2023/037435
Other languages
English (en)
French (fr)
Inventor
克直 高橋
昌紀 北御門
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Intellectual Property Management Co Ltd
Original Assignee
Panasonic Intellectual Property Management Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Intellectual Property Management Co Ltd filed Critical Panasonic Intellectual Property Management Co Ltd
Priority to JP2024567238A priority Critical patent/JP7777800B2/ja
Priority to EP23911339.2A priority patent/EP4645139A4/en
Publication of WO2024142555A1 publication Critical patent/WO2024142555A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen

Definitions

  • This disclosure relates to an information processing device, an information processing method, an information processing system, and a program.
  • Patent Document 1 and Non-Patent Document 1 disclose methods for verifying data erasure.
  • the current data stored in the storage device after the erasure (e.g., pattern data or random data overwritten onto the original data) is compared with the original data stored in the storage device before the erasure.
  • a large amount of data is compared, which places a large load on the information processing device. Therefore, there is a need to verify whether data has been successfully erased with a smaller load than before.
  • the present disclosure provides an information processing device, an information processing method, an information processing system, and a program that can verify whether data stored in a storage device has been successfully erased with less load than conventional methods.
  • an information processing device it is possible to verify whether data stored in a storage device has been successfully erased with less load than in the past.
  • FIG. 1 is a block diagram showing a configuration of an information processing device 1 according to a first embodiment.
  • 2 is a block diagram showing a configuration of a storage device 13 in FIG. 1 .
  • FIG. 3 is a schematic diagram showing logical blocks 31 of the flash memory 24 of FIG. 2, illustrating an example of an arrangement of the logical blocks 31 that are compared to verify the erasure of data.
  • 13 is a flowchart showing an erasing process according to a first comparative example.
  • 11 is a flowchart showing an erasing process according to a second comparative example.
  • 2 is a flowchart showing an erasure process according to the first embodiment, which is executed by an erasure controller 14 of FIG. 1 .
  • FIG. 1 is a table comparing verification methods according to Comparative Example 1, Comparative Example 2, and Example 1.
  • FIG. 3 is a schematic diagram showing logical blocks 31 of the flash memory 24 of FIG. 2, illustrating a first modified arrangement of logical blocks 31 that are compared to verify the erasure of data;
  • FIG. 3 is a schematic diagram showing logical blocks 31 of the flash memory 24 of FIG. 2, illustrating a second modified arrangement of logical blocks 31 that are compared to verify the erasure of data.
  • 10 is a flowchart showing an erasure process according to a second embodiment, which is executed by an erasure controller 14 of FIG. 1;
  • 10 is a flowchart showing an erasure process according to a third embodiment, which is executed by an erasure controller 14 of FIG. 1 .
  • FIG. 1 is a table comparing verification methods according to Comparative Example 1, Comparative Example 2, and Example 1.
  • FIG. 3 is a schematic diagram showing logical blocks 31 of the flash memory 24 of FIG. 2, illustrating a first modified arrangement
  • FIG. 17; 18 is a diagram showing an example of an image indicating the progress of data erasure, which is displayed on the display device 18 of FIG. 1 by executing the erasure process of FIG. 17.
  • FIG. 18 is a diagram showing another example of an image showing the progress of data erasure, which is displayed on the display device 18 of FIG. 1 by executing the erasure process of FIG. 17.
  • FIG. 11 is a block diagram showing a configuration of an information processing system including an information processing device 1 and a server device according to a third embodiment.
  • FIG. 27 is a block diagram showing the configuration of the server device 2 of FIG. 26.
  • 27 is a flowchart showing an erasure process executed by the server device 2 of FIG. 26.
  • 27 is a flowchart showing an erasure process executed by the information processing device 1 of FIG. 26 .
  • 27 is a flowchart showing a modified example of the erasure process executed by the server device 2 of FIG. 26 .
  • 27 is a flowchart showing a modified example of the erasure process executed by the information processing device 1 of FIG. 26 .
  • 32 is a flowchart showing a subroutine of the pre-processing (step S231) of FIG. 31 .
  • 32 is a flowchart showing a subroutine of the key change process (step S232) of FIG. 31.
  • 32 is a flowchart showing a subroutine
  • the CPU 11 controls the operation of the entire information processing device 1.
  • RAM 12 temporarily stores programs and data necessary for the operation of information processing device 1.
  • the storage device 13 stores data including an operating system, application programs, and user data.
  • the storage device 13 is a self-encrypting drive (SED) that has a function of self-encrypting the data stored therein, for example, a solid-state drive (SSD) that has a self-encrypting function.
  • SSD solid-state drive
  • the non-volatile memory 15 stores the programs and data necessary to execute the erasure process.
  • the non-volatile memory 15 includes a non-volatile storage medium such as a flash memory.
  • the communication device 16 is connected to other external information processing devices so as to be able to communicate with them via a communication line such as a local area network (LAN).
  • LAN local area network
  • the input device 17 receives user input that controls the operation of the information processing device 1.
  • the input device 17 includes, for example, a keyboard and a pointing device.
  • the display device 18 displays information related to the state of the information processing device 1, for example, information related to the erasure of data stored in the storage device 13.
  • the CPU 11, RAM 12, storage device 13, erasure controller 14, non-volatile memory 15, communication device 16, input device 17, and display device 18 are connected to each other via bus 10.
  • FIG. 2 is a block diagram showing the configuration of the storage device 13 in FIG. 1.
  • the storage device 13 includes an input/output controller 21, a random access memory (RAM) 22, a non-volatile memory 23, and a flash memory 24.
  • the input/output controller 21 controls the writing and reading of data to the storage device 13.
  • the RAM 22 is a buffer memory that temporarily stores data to be written to the storage device 13 and data to be read from the storage device 13.
  • the non-volatile memory 23 stores a firmware program (FW) and an encryption key for the storage device 13.
  • the flash memory 24 is a non-volatile storage medium having a storage area.
  • the input/output controller 21 controls the operation of the storage device 13 by executing the firmware program stored in the non-volatile memory 23.
  • the input/output controller 21 writes input data to the storage area of the flash memory 24, and outputs data read from the storage area.
  • the storage device 13 has a self-encryption function.
  • the storage device 13 may encrypt and decrypt data stored in the entire storage area of the flash memory 24, or may encrypt and decrypt only data stored in a part of the storage area.
  • the input/output controller 21 encrypts at least a portion of the data to be written to the storage area of the flash memory 24 using an encryption key stored in the non-volatile memory 23.
  • the input/output controller 21 also decrypts at least a portion of the data read from the storage area of the flash memory 24 using the encryption key.
  • the input/output controller 21 may use hardware, software, or a combination thereof to encrypt and decrypt data.
  • a storage device 13 with a self-encrypting function when the encryption key is changed, data encrypted with the previous encryption key and stored in the storage area of the flash memory 24 cannot be decrypted using the changed encryption key. Therefore, by changing the encryption key of the storage device 13, the original data stored in the storage device 13 becomes inaccessible, and equivalently, the original data stored in the storage device 13 can be erased (cryptographically erased).
  • the input/output controller 21 changes the encryption key stored in the non-volatile memory 23 under the control of the erase controller 14.
  • the encryption key may be changed, for example, by the input/output controller 21 executing a revert command included in the firmware of the storage device 13.
  • the erasure controller 14 compares the current data stored in the storage device 13 after the encryption key is changed with the original data that was stored in the storage device 13 before the encryption key was changed. If the current data differs from the original data, the erasure controller 14 determines that the data has been successfully erased, and if the current data matches the original data, the erasure controller 14 determines that the data has not been erased.
  • FIG. 4 is a flowchart showing the erasure process according to Comparative Example 1.
  • FIG. 4 shows the method of verifying data erasure disclosed in Non-Patent Document 1.
  • the erasure process in FIG. 4 and other figures is started, for example, when an instruction to erase data stored in the storage device 13 is issued via the BIOS or UEFI program.
  • step S1 the erase controller 14 reads the original data of the specified logical block 31 as shown in FIG. 3.
  • the "original data” refers to the data read from the specified logical block 31 of the storage area when the encryption key before the change is stored in the non-volatile memory 23. If this logical block 31 is the target of encryption and decryption, the erase controller 14 obtains the data decrypted using the encryption key before the change. On the other hand, if this logical block 31 is not the target of encryption and decryption, the erase controller 14 obtains the data read from the logical block 31 as is without decrypting it.
  • step S4 the erase controller 14 reads the current data of the specified logical block 31, the same as in step S1.
  • current data refers to the data read from the specified logical block 31 of the storage area when the changed encryption key is stored in the non-volatile memory 23. If this logical block 31 is to be encrypted and decrypted, the erase controller 14 obtains data decrypted using the changed encryption key. On the other hand, if this logical block 31 is not to be encrypted or decrypted, the erase controller 14 obtains the data read from the logical block 31 without decrypting it.
  • step S5 the erasure controller 14 receives the temporarily saved original data from the external information processing device.
  • step S6 the erase controller 14 determines whether the current data is different from the original data, and if YES, proceeds to step S7, and if NO, proceeds to step S8.
  • the current data and the original data are compared for each logical block 31, so this can be performed using a RAM 12 with a size of several GB to several tens of GB.
  • step S7 the erasure controller 14 outputs to the display device 18 a verification result indicating that the data erasure was successful.
  • step S8 the erasure controller 14 outputs to the display device 18 a verification result indicating that the data erasure was unsuccessful.
  • the process in FIG. 4 involves comparing a large amount of data that cannot be stored in the RAM 12, so an external information processing device is required to temporarily save the data. Therefore, there is a need for a method of verifying data erasure that does not require an external information processing device and can be executed only by the information processing device 1.
  • FIG. 5 is a flowchart showing the erasure process according to Comparative Example 2.
  • FIG. 5 shows the method of verifying data erasure disclosed in Patent Document 1.
  • step S11 the erase controller 14 writes known pattern data to a specified logical block 31, for example as shown in FIG. 3.
  • the pattern data includes, for example, a bit string consisting of all 1's, a bit string consisting of all 0's, a random bit string, etc.
  • the pattern data is pre-stored in the non-volatile memory 15.
  • the pattern data is encrypted using the encryption key before the change and written to the specified logical block 31 of the storage area.
  • the erasure controller 14 may determine that data erasure has been successful even if the hash values match in several logical blocks 31. Furthermore, if the hash values differ in more than half of the logical blocks 31, the erasure controller 14 may determine that data erasure has been successful.
  • data of one logical block 31 for every 10 blocks may be specified.
  • data of one logical block 31 for every 20 blocks may be specified.
  • the storage area is divided into 10,000 logical blocks 31 and 10% of the storage area, i.e., data of 1,000 logical blocks 31, is read and verified, the hash value of the data has a total size of 32 KB.
  • the storage area is divided into 1,000 logical blocks 31 and 10% of the storage area, i.e., data of 100 logical blocks 31, is read and verified, the hash value of the data has a total size of 3,200 bytes.
  • the addresses of the logical blocks 31 must also be stored.
  • the address (0 to 9999 or 0 to 999) of each logical block 31 is expressed in 2 bytes. Therefore, when reading and verifying data from 1,000, 500, 100, or 50 logical blocks 31, the total size of the stored addresses will be 2,000 bytes, 1,000 bytes, 200 bytes, or 100 bytes. In any case, the size of the stored addresses is relatively small.
  • the memory area of the storage device 13 is not limited to two partial areas 24a-1 to 24a-2, but may be divided into three or more partial areas.
  • step S31 the erase controller 14 reads the original data of the specified logical block 31, for example, as shown in FIG. 3, FIG. 8, or FIG. 9.
  • step S32 the erase controller 14 calculates a hash value of the original data.
  • One hash value may be calculated for each logical block 31, or one hash value may be calculated for a predetermined number of logical blocks 31.
  • a buffer memory for storing the read data is provided in the RAM 12.
  • the buffer memory has, for example, a size ten times that of the logical block 31.
  • the erase controller 14 writes the read data sequentially to the buffer memory, and calculates the hash value of the data when the buffer memory becomes full. Since the power supply of the information processing device 1 is not turned off during the execution of the process of FIG. 10 (particularly before and after the encryption key is changed), the calculated hash value may be stored in the RAM 12.
  • the calculated hash value may also be stored in the non-volatile memory 15.
  • step S34 the erasure controller 14 reads the current data of the same specified logical block 31 as in step S31. Then, in step S35, the erasure controller 14 calculates a hash value of the current data using the same hash function as that used to calculate the hash value of the original data. As in the case of calculating the hash value of the original data, one hash value may be calculated for each logical block 31, or one hash value may be calculated for a predetermined number of logical blocks 31. In this way, for the same one or more logical blocks 31, the hash value of the original data is calculated (step S32), and the hash value of the current data is calculated (step S35).
  • writing data takes longer than reading data.
  • the processing time can be reduced compared to the case in FIG. 6.
  • the amount of calculation is reduced compared to when one hash value is calculated for each logical block 31, improving processing speed and reducing the memory capacity required to store the calculated hash values.
  • FIG. 11 is a flowchart showing an erasure process according to the third embodiment, which is executed by the erasure controller 14 of FIG.
  • FIG. 12 is a schematic diagram showing the logical blocks 31 of the flash memory 24 of FIG. 2, and shows a case where all the logical blocks 31 are compared to verify the erasure of data.
  • FIG. 13 is a schematic diagram showing the logical blocks 31 of the flash memory 24 of FIG. 2, and shows a case where the logical blocks 31 included in each of the partial areas 24b-1 and 24b-2 are compared to verify the erasure of data.
  • FIG. 14 is a schematic diagram showing the logical blocks 31 of the flash memory 24 of FIG. 2, and shows a case where the logical blocks 31 included in each of the partial areas 24c-1 to 24c-4 are compared to verify the erasure of data.
  • FIG. 15 is a schematic diagram showing the logical blocks 31 of the flash memory 24 of FIG.
  • the entire storage area is divided into eight partial areas 24d-1 to 24d-8, and one hash value is calculated for each of the partial areas 24d-1 to 24d-8. As in the cases of FIGS. 12 to 15, a hash value may be calculated for each of the further divided partial areas.
  • step S43 of FIG. 11 the erasure controller 14 changes the encryption key stored in the non-volatile memory 23.
  • step S44 the erasure controller 14 reads the current data in the storage area. Then, in step S45, the erasure controller 14 calculates a hash value of the entire current data in the storage area.
  • step S47 the erasure controller 14 determines whether or not a comparison has been made with all hash values of the original data calculated in step S42. If YES, the process proceeds to step S50; if NO, the process proceeds to step S48.
  • step S49 the erasure controller 14 outputs to the display device 18 a verification result indicating that the data erasure was successful.
  • step S50 the erasure controller 14 outputs to the display device 18 a verification result indicating that the data erasure was unsuccessful.
  • the collision of hash values may be avoided by comparing the hash values of smaller partial areas.
  • Fig. 16 is a block diagram showing the configuration of an information processing device 1A according to a modified example of the first embodiment.
  • the information processing device 1A further includes a device interface (I/F) 19 for connecting to an external device.
  • the device interface 19 is, for example, a USB.
  • the device interface 19 is connected to an external storage device 41 such as a USB memory, a solid state drive, or a hard disk drive.
  • the calculated hash value of the original data may be stored in the external storage device 41 instead of being stored in the RAM 12 or the non-volatile memory 15. Since it is difficult to infer the original data from the hash value, even if the external storage device 41 is lost or stolen, there is a low possibility that confidential data will be leaked.
  • the calculated hash value of the original data may be transmitted to and stored in an external information processing device connected via the communication device 16.
  • the information processing device 1, 1A may further include a drive device for a storage medium such as a CD or DVD, in which case the calculated hash value of the original data may be stored on a CD, DVD, or the like.
  • the storage area may include a plurality of partial areas obtained by logically dividing the storage area, each of which includes a plurality of logically contiguous blocks.
  • the erasure controller 14 designates, for each of the plurality of partial areas, a different proportion of logical blocks from the plurality of logical blocks included in the partial area.
  • the first and second hash values are calculated based on the data stored in the designated plurality of blocks.
  • the storage area may include multiple blocks.
  • the first and second hash values are calculated based on data stored in multiple blocks that are logically adjacent to each other.
  • the storage area may include a plurality of partial areas obtained by logically dividing the storage area into a plurality of sizes different from each other.
  • the first hash value is calculated for each of the plurality of partial areas having a plurality of sizes based on the data stored in the partial area.
  • the erasure controller 14 calculates a second hash value for each of the plurality of partial areas having a first size among the plurality of sizes based on the data stored in the partial area. If the second hash value for the partial area having the first size is different from the first hash value, the erasure controller 14 outputs a verification result indicating that the data stored in the storage device 13 has been successfully erased.
  • the information processing method includes a step of outputting a verification result indicating that erasure of the data stored in the storage device 13 was successful if the second hash value is different from the first hash value.
  • the information processing method includes a step of outputting a verification result indicating that erasure of the data stored in the storage device 13 was unsuccessful if the second hash value matches the first hash value.
  • step S115 the erasure controller 14 outputs the number of logical blocks 31 for which the processing of steps S112 to S114 has been executed to the display device 18 in a predetermined format.
  • step S122 the erasure controller 14 outputs to the display device 18 in a specified format a message indicating that the encryption key change has been completed.
  • FIG. 21 is a diagram showing an example of an image showing the progress of data erasure, displayed on the display device 18 of FIG. 1 by executing the erasure process of FIG. 17.
  • FIG. 21(a) is an image showing the progress of preprocessing.
  • the progress of preprocessing is represented, for example, by a progress bar showing the ratio of the number of processed logical blocks 31 to the number of specified logical blocks 31, i.e., i1/N1.
  • FIG. 21(b) is an image showing the progress of key change processing.
  • the progress of key change processing is represented, for example, by a progress bar showing whether the change of the encryption key has been completed.
  • FIG. 21(c) is an image showing the progress of verification processing.
  • the progress of verification processing is represented, for example, by a progress bar showing the ratio of the number of verified logical blocks 31 to the number of specified logical blocks 31, i.e., i2/N1.
  • FIG. 24 is a flowchart showing a second modified example of the verification process of FIG. 17.
  • the process of FIG. 24 includes steps S151 to S156 in addition to the steps of FIG. 20.
  • parameter j2 increases or decreases depending on whether the hash values match or mismatch. Therefore, if hash value collisions occur consecutively in several of the specified logical blocks 31 that are close to each other, parameter j2 increases. In this case, it is considered that the storage area containing these logical blocks 31 is not subject to encryption, and the data is stored in plain text. On the other hand, if hash value matches and mismatches occur almost alternately in several of the specified logical blocks 31 that are close to each other, parameter j2 does not increase. In this case, the hash value collisions are considered to be accidental.
  • step S162 the erasure controller 14 initializes parameters i3 and i4 to 1, and parameter j3 to 0.
  • the number of collisions of hash values is counted in a group of a predetermined number of logical blocks 31 that are close to each other among the specified logical blocks 31.
  • Parameter i3 indicates the position of the group of logical blocks 31.
  • the number of collisions of hash values in a certain group is counted using parameter j3.
  • step S163 the erasure controller 14 determines whether the hash value of the current data in the i3+i4th logical block 31 matches the hash value of the original data based on the address stored in step S161, and if YES, proceeds to step S164, and if NO, proceeds to step S165.
  • step S164 the erasure controller 14 increments the parameter j3 by 1.
  • step S165 the erasure controller 14 determines whether the parameter i4 has exceeded the threshold value N4, i.e., whether all logical blocks 31 contained in the current group have been processed; if YES, the process proceeds to step S167; if NO, the process proceeds to step S166.
  • step S166 the erasure controller 14 increments parameter i4 by 1 and repeats steps S163 to S165.
  • step S167 the erasure controller 14 determines whether the parameter j3 exceeds the threshold value Th3. If YES, the process proceeds to step S140. If NO, the process proceeds to step S168.
  • step S168 the erasure controller 14 determines whether the parameter i3 has exceeded the threshold value N3, i.e., whether the group of logical blocks 31 has been shifted to all positions; if YES, the process proceeds to step S139; if NO, the process proceeds to step S169.
  • the threshold value Th3 in step S167 may be set to a value close to the number N3 of logical blocks 31 included in the group.
  • the erasure controller 14 may calculate j3/N3, in which case the threshold value Th3 may be set to a value close to 1, for example.
  • the erasure controller 14 may output the progress of erasure of the data stored in the storage device 13 to the display device 18 .
  • information processing devices 1-1 to 1-3 are collectively referred to as "information processing device 1.”
  • FIG. 27 is a block diagram showing the configuration of the server device 2 in FIG. 26.
  • the server device 2 includes a bus 120, a CPU 121, a RAM 122, a storage device 123, a communication device 126, an input device 127, and a display device 128.
  • the CPU 121 controls the operation of the entire server device 2, and also manages the erasure of data stored in the storage device 13 of each information processing device 1.
  • the RAM 122 temporarily stores programs and data necessary for the operation of the server device 2.
  • the storage device 123 is a non-volatile storage medium that stores programs necessary for the operation of the server device 2.
  • the communication device 126 is communicably connected to each information processing device 1 via the communication line 3.
  • the input device 127 receives user input that controls the operation of the server device 2.
  • the input device 127 includes, for example, a keyboard and a pointing device.
  • the display device 128 displays information related to the erasure of data stored in the storage device 13 of each information processing device 1.
  • the CPU 121, RAM 122, storage device 123, communication device 126, input device 127, and display device 128 are connected to each other via a bus 120.
  • step S201 of FIG. 28 the CPU 121 of the server device 2 transmits a control signal to the information processing device 1 to instruct the data to be erased.
  • step S211 of FIG. 29 the erasure controller 14 of the information processing device 1 receives a control signal from the server device 2 instructing the data erasure.
  • the erasure controller 14 executes steps S212 to S219 in accordance with the control signal.
  • Steps S212 to S217 are the same as steps S31 to S36 of FIG. 10. If it is determined in step S217 that the hash value of the current data is different from the hash value of the original data, the process proceeds to step S218; otherwise, the process proceeds to step S219.
  • step S218 the erasure controller 14 transmits a notification signal including a verification result indicating that the data erasure was successful to the server device 2.
  • step S219 the erasure controller 14 transmits a notification signal including a verification result indicating that the data erasure was unsuccessful to the server device 2.
  • step S202 of FIG. 28 the CPU 121 of the server device 2 receives a notification signal indicating the verification result from the information processing device 1.
  • step S203 the CPU 121 outputs the verification result to the display device 128.
  • the deletion of data stored in the storage devices 13 of multiple information processing devices 1 can be centrally controlled by the server device 2, and it is also possible to verify with a small load whether the data deletion was successful.
  • the progress of data erasure may be output to the display device 128 of the server device 2.
  • FIG. 30 is a flowchart showing a modified example of the erasure process executed by the server device 2 of FIG. 26.
  • FIG. 31 is a flowchart showing a modified example of the erasure process executed by the information processing device 1 of FIG. 26.
  • the process of FIG. 30 includes steps S221 to S223 instead of step S202 of FIG. 28.
  • the process of FIG. 31 includes steps S231 to S233 instead of steps S212 to S219 of FIG. 29.
  • step S201 of FIG. 30 the CPU 121 of the server device 2 sends a control signal to the information processing device 1 to instruct the data to be erased.
  • step S211 of FIG. 31 the erasure controller 14 of the information processing device 1 receives a control signal from the server device 2 instructing the data erasure.
  • the erasure controller 14 executes steps S231 to S233 in accordance with the control signal. Steps S231 to S233 are similar to steps S101 to S103 of FIG. 17, except that the progress of the data erasure and the verification results are sent to the server device 2 instead of being output to the display device 18 of the information processing device 1.
  • FIG. 32 is a flowchart showing a subroutine of the pre-processing (step S231) of FIG. 31.
  • the process of FIG. 32 includes step S115A instead of step S115 of FIG. 18.
  • the erasure controller 14 transmits a notification signal to the server device 2, which includes the number of logical blocks 31 for which the processes of steps S112 to S114 have been executed, as the progress of the data erasure.
  • FIG. 33 is a flowchart showing a subroutine of the key change process (step S232) of FIG. 31.
  • the process of FIG. 33 includes step S122A instead of step S122 of FIG. 19.
  • the erasure controller 14 transmits a notification signal to the server device 2 indicating that the encryption key change has been completed as the progress of the data erasure.
  • FIG. 34 is a flowchart showing a subroutine of the verification process (step S233) of FIG. 31.
  • the process of FIG. 34 includes steps S136A, S139A, and S140A instead of steps S136, S139, and S140 of FIG. 20.
  • step S136A the erasure controller 14 transmits a notification signal including the number of verified logical blocks 31 as the progress of data erasure to the server device 2.
  • step S139A the erasure controller 14 transmits a notification signal including a verification result indicating that data erasure was successful to the server device 2.
  • the erasure controller 14 transmits a notification signal including a verification result indicating that data erasure was unsuccessful to the server device 2.
  • step S221 of FIG. 30 the CPU 121 of the server device 2 receives a notification signal including the progress of data erasure from the information processing device 1.
  • step S222 the CPU 121 outputs the progress of data erasure to the display device 128 in a predetermined format, similar to when outputting to the display device 18 of the information processing device 1.
  • step S223 the CPU 121 determines whether or not data erasure has been completed, i.e., whether or not a notification signal indicating a verification result has been received from the information processing device 1; if YES, the process proceeds to step S203; if NO, the process returns to step S221.
  • step S203 the CPU 121 outputs the verification result to the display device 128.
  • the information processing system 100 according to the third embodiment includes the information processing device 1 according to the first embodiment, and a server device 2 connected via a communication line to the information processing device 1.
  • An erasure controller 14 controls erasure of data stored in the storage device 13 in accordance with a control signal received from the server device 2.
  • the erasure controller 14 may transmit a first notification signal including the verification result to the server device 2.
  • the server device 2 may include a display device 128 that outputs the verification result.
  • the erasure controller 14 may transmit a second notification signal including the progress of erasing the data stored in the storage device 13 to the server device 2.
  • the display device 128 displays the progress.
  • the storage device 13 is not limited to a solid state drive, but may be a non-volatile storage medium such as a hard disk drive (HDD) with a self-encrypting function.
  • HDD hard disk drive
  • the verification results are not limited to being output to the display device 18, but may also be output to an external information processing device via the communication device 16.
  • the erasure controller 14 may always specify the first 32 bytes of the storage area.
  • the erasure controller 14 may add a salt (a predetermined keyword) to the data when calculating the hash value.
  • the erasure controller 14 may shrink the size of the logical block 31 to, for example, 1/10.
  • the components described in the attached drawings and detailed description may include not only components essential for solving the problem, but also components that are not essential for solving the problem in order to illustrate the above technology. Therefore, just because these non-essential components are described in the attached drawings or detailed description, it should not be immediately determined that these non-essential components are essential.
  • An information processing device includes: A storage device having a function of self-encrypting data to be stored therein; an erase controller for controlling erasure of data stored in the storage device;
  • the storage device includes: A storage medium having a storage area; a non-volatile memory storing an encryption key; an input/output controller that writes input data to the storage area, outputs data read from the storage area, encrypts at least a portion of the data to be written to the storage area using the encryption key, and decrypts at least a portion of the data read from the storage area using the encryption key;
  • the erase controller includes: If a first encryption key is stored in the non-volatile memory, obtaining a first hash value calculated based on data to be stored at a specified position in the storage area or based on data stored at a specified position in the storage area; controlling the storage device to change the first encryption key stored in the non-volatile memory to a second encryption key; if the second encryption key is
  • An information processing device is the information processing device according to the first aspect, the erase controller controls the storage device to store predetermined pattern data at the specified location in the storage area; The first hash value is calculated based on the pattern data.
  • An information processing device is the information processing device according to the first aspect, The erasure controller calculates the first hash value based on data read from the specified location in the storage area.
  • An information processing device is the information processing device according to the third aspect, the storage area includes a plurality of blocks; The first and second hash values are calculated for each of a predetermined number of blocks based on the data stored in the blocks.
  • An information processing device is an information processing device according to any one of the first to fourth aspects, the storage area includes a plurality of partial areas obtained by logically dividing the storage area, each of the partial areas including a plurality of logically contiguous blocks; the erasure controller designates, for each of the plurality of partial regions, a different ratio of blocks among a plurality of blocks included in the partial region; The first and second hash values are calculated based on data stored in the specified plurality of blocks.
  • An information processing device is an information processing device according to any one of the first to fourth aspects, the storage area includes a plurality of blocks; The first and second hash values are calculated based on data stored in a plurality of blocks that are logically adjacent to each other.
  • An information processing device is the information processing device according to the first aspect, the storage area includes a plurality of partial areas obtained by logically dividing the storage area into a plurality of partial areas each having a different size; the first hash value is calculated for each of the plurality of partial regions having the plurality of sizes based on data stored in the partial region;
  • the erase controller includes: calculating the second hash value for each of a plurality of partial regions having a first size among the plurality of sizes based on data stored in the partial region; outputting a verification result indicating that the data stored in the storage device has been successfully erased if the second hash value is different from the first hash value for the partial area having the first size; if the second hash value matches the first hash value for a partial area having the first size, calculate the second hash value for each of a plurality of partial areas having a second size smaller than the first size among the plurality of sizes based on data stored in the partial area; If the second hash value is different from
  • a first display device is provided for outputting the verification result.
  • An information processing device is the information processing device according to the eighth aspect,
  • the erasure controller outputs a progress of erasure of the data stored in the storage device to the first display device.
  • An information processing system includes: An information processing device according to one of the first to ninth aspects; a server device connected to the information processing device via a communication line, The erasure controller controls erasure of data stored in the storage device according to a control signal received from the server device.
  • the erasure controller transmits a first notification signal including the verification result to the server device;
  • the server device includes a second display device that outputs the verification result.
  • the erasure controller transmits a second notification signal to the server device, the second notification signal including a progress of erasure of the data stored in the storage device;
  • the second display device displays the progress.
  • An information processing method includes: 1. An information processing method for controlling erasure of data stored in a storage device having a self-encrypting function, comprising: The storage device includes: A storage medium having a storage area; a non-volatile memory storing an encryption key; an input/output controller that writes input data to the storage area, outputs data read from the storage area, encrypts at least a portion of the data to be written to the storage area using the encryption key, and decrypts at least a portion of the data read from the storage area using the encryption key; The information processing method includes: obtaining a first hash value calculated based on data to be stored at a specified location in the storage area or based on data stored at a specified location in the storage area when a first encryption key is stored in the non-volatile memory; controlling the storage device to change the first encryption key stored in the non-volatile memory to a second encryption key; if the second encryption key is stored in the non-volatile memory, calculating
  • a program including instructions executed by a processor implemented in an information processing device,
  • the information processing device further includes a storage device having a self-encryption function for data to be stored therein;
  • the storage device includes: A storage medium having a storage area; a non-volatile memory storing an encryption key; an input/output controller that writes input data to the storage area, outputs data read from the storage area, encrypts at least a portion of the data to be written to the storage area using the encryption key, and decrypts at least a portion of the data read from the storage area using the encryption key;
  • the instructions cause the processor to: When a first encryption key is stored in the non-volatile memory, obtaining a first hash value calculated based on data to be stored at a specified location in the storage area or based on data stored at a specified location in the storage area; controlling the storage device to change the first encryption key stored in the non-volatile memory to a second encryption key; calculating a second hash value
  • An information processing device is useful for verifying whether data stored in a storage device having a self-encrypting function has been successfully erased.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

消去コントローラ(14)は、記憶領域の指定された位置に格納されるべき又は格納されたデータに基づいて計算された第1のハッシュ値を取得する。消去コントローラ(14)は、不揮発性メモリ(23)に格納された第1の暗号鍵を第2の暗号鍵に変更するように記憶装置(13)を制御する。消去コントローラ(14)は、記憶領域の指定された位置から読み出されたデータに基づいて第2のハッシュ値を計算する。消去コントローラ(14)は、第2のハッシュ値が第1のハッシュ値とは異なる場合、記憶装置(13)に格納されたデータの消去に成功したことを示す検証結果を出力する。消去コントローラ(14)は、第2のハッシュ値が第1のハッシュ値に一致する場合、記憶装置(13)に格納されたデータの消去に失敗したことを示す検証結果を出力する。

Description

情報処理装置
 本開示は、情報処理装置、情報処理方法、情報処理システム、及びプログラムに関する。
 パーソナルコンピュータなどの情報処理装置を廃棄する場合、機密データの漏洩を防ぐために、記憶装置に格納されたデータを消去し(又は等価的に、データにアクセス不能にし)、データが確実に消去されたことを検証することが求められる。例えば、特許文献1及び非特許文献1は、データ消去を検証する方法を開示している。
特許第7096829号公報
Richard Kissel et al., "Guidelines for Media Sanitization", NIST Special Publication 800-88, Revision 1, National Institute of Standards and Technology, December 2014[令和4年12月1日検索],インターネット<URL:http://dx.doi.org/10.6028/NIST.SP.800-88r1>
 従来、データの消去に成功したか否かを検証するためには、消去後に記憶装置に格納されている現在のデータ(例えば、元データに上書きされたパターンデータ又はランダムデータ)が、消去前に記憶装置に格納されていた元データと比較される。この場合、大量のデータを比較するために、情報処理装置に大きな負荷がかかる。従って、データの消去に成功したか否かを従来よりも小さな負荷で検証することが求められる。
 本開示は、記憶装置に格納されたデータの消去に成功したか否かを従来よりも小さな負荷で検証することができる情報処理装置、情報処理方法、情報処理システム、及びプログラムを提供する。
 本開示の一態様に係る情報処理装置は、
 格納されるデータの自己暗号化機能を有する記憶装置と、
 前記記憶装置に格納されたデータの消去を制御する消去コントローラとを備え、
 前記記憶装置は、
 記憶領域を有する記憶媒体と、
 暗号鍵を格納した不揮発性メモリと、
 入力されたデータを前記記憶領域に書き込み、前記記憶領域から読み出されたデータを出力し、前記記憶領域に書き込まれるデータの少なくとも一部を前記暗号鍵を用いて暗号化し、前記記憶領域から読み出されたデータの少なくとも一部を前記暗号鍵を用いて復号する入出力コントローラとを備え、
 前記消去コントローラは、
 前記不揮発性メモリに第1の暗号鍵が格納されている場合、前記記憶領域の指定された位置に格納されるべきデータに基づいて、又は、前記記憶領域の指定された位置に格納されているデータに基づいて計算された第1のハッシュ値を取得し、
 前記不揮発性メモリに格納された前記第1の暗号鍵を第2の暗号鍵に変更するように前記記憶装置を制御し、
 前記不揮発性メモリに前記第2の暗号鍵が格納されている場合、前記記憶領域の前記指定された位置から読み出されたデータに基づいて第2のハッシュ値を計算し、
 前記第2のハッシュ値が前記第1のハッシュ値とは異なる場合、前記記憶装置に格納されたデータの消去に成功したことを示す検証結果を出力し、
 前記第2のハッシュ値が前記第1のハッシュ値に一致する場合、前記記憶装置に格納されたデータの消去に失敗したことを示す検証結果を出力する。
 本開示の一態様に係る情報処理装置によれば、記憶装置に格納されたデータの消去に成功したか否かを従来よりも小さな負荷で検証することができる。
第1の実施形態に係る情報処理装置1の構成を示すブロック図である。 図1の記憶装置13の構成を示すブロック図である。 図2のフラッシュメモリ24の論理ブロック31を示す概略図であって、データの消去を検証するために比較される論理ブロック31の配置の一例を示す図である。 比較例1に係る消去処理を示すフローチャートである。 比較例2に係る消去処理を示すフローチャートである。 図1の消去コントローラ14によって実行される実施例1に係る消去処理を示すフローチャートである。 比較例1、比較例2、及び実施例1に係る検証方法を比較する表である。 図2のフラッシュメモリ24の論理ブロック31を示す概略図であって、データの消去を検証するために比較される論理ブロック31の配置の第1の変形例を示す図である。 図2のフラッシュメモリ24の論理ブロック31を示す概略図であって、データの消去を検証するために比較される論理ブロック31の配置の第2の変形例を示す図である。 図1の消去コントローラ14によって実行される実施例2に係る消去処理を示すフローチャートである。 図1の消去コントローラ14によって実行される実施例3に係る消去処理を示すフローチャートである。 図2のフラッシュメモリ24の論理ブロック31を示す概略図であって、データの消去を検証するためにすべての論理ブロック31が比較される場合を示す図である。 図2のフラッシュメモリ24の論理ブロック31を示す概略図であって、データの消去を検証するために部分領域24b-1,24b-2のそれぞれに含まれる論理ブロック31が比較される場合を示す図である。 図2のフラッシュメモリ24の論理ブロック31を示す概略図であって、データの消去を検証するために部分領域24c-1~24c-4のそれぞれに含まれる論理ブロック31が比較される場合を示す図である。 図2のフラッシュメモリ24の論理ブロック31を示す概略図であって、データの消去を検証するために部分領域24d-1~24d-8のそれぞれに含まれる論理ブロック31が比較される場合を示す図である。 第1の実施形態の変形例に係る情報処理装置1Aの構成を示すブロック図である。 第2の実施形態に係る情報処理装置1によって実行される消去処理を示すフローチャートである。 図17の前処理(ステップS101)のサブルーチンを示すフローチャートである。 図17の鍵変更処理(ステップS102)のサブルーチンを示すフローチャートである。 図17の検証処理(ステップS103)のサブルーチンを示すフローチャートである。 図17の消去処理を実行することによって図1の表示装置18に表示される、データ消去の進捗度を示す画像の一例を示す図である。 図17の消去処理を実行することによって図1の表示装置18に表示される、データ消去の進捗度を示す画像の他の一例を示す図である。 図17の検証処理の第1の変形例を示すフローチャートである。 図17の検証処理の第2の変形例を示すフローチャートである。 図17の検証処理の第3の変形例を示すフローチャートである。 第3の実施形態に係る情報処理装置1及びサーバ装置を含む情報処理システムの構成を示すブロック図である。 図26のサーバ装置2の構成を示すブロック図である。 図26のサーバ装置2によって実行される消去処理を示すフローチャートである。 図26の情報処理装置1によって実行される消去処理を示すフローチャートである。 図26のサーバ装置2によって実行される消去処理の変形例を示すフローチャートである。 図26の情報処理装置1によって実行される消去処理の変形例を示すフローチャートである。 図31の前処理(ステップS231)のサブルーチンを示すフローチャートである。 図31の鍵変更処理(ステップS232)のサブルーチンを示すフローチャートである。 図31の検証処理(ステップS233)のサブルーチンを示すフローチャートである。
 以下、適宜図面を参照しながら、実施形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。
 なお、発明者(ら)は、当業者が本開示を十分に理解するために添付図面および以下の説明を提供するのであって、これらによって特許請求の範囲に記載の主題を限定することを意図するものではない。
[第1の実施形態]
[第1の実施形態の構成]
 図1は、第1の実施形態に係る情報処理装置1の構成を示すブロック図である。情報処理装置1は、バス10、中央処理装置(CPU)11、ランダムアクセスメモリ(RAM)12、記憶装置13、消去コントローラ14、不揮発性メモリ15、通信装置16、入力装置17、及び表示装置18を備える。
 CPU11は、情報処理装置1全体の動作を制御する。
 RAM12は、情報処理装置1の動作に必要なプログラム及びデータを一時的に記憶する。
 記憶装置13は、オペレーティングシステム、アプリケーションプログラム、及びユーザデータを含むデータを格納する。記憶装置13は、格納されるデータの自己暗号化機能を有する自己暗号化ドライブ(Self-Encrypting Drive:SED)であり、例えば、自己暗号化機能を有するソリッドステートドライブ(SSD)である。
 消去コントローラ14は、図6等を参照して後述する消去処理を実行することで、記憶装置13に格納されたデータの消去を制御する。本開示では、「消去」とは、記憶装置13に格納された少なくとも一部のデータにアクセス不能にすることを意味する。消去コントローラ14は、例えば、マイクロプロセッサを含む。
 不揮発性メモリ15は、消去処理の実行に必要なプログラム及びデータを格納する。不揮発性メモリ15は、例えば、フラッシュメモリなどの不揮発性記憶媒体を含む。
 消去処理のためのプログラムは、UEFI(Unified Extensible Firmware Interface)又はBIOS(Basic Input/Output System)プログラムのような情報処理装置1のファームウェアプログラムに組み込まれてもよい。この場合、消去処理のためのプログラムは、UEFI又はBIOSプログラムと同じ記憶媒体に格納されてもよく、UEFI又はBIOSプログラムと同じマイクロプロセッサによって実行されてもよい。
 通信装置16は、ローカルエリアネットワーク(LAN)などの通信回線を介して、外部の他の情報処理装置と通信可能に接続される。
 入力装置17は、情報処理装置1の動作を制御するユーザ入力を受ける。入力装置17は、例えば、キーボード及びポインティングデバイスを含む。
 表示装置18は、情報処理装置1の状態に関連する情報、例えば、記憶装置13に格納されたデータの消去に関連する情報を表示する。
 CPU11、RAM12、記憶装置13、消去コントローラ14、不揮発性メモリ15、通信装置16、入力装置17、及び表示装置18は、バス10を介して互いに接続される。
 情報処理装置1は、例えば、パーソナルコンピュータである。
 図2は、図1の記憶装置13の構成を示すブロック図である。記憶装置13は、入出力コントローラ21、ランダムアクセスメモリ(RAM)22、不揮発性メモリ23、及びフラッシュメモリ24を備える。入出力コントローラ21は、記憶装置13に対するデータの書き込み及び読み出しを制御する。RAM22は、記憶装置13に対して書き込まれるデータ及び読み出されるデータを一時的に格納するバッファメモリである。不揮発性メモリ23は、記憶装置13のファームウェアプログラム(FW)と、暗号鍵とを格納する。フラッシュメモリ24は、記憶領域を有する不揮発性の記憶媒体である。入出力コントローラ21は、不揮発性メモリ23に格納されたファームウェアプログラムを実行することで、記憶装置13の動作を制御する。入出力コントローラ21は、入力されたデータをフラッシュメモリ24の記憶領域に書き込み、記憶領域から読み出されたデータを出力する。
 前述したように、記憶装置13は自己暗号化機能を有する。記憶装置13は、フラッシュメモリ24の記憶領域全体に格納されるデータを暗号化及び復号してもよく、記憶領域の一部に格納されるデータのみを暗号化及び復号してもよい。入出力コントローラ21は、フラッシュメモリ24の記憶領域に書き込まれるデータの少なくとも一部を不揮発性メモリ23に格納された暗号鍵を用いて暗号化する。また、入出力コントローラ21は、フラッシュメモリ24の記憶領域から読み出されたデータの少なくとも一部を暗号鍵を用いて復号する。入出力コントローラ21は、データの暗号化及び復号のために、ハードウェア、ソフトウェア、又はそれらの組み合わせを用いてもよい。
 このような記憶装置13を備えたことにより、情報処理装置1は、オペレーティングシステム及びアプリケーションプログラムによらずに、記憶装置13に格納されるデータを暗号化及び復号することができる。
 自己暗号化機能を有する記憶装置13では、暗号鍵を変更すると、変更前の暗号鍵によって暗号化されてフラッシュメモリ24の記憶領域に格納されたデータは、変更後の暗号鍵を用いて復号できなくなる。従って、記憶装置13の暗号鍵を変更することにより、記憶装置13に格納された元データにアクセス不能になり、等価的に、記憶装置13に格納された元データを消去(暗号的消去)することができる。入出力コントローラ21は、消去コントローラ14の制御下で、不揮発性メモリ23に格納された暗号鍵を変更する。暗号鍵は、例えば、入出力コントローラ21が記憶装置13のファームウェアに含まれるrevertコマンドを実行することにより変更されてもよい。
 前述したように、記憶領域の一部の領域に格納されるデータのみを暗号化及び復号する場合、暗号化及び復号されないデータは、暗号鍵を変更してもアクセス不能にならず、従って、消去されない。データの消去に成功したか否かを検証するためには、消去コントローラ14は、暗号鍵の変更後に記憶装置13に格納されている現在のデータを、暗号鍵の変更前に記憶装置13に格納されていた元データと比較する。現在のデータが元データと異なる場合、消去コントローラ14はデータの消去に成功したと判断し、現在のデータが元データに一致する場合、消去コントローラ14はデータの消去に失敗したと判断する。
 図3は、図2のフラッシュメモリ24の論理ブロック31を示す概略図であって、データの消去を検証するために比較される論理ブロック31の配置の一例を示す図である。フラッシュメモリ24の記憶領域は、複数の論理ブロック31を含む。各論理ブロック31は、記憶領域を論理的に分割した部分領域である。例えば、1TBの記憶領域は、100MBのサイズをそれぞれ有する10000個の論理ブロック31に分割されてもよい。消去コントローラ14は、データの消去に成功したか否かを検証するために、暗号鍵の変更前及び変更後のデータを、記憶領域全体について比較してもよく、記憶領域の一部(例えば、記憶領域全体の10%に相当する1000個の論理ブロック31)について比較してもよい。後者の場合、比較される論理ブロック31は、所定の規則に従って指定されてもよく(例えば、図3のハッチングされた論理ブロック31)、ランダムに指定されてもよい。
 図3等では、フラッシュメモリ24の記憶領域を2次元的に示すが、記憶領域は連続した一連のメモリ空間と考えてもよい。
[比較例]
 ここで、図4及び図5を参照して、従来技術に係るデータ消去の検証について説明する。説明のため、図1の情報処理装置1が、図4及び図5に示す消去処理を実行する場合を想定する。
 図4は、比較例1に係る消去処理を示すフローチャートである。図4は、非特許文献1に開示されたデータ消去の検証方法を示す。
 図4他の消去処理は、例えば、BIOS又はUEFIプログラムを介して記憶装置13に格納されたデータの消去が指示されたときに開始される。
 ステップS1において、消去コントローラ14は、例えば図3に示すように指定された論理ブロック31の元データを読み出す。ここで、「元データ」は、変更前の暗号鍵が不揮発性メモリ23に格納されている場合に、記憶領域の指定された論理ブロック31から読み出されたデータを示す。この論理ブロック31が暗号化及び復号の対象である場合、消去コントローラ14は、変更前の暗号鍵を用いて復号されたデータを取得する。一方、この論理ブロック31が暗号化及び復号の対象ではない場合、消去コントローラ14は、論理ブロック31から読み出されたデータを復号せずにそのまま取得する。一般に、例えば、RAM12が数GB~数十GBのサイズを有し、記憶装置13が1TBの記憶領域を有し、記憶領域の10%、すなわち100GBのデータを読み出す場合、そのすべてをRAM12に保持することはできない。従って、ステップS2において、消去コントローラ14は、元データを一時的に退避するため、元データを外部の情報処理装置に送信する。
 ステップS3において、消去コントローラ14は、不揮発性メモリ23に格納された暗号鍵を変更する。本明細書では、変更前の暗号鍵を「第1の暗号鍵」とも呼び、変更後の暗号鍵を「第2の暗号鍵」とも呼ぶ。
 ステップS4において、消去コントローラ14は、ステップS1の場合と同じ指定された論理ブロック31の現在のデータを読み出す。ここで、「現在のデータ」は、変更後の暗号鍵が不揮発性メモリ23に格納されている場合に、記憶領域の指定された論理ブロック31から読み出されたデータを示す。この論理ブロック31が暗号化及び復号の対象である場合、消去コントローラ14は、変更後の暗号鍵を用いて復号されたデータを取得する。一方、この論理ブロック31が暗号化及び復号の対象ではない場合、消去コントローラ14は、論理ブロック31から読み出されたデータを復号せずにそのまま取得する。
 ステップS5において、消去コントローラ14は、外部の情報処理装置から、一時的に退避した元データを受信する。
 ステップS6において、消去コントローラ14は、現在のデータが元データと異なるか否かを判断し、YESのときはステップS7に進み、NOのときはステップS8に進む。ここで、現在のデータ及び元データは論理ブロック31ごとに比較されるので、数GB~数十GBのサイズを有するRAM12を用いて実行可能である。
 ステップS7において、消去コントローラ14は、データの消去に成功したことを示す検証結果を表示装置18に出力する。また、ステップS8において、消去コントローラ14は、データの消去に失敗したことを示す検証結果を表示装置18に出力する。
 図4の処理によれば、RAM12に格納できない大量のデータを比較するので、データを一時的に退避するために外部の情報処理装置が必要とされる。従って、外部の情報処理装置を必要とせず、情報処理装置1のみで実行可能なデータ消去の検証方法が求められる。
 図5は、比較例2に係る消去処理を示すフローチャートである。図5は、特許文献1に開示されたデータ消去の検証方法を示す。
 ステップS11において、消去コントローラ14は、例えば図3に示すように指定された論理ブロック31に既知のパターンデータを書き込む。パターンデータは、例えば、すべて1からなるビット列、すべて0からなるビット列、ランダムなビット列、などを含む。パターンデータは、不揮発性メモリ15に予め格納されている。パターンデータは、変更前の暗号鍵を用いて暗号化されて記憶領域の指定された論理ブロック31に書き込まれる。
 ステップS12において、消去コントローラ14は、不揮発性メモリ23に格納された暗号鍵を変更する。
 ステップS13において、消去コントローラ14は、ステップS11の場合と同じ指定された論理ブロック31の現在のデータを読み出す。
 ステップS14において、消去コントローラ14は、現在のデータがパターンデータと異なるか否かを判断し、YESのときはステップS15に進み、NOのときはステップS16に進む。
 ステップS15において、消去コントローラ14は、データの消去に成功したことを示す検証結果を表示装置18に出力する。また、ステップS16において、消去コントローラ14は、データの消去に失敗したことを示す検証結果を表示装置18に出力する。
 パターンデータは、上述したように、変更前の暗号鍵が不揮発性メモリ23に格納されている場合に、記憶領域の指定された論理ブロック31に書き込まれる。従って、パターンデータは、実質的に、図4の処理の「元データ」、すなわち、変更前の暗号鍵が不揮発性メモリ23に格納されている場合に、記憶領域の指定された論理ブロック31から読み出されたデータに対応する。
 図5の処理によれば、既知のパターンデータを用いることにより、外部の情報処理装置を必要とせず、情報処理装置1のみで実行可能である。しかしながら、図5の処理は、図4の処理と同様に、大量のデータを比較するために、情報処理装置1に大きな負荷がかかる。従って、データの消去に成功したか否かをより小さな負荷で検証できる消去処理が求められる。
 次いで、データの消去に成功したか否かをより小さな負荷で検証できる、実施形態に係る消去処理について説明する。
[実施例1]
 図6は、図1の消去コントローラ14によって実行される実施例1に係る消去処理を示すフローチャートである。
 ステップS21において、消去コントローラ14は、例えば図3に示すように指定された論理ブロック31に既知のパターンデータを書き込む。不揮発性メモリ15は、パターンデータを格納するとともに、任意のハッシュ関数を用いて計算されたパターンデータのハッシュ値を予め格納している。ハッシュ関数は、例えば、SHA-256などのSHA-2関数であってもよい。SHA-256関数は、最長で2(64-1)ビットまでの任意長のデータから、256ビット(32バイト)のハッシュ値を生成する。
 ステップS22において、消去コントローラ14は、不揮発性メモリ23に格納された暗号鍵を変更する。
 ステップS23において、消去コントローラ14は、ステップS21の場合と同じ指定された論理ブロック31の現在のデータを読み出す。次いで、ステップS24において、消去コントローラ14は、パターンデータのハッシュ値を計算するために用いたハッシュ関数と同じハッシュ関数を用いて、現在のデータのハッシュ値を計算する。
 ステップS25において、消去コントローラ14は、パターンデータのハッシュ値を不揮発性メモリ15から読み出す。
 ステップS26において、消去コントローラ14は、現在のデータのハッシュ値がパターンデータのハッシュ値とは異なるか否かを判断し、YESのときはステップS27に進み、NOのときはステップS28に進む。
 異なるデータのハッシュ値が衝突する可能性がある。ただし、比較されるすべての論理ブロック31においてパターンデータのハッシュ値及び現在のデータのハッシュ値が衝突する可能性は極めて低いと考えられる。従って、例えば1000個の論理ブロック31においてハッシュ値を比較する場合、数個の論理ブロック31においてハッシュ値が一致していても、消去コントローラ14は、データの消去に成功したと判断してもよい。また、半分以上の論理ブロック31においてハッシュ値が異なる場合、消去コントローラ14は、データの消去に成功したと判断してもよい。
 また、互いに近接したいくつかの論理ブロック31においてパターンデータのハッシュ値及び現在のデータのハッシュ値が一致する場合、消去コントローラ14は、データの消去に失敗したと判断してもよい。この場合、これらの論理ブロック31を含む領域が暗号化及び復号の対象ではないと考えられる。
 ステップS27において、消去コントローラ14は、データの消去に成功したことを示す検証結果を表示装置18に出力する。また、ステップS28において、消去コントローラ14は、データの消去に失敗したことを示す検証結果を表示装置18に出力する。
 図7は、比較例1、比較例2、及び実施例1に係る検証方法を比較する表である。記憶装置13が1TBの記憶領域を有し、1TBの記憶領域が100MBのサイズをそれぞれ有する10000個の論理ブロック31に分割される場合を想定する。また、記憶領域の10%、すなわち、1000個の論理ブロック31の合計100GBのデータを読み出して検証する場合を想定する。比較例1によれば、100GBのデータを外部の情報処理装置に一時的に退避する必要がある。また、比較例1及び比較例2によれば、暗号鍵の変更前及び変更後の100GBのデータを互いに比較する必要がある。一方、実施例1によれば、SHA-256関数を用いる場合、各論理ブロック31のデータは、32バイトのハッシュ値によって表される。従って、実施例1によれば、データを外部の情報処理装置に一時的に退避することは不要であり、また、暗号鍵の変更前及び変更後のデータとして、合計32KBのデータを比較するだけでよい。このように、実施例1によれば、データの消去に成功したか否かを小さな負荷で検証することができる。
 記憶領域の10%のデータを読み出して検証する場合、10個ごとに1つの論理ブロック31のデータを指定してもよい。また、記憶領域のうちの5%のデータを読み出して検証する場合、20個ごとに1つの論理ブロック31のデータを指定してもよい。記憶領域が10000個の論理ブロック31に分割され、記憶領域の10%、すなわち、1000個の論理ブロック31のデータを読み出して検証する場合、データのハッシュ値は合計32KBのサイズを有する。また、記憶領域が1000個の論理ブロック31に分割され、記憶領域の10%、すなわち、100個の論理ブロック31のデータを読み出して検証する場合、データのハッシュ値は合計3200バイトのサイズを有する。また、記憶領域が10000個の論理ブロック31に分割され、記憶領域の5%、すなわち、500個の論理ブロック31のデータを読み出して検証する場合、データのハッシュ値は合計16KBのサイズを有する。また、記憶領域が1000個の論理ブロック31に分割され、記憶領域の5%、すなわち、50個の論理ブロック31のデータを読み出して検証する場合、データのハッシュ値は合計1600バイトのサイズを有する。いずれの場合でも、比較されるデータのサイズは、比較例1及び比較例2の場合よりもずっと小さくなる。
 比較する論理ブロック31をランダムに指定する場合、論理ブロック31のアドレスをさらに記憶する必要がある。記憶領域が10000個又は1000個の論理ブロック31に分割される場合、各論理ブロック31のアドレス(0~9999又は0~999)は2バイトで表される。従って、1000個、500個、100個、又は50個の論理ブロック31のデータを読み出して検証する場合、記憶されるアドレスの合計サイズは、2000バイト、1000バイト、200バイト、又は100バイトになる。いずれの場合でも、記憶されるアドレスのサイズは比較的小さい。
 図8は、図2のフラッシュメモリ24の論理ブロック31を示す概略図であって、データの消去を検証するために比較される論理ブロック31の配置の第1の変形例を示す図である。記憶領域は、記憶領域を論理的に分割した複数の部分領域であって、論理的に連続した複数の論理ブロック31をそれぞれ含む複数の部分領域24a-1~24a-2を含んでもよい。図8の例では、部分領域24a-1は、部分領域24a-2の論理アドレスよりも小さな論理アドレスを有する。消去コントローラ14は、複数の部分領域24a-1~24a-2のそれぞれに関して、当該部分領域に含まれる複数の論理ブロック31のうち、部分領域ごとに異なる割合の論理ブロック31を指定してもよい(例えば、図8のハッチングされた論理ブロック31)。ハッシュ値は、指定された複数の論理ブロック31に格納されたデータに基づいて計算される。情報処理装置1の重要なファイル(例えば、情報処理装置1へのログインパスワードなどの機密データ)は、小さい論理アドレスを有する論理ブロック31に格納されている可能性が高いと考えられる。従って、消去コントローラ14は、部分領域24a-1において、部分領域24a-2における割合よりも多くの割合の論理ブロック31を指定してもよい。図8に示すように論理ブロック31を指定することにより、情報処理装置1の重要なファイルを含むと考えられる領域に格納されたデータの消去をより確実に検証することができる。
 記憶装置13の記憶領域は、2つの部分領域24a-1~24a-2に限らず、3つ以上の部分領域に分割されてもよい。
 図9は、図2のフラッシュメモリ24の論理ブロック31を示す概略図であって、データの消去を検証するために比較される論理ブロック31の配置の第2の変形例を示す図である。消去コントローラ14は、論理的に互いに隣接する複数の論理ブロック31を指定してもよい(例えば、図9のハッチングされた論理ブロック31)。ハッシュ値は、論理的に互いに隣接する複数の論理ブロック31に格納されたデータに基づいて計算される。ハッシュ値は、論理的に互いに隣接する2つの論理ブロック31に格納されたデータの論理積、論理和、又は排他的論理和に基づいて計算されてもよい。図9に示すように論理ブロック31を指定することにより、ハッシュ値の衝突を回避できる場合がある。
[実施例2]
 図10は、図1の消去コントローラ14によって実行される実施例2に係る消去処理を示すフローチャートである。
 ステップS31において、消去コントローラ14は、例えば図3、図8、又は図9に示すように指定された論理ブロック31の元データを読み出す。次いで、ステップS32において、消去コントローラ14は、元データのハッシュ値を計算する。論理ブロック31ごとに1つのハッシュ値が計算されてもよく、予め決められた個数の論理ブロック31ごとに1つのハッシュ値が計算されてもよい。後者の場合、RAM12において、読み出されたデータを格納するためのバッファメモリが設けられる。バッファメモリは、例えば、論理ブロック31の10倍のサイズを有する。消去コントローラ14は、読み出されたデータを順次にバッファメモリに書き込み、バッファメモリがフルになったとき、データのハッシュ値を計算する。図10の処理の実行中(特に、暗号鍵の変更前後)に情報処理装置1の電源はオフされないので、計算されたハッシュ値はRAM12に保持されてもよい。また、計算されたハッシュ値は不揮発性メモリ15に保持されてもよい。
 ステップS33において、消去コントローラ14は、不揮発性メモリ23に格納された暗号鍵を変更する。
 ステップS34において、消去コントローラ14は、ステップS31の場合と同じ指定された論理ブロック31の現在のデータを読み出す。次いで、ステップS35において、消去コントローラ14は、元データのハッシュ値を計算するために用いたハッシュ関数と同じハッシュ関数を用いて、現在のデータのハッシュ値を計算する。元データのハッシュ値を計算する場合と同様に、論理ブロック31ごとに1つのハッシュ値が計算されてもよく、予め決められた個数の論理ブロック31ごとに1つのハッシュ値が計算されてもよい。これにより、同じ1つ又は複数の論理ブロック31について、元データのハッシュ値が計算され(ステップS32)、現在のデータのハッシュ値が計算される(ステップS35)。
 ステップS36において、消去コントローラ14は、現在のデータのハッシュ値が元データのハッシュ値とは異なるか否かを判断し、YESのときはステップS37に進み、NOのときはステップS38に進む。
 前述したように、異なるデータのハッシュ値が衝突する可能性がある。ただし、比較されるすべての論理ブロック31において元データのハッシュ値及び現在のデータのハッシュ値が衝突する可能性は極めて低いと考えられる。従って、例えば1000個の論理ブロック31においてハッシュ値を比較する場合、数個の論理ブロック31においてハッシュ値が一致していても、消去コントローラ14は、データの消去に成功したと判断してもよい。また、半分以上の論理ブロック31においてハッシュ値が異なる場合、消去コントローラ14は、データの消去に成功したと判断してもよい。
 また、互いに近接したいくつかの論理ブロック31において元データのハッシュ値及び現在のデータのハッシュ値が一致する場合、消去コントローラ14は、データの消去に失敗したと判断してもよい。この場合、これらの論理ブロック31を含む領域が暗号化及び復号の対象ではないと考えられる。
 ステップS37において、消去コントローラ14は、データの消去に成功したことを示す検証結果を表示装置18に出力する。また、ステップS38において、消去コントローラ14は、データの消去に失敗したことを示す検証結果を表示装置18に出力する。
 実施例2によれば、実施例1と同様に、データを外部の情報処理装置に一時的に退避することは不要であり、また、暗号鍵の変更前及び変更後のデータとして、ハッシュ値を比較するだけでよい。このように、実施例2によれば、データの消去に成功したか否かを小さな負荷で検証することができる。
 一般に、ソリッドステートドライブでは、データの書き込みはデータの読み出しよりも時間がかかる。図10の処理によれば、パターンデータを記憶装置13に書き込む必要がないので、図6の場合よりも処理時間を短縮することができる。
 また、複数の論理ブロック31ごとに1つのハッシュ値を計算する場合、論理ブロック31ごとに1つのハッシュ値を計算する場合よりも、計算量が低減されて処理速度が向上し、また、計算されたハッシュ値を格納するために必要な記憶容量が削減される。
[実施例3]
 図11は、図1の消去コントローラ14によって実行される実施例3に係る消去処理を示すフローチャートである。
 ステップS41において、消去コントローラ14は、記憶領域の全体及び部分の元データを読み出す。記憶領域は、記憶領域を互いに異なる複数のサイズで論理的に分割した複数の部分領域を含む。元データは、記憶領域の全体及び複数のサイズを有する複数の部分領域のそれぞれに関して読み出される。ステップS42において、消去コントローラ14は、記憶領域の全体及び複数のサイズを有する複数の部分領域のそれぞれに関して、当該領域に格納された元データのハッシュ値を計算する。
 図12は、図2のフラッシュメモリ24の論理ブロック31を示す概略図であって、データの消去を検証するためにすべての論理ブロック31が比較される場合を示す図である。図13は、図2のフラッシュメモリ24の論理ブロック31を示す概略図であって、データの消去を検証するために部分領域24b-1,24b-2のそれぞれに含まれる論理ブロック31が比較される場合を示す図である。図14は、図2のフラッシュメモリ24の論理ブロック31を示す概略図であって、データの消去を検証するために部分領域24c-1~24c-4のそれぞれに含まれる論理ブロック31が比較される場合を示す図である。図15は、図2のフラッシュメモリ24の論理ブロック31を示す概略図であって、データの消去を検証するために部分領域24d-1~24d-8のそれぞれに含まれる論理ブロック31が比較される場合を示す図である。図12の場合、記憶領域の全体で1つのハッシュ値が計算される。図13の場合、記憶領域の全体が2つの部分領域24b-1,24b-2に分割され、部分領域24b-1,24b-2のそれぞれについて1つのハッシュ値が計算される。図14の場合、記憶領域の全体が4つの部分領域24c-1~24c-4に分割され、部分領域24c-1~24c-4のそれぞれについて1つのハッシュ値が計算される。図15の場合、記憶領域の全体が8つの部分領域24d-1~24d-8に分割され、部分領域24d-1~24d-8のそれぞれについて1つのハッシュ値が計算される。図12~図15と同様に、より細分化された部分領域のそれぞれについてハッシュ値が計算されてもよい。
 図11のステップS43において、消去コントローラ14は、不揮発性メモリ23に格納された暗号鍵を変更する。
 ステップS44において、消去コントローラ14は、記憶領域の現在のデータを読み出す。次いで、ステップS45において、消去コントローラ14は、記憶領域の全体の現在のデータのハッシュ値を計算する。
 ステップS46において、消去コントローラ14は、現在のデータのハッシュ値が、ステップS42において計算された対応する元データのハッシュ値と異なるか否かを判断し、YESのときはステップS49に進み、NOのときはステップS47に進む。
 ステップS47において、消去コントローラ14は、ステップS42において計算された元データのすべてのハッシュ値に対して比較したか否かを判断し、YESのときはステップS50に進み、NOのときはステップS48に進む。
 ステップS48において、消去コントローラ14は、記憶領域を分割した各部分領域の現在のデータのハッシュ値を計算する。ステップS48を最初に実行する場合、消去コントローラ14は、記憶領域を2つに分割した部分領域24b-1,24b-2のそれぞれについて現在のデータのハッシュ値を計算する。ステップS48を2回目に実行する場合、消去コントローラ14は、記憶領域を4つに分割した部分領域24c-1~24c-4のそれぞれについて現在のデータのハッシュ値を計算する。以後、消去コントローラ14は、ステップS46又はS47においてYESと判断されるまでステップS48を同様に繰り返し、部分領域の現在のデータのハッシュ値を計算する。
 ステップS49において、消去コントローラ14は、データの消去に成功したことを示す検証結果を表示装置18に出力する。また、ステップS50において、消去コントローラ14は、データの消去に失敗したことを示す検証結果を表示装置18に出力する。
 図11の処理によれば、ある部分領域において元データのハッシュ値及び現在のデータのハッシュ値が衝突しても、より小さな部分領域のハッシュ値を比較することにより、ハッシュ値の衝突を回避できる場合がある。
[第1の実施形態の変形例]
 図16は、第1の実施形態の変形例に係る情報処理装置1Aの構成を示すブロック図である。情報処理装置1Aは、図1の情報処理装置1の各構成要素に加えて、外部装置に接続するための装置インターフェース(I/F)19をさらに備える。装置インターフェース19は、例えば、USBである。図16の例では、装置インターフェース19は、USBメモリ、ソリッドステートドライブ、ハードディスクドライブなどの外部記憶装置41に接続される。
 図6他を参照して説明される消去処理のためのプログラムは、不揮発性メモリ15に格納されることに代えて、外部記憶装置41に格納されてもよい。この場合、消去コントローラ14は、消去処理のためのプログラムを外部記憶装置41から読み出して実行する。また、消去処理のためのプログラムは、複数の部分に分割され、一部が不揮発性メモリ15に格納され、他の一部が外部記憶装置41に格納されてもよい。この場合、外部記憶装置41に格納されたプログラム部分を実行することにより、不揮発性メモリ15に格納されたプログラム部分が呼び出されて実行される。
 例えば、情報処理装置1Aが実施例2に係る消去処理を実行する場合、計算された元データのハッシュ値は、RAM12又は不揮発性メモリ15に格納されることに代えて、外部記憶装置41に格納されてもよい。ハッシュ値から元データを推測することは困難であるので、外部記憶装置41を紛失した場合又は盗難にあった場合であっても、機密データが漏洩する可能性は低い。
 計算された元データのハッシュ値は、通信装置16を介して接続された外部の情報処理装置に送信されて格納されてもよい。また、情報処理装置1,1Aは、CD、DVDなどの記憶媒体のためのドライブ装置をさらに備えてもよく、この場合、計算された元データのハッシュ値は、CD、DVDなどに格納されてもよい。
[第1の実施形態の効果等]
 第1の実施形態に係る情報処理装置1は、格納されるデータの自己暗号化機能を有する記憶装置13と、記憶装置13に格納されたデータの消去を制御する消去コントローラ14とを備える。記憶装置13は、記憶領域を有する記憶媒体と、暗号鍵を格納した不揮発性メモリ23と、入力されたデータを記憶領域に書き込み、記憶領域から読み出されたデータを出力し、記憶領域に書き込まれるデータの少なくとも一部を暗号鍵を用いて暗号化し、記憶領域から読み出されたデータの少なくとも一部を暗号鍵を用いて復号する入出力コントローラ21とを備える。消去コントローラ14は、不揮発性メモリ23に第1の暗号鍵が格納されている場合、記憶領域の指定された位置に格納されるべきデータに基づいて、又は、記憶領域の指定された位置に格納されているデータに基づいて計算された第1のハッシュ値を取得する。消去コントローラ14は、不揮発性メモリ23に格納された第1の暗号鍵を第2の暗号鍵に変更するように記憶装置13を制御する。消去コントローラ14は、不揮発性メモリ23に第2の暗号鍵が格納されている場合、記憶領域の指定された位置から読み出されたデータに基づいて第2のハッシュ値を計算する。消去コントローラ14は、第2のハッシュ値が第1のハッシュ値とは異なる場合、記憶装置13に格納されたデータの消去に成功したことを示す検証結果を出力する。消去コントローラ14は、第2のハッシュ値が第1のハッシュ値に一致する場合、記憶装置13に格納されたデータの消去に失敗したことを示す検証結果を出力する。
 これにより、記憶装置13に格納されたデータの消去に成功したか否かを従来よりも小さな負荷で検証することができる。
 第1の実施形態に係る情報処理装置1によれば、消去コントローラ14は、予め決められたパターンデータを記憶領域の指定された位置に格納するように記憶装置13を制御してもよい。この場合、第1のハッシュ値は、パターンデータに基づいて計算される。
 これにより、データを外部の情報処理装置に一時的に退避することなく、データ消去を検証することができる。
 第1の実施形態に係る情報処理装置1によれば、消去コントローラ14は、記憶領域の指定された位置から読み出されたデータに基づいて、第1のハッシュ値を計算してもよい。
 これにより、データを外部の情報処理装置に一時的に退避することなく、データ消去を検証することができる。
 第1の実施形態に係る情報処理装置1によれば、記憶領域は複数のブロックを含んでもよい。この場合、第1及び第2のハッシュ値は、予め決められた個数のブロックごとに、当該ブロックに格納されたデータに基づいて計算される。
 これにより、論理ブロック31ごとに1つのハッシュ値を計算する場合よりも、計算量が低減されて処理速度が向上し、また、計算されたハッシュ値を格納するために必要な記憶容量が削減される。
 第1の実施形態に係る情報処理装置1によれば、記憶領域は、記憶領域を論理的に分割した複数の部分領域であって、論理的に連続した複数のブロックをそれぞれ含む複数の部分領域を含んでもよい。この場合、消去コントローラ14は、複数の部分領域のそれぞれに関して、当該部分領域に含まれる複数の論理ブロックのうち、部分領域ごとに異なる割合の論理ブロックを指定する。第1及び第2のハッシュ値は、指定された複数のブロックに格納されたデータに基づいて計算される。
 これにより、情報処理装置1の重要なファイルを含むと考えられる領域に格納されたデータの消去をより確実に検証することができる。
 第1の実施形態に係る情報処理装置1によれば、記憶領域は複数のブロックを含んでもよい。この場合、第1及び第2のハッシュ値は、論理的に互いに隣接する複数のブロックに格納されたデータに基づいて計算される。
 これにより、ハッシュ値の衝突を回避できる場合がある。
 第1の実施形態に係る情報処理装置1によれば、記憶領域は、記憶領域を互いに異なる複数のサイズで論理的に分割した複数の部分領域を含んでもよい。この場合、第1のハッシュ値は、複数のサイズを有する複数の部分領域のそれぞれに関して、当該部分領域に格納されたデータに基づいて計算される。消去コントローラ14は、複数のサイズのうち第1のサイズを有する複数の部分領域のそれぞれに関して、当該部分領域に格納されたデータに基づいて第2のハッシュ値を計算する。消去コントローラ14は、第1のサイズを有する部分領域に関して第2のハッシュ値が第1のハッシュ値とは異なる場合、記憶装置13に格納されたデータの消去に成功したことを示す検証結果を出力する。消去コントローラ14は、第1のサイズを有する部分領域に関して第2のハッシュ値が第1のハッシュ値に一致する場合、複数のサイズのうち、第1のサイズよりも小さい第2のサイズを有する複数の部分領域のそれぞれに関して、当該部分領域に格納されたデータに基づいて第2のハッシュ値を計算する。消去コントローラ14は、第2のサイズを有する部分領域に関して第2のハッシュ値が第1のハッシュ値とは異なる場合、記憶装置13に格納されたデータの消去に成功したことを示す検証結果を出力する。
 これにより、ある部分領域において元データのハッシュ値及び現在のデータのハッシュ値が衝突しても、より小さな部分領域のハッシュ値を比較することにより、ハッシュ値の衝突を回避できる場合がある。
 第1の実施形態に係る情報処理装置1は、検証結果を出力する表示装置18を備えてもよい。
 これにより、記憶装置13に格納されたデータの消去に成功したか否かを把握することができる。
 第1の実施形態に係る情報処理方法は、自己暗号化機能を有する記憶装置13に格納されたデータの消去を制御する。記憶装置13は、記憶領域を有する記憶媒体と、暗号鍵を格納した不揮発性メモリ23と、入力されたデータを記憶領域に書き込み、記憶領域から読み出されたデータを出力し、記憶領域に書き込まれるデータの少なくとも一部を暗号鍵を用いて暗号化し、記憶領域から読み出されたデータの少なくとも一部を暗号鍵を用いて復号する入出力コントローラ21とを備える。情報処理方法は、不揮発性メモリ23に第1の暗号鍵が格納されている場合、記憶領域の指定された位置に格納されるべきデータに基づいて、又は、記憶領域の指定された位置に格納されているデータに基づいて計算された第1のハッシュ値を取得するステップを含む。情報処理方法は、不揮発性メモリ23に格納された第1の暗号鍵を第2の暗号鍵に変更するように記憶装置13を制御するステップを含む。情報処理方法は、不揮発性メモリ23に第2の暗号鍵が格納されている場合、記憶領域の指定された位置から読み出されたデータに基づいて第2のハッシュ値を計算するステップを含む。情報処理方法は、第2のハッシュ値が第1のハッシュ値とは異なる場合、記憶装置13に格納されたデータの消去に成功したことを示す検証結果を出力するステップを含む。情報処理方法は、第2のハッシュ値が第1のハッシュ値に一致する場合、記憶装置13に格納されたデータの消去に失敗したことを示す検証結果を出力するステップを含む。
 これにより、記憶装置13に格納されたデータの消去に成功したか否かを従来よりも小さな負荷で検証することができる。
 第1の実施形態に係るプログラムは、情報処理装置1に実装されたプロセッサによって実行される命令を含む。情報処理装置1は、格納されるデータの自己暗号化機能を有する記憶装置13をさらに備える。記憶装置13は、記憶領域を有する記憶媒体と、暗号鍵を格納した不揮発性メモリ23と、入力されたデータを記憶領域に書き込み、記憶領域から読み出されたデータを出力し、記憶領域に書き込まれるデータの少なくとも一部を暗号鍵を用いて暗号化し、記憶領域から読み出されたデータの少なくとも一部を暗号鍵を用いて復号する入出力コントローラとを備える。命令は、プロセッサに、不揮発性メモリ23に第1の暗号鍵が格納されている場合、記憶領域の指定された位置に格納されるべきデータに基づいて、又は、記憶領域の指定された位置に格納されているデータに基づいて計算された第1のハッシュ値を取得することを含む。命令は、プロセッサに、不揮発性メモリ23に格納された第1の暗号鍵を第2の暗号鍵に変更するように記憶装置13を制御することを含む。命令は、プロセッサに、不揮発性メモリ23に第2の暗号鍵が格納されている場合、記憶領域の指定された位置から読み出されたデータに基づいて第2のハッシュ値を計算することを含む。命令は、プロセッサに、第2のハッシュ値が第1のハッシュ値とは異なる場合、記憶装置13に格納されたデータの消去に成功したことを示す検証結果を出力することを含む。命令は、プロセッサに、第2のハッシュ値が第1のハッシュ値に一致する場合、記憶装置13に格納されたデータの消去に失敗したことを示す検証結果を出力することを実行させる。
 これにより、記憶装置13に格納されたデータの消去に成功したか否かを従来よりも小さな負荷で検証することができる。
[第2の実施形態]
 第2の実施形態では、第1の実施形態の消去処理(図10を参照)を実行しながら、データ消去の進捗度を表示する場合について説明する。
 図17は、第2の実施形態に係る情報処理装置1によって実行される消去処理を示すフローチャートである。第2の実施形態に係る情報処理装置1は、第1の実施形態の場合と同様に構成される。図17の消去処理は、図1の消去コントローラ14によって実行される。
 ステップS101において、消去コントローラ14は前処理を実行し、指定された論理ブロック31の元データのハッシュ値を計算する。
 ステップS102において、消去コントローラ14は鍵変更処理を実行し、不揮発性メモリ23に格納された暗号鍵を変更する。
 ステップS103において、消去コントローラ14は検証処理を実行し、現在のデータのハッシュ値が元データのハッシュ値とは異なるか否か、すなわち、データの消去に成功したか否かを判断する。
 図18は、図17の前処理(ステップS101)のサブルーチンを示すフローチャートである。
 ステップS111において、消去コントローラ14は、パラメータi1を1に初期化する。パラメータi1は、例えば図3、図8、又は図9に示すように指定された複数の論理ブロック31のいずれかを示す。図18の例では、N1個の論理ブロック31が指定される。
 ステップS112において、消去コントローラ14は、指定された論理ブロック31のうち、i1番目の論理ブロック31の元データを読み出す。次いで、ステップS113において、消去コントローラ14は、元データのハッシュ値を計算する。ステップS112~S113は、指定された論理ブロック31のうちの1つに対して実行していることを除いて、図10のステップS31~S32と同様である。
 ステップS114において、消去コントローラ14は、元データのハッシュ値と、i1番目の論理ブロック31のアドレスとを、RAM12又は不揮発性メモリ15(又は、図16の外部記憶装置41)に格納する。
 ステップS115において、消去コントローラ14は、ステップS112~S114の処理を実行済みである論理ブロック31の個数を、所定のフォーマットで表示装置18に出力する。
 ステップS116において、消去コントローラ14は、パラメータi1がしきい値N1を超えたか否かを判断し、YESのときは図17のステップS102に進み、NOのときはステップS117に進む。
 ステップS117において、消去コントローラ14は、パラメータi1を1だけインクリメントし、ステップS112~S116を繰り返す。
 図19は、図17の鍵変更処理(ステップS102)のサブルーチンを示すフローチャートである。
 ステップS121において、消去コントローラ14は、不揮発性メモリ23に格納された暗号鍵を変更する。ステップS121は、図10のステップS33と同様である。
 ステップS122において、消去コントローラ14は、暗号鍵の変更が完了したことを、所定のフォーマットで表示装置18に出力する。
 図20は、図17の検証処理(ステップS103)のサブルーチンを示すフローチャートである。
 ステップS131において、消去コントローラ14は、パラメータi2を1に初期化する。パラメータi2は、図18の前処理において指定されたN1個の論理ブロック31のいずれかを示す。
 ステップS132において、消去コントローラ14は、RAM12又は不揮発性メモリ15(又は、図16の外部記憶装置41)に格納された元データのハッシュ値及びアドレスを読み出す。このアドレスに基づいて、前処理においてハッシュ値が計算された論理ブロック31が特定される。
 ステップS133において、消去コントローラ14は、ステップS132で読み出されたアドレスにより特定される論理ブロック31のうち、i2番目の論理ブロック31の現在のデータを読み出す。次いで、ステップS134において、消去コントローラ14は、現在のデータのハッシュ値を計算する。ステップS133~S134は、指定された論理ブロック31のうちの1つに対して実行していることを除いて、図10のステップS34~S35と同様である。
 ステップS135において、消去コントローラ14は、現在のデータのハッシュ値が元データのハッシュ値とは異なるか否かを判断し、YESのときはステップS136に進み、NOのときはステップS140に進む。ステップS135は、指定された論理ブロック31のうちの1つに対して実行していることを除いて、図10のステップS36と同様である。
 ステップS136において、消去コントローラ14は、検証された論理ブロック31、すなわち、現在のデータのハッシュ値が元データのハッシュ値と異なるか否かを判断した論理ブロック31の個数を、所定のフォーマットで表示装置18に出力する。
 ステップS137において、消去コントローラ14は、パラメータi2がしきい値N1を超えたか否かを判断し、YESのときはステップS139に進み、NOのときはステップS138に進む。
 ステップS138において、消去コントローラ14は、パラメータi2を1だけインクリメントし、ステップS132~S137を繰り返す。
 ステップS139において、消去コントローラ14は、データの消去に成功したことを示す検証結果を表示装置18に出力する。ステップS140において、消去コントローラ14は、データの消去に失敗したことを示す検証結果を表示装置18に出力する。
 図21は、図17の消去処理を実行することによって図1の表示装置18に表示される、データ消去の進捗度を示す画像の一例を示す図である。図21(a)は、前処理の進捗度を示す画像である。前処理の進捗度は、例えば、指定された論理ブロック31の個数に対する処理された論理ブロック31の個数の割合、すなわち、i1/N1を示すプログレスバーによって表される。図21(b)は、鍵変更処理の進捗度を示す画像である。鍵変更処理の進捗度は、例えば、暗号鍵の変更が完了したか否かを示すプログレスバーによって表される。図21(c)は、検証処理の進捗度を示す画像である。検証処理の進捗度は、例えば、指定された論理ブロック31の個数に対する検証された論理ブロック31の個数の割合、すなわち、i2/N1を示すプログレスバーによって表される。
 図22は、図17の消去処理を実行することによって図1の表示装置18に表示される、データ消去の進捗度を示す画像の他の一例を示す図である。図21に示す3つのプログレスバーを1つにまとめて表示してもよい。
 データ消去の進捗度は、図21及び図22のような画像として表示されることに代えて、下記のようなテキストとして表示されてもよい。
前処理:  a1
鍵変更処理:a2
検証処理: a3
 ここで、a1は、指定されたブロックの個数N1から開始して、パラメータi1が増大するにつれて減少する(a1=N1-i1)。a2は、暗号鍵が変更される前に「1」になり、暗号鍵が変更された後に「0」になる。a3は、指定されたブロックの個数N1から開始して、パラメータi2が増大するにつれて減少する(a3=N1-i2)。
 また、データ消去の進捗度は、下記のようなテキストとして表示されてもよい。
前処理:  b1/N1
鍵変更処理:b2
検証処理: b3/N1
 ここで、b1=i1である。b2は、暗号鍵が変更される前に「0」になり、暗号鍵が変更された後に「1」になる。また、b3=i2である。
 また、データ消去の進捗度は、「c」としてまとめて表示されてもよく、ここで、c=a1+a2+a3である。また、データ消去の進捗度は、「d/N」としてまとめて表示されてもよく、ここで、d=b1+b2+b3,N=N1×2+1である。
 前述したように、複数の論理ブロック31ごとに1つのハッシュ値を計算する場合、データ消去の進捗度は、1つのハッシュ値に対応する論理ブロック31のグループを単位として、論理ブロック31のグループの個数又は割合に基づいて、画像又はテキストとして表示されてもよい。
 図20の検証処理では、1つの論理ブロック31において現在のデータのハッシュ値が元データのハッシュ値に一致する場合、データの消去に失敗したと判断される。しかしながら、前述したように、指定された論理ブロック31のうちの一部においてハッシュ値が一致していても、消去コントローラ14は、データの消去に成功したと判断してもよい。次に、図23~図25を参照して、このようなハッシュ値の衝突を許容する検証処理の変形例について説明する。
 図23は、図17の検証処理の第1の変形例を示すフローチャートである。図23の処理は、図20の各ステップに加えて、ステップS141~S143を含む。
 ステップS141において、消去コントローラ14は、パラメータj1を0に初期化する。パラメータj1を用いて、現在のデータのハッシュ値が元データのハッシュ値に一致した論理ブロック31の個数がカウントされる。
 ステップS135において現在のデータのハッシュ値が元データのハッシュ値に一致すると判断したとき、処理はステップS142に進む。ステップS142において、消去コントローラ14は、パラメータj1を1だけインクリメントする。
 ステップS143において、消去コントローラ14は、パラメータj1がしきい値Th1を超えたか否かを判断し、YESのときはステップS140に進み、NOのときはステップS136に進む。
 図23の検証処理によれば、しきい値Th1以下の個数の論理ブロック31においてハッシュ値の衝突が発生しても、他の論理ブロック31においてハッシュ値が異なるならば、データの消去に成功したと判断することができる。
 図24は、図17の検証処理の第2の変形例を示すフローチャートである。図24の処理は、図20の各ステップに加えて、ステップS151~S156を含む。
 ステップS151において、消去コントローラ14は、パラメータj2を0に初期化する。パラメータj2を用いて、指定された論理ブロック31のうち、互いに近接したいくつかの論理ブロック31において連続して発生するハッシュ値の衝突の回数がカウントされる。
 ステップS135において現在のデータのハッシュ値が元データのハッシュ値と異なると判断したとき、処理はステップS152に進み、そうでないとき、処理はステップS153に進む。ステップS152において、消去コントローラ14はパラメータj2を1だけデクリメントする。ステップS153において、消去コントローラ14は、パラメータj2を1だけインクリメントする。
 ステップS154において、消去コントローラ14は、パラメータj2が0より小さいか否かを判断し、YESのときはステップS155に進み、NOのときはステップS156に進む。ステップS155において、消去コントローラ14は、パラメータj2を0に再初期化する。
 ステップS156において、消去コントローラ14は、パラメータj2がしきい値Th2を超えたか否かを判断し、YESのときはステップS140に進み、NOのときはステップS136に進む。
 図24の検証処理によれば、ハッシュ値の一致又は不一致に応じて、パラメータj2が増大又は減少する。従って、指定された論理ブロック31のうち、互いに近接したいくつかの論理ブロック31においてハッシュ値の衝突が連続して発生する場合、パラメータj2は増大する。この場合、これらの論理ブロック31を含む記憶領域は、暗号化の対象ではなく、データが平文のまま格納されていると考えられる。一方、指定された論理ブロック31のうち、互いに近接したいくつかの論理ブロック31においてハッシュ値の一致及び不一致がほぼ交替して発生する場合、パラメータj2は増大しない。この場合、ハッシュ値の衝突は偶然であると考えられる。
 図25は、図17の検証処理の第3の変形例を示すフローチャートである。図25の処理は、図20の各ステップに加えて、ステップS161~S169を含む。
 ステップS135において現在のデータのハッシュ値が元データのハッシュ値に一致すると判断したとき、処理はステップS161に進む。ステップS161において、消去コントローラ14は、ハッシュ値の衝突が発生した論理ブロック31のアドレスを、RAM12又は不揮発性メモリ15(又は、図16の外部記憶装置41)に格納する。
 ステップS137においてパラメータi2がしきい値N1を超えたとき、処理はステップS162に進む。ステップS162において、消去コントローラ14は、パラメータi3,i4をそれぞれ1に初期化し、パラメータj3を0に初期化する。図25の検証処理では、指定された論理ブロック31のうち、互いに近接した所定個数の論理ブロック31のグループにおいてハッシュ値の衝突の回数がカウントされる。パラメータi3は、論理ブロック31のグループの位置を示す。パラメータi4は、あるグループに含まれる論理ブロック31のいずれかを示す。図25の例では、各グループはN4個の論理ブロック31を含み、グループの位置は、指定された論理ブロック31のうちで、N3=N1-N4通りにシフトする。パラメータj3を用いて、あるグループにおけるハッシュ値の衝突の回数がカウントされる。
 ステップS163において、消去コントローラ14は、ステップS161において格納されたアドレスに基づいて、i3+i4番目の論理ブロック31において、現在のデータのハッシュ値が元データのハッシュ値に一致するか否かを判断し、YESのときはステップS164に進み、NOのときはステップS165に進む。ステップS164において、消去コントローラ14は、パラメータj3を1だけインクリメントする。
 ステップS165において、消去コントローラ14は、パラメータi4がしきい値N4を超えたか否か、すなわち、現在のグループに含まれるすべての論理ブロック31を処理したか否かを判断し、YESのときはステップS167に進み、NOのときはステップS166に進む。
 ステップS166において、消去コントローラ14は、パラメータi4を1だけインクリメントし、ステップS163~S165を繰り返す。
 ステップS167において、消去コントローラ14は、パラメータj3がしきい値Th3を超えたか否かを判断し、YESのときはステップS140に進み、NOのときはステップS168に進む。
 ステップS168において、消去コントローラ14は、パラメータi3がしきい値N3を超えたか否か、すなわち、論理ブロック31のグループをすべての位置にシフトさせたか否かを判断し、YESのときはステップS139に進み、NOのときはステップS169に進む。
 ステップS169において、消去コントローラ14は、パラメータi3を1だけインクリメントし、ステップS163~S168を繰り返す。
 図25の処理によれば、互いに近接した所定個数の論理ブロック31のグループにおいてハッシュ値の衝突が繰り返し発生する場合、これらの論理ブロック31を含む記憶領域は、暗号化の対象ではなく、データが平文のまま格納されていると考えられる。
 ステップS167のしきい値Th3は、例えば、グループに含まれる論理ブロック31の個数N3に近い値に設定されてもよい。また、ステップS168において、消去コントローラ14はj3/N3を計算してもよく、この場合、しきい値Th3は、例えば、1に近い値に設定されてもよい。
[第2の実施形態の効果等]
 第2の実施形態に係る情報処理装置1によれば、消去コントローラ14は、記憶装置13に格納されたデータの消去の進捗度を表示装置18に出力してもよい。
 これにより、データ消去の進捗度を把握することができる。
[第3の実施形態]
 図26は、第3の実施形態に係る情報処理装置1及びサーバ装置を含む情報処理システムの構成を示すブロック図である。図26の情報処理システムは、複数の情報処理装置1-1~1-3、サーバ装置2、及び通信回線3を含む。各情報処理装置1-1~1-3は、図1の情報処理装置1と同様に構成される。サーバ装置2は、通信回線3を介して各情報処理装置1-1~1-3に接続される。
 本明細書では、情報処理装置1-1~1-3をまとめて「情報処理装置1」を呼ぶ。
 図27は、図26のサーバ装置2の構成を示すブロック図である。サーバ装置2は、バス120、CPU121、RAM122、記憶装置123、通信装置126、入力装置127、及び表示装置128を備える。CPU121は、サーバ装置2全体の動作を制御し、また、各情報処理装置1の記憶装置13に格納されたデータの消去を管理する。RAM122は、サーバ装置2の動作に必要なプログラム及びデータを一時的に記憶する。記憶装置123は、サーバ装置2の動作に必要なプログラムを格納する不揮発性記憶媒体である。通信装置126は、通信回線3を介して各情報処理装置1と通信可能に接続される。入力装置127は、サーバ装置2の動作を制御するユーザ入力を受ける。入力装置127は、例えば、キーボード及びポインティングデバイスを含む。表示装置128は、各情報処理装置1の記憶装置13に格納されたデータの消去に関連する情報を表示する。CPU121、RAM122、記憶装置123、通信装置126、入力装置127、及び表示装置128は、バス120を介して互いに接続される。
 図28は、図26のサーバ装置2によって実行される消去処理を示すフローチャートである。図29は、図26の情報処理装置1によって実行される消去処理を示すフローチャートである。
 図28のステップS201において、サーバ装置2のCPU121は、データの消去を指示する制御信号を情報処理装置1に送信する。
 図29のステップS211において、情報処理装置1の消去コントローラ14は、データの消去を指示する制御信号をサーバ装置2から受信する。次いで、消去コントローラ14は、制御信号に従って、ステップS212~S219を実行する。ステップS212~S217は、図10のステップS31~S36と同様である。ステップS217において現在のデータのハッシュ値が元データのハッシュ値と異なると判断したとき、処理はステップS218に進み、そうでないとき、処理はステップS219に進む。ステップS218において、消去コントローラ14は、データの消去に成功したことを示す検証結果を含む通知信号をサーバ装置2に送信する。ステップS219において、消去コントローラ14は、データの消去に失敗したことを示す検証結果を含む通知信号をサーバ装置2に送信する。
 図28のステップS202において、サーバ装置2のCPU121は、検証結果を示す通知信号を情報処理装置1から受信する。ステップS203において、CPU121は、検証結果を表示装置128に出力する。
 図28及び図29の処理によれば、複数の情報処理装置1の記憶装置13に格納されたデータの消去をサーバ装置2によって集中的に制御することができ、また、データの消去に成功したか否かを小さな負荷で検証することができる。
 また、図30~図34を参照して説明するように、データ消去の進捗度をサーバ装置2の表示装置128に出力してもよい。
 図30は、図26のサーバ装置2によって実行される消去処理の変形例を示すフローチャートである。図31は、図26の情報処理装置1によって実行される消去処理の変形例を示すフローチャートである。図30の処理は、図28のステップS202に代えてステップS221~S223を含む。図31の処理は、図29のステップS212~S219に代えて、ステップS231~S233を含む。
 図30のステップS201において、サーバ装置2のCPU121は、データの消去を指示する制御信号を情報処理装置1に送信する。
 図31のステップS211において、情報処理装置1の消去コントローラ14は、データの消去を指示する制御信号をサーバ装置2から受信する。次いで、消去コントローラ14は、制御信号に従って、ステップS231~S233を実行する。ステップS231~S233は、データ消去の進捗度及び検証結果を情報処理装置1の表示装置18に出力することに代えてサーバ装置2に送信することを除いて、図17のステップS101~S103と同様である。
 図32は、図31の前処理(ステップS231)のサブルーチンを示すフローチャートである。図32の処理は、図18のステップS115に代えてステップS115Aを含む。ステップS115Aにおいて、消去コントローラ14は、データ消去の進捗度として、ステップS112~S114の処理を実行済みである論理ブロック31の個数を含む通知信号をサーバ装置2に送信する。
 図33は、図31の鍵変更処理(ステップS232)のサブルーチンを示すフローチャートである。図33の処理は、図19のステップS122に代えてステップS122Aを含む。ステップS122Aにおいて、消去コントローラ14は、データ消去の進捗度として、暗号鍵の変更が完了したことを示す通知信号をサーバ装置2に送信する。
 図34は、図31の検証処理(ステップS233)のサブルーチンを示すフローチャートである。図34の処理は、図20のステップS136,S139,S140に代えて、ステップS136A,S139A,S140Aを含む。ステップS136Aにおいて、消去コントローラ14は、データ消去の進捗度として、検証された論理ブロック31の個数を含む通知信号をサーバ装置2に送信する。ステップS139Aにおいて、消去コントローラ14は、データの消去に成功したことを示す検証結果を含む通知信号をサーバ装置2に送信する。ステップS140Aにおいて、消去コントローラ14は、データの消去に失敗したことを示す検証結果を含む通知信号をサーバ装置2に送信する。
 図30のステップS221において、サーバ装置2のCPU121は、データ消去の進捗度を含む通知信号を情報処理装置1から受信する。ステップS222において、CPU121は、情報処理装置1の表示装置18に出力する場合と同様に、データ消去の進捗度を所定のフォーマットで表示装置128に出力する。ステップS223において、CPU121は、データ消去が完了したか否か、すなわち、検証結果を示す通知信号を情報処理装置1から受信したか否かを判断し、YESのときはステップS203に進み、NOのときはステップS221に戻る。ステップS203において、CPU121は、検証結果を表示装置128に出力する。
 図30~図34の処理によれば、複数の情報処理装置1の記憶装置13に格納されたデータの消去の進捗度をサーバ装置2において把握することができる。
[第3の実施形態の効果等]
 第3の実施形態に係る情報処理システム100は、第1の実施形態に係る情報処理装置1と、情報処理装置1に通信回線を介して接続されたサーバ装置2とを備える。消去コントローラ14は、サーバ装置2から受信された制御信号に従って、記憶装置13に格納されたデータの消去を制御する。
 これにより、記憶装置13に格納されたデータの消去に成功したか否かを従来よりも小さな負荷で検証することができる。
 第3の実施形態に係る情報処理システム100は、消去コントローラ14は、検証結果を含む第1の通知信号をサーバ装置2に送信してもよい。サーバ装置2は、検証結果を出力する表示装置128を備えてもよい。
 これにより、記憶装置13に格納されたデータの消去に成功したか否かを把握することができる。
 第3の実施形態に係る情報処理システム100は、消去コントローラ14は、記憶装置13に格納されたデータの消去の進捗度を含む第2の通知信号をサーバ装置2に送信してもよい。この場合、表示装置128は進捗度を表示する。
 これにより、データ消去の進捗度を把握することができる。
[他の実施形態]
 以上のように、本出願において開示する技術の例示として、実施形態を説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き換え、付加、省略などを行った実施形態にも適用可能である。また、上記実施形態で説明した各構成要素を組み合わせて、新たな実施形態とすることも可能である。
 そこで、以下、他の実施形態を例示する。
 記憶装置13は、ソリッドステートドライブに限らず、自己暗号化機能を有するハードディスクドライブ(HDD)などの不揮発性記憶媒体であってもよい。
 検証結果は、表示装置18に出力されることに限らず、通信装置16を介して外部の情報処理装置に出力されてもよい。
 記憶領域の論理的な先頭には重要なデータが格納されるので、消去コントローラ14は、記憶領域の先頭の32バイトを常に指定してもよい。
 消去コントローラ14は、ハッシュ値を計算する際に、データにソルト(予め決められたキーワード)を付加してもよい。
 消去コントローラ14は、論理ブロック31のサイズを、例えば1/10にシュリンクしてもよい。
 図17~図25、図30~図34では、実施例2に係る消去処理(図10を参照)を実行しながら、データ消去の進捗度を表示する場合について説明した。それに代わって、実施例1に係る消去処理(図6を参照)又は実施例3に係る消去処理(図11を参照)を実行しながら、データ消去の進捗度を同様に表示してもよい。
 以上のように、本開示における技術の例示として、実施形態を説明した。そのために、添付図面および詳細な説明を提供した。
 したがって、添付図面および詳細な説明に記載された構成要素の中には、課題解決のために必須な構成要素だけでなく、上記技術を例示するために、課題解決のためには必須でない構成要素も含まれ得る。そのため、それらの必須ではない構成要素が添付図面や詳細な説明に記載されていることをもって、直ちに、それらの必須ではない構成要素が必須であるとの認定をするべきではない。
 また、上述の実施形態は、本開示における技術を例示するためのものであるから、特許請求の範囲またはその均等の範囲において種々の変更、置き換え、付加、省略などを行うことができる。
[実施形態のまとめ]
 本開示の第1の態様に係る情報処理装置は、
 格納されるデータの自己暗号化機能を有する記憶装置と、
 前記記憶装置に格納されたデータの消去を制御する消去コントローラとを備え、
 前記記憶装置は、
 記憶領域を有する記憶媒体と、
 暗号鍵を格納した不揮発性メモリと、
 入力されたデータを前記記憶領域に書き込み、前記記憶領域から読み出されたデータを出力し、前記記憶領域に書き込まれるデータの少なくとも一部を前記暗号鍵を用いて暗号化し、前記記憶領域から読み出されたデータの少なくとも一部を前記暗号鍵を用いて復号する入出力コントローラとを備え、
 前記消去コントローラは、
 前記不揮発性メモリに第1の暗号鍵が格納されている場合、前記記憶領域の指定された位置に格納されるべきデータに基づいて、又は、前記記憶領域の指定された位置に格納されているデータに基づいて計算された第1のハッシュ値を取得し、
 前記不揮発性メモリに格納された前記第1の暗号鍵を第2の暗号鍵に変更するように前記記憶装置を制御し、
 前記不揮発性メモリに前記第2の暗号鍵が格納されている場合、前記記憶領域の前記指定された位置から読み出されたデータに基づいて第2のハッシュ値を計算し、
 前記第2のハッシュ値が前記第1のハッシュ値とは異なる場合、前記記憶装置に格納されたデータの消去に成功したことを示す検証結果を出力し、
 前記第2のハッシュ値が前記第1のハッシュ値に一致する場合、前記記憶装置に格納されたデータの消去に失敗したことを示す検証結果を出力する。
 本開示の第2の態様に係る情報処理装置は、第1の態様に係る情報処理装置において、
 前記消去コントローラは、予め決められたパターンデータを前記記憶領域の前記指定された位置に格納するように前記記憶装置を制御し、
 前記第1のハッシュ値は、前記パターンデータに基づいて計算される。
 本開示の第3の態様に係る情報処理装置は、第1の態様に係る情報処理装置において、
 前記消去コントローラは、前記記憶領域の前記指定された位置から読み出されたデータに基づいて、前記第1のハッシュ値を計算する。
 本開示の第4の態様に係る情報処理装置は、第3の態様に係る情報処理装置において、
 前記記憶領域は複数のブロックを含み、
 前記第1及び第2のハッシュ値は、予め決められた個数のブロックごとに、当該ブロックに格納されたデータに基づいて計算される。
 本開示の第5の態様に係る情報処理装置は、第1~第4のうちの1つの態様に係る情報処理装置において、
 前記記憶領域は、前記記憶領域を論理的に分割した複数の部分領域であって、論理的に連続した複数のブロックをそれぞれ含む複数の部分領域を含み、
 前記消去コントローラは、前記複数の部分領域のそれぞれに関して、当該部分領域に含まれる複数のブロックのうち、前記部分領域ごとに異なる割合のブロックを指定し、
 前記第1及び第2のハッシュ値は、前記指定された複数のブロックに格納されたデータに基づいて計算される。
 本開示の第6の態様に係る情報処理装置は、第1~第4のうちの1つの態様に係る情報処理装置において、
 前記記憶領域は複数のブロックを含み、
 前記第1及び第2のハッシュ値は、論理的に互いに隣接する複数のブロックに格納されたデータに基づいて計算される。
 本開示の第7の態様に係る情報処理装置は、第1の態様に係る情報処理装置において、
 前記記憶領域は、前記記憶領域を互いに異なる複数のサイズで論理的に分割した複数の部分領域を含み、
 前記第1のハッシュ値は、前記複数のサイズを有する前記複数の部分領域のそれぞれに関して、当該部分領域に格納されたデータに基づいて計算され、
 前記消去コントローラは、
 前記複数のサイズのうち第1のサイズを有する複数の部分領域のそれぞれに関して、当該部分領域に格納されたデータに基づいて前記第2のハッシュ値を計算し、
 前記第1のサイズを有する部分領域に関して前記第2のハッシュ値が前記第1のハッシュ値とは異なる場合、前記記憶装置に格納されたデータの消去に成功したことを示す検証結果を出力し、
 前記第1のサイズを有する部分領域に関して前記第2のハッシュ値が前記第1のハッシュ値に一致する場合、前記複数のサイズのうち、前記第1のサイズよりも小さい第2のサイズを有する複数の部分領域のそれぞれに関して、当該部分領域に格納されたデータに基づいて前記第2のハッシュ値を計算し、
 前記第2のサイズを有する部分領域に関して前記第2のハッシュ値が前記第1のハッシュ値とは異なる場合、前記記憶装置に格納されたデータの消去に成功したことを示す検証結果を出力する。
 本開示の第8の態様に係る情報処理装置によれば、第1~第7のうちの1つの態様に係る情報処理装置において、
 前記検証結果を出力する第1の表示装置を備える。
 本開示の第9の態様に係る情報処理装置は、第8の態様に係る情報処理装置において、
 前記消去コントローラは、前記記憶装置に格納されたデータの消去の進捗度を前記第1の表示装置に出力する。
 本開示の第10の態様に係る情報処理システムは、
 第1~第9のうちの1つの態様に係る情報処理装置と、
 前記情報処理装置に通信回線を介して接続されたサーバ装置とを備え、
 前記消去コントローラは、前記サーバ装置から受信された制御信号に従って、前記記憶装置に格納されたデータの消去を制御する。
 本開示の第11の態様に係る情報処理システムによれば、第10の態様に係る情報処理システムにおいて、
 前記消去コントローラは、前記検証結果を含む第1の通知信号を前記サーバ装置に送信し、
 前記サーバ装置は、前記検証結果を出力する第2の表示装置を備える。
 本開示の第12の態様に係る情報処理システムによれば、第11の態様に係る情報処理システムにおいて、
 前記消去コントローラは、前記記憶装置に格納されたデータの消去の進捗度を含む第2の通知信号を前記サーバ装置に送信し、
 前記第2の表示装置は前記進捗度を表示する。
 本開示の第13の態様に係る情報処理方法は、
 自己暗号化機能を有する記憶装置に格納されたデータの消去を制御する情報処理方法であって、
 前記記憶装置は、
 記憶領域を有する記憶媒体と、
 暗号鍵を格納した不揮発性メモリと、
 入力されたデータを前記記憶領域に書き込み、前記記憶領域から読み出されたデータを出力し、前記記憶領域に書き込まれるデータの少なくとも一部を前記暗号鍵を用いて暗号化し、前記記憶領域から読み出されたデータの少なくとも一部を前記暗号鍵を用いて復号する入出力コントローラとを備え、
 前記情報処理方法は、
 前記不揮発性メモリに第1の暗号鍵が格納されている場合、前記記憶領域の指定された位置に格納されるべきデータに基づいて、又は、前記記憶領域の指定された位置に格納されているデータに基づいて計算された第1のハッシュ値を取得するステップと、
 前記不揮発性メモリに格納された前記第1の暗号鍵を第2の暗号鍵に変更するように前記記憶装置を制御するステップと、
 前記不揮発性メモリに前記第2の暗号鍵が格納されている場合、前記記憶領域の前記指定された位置から読み出されたデータに基づいて第2のハッシュ値を計算するステップと、
 前記第2のハッシュ値が前記第1のハッシュ値とは異なる場合、前記記憶装置に格納されたデータの消去に成功したことを示す検証結果を出力するステップと、
 前記第2のハッシュ値が前記第1のハッシュ値に一致する場合、前記記憶装置に格納されたデータの消去に失敗したことを示す検証結果を出力するステップとを含む。
 本開示の第13の態様に係るプログラムは、
 情報処理装置に実装されたプロセッサによって実行される命令を含むプログラムであって、
 前記情報処理装置は、格納されるデータの自己暗号化機能を有する記憶装置をさらに備え、
 前記記憶装置は、
 記憶領域を有する記憶媒体と、
 暗号鍵を格納した不揮発性メモリと、
 入力されたデータを前記記憶領域に書き込み、前記記憶領域から読み出されたデータを出力し、前記記憶領域に書き込まれるデータの少なくとも一部を前記暗号鍵を用いて暗号化し、前記記憶領域から読み出されたデータの少なくとも一部を前記暗号鍵を用いて復号する入出力コントローラとを備え、
 前記命令は、前記プロセッサに、
 前記不揮発性メモリに第1の暗号鍵が格納されている場合、前記記憶領域の指定された位置に格納されるべきデータに基づいて、又は、前記記憶領域の指定された位置に格納されているデータに基づいて計算された第1のハッシュ値を取得することと、
 前記不揮発性メモリに格納された前記第1の暗号鍵を第2の暗号鍵に変更するように前記記憶装置を制御することと、
 前記不揮発性メモリに前記第2の暗号鍵が格納されている場合、前記記憶領域の前記指定された位置から読み出されたデータに基づいて第2のハッシュ値を計算することと、
 前記第2のハッシュ値が前記第1のハッシュ値とは異なる場合、前記記憶装置に格納されたデータの消去に成功したことを示す検証結果を出力することと、
 前記第2のハッシュ値が前記第1のハッシュ値に一致する場合、前記記憶装置に格納されたデータの消去に失敗したことを示す検証結果を出力することとを実行させる。
 本開示の一態様に係る情報処理装置は、自己暗号化機能を有する記憶装置に格納されたデータの消去に成功したか否かを検証することに有用である。
1,1A 情報処理装置
10 バス
11 中央処理装置(CPU)
12 ランダムアクセスメモリ(RAM)
13 記憶装置
14 消去コントローラ
15 不揮発性メモリ
16 通信装置
17 入力装置
18 表示装置
19 装置インターフェース(I/F)
21 入出力コントローラ
22 ランダムアクセスメモリ(RAM)
23 不揮発性メモリ
24 フラッシュメモリ
31 論理ブロック
41 外部記憶装置
100 情報処理システム
120 バス
121 中央処理装置(CPU)
122 ランダムアクセスメモリ(RAM)
123 記憶装置
126 通信装置
127 入力装置
128 表示装置

Claims (14)

  1.  格納されるデータの自己暗号化機能を有する記憶装置と、
     前記記憶装置に格納されたデータの消去を制御する消去コントローラとを備え、
     前記記憶装置は、
     記憶領域を有する記憶媒体と、
     暗号鍵を格納した不揮発性メモリと、
     入力されたデータを前記記憶領域に書き込み、前記記憶領域から読み出されたデータを出力し、前記記憶領域に書き込まれるデータの少なくとも一部を前記暗号鍵を用いて暗号化し、前記記憶領域から読み出されたデータの少なくとも一部を前記暗号鍵を用いて復号する入出力コントローラとを備え、
     前記消去コントローラは、
     前記不揮発性メモリに第1の暗号鍵が格納されている場合、前記記憶領域の指定された位置に格納されるべきデータに基づいて、又は、前記記憶領域の指定された位置に格納されているデータに基づいて計算された第1のハッシュ値を取得し、
     前記不揮発性メモリに格納された前記第1の暗号鍵を第2の暗号鍵に変更するように前記記憶装置を制御し、
     前記不揮発性メモリに前記第2の暗号鍵が格納されている場合、前記記憶領域の前記指定された位置から読み出されたデータに基づいて第2のハッシュ値を計算し、
     前記第2のハッシュ値が前記第1のハッシュ値とは異なる場合、前記記憶装置に格納されたデータの消去に成功したことを示す検証結果を出力し、
     前記第2のハッシュ値が前記第1のハッシュ値に一致する場合、前記記憶装置に格納されたデータの消去に失敗したことを示す検証結果を出力する、
    情報処理装置。
  2.  前記消去コントローラは、予め決められたパターンデータを前記記憶領域の前記指定された位置に格納するように前記記憶装置を制御し、
     前記第1のハッシュ値は、前記パターンデータに基づいて計算される、
    請求項1記載の情報処理装置。
  3.  前記消去コントローラは、前記記憶領域の前記指定された位置から読み出されたデータに基づいて、前記第1のハッシュ値を計算する、
    請求項1記載の情報処理装置。
  4.  前記記憶領域は複数のブロックを含み、
     前記第1及び第2のハッシュ値は、予め決められた個数のブロックごとに、当該ブロックに格納されたデータに基づいて計算される、
    請求項3記載の情報処理装置。
  5.  前記記憶領域は、前記記憶領域を論理的に分割した複数の部分領域であって、論理的に連続した複数のブロックをそれぞれ含む複数の部分領域を含み、
     前記消去コントローラは、前記複数の部分領域のそれぞれに関して、当該部分領域に含まれる複数のブロックのうち、前記部分領域ごとに異なる割合のブロックを指定し、
     前記第1及び第2のハッシュ値は、前記指定された複数のブロックに格納されたデータに基づいて計算される、
    請求項1~4のうちの1つに記載の情報処理装置。
  6.  前記記憶領域は複数のブロックを含み、
     前記第1及び第2のハッシュ値は、論理的に互いに隣接する複数のブロックに格納されたデータに基づいて計算される、
    請求項1~4のうちの1つに記載の情報処理装置。
  7.  前記記憶領域は、前記記憶領域を互いに異なる複数のサイズで論理的に分割した複数の部分領域を含み、
     前記第1のハッシュ値は、前記複数のサイズを有する前記複数の部分領域のそれぞれに関して、当該部分領域に格納されたデータに基づいて計算され、
     前記消去コントローラは、
     前記複数のサイズのうち第1のサイズを有する複数の部分領域のそれぞれに関して、当該部分領域に格納されたデータに基づいて前記第2のハッシュ値を計算し、
     前記第1のサイズを有する部分領域に関して前記第2のハッシュ値が前記第1のハッシュ値とは異なる場合、前記記憶装置に格納されたデータの消去に成功したことを示す検証結果を出力し、
     前記第1のサイズを有する部分領域に関して前記第2のハッシュ値が前記第1のハッシュ値に一致する場合、前記複数のサイズのうち、前記第1のサイズよりも小さい第2のサイズを有する複数の部分領域のそれぞれに関して、当該部分領域に格納されたデータに基づいて前記第2のハッシュ値を計算し、
     前記第2のサイズを有する部分領域に関して前記第2のハッシュ値が前記第1のハッシュ値とは異なる場合、前記記憶装置に格納されたデータの消去に成功したことを示す検証結果を出力する、
    請求項1記載の情報処理装置。
  8.  前記検証結果を出力する第1の表示装置を備える、
    請求項1記載の情報処理装置。
  9.  前記消去コントローラは、前記記憶装置に格納されたデータの消去の進捗度を前記第1の表示装置に出力する、
    請求項8記載の情報処理装置。
  10.  請求項1記載の情報処理装置と、
     前記情報処理装置に通信回線を介して接続されたサーバ装置とを備える情報処理システムであって、
     前記消去コントローラは、前記サーバ装置から受信された制御信号に従って、前記記憶装置に格納されたデータの消去を制御する、
    情報処理システム。
  11.  前記消去コントローラは、前記検証結果を含む第1の通知信号を前記サーバ装置に送信し、
     前記サーバ装置は、前記検証結果を出力する第2の表示装置を備える、
    請求項10記載の情報処理システム。
  12.  前記消去コントローラは、前記記憶装置に格納されたデータの消去の進捗度を含む第2の通知信号を前記サーバ装置に送信し、
     前記第2の表示装置は前記進捗度を表示する、
    請求項11記載の情報処理システム。
  13.  自己暗号化機能を有する記憶装置に格納されたデータの消去を制御する情報処理方法であって、
     前記記憶装置は、
     記憶領域を有する記憶媒体と、
     暗号鍵を格納した不揮発性メモリと、
     入力されたデータを前記記憶領域に書き込み、前記記憶領域から読み出されたデータを出力し、前記記憶領域に書き込まれるデータの少なくとも一部を前記暗号鍵を用いて暗号化し、前記記憶領域から読み出されたデータの少なくとも一部を前記暗号鍵を用いて復号する入出力コントローラとを備え、
     前記情報処理方法は、
     前記不揮発性メモリに第1の暗号鍵が格納されている場合、前記記憶領域の指定された位置に格納されるべきデータに基づいて、又は、前記記憶領域の指定された位置に格納されているデータに基づいて計算された第1のハッシュ値を取得するステップと、
     前記不揮発性メモリに格納された前記第1の暗号鍵を第2の暗号鍵に変更するように前記記憶装置を制御するステップと、
     前記不揮発性メモリに前記第2の暗号鍵が格納されている場合、前記記憶領域の前記指定された位置から読み出されたデータに基づいて第2のハッシュ値を計算するステップと、
     前記第2のハッシュ値が前記第1のハッシュ値とは異なる場合、前記記憶装置に格納されたデータの消去に成功したことを示す検証結果を出力するステップと、
     前記第2のハッシュ値が前記第1のハッシュ値に一致する場合、前記記憶装置に格納されたデータの消去に失敗したことを示す検証結果を出力するステップとを含む、
    情報処理方法。
  14.  情報処理装置に実装されたプロセッサによって実行される命令を含むプログラムであって、
     前記情報処理装置は、格納されるデータの自己暗号化機能を有する記憶装置をさらに備え、
     前記記憶装置は、
     記憶領域を有する記憶媒体と、
     暗号鍵を格納した不揮発性メモリと、
     入力されたデータを前記記憶領域に書き込み、前記記憶領域から読み出されたデータを出力し、前記記憶領域に書き込まれるデータの少なくとも一部を前記暗号鍵を用いて暗号化し、前記記憶領域から読み出されたデータの少なくとも一部を前記暗号鍵を用いて復号する入出力コントローラとを備え、
     前記命令は、前記プロセッサに、
     前記不揮発性メモリに第1の暗号鍵が格納されている場合、前記記憶領域の指定された位置に格納されるべきデータに基づいて、又は、前記記憶領域の指定された位置に格納されているデータに基づいて計算された第1のハッシュ値を取得することと、
     前記不揮発性メモリに格納された前記第1の暗号鍵を第2の暗号鍵に変更するように前記記憶装置を制御することと、
     前記不揮発性メモリに前記第2の暗号鍵が格納されている場合、前記記憶領域の前記指定された位置から読み出されたデータに基づいて第2のハッシュ値を計算することと、
     前記第2のハッシュ値が前記第1のハッシュ値とは異なる場合、前記記憶装置に格納されたデータの消去に成功したことを示す検証結果を出力することと、
     前記第2のハッシュ値が前記第1のハッシュ値に一致する場合、前記記憶装置に格納されたデータの消去に失敗したことを示す検証結果を出力することとを実行させる、
    プログラム。
PCT/JP2023/037435 2022-12-26 2023-10-16 情報処理装置 Ceased WO2024142555A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2024567238A JP7777800B2 (ja) 2022-12-26 2023-10-16 情報処理装置
EP23911339.2A EP4645139A4 (en) 2022-12-26 2023-10-16 INFORMATION PROCESSING DEVICE

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2022-208965 2022-12-26
JP2022208965 2022-12-26
JP2023100945 2023-06-20
JP2023-100945 2023-06-20

Publications (1)

Publication Number Publication Date
WO2024142555A1 true WO2024142555A1 (ja) 2024-07-04

Family

ID=91717323

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/037435 Ceased WO2024142555A1 (ja) 2022-12-26 2023-10-16 情報処理装置

Country Status (3)

Country Link
EP (1) EP4645139A4 (ja)
JP (1) JP7777800B2 (ja)
WO (1) WO2024142555A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080082836A1 (en) * 2006-09-29 2008-04-03 Hitachi, Ltd. Method and apparatus for data protection
JP7096829B2 (ja) 2017-02-02 2022-07-06 ブランコ テクノロジー グループ アイピー オイ データ削除処理を検証する方法及びシステム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9363085B2 (en) * 2013-11-25 2016-06-07 Seagate Technology Llc Attestation of data sanitization

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080082836A1 (en) * 2006-09-29 2008-04-03 Hitachi, Ltd. Method and apparatus for data protection
JP7096829B2 (ja) 2017-02-02 2022-07-06 ブランコ テクノロジー グループ アイピー オイ データ削除処理を検証する方法及びシステム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
RICHARD KISSEL ET AL.: "Guidelines for Media Sanitization", 1 December 2022, NIST SPECIAL PUBLICATION
See also references of EP4645139A1

Also Published As

Publication number Publication date
JPWO2024142555A1 (ja) 2024-07-04
EP4645139A1 (en) 2025-11-05
EP4645139A4 (en) 2026-04-29
JP7777800B2 (ja) 2025-12-01

Similar Documents

Publication Publication Date Title
US10887086B1 (en) Protecting data in a storage system
EP3025271B1 (en) Key rotation for a memory controller
US10733061B2 (en) Hybrid data storage system with private storage cloud and public storage cloud
US10540198B2 (en) Technologies for memory replay prevention using compressive encryption
JP7096829B2 (ja) データ削除処理を検証する方法及びシステム
US20200266998A1 (en) Data Storage Devices and Methods for Encrypting a Firmware File Thereof
US10289310B2 (en) Hybrid data storage system with private storage cloud and public storage cloud
JP2014086089A (ja) セキュリティ管理ユニットとそれを含むホストコントローラインターフェース及びその動作方法、並びにホストコントローラインターフェースを含むコンピュータシステム
US12008235B2 (en) Data storage device and method for rewriting parameters thereof
JP2020038650A (ja) ベクトルプロセッサ格納
EP2998903B1 (en) System and method for robust full-drive encryption
US20240320150A1 (en) Deduplicating Data Based On Recently Reading The Data
TW201525761A (zh) 開放系統之函式庫的加密及解密方法
JP2009111687A (ja) 記憶装置、暗号化データ処理方法
JP2008052360A (ja) ストレージ装置およびライト実行プログラム
JP6944317B2 (ja) ファイル転送システムおよびファイル転送方法
JP7777800B2 (ja) 情報処理装置
TWI869715B (zh) 半導體裝置及用以管理其之安全操作的系統與方法
US20250138748A1 (en) Memory system and random number generation device
WO2024262068A1 (ja) 情報処理システム
KR20210035912A (ko) 암호화 동작에 기초한 데이터 세그먼트 수정
US10929030B2 (en) Computer and control method
US10785024B2 (en) Encryption key structure within block based memory
US20150249467A1 (en) Storage device, controller, and data writing method
US11573912B2 (en) Memory device management system, memory device management method, and non-transitory computer-readable recording medium erasing data stored in memory device if a value of a first key and second key are different

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23911339

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2024567238

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2023911339

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2023911339

Country of ref document: EP

Effective date: 20250728

ENP Entry into the national phase

Ref document number: 2023911339

Country of ref document: EP

Effective date: 20250728

WWP Wipo information: published in national office

Ref document number: 2023911339

Country of ref document: EP