JP2009187646A - ハードディスクドライブ用の暗号化復号化装置、及びハードディスクドライブ装置 - Google Patents

ハードディスクドライブ用の暗号化復号化装置、及びハードディスクドライブ装置 Download PDF

Info

Publication number
JP2009187646A
JP2009187646A JP2008029420A JP2008029420A JP2009187646A JP 2009187646 A JP2009187646 A JP 2009187646A JP 2008029420 A JP2008029420 A JP 2008029420A JP 2008029420 A JP2008029420 A JP 2008029420A JP 2009187646 A JP2009187646 A JP 2009187646A
Authority
JP
Japan
Prior art keywords
disk drive
data
hard disk
address
encryption
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.)
Granted
Application number
JP2008029420A
Other languages
English (en)
Other versions
JP5017136B2 (ja
Inventor
Tadashi Tsutsumi
匡史 堤
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 Mita Corp
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 Mita Corp filed Critical Kyocera Mita Corp
Priority to JP2008029420A priority Critical patent/JP5017136B2/ja
Publication of JP2009187646A publication Critical patent/JP2009187646A/ja
Application granted granted Critical
Publication of JP5017136B2 publication Critical patent/JP5017136B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

【課題】SATAのNCQをサポートするハードディスクドライブへデータを記憶させる際に、AESのCBCモードを用いて、暗号化及び復号化を行うことができるハードディスクドライブ用の暗号化復号化装置、及びハードディスクドライブ装置を提供する。
【解決手段】HDD3にキューイングされた複数のコマンドに対応して、各コマンドが指定する、HDD3のセクタアドレスを示すセクタアドレス情報と、メモリ4における転送を要求するデータのアドレス範囲とを対応付けて記憶する情報テーブル74を参照してSATAホストコントローラ8から出力されたアドレスを含むアドレス範囲を探索し、当該探し出されたアドレス範囲と対応するセクタアドレス情報に基づきセクタアドレスを取得し、このセクタアドレスに基づいて、初期ベクトルを生成する初期ベクトル供給部を備えた。
【選択図】図1

Description

本発明は、ハードディスクドライブ用の暗号化復号化装置、及びハードディスクドライブ装置に関する。
データをブロック単位で暗号化する暗号化方式であって、先頭データを暗号化する際に初期ベクトル(IV)を使用し、先頭データ以外のデータについては当該データの一つ前のデータを使用して暗号化を行うブロック暗号化方式として、AES(Advanced Encryption Standard)のCBC(Cipher Block Chaining)モードが知られている。
AESのCBCモードでは、データブロックの先頭データ以外のデータについては当該データの一つ前のデータを使用して暗号化されているので、データを復号化する際も、データブロック単位で先頭から順に復号化しなければ、正しくデータを復号化できない。
ハードディスクドライブに記憶するデータファイルをAESのCBCモードで暗号化する場合、ファイル単位で初期ベクトルを設定すると、ファイルの先頭データ以外のデータについては当該データの一つ前のデータを使用して暗号化されているので、データを復号化する際も、ファイル単位で先頭から順に復号化しなければ、正しくデータを復号化できない。
しかし、ハードディスクドライブを使用する場合、ファイル中の特定箇所のデータを抜き出してアクセスしたい場合がある。そこで、ハードディスクドライブに記憶させるデータを暗号化、及び復号化する方法として、ハードディスクドライブのセクタ毎に初期ベクトルを設定し、AESのCBCモードで暗号化、及び復号化する方法が知られている(例えば、特許文献1参照。)。
特許文献1に記載の技術では、セクタ毎に設定された初期ベクトルによって暗号化されたデータを読み出す際に、読み出したいセクタを指定し、当該セクタに設定された初期ベクトルで復号化することで、AESのCBCモードで暗号化されたデータにセクタ単位でアクセスすることが可能になっている。
特開2007−183514号公報
ところで、SATAのNCQに対応するハードディスクドライブは、32個のコマンドをキューイングするバッファを備えており、複数のコマンドがキューイングされると、アクセス効率が高まるように、ハードディスクドライブ側で勝手にコマンドの実行順序を変更する。各コマンドは、アクセスするセクタ番号を指定しているので、コマンドの実行順序が変更されると、外部から指示したコマンドのセクタ順番と、実際にハードディスクドライブでアクセスが実行されるセクタの順番とが異なってしまう。
例えば、セクタ0,1,2,3の順に、ハードディスクドライブへ書き込みコマンドを送信すると、ハードディスクドライブでは、例えばセクタ2,1,0,3というように、書き込み実行順序が変更される。そして、このデータを読み出すために、再びセクタ0,1,2,3の順に、ハードディスクドライブへ読み出しコマンドを送信すると、ハードディスクドライブでは、例えばセクタ1,0,3,2の順に読み出しが実行され、読み出しコマンドで指示したセクタ番号順とは異なる順番でデータが読み出されることとなる。
このような、SATAのNCQに対応するハードディスクドライブを用いて、例えば特許文献1に記載の技術を用いて、AESのCBCモードのように、先頭データを暗号化する際に初期ベクトル(IV)を使用し、先頭データ以外のデータについては当該データの一つ前のデータを使用して暗号化を行うブロック暗号化方式を用いて暗号化したデータを記憶させようとすると、以下のような不都合が生じる。
例えば、セクタ0,1,2,3の順に、ハードディスクドライブへ書き込みコマンドを送信すると、ハードディスクドライブでは、例えばセクタ2,1,0,3というように、書き込み実行順序が変更され、メモリからセクタ2,1,0,3に対応するデータがこの順に読み出されて、ハードディスクドライブへ転送される。
このとき、ハードディスクドライブの外部に設けられた暗号化装置によって、メモリからハードディスクドライブへ転送されるデータを上述のブロック暗号化方式で暗号化しようとしても、ハードディスクドライブに入力されたコマンドのセクタ番号順と、メモリからハードディスクドライブへ転送されるデータに対応するセクタ番号順とが異なってしまうため、セクタ毎に設定された初期ベクトルを転送データに正しく対応させることができなくなる結果、正しく暗号化することができないという不都合があった。
そして、このようにしてハードディスクドライブに記憶されたデータを読み出すときにも、書き込み時と同様読み出されるセクタ順がハードディスクドライブにより勝手に変更されてしまうために、ハードディスクドライブからメモリへ転送されるデータに、セクタ毎に設定された初期ベクトルを正しく対応させることができなくなる結果、正しく復号化することができないという不都合があった。
本発明は、このような事情に鑑みて為された発明であり、データを記憶するメモリとの間でのデータ転送を要求する複数のコマンドをキューイングすると共にキューイングされたコマンドの実行順序を決定するハードディスクドライブへデータを記憶させる際に、データをブロック単位で暗号化するに際して、先頭データを暗号化するときに初期ベクトルを使用し、先頭データ以外のデータについては当該データの一つ前のデータを使用して暗号化を行うブロック暗号化方式を用いて、暗号化及び復号化を行うことができるハードディスクドライブ用の暗号化復号化装置、及びハードディスクドライブ装置を提供することを目的とする。
本発明に係るハードディスクドライブ用の暗号化復号化装置は、メモリとの間でのデータ転送を要求する複数のコマンドをキューイングすると共に、キューイングされたコマンドの実行順序を決定するハードディスクドライブ用の暗号化復号化装置であって、前記ハードディスクドライブにキューイングされた複数のコマンドに対応して、各コマンドが指定する、前記ハードディスクドライブのセクタアドレスを示すセクタアドレス情報と、前記メモリにおける前記転送を要求するデータのアドレス範囲とを対応付けて記憶する情報テーブルと、前記ハードディスクドライブからのアクセス要求を受け付けて、前記メモリをアクセスするためのアドレスを出力する制御部と、前記情報テーブルを参照して前記制御部から出力されたアドレスを含む前記アドレス範囲を探索し、当該探し出されたアドレス範囲と対応するセクタアドレス情報に基づきセクタアドレスを取得するセクタアドレス取得部と、前記セクタアドレス取得部によって取得されたセクタアドレスに基づいて、前記初期ベクトルを生成する初期ベクトル生成部と、データをブロック単位で暗号化するに際して、先頭データを暗号化するときに前記初期ベクトル生成部で生成された初期ベクトルを使用し、先頭データ以外のデータについては当該データの一つ前のデータを使用して暗号化を行うブロック暗号化方式によって、前記メモリから前記ハードディスクドライブへ転送されるデータを暗号化する暗号化部と、前記ブロック暗号化方式により暗号化されたデータを、前記初期ベクトル生成部で生成された初期ベクトルを用いて、前記ハードディスクドライブから前記メモリへ転送される際に復号化する復号化部とを備える。
この構成によれば、制御部によって、ハードディスクドライブからのアクセス要求に応じてメモリをアクセスするためのアドレスが出力される。そして、セクタアドレス取得部によって、制御部から出力されたアドレスを含んで情報テーブルに記憶されているアドレス範囲が探索され、当該探し出されたアドレス範囲と対応して情報テーブルに記憶されているセクタアドレス情報に基づきセクタアドレスが取得される。さらに、初期ベクトル生成部によって、セクタアドレス取得部で取得されたセクタアドレスに基づいて、初期ベクトルが生成されて暗号化部と復号化部とへ供給される。この場合、ハードディスクドライブにおいてキューイングされたコマンドの実行順序が変更された場合であっても、メモリをアクセスするために実際に出力されたアドレスに基づいて初期ベクトルが生成され、暗号化部においてこの初期ベクトルを用いて暗号化が行われ、復号化部においてこの初期ベクトルを用いて復号化が行われるので、データを記憶するメモリとの間でのデータ転送を要求する複数のコマンドをキューイングすると共にキューイングされたコマンドの実行順序を決定するハードディスクドライブへデータを記憶させる際に、データをブロック単位で暗号化するに際して、先頭データを暗号化するときに初期ベクトルを使用し、先頭データ以外のデータについては当該データの一つ前のデータを使用して暗号化を行うブロック暗号化方式を用いて、暗号化及び復号化を行うことができる。
また、前記情報テーブルは、前記データのアドレス範囲を、前記メモリにおける前記転送を要求するデータの先頭アドレスと、前記転送を要求するデータのサイズとして記憶し、前記セクタアドレス取得部は、前記制御部から出力されたアドレスが前記先頭アドレス以上であって、かつ前記先頭アドレスと前記データのサイズとを加算したアドレスに満たない条件を満たすアドレス範囲を探索することが好ましい。
この構成によれば、情報テーブルには、データのアドレス範囲が、メモリにおける転送を要求するデータの先頭アドレスと、転送を要求するデータのサイズとして記憶されている。そして、セクタアドレス取得部は、制御部から出力されたアドレスが先頭アドレス以上であって、かつ先頭アドレスとデータのサイズとを加算したアドレスに満たない条件を満たすアドレス範囲を探索することによって、制御部から出力されたアドレスを含んで情報テーブルに記憶されているアドレス範囲を探し出すことができる。
また、前記情報テーブルは、さらに、前記セクタアドレス情報として、前記各コマンドが指定するセクタアドレスの先頭を記憶し、前記セクタアドレス取得部は、前記制御部から出力されたアドレスと、前記情報テーブルにおいて前記探し出されたアドレス範囲と対応付けて記憶されている先頭アドレスとの差を前記ハードディスクドライブのセクタサイズで除した値を、前記情報テーブルにおいて前記探し出されたアドレス範囲と対応付けて記憶されているセクタアドレス情報に加算することにより、前記セクタアドレスを算出することが好ましい。
この構成によれば、情報テーブルには、さらに、セクタアドレス情報として、各コマンドが指定するセクタアドレスの先頭が記憶されている。そして、セクタアドレス取得部は、制御部から出力されたアドレスと、情報テーブルにおいて前記探し出されたアドレス範囲と対応付けて記憶されている先頭アドレスとの差をハードディスクドライブのセクタサイズで除した値を、情報テーブルにおいて前記探し出されたアドレス範囲と対応付けて記憶されているセクタアドレス情報に加算することにより、制御部から出力されたアドレスに対応するセクタアドレスを算出することができる。
また、前記ハードディスクドライブは、SATA(Serial Advanced Technology Attachment)のNCQ(Native Command Queuing)に対応することが好ましい。
この構成によれば、SATAのNCQに対応するハードディスクドライブへデータを記憶させる際に、データをブロック単位で暗号化するに際して、先頭データを暗号化するときに初期ベクトルを使用し、先頭データ以外のデータについては当該データの一つ前のデータを使用して暗号化を行うブロック暗号化方式を用いて、暗号化及び復号化を行うことができる。
また、前記ブロック暗号化方式は、AES(Advanced Encryption Standard)のCBC(Cipher Block Chaining)モードであることが好ましい。
この構成によれば、データを記憶するメモリとの間でのデータ転送を要求する複数のコマンドをキューイングすると共にキューイングされたコマンドの実行順序を決定するハードディスクドライブへデータを記憶させる際に、AESのCBCモードを用いて、暗号化及び復号化を行うことができる。
また、本発明に係るハードディスクドライブ装置は、上述のハードディスクドライブ用の暗号化復号化装置と、メモリと、前記メモリとの間でのデータ転送を要求する複数のコマンドをキューイングすると共に、キューイングされたコマンドの実行順序を決定するハードディスクドライブとを備える。
この構成によれば、データを記憶するメモリとの間でのデータ転送を要求する複数のコマンドをキューイングすると共にキューイングされたコマンドの実行順序を決定するハードディスクドライブへデータを記憶させる際に、データをブロック単位で暗号化するに際して、先頭データを暗号化するときに初期ベクトルを使用し、先頭データ以外のデータについては当該データの一つ前のデータを使用して暗号化を行うブロック暗号化方式を用いて、暗号化及び復号化を行うことができる。
このような構成のハードディスクドライブ用の暗号化復号化装置、及びハードディスクドライブ装置は、データを記憶するメモリとの間でのデータ転送を要求する複数のコマンドをキューイングすると共にキューイングされたコマンドの実行順序を決定するハードディスクドライブへデータを記憶させる際に、データをブロック単位で暗号化するに際して、先頭データを暗号化するときに初期ベクトルを使用し、先頭データ以外のデータについては当該データの一つ前のデータを使用して暗号化を行うブロック暗号化方式を用いて、暗号化及び復号化を行うことができる。
以下、本発明に係る実施形態を図面に基づいて説明する。なお、各図において同一の符号を付した構成は、同一の構成であることを示し、その説明を省略する。図1は、本発明の一実施形態に係るハードディスクドライブ用の暗号化復号化装置を備えるハードディスクドライブ装置の構成の一例を示すブロック図である。
図1に示すハードディスクドライブ装置1は、暗号化復号化装置2と、ハードディスクドライブ(HDD)3と、メモリ4とを備えている。そして、ハードディスクドライブ装置1は、CPU(Central Processing Unit)100と接続されている。CPU100は、ハードディスクドライブ装置1にアクセスする装置側のCPUである。
暗号化復号化装置2は、例えばASIC(Application Specific Integrated Circuit)を用いて構成されており、暗号化部5、復号化部6、初期ベクトル供給部7、SATAホストコントローラ(制御部)8、及び暗号鍵記憶部9を備えている。なお、暗号化復号化装置2と共にメモリ4も含めてASIC化されていてもよい。
ハードディスクドライブ3は、例えばSATAのNCQをサポートするハードディスクドライブであり、メモリとの間でのデータ転送を要求する32個のコマンドをキューイングし、ディスクへのアクセス効率がよくなるようにキューイングされたコマンドの実行順序を決定して実行する。ハードディスクドライブ3は、コマンドを実行してメモリとの間でデータ転送を行うときは、SATAホストコントローラ8へメモリアクセス要求を出力することにより、SATAホストコントローラ8を介してメモリアクセスを実行するようになっている。
SATAホストコントローラ8は、例えばSATAのAHCI(Advanced Host Controller Interface)規約に則って構成されている。そして、SATAホストコントローラ8は、CPU100からのアクセス要求に応じて、ハードディスクドライブ3へコマンドを送信する。また、SATAホストコントローラ8は、ハードディスクドライブ3からメモリアクセス要求を受け付けると、当該要求に応じてメモリアドレスaddr(アドレス)や制御信号をメモリ4へ出力し、メモリ4からのデータの読み出しやメモリ4へのデータの書き込みを行う。
暗号鍵記憶部9は、例えばRAM(Random Access Memory)やレジスタ等の記憶手段によって構成されており、暗号化及び復号化に用いる暗号鍵が、予め記憶されている。
暗号化部5は、メモリ4とSATAホストコントローラ8との間に設けられている。そして、暗号化部5は、暗号鍵記憶部9に記憶されている暗号鍵と、初期ベクトル供給部7で生成された初期ベクトルとに基づいて、SATAホストコントローラ8から出力されたメモリアドレスaddrに応じてメモリ4からSATAホストコントローラ8へ転送されるデータ41を、リアルタイムで暗号化して暗号化データ51としてSATAホストコントローラ8へ出力する。暗号化部5は、ブロック暗号化方式として、例えばAESのCBCモードを用いるようになっている。
復号化部6は、SATAホストコントローラ8とメモリ4との間に設けられている。そして、復号化部6は、SATAホストコントローラ8から出力されたメモリアドレスaddrに書き込むべく、SATAホストコントローラ8から出力された暗号化データ81を、暗号鍵記憶部9に記憶されている暗号鍵と、初期ベクトル供給部7で生成された初期ベクトルとに基づいてリアルタイムに復号化し、復号化データ61としてメモリ4へ出力する。
復号化部6は、暗号化部5と同じ暗号化方式を用いて復号化を行う。なお、暗号化部5及び復号化部6は、AESのCBCモードを用いる例に限られず、データをブロック単位で暗号化する暗号化方式であって、先頭データを暗号化する際に初期ベクトルを使用し、先頭データ以外のデータについては当該データの一つ前のデータを使用して暗号化を行うブロック暗号化方式を用いるものであればよい。
初期ベクトル供給部7は、例えば種々の論理回路や順序回路等を用いて構成されている。図2は、図1に示す初期ベクトル供給部7の構成の一例を示すブロック図である。図2に示す初期ベクトル供給部7は、例えば、コマンド判定部71、セクタアドレス算出部72、初期ベクトル生成部73、及び情報テーブル74を備えている。
情報テーブル74は、ハードディスクドライブ3でキューイングされる32個のコマンドに対応する32個のコマンド情報を、0〜31のコマンド番号を付して記憶する。具体的には、初期ベクトル供給部7は、CPU100からのSATAホストコントローラ8へのアクセス要求を監視し、アクセス要求に応じてSATAホストコントローラ8からハードディスクドライブ3へ出力されるコマンドに対応するコマンド情報を、情報テーブル74として記憶する。
情報テーブル74に記憶される各コマンド情報は、各々、コマンドI(Iはコマンド番号)が存在するか否かを示す情報であるExist[I]と、アクセスを要求するハードディスクドライブ3のセクタアドレスの先頭を示す情報であるStart_LBA[I]と、メモリ4における転送データ領域の先頭アドレスを示す情報であるStart_Address[I]と、転送データのセクタサイズを示す情報であるSector_Size[I]とを含んでいる。
この場合、Start_LBA[I]とStart_Address[I]とでセクタアドレス情報の一例が構成され、Start_Address[I]とSector_Size[I](データのサイズ)とで、アドレス範囲の一例が構成されている。
コマンド判定部71は、情報テーブル74を参照して、SATAホストコントローラ8からメモリをアクセスすべく出力されたメモリアドレスaddrを含むアドレス範囲を探索し、当該アドレス範囲を指定するコマンド情報のコマンド番号Iを取得する。
セクタアドレス算出部72は、コマンド判定部71により取得されたコマンド番号Iの、Start_LBA[I]とStart_Address[I]とに基づいて、転送データのセクタアドレスLBAを算出する。
この場合、コマンド判定部71とセクタアドレス算出部72とで、セクタアドレス取得部の一例が構成されている。
初期ベクトル生成部73は、セクタアドレス算出部72により算出されたセクタアドレスLBAに、所定の演算処理、例えば排他的論理和演算等の演算処理を施して、初期ベクトルIVを生成し、暗号化部5、及び復号化部6へ供給する。これにより、暗号強度を向上させる。なお、初期ベクトル生成部73は、セクタアドレスLBAを、そのまま初期ベクトルIVとして出力する構成としてもよい。
次に、上述のように構成された暗号化復号化装置2、及びハードディスクドライブ装置1の動作について説明する。まず、ハードディスクドライブ装置1へのデータ書き込みを行う場合、CPU100からSATAホストコントローラ8へ、メモリ4からハードディスクドライブ3へのデータ転送を要求する複数のアクセス要求があると、SATAホストコントローラ8によって、SATAのAHCI規約に従って、当該アクセス要求に応じた複数のコマンドがハードディスクドライブ3へ送信される。そうすると、ハードディスクドライブ3において、当該複数のコマンドがキューイングされる。
このとき、初期ベクトル供給部7によって、CPU100からのアクセス要求に基づいて、情報テーブル74が生成される。
次に、ハードディスクドライブ3によって、ディスクへのアクセス効率がよくなるように、キューイングされたコマンドの実行順序が決定されて、当該決定された実行順にコマンドが実行される。そして、ハードディスクドライブ3からSATAホストコントローラ8へ、実行されたコマンドに応じたメモリアクセス要求が送信される。
そうすると、SATAホストコントローラ8から、当該メモリアクセス要求に応じたメモリアドレスaddrがメモリ4へ送信される。このとき、このメモリアドレスaddrが初期ベクトル供給部7によって取得され、初期ベクトル供給部7で初期ベクトルIVが生成されて暗号化部5、及び復号化部6へ出力される。
図3は、図2に示す初期ベクトル供給部7の動作の一例を示すフローチャートである。まず、コマンド判定部71によって、メモリアドレスaddrが取得される。そして、コマンド判定部71は、情報テーブル74に記憶されている各コマンド情報におけるStart_Address[I]と、Sector_Size[I]とに基づいて、下記の式(1)を満たすコマンド番号Iを探索する(ステップS1)。
Start_Address[I] ≦ Addr < (Start_Address[I] + Sector_Size[I] × 512) ・・・(1)
式(1)は、ハードディスクドライブ3の1セクタが512Byteである場合の例を示している。そして、コマンド判定部71は、このようにして探索されたコマンド番号Iを、該当コマンド番号Isとして取得する(ステップS2)。
次に、セクタアドレス算出部72は、該当コマンド番号Isに基づいて、下記の式(2)によって、セクタアドレスLBAを算出する。
LBA=Start_LBA[Is]+(Addr − Start_Address[Is]/512) ・・・(2)
式(2)は、ハードディスクドライブ3の1セクタが512Byteである場合の例を示している。
次に、初期ベクトル生成部73によって、予め設定された所定の演算処理Make_Ivが、LBAに施されて、初期ベクトルIVが生成され(ステップS4)、初期ベクトルIVが、暗号化部5及び復号化部6へ出力される(ステップS5)。
そうすると、暗号化部5は、SATAホストコントローラ8からのメモリアドレスaddrに応じてメモリ4から出力されたデータ41を、初期ベクトル生成部73から出力された初期ベクトルIVと、暗号鍵記憶部9に記憶されている暗号鍵とに基づいて、AESのCBCモードで暗号化して暗号化データ51としてSATAホストコントローラ8へ出力する。SATAホストコントローラ8は、暗号化データ51をハードディスクドライブ3へ出力して記憶させる。
この場合、ハードディスクドライブ3におけるSATAのNCQによって、コマンドの実行順序が変更された場合であっても、初期ベクトル生成部73によって、実際にアクセスされるメモリアドレスaddrに基づき正しい初期ベクトルIVが生成され、この正しい初期ベクトルIVに基づき、暗号化部5による暗号化が実行されるので、正しくAESのCBCモードで暗号化された暗号化データ51を、ハードディスクドライブ3に記憶させることができる。
次に、ハードディスクドライブ3に記憶された暗号化データを読み出す場合、CPU100からSATAホストコントローラ8へ、ハードディスクドライブ3からメモリ4へのデータ転送を要求する複数のアクセス要求があると、SATAホストコントローラ8によって、SATAのAHCI規約に従って、当該アクセス要求に応じた複数のコマンドがハードディスクドライブ3へ送信される。そうすると、ハードディスクドライブ3において、当該複数のコマンドがキューイングされる。
このとき、初期ベクトル供給部7によって、CPU100からのアクセス要求に基づいて、情報テーブル74が生成される。
次に、ハードディスクドライブ3によって、ディスクへのアクセス効率がよくなるようにキューイングされたコマンドの実行順序が決定されて、当該決定された実行順にコマンドが実行される。そして、ハードディスクドライブ3からSATAホストコントローラ8へ、実行されたコマンドに応じたメモリ書き込み要求と、ハードディスクドライブ3から読み出された暗号化データ81とが出力される。
そうすると、SATAホストコントローラ8から、当該メモリアクセス要求に応じた書き込みアドレスを示すメモリアドレスaddrがメモリ4へ送信されると共に、暗号化データ81が復号化部6へ出力される。このとき、このメモリアドレスaddrが初期ベクトル供給部7によって取得され、上述のハードディスクドライブ3へのデータ書き込みの場合と同様に、ステップS1〜S5の動作によって、初期ベクトル供給部7で初期ベクトルIVが生成されて暗号化部5、及び復号化部6へ出力される。
そうすると、復号化部6は、SATAホストコントローラ8からメモリアドレスaddrと共に出力された暗号化データ81を、初期ベクトル生成部73から出力された初期ベクトルIVと、暗号鍵記憶部9に記憶されている暗号鍵とに基づいて、AESのCBCモードで復号化して復号化データ61としてメモリ4へ出力して記憶させる。
この場合、ハードディスクドライブ3におけるSATAのNCQによって、コマンドの実行順序が変更された場合であっても、初期ベクトル生成部73によって、実際にアクセスされるメモリアドレスaddrに基づき正しい初期ベクトルIVが生成され、この正しい初期ベクトルIVに基づき、復号化部6による復号化が実行されるので、正しくAESのCBCモードで復号化された復号化データ61を、メモリ4に記憶させることができる。
以上のように、図1に記載の暗号化復号化装置2を用いたハードディスクドライブ装置1によれば、SATAのNCQを実行するハードディスクドライブ3へ、AESのCBCモードを用いて暗号化されたデータをリアルタイムで正しく記憶させ、リアルタイムで正しく復号化して読み出すことができる。
本発明の一実施形態に係るハードディスクドライブ用の暗号化復号化装置を備えるハードディスクドライブ装置の構成の一例を示すブロック図である。 図1に示す初期ベクトル供給部の構成の一例を示すブロック図である。 図2に示す初期ベクトル供給部の動作の一例を示すフローチャートである。
符号の説明
1 ハードディスクドライブ装置
2 暗号化復号化装置
3 ハードディスクドライブ
4 メモリ
5 暗号化部
6 復号化部
7 初期ベクトル供給部
8 ホストコントローラ
9 暗号鍵記憶部
71 コマンド判定部
72 セクタアドレス算出部
73 初期ベクトル生成部
74 情報テーブル
I コマンド番号
IV 初期ベクトル
LBA セクタアドレス
addr メモリアドレス

Claims (6)

  1. メモリとの間でのデータ転送を要求する複数のコマンドをキューイングすると共に、キューイングされたコマンドの実行順序を決定するハードディスクドライブ用の暗号化復号化装置であって、
    前記ハードディスクドライブにキューイングされた複数のコマンドに対応して、各コマンドが指定する、前記ハードディスクドライブのセクタアドレスを示すセクタアドレス情報と、前記メモリにおける前記転送を要求するデータのアドレス範囲とを対応付けて記憶する情報テーブルと、
    前記ハードディスクドライブからのアクセス要求を受け付けて、前記メモリをアクセスするためのアドレスを出力する制御部と、
    前記情報テーブルを参照して前記制御部から出力されたアドレスを含む前記アドレス範囲を探索し、当該探し出されたアドレス範囲と対応するセクタアドレス情報に基づきセクタアドレスを取得するセクタアドレス取得部と、
    前記セクタアドレス取得部によって取得されたセクタアドレスに基づいて、前記初期ベクトルを生成する初期ベクトル生成部と、
    データをブロック単位で暗号化するに際して、先頭データを暗号化するときに前記初期ベクトル生成部で生成された初期ベクトルを使用し、先頭データ以外のデータについては当該データの一つ前のデータを使用して暗号化を行うブロック暗号化方式によって、前記メモリから前記ハードディスクドライブへ転送されるデータを暗号化する暗号化部と、
    前記ブロック暗号化方式により暗号化されたデータを、前記初期ベクトル生成部で生成された初期ベクトルを用いて、前記ハードディスクドライブから前記メモリへ転送される際に復号化する復号化部と
    を備えることを特徴とするハードディスクドライブ用の暗号化復号化装置。
  2. 前記情報テーブルは、
    前記データのアドレス範囲を、前記メモリにおける前記転送を要求するデータの先頭アドレスと、前記転送を要求するデータのサイズとして記憶し、
    前記セクタアドレス取得部は、
    前記制御部から出力されたアドレスが前記先頭アドレス以上であって、かつ前記先頭アドレスと前記データのサイズとを加算したアドレスに満たない条件を満たすアドレス範囲を探索すること
    を特徴とする請求項1記載のハードディスクドライブ用の暗号化復号化装置。
  3. 前記情報テーブルは、
    さらに、前記セクタアドレス情報として、前記各コマンドが指定するセクタアドレスの先頭を記憶し、
    前記セクタアドレス取得部は、
    前記制御部から出力されたアドレスと、前記情報テーブルにおいて前記探し出されたアドレス範囲と対応付けて記憶されている先頭アドレスとの差を前記ハードディスクドライブのセクタサイズで除した値を、前記情報テーブルにおいて前記探し出されたアドレス範囲と対応付けて記憶されているセクタアドレス情報に加算することにより、前記セクタアドレスを算出すること
    を特徴とする請求項2記載のハードディスクドライブ用の暗号化復号化装置。
  4. 前記ハードディスクドライブは、
    SATA(Serial Advanced Technology Attachment)のNCQ(Native Command Queuing)に対応すること
    を特徴とする請求項1〜3のいずれか1項に記載のハードディスクドライブ用の暗号化復号化装置。
  5. 前記ブロック暗号化方式は、
    AES(Advanced Encryption Standard)のCBC(Cipher Block Chaining)モードであること
    を特徴とする請求項1〜4のいずれか1項に記載のハードディスクドライブ用の暗号化復号化装置。
  6. 請求項1〜5のいずれかに記載のハードディスクドライブ用の暗号化復号化装置と、
    メモリと、
    前記メモリとの間でのデータ転送を要求する複数のコマンドをキューイングすると共に、キューイングされたコマンドの実行順序を決定するハードディスクドライブと
    を備えることを特徴とするハードディスクドライブ装置。
JP2008029420A 2008-02-08 2008-02-08 ハードディスクドライブ用の暗号化復号化装置、及びハードディスクドライブ装置 Expired - Fee Related JP5017136B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008029420A JP5017136B2 (ja) 2008-02-08 2008-02-08 ハードディスクドライブ用の暗号化復号化装置、及びハードディスクドライブ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008029420A JP5017136B2 (ja) 2008-02-08 2008-02-08 ハードディスクドライブ用の暗号化復号化装置、及びハードディスクドライブ装置

Publications (2)

Publication Number Publication Date
JP2009187646A true JP2009187646A (ja) 2009-08-20
JP5017136B2 JP5017136B2 (ja) 2012-09-05

Family

ID=41070709

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008029420A Expired - Fee Related JP5017136B2 (ja) 2008-02-08 2008-02-08 ハードディスクドライブ用の暗号化復号化装置、及びハードディスクドライブ装置

Country Status (1)

Country Link
JP (1) JP5017136B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011048691A (ja) * 2009-08-27 2011-03-10 Kyocera Mita Corp 情報処理装置および制御装置
JP2012108779A (ja) * 2010-11-18 2012-06-07 Kyocera Mita Corp ハードディスクドライブ用の暗号化復号化装置及び情報処理装置
JP2012221111A (ja) * 2011-04-06 2012-11-12 Kyocera Document Solutions Inc 情報処理装置及び情報処理方法
JP2012230620A (ja) * 2011-04-27 2012-11-22 Kyocera Document Solutions Inc 情報処理装置及び情報処理方法
CN106850221A (zh) * 2017-04-10 2017-06-13 四川阵风科技有限公司 信息加密、解密方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005215729A (ja) * 2004-01-27 2005-08-11 Hitachi Global Storage Technologies Netherlands Bv データ伝送制御方法及び記憶装置
JP2006139459A (ja) * 2004-11-11 2006-06-01 Hitachi Global Storage Technologies Netherlands Bv メディア・ドライブ及びそのパワー・セーブ方法
JP2007183514A (ja) * 2006-01-10 2007-07-19 Fuji Xerox Co Ltd 情報処理装置及びプログラム
JP2008017250A (ja) * 2006-07-07 2008-01-24 Seiko Epson Corp データ転送制御装置及び電子機器
JP2008292852A (ja) * 2007-05-25 2008-12-04 Hitachi Ltd ディスクアレイ制御装置とディスクアレイ制御方法およびストレージシステム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005215729A (ja) * 2004-01-27 2005-08-11 Hitachi Global Storage Technologies Netherlands Bv データ伝送制御方法及び記憶装置
JP2006139459A (ja) * 2004-11-11 2006-06-01 Hitachi Global Storage Technologies Netherlands Bv メディア・ドライブ及びそのパワー・セーブ方法
JP2007183514A (ja) * 2006-01-10 2007-07-19 Fuji Xerox Co Ltd 情報処理装置及びプログラム
JP2008017250A (ja) * 2006-07-07 2008-01-24 Seiko Epson Corp データ転送制御装置及び電子機器
JP2008292852A (ja) * 2007-05-25 2008-12-04 Hitachi Ltd ディスクアレイ制御装置とディスクアレイ制御方法およびストレージシステム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011048691A (ja) * 2009-08-27 2011-03-10 Kyocera Mita Corp 情報処理装置および制御装置
JP2012108779A (ja) * 2010-11-18 2012-06-07 Kyocera Mita Corp ハードディスクドライブ用の暗号化復号化装置及び情報処理装置
JP2012221111A (ja) * 2011-04-06 2012-11-12 Kyocera Document Solutions Inc 情報処理装置及び情報処理方法
JP2012230620A (ja) * 2011-04-27 2012-11-22 Kyocera Document Solutions Inc 情報処理装置及び情報処理方法
CN106850221A (zh) * 2017-04-10 2017-06-13 四川阵风科技有限公司 信息加密、解密方法及装置

Also Published As

Publication number Publication date
JP5017136B2 (ja) 2012-09-05

Similar Documents

Publication Publication Date Title
JP5032647B2 (ja) データ記憶装置、コントロール装置及び暗号化方法
JP5134894B2 (ja) ストレージ装置及び暗号鍵変更方法
JP6067757B2 (ja) ストレージ装置とホスト間でデータ伝送を保護するためのストレージ・コントローラ・バス・インターフェースの使用
JP2011070664A (ja) 暗号キー選択装置を具備するストレージ・システム及び暗号キー選択方法
US20100169672A1 (en) Encryption program operation management system and program
JP2008052360A (ja) ストレージ装置およびライト実行プログラム
JP5017136B2 (ja) ハードディスクドライブ用の暗号化復号化装置、及びハードディスクドライブ装置
JP5121974B2 (ja) データ記憶装置、記憶制御装置及び方法
KR101496975B1 (ko) 고체 상태 디스크 및 이에 대한 입출력방법
JP2009111687A (ja) 記憶装置、暗号化データ処理方法
JP4798672B2 (ja) 磁気ディスク装置
US20100241870A1 (en) Control device, storage device, data leakage preventing method
US20050259458A1 (en) Method and system of encrypting/decrypting data stored in one or more storage devices
JP2010256652A (ja) 記憶媒体暗号処理装置及び方法
US20100138670A1 (en) Storage apparatus and data writing method
JP5481354B2 (ja) 情報処理装置
US10929030B2 (en) Computer and control method
JP2007336446A (ja) データ暗号化装置
JP2009175880A (ja) 情報処理装置及びプログラム
JP4592337B2 (ja) データ記憶装置
JP4853026B2 (ja) 情報処理装置及びプログラム
US9058295B2 (en) Encrypt data of storage device
JP2007026105A (ja) ファイル管理装置、ファイル管理方法、及びファイル管理プログラム
JP2005172866A (ja) 暗号化/復号化システム
US20160321194A1 (en) Storage device, controller, and control method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120420

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: 20120515

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120611

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5017136

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees