(57)【要約】【課題】複数の暗号鍵を使用する場合においても記憶領域の使用効率が低下することのない記憶装置を提供すること。【解決手段】記憶装置は、記憶部、認証処理実行部、暗号化処理部およびセキュリティ設定部を備える。記憶部は、暗号鍵、暗号鍵の使用可否を示すフラグおよび認証に用いるパスワードをそれぞれ関連付けて記憶するとともにユーザデータを記憶する。また、認証処理実行部は、パスワードを使用し接続されたホスト装置の認証を行う。暗号化処理部は、ホスト装置からの指示に従い、暗号鍵の使用許可を示すフラグと関連付けて記憶されている暗号鍵を使用して、ホスト装置から受け取ったユーザデータに対する暗号化処理、または記憶部が記憶しているユーザデータに対する復号処理を行う。セキュリティ設定部は、暗号化処理または復号処理を行う際に、暗号化処理または復号処理で使用された暗号鍵に関連付けて記憶されているフラグの設定を変更する。【選択図】図２
2013153327.tif 000002
【特許請求の範囲】
【請求項１】
暗号鍵、当該暗号鍵の使用可否を示すフラグおよび認証に用いるパスワードをそれぞれ関連付けて記憶するとともにユーザデータを記憶する記憶部と、
前記パスワードを使用し接続されたホスト装置の認証を行う認証処理実行部と、
前記認証が成功したホスト装置からの指示に従い、暗号鍵の使用許可を示すフラグと関連付けて記憶されている暗号鍵を使用して、前記ホスト装置から受け取ったユーザデータに対する暗号化処理、または前記記憶部が記憶しているユーザデータに対する復号処理を行う暗号化処理部と、
前記暗号化処理または前記復号処理を行う際に、前記暗号化処理または前記復号処理で使用された暗号鍵に関連付けて記憶されているフラグの設定を変更するセキュリティ設定部と、
を備える記憶装置。
【請求項２】
暗号鍵を指定する情報である鍵番号を含んだライトコマンドを受信した場合、
前記暗号化処理部は、前記鍵番号で指定された暗号鍵と関連付けられているフラグが暗号鍵の使用許可を示していれば、前記ライトコマンドにより指定されたユーザデータを前記鍵番号で指定された暗号鍵を使用して暗号化し、
前記記憶部は、前記暗号化処理部で暗号化されたユーザデータを記憶する請求項１に記載の記憶装置。
【請求項３】
暗号鍵を指定する情報である鍵番号を含んだリードコマンドを受信した場合、
前記暗号化処理部は、前記鍵番号で指定された暗号鍵と関連付けられているフラグが暗号鍵の使用許可を示していれば、前記リードコマンドにより指定されたユーザデータを前記鍵番号で指定された暗号鍵を使用して復号する請求項１または２に記載の記憶装置。
【請求項４】
前記セキュリティ設定部は、前記暗号化処理が行われる前、および前記復号処理が行われる前に、当該暗号化処理または当該復号処理で使用される暗号鍵に関連付けられているフラグが暗号鍵の使用許可を示す状態に設定を変更し、当該暗号化処理または当該復号処理が行われた後に、当該フラグが暗号鍵の使用不許可を示す状態に設定を変更する請求項１、２または３に記載の記憶装置。
【請求項５】
認証が成功したホスト装置から暗号鍵の変更を指示された場合、指定された暗号鍵に乱数を上書きすることにより暗号鍵を更新する請求項１〜４のいずれか一つに記載の記憶装置。
【請求項６】
暗号鍵、当該暗号鍵の使用可否を示すフラグおよび認証に用いるパスワードをそれぞれ関連付けて記憶するとともに、暗号鍵の使用許可を示しているフラグと関連付けて記憶している暗号鍵を使用してユーザデータを暗号化して記憶する記憶装置、を利用するホスト装置であって、
前記記憶装置にユーザデータを書き込む場合に送信するライトコマンド、および前記記憶装置からユーザデータを読み出す場合に送信するリードコマンドを発行するコマンド発行部と、
前記コマンド発行部から発行されたライトコマンドに対して、書き込み対象のユーザデータを暗号化する際に使用させる暗号鍵を指定する情報である鍵番号を付加し、前記コマンド発行部から発行されたリードコマンドに対して、読み出し対象のユーザデータを復号する際に使用させる暗号鍵を指定する鍵番号を付加する鍵番号付加部と、
を備え、
前記鍵番号付加部がライトコマンドに付加した鍵番号と書き込みを行ったユーザデータを関連付けて記憶しておくホスト装置。
【請求項７】
暗号鍵、当該暗号鍵の使用可否を示すフラグおよび認証に用いるパスワードをそれぞれ関連付けて記憶しておき、当該記憶している暗号鍵の中のいずれか一つを使用して暗号化したユーザデータを記憶する記憶装置と、当該記憶装置を利用するホスト装置とを備えた情報処理システムで実行する情報処理方法であって、
前記記憶装置が、前記パスワードに基づいてホスト装置の認証を行う認証ステップと、
前記認証ステップで認証成功とされたホスト装置が、前記フラグを暗号鍵の使用許可を示す状態に設定するように前記記憶装置に対して指示するフラグ設定ステップと、
前記ホスト装置が、暗号鍵の使用許可を示しているフラグと関連付けられている暗号鍵の情報を含んだライトコマンドを発行して前記記憶装置にユーザデータを記憶させる処理、または、暗号鍵の使用許可を示しているフラグと関連付けられている暗号鍵の情報を含んだリードコマンドを発行して前記記憶装置からユーザデータを読み出す処理を実行するデータ処理ステップと、
前記ホスト装置が、前記データ処理ステップで使用された暗号鍵と関連付けられているフラグを暗号鍵の使用不許可を示す状態に戻すよう前記記憶装置に対して指示するフラグ設定解除ステップと、
を含む情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、記憶装置、ホスト装置および情報処理方法に関する。
【背景技術】
【０００２】
ハードディスクドライブやＳＳＤ（Solid  State  Drive）などの記憶装置として、データを暗号化してから記憶することにより、記憶されている情報の漏洩を防止する機能を有する記憶装置が存在している。このような記憶装置においては、暗号鍵を使用して、データ書き込み時の暗号化およびデータ読み出し時の復号化を行う。
【０００３】
また、記憶領域を複数の領域に分割し、複数の領域それぞれに対して個別に暗号鍵を割り当てて複数の暗号鍵を使い分ける記憶装置が存在する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２２４６４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、記憶領域を複数に分割して複数の暗号鍵を使用する場合には、以下に示す問題が発生する。
【０００６】
すなわち、記憶領域を複数の領域に分割する際、分割して得られる各領域（以下、説明の便宜上「サブ領域」と呼ぶ）は、サブ領域に格納されると思われるファイル数やファイルサイズをあらかじめ予測して、ある程度余裕を持ったサイズのサブ領域を指定する必要がある。そのため、各サブ領域で使用されずに無駄になるセクタが多数残る可能性がある。１つのアプリケーションデータ（ファイル）を複数のサブ領域に跨って格納することができないためである。無駄になるセクタの数は、設定するサブ領域の数（記憶領域の分割数）が増加するほど増大し、記憶領域の使用効率が低下する。
【０００７】
また、暗号化された状態で記憶しているデータは、暗号化する際に使用した暗号鍵（すなわち、復号する際に使用する暗号鍵）を変更することによりSecureに（安全に）イレーズすることが可能である。しかしながら、サブ領域ごとに暗号鍵を割り当てているので同一サブ領域内に複数ファイルが存在する場合は、同一サブ領域内の全てのファイルを同時にイレーズすることしか出来ず、特定の１ファイルをイレーズすることができない。なお、イレーズしたいファイルに乱数などをオーバライトすることにより１ファイルを安全にイレーズすることが可能であるが、動画ファイルなどは、１ファイルで数ギガバイトを超すものもあり、オーバライトによるイレーズでは数分以上を要してしまうため、現実的には困難である。
【０００８】
また、記憶装置がＮＡＮＤ型フラッシュメモリのような寿命（書き込み回数制限）の短い記憶媒体を使用しているＳＳＤなどでは、ホストから同じ論理ブロックアドレス（ＬＢＡ：Logical  Block  Address）を指定したライト指示を受けた場合でも、媒体の寿命を稼ぐために記憶装置が次々に異なるセクタへ書き込みを行うものもある。この場合、ファイルをイレーズするためにオーバライトを実施してもイレーズされるのは最後に書かれたセクタであり、過去に使用したセクタ上にはデータの痕跡が残ってしまう。
【０００９】
本発明の一つの実施形態は、複数の暗号鍵を使用する場合においても記憶領域の使用効率が低下することのない記憶装置、ホスト装置および情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一つの実施形態によれば、記憶装置は、記憶部、認証処理実行部、暗号化処理部およびセキュリティ設定部を備える。記憶部は、暗号鍵、当該暗号鍵の使用可否を示すフラグおよび認証に用いるパスワードをそれぞれ関連付けて記憶するとともにユーザデータを記憶する。また、認証処理実行部は、前記パスワードを使用し接続されたホスト装置の認証を行う。暗号化処理部は、前記認証が成功したホスト装置からの指示に従い、暗号鍵の使用許可を示すフラグと関連付けて記憶されている暗号鍵を使用して、前記ホスト装置から受け取ったユーザデータに対する暗号化処理、または前記記憶部が記憶しているユーザデータに対する復号処理を行う。セキュリティ設定部は、前記暗号化処理または前記復号処理を行う際に、前記暗号化処理または前記復号処理で使用された暗号鍵に関連付けて記憶されているフラグの設定を変更する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施形態にかかる記憶装置を備えた情報処理システムの構成例を示す図である。
【図２】図２は、記憶装置の詳細な機能ブロック構成の一例を示す図である。
【図３】図３は、ホスト装置の詳細な機能ブロック構成の一例を示す図である。
【図４】図４は、鍵テーブルの構成例を示す図である。
【図５】図５は、鍵テーブルに登録されているパスワードの変更手順の一例を示すフローチャートである。
【図６】図６は、鍵テーブル内のフラグの設定を変更する手順の一例を示すフローチャートである。
【図７】図７は、ライトコマンドの構成例を示す図である。
【図８】図８は、ファイル書き込み手順の一例を示すフローチャートである。
【図９】図９は、ファイル読み出し手順の一例を示すフローチャートである。
【図１０】図１０は、記憶領域の使用方法の一例を示す図である。
【図１１】図１１は、鍵テーブルに登録されている暗号鍵の変更手順の一例を示すフローチャートである。
【図１２】図１２は、記憶装置のストレージメディア内でファイルを移動させる動作の一例を示す図である。
【図１３】図１３は、ファイルイレーズ動作の一例を示す図である。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して、実施形態にかかる記憶装置、ホスト装置および情報処理方法を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。
【００１３】
（第１の実施形態）
図１は、実施形態にかかる記憶装置を備えた情報処理システムの構成例を示す図である。図示したように、本実施形態の情報処理システムは、各種情報を記憶する記憶装置１と、記憶装置１に記憶させる情報を取り扱うホスト装置２とを備えている。記憶装置１は、各種情報を記憶する記憶部であるストレージメディア１１と、ストレージメディア１１に対して各種情報（データ）を書き込む処理、およびストレージメディア１１から各種情報を読み出す処理を行うメディアコントローラ１２と、物理インタフェースであるＩ／Ｆ部１３とを備えている。ホスト装置２は、記憶装置１に対してデータ書き込み指示やデータ読み出し指示などを行うとともに、記憶させるデータの出力などを行うデータ処理部２１と、物理インタフェースであるＩ／Ｆ部２２とを備えている。記憶装置１のＩ／Ｆ部１３とホスト装置２のＩ／Ｆ部２２はＳＡＳ（Serial  Attached  SCSI(Small  Computer  System  Interface)）やＳＡＴＡ（Serial  Advanced  Technology  Attachment）などの規格に準拠した方式でデータを送受信する。
【００１４】
図１に示した構成の情報処理システムにおいて、ホスト装置２は、記憶装置１に記憶させるデータ（ストレージメディア１１に書き込むデータ）を記憶装置１へ出力する際、データを暗号化してから記憶させるか否かを指示する。記憶装置１は、ホスト装置２からデータを受け取ると、指示内容を確認し、暗号化が指示されている場合には、受け取ったデータを暗号化してからストレージメディア１１に格納する。また、ストレージメディア１１で記憶しているデータの出力（読み出し）がホスト装置２から指示され、かつ指示内容に対応するデータを暗号化した状態で記憶している場合、復号してからホスト装置２へ出力する。データの暗号化および復号はメディアコントローラ１２が行う。
【００１５】
なお、簡単化のために、記憶装置１に対してホスト装置２がアクセスする場合について説明するが、ホスト装置２以外のホスト装置も記憶装置１にアクセス可能なシステム構成としてもよい。すなわち、記憶装置１を複数のホスト装置で共用する構成としてもよい。
【００１６】
図２は、記憶装置１の詳細な機能ブロック構成の一例を示す図である。記憶装置１は、図１でも示したストレージメディア１１、メディアコントローラ１２およびＩ／Ｆ部１３の他に、認証処理実行部１４、セキュリティ設定部１５および暗号鍵変更部１６を備えている。また、ストレージメディア１１は、ユーザデータ記憶領域１１１および鍵テーブル記憶領域１１２を含んでいる。メディアコントローラ１２は、メディアアクセス部１２１、コマンド処理部１２２、暗号化処理部１２３およびデータ送受信部１２４を含んでいる。
【００１７】
認証処理実行部１４は、ホスト装置２などの外部装置からアクセス要求があった場合に、アクセスを許可するかどうか判定する処理（認証処理）を実行する。セキュリティ設定部１５は、アクセスを許可した外部装置からの指示に応じて、認証処理実行部１４による認証処理で参照するパスワードを変更する。暗号鍵変更部１６は、ホスト装置２からの指示に応じて、メディアコントローラ１２によるファイルの暗号化処理や復号処理で使用する暗号鍵を変更する。
【００１８】
ストレージメディア１１内のユーザデータ記憶領域１１１は、ホスト装置２が取り扱うユーザデータであるファイルを格納する領域であり、鍵テーブル記憶領域１１２は、メディアコントローラ１２によるファイルの暗号化処理や復号処理で使用する暗号鍵の情報などが登録されたテーブル（鍵テーブル）を格納する領域である。
【００１９】
メディアコントローラ１２において、メディアアクセス部１２１は、ストレージメディア１１に対してファイルを書き込む処理やストレージメディア１１からファイルを読み出す処理を実行する。コマンド処理部１２２は、ホスト装置２から送られてくるコマンド（ファイルの書き込み指示コマンド、ファイルの読み出し指示コマンド、等）の内容を解析する。暗号化処理部１２３は、ファイルの暗号化処理や復号処理を実行する。データ送受信部１２４は、Ｉ／Ｆ部１３を介してホスト装置２との間でファイルを送受信する。
【００２０】
なお、記憶装置１は、ハードディスクドライブやＳＳＤである。また、ＵＳＢメモリや各種メモリーカードとしてもよい。
【００２１】
図３は、ホスト装置２の詳細な機能ブロック構成の一例を示す図である。ホスト装置２は、図１でも示したデータ処理部２１およびＩ／Ｆ部２２の他に、認証処理実行部２３、セキュリティ設定部２４および暗号鍵変更部２５を備えている。また、データ処理部２１は、コマンド発行部２１１、鍵番号付加部２１２、テーブル保持部２１３およびデータ送受信部２１４を含んでいる。
【００２２】
認証処理実行部２３は、記憶装置１へのアクセスで必要な認証処理を実行する。具体的には、ホスト装置のユーザからパスワードを取得して保持しておき、記憶装置１へのアクセスが必要になると、保持しているパスワードを記憶装置１に向けて出力してアクセス要求を行う。セキュリティ設定部２４は、ユーザからの要求に応じて記憶装置１にアクセスし、次回以降のアクセス時（認証処理実行時）に参照されるパスワードを変更する。暗号鍵変更部２５は、ユーザからの要求に応じて記憶装置１にアクセスし、ファイルの暗号化処理や復号処理で使用される暗号鍵を変更する。
【００２３】
データ処理部２１において、コマンド発行部２１１は、記憶装置１に対して送信する各種コマンド、すなわち、ファイル書き込みを指示するライトコマンド、ファイル読み出しを指示するリードコマンド、パスワードや暗号鍵の変更を指示するコマンドなどを発行する。鍵番号付加部２１２は、コマンド発行部２１１で発行されたコマンドのうち、ライトコマンドおよびリードコマンドに対し、暗号化処理や復号処理で使用する暗号鍵を示す鍵番号を必要に応じて付加する。テーブル保持部２１３は、ライトコマンドに付加した鍵番号と、このライトコマンドで書き込みを指示したファイルの対応関係を示すテーブルを保持する。なお、このテーブルは、リードコマンドに付加する鍵番号を決定する際に参照される。データ送受信部２１４は、Ｉ／Ｆ部２２を介して記憶装置１との間でファイルを送受信する。
【００２４】
以下、本実施の形態にかかる情報処理システムの動作について説明する。ここで、記憶装置１が各種動作を実行する際に参照する情報である鍵テーブルを説明する。図４は、鍵テーブルの構成例を示す図である。図４に示した鍵テーブルは、記憶装置１が備えているストレージメディア１１内の鍵テーブル記憶領域に格納されている。この鍵テーブルの各レコード（行データ）には、「番号（No.）」、「フラグ（Flag）」、「パスワード（Password）」および「暗号鍵（Encryption  Key）」が含まれている。
【００２５】
「番号」はレコードの識別番号（以下、レコード番号と呼ぶ）である。なお、鍵テーブルには最大ｎ個のレコードを登録可能とする。「フラグ」は同一レコードに登録されている暗号鍵"KEYx"（x=0,1,2,…,n）の使用可否を示す情報である。例えば、"Fx=0"で使用不可、"Fx=1"で使用可とする。初期状態は"Fx=0"として、暗号鍵"KEYx"は使用不可とする。なお、媒体ライト用の暗号鍵(FWx)と媒体リード用の暗号鍵(FRx)の２つに分けて管理／運用しても良い。「パスワード」は同一レコードに登録されている情報の変更を要求するホスト装置の認証に使用する。"No.x"のレコードに登録されているパスワード"PWx"を使用した認証にホスト装置２が成功した場合は、フラグ"Fx"やパスワード"PWx"、暗号鍵"KEYx"の変更を許可する。各パスワードには初期値として既知の値を設定しておく。「暗号鍵」はファイルの暗号化処理および暗号化されたファイルの復号で使用される情報である。本実施形態において、"KEYx"の値は、ホスト装置２からの指示に応じて、記憶装置１自身が乱数値を設定することとする。なお、設定した乱数値（暗号鍵）をホスト装置２に通知することはしない（ホスト装置２は、記憶装置１が使用する暗号鍵を認識しない）。記憶装置１自身が乱数を生成して暗号鍵として設定するのではなく、ホスト装置２から暗号鍵を受領する方式でも良い。また、記憶装置１をSecureな状態に保つために、PWx,KEYxを暗号化などによりスクランブルしておいても良い。
【００２６】
＜パスワードの設定（変更）動作＞
鍵テーブルに登録されているパスワードの設定動作について説明する。図５は、図４に示した鍵テーブルの所定のレコードに登録されているパスワードの変更手順の一例を示すフローチャートである。図５は、記憶装置１側の処理手順を示している。なお、鍵テーブルの各レコードには、パスワードが予め登録されているものとする。
【００２７】
番号ｍ（m=0,1,2,…,n）のレコードに登録されているパスワードを変更する場合、まず、ホスト装置２の認証処理実行部２３が、レコード番号ｍに対応するパスワードを記憶装置１へ送信し、番号ｍのレコード（レコード＃ｍ）へアクセスするための認証処理の実行を要求する。なお、パスワードは、例えば、ユーザから予め取得して保持しておく。予め取得しておくのではなく、ユーザによってレコード＃ｍへのアクセスを指示する操作が行われた場合に取得するようにしても構わない。
【００２８】
記憶装置１は、ホスト装置２からレコード番号ｍ（＃ｍ）に対応するパスワード（ｐ）を受領すると（ステップＳ１１）、認証処理を開始する。すなわち、記憶装置１の認証処理実行部１４は、レコード＃ｍに登録されているパスワードＰＷｍと、上記ステップＳ１１で受領したパスワードｐが一致しているかどうか確認する（ステップＳ１２）。「ＰＷｍ＝ｐ」の場合（ステップＳ１２：Ｙｅｓ）、認証成功として、その旨をホスト装置２に通知する。認証が成功した旨の通知を受けたホスト装置２においては、セキュリティ設定部２４が、レコード＃ｍに登録する新しいパスワードｐｎを記憶装置１へ送信する。ホスト装置２から新しいパスワードｐｎを受領した記憶装置１においては、セキュリティ設定部１５が、レコード＃ｍに登録されているパスワードＰＷｍを受領したパスワードｐｎに置き換える（ステップＳ１３，Ｓ１４）。
【００２９】
一方、上記のステップＳ１２において、セキュリティ設定部１５が「ＰＷｍ≠ｐ」と判断した場合（ステップＳ１２：Ｎｏ）、認証失敗として動作を終了する（ステップＳ１５）。
【００３０】
なお、認証が成功した後にホスト装置２から新しいパスワードを送信させるのではなく、認証用の既存のパスワードと新しいパスワードを一緒に送信させ、認証が成功した場合に新しいパスワードに更新するようにしてもよい。
【００３１】
＜暗号鍵の有効化／無効化設定動作＞
鍵テーブルに登録されているフラグの設定を変更することにより暗号鍵を有効化（または無効化）する動作について説明する。図６は、図４に示した鍵テーブルの所定のレコードに含まれるフラグの設定を変更する手順の一例を示すフローチャートである。図６は、記憶装置１側の処理手順を示している。
【００３２】
番号ｍ（m=0,1,2,…,n）のレコード内のフラグの設定を変更する場合、まず、ホスト装置２の認証処理実行部２３が、レコード番号ｍに対応するパスワードを記憶装置１へ送信し、レコード＃ｍへアクセスするための認証処理の実行を要求する。なお、この処理は、上述したパスワードを変更する動作の最初に実行する処理と同一である。
【００３３】
記憶装置１は、ホスト装置２からレコード番号ｍ（＃ｍ）に対応するパスワード（ｐ）を受領すると（ステップＳ２１）、認証処理を開始する。すなわち、記憶装置１の認証処理実行部１４は、レコード＃ｍに登録されているパスワードＰＷｍと、上記ステップＳ２１で受領したパスワードｐが一致しているかどうか確認する（ステップＳ２２）。ここまでの記憶装置１の処理（ステップＳ２１，Ｓ２２）、および「ＰＷｍ≠ｐ」の場合の処理（ステップＳ２５）は、上述したパスワードを変更する動作のステップＳ１１、Ｓ１２およびＳ１５と同一である。
【００３４】
認証処理実行部１４は、「ＰＷｍ＝ｐ」の場合（ステップＳ２２：Ｙｅｓ）、認証成功として、その旨をホスト装置２に通知する。認証が成功した旨の通知を受けたホスト装置２においては、セキュリティ設定部２４が、レコード＃ｍ内のフラグ設定変更を記憶装置１に指示する。すなわち、このレコードに登録されている暗号鍵を有効化（または無効化）する指示を行う。ホスト装置２から暗号鍵を有効化する指示（または無効化する指示）を受けた記憶装置１においては、セキュリティ設定部１５が、指示内容に従い、フラグの設定を変更する（ステップＳ２３，Ｓ２４）。具体的には、暗号鍵の有効化が指示された場合、対応するフラグＦｍを「１」に設定する。暗号鍵の無効化が指示された場合、対応するフラグＦｍを「０」に設定する。
【００３５】
なお、認証が成功した後にホスト装置２からフラグ設定の変更指示を送信させるのではなく、認証用の既存のパスワードと一緒に変更指示を送信させ、認証が成功した場合にフラグの設定を変更するようにしてもよい。
【００３６】
ホスト装置２は、記憶装置１にファイルを書き込む動作を開始する際、および記憶装置１からファイルを読み出す際に暗号鍵を有効化するためのフラグ設定変更を行う。また、ファイルの書き込み動作が終了した後、およびファイルの読み出し動作が終了した後に暗号化鍵を無効化するためのフラグ設定変更を行う。暗号鍵を有効化するためのフラグ設定変更をファイル書き込み／読み出しを開始する直前に実施し、暗号鍵を無効化するためのフラグ設定変更をファイル書き込み／読み出しが終了した直後に実施することにより、安全性をより高めたシステムを実現できる。また、暗号鍵を無効化するためのフラグ設定変更は、ホスト装置２主導で行うのではなく、ファイル書き込み／読み出しが終了した後の所定のタイミングで記憶装置１が自主的に行うようにしてもよい。
【００３７】
＜ファイルの書き込み／読み出し動作＞
ホスト装置２が記憶装置１に対してファイルを書き込む動作、およびホスト装置２が記憶装置１からファイルを読み出す動作について説明する。
【００３８】
図７は、ホスト装置２が記憶装置１にファイルの書き込みを要求する際に発行するライトコマンドの構成例を示す図である。図示したように、本実施形態の情報処理システムでは、ファイルの暗号化処理で使用する暗号鍵を示す情報である「鍵番号」を含んだライトコマンドを使用し、ホスト装置２が記憶装置１に対してファイルの書き込みを指示する。ここで、暗号鍵が登録されているレコードのレコード番号（図４に示した“No.”）を鍵番号とする。なお、ｂｙｔｅ０に設定された値（0x2A）はライトコマンドを示す情報（コマンド種別）である。ｂｙｔｅ２〜５に割り当てられている「論理ブロックアドレス」は、ファイルを格納する領域の先頭アドレスを示す。ｂｙｔｅ７〜８に割り当てられている「転送ブロック長」は、ファイルの情報長（サイズ）を示す。
【００３９】
また、図示を省略しているが、ホスト装置２が記憶装置１で記憶されているファイルの出力（読み出し）を要求する際に発行するリードコマンドにも鍵番号が含まれる。リードコマンドの構成は、ライトコマンド（図７参照）のｂｙｔｅ０のコマンド種別に、リードコマンドを示す値を設定したものとなる。リードコマンドの場合、「論理ブロックアドレス」は、読み出すファイルが格納されている領域の先頭アドレスを示す。「転送ブロック長」は、読み出すファイルの情報長を示す。「鍵番号」は、論理ブロックアドレスおよび転送ブロック長で指定された領域に格納されているファイルの復号処理で使用する暗号鍵を示す。
【００４０】
なお、ライトコマンドおよびリードコマンドの構成は上記のものに限定されない。図７では鍵番号をｂｙｔｅ９に割り当てているが、ｂｙｔｅ９以外に割り当てても構わない。
【００４１】
図８は、ファイル書き込み手順の一例を示すフローチャートである。記憶装置１に対してファイルを書き込む場合、ホスト装置２のデータ処理部２１において、まず、コマンド発行部２１１が、論理ブロックアドレスおよび転送ブロック長を設定したライトコマンドを発行し、次に、鍵番号付加部２１２が、コマンド発行部２１１で発行されたライトコマンドに対して鍵番号（＃ｍとする）を付加して記憶装置１へ送信する。なお、ライトコマンドを送信する前に、暗号鍵を有効化する動作（図６参照）を実行しておく。
【００４２】
記憶装置１において、メディアコントローラ１２内のコマンド処理部１２２は、ホスト装置２から受信したコマンドを解析する。そして、鍵番号を含んだライトコマンドを受領したと判断すると、ストレージメディア１１に格納されている鍵テーブルをメディアアクセス部１２１経由で参照し、受領したライトコマンドに含まれていた鍵番号が示すレコード内のフラグを確認する（ステップＳ３１，Ｓ３２）。確認の結果、フラグが暗号鍵の使用を許可する状態（Ｆｍ＝１）の場合（ステップＳ３２：Ｙｅｓ）、ホスト装置２に対してファイルの送信を許可する。これを受けて、ホスト装置２のデータ送受信部２１４は、上記ライトコマンドに対応するファイルを記憶装置１へ送信する。送信が終了すると、送信したファイルとこのファイルの暗号化処理で使用される鍵番号（上記ライトコマンドに設定された鍵番号）とを対応付けて、テーブル保持部２１３が保持しているテーブルであるファイルと鍵番号の対応テーブルに登録する。
【００４３】
ホスト装置２からファイルを受領すると、記憶装置１内のメディアコントローラ１２において、暗号化処理部１２３が、ステップＳ３１で受信したライトコマンドに含まれていた鍵番号に対応する暗号鍵（ＫＥＹｍ）を使用して受領ファイルを暗号化する（ステップＳ３３，Ｓ３４）。暗号化処理が終了すると、暗号化されたファイルである暗号化データをメディアアクセス部１２１が受け取り、ストレージメディア１１のユーザデータ記憶領域１１１に書き込む（ステップＳ３５）。
【００４４】
一方、上記のステップＳ３２において、フラグが暗号鍵の使用不許可を示す状態（Ｆｍ≠１）場合（ステップＳ３２：Ｎｏ）、ファイル書き込み失敗（ライト失敗）として動作を終了する（ステップＳ３６）。
【００４５】
なお、鍵番号を含まないライトコマンドを受信した場合、ライト失敗として動作を終了してもよいし、ファイルを暗号化せずに、そのままストレージメディア１１のユーザデータ記憶領域１１１に書き込むようにしてもよい。ライト失敗として動作を終了するようにした場合、記憶装置１が記憶するファイルは全て暗号化データとなるので、記憶している情報が漏洩する可能性を低く抑えることができる。一方、ファイルを暗号化せずに記憶するようにした場合には、暗号鍵を含んだ特殊なライトコマンドを発行することができないホスト装置による記憶装置１の利用が可能となり、情報の漏洩を防止する機能を維持しつつ汎用性を高めることができる。加えて、暗号鍵を含んだライトコマンドを発行可能なホスト装置は、例えば、重要度の高い情報については暗号化して記憶させ、重要度が高くない情報については暗号化せずに記憶させる利用が可能となる。この結果、記憶装置１における処理負荷や処理遅延などの増大を必要最小限に抑えることができる。
【００４６】
ホスト装置２は、ファイル書き込みが終了すると、暗号鍵を無効化する動作（図６参照）を実行する。
【００４７】
図９は、ファイル読み出し手順の一例を示すフローチャートである。記憶装置１からファイルを読み出す場合、ホスト装置２のデータ処理部２１において、まず、コマンド発行部２１１が、論理ブロックアドレスおよび転送ブロック長を設定したリードコマンドを発行する。鍵番号付加部２１２は、コマンド発行部２１１で発行されたコマンドがリードコマンドである場合、テーブル保持部２１３で保持されているテーブルを参照し、リードコマンドに対して鍵番号（＃ｍとする）を付加して記憶装置１へ送信する。リードコマンドに付加する鍵番号は、読み出すファイルの書き込み時にライトコマンドで指定した鍵番号と同じものとする。なお、リードコマンドを送信する前に、暗号鍵を有効化する動作（図６参照）を実行しておく。
【００４８】
記憶装置１において、メディアコントローラ１２内のコマンド処理部１２２は、ホスト装置２から受信したコマンドを解析する。そして、鍵番号を含んだリードコマンドを受領したと判断すると、ストレージメディア１１に格納されている鍵テーブルをメディアアクセス部１２１経由で参照し、受領したリードコマンドに含まれていた鍵番号が示すレコード内のフラグを確認する（ステップＳ４１，Ｓ４２）。確認の結果、フラグが暗号鍵の使用を許可する状態（Ｆｍ＝１）の場合（ステップＳ４２：Ｙｅｓ）、メディアアクセス部１２１が、リードコマンドで指定された領域から暗号化データを読み出す（ステップＳ４３）。次に、暗号化処理部１２３が、暗号化データをリードコマンドで指定された暗号鍵ＫＥＹｍを使用して復号し（ステップＳ４４）、データ送受信部１２４経由でホスト装置２へ転送する（ステップＳ４５）。
【００４９】
一方、上記のステップＳ４２において、フラグが暗号鍵の使用不許可を示す状態（Ｆｍ≠１）場合（ステップＳ４２：Ｎｏ）、ファイル読み出し失敗（リード失敗）として動作を終了する（ステップＳ４６）。
【００５０】
なお、鍵番号を含まないリードコマンドを受信した場合、リード失敗として動作を終了してもよいし、指定されたファイルを復号せずに、そのまま転送するようにしてもよい。ただし、どちらの動作とするかは、鍵番号を含まないライトコマンドを受信した場合の動作に依存する。すなわち、鍵番号を含まないライトコマンドを受信した場合にライト失敗とするのであれば、鍵番号を含まないリードコマンドを受信するとリード失敗として動作を終了する。この場合、暗号鍵を含んだ特殊なライトコマンドを発行することができないホスト装置による不正アクセスを制限して情報の安全性を高めることができる。一方、鍵番号を含まないライトコマンドを受信した場合に暗号化せずにファイルを記憶するのであれば、鍵番号を含まないリードコマンドを受信すると、ファイルを復号せずにそのまま転送する。この場合、汎用性を高めることができるとともに、暗号化処理および復号処理にかかる処理負荷、処理遅延などの増大を必要最小限に抑えることができる。
【００５１】
このように、本実施形態の情報処理システムにおいて、記憶装置１は、ファイル書き込み時の暗号化処理およびファイル読み出し時の復号処理で使用する暗号鍵と、暗号鍵を示す番号（鍵番号）と、暗号鍵の使用可否を示すフラグと、ホスト装置の認証処理で使用するパスワードとを含んだレコードが複数登録された鍵テーブルを保持している。また、記憶装置１は、ライトコマンドまたはリードコマンドを受信し、かつ受信したコマンドに鍵番号が含まれている場合、鍵番号に対応するフラグの状態を確認し、暗号鍵の使用許可を示す状態であれば、鍵番号が示す暗号鍵を使用してファイルの暗号化または復号を行う。また、フラグの設定は、各フラグに対応付けられているパスワードを使用した認証が成功したホスト装置２から指示を受けた場合に変更することとした。これにより、複数の暗号鍵を使い分けてファイルを暗号化して記憶する記憶装置を、記憶領域の使用効率を低下させることなく実現できる。
【００５２】
例えば、図１０に示したように記憶領域を複数のサブ領域に分割し、複数のサブ領域それぞれに対して個別に暗号鍵を割り当てて複数の暗号鍵を使い分ける構成とした場合、あるサブ領域に空き（未使用の領域）が存在していても、この領域に格納できるファイルのサイズは限定されるので、使用できずに残ってしまう可能性がある。一方、本実施形態の記憶装置では記憶領域を複数のサブ領域に分割することはしないので、記憶領域の使用効率が低下することはない。また、断片化の少ないファイル書き込みが可能となるので、データ転送性能の向上が見込める。
【００５３】
また、本実施形態の記憶装置によれば、記憶している情報の安全性を従来よりも高めることができる。例えば、攻撃者がファイルをリードしようとした時、ライト時のライトコマンドで指定した鍵番号を知らなければ、正しくファイルを読み出すことが出来ない。暗号鍵の使用可否を示すフラグにより暗号鍵の使用を禁止にできるので、攻撃者が総当りで鍵番号を変更して使用したとしても、復号が行われることはなく、正しいファイルを読み出すことは出来ない。
【００５４】
なお、鍵テーブル（図４参照）の特定のレコード（例えば、番号＃０のレコードとする）に登録された暗号鍵は誰でも使用できるように、パスワード認証無しで常に使用できる方式としてもよい。また、ストレージメディア１１が鍵テーブルを保持するのではなく、メディアコントローラ１２などで保持するようにしても構わない。
【００５５】
（第２の実施形態）
第２の実施形態について説明する。なお、情報処理システムの構成は第１の実施形態と同様とする。また、記憶装置およびホスト装置の構成も第１の実施形態と同様とする（図１〜図３参照）。
【００５６】
図１１は、図４に示した鍵テーブルの所定レコードに登録されている暗号鍵の変更手順の一例を示すフローチャートである。詳細については後述するが、本実施形態の情報処理システムでは、鍵テーブルに登録されている暗号鍵を変更することにより記憶装置１が記憶しているファイルを消去（イレーズ）する。
【００５７】
番号ｍ（m=0,1,2,…,n）のレコードに登録されている暗号鍵を変更する場合、まず、ホスト装置２の認証処理実行部２３が、レコード番号ｍに対応するパスワードを記憶装置１へ送信し、レコード＃ｍへアクセスするための認証処理実行を要求する。なお、この処理は、第１の実施形態で説明したパスワードを変更する動作の最初に実行する処理と同一である。
【００５８】
記憶装置１は、ホスト装置２からレコード番号ｍ（＃ｍ）に対応するパスワード（ｐ）を受領すると（ステップＳ５１）、認証処理を開始する。すなわち、記憶装置１のセキュリティ設定部１５は、レコード＃ｍに登録されているパスワードＰＷｍと、上記ステップＳ５１で受領したパスワードｐが一致しているかどうか確認する（ステップＳ５２）。ここまでの記憶装置１の処理（ステップＳ５１，Ｓ５２）、および「ＰＷｍ≠ｐ」の場合の処理（ステップＳ５５）は、第１の実施形態で説明したパスワードを変更する動作のステップＳ１１、Ｓ１２およびＳ１５と同一である。
【００５９】
暗号鍵変更部１６は、「ＰＷｍ＝ｐ」の場合（ステップＳ５２：Ｙｅｓ）、認証成功として、その旨をホスト装置２に通知する。認証が成功した旨の通知を受けたホスト装置２においては、暗号鍵変更部２５が、レコード＃ｍに登録されている暗号鍵の変更を記憶装置１に指示する。ホスト装置２から暗号鍵の変更指示を受けた記憶装置１においては、暗号鍵変更部１６が、レコード＃ｍに登録されている暗号鍵を変更する。例えば、所定の方法で乱数を生成して既存の暗号鍵に上書きすることにより暗号鍵を変更する（ステップＳ５３，Ｓ５４）。
【００６０】
なお、認証が成功した後にホスト装置２から暗号鍵の変更指示を送信させるのではなく、認証用の既存のパスワードと一緒に変更指示を送信させ、認証が成功した場合に暗号鍵を変更するようにしてもよい。
【００６１】
＜ファイルのイレーズ＞
鍵テーブルのレコード＃ｍに登録された暗号鍵ＫＥＹｍを使用して暗号化されたファイルを記憶装置１が記憶している場合、ホスト装置２は、レコード＃ｍに登録された暗号鍵ＫＥＹｍの変更を指示することにより、このファイルを消去する。暗号鍵を変更すると、変更前の暗号鍵を使用して暗号化されたファイルの復号が不可能となりファイル（暗号化される前のファイル）の読み出しが不可能となる。従って、ホスト装置２は、ファイル毎に異なる暗号鍵を指定して記憶装置１で記憶させておくことにより、特定のファイルをイレーズすることが可能となる。ホスト装置２は、ファイルをイレーズする場合、ファイルと暗号鍵の対応関係を示したテーブルを更新する。
【００６２】
なお、暗号鍵を変更してイレーズを行った後、該当するファイルを読み出すと意味を持たないデータ列が記憶装置１から転送されてくるが、あらかじめ平文の状態でファイルにチェックサムやＣＲＣ等の確認用情報を付加しておくことにより、イレーズが正しく行われたかどうかを確認できる。すなわち、暗号鍵を変更してファイルをイレーズした後、該当領域からファイルを読み出し、そこに付加されている確認用情報が変化しているかどうか確認することにより、イレーズが正しく行われたかどうか知ることができる。
【００６３】
＜ファイルの移動＞
図１２は、記憶装置１のストレージメディア１１内でファイルを移動させる動作の一例を示す図である。より詳細には、それぞれ異なる暗号鍵で暗号化された状態でストレージメディア１１に格納されているファイルＡ〜Ｅのうち、断片化された状態のファイルをデフラグメンテーションにより一纏めにする動作を示している。ファイルＡ〜Ｅは、鍵番号０（＃０）〜４（＃４）の暗号鍵でそれぞれ暗号化されているものとする。なお、記憶装置１は、どのファイルがどの暗号鍵で暗号化されているのかを認識していないものとする。これにより、記憶装置１はファイルと暗号鍵の対応関係の情報を保持しないことになるので、不正アクセスにより対応関係の情報が漏洩することがなくなり、ファイルの安全性を高く保つことができる。
【００６４】
図１２に示したように、例えば鍵番号［＃３］の暗号鍵で暗号化されたファイルＤを移動させる場合、ホスト装置２は、まず、ファイルＤの全パーツを記憶装置１から読み出して結合し、次に、鍵番号［＃３］の暗号鍵の変更を記憶装置１に指示して断片化された状態のファイルＤをイレーズする。暗号鍵の変更によるファイルイレーズが完了すると、読み出しておいたファイルＤの再書き込みを記憶装置１に指示する。このとき、ライトコマンドには、ファイルＤが断片化されないように、論理ブロックアドレス（書き込み領域）を設定する。図１２では、再書き込み時の暗号化で使用する暗号鍵を鍵番号［＃３］の暗号鍵（ファイルイレーズのために変更した暗号鍵）としているが、他の暗号鍵を指定しても構わない。ファイルを読み出す際の復号で使用する暗号鍵の鍵番号と再書き込みする際の暗号化で使用する暗号鍵の鍵番号が異なる場合、ホスト装置２は、テーブル保持部２１３が保持している情報（ファイルと暗号鍵の対応関係を示したテーブル）を更新する。一方、ファイルを読み出す際の鍵番号と再書き込みする際の鍵番号が同じ場合は、テーブル保持部２１３が保持している情報を更新しなくてもよい。
【００６５】
なお、デフラグメンテーションは、ホスト装置２が関与することなしに、記憶装置１が単独で行うようにしてもよい。その場合、メディアコントローラ１２と暗号鍵変更部１６が連携し、断片化されたファイルの読み出し、暗号鍵の変更、ファイルの再書き込みを順次行う。
【００６６】
このように、本実施形態の情報処理システムにおいて、記憶装置１は、暗号化処理および復号処理で使用する暗号鍵をホスト装置２からの指示に応じて変更することとしたので、ホスト装置２は、暗号鍵の変更を指示することにより、記憶装置１に格納されている一部のファイルを選択してイレーズすることが可能となる。また、暗号鍵を変更することによりファイルをイレーズするようにしたので、サイズの大きいファイルであっても短時間で安全にイレーズすることができる。
【００６７】
（第３の実施形態）
ホスト装置は、記憶装置に記憶させる各種情報（ファイル）の重要度に応じて、暗号鍵を使い分けるようにしてもよい。例えば、鍵番号が大きい暗号鍵ほど重要度の高いファイルの暗号化に使用するように対応付けておき、鍵番号が大きい暗号鍵は、ホスト装置を利用するユーザのうちの特定のユーザが使用できるようにする。具体的には、暗号鍵を使用（指定）する際に必要なパスワード（認証パスワード）を特定のユーザに通知する。認証パスワードの通知範囲は、対応する重要度に応じて制限する。すなわち、対応する重要度が高い認証パスワードほど通知範囲が狭くなる（通知されるユーザ数が少なくなる）。
【００６８】
図１３を用いて具体例を説明する。図１３は、ファイルイレーズ動作の一例を示す図であり、記憶装置１のストレージメディア１１にファイル（file）Ａ〜ファイルＪが格納された状態から一部のファイルをイレーズする場合の動作例を示している。ファイルＡおよびＨは鍵番号［＃０］の暗号鍵で暗号化され、ファイルＢ、ＥおよびＧは鍵番号［＃２］の暗号鍵で暗号化され、ファイルＣ、ＦおよびＪは鍵番号［＃３］の暗号鍵で暗号化されているものとする。また、鍵番号［＃３］の暗号鍵で暗号化されたファイルの重要度が最も高いものとする。この場合、ホスト装置は、鍵番号［＃３］の暗号鍵の変更を記憶装置に指示することにより、変更される前の暗号鍵＃３で暗号化されているファイルＣ、ＦおよびＪを同時に消去できる。例えば、サーバーの運用変更や外部からの攻撃などによる非常事態により、最も重要度の高いファイルを消去したい場合は、鍵番号［＃３］の暗号鍵を変更することで、記憶装置内に点在しているファイルでも容易に消去でき、それ以外のファイルには一切影響を与えることがない。
【００６９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７０】
１  記憶装置、２  ホスト装置、１１  ストレージメディア、１２  メディアコントローラ、１３，２２  Ｉ／Ｆ部、１４，２３  認証処理実行部、１５，２４  セキュリティ設定部、１６，２５  暗号鍵変後部、１１１  ユーザデータ記憶領域、１１２  鍵テーブル記憶領域、１２１  メディアアクセス部、１２２  コマンド処理部、１２３  暗号化処理部、１２４，２１４  データ送受信部、２１１  コマンド発行部、２１２  鍵番号付加部、２１３  テーブル保持部。
【図１】
2013153327.tif 000003
【図２】
2013153327.tif 000004
【図３】
2013153327.tif 000005
【図４】
2013153327.tif 000006
【図５】
2013153327.tif 000007
【図６】
2013153327.tif 000008
【図７】
2013153327.tif 000009
【図８】
2013153327.tif 000010
【図９】
2013153327.tif 000011
【図１０】
2013153327.tif 000012
【図１１】
2013153327.tif 000013
【図１２】
2013153327.tif 000014
【図１３】
2013153327.tif 000015