This application is based upon and claims the benefit of priority from prior Japanese Patent Application No. 2011-116191, filed May 24, 2011, the entire contents of which are incorporated herein by reference.
Embodiments described herein relate generally to a data storage apparatus having a function of encrypting data, a storage control apparatus, and a data recovery method.
In recent years, data storage apparatuses, such as hard disk drives (hereinafter referred to as “disk drives”), have been developed, each configured to encrypt data for the security thereof, and to store the encrypted data in a storage medium, for example, a disk, and to read the encrypted data from the storage medium, decrypt the data and to transfer the decrypted data to a host system in response to a read command coming from the host system.
The data storage apparatus includes not only a disk drive, but also a solid-state drive (SSD) having flash memories as storage media. Any disk drive that has the function of encrypting and decrypting data is occasionally called a “self-encrypting disk (SED) drive.”
In the disk drive having the function of encrypting and decrypting data, only the latest encryption key (also known as a “new encryption key”) being used at preset is stored in an internal memory. On the other hand, the disk stores not only the data encrypted with the new encryption key, but also the data encrypted with the encryption key used before (also known as an “old encryption key”) is stored. The disk may store data encrypted with a plurality of old encryption keys, along with data encrypted with the new encryption key.
In this type of a disk drive, the data representing the history of using encryption keys (i.e., key generation data) is therefore written on the disk when any encrypted data is written on the disk. To read the data, the key generation data is checked, determining whether the data has been encrypted with the new encryption key. If the data has been encrypted with the new encryption key, it will be decrypted with the new encryption key. If the data has been encrypted with any old encryption key, it cannot be decrypted. In this case, initialized data or insignificant random data are generated.
The data storage apparatus such as a disk drive can operate in a write mode, in which the data read from the storage medium is temporarily saved in a buffer memory and then written back to the storage medium. More specifically, so-called data refreshing is performed, writing the data again in a track. As a recording magnetic field is applied to a track to write data at the track, it leaks to the adjacent tracks in most cases, inevitably influencing the data recorded in the adjacent tracks. Writing the data again in the adjacent tracks by the data refreshing, it is possible to suppress the influence of the leakage of magnetic field.
As pointed out above, the data encrypted with the new encryption key is stored in the disk, together with the data encrypted with the old encryption keys. Therefore, the disk drive does not decrypt the data read from the disk, but temporarily saves it in the buffer memory. Then, the disk drive analyzes the key generation data contained in the data read from the buffer memory, then isolates the new data encrypted with the new encryption key from the old data encrypted with any old encryption keys, and finally writes these data again on the disk.
The disk drive must therefore spend time analyzing the key generation data, and spend more time isolating and writing the new data and the old data. The operating efficiency of the disk drive should therefore be increased.
A general architecture that implements the various features of the embodiments will now be described with reference to the drawings. The drawings and the associated descriptions are provided to illustrate the embodiments and not to limit the scope of the invention.
Various embodiments will be described hereinafter with reference to the accompanying drawings.
In general, according to one embodiment, a data storage apparatus includes a read module, a data transfer module, and a table generator. The read module reads encrypted data, in specific units, from a storage medium. The data transfer module transfers the data read by the read module, to a first buffer area. The table generator acquires key generation ID data identifying a new encryption key being used and an old encryption key used before, while the data transfer module is transferring the data, and generates table data including the key generation ID data associated with the units of data, respectively. The key generation ID data identifies the new encryption key being used and the old encryption key used before.
[Configuration of the Data Storage Apparatus]
As seen from
The disk drive 1 has a head 11, a read/write module 12, a hard disk controller (HDC) 13, a microprocessor unit (MPU) 18, and a memory 19. The head 11 is mounted on an actuator (not shown) and can move over the disk 10 in the radial direction thereof, and is configured to write and read data at any designated track.
The read/write module 12, which is also called a “read/write channel,” processes read/write signals and supplies these signals to the head 11, reproduces data from any signal read from the disk 10, and converts data to be written on the disk 10, to a write signal.
The HDC 13 includes a read/write (R/W) controller 14, a servo controller 15, an error checking and correction (ECC) module 16, and an encryption/decryption module 17. In unison with the MPU 18, the HDC 13 performs interface control with respect to the host apparatus 2. Further, the HDC 13 uses the buffer area of the memory 19, and controls the data transfer to and from the host apparatus 2.
The R/W controller 14 uses the buffer area of the memory 19, and controls the data transfer to and from the read/write module 12. The servo controller 15 uses the servo data recorded on the disk 10, controlling the position of the head 11.
The ECC module 16 uses the error correction code (ECC) data added to the data read from the disk 10, thereby performing an error checking and correction (ECC) process. As will be described later in detail, the ECC module 16 further performs a process of encoding key generation data (also referred to as “latest/old key generation identification data”) identifying a new encryption key or an old encryption key. The ECC module 16 then adds the encoded key generation data to the ECC data, and performs a process of recovering the key generation data from the ECC data.
The encryption/decryption module 17 is constituted by hardware logic configured to use the new encryption key stored in an external memory, thereby to encrypting or decrypting data. The new encryption key is the latest encryption key being used at present. As will be described later, the encryption/decryption module 17 operates in so-called bypass mode, transferring data not encrypted or decrypted, to read and write data, ultimately in order to write the data back. Note that any one of the encryption keys used before is called an “old encryption key” with respect to the new encryption key.
[Process of Writing the Data Back]
The HDC 13 performs the process of writing the data back to the disk 10, thereby to achieve, for example, data refreshing. The operations of the HDC 13 will be explained. More precisely, the read process and write process will be described in the order they are mentioned.
First, the read process will be described with reference to
As understood in
In the disk drive 1, data 30 in units of sectors are handled as access units. Many data 30 are recorded at one track, one continuous to another. Each data 30 consists of sector data 31, i.e., user data transferred from the host apparatus 2, a cyclic redundancy check (CRC) code 32, and ECC data 33.
In the HDC 13, the ECC module 16 uses the ECC data 33, performing an ECC process on each unit data 30, as shown in the flowchart of
The encryption/decryption module 17 receives the key generation data from the ECC module 16 and holds the same in an internal register 23. In the encryption/decryption module 17, the sector data 31 and the CRC code 32, both output from the ECC module 16, are supplied through a bypass 22, not through a route 21 including the decoder 20 (Block 106). A CRC module (not shown) checks the sector data 31 and the CRC code 32 for errors.
In the encryption/decryption module 17, the sector data 31 the CRC code, both decoded by the decoder 20 may be directly transferred to the memory 19, not through the bypass 22 (Block 015). In this case, the sector data 31 is encrypted with the new encryption key. The sector data 31 encrypted with the old encryption key is converted to initialized data or to insignificant random data.
The HDC 13 stores the sector data 31 and CRC code 32 output from the encryption/decryption module 17, in a data buffer area 190 provided in the memory 19, as shown in
In the encryption/decryption module 17, the register 23 holds the key generation data (i.e., latest/old key generation identification data) recovered by the ECC module 16. From the key generation data, it is determined whether the encryption key being used is new or old (Block 102).
As shown in
As shown in
As shown in the flowchart of
The process of writing the data back will be explained with reference to
As shown in the flowchart of
As shown in the flowchart of
More precisely, as seen from
As shown in
With reference to the flowchart of
With reference to the flowchart of
As has been described, to write data back to the disk in this embodiment in order to achieve data refreshing, the key generation data 40 can be collected, forming a key generation table 500 and storing the table 500 in the data buffer area 191, while the data read from the disk 10 in the read process is being saved in the data buffer area 190. Hence, the disk drive 1 can simultaneously save the data and generate the key generation data 40, while the disk 10 is rotating once.
Moreover, in the write process, the key generation data 40 can be generated while the data is being acquired from the data buffer area 190. The data can be written back to the disk 10, together with the key generation data 40, while the disk 10 is rotating once.
Hence, the data can be written back to the disk 10 to achieve data refreshing, at a higher speed than otherwise. This can increase the data refreshing efficiency in the data storage apparatus that has the function of encrypting and decrypting data. The technique of writing the data back to the disk 10 is advantageous, particularly in any data storage apparatus that does not record key generation data 40 directly on the storage medium.
The embodiment described above is based on the assumption that the encryption/decryption module 17 is constituted by hardware logic. Nonetheless, the encryption/decryption module 17 can be a software module instead, if the saving of the data and the collecting of the key generation data can be performed at the same time. The embodiment can is applied not only to a disk drive, but also to a data storage apparatus, such as an SSD, in which data must be subjected to wear-leveling control or a refreshing process.
The various modules of the systems described herein can be implemented as software applications, hardware and/or software modules, or components on one or more computers, such as servers. While the various modules are illustrated separately, they may share some or all of the same underlying logic or code.
While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel embodiments described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the embodiments described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the inventions.
Number | Date | Country | Kind |
---|---|---|---|
2011-116191 | May 2011 | JP | national |