説明

データ記憶装置、記憶制御装置及び方法

【課題】暗号化・復号化機能を有するデータ記憶装置での書き戻し処理の高速化を図ることで処理効率の向上を実現することにある。
【解決手段】実施形態によれば、データ記憶装置は、リードモジュールと、データ転送コントローラと、テーブル生成モジュールとを具備する。リードモジュールは、記憶媒体から暗号化された所定単位のデータを読み出す。データ転送コントローラは、前記リードモジュールにより読み出されたデータをバッファ領域に転送する。テーブル生成モジュールは、前記データ転送手段の転送処理と並行して、前記所定単位のデータから暗号鍵として現在使用中の新暗号鍵と旧世代で使用していた旧暗号鍵とを識別する新旧識別情報を取得し、かつ前記所定単位のデータ毎に前記新旧識別情報を対応付けしたテーブル情報を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、暗号化機能を有するデータ記憶装置、記憶制御装置及び方法に関する。
【背景技術】
【0002】
近年、ハードディスクドライブ(以下、単にディスクドライブと表記する場合がある)などにおいて、データのセキュリティを確保するために、ディスクなどの記憶媒体に対してデータを暗号化して記録するデータ記憶装置が開発されている。このようなデータ記憶装置では、ホストからリード要求があると、記憶媒体から読み出した暗号化データを復号化してホストに転送する。
【0003】
なお、データ記憶装置としては、ディスクドライブだけでなく、記憶媒体としてフラッシュメモリを使用するソリッドステートドライブ(solid-state drive : SSD)なども含まれる。また、データの暗号化・復号化機能を有するディスクドライブを、自己暗号化ディスク(Self Encrypting Disk : SED)ドライブと呼ばれることがある。
【0004】
ところで、データの暗号化・復号化機能を有するディスクドライブでは、暗号化・復号化を行なうための暗号鍵として、常に現在使用中の最新の暗号鍵(新暗号鍵と表記する場合がある)のみが内部メモリに保存されている。一方、ディスク上には、新暗号鍵により暗号化された最新のデータだけでなく、旧世代で使用していた暗号鍵(旧暗号鍵と表記する場合がある)により暗号化されたデータが記憶されている。この場合、複数の旧世代で使用していた旧暗号鍵により暗号化されたデータが混在している可能性がある。
【0005】
従って、このようなディスクドライブは、ライト動作時に、暗号鍵の変更履歴情報(鍵世代情報)を含ませたデータをディスク上にライトする。リード動作時には、鍵世代情報を検査して、その世代情報が最新であれば新暗号鍵によりデータを復号化する。また、世代情報が旧世代で使用していたものであれば、データを復号化できないため、初期化されたデータまたは無意味なランダムデータを生成する仕組みが取り入れられている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2007−27937号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
ディスクドライブなどのデータ記憶装置では、記憶媒体から読み出したデータをバッファメモリに一時的に退避させて、このデータを記憶媒体に書き戻すライト動作モードがある。具体的には、トラックに対して記録データを、再度書き込むリフレッシュ動作である。一般的に、ディスク上であるトラックに記録磁界を印加してデータをライトする場合に、当該トラックの隣接トラックに対して記録磁界の洩れ磁束が影響する。そこで、リフレッシュ動作で隣接トラックに記録データを書き戻すことにより、当該影響を抑制することができる。
【0008】
ここで、ディスク上には、新旧の暗号鍵により暗号化されたデータが混在して記憶されている。ディスクドライブは、ディスクから読み出したデータを復号化せずに、バッファメモリに一時的に退避させる。この後、ディスクドライブは、バッファメモリから読み出したデータから鍵世代情報を解析し、新暗号鍵により暗号化された新データと旧暗号鍵により暗号化された旧データとを分離してディスク上に書き戻す。
【0009】
このため、鍵世代情報を解析する処理時間や、新データと旧データとを分離して書き込むライト動作の処理時間を要することになり、処理効率の向上が望まれる。
【0010】
そこで、本発明の目的は、暗号化・復号化機能を有するデータ記憶装置での書き戻し処理の高速化を図ることで処理効率の向上を実現することにある。
【課題を解決するための手段】
【0011】
実施形態によれば、データ記憶装置は、リード手段と、データ転送手段と、テーブル生成手段とを具備する。リード手段は、記憶媒体から暗号化された所定単位のデータを読み出す。データ転送手段は、前記リード手段により読み出されたデータをバッファ領域に転送する。テーブル生成手段は、前記データ転送手段の転送処理と並行して、前記所定単位のデータから暗号鍵として現在使用中の新暗号鍵と旧世代で使用していた旧暗号鍵とを識別する新旧識別情報を取得し、かつ前記所定単位のデータ毎に前記新旧識別情報を対応付けしたテーブル情報を生成する。
【図面の簡単な説明】
【0012】
【図1】実施形態に関するディスクドライブの構成を説明するためのブロック図。
【図2】実施形態に関する暗号/復号モジュールのリード処理を説明するためのブロック図。
【図3】実施形態に関するリードデータを説明するための模式図。
【図4】実施形態に関する鍵世代情報を説明するための模式図。
【図5】実施形態に関する鍵世代情報の転送処理を説明するための模式図。
【図6】実施形態に関するデータの転送処理を説明するための模式図。
【図7】実施形態に関するリード動作を説明するためのフローチャート。
【図8】実施形態に関する暗号/復号モジュールのライト処理を説明するためのブロック図。
【図9】実施形態に関する鍵世代情報生成器の具体例を示すブロック図。
【図10】実施形態に関する鍵世代情報を説明するための模式図。
【図11】実施形態に関するライトデータを説明するための模式図。
【図12】実施形態に関するライト動作を説明するためのフローチャート。
【発明を実施するための形態】
【0013】
以下図面を参照して、実施形態を説明する。
【0014】
[データ記憶装置の構成]
図1に示すように、本実施形態のデータ記憶装置はディスクドライブ1であり、ホスト(コンピュータ又はインターフェースデバイスなど)2から転送されるデータをディスク10上に書き込み、ディスク10上から読み出したデータをホスト2に転送する。なお、本実施形態のデータ記憶装置はディスクドライブ1だけでなく、フラッシュメモリを記憶媒体とするSSD(solid-state drive)にも適用可能である。
【0015】
ディスクドライブ1は、ヘッド11と、リード・ライトモジュール12と、ハードディスクコントローラ(以下、HDCと表記する)13と、マイクロプロセッサユニット(MPU)18と、メモリ19とを有する。ヘッド11は、図示しないアクチュエータに搭載されて、ディスク10上の半径方向に移動し、指定のトラックに対してデータを書き込みと読み出しを実行する。
【0016】
リード・ライトモジュール12は、リード/ライトチャネルとも呼ばれており、ヘッド11に対するリード/ライト信号を処理し、ディスク10上から読み出されたリード信号からデータを再生し、かつディスク10上に書き込むデータをライト信号に変換する。
【0017】
HDC13は、リード/ライト(R/W)コントローラ14と、サーボコントローラ15と、誤り検出訂正(ECC:error checking and correcting)モジュール16と、暗号/復号モジュール17とを含む。HDC13はMPU18と連携して、ホスト2との間のインターフェース制御を実行する。また、HDC13は、メモリ19のバッファ領域を使用し、ホスト2との間のデータ転送を制御する。
【0018】
R/Wコントローラ14は、メモリ19のバッファ領域を使用して、リード・ライトモジュール12との間のデータ転送を制御する。サーボコントローラ15は、ディスク10上に記録されているサーボデータを使用して、ヘッド11の位置決め制御を実行する。
【0019】
ECCモジュール16は、ディスク10上から読み出されたデータに付加されているECC(error correcting code)データを使用して、誤り訂正処理(ECC処理)を実行する。また、後述するように、ECCモジュール16は、新旧の暗号鍵を識別する鍵世代情報(キー世代情報または新旧識別情報と表記する場合がある)を符号化してECCデータに含ませる処理、及びキー世代情報をECCデータから復元する処理を実行する。
【0020】
暗号/復号モジュール17は、内部メモリに格納されている新暗号鍵を使用して、データの暗号化又は復号化を実行するハードウェアのロジックから構成されている。新暗号鍵とは、現在使用中の最新の暗号鍵を意味する。暗号/復号モジュール17は、後述するように、データの書き戻し処理を行なうためのリード動作及びライト動作を実行する場合に、暗号化又は復号化を実行しないで転送するバイパスモードを実行する。なお、新暗号鍵に対する旧世代で使用していた暗号鍵を旧暗号鍵と呼び、複数の旧世代で使用していた暗号鍵を含む。
【0021】
[書き戻し処理]
以下、本実施形態のディスクドライブ1において、例えばリフレッシュ動作の場合に、HDC13が実行するデータの書き戻し処理をリード動作とライト動作に分けて説明する。
【0022】
まず、図2のブロック図、図3から図6の模式図、および図7のフローチャートを参照して、書き戻し処理でのリード動作を説明する。リード動作は、書き戻し対象のデータをメモリ19に一時的に退避させる処理を実行する動作である。
【0023】
図2は、リード動作に関係する暗号/復号モジュール17の構成を概念的に示す図である。前述したように、暗号/復号モジュール17はハードウェアのロジックから構成されており、暗号化データを復号化する復号器20を含む。
【0024】
図1に示すように、HDC13は、ディスク10上のリフレッシュ対象のトラックからデータを読み出すリード動作を実行する。リード動作では、サーボコントローラ15の制御により、ヘッド11がディスク10上の指定トラック(リフレッシュ対象)まで移動される。リード・ライトモジュール12は、ヘッド11から出力されるリード信号からデータを再生して、HDC13に伝送する。
【0025】
ここで、ディスクドライブ1では、図3に示すように、所定のアクセス単位としてセクタ単位のデータ30が取り扱われる。1つのトラックには、多数のデータ30が連続的に記録されている。データ30のフォーマットは、ホスト2から転送されるユーザデータを意味するセクタデータ31と、CRC(cyclic redundancy check)コード32と、ECCデータ33とからなる。
【0026】
図7のフローチャートに示すように、HDC13では、ECCモジュール16は、セクタ単位のデータ30に対して、ECCデータ33を使用して、ECC処理を実行する(ブロック100)。ECCモジュール16は、ECCデータ33に符号化されて含まれているキー世代情報を復元する(ブロック101)。ECCモジュール16は、復元したキー世代情報と共に、ECC処理後のセクタデータ31及びCRCコード32を出力する。
【0027】
暗号/復号モジュール17は、ECCモジュール16からのキー世代情報を内部のレジスタ23に保持する。また、暗号/復号モジュール17は、ECC処理後のセクタデータ31及びCRCコード32を、復号器20へのルート21をパスして、バイパス22経由で出力する(ブロック106)。なお、図示していないCRCモジュールにより、ECC処理後のセクタデータ31及びCRCコード32はエラーチェック処理が実行される。
【0028】
なお、暗号/復号モジュール17は、バイパス22経由ではなく、復号器20により復号化したセクタデータ31及びCRCコード32をメモリ19に転送してもよい(ブロック105)。この場合、復号化されるセクタデータ31は、新暗号鍵により暗号化されたデータである。旧世代で使用していた旧暗号鍵により暗号化されたセクタデータ31は、初期化されたデータまたは無意味なランダムデータに変換される。
【0029】
HDC13は、図6に示すように、暗号/復号モジュール17から出力されるセクタデータ31及びCRCコード32をメモリ19に確保したデータバッファ領域190に格納する(ブロック107)。即ち、データバッファ領域190には、リフレッシュ対象のトラックに含まれるセクタ単位のセクタデータ31及びCRCコード32が格納される。
【0030】
一方、暗号/復号モジュール17は、ECCモジュール16により復元されたキー世代情報(新旧識別情報)を内部のレジスタ23に保持し、このキー世代情報の新旧世代を判定する(ブロック102)。図4は、便宜的に、ECC処理後の8セクタ(ブロック)分のデータBL-0〜BL-7において、復元されたキー世代情報40との対応関係を示す。キー世代情報40は、各セクタデータ31が現在使用中の最新の新暗号鍵により暗号化されたことを示す情報K(A)である。あるいは、キー世代情報40は、各セクタデータ31が旧世代で使用していた旧暗号鍵により暗号化されたことを示す情報K(B),K(C)である。K(B),K(C)はそれぞれ、世代が異なる旧世代で使用していたことを意味する。
【0031】
暗号/復号モジュール17は、図5に示すように、例えば32ビットのフリップフロップ50を有し、新旧世代の判定結果を示すフラグ(0または1)であるキー世代情報フラグを一時的に保持する。ここで、キー世代情報40が最新の新暗号鍵を示す情報K(A)の場合には、判定結果としてフラグ0を設定する。また、キー世代情報40が旧世代で使用していた旧暗号鍵を示す情報K(B),K(C)の場合には、一括してフラグ1を設定する。
【0032】
さらに、図5に示すように、暗号/復号モジュール17は、32ビット単位でキー世代情報フラグをFIFO(first-in first-out)レジスタ51にセットする(ブロック103)。HDC13は、図5に示すように、FIFO(first-in first-out)レジスタ51にセットされたキー世代情報フラグをメモリ19のデータバッファ領域190以外のバッファ領域191に格納する。
【0033】
図7のフローチャートに戻って、HDC13は、バッファ領域191にキー世代情報フラグを順次格納することにより、キー世代情報フラグから構成されるキー世代情報テーブル500を生成する(ブロック104)。即ち、キー世代情報テーブル500は、図4に示すように、データバッファ領域190に格納された各セクタデータ31に対応付けられるキー世代情報フラグ(0又は1)からなるテーブル情報である。
【0034】
次に、図8及び図9のブロック図、図10及び図11の模式図、および図12のフローチャートを参照して、書き戻し処理でのライト動作を説明する。ライト動作は、リフレッシュ対象のトラックから読み出したデータを、ディスク10上の当該トラックに書き戻す処理を実行する動作である。
【0035】
図8は、ライト動作に関係する暗号/復号モジュール17の構成を概念的に示す図である。前述したように、暗号/復号モジュール17はハードウェアのロジックから構成されており、データを暗号化する暗号器80を含む。
【0036】
図12のフローチャートに示すように、HDC13は、メモリ19のバッファ領域190から一時的に退避させたセクタ単位のデータ30を読み出して、暗号/復号モジュール17に転送する(ブロック200)。暗号/復号モジュール17は、バッファ領域190からのデータ30(セクタデータ31とCRCコード32)を、暗号器80へのルート81をパスして、バイパス82経由で転送する。なお、暗号/復号モジュール17は、前述のリード動作において復号器20により復号化された場合には、バイパス82経由ではなく、暗号器80によりデータ30(セクタデータ31とCRCコード32)を暗号化してもよい(ブロック203)。
【0037】
一方、図12のフローチャートに示すように、HDC13は、バッファ領域191に格納されたキー世代情報テーブル500から、バッファ領域190から読み出したデータ30に対応するキー世代情報フラグを読み出す(ブロック200)。暗号/復号モジュール17はキー世代情報生成部83を有し、このキー世代情報生成部83にキー世代情報フラグ50を入力する(ブロック201)。キー世代情報生成部83は、図9に示すように、例えばマルチプレクサから構成されている。キー世代情報生成部83は、転送されるデータ30に同期して、新旧のキー世代情報を生成する(ブロック202)。
【0038】
具体的には、図9に示すように、マルチプレクサは、選択信号KGSに基づいて、レジスタAに保持されている最新の新暗号鍵を示す新のキー世代情報K(A)またはレジスタXに保持されている旧世代で使用していた旧暗号鍵を示す旧のキー世代情報K(X)の一方を選択してキー世代情報40として出力する。選択信号KGSは、キー世代情報フラグのフラグ0,1に対応する。
【0039】
即ち、キー世代情報生成部83は、図10に示すように、転送されるデータ30に同期して、フラグ0に対応するデータ30の場合には、新のキー世代情報K(A)をキー世代情報40として出力する。また、キー世代情報生成部83は、フラグ1に対応するデータ30の場合には、旧のキー世代情報K(X)をキー世代情報40として出力する。この旧のキー世代情報K(X)は、異なる旧世代で使用していたキー世代情報K(B),K(C)を一括して意味する情報である。
【0040】
図12のフローチャートに戻って、暗号/復号モジュール17は、バイパス82経由で転送されるデータ30に対して、キー世代情報生成部83からのパス84で転送されるキー世代情報40を付加し、出力パス85でECCモジュール16に送る(ブロック204)。ECCモジュール16は、図11に示すように、セクタデータ31からECC処理によりECCデータ33を算出して付加する(ブロック205)。この場合、ECCモジュール16は、キー世代情報40を符号化してECCデータ33に含ませる。
【0041】
図12のフローチャートに戻って、HDC13は、ECCモジュール16によりECC処理後のデータ30を、リード・ライトモジュール12に転送して、リフレッシュ対象のトラックに書き戻すライト処理を実行する(ブロック206)。この場合、図1に示すように、サーボコントローラ15の制御により、ヘッド11は、ディスク10上の指定トラック(リフレッシュ対象トラック)まで移動される。リード・ライトモジュール12は、HDC13から転送されるデータ30に応じたライト信号をヘッド11に供給する。なお、リフレッシュ対象トラックは、前と同じトラックまたは異なるトラックのいずれの場合でもよい。
【0042】
以上のように本実施形態によれば、例えばリフレッシュ動作に必要なデータの書き戻し処理を実行する場合に、リード動作ではディスク10から読み出したデータをバッファ領域190に退避させる処理と並行して、キー世代情報40を収集してキー世代情報テーブル500を作成して別のバッファ領域191に格納することができる。従って、ディスクドライブ1では、ディスク10の1回転で、データの退避処理と、キー世代情報40を収集する処理とを並列的に行なうことができる。
【0043】
さらに、ライト動作では、バッファ領域190からデータを取り出す処理と並行して、キー世代情報40を生成する処理を行なうことができる。このため、ディスク10の1回転で、書き戻し対象のデータにキー世代情報40を含ませて、ライト動作を行なうことができる。
【0044】
従って、例えばリフレッシュ動作に必要なデータの書き戻し処理を実行する場合に、当該書き戻し処理の高速化を図ることができる。これにより、暗号・復号機能を有するデータ記憶装置でのリフレッシュ動作の効率を向上することができる。特に、キー世代情報40をECC処理によりECCデータに含ませて、キー世代情報40を記憶媒体上に直接的に記録しない方法を採用するデータ記憶装置ではきわめて有効である。
【0045】
なお、本実施形態では、暗号/復号モジュール17がハードウェア・ロジックにより構成されている場合を想定したが、データの退避処理とキー世代情報40を収集する処理とを並列的に行なうことが可能であれば、ソフトウェアモジュールにより構成されている場合でも適用できる。また、本実施形態は、デイスクドライブだけでなく、データのウェアレベリング制御やリフレッシュ処理が必要なSSDなどのデータ記憶装置にも適用可能である。
【0046】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0047】
1…ディスクドライブ、2…ホストコンピュータ、
10…ディスク、11…ヘッド、12…リード・ライトモジュール、
13…ハードディスクコントローラ(HDC)、
14…リード/ライト(R/W)コントローラ、15…サーボコントローラ
16…誤り検出訂正(ECC)モジュール、17…暗号/復号モジュール、
18…MPU。19…メモリ、20…復号器、50…フリップフロップ、80…暗号器、
190,191…バッファ領域。

【特許請求の範囲】
【請求項1】
記憶媒体から暗号化された所定単位のデータを読み出すリード手段と、
前記リード手段により読み出されたデータをバッファ領域に転送するデータ転送手段と、
前記データ転送手段の転送処理と並行して、前記所定単位のデータから暗号鍵として現在使用中の新暗号鍵と旧世代で使用していた旧暗号鍵とを識別する新旧識別情報を取得し、かつ前記所定単位のデータ毎に前記新旧識別情報を対応付けしたテーブル情報を生成するテーブル生成手段と
を具備するデータ記憶装置。
【請求項2】
前記テーブル生成手段は、
前記新旧識別情報として、前記新暗号鍵を示す第1の情報および旧世代で使用していた全ての旧暗号鍵を一括して示す第2の情報のそれぞれを前記テーブル情報に設定する請求項1に記載のデータ記憶装置。
【請求項3】
前記テーブル生成手段により生成された前記テーブル情報を、前記バッファ領域とは異なるバッファ領域に転送する転送手段を有する請求項1または請求項2のいずれか1項に記載のデータ記憶装置。
【請求項4】
前記リード手段により読み出されたデータを前記新暗号鍵により復号化する復号化手段を有する請求項1から請求項3のいずれか1項に記載のデータ記憶装置。
【請求項5】
前記バッファ領域に格納された所定単位のデータを前記記憶媒体に書き戻すライト動作を実行する際に、前記テーブル情報から当該データに対応する新旧識別情報を取得する手段と、
前記データに前記新旧識別情報を含ませて前記記憶媒体に書き戻すライト手段と
を有する請求項1から請求項4のいずれか1項に記載のデータ記憶装置。
【請求項6】
前記ライト手段は、
前記新旧識別情報を含むデータを、前記記憶媒体から読み出された場所と同一の場所に書き戻す請求項5に記載のデータ記憶装置。
【請求項7】
前記ライト手段は、
前記新旧識別情報を含むデータを、前記記憶媒体から読み出された場所とは異なる場所に書き戻す請求項5に記載のデータ記憶装置。
【請求項8】
前記ライト動作を実行する場合に、前記バッファ領域から読み出された前記所定単位のデータを暗号化する暗号化手段を有する請求項5から請求項7のいずれか1項に記載のデータ記憶装置。
【請求項9】
入力されたデータをバッファ領域に転送するデータ転送手段と、
前記データ転送手段の転送処理と並行して、所定単位のデータから暗号鍵として現在使用中の新暗号鍵と旧世代で使用していた旧暗号鍵とを識別する新旧識別情報を取得し、かつ前記所定単位のデータ毎に前記新旧識別情報を対応付けしたテーブル情報を生成するテーブル生成手段と
を具備する記憶制御装置。
【請求項10】
記憶媒体に対して暗号化された所定単位のデータを読み出し又は書き込むデータ記憶装置に適用する記憶制御方法であって、
前記記憶媒体から読み出されたデータをバッファ領域に転送し、
前記データ転送手段の転送処理と並行して、前記所定単位のデータから暗号鍵として現在使用中の新暗号鍵と旧世代で使用していた旧暗号鍵とを識別する新旧識別情報を取得し、
前記所定単位のデータ毎に前記新旧識別情報を対応付けしたテーブル情報を生成する記憶制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2012−243381(P2012−243381A)
【公開日】平成24年12月10日(2012.12.10)
【国際特許分類】
【出願番号】特願2011−116191(P2011−116191)
【出願日】平成23年5月24日(2011.5.24)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】