(57)【要約】      （修正有）【課題】再暗号化処理の効率化を実現することにより、セキュリティの向上と共に、動作効率の低下を回避できるデータ記憶装置を提供する。【解決手段】暗号化モジュールは、データの暗号化又は復号化を行なう。ライトモジュールは、ホストから受信したデータの暗号化データを記憶媒体に書き込む。コントローラは、通常暗号化処理を行う場合にホストから受信したデータを前記暗号化手段により暗号化して当該暗号化データをバッファメモリを経由してライト手段に転送し、再暗号化処理を行う場合に前記記憶媒体に記録されているデータを再暗号化する。さらに、コントローラは前記再暗号化処理を行う場合に、前記記憶媒体からの暗号化データを前記暗号化手段により復号化し、前記復号化データを前記バッファメモリに格納し、前記バッファメモリからの前記復号化データを前記暗号化手段により再暗号化して前記ライト手段に転送する。【選択図】図１
2012114773.tif 000002
【特許請求の範囲】
【請求項１】
データの暗号化又は復号化を行なう暗号化手段と、
ホストから受信したデータの暗号化データを記憶媒体に書き込むライト手段と、
通常暗号化処理を行う場合に前記ホストから受信したデータを前記暗号化手段により暗号化して当該暗号化データをバッファメモリを経由してライト手段に転送し、再暗号化処理を行う場合に前記記憶媒体に記録されているデータを再暗号化する制御手段とを具備し、
前記制御手段は前記再暗号化処理を行う場合に、
前記記憶媒体からの暗号化データを前記暗号化手段により復号化し、
前記復号化データを前記バッファメモリに格納し、
前記バッファメモリからの前記復号化データを前記暗号化手段により再暗号化して前記ライト手段に転送するように制御するデータ記憶装置。
【請求項２】
前記ホストからリードコマンドを受信したときに、リード要求データに対応する復号化データを前記ホストに送信するリード手段を有し、
前記制御手段は、
前記再暗号化処理中に前記リードコマンドを受信したとき、前記リード要求データに対応する復号化データが前記バッファメモリに格納されている場合には、前記リード手段を制御して前記復号化データを前記ホストに送信し、
前記復号化データが前記バッファメモリに格納されていない場合には前記再暗号化処理を中断するように制御する請求項１に記載のデータ記憶装置。
【請求項３】
前記リード手段は、
前記再暗号化動作の中断後に、前記記憶媒体からリード要求データに対応する暗号化データを読み出し、
前記暗号化データを復号化した復号化データを前記バッファメモリに格納し、
前記バッファメモリから前記復号化データを前記ホストに送信するように構成されている請求項２に記載のデータ記憶装置。
【請求項４】
前記制御手段は、
前記再暗号化処理中に前記ホストからライトコマンドを受信したときに、ライト対象データを前記ライト手段により前記バッファメモリに格納するように制御する請求項１または請求項２のいずれか１項に記載のデータ記憶装置。
【請求項５】
前記制御手段は、
前記再暗号化処理中に、前記バッファメモリに格納される前記ライト対象データを前記暗号化手段により前記再暗号化処理で使用される新暗号鍵で暗号化し、前記ライト手段により前記記憶媒体に書き込むように制御する請求項４に記載のデータ記憶装置。
【請求項６】
前記制御手段は前記再暗号化処理を行う場合に、
前記再暗号化処理の前に設定した暗号鍵を使用する前記暗号化手段により、前記記憶媒体からの暗号化データを復号化し、
前記復号化データを前記バッファメモリに格納し、
前記再暗号化処理を行う場合に設定した新暗号鍵を使用する前記暗号化手段により前記バッファメモリからの前記復号化データを再暗号化し、前記ライト手段を制御して前記記憶媒体に書き込む請求項１、請求項２、請求項４のいずれか１項に記載のデータ記憶装置。
【請求項７】
データ記憶装置に適用し、ホストと記憶媒体との間でデータの転送を制御するコントロール装置であって、
データの暗号化又は復号化を行なう暗号化手段と、
通常暗号化処理を行う場合に前記ホストから受信したデータを前記暗号化手段により暗号化して当該暗号化データをバッファメモリを経由してライト手段に転送し、再暗号化処理を行う場合に前記記憶媒体に記録されているデータを再暗号化する制御手段とを具備し、
前記制御手段は前記再暗号化処理を行う場合に、
前記記憶媒体からの暗号化データを前記暗号化手段により復号化し、
前記復号化データを前記バッファメモリに格納し、
前記バッファメモリからの前記復号化データを前記暗号化手段により再暗号化して前記ライト手段に転送するように制御するコントロール装置。
【請求項８】
前記暗号化手段が使用する暗号鍵を保持するレジスタを有し、
前記制御手段は前記再暗号化処理を行う場合に、
再暗号化処理の前に前記レジスタに設定した暗号鍵を使用する前記暗号化手段により、前記記憶媒体からの暗号化データを復号化し、
前記復号化データを前記バッファメモリに格納し後に、前記レジスタに前記再暗号化処理で使用する新暗号鍵を設定し、
前記新暗号鍵を使用する前記暗号化手段により、前記バッファメモリからの前記復号化データを再暗号化して前記ライト手段に転送するように構成されている請求項７に記載のコントロール装置。
【請求項９】
前記制御手段は、
前記再暗号化処理中にリードコマンドを受信したとき、前記リード要求データに対応する復号化データが前記バッファメモリに格納されている場合には、リード手段により当該復号化データを前記ホストに送信するように制御し、
前記復号化データが前記バッファメモリに格納されていない場合には前記再暗号化処理を中断するように制御する請求項７に記載のコントロール装置。
【請求項１０】
前記制御手段は、
前記再暗号化処理中に前記ホストからライトコマンドを受信したときに、ライト対象データを前記バッファメモリに格納する請求項７に記載のコントロール装置。
【請求項１１】
ライト動作を行う場合にホストから受信したデータを暗号化した暗号化データを記憶媒体に書き込むデータ記憶装置に適用する暗号化方法であって、
通常暗号化処理を行う場合に、前記ホストから受信したデータを暗号化して当該暗号化データをバッファメモリを経由してライト手段に転送し、
再暗号化処理を行う場合に、前記記憶媒体からの暗号化データを前記暗号化手段により復号化し、
前記復号化データを前記バッファメモリに格納し、
前記バッファメモリからの前記復号化データを再暗号化して前記ライト手段に転送する暗号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、暗号化機能を有するデータ記憶装置に関する。
【背景技術】
【０００２】
従来、例えばハードディスクドライブ（ＨＤＤ）やＳＳＤ（solid state drive）などのデータ記憶装置には、記憶媒体上に記録するデータ（ユーザデータ）を暗号化する暗号化機能を有するものが提案されている。記憶媒体は、ＨＤＤのディスクやＳＳＤのフラッシュメモリなどである。
【０００３】
このようなデータ記憶装置であれば、記憶媒体上には暗号化データが記録されるため、装置自体を廃棄する場合や、記憶媒体を取り外すような場合でも、記録データを保護するためのセキュリティを確保できる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−５４２５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
暗号化機能を有するデータ記憶装置では、記録データを保護できるセキュリティの向上を図るためには、暗号化するための暗号鍵を定期的に更新することが望ましい。しかし、データ記憶装置において、暗号鍵を更新することは、記憶媒体上に記録されている全データを更新前の暗号鍵で復号化し、全ての復号化データを更新後の新しい暗号鍵で暗号化する再暗号化処理が必要となる。
【０００６】
この再暗号化処理は、記憶媒体上に記録されているデータ量が大きい場合、例えば数時間のような多大な処理時間を要する。また、再暗号化処理中でも、データ記憶装置はホストからのデータアクセス（リード／ライトアクセス）を受け付けることが必要となる。従って、暗号鍵を定期的に更新するために、単に再暗号化処理を実行すると、データ記憶装置の動作効率が低下する可能性がある。
【０００７】
そこで、本発明の目的は、再暗号化処理の効率化を実現することにより、セキュリティの向上と共に、動作効率の低下を回避できるデータ記憶装置を提供することにある。
【課題を解決するための手段】
【０００８】
実施形態によれば、データ記憶装置は、暗号化手段と、ライト手段と、制御手段とを具備する。暗号化手段はデータの暗号化又は復号化を行なう。ライト手段は、ホストから受信したデータの暗号化データを記憶媒体に書き込む。制御手段は、通常暗号化処理を行う場合に前記ホストから受信したデータを前記暗号化手段により暗号化して当該暗号化データをバッファメモリを経由してライト手段に転送し、再暗号化処理を行う場合に前記記憶媒体に記録されているデータを再暗号化する。さらに、制御手段は前記再暗号化処理を行う場合に、前記記憶媒体からの暗号化データを前記暗号化手段により復号化し、前記復号化データを前記バッファメモリに格納し、前記バッファメモリからの前記復号化データを前記暗号化手段により再暗号化して前記ライト手段に転送するように制御する。
【図面の簡単な説明】
【０００９】
【図１】実施形態に関するデータ記憶装置の要部を示すブロック図。
【図２】実施形態に関する暗号モジュールの入出力構成を説明するためのブロック図。
【図３】実施形態に関するデータ記憶装置の通常動作を説明するためのフローチャート。
【図４】実施形態に関する再暗号化処理の手順を説明するためのフローチャート。
【図５】実施形態に関する再暗号化処理時のデータアクセスの手順を説明するためのフローチャート。
【発明を実施するための形態】
【００１０】
以下図面を参照して、実施形態を説明する。
【００１１】
［データ記憶装置の構成］
図１は、本実施形態のデータ記憶装置１０の要部を示すブロック図である。
【００１２】
本実施形態は、データ記憶装置１０としてハードディスクドライブ（ＨＤＤ）を想定する。なお、本実施形態は、データ記憶装置１０としてＳＳＤ（solid state drive）にも適用できる。
【００１３】
図１に示すように、データ記憶装置１０は、記憶媒体１１と、リード／ライト（Ｒ／Ｗ）チャネル１２と、バッファメモリ１３と、マイクロプロセッサ（ＭＰＵ）１４と、コントローラ１５とを有する。
【００１４】
記憶媒体１１は、ＨＤＤではディスクである。また、記憶媒体１１は、ＳＳＤではフラッシュメモリである。なお、本実施形態では、ＨＤＤに組み込まれている機構において、記憶媒体１１に対してデータを書き込み、読み出すためのヘッドなどを含むリード／ライト機構については省略している。
【００１５】
Ｒ／Ｗチャネル１２は、記憶媒体１１に対してデータを記録又は再生するための信号処理を実行する。即ち、Ｒ／Ｗチャネル１２は、コントローラ１５から伝送されるデータ（暗号化データ）を記憶媒体１１に書き込むためのライト信号を生成する。また、Ｒ／Ｗチャネル１２は、記憶媒体１１から読み出されたリード信号からデータを再生する。なお、データ記憶装置１０がＳＳＤの場合には、Ｒ／Ｗチャネル１２はフラッシュメモリを制御するメモリコントローラに相当する。
【００１６】
ＭＰＵ１４は、ファームウェア（ＦＷ）により、コントローラ１５と連携してデータ記憶装置１０の制御を実行する。本実施形態では、ＭＰＵ１４は、通常動作モードと再暗号化モードの設定処理や、暗号化モードと復号化モードの設定処理、及び暗号鍵の設定処理などを実行する。
【００１７】
コントローラ１５はバッファメモリ１３を制御し、ホストシステム（以下、単にホストと表記する）２０と記憶媒体１１との間のデータの転送を制御する。ここで、ホスト２０は、例えばパーソナルコンピュータや各種のデジタル機器のＣＰＵ等である。コントローラ１５は、ホストインターフェース（ホストＩ／Ｆ）１６と、暗号モジュール１７と、レジスタ１８を有する。
【００１８】
ホストＩ／Ｆ１６は、ホスト２０との間でデータの送受信を行なうためのインターフェースである。暗号モジュール１７は、レジスタ１８に設定された暗号鍵（暗号化／復号化のキーデータ）を使用し、ホスト２０から送信されたデータ（ライトデータ）を暗号化する。また、暗号モジュール１７は、当該暗号鍵を使用し、記録媒体１１から読み出されて、Ｒ／Ｗチャネル１２により再生されたデータ（暗号化データ）を復号化する。
【００１９】
図２は、本実施形態の暗号モジュール１７の入出力構成を説明するための図である。図２に示すように、暗号モジュール１７は、ＦＩＦＯ（first-in first-out）方式の第１から第４の入出力部１７１〜１７４を有する。
【００２０】
第１の入出力部１７１は、通常動作モード時に、ホストＩ／Ｆ１６間のデータ（便宜的にホストデータと表記する場合がある）の入出力を行なう。ホストデータとは、ホスト２０との送受信データであり、ホスト２０から受信したライトデータ又はホスト２０に送信する復号化データに相当する。第２の入出力部１７２は、通常動作モード時に、バッファメモリ１３間のデータ（便宜的にバッファデータと表記する場合がある）の入出力を行なう。第３の入出力部１７３は、再暗号化モード時に、Ｒ／Ｗチャネル１２間のデータ（便宜的にメディアデータと表記する場合がある）の入出力を行なう。第４の入出力部１７４は、再暗号化モード時に、バッファメモリ１３間のデータ（バッファデータ）の入出力を行なう。
【００２１】
［再暗号化処理］
次に、図３から図５の各フローチャートを参照して、データ記憶装置１０の通常動作と再暗号化処理について説明する。
【００２２】
まず、図３のフローチャートを参照して、データ記憶装置１０の通常動作について説明する。通常動作とは、通常のリード／ライト動作または通常コマンド処理に相当する動作モードである。
【００２３】
ホストＩ／Ｆ１６は、ホスト２０からライトコマンドを受信すると、ライトコマンドに伴うデータ（ライトデータ）を暗号モジュール１７に転送する（ブロック１００のＹＥＳ）。ここで、レジスタ１８には、ＭＰＵ１４により暗号鍵（便宜的にカレント暗号鍵と呼ぶ）が設定されている。
【００２４】
暗号モジュール１７は、第１の入出力部１７１を介してホストＩ／Ｆ１６から転送されたデータ（ホストデータ）を入力し、レジスタ１８に設定されている暗号鍵を使用して暗号化する（ブロック１０１）。暗号モジュール１７は、ホストデータを論理ブロックアドレス単位で暗号化する。暗号モジュール１７は、第２の入出力部１７２を介して、暗号化データをバッファメモリ１３に格納する（ブロック１０２）。
【００２５】
本実施形態では、ホスト２０との送受信データ（ホストデータ）は、記憶媒体１１上に記録される暗号化データに対して平文データに相当する。しかし、ホスト２０から送信されるデータには暗号化されたデータの場合もあるので、本実施形態では便宜的に平文データとは表現せずに、復号化データまたは単にデータと表記する。
【００２６】
コントローラ１５は、バッファメモリ１３に格納された暗号化データをＲ／Ｗチャネル１２に転送する。Ｒ／Ｗチャネル１２は暗号化データをライト信号に変換して、図示しないリード／ライト機構に出力する。これにより、暗号化データは、記憶媒体１１上に書き込み（ライト）される（ブロック１０３）。
【００２７】
一方、ホストＩ／Ｆ１６は、ホスト２０からライトコマンドではなくリードコマンドを受信すると（ブロック１００のＮＯ）、コントローラ１５は、バッファメモリ１３にリード要求データ（暗号化データ）が格納されているか否かを判定する（ブロック１０４）。リード要求データが格納されている場合には、暗号モジュール１７は、バッファメモリ１３に格納されているリード要求データを、レジスタ１８に設定されている暗号鍵を使用して復号化する（ブロック１０４のＹＥＳ，１０５）。ホストＩ／Ｆ１６は、暗号モジュール１７により復号化された復号化データをホスト２０に送信する（ブロック１０６）。
【００２８】
リード要求データが格納されていない場合には、コントローラ１５は、Ｒ／Ｗチャネル１２及び図示しないリード／ライト機構を介して、記憶媒体１１からリード要求データ（暗号化データ）を読み出すリード動作を実行させる（ブロック１０４のＮＯ，１０７）。コントローラ１５は、記憶媒体１１から読み出された暗号化データをバッファメモリ１３に格納する（ブロック１０８）。暗号モジュール１７は、バッファメモリ１３に格納されている暗号化データをレジスタ１８に設定されている暗号鍵を使用して復号化する（ブロック１０５）。ホストＩ／Ｆ１６は、暗号モジュール１７により復号化された復号化データ（リード要求データ）をホスト２０に送信する（ブロック１０６）。
【００２９】
以上のように通常コマンド処理では、記憶媒体１１上の物理的配置とは無関係に、ホスト２０からの転送データを論理ブロック単位で暗号化処理を実行するため、コマンド処理の高速化が可能である。
【００３０】
次に、図４及び図５のフローチャートを参照して、本実施形態の再暗号化処理を説明する。
【００３１】
本実施形態の再暗号化処理は、ＭＰＵ１４がレジスタ１８に再暗号化用モードを設定することにより開始される。ＭＰＵ１４は、例えば定期的またはホスト２０からの指示に応じて再暗号化処理を実行する。コントローラ１５は、レジスタ１８に設定された再暗号化用モードに基づいて再暗号化処理を開始するときに、バッファメモリ１３をクリア（消去）する（ブロック２００）。これにより、バッファメモリ１３において、再暗号化処理の前の暗号化データと、再暗号化処理による暗号化データ（再暗号化データ）とが混在することを回避できる。
【００３２】
ＭＰＵ１４は、レジスタ１８に再暗号化処理の復号モードを設定する（ブロック２０１）。さらに、ＭＰＵ１４は、レジスタ１８にカレント暗号鍵（現在の暗号化処理で使用される暗号鍵）を設定する（ブロック２０２）。コントローラ１５は、Ｒ／Ｗチャネル１２及び図示しないリード／ライト機構を介して、記憶媒体１１からデータ（暗号化データ）を読み出すリード動作を実行させる（ブロック２０３）。
【００３３】
暗号モジュール１７は、レジスタ１８に設定されているカレント暗号鍵を使用して、記憶媒体１１から読み出された暗号化データを復号化する（ブロック２０４）。コントローラ１５は、暗号モジュール１７により復号化された復号化データをバッファメモリ１３に格納する（ブロック２０５）。
【００３４】
次に、ＭＰＵ１４は、レジスタ１８に再暗号化処理の暗号モードを設定する（ブロック２０６）。さらに、ＭＰＵ１４は、レジスタ１８に再暗号化処理で使用する新暗号鍵（カレント暗号鍵とは異なる暗号鍵）を設定する（ブロック２０７）。コントローラ１５は、バッファメモリ１３に格納されている復号化データを暗号モジュール１７に設定する。
【００３５】
暗号モジュール１７は、レジスタ１８に設定されている新暗号鍵を使用して、バッファメモリ１３からの復号化データを暗号化（再暗号化）する（ブロック２０８）。コントローラ１５は、再暗号化された暗号化データを、Ｒ／Ｗチャネル１２及び図示しないリード／ライト機構を経由して、記憶媒体１１上に書き込み（書き戻し）する（ブロック２０９）。
【００３６】
ＭＰＵ１４は、記憶媒体１１上に記録されている全データの再暗号化処理が完了するまで、前述の処理を繰り返す（ブロック２１０）。ＭＰＵ１４は、再暗号化処理が完了すると、レジスタ１８に通常モード（通常リード／ライトモード）を設定する（ブロック２１１）。
【００３７】
ここで、再暗号化処理では、暗号モジュール１７は、第２の入出力部１７２を使用せずに、いわば再暗号化処理専用の第４の入出力部１７４を使用して、バッファメモリ１３に対するデータ（バッファデータ）の入出力を行なう。これにより、図１に示すように、再暗号化処理時に、ホストＩ／Ｆ１６、暗号モジュール１７、及びバッファメモリ１３を経由してデータを転送するパスを確保することができる。
【００３８】
以下、図５のフローチャートを参照して、再暗号化処理時に、ホスト２０から通常のリード／ライトコマンドが発行された場合のデータアクセスの手順を説明する。
【００３９】
前述の再暗号化処理時に、ホスト２０からライトコマンドが発行されると、ホストＩ／Ｆ１６はライトコマンド及びライトデータを受信する（ブロック３００のＮＯ，３０８）。コントローラ１５は、ホストＩ／Ｆ１６で受信されたライトデータをバッファメモリ１３に格納する（ブロック３０９）。即ち、コントローラ１５は、ホスト２０からのデータを暗号モジュール１７での暗号化処理を行なわずに、バッファメモリ１３に格納する。これにより、暗号モジュール１７が実行している再暗号化処理を中断することなく、ホスト２０から送信されるライトデータを受信することができる。
【００４０】
ここで、暗号モジュール１７は、レジスタ１８に設定されている新暗号鍵を使用して、バッファメモリ１３に格納されている復号化データの再暗号化処理を継続している。暗号モジュール１７は、バッファメモリ１３に格納されているホスト２０からのライトデータを、新暗号鍵を使用して暗号化する（ブロック３１０）。
【００４１】
コントローラ１５は、再暗号化処理による暗号化データと共に、ホスト２０からのライトコマンドに伴う暗号化データを、Ｒ／Ｗチャネル１２及び図示しないリード／ライト機構を経由して、記憶媒体１１上に書き込みする（ブロック３１１）。これにより、再暗号化処理中にホスト２０からライトコマンドが発行された場合、待機することなく、ライトコマンド処理を完了することが可能となる。
【００４２】
一方、ホストＩ／Ｆ１６がホスト２０からリードコマンドを受信すると、コントローラ１５は、バッファメモリ１３にリード要求データ（復号化データ）が格納されているか否かを判定する（ブロック３００のＹＥＳ、３０１）。ここで、再暗号処理中であるため、バッファメモリ１３には、記憶媒体１１から読み出された暗号化データが復号化された復号化データが格納されている。
【００４３】
コントローラ１５は、リード要求データに対応する復号化データがバッファメモリ１３に格納されている場合には、ホストＩ／Ｆ１６を介して、当該復号化データをホスト２０に送信する（ブロック３０２）。この場合、ホスト２０からリードコマンドが発行された場合、待機することなく、リードコマンド処理を完了することが可能となる。
【００４４】
ここで、リード要求データに対応する復号化データがバッファメモリ１３に格納されていない場合には、コントローラ１５は、再暗号処理を中断する（ブロック３０１のＮＯ，３０３）。これは、再暗号処理が例えば数時間のように長時間を要することが多いため、ホスト２０からのリードアクセス要求を優先するためである。なお、再暗号処理を中断するタイミングとしては、例えば、暗号モジュール１７が再暗号化対象のセクタデータを復号化し、当該復号化データがバッファメモリ１３に格納された後が望ましい。
【００４５】
再暗号処理を中断後に、コントローラ１５は、Ｒ／Ｗチャネル１２及び図示しないリード／ライト機構を介して、記憶媒体１１からリード要求データ（暗号化データ）を読み出すリード動作を実行させる（ブロック３０４）。コントローラ１５は、記憶媒体１１から読み出された暗号化データを、暗号モジュール１７により復号化させる（ブロック３０５）。このとき、暗号モジュール１７は、レジスタ１８に設定されているカレント暗号鍵または新暗号鍵を使用して復号化し、バッファメモリ１３に格納する。ホストＩ／Ｆ１６は、バッファメモリ１３に格納された復号化データ（リード要求データ）をホスト２０に送信する（ブロック３０６）。
【００４６】
このようなリードコマンド処理の完了後に、コントローラ１５は、再暗号処理を再開し、完了するまで継続する（ブロック３１２）。ここで、再暗号処理の再開後に、リード要求データとしてカレント暗号鍵を使用して復号化された復号化データがバッファメモリ１３に格納されている場合、暗号モジュール１７は、新暗号鍵を使用して当該復号化データを暗号化（再暗号化）する。コントローラ１５は、再暗号化された暗号化データを、Ｒ／Ｗチャネル１２及び図示しないリード／ライト機構を経由して、記憶媒体１１上に書き込み（書き戻し）する。一方、リード要求データとして新暗号鍵を使用して復号化された復号化データがバッファメモリ１３に格納されている場合、再暗号化してディスクに書き込む再暗号化処理は不要となる。
【００４７】
以上のように本実施形態によれば、暗号化機能を有するデータ記憶装置において、暗号鍵を定期的に更新するために、記憶媒体１１上に記録されている全データの再暗号化処理を行なうことができる。この場合、本実施形態では、通常のリード／ライト動作（通常モード）時とは異なり、再暗号化処理時には、記憶媒体１１とバッファメモリ１３との間で再暗号化処理用のデータ入出力が実行される。具体的には、図２に示すように、暗号モジュール１７は、第３の入出力部１７３及び第４の入出力部１７４を使用して、再暗号化処理時のデータの入出力を実行する。これにより、暗号モジュール１７とバッファメモリ１３間のデータ入出力によるオーバヘッドを削減し、再暗号化処理を高速かつ円滑に実現することが可能となる。
【００４８】
さらに、本実施形態の再暗号化処理時には、再暗号化処理中に、ホスト２０からのデータアクセス（リード／ライトアクセス）が発生した場合に、ライトコマンド処理の場合には、再暗号化処理を中断することなく、ライトデータを受信してバッファメモリ１３に格納することができる。このバッファメモリ１３に格納されたライトデータは、再暗号化処理により新暗号鍵で暗号化されて記憶媒体１１に記録される。また、リードコマンド処理の場合には、リード対象データ（復号化データ）がバッファメモリ１３に格納されている場合には、再暗号化処理を中断することなく、当該リード対象データをホスト２０に送信できる。即ち、暗号モジュール１７を経由せずに、リード対象の復号化データを直接的にホスト２０に送信できる。
【００４９】
従って、再暗号化処理中で暗号モジュール１７が占有状態の場合でも、ホスト２０からのデータアクセスに対して待機状態が発生することを回避できる。なお、リード対象データがバッファメモリ１３に格納されていない場合には、再暗号化処理を中断して、記憶媒体１１からリード対象データを読み出すリード動作を優先する。この場合でも、ホスト２０からのデータアクセスに対して待機状態が発生することを回避できる。
【００５０】
要するに、本実施形態であれば、再暗号化処理の高速化及び再暗号化処理時のコマンド処理の効率化を実現することにより、セキュリティの向上と共に、再暗号化処理時におけるデータ記憶装置の動作効率の低下を回避することができる。
【００５１】
なお、本実施形態では、ＭＰＵ１４（ＦＷ）からの指示により再暗号化処理を実行する方式について説明したが、ホスト２０からの指示により再暗号化処理を実行する方式でも良い。また、本実施形態では、ＭＰＵ１４が暗号鍵または新暗号鍵をレジスタ１８に設定する方式について説明したが、暗号モジュール１７が暗号鍵または新暗号鍵を生成する機能を有する構成でもよい。
【００５２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５３】
１０…データ記憶装置、１１…記憶媒体（ディスク又はフラッシュメモリ）、
１２…リード／ライト（Ｒ／Ｗ）チャネル、１３…バッファメモリ、
１４…マイクロプロセッサ（ＭＰＵ）、１５…コントローラ、
１６…ホストインターフェース（ホストＩ／Ｆ）、１７…暗号モジュール、
１８…レジスタ、２０…ホストシステム、１７１〜１７４…第１から第４の入出力部。
【図１】
2012114773.tif 000003
【図２】
2012114773.tif 000004
【図３】
2012114773.tif 000005
【図４】
2012114773.tif 000006
【図５】
2012114773.tif 000007