JP5481354B2 - Information processing device - Google Patents

Information processing device Download PDF

Info

Publication number
JP5481354B2
JP5481354B2 JP2010257928A JP2010257928A JP5481354B2 JP 5481354 B2 JP5481354 B2 JP 5481354B2 JP 2010257928 A JP2010257928 A JP 2010257928A JP 2010257928 A JP2010257928 A JP 2010257928A JP 5481354 B2 JP5481354 B2 JP 5481354B2
Authority
JP
Japan
Prior art keywords
command
divided data
unit
encryption
data
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.)
Expired - Fee Related
Application number
JP2010257928A
Other languages
Japanese (ja)
Other versions
JP2012108779A (en
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.)
Kyocera Document Solutions Inc
Original Assignee
Kyocera Document Solutions Inc
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 Kyocera Document Solutions Inc filed Critical Kyocera Document Solutions Inc
Priority to JP2010257928A priority Critical patent/JP5481354B2/en
Publication of JP2012108779A publication Critical patent/JP2012108779A/en
Application granted granted Critical
Publication of JP5481354B2 publication Critical patent/JP5481354B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明はハードディスクドライブ用の暗号化復号化装置に関し、特にブロック暗号を用いる暗号化復号化装置に関する。   The present invention relates to an encryption / decryption device for a hard disk drive, and more particularly to an encryption / decryption device using a block cipher.

情報処理装置において、データ量が大きくなると、メモリの容量が不足するので、仮想メモリが利用される。仮想メモリとはメモリの容量が足りなくなれば、一部のデータをハードディスクドライブ等の補助記憶装置に移すことにより、メモリ容量を確保するオペレーティングシステムの機能である。   In the information processing apparatus, when the amount of data increases, the capacity of the memory becomes insufficient, so a virtual memory is used. Virtual memory is a function of an operating system that secures memory capacity by transferring some data to an auxiliary storage device such as a hard disk drive when the memory capacity is insufficient.

ハードディスクドライブは電源が切れてもデータが消えないので、仮想メモリとしてハードディスクドライブを利用すると、仮想メモリに記憶されたデータが残ることがある。このためデータを暗号化して仮想メモリに記憶することによって、データの漏洩を防止する場合がある。   Since data is not lost even when the power is turned off, data stored in the virtual memory may remain when the hard disk drive is used as the virtual memory. For this reason, data leakage may be prevented by encrypting the data and storing it in the virtual memory.

データを暗号化する方法としてブロック暗号がある。ブロック暗号とはデータを一定の長さのブロックごとに区切り、ブロック単位で暗号化することである。ブロック暗号にはいくつかのモードがあり、そのうちAES(Advanced Encryption Standard)のCBC(Cipher Block Chaining)モードでは、先頭ブロックについては外部から与えた初期ベクトル(Initial Vector)を利用して暗号化し、残りのブロックについては暗号化された一つ前のブロックを利用して暗号化する。   There is a block cipher as a method of encrypting data. The block cipher is to divide data into blocks of a certain length and encrypt them in units of blocks. There are several block cipher modes. Among them, in the AES (Advanced Encryption Standard) CBC (Cipher Block Chaining) mode, the initial block is encrypted using the initial vector (Initial Vector) given from the outside, and the rest This block is encrypted using the previous block that has been encrypted.

ハードディスクドライブにはNCQ(Native Command Queuing)と称されるデータ転送技術がある。ハードディスクドライブはホストコントローラから送られてきたコマンドを実行してデータを転送する。NCQにおいてハードディスクドライブは、ホストコントローラから送られてコマンドをキューイングし、セクタへのアクセス効率が高まるようにコマンドの順番を並び替えてコマンドを実行する。NCQによればセクタに効率的にアクセスできるのでデータの転送を速くすることができる。   A hard disk drive has a data transfer technology called NCQ (Native Command Queuing). The hard disk drive executes commands sent from the host controller and transfers data. In NCQ, the hard disk drive queues commands sent from the host controller, and executes the commands by rearranging the order of the commands so that the sector access efficiency is improved. According to NCQ, the sector can be accessed efficiently, so that data transfer can be accelerated.

NCQではハードディスクドライブでキューイングできるコマンド数が多ければ、セクタへのアクセス効率が高まる。SATA(Serial Advanced Technology Attachment)はコンピュータにハードディスクドライブ等の記憶装置を接続するためのインターフェース規格の一つであり、SATAのNCQでは最大32個までコマンドをキューイングすることができる。   In NCQ, if the number of commands that can be queued in the hard disk drive is large, the access efficiency to the sector increases. SATA (Serial Advanced Technology Attachment) is one of interface standards for connecting a storage device such as a hard disk drive to a computer. The SATA NCQ can queue up to 32 commands.

NCQを利用するハードディスクドライブではコマンドの順番が変更されるので、データを上記CBCモードで暗号化してハードディスクドライブに記憶する場合、コマンドの順番が変更されても、正しい初期ベクトルが生成できるようにしなければならない。そこで、初期ベクトルの生成にLBA(Logical Block Addressing)を用いる技術が提案されている(例えば特許文献1参照)。LBAはハードディスクドライブの全てのセクタに通し番号を振り、その通し番号によってセクタを指定する方式である。   Since the order of commands is changed in a hard disk drive using NCQ, when data is encrypted and stored in the hard disk drive in the CBC mode, a correct initial vector must be generated even if the order of commands is changed. I must. Thus, a technique using LBA (Logical Block Addressing) for generating an initial vector has been proposed (see, for example, Patent Document 1). LBA is a system in which serial numbers are assigned to all sectors of a hard disk drive, and sectors are designated by the serial numbers.

特開2009−187646号公報JP 2009-187646 A

データを暗号化すれば暗号化及び復号化の時間を要するので、それだけデータの転送が遅くなる。データには暗号化したいデータ(パスワード等の機密性の高いデータ)と暗号化しなくてもよいデータ(機密性のないデータ)がある。   If data is encrypted, it takes time for encryption and decryption, so that data transfer is delayed accordingly. There are data to be encrypted (data with high confidentiality such as a password) and data that does not need to be encrypted (data without confidentiality).

メモリとハードディスクドライブとの間でデータを転送する際に、データの中に暗号化するデータと暗号化しないデータとが混在することがある。このような場合に、暗号化するデータについては暗号化して転送し、暗号化しないデータについては暗号化しないで転送できれば便利である。   When data is transferred between the memory and the hard disk drive, data to be encrypted and data to be encrypted may be mixed in the data. In such a case, it is convenient if data to be encrypted can be transferred after being encrypted, and data that is not encrypted can be transferred without being encrypted.

本発明は、キューイングされたコマンドの順番を並び替えてコマンドを実行することができるハードディスクドライブにおいて、転送されるデータの中に暗号化するデータと暗号化しないデータとが混在する場合、暗号化するデータは暗号化して転送し、暗号化しないデータは暗号化しないで転送できるハードディスクドライブ用の暗号化復号化装置及びそれを備える情報処理装置を提供することを目的とする。   In the hard disk drive capable of executing the commands by rearranging the order of the queued commands, the encryption is performed when data to be encrypted and data to be encrypted are mixed in the transferred data. An object of the present invention is to provide an encryption / decryption device for a hard disk drive that can transfer data to be encrypted and transfer data that is not encrypted without encryption, and an information processing device including the same.

上記目的を達成する本発明の第1の局面に係るハードディスクドライブ用の暗号化復号化装置は、メモリとの間でデータを転送するために発行されたコマンドをキューイングし、キューイングされた前記コマンドの順番を並び替えて前記コマンドを実行することにより前記データを転送し、前記データを転送する場合に前記データをセクタに記憶される単位で分割した分割データ毎に転送するハードディスクドライブに用いられる暗号化復号化装置であって、前記コマンドを発行し、前記コマンドで転送される前記分割データについて暗号化の有無を指示する指示情報を前記コマンド毎に付加することができるコマンド発行部と、前記コマンド発行部によって前記コマンドが発行された場合、LBAが連続する複数の前記セクタのうち先頭セクタの前記LBAであるスタートLBA、当該先頭セクタが割り当てられた前記分割データに対して割り当てられているメモリアドレスの先頭アドレスであるスタートアドレス、及び、複数の前記セクタのデータ量、を特定するための情報並びに前記指示情報を前記コマンド毎について得たものであるコマンド情報が記憶される情報テーブルと、キューイングされた前記コマンドの順番が並び替えられて前記コマンドが実行される際に、当該実行されたコマンドで転送される前記分割データに割り当てられている前記メモリアドレスの前記先頭アドレスと前記情報テーブルに記憶されている前記コマンド情報とを用いて、転送される前記分割データに対応する前記コマンドが、前記コマンド発行部により発行された複数の前記コマンドのうちのいずれであるかを特定することを、転送される前記分割データ毎に実行するコマンド特定部と、前記コマンド特定部で特定された前記コマンドについての前記コマンド情報と転送される前記分割データに割り当てられている前記メモリアドレスの前記先頭アドレスとを用いて、転送される前記分割データに割り当てられた前記セクタの前記LBAを算出することを、転送される前記分割データ毎に実行するLBA算出部と、前記LBA算出部で算出された前記LBAから初期ベクトルを生成することを、転送される前記分割データ毎に実行する初期ベクトル生成部と、転送される前記分割データをブロック単位で暗号化するに際して、先頭ブロックについては前記初期ベクトル生成部で生成された前記初期ベクトルを利用して暗号化し、残りのブロックについては暗号化された一つ前のブロックを利用して暗号化することを、前記メモリから前記ハードディスクドライブに転送する前記分割データ毎に実行する暗号化部と、前記暗号化部で暗号化されて前記ハードディスクドライブに記憶された前記分割データについて、前記初期ベクトル生成部で生成された前記初期ベクトルを利用して復号化することを、前記ハードディスクドライブから前記メモリに転送する前記分割データ毎に実行する復号化部と、前記情報テーブルに記憶されている前記コマンド情報を基にして、前記コマンド特定部で特定された前記コマンドの前記指示情報が暗号化無しを示す場合、当該コマンドで転送される前記分割データについては暗号化及び復号化を実行しないために前記暗号化部及び前記復号化部を停止させる暗号化オンオフ判定部と、を備える。   An encryption / decryption device for a hard disk drive according to a first aspect of the present invention that achieves the above object queues a command issued to transfer data to and from a memory, and queues the queued command Used in a hard disk drive that transfers the data by rearranging the order of commands and transferring the data by dividing the data into units stored in sectors when transferring the data. An encryption / decryption device, issuing a command, a command issuing unit capable of adding for each command instruction information indicating whether or not the divided data transferred by the command is encrypted; When the command is issued by the command issuing unit, the first sector among a plurality of the sectors having consecutive LBAs. To specify the start LBA that is the LBA of the data, the start address that is the start address of the memory address assigned to the divided data to which the start sector is assigned, and the data amount of the plurality of sectors Information table in which command information that is obtained for each command is stored for each command, and when the command is executed by rearranging the order of the queued commands. The command corresponding to the divided data to be transferred using the start address of the memory address assigned to the divided data transferred by the command sent and the command information stored in the information table Of the plurality of commands issued by the command issuing unit It is assigned to the command specifying unit that executes the identification for each divided data to be transferred, the command information on the command specified by the command specifying unit, and the divided data to be transferred. An LBA calculation unit that executes, for each of the divided data to be transferred, calculating the LBA of the sector allocated to the divided data to be transferred using the start address of the memory address that is When generating the initial vector from the LBA calculated by the LBA calculation unit for each of the divided data to be transferred, and for encrypting the divided data to be transferred in units of blocks, The first block is encrypted using the initial vector generated by the initial vector generation unit, and the rest Are encrypted using the previous encrypted block for each of the divided data transferred from the memory to the hard disk drive, and encrypted by the encryption unit. For each of the divided data transferred from the hard disk drive to the memory, the divided data stored in the hard disk drive is decoded using the initial vector generated by the initial vector generation unit. And when the instruction information of the command specified by the command specifying unit indicates no encryption based on the command information stored in the information table In order not to execute encryption and decryption for the divided data, the encryption unit and the decryption The comprising an encryption off determination unit stopping, the.

本発明の第1の局面に係るハードディスクドライブ用の暗号化復号化装置よれば、実行されたコマンドで転送される分割データについて暗号化の有無を指示する指示情報をコマンド毎に付加することができる。これにより、ハードディスクドライブにキューイングされたコマンドのそれぞれについて、暗号化する分割データに対応するコマンドと暗号化しない分割データに対応するコマンドに分けることができる。従って、メモリとハードディスクドライブとの間で転送するデータの中に、暗号化するデータと暗号化しないデータとが混在する場合、暗号化するデータは暗号化して転送し、暗号化しないデータは暗号化しないで転送することができる。   According to the encryption / decryption device for a hard disk drive according to the first aspect of the present invention, it is possible to add, for each command, instruction information for instructing whether or not the divided data transferred by the executed command is encrypted. . Thus, each of the commands queued in the hard disk drive can be divided into a command corresponding to the divided data to be encrypted and a command corresponding to the divided data not to be encrypted. Therefore, if the data to be transferred between the memory and the hard disk drive contains both encrypted data and unencrypted data, the encrypted data is encrypted and transferred, and the unencrypted data is encrypted. Can be transferred without.

上記構成において、前記ハードディスクドライブは、SATAのNCQに対応する。   In the above configuration, the hard disk drive corresponds to NCQ of SATA.

上記構成において。前記暗号化部及び前記復号化部での暗号化方式は、AESのCBCモードである。   In the above configuration. The encryption method in the encryption unit and the decryption unit is an AES CBC mode.

本発明の第2の局面に係る情報処理装置は、メモリと、ハードディスクドライブと、前記メモリと前記ハードディスクドライブとの間で転送されるデータに対して、暗号化及び復号化の処理をする上記ハードディスクドライブ用の暗号化復号化装置と、を備える。   An information processing apparatus according to a second aspect of the present invention includes a memory, a hard disk drive, and the hard disk that performs encryption and decryption processing on data transferred between the memory and the hard disk drive. And an encryption / decryption device for the drive.

本発明の第2の局面に係る情報処理装置によれば、上記第1の局面に係るハードディスクドライブ用の暗号化復号化装置の効果を得ることができる。
本発明の第3の局面に係る情報処理装置は、メモリと、ハードディスクドライブと、前記メモリとの間でデータを転送するために発行されたコマンドをキューイングし、キューイングされた前記コマンドの順番を並び替えて前記コマンドを実行することにより前記データを転送し、前記データを転送する場合に前記データをセクタに記憶される単位で分割した分割データ毎に転送する前記ハードディスクドライブに用いられる暗号化復号化装置と、を備える情報処理装置であって、前記暗号化復号化装置は、前記コマンドを発行し、前記コマンドで転送される前記分割データについて暗号化の有無を指示する指示情報を前記コマンド毎に付加することができるコマンド発行部と、前記コマンド発行部によって前記コマンドが発行された場合、LBAが連続する複数の前記セクタのうち先頭セクタの前記LBAであるスタートLBA、当該先頭セクタが割り当てられた前記分割データに対して割り当てられているメモリアドレスの先頭アドレスであるスタートアドレス、及び、複数の前記セクタのデータ量、を特定するための情報並びに前記指示情報を前記コマンド毎について得たものであるコマンド情報が記憶される情報テーブルと、キューイングされた前記コマンドの順番が並び替えられて前記コマンドが実行される際に、当該実行されたコマンドで転送される前記分割データに割り当てられている前記メモリアドレスの前記先頭アドレスと前記情報テーブルに記憶されている前記コマンド情報とを用いて、転送される前記分割データに対応する前記コマンドが、前記コマンド発行部により発行された複数の前記コマンドのうちのいずれであるかを特定することを、転送される前記分割データ毎に実行するコマンド特定部と、前記コマンド特定部で特定された前記コマンドについての前記コマンド情報と転送される前記分割データに割り当てられている前記メモリアドレスの前記先頭アドレスとを用いて、転送される前記分割データに割り当てられた前記セクタの前記LBAを算出することを、転送される前記分割データ毎に実行するLBA算出部と、前記LBA算出部で算出された前記LBAから初期ベクトルを生成することを、転送される前記分割データ毎に実行する初期ベクトル生成部と、転送される前記分割データをブロック単位で暗号化するに際して、先頭ブロックについては前記初期ベクトル生成部で生成された前記初期ベクトルを利用して暗号化し、残りのブロックについては暗号化された一つ前のブロックを利用して暗号化することを、前記メモリから前記ハードディスクドライブに転送する前記分割データ毎に実行する暗号化部と、前記暗号化部で暗号化されて前記ハードディスクドライブに記憶された前記分割データについて、前記初期ベクトル生成部で生成された前記初期ベクトルを利用して復号化することを、前記ハードディスクドライブから前記メモリに転送する前記分割データ毎に実行する復号化部と、前記メモリから前記ハードディスクドライブに前記分割データが転送される場合に、前記情報テーブルに記憶されている前記コマンド情報を参照して、(a)前記コマンド特定部で特定された前記コマンドの前記指示情報が暗号化無しを示していれば、前記分割データを暗号化しないで転送するために、前記暗号化部をオフさせ、(b)前記コマンド特定部で特定された前記コマンドの前記指示情報が暗号化有りを示していれば、前記分割データを暗号化して転送するために、前記暗号化部をオンさせる暗号化オンオフ判定部と、を備え、前記ハードディスクドライブには、前記指示情報が暗号化無しを示す前記コマンドで転送されてきた、暗号化されていない前記分割データと、前記指示情報が暗号化有りを示す前記コマンドで転送されてきた、暗号化されている前記分割データとが、記憶されている情報処理装置である。
According to the information processing apparatus according to the second aspect of the present invention, the effect of the encryption / decryption apparatus for the hard disk drive according to the first aspect can be obtained.
An information processing apparatus according to a third aspect of the present invention queues commands issued to transfer data between a memory, a hard disk drive, and the memory, and the order of the queued commands The encryption is used for the hard disk drive that transfers the data by rearranging the data and transferring the data for each divided data obtained by dividing the data in units stored in sectors when the data is transferred A decryption device, wherein the encryption / decryption device issues the command and indicates instruction information indicating whether or not the divided data transferred by the command is encrypted. When the command is issued by the command issuing unit that can be added every time, and the command issuing unit, The start LBA that is the LBA of the first sector among the plurality of sectors in which the BA is continuous, the start address that is the first address of the memory address assigned to the divided data to which the first sector is assigned, and the plurality Information for specifying the data amount of the sector and command information obtained by obtaining the instruction information for each command, and the order of the queued commands are rearranged. When the command is executed, using the head address of the memory address assigned to the divided data transferred by the executed command and the command information stored in the information table, The command corresponding to the divided data to be transferred is the command generation. A command specifying unit that executes for each of the divided data to be transferred, and specifying the command that is specified by the command specifying unit. Using the command information and the start address of the memory address assigned to the divided data to be transferred, the LBA of the sector assigned to the divided data to be transferred is calculated. Transferred with an LBA calculation unit that executes for each divided data, and an initial vector generation unit that executes generation of an initial vector from the LBA calculated by the LBA calculation unit for each divided data to be transferred When the divided data is encrypted in units of blocks, the initial block is generated by the initial vector generation unit. For each of the divided data transferred from the memory to the hard disk drive, the encrypted data is encrypted using the initial vector, and the remaining blocks are encrypted using the previous encrypted block. An encryption unit to be executed, and decrypting the divided data encrypted by the encryption unit and stored in the hard disk drive using the initial vector generated by the initial vector generation unit; A decoding unit that executes each divided data to be transferred from the hard disk drive to the memory; and the command information stored in the information table when the divided data is transferred from the memory to the hard disk drive. Referring to (a) the command information specified by the command specifying unit is encrypted In order to transfer the divided data without encryption, the encryption unit is turned off, and (b) the instruction information of the command specified by the command specification unit is encrypted. An encryption on / off determination unit that turns on the encryption unit in order to encrypt and transfer the divided data, and the hard disk drive includes the instruction information indicating no encryption. Information stored in which the non-encrypted divided data transferred by the command and the encrypted divided data transferred by the command indicating that the instruction information is encrypted are stored. It is a processing device.

本発明によれば、キューイングされたコマンドの順番を並び替えてコマンドを実行することができるハードディスクドライブにおいて、転送されるデータの中に暗号化するデータと暗号化しないデータとが混在する場合、暗号化するデータは暗号化して転送し、暗号化しないデータは暗号化しないで転送できる。   According to the present invention, in the hard disk drive that can execute the commands by rearranging the order of the queued commands, when data to be encrypted and data to be encrypted are mixed in the transferred data, Data to be encrypted can be transferred after being encrypted, and data that is not encrypted can be transferred without being encrypted.

本発明の一実施形態に係る情報処理装置の構成を示すブロック図である。It is a block diagram which shows the structure of the information processing apparatus which concerns on one Embodiment of this invention. コマンドのリストの一例を示す図である。It is a figure which shows an example of the list of commands. 各コマンドの内容の一例を示す図である。It is a figure which shows an example of the content of each command. 各コマンドに対応するセクタの位置を示すハードディスクの平面図である。It is a top view of the hard disk which shows the position of the sector corresponding to each command. 図1に示す初期ベクトル供給部の構成を示すブロック図である。It is a block diagram which shows the structure of the initial vector supply part shown in FIG. コマンド情報の一例を示す図である。It is a figure which shows an example of command information. コマンドが並び替えられた状態を示す図である。It is a figure which shows the state in which the command was rearranged. メモリからHDDへのデータの転送を示す図である。It is a figure which shows transfer of the data from memory to HDD. 本実施形態において暗号化処理を説明するフローチャートである。It is a flowchart explaining an encryption process in this embodiment. 暗号化部のレジスタに格納された分割データを示す図である。It is a figure which shows the division | segmentation data stored in the register | resistor of the encryption part. HDDからメモリへのデータの転送を示す図である。It is a figure which shows transfer of the data from HDD to memory.

以下、図面に基づいて本発明の実施形態を詳細に説明する。図1は本発明の一実施形態に係る情報処理装置1の構成を示すブロック図である。情報処理装置1は例えば、コピー、プリンタ、スキャナ及びファクシミリの機能を有する画像形成装置に適用することができる。情報処理装置1はCPU(Central Processing Unit)3、メモリ5、ハードディスクドライブ(以下、HDDと記載する)7及び暗号化復号化装置9を備える。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. FIG. 1 is a block diagram showing a configuration of an information processing apparatus 1 according to an embodiment of the present invention. The information processing apparatus 1 can be applied to, for example, an image forming apparatus having functions of a copy, a printer, a scanner, and a facsimile. The information processing apparatus 1 includes a CPU (Central Processing Unit) 3, a memory 5, a hard disk drive (hereinafter referred to as HDD) 7, and an encryption / decryption device 9.

CPU3は情報処理装置1を動作させるために必要な制御を、情報処理装置1を構成する上記ハードウェア及び図示しないハードウェア(メインメモリ、ROM(Read Only Memory)等)に対して実行する。   The CPU 3 executes control necessary for operating the information processing apparatus 1 on the hardware constituting the information processing apparatus 1 and hardware (not shown) (main memory, ROM (Read Only Memory), etc.).

メモリ5は例えばDRAM(Dynamic Random Access Memory)であり、HDD7との間でデータが転送される。メモリ5からHDD7へのデータD1の転送とは、メモリ5に記憶されたデータD1を読み出して、HDD7に書き込む処理である。HDD7からメモリ5へのデータD2の転送とは、HDD7に記憶されたデータD2を読み出して、メモリ5に書き込む処理である。   The memory 5 is, for example, a DRAM (Dynamic Random Access Memory), and data is transferred to and from the HDD 7. The transfer of data D1 from the memory 5 to the HDD 7 is a process of reading the data D1 stored in the memory 5 and writing it in the HDD 7. The transfer of data D2 from the HDD 7 to the memory 5 is a process of reading the data D2 stored in the HDD 7 and writing it in the memory 5.

HDD7は例えば、SATAのNCQに対応するHDDであり、メモリ5との間でデータを転送するために発行されたコマンドをキューイングし、キューイングされたコマンドの順番を並び替えてコマンドを実行することにより、メモリ5との間でデータを転送する。SATAのNCQでは最大32個のコマンドをキューイングすることができる。メモリ5とHDD7との間でデータが転送される場合、データをセクタに記憶される単位で分割した分割データ毎に転送される。   For example, the HDD 7 is an HDD corresponding to the SATA NCQ, queues commands issued to transfer data to and from the memory 5, and executes the commands by rearranging the order of the queued commands. As a result, data is transferred to and from the memory 5. In SATA NCQ, up to 32 commands can be queued. When data is transferred between the memory 5 and the HDD 7, it is transferred for each divided data obtained by dividing the data in units stored in the sector.

暗号化復号化装置9はメモリ5からHDD7に転送されるデータD1を暗号化し、HDD7からメモリ5に転送されるデータD2を復号化する。暗号化復号化装置9は例えば、ASIC(Application Specific Integrated Circuit)を用いて構成されており、SATAホストコントローラ(以下、ホストコントローラと記載する)11、初期ベクトル供給部13、暗号化部15、復号化部17及び暗号鍵記憶部19を備える。   The encryption / decryption device 9 encrypts the data D1 transferred from the memory 5 to the HDD 7, and decrypts the data D2 transferred from the HDD 7 to the memory 5. The encryption / decryption device 9 is configured using, for example, an ASIC (Application Specific Integrated Circuit), a SATA host controller (hereinafter referred to as a host controller) 11, an initial vector supply unit 13, an encryption unit 15, a decryption unit And an encryption key storage unit 19.

ホストコントローラ11は例えば、SATAのAHCI(Advanced Host Controller Interface)規約に従って構成されている。ホストコントローラ11はコマンド発行部21を備える。ホストコントローラ11はCPU3からのアクセス要求REQに応じて、コマンド発行部21にコマンドを発行させる。ホストコントローラ11は発行されたコマンドのリストを作成すると共に発行されたコマンドをHDD7に送信する。   For example, the host controller 11 is configured in accordance with the SATA AHCI (Advanced Host Controller Interface) protocol. The host controller 11 includes a command issuing unit 21. The host controller 11 causes the command issuing unit 21 to issue a command in response to an access request REQ from the CPU 3. The host controller 11 creates a list of issued commands and transmits the issued commands to the HDD 7.

図2はコマンドのリストの一例を示す図である。この例では4つのコマンド0〜3を用いてメモリ5とHDD7との間でデータを転送する。メモリ5とHDD7の間で転送されるデータは分割データに分けられて転送される。   FIG. 2 shows an example of a command list. In this example, data is transferred between the memory 5 and the HDD 7 using four commands 0 to 3. Data transferred between the memory 5 and the HDD 7 is divided into divided data and transferred.

図3はコマンド0〜3の内容の一例を示している。データにはメモリアドレスADD「10000000−10004FFF,30001000−30003FFF,C0000000−C0004FFF」が割り当てられている。メモリアドレスADDとはデータ(分割データ)に割り当てられているメモリ5上のアドレスである。図1に示すように、メモリアドレスADDはデータを転送する際に、ホストコントローラ11からメモリ5に送られる。   FIG. 3 shows an example of the contents of the commands 0-3. The memory address ADD “10000000-10004FFF, 30001000-30003FFF, C0000000-C0004FFF” is assigned to the data. The memory address ADD is an address on the memory 5 assigned to data (divided data). As shown in FIG. 1, the memory address ADD is sent from the host controller 11 to the memory 5 when data is transferred.

分割データはデータをセクタに記憶される単位で分割したものである。セクタの容量が例えば512バイトとすれば、分割データのデータ量は512バイトである(16進数で表すと「1000」)。   The divided data is obtained by dividing data into units stored in sectors. If the sector capacity is, for example, 512 bytes, the data amount of the divided data is 512 bytes (“1000” in hexadecimal).

分割データのメモリアドレスADDの欄には各分割データに対して割り当てられているメモリアドレスADDが示されている。セクタのLBAの欄には各分割データに対して割り当てられたセクタのアドレスが示されている。各コマンドにおいてLBAは連続している。   The memory address ADD assigned to each divided data is shown in the column of the memory address ADD of the divided data. In the LBA column of the sector, the address of the sector assigned to each divided data is shown. In each command, the LBA is continuous.

スタートLBA(Start_LBA)はコマンド0〜3のそれぞれにおいて、LBAが連続する複数のセクタのうち先頭セクタのLBAである。   The start LBA (Start_LBA) is the LBA of the first sector among a plurality of sectors with consecutive LBAs in each of the commands 0 to 3.

スタートアドレス(Start_Address)はコマンド0〜3のそれぞれにおいて、先頭セクタが割り当てられた分割データに対して割り当てられているメモリアドレスADDの先頭アドレスaddである。先頭アドレスaddについてコマンド0を例に説明すると、「30001000」、「30002000」及び「30003000」が先頭アドレスaddとなる。図1に示すように、先頭アドレスaddは分割データを転送する際に、ホストコントローラ11から初期ベクトル供給部13に送られる。   The start address (Start_Address) is the start address add of the memory address ADD assigned to the divided data to which the start sector is assigned in each of the commands 0 to 3. If the command 0 is described as an example for the start address add, “30001000”, “30002000”, and “3000000000” are the start addresses add. As shown in FIG. 1, the start address add is sent from the host controller 11 to the initial vector supply unit 13 when transferring the divided data.

図4はコマンド0〜3に対応するセクタ23の位置を示すハードディスクの平面図である。LBAがN,N+1,N+2のセクタ23とLBAがL,L+1,L+2,L+3,L+4のセクタ23が位置するトラック25は同じである。これらのセクタ23と、LBAがC,C+1のセクタ23と、LBAがK,K+1,K+2のセクタ23と、が位置するトラック25は異なる。   FIG. 4 is a plan view of the hard disk showing the position of the sector 23 corresponding to the commands 0-3. The track 25 in which the sector 23 with the LBAs N, N + 1, N + 2 and the sector 23 with the LBAs L, L + 1, L + 2, L + 3, and L + 4 is located is the same. These sectors 23 are different from the tracks 25 in which the sectors 23 having LBA C, C + 1 and sectors 23 having LBA K, K + 1, K + 2 are located.

図3に示す指示情報は転送される分割データについて暗号化の有無を指示するものであり、本実施形態において、指示情報は転送される分割データについて暗号化しないことを指示するものである。指示情報はコマンド発行部21がコマンドを発行する際にコマンド毎に付加することができる。指示情報は例えばAHCI規格のコマンドリストを拡張して、コマンドのリザーブ領域にフラグを用いて指示することができる。なお、指示情報は暗号化の有無を示すビット又はフラグ等のデータをコマンドに付加しないことによって、暗号化をする又はしないを示す情報であってもよい。   The instruction information shown in FIG. 3 indicates whether or not the divided data to be transferred is encrypted, and in this embodiment, the instruction information indicates that the divided data to be transferred is not encrypted. The instruction information can be added for each command when the command issuing unit 21 issues a command. For example, the instruction information can be instructed by extending a command list of the AHCI standard and using a flag in the reserved area of the command. The instruction information may be information indicating whether or not encryption is performed by not adding data such as a bit or a flag indicating the presence or absence of encryption to the command.

コマンド0は指示情報を含む。これはメモリアドレスADDが「30001000−30003FFF」に格納されているデータであるファイルは機密性を有しておらず、そのファイルは暗号化しないことを意味する。これに対して、コマンド1,2,3は指示情報を含まない。これはメモリアドレスADDが「C0000000−C0004FFF」及び「10000000−10004FFF」に格納されているデータであるファイルは機密性を有しており、暗号化することを意味する。   Command 0 includes instruction information. This means that a file which is data stored in the memory address ADD “30001000-30003FFF” has no confidentiality and is not encrypted. On the other hand, the commands 1, 2, and 3 do not include instruction information. This means that the file which is data stored in the memory addresses ADD “C0000000-C0004FFF” and “10000000-10004FFF” has confidentiality and is encrypted.

ファイルには予め暗号化するか否かの設定がされている。メモリ5からHDD7に複数のファイルを含むデータを転送する場合、ディスクリプタには、ファイル毎にファイルに割り当てられているメモリアドレスADDとセクタ23のLBAが記録されると共に暗号化するか否かが記録される。ディスクリプタはホストコントローラ11又はHDD7に格納される。コマンド発行部21はコマンドを発行する際にディスクリプタを参照して、コマンドに指示情報を付加するか否かを選択する。   Whether or not to encrypt the file is set in advance. When data including a plurality of files is transferred from the memory 5 to the HDD 7, the memory address ADD assigned to each file and the LBA of the sector 23 are recorded in the descriptor and whether or not encryption is performed is recorded. Is done. The descriptor is stored in the host controller 11 or the HDD 7. When issuing a command, the command issuing unit 21 refers to the descriptor and selects whether to add instruction information to the command.

図1の説明に戻る。暗号鍵記憶部19は例えば、RAM(Random Access Memory)又はレジスタ等の記憶手段によって構成されており、暗号化及び復号化に用いる暗号鍵KEが予め記憶されている。   Returning to the description of FIG. The encryption key storage unit 19 is configured by storage means such as a RAM (Random Access Memory) or a register, for example, and stores an encryption key KE used for encryption and decryption in advance.

暗号化部15はメモリ5とホストコントローラ11との間に設けられている。暗号化部15は転送される分割データをブロック単位で暗号化するに際して、先頭ブロックについては初期ベクトル供給部13から供給された(言い換えれば図5の初期ベクトル生成部37で生成された)初期ベクトルIVを利用して暗号化し、残りのブロックについては暗号化された一つ前のブロックを利用して暗号化することを、メモリ5からHDD7に転送する分割データ毎に実行する。本実施形態では、暗号化部15は暗号鍵記憶部19に記憶されている暗号鍵KEと、初期ベクトル供給部13から供給された初期ベクトルIVとに基づいて、ホストコントローラ11から出力されたメモリアドレスADDに応じてメモリ5からホストコントローラ11に転送されるデータD1を、転送される分割データ毎にリアルタイムで暗号化してホストコントローラ11へ出力する。暗号化部15はブロック暗号化方式として、例えばAESのCBCモードを用いる。   The encryption unit 15 is provided between the memory 5 and the host controller 11. When the encryption unit 15 encrypts the divided data to be transferred in units of blocks, the initial block is supplied from the initial vector supply unit 13 (in other words, generated by the initial vector generation unit 37 in FIG. 5) for the first block. Encryption is performed using the IV, and the remaining blocks are encrypted using the previous encrypted block for each divided data transferred from the memory 5 to the HDD 7. In the present embodiment, the encryption unit 15 stores the memory output from the host controller 11 based on the encryption key KE stored in the encryption key storage unit 19 and the initial vector IV supplied from the initial vector supply unit 13. Data D1 transferred from the memory 5 to the host controller 11 in accordance with the address ADD is encrypted in real time for each divided data to be transferred and output to the host controller 11. The encryption unit 15 uses, for example, AES CBC mode as a block encryption method.

復号化部17はホストコントローラ11とメモリ5との間に設けられている。復号化部17は暗号化部15で暗号化されてHDD7に記憶された分割データについて、初期ベクトル供給部13から供給された(言い換えれば図5の初期ベクトル生成部37で生成された)初期ベクトルIVを利用して復号化することを、HDD7からメモリ5に転送する分割データ毎に実行する。本実施形態では、復号化部17は暗号鍵記憶部19に記憶されている暗号鍵KEと、初期ベクトル供給部13から供給された初期ベクトルIVとに基づいて、ホストコントローラ11から出力されたメモリアドレスADDに応じてホストコントローラ11からメモリ5に転送されるデータD2を、転送される分割データ毎にリアルタイムで復号化してメモリ5へ出力する。   The decryption unit 17 is provided between the host controller 11 and the memory 5. The decryption unit 17 supplies the initial data supplied from the initial vector supply unit 13 (in other words, generated by the initial vector generation unit 37 in FIG. 5) for the divided data encrypted by the encryption unit 15 and stored in the HDD 7. Decoding using the IV is executed for each divided data transferred from the HDD 7 to the memory 5. In the present embodiment, the decryption unit 17 stores the memory output from the host controller 11 based on the encryption key KE stored in the encryption key storage unit 19 and the initial vector IV supplied from the initial vector supply unit 13. The data D2 transferred from the host controller 11 to the memory 5 in accordance with the address ADD is decoded in real time for each divided data to be transferred and output to the memory 5.

復号化部17は暗号化部15と同じ暗号化方式を用いて復号化を行う。なお、暗号化部15及び復号化部17はAESのCBCモードに限らない。データをブロック単位で暗号化する暗号化方式であって、先頭ブロックについては初期ベクトルIVを利用して暗号化し、残りのブロックについては暗号化された一つ前のブロックを利用して暗号化するブロック暗号化方式であればよい。   The decryption unit 17 performs decryption using the same encryption method as that of the encryption unit 15. The encryption unit 15 and the decryption unit 17 are not limited to the AES CBC mode. This is an encryption method for encrypting data in units of blocks, the first block is encrypted using the initial vector IV, and the remaining blocks are encrypted using the previous encrypted block. Any block encryption method may be used.

初期ベクトル供給部13は例えば種々の論理回路及び順序回路等を用いて構成される。図5は初期ベクトル供給部13の構成の一例を示すブロック図である。初期ベクトル供給部13は情報テーブル31、コマンド特定部33、LBA算出部35、初期ベクトル生成部37及び暗号化オンオフ判定部39を備える。   The initial vector supply unit 13 is configured using, for example, various logic circuits and sequential circuits. FIG. 5 is a block diagram showing an example of the configuration of the initial vector supply unit 13. The initial vector supply unit 13 includes an information table 31, a command identification unit 33, an LBA calculation unit 35, an initial vector generation unit 37, and an encryption on / off determination unit 39.

初期ベクトル供給部13はCPU3からのホストコントローラ11へのアクセス要求REQ(図1)を監視し、アクセス要求REQに応じてコマンド発行部21によってコマンドが発行された場合、コマンドの転送情報を読み取って得られたコマンド情報を、情報テーブル31に記憶する。AHCI規格であれば、初期ベクトル供給部13はコマンドリスト内のコマンドヘッダ並びに、コマンドテーブル内のコマンドFIS及びPRDT(Physical Region Descriptor Table)を読み取ってコマンド情報を作成する。コマンド情報はスタートLBA、スタートアドレス及び、複数のセクタ23のデータ量、を特定するための情報並びに指示情報の有無をコマンド毎について得たものである。   The initial vector supply unit 13 monitors the access request REQ (FIG. 1) from the CPU 3 to the host controller 11, and when a command is issued by the command issuing unit 21 in response to the access request REQ, reads the transfer information of the command. The obtained command information is stored in the information table 31. In the case of the AHCI standard, the initial vector supply unit 13 creates command information by reading the command header in the command list and the commands FIS and PRDT (Physical Region Descriptor Table) in the command table. The command information is information for specifying the start LBA, the start address, the data amount of the plurality of sectors 23, and the presence / absence of instruction information for each command.

図6はコマンド情報の一例を示す図である。コマンド情報はHDD7にキューイングできる最大数である32個のコマンドについて示される。Exist[I]はコマンドI(Iはコマンド番号であり、0〜31)が存在するか否かを示す情報である。Exist[I]:1であれば、そのコマンドは存在する。Exist[I]:0であれば、そのコマンドは存在しない。スタートLBA(Start_LBA)、スタートアドレス(Start_Address)及び指示情報については既に説明した。   FIG. 6 is a diagram illustrating an example of command information. The command information is shown for 32 commands, which is the maximum number that can be queued in the HDD 7. Exist [I] is information indicating whether or not a command I (I is a command number, 0 to 31) exists. If Exist [I]: 1, the command exists. If Exist [I]: 0, the command does not exist. The start LBA (Start_LBA), start address (Start_Address), and instruction information have already been described.

セクタサイズ(Sector_Size)は複数のセクタ23のデータ量を特定するための情報の一例であり、各コマンドについてのセクタ23の数である。例えば、コマンド0であれば、セクタサイズが3なので、3(セクタ数)×512バイトがコマンド0についての複数のセクタ23のデータ量となる。   The sector size (Sector_Size) is an example of information for specifying the data amount of a plurality of sectors 23, and is the number of sectors 23 for each command. For example, if the command is 0, the sector size is 3, so 3 (the number of sectors) × 512 bytes is the data amount of the plurality of sectors 23 for the command 0.

コマンド特定部33はHDD7がキューイングされたコマンド0〜3の順番を並び替えてそれらのコマンドを実行する際に、転送される分割データに割り当てられたメモリアドレスADDの先頭アドレスaddと情報テーブル31に記憶されているコマンド情報とを用いて、転送される分割データに対応するコマンドが、コマンド発行部21により発行された複数のコマンドのうちのいずれであるかを特定することを、転送される分割データ毎に実行する。   When the command specifying unit 33 rearranges the order of the queued commands 0 to 3 and executes the commands, the command specifying unit 33 and the information table 31 include the leading address add of the memory address ADD assigned to the divided data to be transferred. Is used to specify which of the plurality of commands issued by the command issuing unit 21 is the command corresponding to the divided data to be transferred. Execute for each divided data.

コマンドの特定には下記式が用いられる。   The following formula is used to specify the command.

Start_Address[I]≦add<Start_Address[I]+Sector_Size×1000・・・(1)     Start_Address [I] ≦ add <Start_Address [I] + Sector_Size × 1000 (1)

式(1)は1セクタの容量が512バイトの場合を示している。「1000」は512を16進数で表現したものである。例えば、図3に示す先頭アドレスaddが「30002000」の分割データであれば、コマンド0の場合に式(1)が成立するので、先頭アドレスaddが「30002000」の分割データはコマンド0に対応すると特定できる。   Equation (1) shows a case where the capacity of one sector is 512 bytes. “1000” represents 512 in hexadecimal. For example, if the start address add shown in FIG. 3 is divided data with “3000000000”, the equation (1) is established in the case of command 0, so that the divided data with start address add “3000000000” corresponds to command 0. Can be identified.

LBA算出部35はコマンド特定部33で特定されたコマンドについてのコマンド情報と転送される分割データに割り当てられたメモリアドレスADDの先頭アドレスaddとを用いて、転送される分割データに割り当てられたセクタ23のLBAを算出することを、転送される分割データ毎に実行する。   The LBA calculating unit 35 uses the command information for the command specified by the command specifying unit 33 and the start address add of the memory address ADD assigned to the divided data to be transferred, to the sector assigned to the divided data to be transferred. 23 LBAs are calculated for each divided data to be transferred.

LBAの演算には下記式が用いられる。   The following formula is used for the calculation of LBA.

LBA=Start_LBA[I]+(add− Start_Address[I])/1000・・・(2)     LBA = Start_LBA [I] + (add−Start_Address [I]) / 1000 (2)

例えば、図3に示す先頭アドレスaddが「30002000」の分割データであれば、コマンド0に対応するので、Start_LBA[0]が「K」であり、Start_Address[0]が「30001000」である。従って、式(2)より、LBAは「K+1」となる。   For example, if the start address add shown in FIG. 3 is divided data with “3000000000”, it corresponds to the command 0, so that Start_LBA [0] is “K” and Start_Address [0] is “30001000”. Therefore, from equation (2), LBA is “K + 1”.

初期ベクトル生成部37はLBA算出部35で算出されたLBAから初期ベクトルIVを生成することを、転送される分割データ毎に実行する。詳細には、初期ベクトル生成部37はLBA算出部35により算出されたLBAに、所定の演算処理、例えば排他的論理和演算等の演算処理をして、初期ベクトルIVを生成し、暗号化部15及び復号化部17に供給する。これにより、暗号強度を向上させる。なお、初期ベクトル生成部37は、LBAを、そのまま初期ベクトルIVとして出力する構成としてもよい。   The initial vector generation unit 37 generates the initial vector IV from the LBA calculated by the LBA calculation unit 35 for each divided data to be transferred. Specifically, the initial vector generation unit 37 performs predetermined arithmetic processing such as exclusive OR operation on the LBA calculated by the LBA calculation unit 35 to generate the initial vector IV, and the encryption unit 15 and the decoding unit 17. Thereby, the encryption strength is improved. The initial vector generation unit 37 may output the LBA as it is as the initial vector IV.

暗号化オンオフ判定部39はメモリ5からHDD7にデータを転送する際に、情報テーブル31に記憶されているコマンド情報を参照して、コマンド特定部33で特定されたコマンドに指示情報が付加されているか否か判定する。指示情報とは分割データを暗号化しないことを指示する情報である。暗号化オンオフ判定部39は指示情報が付加されていると判定した場合、暗号化部15にOFF信号を送り、暗号化部15をオフさせる。これにより、その分割データについては暗号化されずに転送される。これに対して、暗号化オンオフ判定部39は指示情報が付加されていないと判定した場合、暗号化部15にON信号を送り、暗号化部15をオンさせる。これにより、その分割データについては暗号化されて転送される。   When the encryption on / off determination unit 39 transfers data from the memory 5 to the HDD 7, the command information stored in the information table 31 is referred to, and the instruction information is added to the command specified by the command specification unit 33. Determine whether or not. The instruction information is information for instructing not to encrypt the divided data. When the encryption on / off determination unit 39 determines that the instruction information is added, the encryption on / off determination unit 39 sends an OFF signal to the encryption unit 15 to turn off the encryption unit 15. Thereby, the divided data is transferred without being encrypted. On the other hand, when the encryption on / off determination unit 39 determines that the instruction information is not added, the encryption on / off determination unit 39 sends an ON signal to the encryption unit 15 to turn on the encryption unit 15. Thus, the divided data is encrypted and transferred.

HDD7からメモリ5にデータを転送する場合、暗号化オンオフ判定部39は情報テーブル31に記憶されているコマンド情報を参照して、コマンド特定部33で特定されたコマンドに指示情報が付加されているか否か判定する。暗号化オンオフ判定部39は指示情報が付加されていると判定した場合、復号化部17にOFF信号を送り、復号化部17をオフさせる。これにより、その分割データについては復号化されずに転送される。一方、暗号化オンオフ判定部39は指示情報が付加されていないと判定した場合、復号化部17にON信号を送り、復号化部17をオンさせる。これにより、その分割データについては復号化されて転送される。   When data is transferred from the HDD 7 to the memory 5, the encryption on / off determination unit 39 refers to the command information stored in the information table 31, and whether instruction information is added to the command specified by the command specifying unit 33. Judge whether or not. When the encryption on / off determination unit 39 determines that the instruction information is added, the encryption on / off determination unit 39 sends an OFF signal to the decryption unit 17 to turn off the decryption unit 17. As a result, the divided data is transferred without being decoded. On the other hand, when the encryption on / off determination unit 39 determines that the instruction information is not added, it sends an ON signal to the decryption unit 17 to turn on the decryption unit 17. Thereby, the divided data is decoded and transferred.

以上のように、暗号化オンオフ判定部39は情報テーブル31に記憶されているコマンド情報を基にして、コマンド特定部33で特定されたコマンドの指示情報が暗号化無しを示す場合、そのコマンドで転送される分割データについては暗号化及び復号化を実行しないために暗号化部15及び復号化部17を停止させる。   As described above, when the command indication information specified by the command specifying unit 33 indicates no encryption based on the command information stored in the information table 31, the encryption on / off determining unit 39 uses the command information. The encryption unit 15 and the decryption unit 17 are stopped in order not to execute encryption and decryption on the transferred divided data.

次に、本実施形態に係る情報処理装置1がデータを転送する動作について説明する。コマンドの内容は図3に示す通りであり、コマンド情報は図6に示す通りとする。まず、メモリ5から仮想メモリであるHDD7にデータを転送する動作を説明する。   Next, an operation in which the information processing apparatus 1 according to the present embodiment transfers data will be described. The contents of the command are as shown in FIG. 3, and the command information is as shown in FIG. First, an operation for transferring data from the memory 5 to the HDD 7 which is a virtual memory will be described.

図1に示すCPU3がホストコントローラ11に、メモリ5からHDD7にデータを転送するためのアクセス要求REQを送信すると、そのアクセス要求REQに応じて、コマンド発行部21はコマンドを発行する。そのコマンドを基にしてホストコントローラ11は図2に示すコマンドリストを作成すると共にそのコマンドをHDD7に送信する。   When the CPU 3 shown in FIG. 1 transmits an access request REQ for transferring data from the memory 5 to the HDD 7 to the host controller 11, the command issuing unit 21 issues a command in response to the access request REQ. Based on the command, the host controller 11 creates a command list shown in FIG. 2 and transmits the command to the HDD 7.

初期ベクトル供給部13はアクセス要求REQを監視し、コマンド発行部21によってコマンドが発行されると、図6に示すコマンド情報を情報テーブル31に記憶する。   The initial vector supply unit 13 monitors the access request REQ. When a command is issued by the command issuing unit 21, the command information shown in FIG.

HDD7に送信されたコマンドであるコマンド0〜3はキューイングされて、セクタ23に効率的にアクセスできるように、例えば図7に示すように、コマンドが並び替えられる。ここでは、実行の順番がコマンド2、コマンド0、コマンド3、コマンド1に並び替えられている。   Commands 0 to 3 which are commands transmitted to the HDD 7 are queued and rearranged so that the sector 23 can be accessed efficiently, for example, as shown in FIG. Here, the order of execution is rearranged into command 2, command 0, command 3, and command 1.

図8はメモリ5からHDD7へのデータの転送を示す図である。まず、HDD7がコマンド2を実行することにより、ホストコントローラ11は分割データd1、分割データd2の順でメモリ5からHDD7に転送する。これにより、分割データd1はLBAが「C」のセクタ23に記憶され、分割データd2はLBAが「C+1」のセクタ23に記憶される。   FIG. 8 is a diagram showing data transfer from the memory 5 to the HDD 7. First, when the HDD 7 executes the command 2, the host controller 11 transfers the divided data d1 and the divided data d2 from the memory 5 to the HDD 7 in this order. As a result, the divided data d1 is stored in the sector 23 whose LBA is “C”, and the divided data d2 is stored in the sector 23 whose LBA is “C + 1”.

次に、HDD7がコマンド0を実行することにより、ホストコントローラ11は分割データd3、分割データd4、分割データd5の順でメモリ5からHDD7に転送する。これにより、分割データd3はLBAが「K」のセクタ23に記憶され、分割データd4はLBAが「K+1」のセクタ23に記憶され、分割データd5はLBAが「K+2」のセクタ23に記憶される。   Next, when the HDD 7 executes the command 0, the host controller 11 transfers the divided data d3, the divided data d4, and the divided data d5 in this order from the memory 5 to the HDD 7. As a result, the divided data d3 is stored in the sector 23 having the LBA “K”, the divided data d4 is stored in the sector 23 having the LBA “K + 1”, and the divided data d5 is stored in the sector 23 having the LBA “K + 2”. The

そして、HDD7はコマンド3を実行することにより、ホストコントローラ11は分割データd6、分割データd7、分割データd8の順でメモリ5からHDD7に転送する。これにより、分割データd6はLBAが「N」のセクタ23に記憶され、分割データd7はLBAが「N+1」のセクタ23に記憶され、分割データd8はLBAが「N+2」のセクタ23に記憶される。   Then, when the HDD 7 executes the command 3, the host controller 11 transfers the divided data d6, the divided data d7, and the divided data d8 in this order from the memory 5 to the HDD 7. As a result, the divided data d6 is stored in the sector 23 having the LBA “N”, the divided data d7 is stored in the sector 23 having the LBA “N + 1”, and the divided data d8 is stored in the sector 23 having the LBA “N + 2”. The

最後に、HDD7がコマンド1を実行することにより、ホストコントローラ11は分割データd9、分割データd10、分割データd11、分割データd12、分割データd13の順でメモリ5からHDD7に転送する。これらの分割データも、上記と同様に割り当てられたセクタ23に記憶される。   Finally, when the HDD 7 executes the command 1, the host controller 11 transfers the divided data d9, the divided data d10, the divided data d11, the divided data d12, and the divided data d13 in this order from the memory 5 to the HDD 7. These divided data are also stored in the allocated sector 23 in the same manner as described above.

分割データd1〜d13はそれぞれ、転送される際に暗号化される。但し、対応するコマンドが分割データについて暗号化しないことを指示する指示情報が付加されていれば、暗号化されずに転送される。これについて説明する。図9は暗号化処理を説明するフローチャートである。   Each of the divided data d1 to d13 is encrypted when transferred. However, if the corresponding command is added with instruction information for instructing not to encrypt the divided data, it is transferred without being encrypted. This will be described. FIG. 9 is a flowchart for explaining the encryption processing.

図8に示す分割データd1を転送する場合、コマンド特定部33は図6に示すコマンド情報と上記式(1)とを用いて、分割データd1に対応するコマンドを特定する(ステップS1)。これは、HDD7がコマンドの順番を並び替えているので、ホストコントローラ11はどのコマンドが実行されているかを認識できないからである。分割データd1の先頭アドレスaddが「10000000」なので、分割データd1に対応するコマンドはコマンド2であることが特定できる。   When transferring the divided data d1 shown in FIG. 8, the command specifying unit 33 uses the command information shown in FIG. 6 and the above equation (1) to specify the command corresponding to the divided data d1 (step S1). This is because the host controller 11 cannot recognize which command is being executed because the HDD 7 rearranges the order of the commands. Since the start address add of the divided data d1 is “10000000”, it can be specified that the command corresponding to the divided data d1 is the command 2.

暗号化オンオフ判定部39は情報テーブル31を参照して、コマンド特定部33で特定されたコマンドが指示情報を含むか否か判定する(ステップS3)。コマンド2は指示情報を含まないので(ステップS3でNO)、すなわち、暗号化の対象となるので、暗号化オンオフ判定部39はON信号を生成し(ステップS5)、ON信号を暗号化部15に送り、暗号化部15を動作させる。メモリ5からHDD7への転送では復号化処理がないので、復号化部17は停止されている。   The encryption on / off determination unit 39 refers to the information table 31 to determine whether or not the command specified by the command specifying unit 33 includes instruction information (step S3). Since the command 2 does not include the instruction information (NO in step S3), that is, since it is an encryption target, the encryption on / off determination unit 39 generates an ON signal (step S5), and the ON signal is transmitted to the encryption unit 15 And the encryption unit 15 is operated. Since there is no decryption process in the transfer from the memory 5 to the HDD 7, the decryption unit 17 is stopped.

LBA算出部35は図6に示すコマンド情報と上記式(2)とを用いて、分割データd1に割り当てられたセクタ23のLBAを算出する(ステップS7)。分割データd1に対応するコマンドはコマンド2である。スタートLBA[2]は「C」、スタートアドレス[2]は「10000000」、先頭アドレスaddは「10000000」である。従って、分割データd1に割り当てられたセクタ23のLBAは「C」と算出される。   The LBA calculation unit 35 calculates the LBA of the sector 23 allocated to the divided data d1 using the command information shown in FIG. 6 and the above equation (2) (step S7). The command corresponding to the divided data d1 is command 2. The start LBA [2] is “C”, the start address [2] is “10000000”, and the start address add is “10000000”. Therefore, the LBA of the sector 23 assigned to the divided data d1 is calculated as “C”.

次に、初期ベクトル生成部37によって、予め設定された所定の演算処理Make_Ivが、ステップS7で算出されたLBAに施されて、初期ベクトルIVが生成され(ステップS9)、初期ベクトルIVが暗号化部15及び復号化部17へ出力される(ステップS11)。   Next, the initial vector generation unit 37 performs predetermined arithmetic processing Make_Iv set in advance on the LBA calculated in step S7 to generate the initial vector IV (step S9), and the initial vector IV is encrypted. Is output to the unit 15 and the decoding unit 17 (step S11).

以上により分割データd1の初期ベクトルIVが得られる。暗号化部15に設けられたレジスタに分割データd1は格納されている。図10はそのレジスタに格納されている分割データd1を示す図である。初期ベクトル生成部37から出力された初期ベクトルIVと、暗号鍵記憶部19に記憶されている暗号鍵KEとに基づいて、暗号化部15は分割データd1をAESのCBCモードで暗号化する。すなわち、暗号化部15は分割データd1をブロック単位で暗号化するに際して、先頭ブロックについては初期ベクトルIVを利用して暗号化し、残りのブロックについては暗号化された一つ前のブロックを利用して暗号化する。暗号化部15は暗号化された分割データd1をホストコントローラ11へ出力する。ホストコントローラ11は暗号化された分割データd1をHDD7に転送し、HDD7は暗号化された分割データd1をLBAが「C」のセクタ23に記憶させる。   Thus, the initial vector IV of the divided data d1 is obtained. The divided data d1 is stored in a register provided in the encryption unit 15. FIG. 10 is a diagram showing the divided data d1 stored in the register. Based on the initial vector IV output from the initial vector generation unit 37 and the encryption key KE stored in the encryption key storage unit 19, the encryption unit 15 encrypts the divided data d1 in the AES CBC mode. That is, when encrypting the divided data d1 in units of blocks, the encryption unit 15 encrypts the first block using the initial vector IV, and uses the previous previous encrypted block for the remaining blocks. To encrypt. The encryption unit 15 outputs the encrypted divided data d1 to the host controller 11. The host controller 11 transfers the encrypted divided data d1 to the HDD 7, and the HDD 7 stores the encrypted divided data d1 in the sector 23 whose LBA is “C”.

分割データd1の次に分割データd2が転送されるが、分割データd2は分割データd1と同様に暗号化されて、分割データd2はLBAが「C+1」のセクタ23に記憶される。   The divided data d2 is transferred next to the divided data d1, and the divided data d2 is encrypted in the same manner as the divided data d1, and the divided data d2 is stored in the sector 23 whose LBA is “C + 1”.

コマンド2の実行が終了すると、HDD7はコマンド0を実行する。まず、図8に示す分割データd3が転送される。   When the execution of the command 2 is completed, the HDD 7 executes the command 0. First, the divided data d3 shown in FIG. 8 is transferred.

コマンド特定部33は図6に示すコマンド情報と上記式(1)とを用いて、分割データd3に対応するコマンドを特定する(ステップS1)。分割データd3の先頭アドレスaddが「30001000」なので、分割データd3に対応するコマンドはコマンド0であることが特定できる。   The command specifying unit 33 specifies a command corresponding to the divided data d3 using the command information shown in FIG. 6 and the above equation (1) (step S1). Since the head address add of the divided data d3 is “30001000”, it can be specified that the command corresponding to the divided data d3 is the command 0.

暗号化オンオフ判定部39は情報テーブル31を参照して、コマンド特定部33で特定されたコマンドが指示情報を含むか否か判定する(ステップS3)。コマンド0は指示情報を含むので(ステップS3でYES)、すなわち、暗号化しないので、暗号化オンオフ判定部39はOFF信号を生成し(ステップS13)、OFF信号を暗号化部15に送り、暗号化部15を停止させる。   The encryption on / off determination unit 39 refers to the information table 31 to determine whether or not the command specified by the command specifying unit 33 includes instruction information (step S3). Since command 0 includes instruction information (YES in step S3), that is, since encryption is not performed, the encryption on / off determination unit 39 generates an OFF signal (step S13), and sends the OFF signal to the encryption unit 15 for encryption. The conversion unit 15 is stopped.

暗号化部15は停止されているので、分割データd3は暗号化されないで、ホストコントローラ11に送られる。ホストコントローラ11は暗号化されていない分割データd3をHDD7に送り、HDD7はLBAが「K」のセクタ23に暗号化されていない分割データd3を記憶させる。   Since the encryption unit 15 is stopped, the divided data d3 is not encrypted and is sent to the host controller 11. The host controller 11 sends the unencrypted divided data d3 to the HDD 7, and the HDD 7 stores the unencrypted divided data d3 in the sector 23 whose LBA is “K”.

分割データd4,d5についても、分割データd3と同様に暗号化されずに、割り当てられたセクタ23に記憶される。   Similarly to the divided data d3, the divided data d4 and d5 are stored in the assigned sector 23 without being encrypted.

コマンド0の実行が終了すると、HDD7はコマンド3を実行し、次にコマンド1を実行する。コマンド3及びコマンド1は指示情報を含まないので、コマンド2と同様に処理される。これにより、コマンド3に対応する分割データd6,d7,d8は暗号化されて、割り当てられたセクタ23に記憶され、コマンド1に対応する分割データd9,d10,d11,d12,d13は暗号化されて、割り当てられたセクタ23に記憶される。   When the execution of the command 0 is completed, the HDD 7 executes the command 3 and then executes the command 1. Since command 3 and command 1 do not include instruction information, they are processed in the same manner as command 2. Thereby, the divided data d6, d7, d8 corresponding to the command 3 are encrypted and stored in the allocated sector 23, and the divided data d9, d10, d11, d12, d13 corresponding to the command 1 are encrypted. And stored in the allocated sector 23.

以上によりメモリ5からHDD7へのデータの転送が終了する。HDD7におけるSATAのNCQによって、コマンドの実行順序が変更されているが、初期ベクトル生成部37によって、分割データの先頭アドレスaddに基づき正しい初期ベクトルIVが生成され、この正しい初期ベクトルIVに基づき、暗号化部15で暗号化が実行される。従って、正しくAESのCBCモードで暗号化された分割データを、HDD7に記憶させることができる。   Thus, the data transfer from the memory 5 to the HDD 7 is completed. Although the command execution order is changed by the SATA NCQ in the HDD 7, the initial vector generation unit 37 generates a correct initial vector IV based on the start address add of the divided data. The encryption unit 15 performs encryption. Therefore, the divided data that has been correctly encrypted in the AES CBC mode can be stored in the HDD 7.

次に、仮想メモリであるHDD7からメモリ5にデータを転送する動作を説明する。図11はHDD7からメモリ5へのデータの転送を示す図である。上記の通り、メモリアドレスADDが「10000000−10004FFF,30001000−30003FFF,C0000000−C0004FFF」に割り当てられているデータはメモリ5からHDD7に転送されている。CPU3がそのデータをメモリ5から読み出す命令をした場合、そのデータはメモリ5に記憶されていないので、CPU3はホストコントローラ11に、HDD7からメモリ5にデータを転送するためのアクセス要求REQを送信する。   Next, an operation for transferring data from the HDD 7 which is a virtual memory to the memory 5 will be described. FIG. 11 is a diagram showing data transfer from the HDD 7 to the memory 5. As described above, data assigned to the memory address ADD “10000000-10004FFF, 30001000-30003FFF, C0000000-C0004FFF” is transferred from the memory 5 to the HDD 7. When the CPU 3 issues an instruction to read the data from the memory 5, the data is not stored in the memory 5, so the CPU 3 transmits an access request REQ for transferring data from the HDD 7 to the memory 5 to the host controller 11. .

以降はメモリ5からHDD7へのデータの転送と同様である。すなわち、図2に示すコマンドのリストが作成され、コマンドは図3に示す内容を有しており、図6に示すコマンド情報が情報テーブル31(図5)に記憶され、図7に示すようにコマンドの順番が並び替えられてコマンドが実行される。   The subsequent processing is the same as the data transfer from the memory 5 to the HDD 7. That is, the command list shown in FIG. 2 is created, the command has the contents shown in FIG. 3, the command information shown in FIG. 6 is stored in the information table 31 (FIG. 5), and as shown in FIG. The commands are executed by rearranging the order of the commands.

コマンドを実行する際に、図5に示す暗号化オンオフ判定部39はコマンドが指示情報を含むと判定すれば、そのコマンドで転送される分割データは暗号化されていないので、OFF信号を出力する。OFF信号により復号化部17が停止されるので、分割データは復号化されずに、転送される。一方、暗号化オンオフ判定部39はコマンドが指示情報を含まないと判定すれば、そのコマンドで転送される分割データは暗号化されているので、ON信号を出力する。ON信号により復号化部17が動作されるので、分割データは復号化されて転送される。復号化のフローは図9に示す暗号化のフローと同じである。   When executing the command, if the encryption on / off determination unit 39 shown in FIG. 5 determines that the command includes the instruction information, the divided data transferred by the command is not encrypted, and therefore outputs an OFF signal. . Since the decoding unit 17 is stopped by the OFF signal, the divided data is transferred without being decoded. On the other hand, if the encryption on / off determination unit 39 determines that the command does not include the instruction information, the divided data transferred by the command is encrypted, so that an ON signal is output. Since the decoding unit 17 is operated by the ON signal, the divided data is decoded and transferred. The decryption flow is the same as the encryption flow shown in FIG.

HDD7からメモリ5にデータを転送する場合も、HDD7におけるSATAのNCQによって、コマンドの実行順序が変更されているが、初期ベクトル生成部37によって、分割データの先頭アドレスaddに基づき正しい初期ベクトルIVが生成され、この正しい初期ベクトルIVに基づき、復号化部17で復号化が実行される。従って、正しくAESのCBCモードで復号化された分割データを、メモリ5に記憶させることができる。   Even when data is transferred from the HDD 7 to the memory 5, the command execution order is changed by the SATA NCQ in the HDD 7, but the initial vector generation unit 37 determines the correct initial vector IV based on the start address add of the divided data. Based on the generated initial vector IV, the decoding unit 17 performs decoding. Therefore, the divided data correctly decoded in the AES CBC mode can be stored in the memory 5.

以上説明したように、本実施形態によれば、実行されたコマンドで転送される分割データについて暗号化しないことを指示する指示情報をコマンド毎に付加することができる。これにより、HDD7にキューイングされたコマンドのそれぞれについて、暗号化する分割データに対応するコマンド1,2,3と暗号化しない分割データに対応するコマンド0に分けることができる。従って、メモリ5とHDD7との間で転送するデータの中に、暗号化するデータ(例えばファイルA)と暗号化しないデータ(例えばファイルB)とが混在する場合、暗号化するデータは暗号化して転送し、暗号化しないデータは暗号化しないで転送することができる。復号化においても、暗号化されているデータは復号化して転送し、暗号化されていないデータは復号化しないで転送することができる。   As described above, according to the present embodiment, it is possible to add instruction information for instructing not to encrypt the divided data transferred by the executed command for each command. Thereby, each of the commands queued in the HDD 7 can be divided into commands 1, 2, and 3 corresponding to the divided data to be encrypted and command 0 corresponding to the divided data not to be encrypted. Therefore, when data to be transferred between the memory 5 and the HDD 7 includes data to be encrypted (for example, file A) and data not to be encrypted (for example, file B), the data to be encrypted is encrypted. Data that is transferred and not encrypted can be transferred without encryption. Also in the decryption, encrypted data can be decrypted and transferred, and unencrypted data can be transmitted without decryption.

1 情報処理装置
5 メモリ
7 HDD(ハードディスクドライブ)
9 暗号化復号化装置
23 セクタ
31 情報テーブル
1 Information processing device 5 Memory 7 HDD (Hard disk drive)
9 Encryption / Decryption Device 23 Sector 31 Information Table

Claims (3)

メモリと、
ハードディスクドライブと、
前記メモリとの間でデータを転送するために発行されたコマンドをキューイングし、キューイングされた前記コマンドの順番を並び替えて前記コマンドを実行することにより前記データを転送し、前記データを転送する場合に前記データをセクタに記憶される単位で分割した分割データ毎に転送する前記ハードディスクドライブに用いられる暗号化復号化装置と、を備える情報処理装置であって、
前記暗号化復号化装置は、
前記コマンドを発行し、前記コマンドで転送される前記分割データについて暗号化の有無を指示する指示情報を前記コマンド毎に付加することができるコマンド発行部と、
前記コマンド発行部によって前記コマンドが発行された場合、LBAが連続する複数の前記セクタのうち先頭セクタの前記LBAであるスタートLBA、当該先頭セクタが割り当てられた前記分割データに対して割り当てられているメモリアドレスの先頭アドレスであるスタートアドレス、及び、複数の前記セクタのデータ量、を特定するための情報並びに前記指示情報を前記コマンド毎について得たものであるコマンド情報が記憶される情報テーブルと、
キューイングされた前記コマンドの順番が並び替えられて前記コマンドが実行される際に、当該実行されたコマンドで転送される前記分割データに割り当てられている前記メモリアドレスの前記先頭アドレスと前記情報テーブルに記憶されている前記コマンド情報とを用いて、転送される前記分割データに対応する前記コマンドが、前記コマンド発行部により発行された複数の前記コマンドのうちのいずれであるかを特定することを、転送される前記分割データ毎に実行するコマンド特定部と、
前記コマンド特定部で特定された前記コマンドについての前記コマンド情報と転送される前記分割データに割り当てられている前記メモリアドレスの前記先頭アドレスとを用いて、転送される前記分割データに割り当てられた前記セクタの前記LBAを算出することを、転送される前記分割データ毎に実行するLBA算出部と、
前記LBA算出部で算出された前記LBAから初期ベクトルを生成することを、転送される前記分割データ毎に実行する初期ベクトル生成部と、
転送される前記分割データをブロック単位で暗号化するに際して、先頭ブロックについては前記初期ベクトル生成部で生成された前記初期ベクトルを利用して暗号化し、残りのブロックについては暗号化された一つ前のブロックを利用して暗号化することを、前記メモリから前記ハードディスクドライブに転送する前記分割データ毎に実行する暗号化部と、
前記暗号化部で暗号化されて前記ハードディスクドライブに記憶された前記分割データについて、前記初期ベクトル生成部で生成された前記初期ベクトルを利用して復号化することを、前記ハードディスクドライブから前記メモリに転送する前記分割データ毎に実行する復号化部と、
前記メモリから前記ハードディスクドライブに前記分割データが転送される場合に、前記情報テーブルに記憶されている前記コマンド情報を参照して、(a)前記コマンド特定部で特定された前記コマンドの前記指示情報が暗号化無しを示していれば、前記分割データを暗号化しないで転送するために、前記暗号化部をオフさせ、(b)前記コマンド特定部で特定された前記コマンドの前記指示情報が暗号化有りを示していれば、前記分割データを暗号化して転送するために、前記暗号化部をオンさせる暗号化オンオフ判定部と、を備え
前記ハードディスクドライブには、前記指示情報が暗号化無しを示す前記コマンドで転送されてきた、暗号化されていない前記分割データと、前記指示情報が暗号化有りを示す前記コマンドで転送されてきた、暗号化されている前記分割データとが、記憶されている情報処理装置
Memory,
A hard disk drive,
It queues the command issued to transfer data between the memory and transfers the data by rearranging the order of the commands queued to execute the command, transferring the data an information processing apparatus comprising an encryption decoder, the used the data to the hard disk drive to be transferred to each divided data obtained by dividing a unit stored in the sector when,
The encryption / decryption device comprises:
A command issuing unit that issues the command and can add instruction information for instructing the presence or absence of encryption of the divided data transferred by the command;
When the command is issued by the command issuing unit, LBA is assigned to the start LBA that is the LBA of the first sector among the plurality of consecutive sectors, and the divided data to which the first sector is assigned. An information table for storing command information that is obtained for each command and information for specifying a start address that is a start address of a memory address, and data amounts of a plurality of the sectors, and the instruction information;
When the order of the queued commands is rearranged and the command is executed, the start address and the information table of the memory address assigned to the divided data transferred by the executed command Identifying the command corresponding to the divided data to be transferred from among the plurality of commands issued by the command issuing unit using the command information stored in A command specifying unit to be executed for each divided data to be transferred;
The command assigned to the divided data to be transferred using the command information for the command specified by the command specifying unit and the start address of the memory address assigned to the divided data to be transferred. An LBA calculation unit that calculates the LBA of a sector for each of the divided data to be transferred;
An initial vector generation unit that executes generation of an initial vector from the LBA calculated by the LBA calculation unit for each of the divided data to be transferred;
When the divided data to be transferred is encrypted in units of blocks, the first block is encrypted using the initial vector generated by the initial vector generation unit, and the remaining blocks are encrypted immediately before. An encryption unit that executes encryption for each of the divided data transferred from the memory to the hard disk drive,
Decrypting the divided data encrypted by the encryption unit and stored in the hard disk drive using the initial vector generated by the initial vector generation unit from the hard disk drive to the memory A decoding unit to be executed for each of the divided data to be transferred;
When the divided data is transferred from the memory to the hard disk drive, referring to the command information stored in the information table, (a) the instruction information of the command specified by the command specifying unit Indicates that no encryption is performed, the encryption unit is turned off to transfer the divided data without encryption, and (b) the instruction information of the command specified by the command specification unit is encrypted. An encryption on / off determination unit that turns on the encryption unit in order to encrypt and transfer the divided data .
To the hard disk drive, the instruction information has been transferred with the command indicating that there is no encryption, the divided data that has not been encrypted, and the instruction information has been transferred with the command that indicates that there is encryption, An information processing apparatus in which the divided data that has been encrypted is stored .
前記ハードディスクドライブは、SATAのNCQに対応する請求項1に記載の情報処理装置The information processing apparatus according to claim 1, wherein the hard disk drive is compatible with SATA NCQ. 前記暗号化部及び前記復号化部での暗号化方式は、AESのCBCモードである請求項1又は2項に記載の情報処理装置
The information processing apparatus according to claim 1, wherein an encryption method in the encryption unit and the decryption unit is an AES CBC mode.
JP2010257928A 2010-11-18 2010-11-18 Information processing device Expired - Fee Related JP5481354B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010257928A JP5481354B2 (en) 2010-11-18 2010-11-18 Information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010257928A JP5481354B2 (en) 2010-11-18 2010-11-18 Information processing device

Publications (2)

Publication Number Publication Date
JP2012108779A JP2012108779A (en) 2012-06-07
JP5481354B2 true JP5481354B2 (en) 2014-04-23

Family

ID=46494324

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010257928A Expired - Fee Related JP5481354B2 (en) 2010-11-18 2010-11-18 Information processing device

Country Status (1)

Country Link
JP (1) JP5481354B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5524122B2 (en) * 2011-04-06 2014-06-18 京セラドキュメントソリューションズ株式会社 Information processing apparatus and information processing method
JP5524127B2 (en) * 2011-04-27 2014-06-18 京セラドキュメントソリューションズ株式会社 Information processing apparatus and information processing method
JP6192617B2 (en) * 2014-08-04 2017-09-06 京セラドキュメントソリューションズ株式会社 Information processing apparatus and transfer control method

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001325207A (en) * 2000-05-17 2001-11-22 Hitachi Ltd Switch with built-in cache, computer system and switch control method for switch with built-in cache
WO2008114329A1 (en) * 2007-02-19 2008-09-25 Pioneer Corporation Data encryption recording device and its method
JP5117748B2 (en) * 2007-03-29 2013-01-16 株式会社日立製作所 Storage virtualization device with encryption function
JP5017136B2 (en) * 2008-02-08 2012-09-05 京セラドキュメントソリューションズ株式会社 Encryption / decryption device for hard disk drive and hard disk drive device
JP2010256652A (en) * 2009-04-27 2010-11-11 Renesas Electronics Corp Cryptographic processing apparatus and method for storage medium

Also Published As

Publication number Publication date
JP2012108779A (en) 2012-06-07

Similar Documents

Publication Publication Date Title
EP2803012B1 (en) Using storage controller bus interfaces to secure data transfer between storage devices and hosts
US9342466B2 (en) Multiple volume encryption of storage devices using self encrypting drive (SED)
US20130290736A1 (en) Data storage device, data control device and method for encrypting data
US8321659B2 (en) Data encryption apparatus, data decryption apparatus, data encryption method, data decryption method, and data transfer controlling apparatus
TWI525471B (en) Data storage apparatus having cryption and method thereof and system,solid state disk drive,computer readable medium using the data storage apparatus
EP2365444B1 (en) Dma engine capable of concurrent data manipulation
JP2012090286A (en) Memory system having encryption/decryption function of in stream data
US8908859B2 (en) Cryptographic apparatus and memory system
US20100128874A1 (en) Encryption / decryption in parallelized data storage using media associated keys
EP2722787A1 (en) Method and apparatus for writing and reading encrypted hard disk data
JP5118494B2 (en) Memory system having in-stream data encryption / decryption function
JP2008524969A5 (en)
JP5481354B2 (en) Information processing device
KR101496975B1 (en) Solid-state-disk and input/output method thereof
JP5017136B2 (en) Encryption / decryption device for hard disk drive and hard disk drive device
KR101126596B1 (en) Dual mode aes implementation to support single and multiple aes operations
US10929030B2 (en) Computer and control method
JP2007336446A (en) Data encryption apparatus
JP4853026B2 (en) Information processing apparatus and program
JP2008009933A (en) Memory device and its control method
US9058295B2 (en) Encrypt data of storage device
JP2007208696A (en) Encryption processing circuit and printer
CN101727408A (en) Data encryption method based on hard disk interface controller
JP2009075474A (en) Cryptography processor
JP2009037173A (en) Data processing apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121025

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131022

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131226

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140121

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140217

R150 Certificate of patent or registration of utility model

Ref document number: 5481354

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees