以下、各実施形態について図面を用いて説明する。
<第1の実施形態>
図1は第1の実施形態に係る暗号化データ記憶システムの構成の一例を示すブロック図であり、図2乃至図4はディスク、SRAM及びメモリ内のデータを説明するための模式図である。この記憶システムは、電源オフ時にデータが消去される揮発性メモリを有し、任意のホスト装置30A,30B,…に着脱自在に接続可能な記憶装置10と、任意のホスト装置30A,30B,…のうち、記憶装置10への接続権限をもつ正規のホスト装置30Aとを備えている。
記憶装置10は、磁気記憶媒体であるディスク11、スピンドルモータ(SPM)12、ヘッド13、アクチュエータ14、モータドライバ15、ヘッドアンプ16、リード/ライト(R/W)チャネル17、フラッシュメモリ(FLROM)18、バッファメモリ19及びハードディスクコントローラ(HDC、単にディスクコントローラという)20を備えている。
ディスク11は、図2に示すように、一般ユーザがアクセス不可のシステムエリア11aと、一般ユーザがアクセス可能なユーザエリア11bとを備えている。システムエリア11aは、第1部分鍵、第1機器認証情報及び第1ユーザ認証情報を予め記憶する。
ここで、第1部分鍵は、スタティックRAM25(揮発性メモリ)に書き込まれる暗号鍵の一部を構成する鍵データである。第1部分鍵としては、例えば、記憶装置10の内部情報Gを用いている。また、内部情報Gは、例えば初期設定時に、暗号化モジュール23からシステムエリア11aに予め書込まれる。このような内部情報Gとしては、乱数を一例として用いるが、この例に限定されない。以下の説明では、第1部分鍵を内部情報Gとして述べる。
第1機器認証情報は、接続可能な任意のホスト装置30A,30B,…のうち、接続権限をもつ正規のホスト装置30Aを機器認証するためのものであり、任意の機器認証方式の機器認証情報が使用可能となっている。例えば、第1機器認証情報としては、ホスト装置30Aの固有情報“AA”、又はホスト装置30Aの署名生成鍵Ksig-30aが使用可能であるが、これらの例に限定されない。このような第1機器認証情報は、例えば初期設定時に、機器認証モジュール21からシステムエリア11aに予め書込まれる。機器認証方式としては、互いに同一の第1機器認証情報と第2機器認証情報とを照合する方式や、第2又は第3の実施形態に述べるように、互いに異なる第1機器認証情報及び第2機器認証情報に基づく方式のいずれとしてもよい。ホスト装置30Aの固有情報としては、例えばMACアドレスが使用可能であるが、この例に限定されない。
第1ユーザ認証情報は、正規のホスト装置30Aを使用する正規のユーザを認証するためのものである。第1ユーザ認証情報としては、正規のユーザのパスワードP及びユーザIDを一例として用いるが、この例に限定されない。第1ユーザ認証情報は、例えば初期設定時に、ユーザ認証モジュール22からシステムエリア11aに予め書込まれる。
ユーザエリア11bは、暗号鍵Kgに基づいて暗号化されたデータDである暗号化データEg(Kg,D)を記憶している。この暗号化データEg(Kg,D)は、暗号化モジュール23により、ユーザエリア11bに書き込まれる。なお、ここでは、内部情報Gの場合に、“G”の小文字“g”を添字にして“Eg”,“Kg”と表記している。例えば、内部情報Iの場合には、“I”の小文字“i”を添字にして“Ei”,“Ki”と表記する。
SPM12は、ディスク11を回転させる。ヘッド13は、リードヘッド素子とライトヘッド素子とを含み、ディスク11からデータを読み出し、またデータを書き込む。
アクチュエータ14は、ヘッド13を搭載しているサスペンション、アーム及びボイスコイルモータ(VCM)を有し、ヘッドをディスク11上の半径方向に移動させる。
モータドライバ15は、SPM12に駆動電流を供給するSPMドライバ及びアクチュエータ14のVCMに駆動電流を供給するVCMドライバを有する。
ヘッドアンプ16は、ヘッド13により読み出された信号(リードデータ)を増幅してR/Wチャネル17を介してディスクコントローラ20に伝送する。また、ヘッドアンプ16は、ディスクコントローラ20からR/Wチャネル17を介して出力される信号(ライトデータ)をライト電流に変換してヘッド13に伝送する。
R/Wチャネル17は、データ読出/書込の信号処理回路であり、ヘッド13により読み出されたリードデータをデコードし、またライトデータをエンコードする機能を有する。
フラッシュメモリ18は、ディスクコントローラ20に制御されてデータを保存する不揮発性メモリである。なお、フラッシュメモリ18は、前述したシステムエリア11aに代えて、システムエリア11a内のデータを記憶するように用いてもよい。
バッファメモリ19は、DRAM等の揮発性メモリであり、ディスクコントローラ20に制御されてリードデータ及びライトデータを一時的に記憶する。なお、バッファメモリ19は、スタティックRAM25に代えて、スタティックRAM25内のデータを記憶するように用いてもよい。
ディスクコントローラ20は、バッファメモリ19を使用して、R/Wチャネル17とホスト装置30Aとのデータ伝送を制御するインタフェースである。また、ディスクコントローラ20は、R/Wチャネル17を介してデータ読出/書込動作を制御し、また暗号化処理及び復号処理などを制御する。ディスクコントローラ20は、本実施形態においては、機器認証処理及びユーザ認証処理を更に制御する。ここでいうユーザ認証処理は、従来のパスワード認証以外の処理(例、認証失敗時の暗号鍵の破棄など)を含んでいる。
以下ではディスクコントローラ20による制御のうち、特に、機器認証処理、ユーザ認証処理、暗号化処理及び復号処理の制御に用いられる機能ブロックについて説明する。
ディスクコントローラ20は、機器認証モジュール21、ユーザ認証モジュール22、暗号化モジュール23、復号モジュール24及びスタティックRAM25を備えている。
機器認証モジュール21は、新たに接続された現在のホスト装置30A(又は30B,…)から受けた第2機器認証情報と、システムエリア11a内の第1機器認証情報とに基づいて機器認証を実行し、この機器認証が失敗したとき、システムエリア11a内の内部情報Gを破棄する機器認証機能をもっている。
また、機器認証モジュール21は、機器認証の後、現在のホスト装置30A(又は30B,…)から受けた第2部分鍵とシステムエリア11a内の内部情報G(第1部分鍵)とを複合し、生成した第3部分鍵K3をスタティックRAM25に書込む第3部分鍵書込機能をもっている。
ユーザ認証モジュール22は、機器認証モジュール21による第3部分鍵K3の書込後、現在のホスト装置30A(又は30B,…)から受けた第2ユーザ認証情報と、システムエリア11a内の第1ユーザ認証情報とに基づいてユーザ認証を実行するユーザ認証機能をもっている。
これに加え、ユーザ認証モジュール22は、ユーザ認証が規定回数だけ失敗したとき、システムエリア11a内の内部情報G及びスタティックRAM25内の第3部分鍵を破棄する鍵破棄機能をもっていてもよい。また鍵破棄機能に代えて、ユーザ認証モジュール22は、ユーザ認証が規定回数だけ失敗したとき、暗号化モジュール23及び復号モジュール24を動作させず、ユーザ認証のエラーを現在のホスト装置30A(又は30B,…)に出力するエラー出力機能をもっていてもよい。本実施形態では、鍵破棄機能を用いる例を述べる。
また、ユーザ認証モジュール22は、ユーザ認証の後、スタティックRAM25内の第3部分鍵と、第2ユーザ認証情報とを複合し、生成した暗号鍵をスタティックRAM25に書込む暗号鍵書込機能をもっている。
暗号化モジュール23は、ユーザ認証が成功したとき、現在のホスト装置30A(又は30B,…)から受けたデータDを含む書込要求に従い、スタティックRAM25内の暗号鍵Kgに基づいて書込要求内のデータDを暗号化し、得られた暗号化データEg(Kg,D)をユーザエリア11bに書き込む暗号化機能をもっている。
復号モジュール24は、ユーザ認証が成功したとき、現在のホスト装置30A(又は30B,…)から受けた読出要求に基づいて、ユーザエリア11b内の暗号化データをスタティックRAM25内の暗号鍵に基づいて復号し、得られたデータを現在のホスト装置30A(又は30B,…)に出力する復号機能をもっている。
スタティックRAM25は、各モジュール21〜24から読出/書込可能な揮発性メモリであり、図3に示すように、第3部分鍵K3の生成前に第2部分鍵としての固有情報“AA”及び第1部分鍵としての内部情報Gが一時的に記憶され、第3部分鍵K3生成時には、固有情報“AA”及び内部情報Gが消去されて第3部分鍵K3が一時的に書き込まれる。同様に、暗号鍵Kg生成時には、複合用の第2ユーザ認証情報が一時的に記憶され、第3部分鍵K3及び第2ユーザ認証情報が消去されて暗号鍵Kgが書き込まれる。なお、「書き込まれる」の語は「設定される」ともいう。また、暗号鍵Kgは、記憶装置10の電源オフ時にスタティックRAM25から消去される。さらに、固有情報“AA”、内部情報G、第3部分鍵K3及び第2ユーザ認証情報の一時的な記憶と、電源オフ時までの暗号鍵Kgの記憶とは、スタティックRAM25に代えて、バッファメモリ19が実行してもよい。また、第2部分鍵としては、ホスト装置30Aの固有情報“AA”に限定されず、正規のホスト装置30Aが管理する任意のデータが使用可能となっている。
一方、ホスト装置30Aは、アクセス権のあるユーザに用いられ、記憶装置10を接続可能な通常のコンピュータである。
具体的には、ホスト装置30Aは、インタフェース31、メモリ32A、入力モジュール33、CPU34及び出力モジュール35を備えている。なお、ホスト装置30Aと、後述する他のホスト装置30Bとは、メモリ32Aの記憶内容以外はほぼ同一構成である。このため、各要素31〜35のうち、メモリ32Aのみ“A”の符号を付している。
インタフェース31は、記憶装置10をホスト装置30Aに接続するためのモジュールである。説明の簡略化のため、以下の説明では、記憶装置10とのデータ伝送にインタフェース31を介する旨の記載を省略する。
メモリ32Aは、入力モジュール33、CPU34及び出力モジュール35から読出/書込可能な記憶部であり、例えば、図4に示すように、第2部分鍵と、第2機器認証情報と、機器認証プログラムと、ユーザ認証プログラムと、アプリケーションプログラムとを記憶している。また、メモリ32Aには、各プログラムの実行に応じて、適宜、処理途中及び処理結果のデータが記憶される。
ここで、第2部分鍵は、記憶装置10で作成される暗号鍵の他の一部を構成する鍵データである。第2部分鍵としては、例えば、自装置(ホスト装置30A)の固有情報“AA”を用いるが、この例に限定されない。以下の説明では、第2部分鍵を固有情報“AA”として述べる。
第2機器認証情報は、記憶装置10への接続権限をもつ正規のホスト装置30Aを記憶装置10に機器認証させるためのものであり、任意の機器認証方式の機器認証情報が使用可能となっている。
機器認証プログラムは、CPU34により実行され、ホスト装置30Aを、記憶装置10が接続されると、記憶装置10の機器認証モジュール21により実行される機器認証の規定の認証シーケンスに沿って、メモリ32A内の第2機器認証情報を記憶装置10に送信する機器認証情報送信手段として動作させるものである。
ユーザ認証プログラムは、CPU34により実行され、ホスト装置30Aを、入力モジュール33にて入力を受け付けた第2ユーザ認証情報を記憶装置10に送信するユーザ認証情報送信手段として動作させるものである。
アプリケーションプログラムは、CPU34により実行される任意のプログラムであって、例えば、ホスト装置30Aを、入力モジュール33にて入力を受け付けた読出要求を記憶装置10に送信する読出要求送信手段として動作させるものである。
これに加え、アプリケーションプログラムは、例えば、ホスト装置30Aを、当該入力を受け付けた書込要求を記憶装置10に送信する書込要求送信手段として動作させるものであってもよい。
さらに、アプリケーションプログラムは、例えば、ホスト装置30Aを、記憶装置10からデータを読み出す手段と、当該読み出したデータに基づいて業務処理を実行し、処理結果を記憶装置10に書き込む手段として動作させるものであってもよい。
入力モジュール33は、ユーザとの間の入力インタフェースであり、例えば、ユーザの操作に応じて、第2ユーザ認証情報の入力を受け付けるユーザ認証情報受付手段と、ユーザの操作に応じて、読出要求の入力を受け付ける読出要求受付手段として動作させるものである。これに加え、入力モジュールは、ユーザの操作に応じて、データを含む書込要求の入力を受け付ける書込要求受付手段として動作させるものであってもよい。入力モジュールとしては、例えば、キーボード及びマウス等の入力デバイスが適宜使用可能となっている。
CPU34は、メモリ32A内のデータに基づいて、メモリ32A内の各プログラムを実行する演算処理装置である。
出力モジュール35は、ユーザとの間の出力インタフェースであり、例えば、ディスプレイ装置等の出力デバイスが適宜使用可能となっている。
次に、以上のように構成された記憶システムの動作を図5及び図6のフローチャートを用いて説明する。なお、記憶装置10は、暗号化データEg(Kg,D)を記憶しているとする。また、ホスト装置30Aは、メモリ内32Aの機器認証プログラム、ユーザ認証プログラム及びアプリケーションプログラムをCPU34が実行中であるとする。
この状況において、記憶装置10は、正規のユーザにより、正規のホスト装置30Aに接続されて電源がオン状態にされたとする。これにより、記憶装置10は、ホスト装置30Aに対する機器認証を実行する(ST10)。
具体的には、ホスト装置30AのCPU34は、記憶装置10が接続されると、機器認証の規定の認証シーケンスに沿って、メモリ32A内の第2機器認証情報を記憶装置10に送信する。
記憶装置10の機器認証モジュール21は、新たに接続された現在のホスト装置30Aから受けた第2機器認証情報と、システムエリア11a内の第1機器認証情報とに基づいて機器認証を実行する。機器認証モジュール21は、機器認証に失敗したときには、システムエリア11a内の内部情報Gを破棄して内部情報Iとするが、ここでは、機器認証が成功したとする。
機器認証モジュール21は、機器認証の後、現在のホスト装置30Aから受けた固定情報“AA”とシステムエリア11a内の内部情報Gとを複合し、生成した第3部分鍵K3をスタティックRAM25に書込む。この第3部分鍵K3は正しい部分鍵である。なお、前述した機器認証が失敗した場合には、破棄状態の内部情報Iを含む誤った部分鍵K3iが書き込まれることになる。
いずれにしても、暗号鍵の書込により、ステップST10の機器認証が完了する。
次に、記憶装置10は、ホスト装置30Aに対するユーザ認証を実行する(ST20)。
具体的には、ホスト装置30Aの入力モジュール33は、ユーザの操作に応じて、第2ユーザ認証情報の入力を受け付ける。CPU34は、入力を受け付けた第2ユーザ認証情報を記憶装置10に送信する。
記憶装置10のユーザ認証モジュール22は、現在のホスト装置30Aから受けた第2ユーザ認証情報と、システムエリア11a内の第1ユーザ認証情報とに基づいてユーザ認証を実行する。ここでは、ユーザ認証が成功するとする。
ユーザ認証モジュール22は、ユーザ認証の後、スタティックRAM25内の第3部分鍵と、第2ユーザ認証情報とを複合し、生成した暗号鍵をスタティックRAM25に書込む。
なお、ユーザ認証が失敗した場合には、ユーザ認証モジュール22の鍵破棄機能により、機器認証の失敗時と同様に誤った暗号鍵がスタティックRAM25に書き込まれることになる。
これにより、ステップST20のユーザ認証が完了する。
ユーザ認証の終了後、記憶装置10は、ユーザによるホスト装置30Aの操作に応じて、ステップST30〜ST50に移行する。ここでは、ステップST30の認証失敗時の設定動作を実行せず、ステップST40〜ST50を実行する場合を述べる。
ホスト装置30Aの入力モジュール33は、ユーザの操作に応じて、読出要求の入力を受け付ける。CPU34は、入力を受け付けた読出要求を記憶装置10に送信する。
記憶装置10の復号モジュール24は、現在のホスト装置30Aから受けた読出要求に基づいて、ユーザエリア11b内の暗号化データEg(Kg,D)をスタティックRAM25内の暗号鍵Kgに基づいて復号し、得られたデータDを現在のホスト装置30Aに出力する(ST40)。これにより、ステップST40が完了する。
なお、ステップST40のデータ読出処理においては、図6に示すように、暗号化データEg(Kg,D)を正しい暗号鍵Kgで復号する場合(ST41〜ST43)には、正しいデータDが出力されて正常動作が実現される。また、暗号化データEg(Kg,D)を誤った暗号鍵Kiで復号する場合(ST41,ST42,ST44)には、誤ったデータDiが出力されて、正しいデータDが破棄された状態となる。
次に、ホスト装置30Aの入力モジュール33は、ユーザの操作に応じて、例えばデータD1を含む書込要求の入力を受け付ける。CPU34は、入力を受け付けた書込要求を記憶装置10に送信する。
記憶装置10の暗号化モジュール23は、現在のホスト装置30Aから受けたデータD1を含む書込要求に従い、スタティックRAM25内の暗号鍵Kgに基づいて書込要求内のデータD1を暗号化し、得られた暗号化データEg(Kg,D1)をユーザエリア11bに書き込む(ST50)。これにより、ステップST50が完了する。
以下、記憶装置10は、ユーザによるホスト装置30Aの操作に応じて、ステップST40の読出処理と、ステップST50の書込処理が適宜、繰り返し実行される。
しかる後、記憶装置10は、ユーザの操作に応じて、電源がオフ状態にされる(ST60)。これにより、記憶装置10では、バッファメモリ19及びスタティックRAM25内のデータが消去される。このとき、スタティックRAM25内の暗号鍵も消去される。
上述したように本実施形態によれば、ホスト装置30A,30B,…を機器認証し、機器認証が失敗したときには内部情報G(第1部分鍵)の破棄によって暗号鍵を破棄する構成により、異なるシステムに持ち出された場合のデータ漏洩を防止することができる。
また、内部情報Gの破棄により暗号鍵Kgを破棄した後、記憶装置10を正規のホスト装置30Aに再接続したとしても、内部情報Gが無いので暗号鍵Kgを復元できず、正しいデータDを読み出すことができない。これにより、記憶装置10の盗難時に確実にデータDを破棄でき、データ漏洩を防止することができる。
また、ユーザ認証の失敗時に暗号鍵を破棄する構成により、装置盗難時にユーザのパスワードPが解析される前にデータDを破棄することができる。
さらに、電源オン時に暗号鍵をスタティックRAM25(揮発性メモリ)に格納することにより、電源オフ時に確実に暗号鍵を破棄することができる。
<第2の実施形態>
次に、第2の実施形態について前述した図1を参照しながら説明する。
第2の実施形態は、第1の実施形態における第1及び第2機器認証情報の具体例である。すなわち、第1機器認証情報は、図7に示すように、正規のホスト装置30Aの固有情報“AA”のハッシュ値h(AA)である。
第2機器認証情報は、図8に示すように、第2部分鍵としても用いられる現在のホスト装置30Aの固有情報“AA”である。第2部分鍵は、第2機器認証情報としても用いられる現在のホスト装置30Aの固有情報“AA”である。
これに伴い、記憶装置10の機器認証モジュール21は、現在のホスト装置30Aから受けた第2機器認証情報“AA”のハッシュ値h(AA)を算出し、このハッシュ値h(AA)と、システムエリア11a内の第1機器認証情報h(AA)とを照合して両者が不一致のときに、機器認証が失敗した旨を判定する機能をもっている。
次に、以上のように構成された記憶システムの動作を図9及び図10のフローチャートを用いて説明する。
いま、ステップST10の機器認証が開始されるとする。
ホスト装置30AのCPU34は、記憶装置10が接続されると、機器認証の規定の認証シーケンスに沿って、メモリ32A内の固有情報“AA”を記憶装置10に送信する。
記憶装置10の機器認証モジュール21は、新たに接続された現在のホスト装置30Aの固有情報“AA”を受信する(ST11)。なお、不正なホスト装置30Bが接続されていた場合、機器認証モジュール21は、固有情報“BB”を受信する。
機器認証モジュール21は、受信した固有情報“AA”のハッシュ値h(AA)を算出し、このハッシュ値h(AA)と、システムエリア11a内の固有情報“AA”のハッシュ値h(AA)とを照合し(ST12)、両者が一致したか否かを判定する(ST13)。
ステップST13の判定結果が否を示す場合、機器認証モジュール21は、システムエリア11a内に予め保持する他のハッシュ値があるか否かを判定し(ST14)、他のハッシュ値があれば、他のハッシュ値を用いて照合処理を再試行するように、ステップST12に戻る。このステップST14は、接続可能な正規のホスト装置30A,…が複数台あるときの処理であるので、正規のホスト装置30Aが1台のときには省略可能である。
また、ステップ14の判定結果が否を示す場合、機器認証モジュール21は、暗号鍵を破棄する(ST15)。具体的には、機器認証モジュール21は、図10に示すように、システムエリア11a内の正規の内部情報Gを破棄し(ST15−1)、乱数等の内部情報Iを新規作成する(ST15−2)。また、機器認証モジュール21は、システムエリア11a内の固有情報“AA”のハッシュ値を破棄し(ST15−3)、ステップST11で受信した固有情報“BB”のハッシュ値を作成する(ST15−4)。なお、ステップST15−1〜ST15−2において、第3部分鍵K3を構成する内部情報Gが破棄されて内部情報Iが新規作成されることにより、第3部分鍵K3が破棄されている。また、第3部分鍵K3が破棄されたことにより、第3部分鍵K3に基づく暗号鍵Kgが破棄されている。
一方、ステップST13の判定結果が一致を示す場合、機器認証モジュール21は、システムエリア11a内の内部情報Gを読み出す(ST16)。しかる後、機器認証モジュール21は、ステップST11で受信した固有情報“AA”と、ステップST16で読み出した内部情報Gとを複合し、生成した正しい第3部分鍵K3をスタティックRAM25に書き込む(ST17a)。
なお、ステップST15で第3部分鍵K3を破棄した場合には、機器認証モジュール21は、ステップST11で受信した固有情報“BB”と、ステップST15−2で作成した内部情報Iとを複合し、生成した誤った第3部分鍵K3iをスタティックRAM25に書き込む(ST17b)。
いずれにしても、第3部分鍵の書込により、ステップST10の機器認証が完了する。
以下、第1の実施形態と同様に、ステップST20〜ST60が実行される。
次に、第2の実施形態の動作中、正規のホスト装置30Aが接続された場合と、不正なホスト装置30Bが接続された場合とについて補足的に説明する。なお、始めに、一般的なパスワード認証の場合を簡単に述べる。
図11は一般的なパスワード認証のみを実行する記憶システムの動作を示す模式図である。このシステムにおける各装置1,3A,3Bの参照符号は、本実施形態の各装置10,30A,30Bの参照符号の1/10としている。
記憶装置1は、ユーザのパスワードP、暗号鍵K、暗号鍵KでデータDが暗号化されてなる暗号化データE(K,D)が保存されている。
この記憶装置1においては、正規のホスト装置3A及び不正なホスト装置3Bのいずれの装置3A,3Bからでも正しいパスワードPが送信されれば、暗号鍵Kに基づいて暗号化データE(K,D)を復号して、正しいデータDを出力可能となっている。
このため、アクセス権限をもつ悪意のユーザが、正規のホスト装置3Aから記憶装置1を取り出し、自宅のホスト装置3Bに接続して、機密情報等を含むデータDを正しく取得することが可能となってしまう。
このため、正規のホスト装置3Aを使用した場合のみ、記憶装置1から正しいデータDを読出可能であり、ホスト装置3Bを使用した場合にはデータDが破棄されることが望ましい。
図12は第2の実施形態における記憶装置10に正規のホスト装置30Aが接続された場合の動作を示す模式図であり、図13は第2の実施形態における記憶装置10に不正なホスト装置30Bが接続された場合の動作を示す模式図である。
正規のホスト装置30Aに記憶装置10が接続された状態で、図9に示す動作が実行された場合、ホスト装置30Aが送信した固有情報“AA”をハッシュ演算して得たハッシュ値h(AA)は、記憶装置10内に予め保持したハッシュ値h(AA)と一致する。ハッシュ値h(AA)が一致した場合、記憶装置10は、受信したホスト装置30Aの固有情報“AA”と内部情報Gとを複合し、第3部分鍵K3を生成する。また、記憶装置10は、この第3部分鍵K3と第2ユーザ認証情報とを複合し、生成した暗号鍵Kgを復号鍵に設定する。ホスト装置30AからデータDの読出要求を受けた場合、データDは設定された復号鍵Kgで正しく復号されて送信される。
記憶装置10が不正なホスト装置30Bのシステムへ持ち出された場合、ホスト装置30Bが送信した固有情報“BB”をハッシュ演算して得たハッシュ値h(BB)は、記憶装置10内に予め保持したハッシュ値h(AA)と一致しない。このため、記憶装置10は、内部情報Gと予め保持したハッシュ値h(AA)を破棄し、新たに内部情報Iを乱数生成等により再生成し、今度はホスト装置30Bの固有情報“BB”のハッシュ値を作成してシステムエリア11aに書き込む。このとき、暗号鍵Kgは破棄された状態となる。
ホスト装置30BからデータDの読出要求があった場合、記憶装置10は、ホスト装置30Bの固有情報“BB”と内部情報Iを複合し、生成した第3部分鍵K3iと第2ユーザ認証情報とを複合し、生成した暗号鍵Kiで暗号化データEg(Kg,D)を復号処理する。この復号処理では、誤った暗号鍵Kiを用いるため、正しいデータDを読み出すことが不可能となる。
また、ユーザは、暗号鍵Kgが既に破棄されているため、仮に記憶装置10をホスト装置30Aに再接続したとしても、正しいデータDを読み出すことができない。
上述したように本実施形態によれば、第1機器認証情報が正規のホスト装置30Aの固有情報“AA”のハッシュ値h(AA)であり、第2機器認証情報が第2部分鍵としても用いられる現在のホスト装置30Aの固有情報“AA”であるように、第1の実施形態を具体化した構成としても、第1の実施形態と同様の効果を得ることができる。
<第3の実施形態>
次に、第3の実施形態について前述した図1を参照しながら説明する。
第3の実施形態は、第1の実施形態における第1及び第2機器認証情報の他の具体例である。すなわち、第1機器認証情報は、図14に示すように、正規のホスト装置30Aの署名検証鍵Kveri-30Aである。
第2機器認証情報は、図15に示すように、現在のホスト装置30Aの署名生成鍵Ksig-30Aにより生成されたデジタル署名と当該デジタル署名の生成に用いた署名対象データである。なお、デジタル署名は、署名対象データから算出されたハッシュ値に対し、署名生成鍵Ksig-30Aに基づく署名処理が施されて生成される。これに伴い、ホスト装置30Aのメモリ32Aは、署名生成鍵Ksig-30Aを記憶している。
なお、署名生成鍵Ksig-30Aとしては、公開鍵ペアの秘密鍵(private key)が使用可能となっている。署名検証鍵Kveri-30Aとしては、公開鍵ペアの公開鍵(public key)が使用可能となっている。このため、署名生成鍵Ksig-30Aは秘密鍵(private key)と読み替えてもよく、署名検証鍵Kveri-30Aは公開鍵と読み替えてもよい。このことは、後述する記憶装置10の署名生成鍵Ksig-10及び署名検証鍵Kveri-10についても同様である。
また、記憶装置10の機器認証モジュール21は、第2機器認証情報内のデジタル署名を署名検証鍵Kveri-30Aに基づいて復号し、得られた復号データと、第2機器認証情報内の署名対象データから算出したハッシュ値とを照合して両者が不一致のときに、機器認証が失敗した旨を判定する機能をもっている。
次に、以上のように構成された記憶システムの動作を図16及び図17のフローチャートを用いて説明する。
いま、ステップST10の機器認証が開始されるとする。
ホスト装置30AのCPU34は、記憶装置10が接続されると、機器認証の規定の認証シーケンスに沿って、乱数等の署名対象データを生成し、この署名対象データのハッシュ値を算出する。続いて、CPU34は、メモリ32A内の署名生成鍵Ksig-30Aに基づいて、このハッシュ値に署名処理を施してデジタル署名を生成する。しかる後、CPU34は、この署名対象データ及びデジタル署名からなる署名付データを第2機器認証情報としてメモリ32Aに書き込むと共に、当該署名付データ(第2機器認証情報)を記憶装置10に送信する。
記憶装置10の機器認証モジュール21は、新たに接続された現在のホスト装置30Aの署名付データを受信する(ST11’)。なお、認証失敗時には、現在のホスト装置30Bから署名付データを受信したことになる。
機器認証モジュール21は、システムエリア11a内の署名検証鍵Kveri-30Aにより署名付データを検証する(ST12’)。具体的には、機器認証モジュール21は、受信した署名付データ内のデジタル署名を署名検証鍵Kveri-30Aに基づいて復号し、得られた復号データと、第2機器認証情報内の署名対象データから算出したハッシュ値とを照合して両者が一致することを検証する。
機器認証モジュール21は、検証結果が正当でなければ(ST13’;no)、システムエリア11a内に予め保持する他の署名検証鍵Kveriがあるか否かを判定し(ST14’)、他の署名検証鍵Kveriがあれば、他の署名検証鍵Kveriを用いて照合処理を再試行するように、ステップST12’に戻る。このステップST14’は、接続可能な正規のホスト装置30A,…が複数台あるときの処理であるので、正規のホスト装置30Aが1台のときには省略可能である。
また、ステップ14’の判定結果が否を示す場合、機器認証モジュール21は、第3部分鍵を破棄する(ST15’)。具体的には、機器認証モジュール21は、図17に示すように、システムエリア11a内の正規の内部情報Gを破棄し(ST15−1)、乱数等の内部情報Iを新規作成する(ST15−2)。また、機器認証モジュール21は、現在のホスト装置30Bから固有情報“BB”を受信する(ST15−4)。なお、前述同様に、ステップST15−1〜ST15−2により、第3部分鍵K3が破棄されるので、暗号鍵Kgが破棄される。
一方、ステップST12’の検証結果が正当であれば(ST13’;yes)、機器認証モジュール21は、現在のホスト装置30Aから固有情報“AA”を受信する(ST16’)。しかる後、機器認証モジュール21は、前述した通り、正しい第3部分鍵K3をスタティックRAM25に書き込む(ST17a)。
なお、ステップST15で第3部分鍵K3を破棄した場合には、機器認証モジュール21は、前述した通り、誤った第3部分鍵K3iをスタティックRAM25に書き込む(ST17b)。
いずれにしても、暗号鍵の書込により、ステップST10の機器認証が完了する。
以下、第1の実施形態と同様に、ステップST20〜ST60が実行される。
上述したように本実施形態によれば、第1機器認証情報が正規のホスト装置30Aの署名検証鍵Kveri-30Aであり、第2機器認証情報がホスト装置30Aのデジタル署名及び署名対象データであるように、第1の実施形態を具体化した構成としても、第1の実施形態と同様の効果を得ることができる。
また、本実施形態は、署名認証に限らず、チャレンジ&レスポンスによるワンタイム情報の送受信による認証を用いてもよい。この種の認証は、例えば次の[1]〜[3]のように実行してもよい。
[1]機器認証モジュール21は、乱数rを生成し、この乱数rに署名検証鍵Kveri-30A(ホスト装置30Aの公開鍵)で暗号化処理を施し、得られた値C(=r^Kveri-30A)をホスト装置30A(又は30B,…)に送信する(^は、ベキ乗を表す記号)。
[2]ホスト装置30A(又は30B,…)は、この値Cに署名生成鍵Ksig-30A(ホスト装置30Aの秘密鍵)で復号処理を施し、得られた値t=(C^Ksig-30A)を機器認証モジュール21に返信する。
[3]機器認証モジュール21は、生成した乱数rと、返信された値tとが一致したとき(r=tのとき)、機器認証を成功と判定する。
<第4の実施形態>
次に、第4の実施形態について前述した図1を参照しながら説明する。
第4の実施形態は、第1〜第3の各実施形態における機器認証の他の具体例である。
すなわち、記憶装置10の機器認証モジュール21は、前述した各機能に加え、現在のホスト装置30A(又は30B,…)が第2機器認証情報を送信するときの認証シーケンスが、規定の認証シーケンスと異なる旨を検出したときに、機器認証が失敗した旨を判定する機能をもっている。
次に、以上のように構成された記憶システムの動作を図18のフローチャートを用いて説明する。
いま、ステップST10の機器認証が開始されるとする。
ホスト装置30AのCPU34は、記憶装置10が接続されると、機器認証の規定の認証シーケンスに沿って、認証コマンドを送信した後、第2機器認証情報を記憶装置10に送信する。
記憶装置10の機器認証モジュール21は、新たに接続された現在のホスト装置30A(又は30B,…)から受けた最初のコマンドが認証コマンドであるか否かを判定する(ST1)。
ステップST1の判定の結果、否の場合には、機器認証モジュール21は、規定の認証シーケンスと異なる旨を検出し、機器認証が失敗した旨を判定してステップST15(又はST15’)に移行する。
ステップST1の判定の結果、最初のコマンドが認証コマンドである場合には、機器認証モジュール21は、ステップST2に移行して機器認証を実行する。ここで、ステップST2の機器認証は、各実施形態のステップST10(機器認証)において、第3部分鍵の破棄及び第3部分鍵の設定を除いた処理である。例えば、第2の実施形態の場合、図9に示したステップST11〜ST14,ST16が、図18に示したステップST2に該当する。第3の実施形態の場合、図16に示したステップST11’〜ST14’,ST16’が、図18に示したステップST2に該当する。
機器認証モジュール21は、ステップST2の機器認証が成功であればステップST17に移行し、機器認証が失敗であればステップST15(又はST15’)を介してステップST17に移行する。
いずれにしても、ステップST17における第3部分鍵の書込により、ステップST10の機器認証が完了する。
以下、第1〜第3の各実施形態と同様に、ステップST20〜ST60が実行される。
上述したように本実施形態によれば、機器認証モジュール21が、現在のホスト装置30A(又は30B,…)が第2機器認証情報を送信するときの認証シーケンスが、規定の認証シーケンスと異なる旨を検出したときに、機器認証が失敗した旨を判定するように、第1〜第3の各実施形態を具体化した構成としても、第1〜第3の各実施形態と同様の効果を得ることができる。
また、記憶装置10を使用可能なホスト装置が、記憶装置10の認証シーケンスと同じ認証シーケンスをもつホスト装置30Aに限定されることにより、記憶装置10の盗難時にデータDが破棄され、データ漏洩を防止することができる。
<第5の実施形態>
次に、第5の実施形態について前述した図1を参照しながら説明する。
第5の実施形態は、第1〜第4の各実施形態における機器認証の他の具体例である。
すなわち、記憶装置10のシステムエリア11aは、図19に示すように、前述した各情報に加え、第1部分鍵を破棄するか否かを示す可否情報を記憶する。
機器認証モジュール21は、前述した各機能に加え、可否情報を含む設定要求を正規のホスト装置30Aから受けると、当該可否情報をシステムエリア11aに設定する設定機能をもっている。なお「設定する」の用語は「書き込む」と読み替えてもよい。
また、機器認証モジュール21は、機器認証が失敗したとき、システムエリア11a内の可否情報に基づいて第1部分鍵(内部情報G)の破棄を阻止する破棄阻止機能をもっている。補足すると、可否情報が破棄の否と設定されている場合に、破棄を阻止する。
さらに、機器認証モジュール21は、第1部分鍵の破棄が阻止されたとき、前述した第3部分鍵書込機能、ユーザ認証モジュール22及び復号モジュール24を動作させず、機器認証のエラーを現在のホスト装置30A(又は30B,…)に出力するエラー出力機能をもっている。
一方、ホスト装置30Aの入力モジュール33は、前述した機能に加え、ユーザの操作に応じて、可否情報を含む設定要求の入力を受け付ける設定要求受付機能をもっている。
ホスト装置30AのCPU34は、前述した機能に加え、入力を受け付けた設定要求を記憶装置10に送信する設定要求送信機能をもっている。
次に、以上のように構成された記憶システムの動作を図20のフローチャートを用いて説明する。
始めに、正規のホスト装置30Aと正規のユーザによりステップST10’の機器認証とステップST20のユーザ認証に成功した後のステップST30の認証失敗時の動作設定について述べる。
ホスト装置30Aの入力モジュール33は、ユーザの操作に応じて、可否情報を含む設定要求の入力を受け付ける。ホスト装置30AのCPU34は、入力を受け付けた設定要求を記憶装置10に送信する。
記憶装置10の機器認証モジュール21は、可否情報を含む設定要求を正規のホスト装置30Aから受けると、当該可否情報をシステムエリア11aに設定する。
これにより、ステップST30が完了する。以後、適宜、ステップST40〜ST50を実行し、一旦、電源をオフして動作が終了する(ST60)。電源オフの後でも可否情報は消去されずに、システムエリア11aに記憶されている。
次に、記憶装置10は、ユーザにより、現在のホスト装置30Bに接続されて電源がオン状態にされたとする。これにより、記憶装置10は、ホスト装置30Bに対する機器認証を実行する(ST10’)。なお、現在のホスト装置30Bは、不正な装置であるとする。
ホスト装置30BのCPU34は、記憶装置10が接続されると、機器認証の規定の認証シーケンスに沿って、メモリ32B内の第2機器認証情報を記憶装置10に送信する。
記憶装置10の機器認証モジュール21は、新たに接続された現在のホスト装置30Bから受けた第2機器認証情報と、システムエリア11a内の第1機器認証情報とに基づいて機器認証を実行する。
しかしながら、不正なホスト装置30Bに対する機器認証は失敗する。機器認証が失敗した時点は、第2〜第4の各実施形態ではステップST15,ST15’の直前である。
機器認証が失敗したとき、記憶装置10の機器認証モジュール21は、システムエリア11a内の可否情報に基づいて第1部分鍵(内部情報G)の破棄を阻止する。
しかる後、機器認証モジュール21は、第1部分鍵の破棄が阻止されたとき、前述した第3部分鍵書込機能、ユーザ認証モジュール22及び復号モジュール24を動作させず、機器認証のエラーを現在のホスト装置30Bに出力する。
上述したように本実施形態によれば、可否情報により第1部分鍵の破棄の可否を設定できる構成により、破棄の可を設定した場合には第1〜第4の各実施形態の効果を得ることができ、破棄の否を設定した場合には暗号化データの破棄を阻止することができる。
<第6の実施形態>
次に、第6の実施形態について前述した図1を参照しながら説明する。
第6の実施形態は、第1〜第4の各実施形態における機器認証の他の具体例である。換言すると、第6の実施形態は、第5の実施形態の可否情報に代えて、許容接続回数を用いた構成である。
すなわち、記憶装置10のシステムエリア11aは、図21に示すように、前述した各情報に加え、第1部分鍵を破棄するまでに許容される新たな接続の回数を示す許容接続回数(リトライ可能回数)と、機器認証が失敗した回数を示すエラー回数とを記憶する。
機器認証モジュール21は、前述した各機能に加え、許容接続回数を含む設定要求を正規のホスト装置30Aから受けると、当該許容接続回数をシステムエリア11aに設定する設定機能をもっている。
また、機器認証モジュール21は、機器認証が失敗したとき、システムエリア11a内のエラー回数を増加させるように更新するエラー回数更新機能をもっている。
さらに、機器認証モジュール21は、更新後のエラー回数とシステムエリア11a内の許容接続回数に基づいて第1部分鍵(内部情報G)の破棄を阻止する破棄阻止機能をもっている。
また、機器認証モジュール21は、第1部分鍵の破棄が阻止されたとき、前述した第3部分鍵書込機能、ユーザ認証モジュール22及び復号モジュール24を動作させず、機器認証のエラーを現在のホスト装置30A(又は30B,…)に出力するエラー出力機能をもっている。
一方、ホスト装置30Aの入力モジュール33は、前述した機能に加え、ユーザの操作に応じて、可否情報を含む設定要求の入力を受け付ける設定要求受付機能をもっている。
ホスト装置30AのCPU34は、前述した機能に加え、入力を受け付けた設定要求を記憶装置10に送信する設定要求送信機能をもっている。
次に、以上のように構成された記憶システムの動作を図22のフローチャートを用いて説明する。
始めに、許容接続回数は、第5の実施形態と同様に、ステップST30の認証失敗時の動作設定において、記憶装置10のシステムエリア11aに設定される。以後、同様に、一旦、電源をオフして動作が終了する(ST60)。電源オフの後でも許容接続回数は消去されずに、システムエリア11aに記憶されている。
次に、記憶装置10は、ユーザにより、現在のホスト装置30Bに接続されて電源がオン状態にされたとする。これにより、記憶装置10は、ホスト装置30Bに対する機器認証を実行する(ST10”)。なお、現在のホスト装置30Bは、不正な装置であるとする。
このため、第5の実施形態と同様に、不正なホスト装置30Bに対する機器認証は失敗する。機器認証が失敗した時点は、第2〜第4の各実施形態ではステップST15,ST15’の直前である。
機器認証が失敗したとき、記憶装置10の機器認証モジュール21は、システムエリア11a内のエラー回数を増加させるように更新し、更新後のエラー回数と許容接続回数に基づいて第1部分鍵(内部情報G)の破棄を阻止する。
しかる後、機器認証モジュール21は、第1部分鍵の破棄が阻止されたとき、前述した第3部分鍵書込機能、ユーザ認証モジュール22及び復号モジュール24を動作させず、機器認証のエラーを現在のホスト装置30Bに出力する。
上述したように本実施形態によれば、許容接続回数により第1部分鍵の破棄の可否を設定できる構成により、許容接続回数に至るまでは暗号化データの破棄を阻止できると共に、許容接続回数に至った後は第1〜第4の各実施形態の効果を得ることができる。
<第7の実施形態>
次に、第7の実施形態について前述した図1を参照しながら説明する。
第7の実施形態は、第1〜第6の各実施形態において、第1部分鍵を破棄したときの破棄ログ情報を記憶するものである。
具体的には、記憶装置10のシステムエリア11aは、図23及び図24に示すように、前述した各情報に加え、第1部分鍵が破棄された日時を示す破棄日時情報と、機器認証の失敗を示す破棄理由情報とを含む破棄ログ情報Lgを記憶する。なお、破棄理由情報は、機器認証の失敗に限らず、正規の破棄コマンドで破棄された場合にはその旨を示してもよい。
機器認証モジュール21は、前述した各機能に加え、第1部分鍵が破棄されたとき、破棄ログ情報Lgを作成してシステムエリア11aに書き込む破棄ログ書込機能をもっている。この破棄ログ情報Lgは、正規のホスト装置30Aからの読出要求により、システムエリア11aから読出可能となっている。
以上のような構成によれば、前述した通り、機器認証が失敗し、内部情報G(第1部分鍵)が破棄されたとする。なお、破棄された時点は、例えば、第2〜第4の各実施形態ではステップST15,ST15’の直後である。
このとき、機器認証モジュール21は、破棄された日時を示す破棄日時情報と、機器認証の失敗を示す破棄理由情報とを含む破棄ログ情報Lgを作成してシステムエリア11aに書き込む。これにより、例えば記憶装置10が盗難先から回収された後、正規のホスト装置30Aからの読出要求により、破棄ログ情報Lgがシステムエリア11aから読み出される。
上述したように本実施形態によれば、内部情報G(第1部分鍵)が破棄されたとき、破棄ログ情報Lgを記憶する構成により、第1〜第6の各実施形態の効果に加え、正規のユーザが破棄日時と破棄理由とを知ることができる。
<第8の実施形態>
次に、第8の実施形態について前述した図1を参照しながら説明する。
第8の実施形態は、第7の実施形態の破棄ログ情報Lgにデジタル署名を付与した破棄証明書を記憶するものである。
具体的には、記憶装置10のシステムエリア11aは、図25に示すように、前述した各情報に加え、自装置の署名生成鍵Ksig-10を予め記憶する。ここで、自装置の署名生成鍵Ksig-10としては、記憶装置10毎(製造番号又は型番毎)の署名生成鍵に限らず、例えば、記憶装置10のメーカ毎の署名生成鍵、又は記憶装置10の販売元(ベンダ)毎の署名生成鍵が使用可能となっている。また、システムエリア11aは、図25及び図26に示すように、破棄ログ情報Lg及びデジタル署名からなる破棄証明書Certを記憶する。
機器認証モジュール21は、前述した各機能に加え、システムエリア11a内の署名生成鍵Ksig-10に基づいてシステムエリア11a内の破棄ログ情報Lgに署名処理を施して、デジタル署名Sig(Ksig-10,Lg)を生成する署名生成機能をもっている。
また、機器認証モジュール21は、破棄ログ情報Lg及びデジタル署名Sig(Ksig-10,Lg)からなる破棄証明書Certを作成し、この破棄証明書Certをシステムエリア11aに書込む破棄証明書作成機能を更にもっている。
この破棄ログ証明書Certは、前述同様に、正規のホスト装置30Aからの読出要求により、システムエリア11aから読出可能となっている。
一方、ホスト装置30Aのメモリ32Aは、図27に示すように、前述した各情報に加え、記憶装置10の署名検証鍵Kveri-10を予め記憶している。
また、ホスト装置30AのCPU34は、前述した機能に加え、読出要求により記憶装置10から読み出した破棄ログ証明書Certをメモリ32A内の署名検証鍵Kveri-10に基づいて検証する機能をもっている。
以上のような構成によれば、前述した第7の実施形態で破棄ログ情報Lgがシステムエリア11aに書き込まれたとき、機器認証モジュール21は、システムエリア11a内の署名生成鍵Ksig-10に基づいてシステムエリア11a内の破棄ログ情報Lgに署名処理を施して、デジタル署名Sig(Ksig-10,Lg)を生成する。
また、機器認証モジュール21は、破棄ログ情報Lg及びデジタル署名Sig(Ksig-10,Lg)からなる破棄証明書Certを作成し、この破棄証明書Certをシステムエリア11aに書込む。これにより、記憶装置10が盗難先から回収された後、正規のホスト装置30Aからの読出要求により、破棄証明書Certがシステムエリア11aから読み出される。
正規のホスト装置30AのCPU34は、読み出した破棄ログ証明書Certをメモリ32A内の署名検証鍵Kveri-10に基づいて検証し、検証結果が正当のとき、破棄証明書Certを出力モジュール35に出力する。
上述したように本実施形態によれば、破棄ログ情報Lgにデジタル署名を付加した破棄証明書Certを記憶する構成により、第7の実施形態の効果に加え、破棄ログ情報Lgの正当性を検証することができる。
<第9の実施形態>
次に、第9の実施形態について前述した図1を参照しながら説明する。
第9の実施形態は、第1〜第8の各実施形態におけるユーザ認証の他の具体例である。
すなわち、記憶装置10のユーザ認証モジュール22は、前述した各機能に加え、現在のホスト装置30A(又は30B,…)が第2ユーザ認証情報を送信するときの認証シーケンスが、規定の認証シーケンスと異なる旨を検出したときに、ユーザ認証が失敗した旨を判定する機能をもっている。例えば、ユーザ認証モジュール22は、新たに接続された現在のホスト装置30A(又は30B,…)から受けた最初のコマンドが認証コマンドであるか否かを判定し、否の場合には、規定の認証シーケンスと異なる旨を検出する。
以上のような構成によれば、ユーザ認証モジュール22が、現在のホスト装置30A(又は30B,…)の認証シーケンスが、規定の認証シーケンスと異なる場合にユーザ認証の失敗を判定する構成により、第1〜第8の各実施形態の効果に加え、機器認証を成功させた不正なホスト装置30Bであっても、ユーザ認証の認証シーケンスの違いから不正を検出することができる。
<第10の実施形態>
次に、第10の実施形態について前述した図1を参照しながら説明する。
第10の実施形態は、第1〜第9の各実施形態において、ユーザ認証失敗時の破棄の可否を設定するものである。
具体的には、記憶装置10のシステムエリア11aは、前述した各情報に加え、第1部分鍵及び第3部分鍵を破棄するか否かを示す可否情報を記憶する。
ユーザ認証モジュール22は、前述した各機能に加え、可否情報を含む設定要求を正規のホスト装置30Aから受けると、当該可否情報をシステムエリア11aに設定する設定機能をもっている。
また、ユーザ認証モジュール22は、ユーザ認証が失敗したとき、システムエリア11a内の可否情報に基づいて第1部分鍵及び第3部分鍵の破棄を阻止する破棄阻止機能をもっている。
さらに、ユーザ認証モジュール22は、第1部分鍵及び第3部分鍵の破棄が阻止されたとき、復号モジュール24を動作させず、ユーザ認証のエラーを現在のホスト装置30A(又は30B,…)に出力するエラー出力機能をもっている。
一方、ホスト装置30Aの入力モジュール33は、前述した機能に加え、ユーザの操作に応じて、可否情報を含む設定要求の入力を受け付ける設定要求受付機能をもっている。
ホスト装置30AのCPU34は、前述した機能に加え、入力を受け付けた設定要求を記憶装置10に送信する設定要求送信機能をもっている。
次に、以上のように構成された記憶システムの動作を図28のフローチャートを用いて説明する。
始めに、破棄の否を示す可否情報は、第5の実施形態と同様に、ステップST30の認証失敗時の動作設定において、記憶装置10のシステムエリア11aに設定される。以後、同様に、一旦、電源をオフして動作が終了する(ST60)。電源オフの後でも可否情報は消去されずに、システムエリア11aに記憶されている。
次に、記憶装置10は、不正なユーザにより、正規のホスト装置30Aに接続されて電源がオン状態にされたとする。これにより、記憶装置10は、ホスト装置30Aに対する機器認証を実行する(ST10又はST10’)。なお、正規のホスト装置30Aなので、機器認証は成功する。
続いて、記憶装置10は、ホスト装置30Aに対するユーザ認証を実行する(ST20’)。
具体的には、ホスト装置30Aの入力モジュール33は、不正なユーザの操作に応じて、不正な第2ユーザ認証情報の入力を受け付ける。CPU34は、入力を受け付けた不正な第2ユーザ認証情報を記憶装置10に送信する。
記憶装置10のユーザ認証モジュール22は、現在のホスト装置30Aから受けた不正な第2ユーザ認証情報と、システムエリア11a内の第1ユーザ認証情報とに基づいてユーザ認証を実行する。ここでは、不正なユーザに対するユーザ認証は失敗する。
ユーザ認証が失敗したとき、ユーザ認証モジュール22は、システムエリア11a内の可否情報に基づいて、システムエリア11a内の内部情報G(第1部分鍵)及びスタティックRAM25内の第3部分鍵K3の破棄を阻止する。
また、ユーザ認証モジュール22は、破棄を阻止したとき、復号モジュール24を動作させず、ユーザ認証のエラーを現在のホスト装置30Aに出力する。
上述したように本実施形態によれば、可否情報により第1部分鍵及び暗号鍵の破棄の可否を設定できる構成により、破棄の可を設定した場合には第1〜第9の各実施形態の効果を得ることができ、破棄の否を設定した場合には暗号化データの破棄を阻止することができる。
<第11の実施形態>
次に、第11の実施形態について前述した図1を参照しながら説明する。
第11の実施形態は、第9の実施形態において、ユーザ認証失敗時の接続許容回数(リトライ可能回数)を設定するものである。換言すると、第11の実施形態は、第10の実施形態の可否情報に代えて、許容接続回数を用いた構成である。
すなわち、記憶装置10のシステムエリア11aは、前述した各情報に加え、第1部分鍵及び第3部分鍵を破棄するまでに許容される新たな接続の回数を示す許容接続回数と、ユーザ認証が失敗した回数を示すエラー回数とを記憶する。
ユーザ認証モジュール22は、前述した各機能に加え、許容接続回数を含む設定要求を正規のホスト装置30Aから受けると、当該許容接続回数をシステムエリア11aに設定する設定機能をもっている。
また、ユーザ認証モジュール22は、ユーザ認証が失敗したとき、システムエリア11a内のエラー回数を増加させるように更新するエラー回数更新機能をもっている。
さらに、ユーザ認証モジュール22は、更新後のエラー回数とシステムエリア11a内の許容接続回数に基づいて第1部分鍵(内部情報G)及び第3部分鍵の破棄を阻止する破棄阻止機能をもっている。
また、ユーザ認証モジュール22は、第1部分鍵及び第3部分鍵の破棄が阻止されたとき、復号モジュール24を動作させず、ユーザ認証のエラーを現在のホスト装置30A(又は30B,…)に出力するエラー出力機能をもっている。
一方、ホスト装置30Aの入力モジュール33は、前述した機能に加え、ユーザの操作に応じて、可否情報を含む設定要求の入力を受け付ける設定要求受付機能をもっている。
ホスト装置30AのCPU34は、前述した機能に加え、入力を受け付けた設定要求を記憶装置10に送信する設定要求送信機能をもっている。
以上のような構成によれば、ユーザ認証が失敗した場合に、許容接続回数により第1部分鍵及び第3部分鍵の破棄の可否を設定できる構成により、許容接続回数に至るまでは暗号化データの破棄を阻止できると共に、許容接続回数に至った後は第9の実施形態の効果を得ることができる。
<第12の実施形態>
次に、第12の実施形態について前述した図1を参照しながら説明する。
第12の実施形態は、第1〜第11の各実施形態において、ユーザ認証モジュール22が第1部分鍵及び第3部分鍵を破棄したときの破棄ログ情報をシステムエリア11aに記憶するものである。
ここで、破棄ログ情報Lgは、前述同様に、第1部分鍵及び第3部分鍵が破棄された日時を示す破棄日時情報と、ユーザ認証の失敗を示す破棄理由情報とを含んでいる。なお、破棄理由情報は、ユーザ認証の失敗に限らず、正規の破棄コマンドで破棄された場合にはその旨を示してもよい。
ユーザ認証モジュール22は、前述した各機能に加え、第1部分鍵及び第3部分鍵が破棄されたとき、破棄ログ情報Lgを作成してシステムエリア11aに書き込む破棄ログ書込機能をもっている。この破棄ログ情報Lgは、正規のホスト装置30Aからの読出要求により、システムエリア11aから読出可能となっている。
以上のような構成によれば、ユーザ認証が失敗し、内部情報G(第1部分鍵)及び第3部分鍵K3が破棄されたとき、ユーザ認証モジュール22は、破棄された日時を示す破棄日時情報と、ユーザ認証の失敗を示す破棄理由情報とを含む破棄ログ情報Lgを作成してシステムエリア11aに書き込む。これにより、例えば記憶装置10が盗難先から回収された後、正規のホスト装置30Aからの読出要求により、破棄ログ情報Lgがシステムエリア11aから読み出される。
上述したように本実施形態によれば、内部情報G(第1部分鍵)及び第3部分鍵K3が破棄されたとき、破棄ログ情報Lgを記憶する構成により、第1〜第11の各実施形態の効果に加え、正規のユーザが破棄日時と破棄理由とを知ることができる。
<第13の実施形態>
次に、第13の実施形態について前述した図1を参照しながら説明する。
第13の実施形態は、第12の実施形態の破棄ログ情報Lgにデジタル署名を付与した破棄証明書を記憶するものである。
具体的には第8の実施形態と同様に、記憶装置10のシステムエリア11aは、図25に示したように、前述した各情報に加え、自装置の署名生成鍵Ksig-10を予め記憶する。また、システムエリア11aは、図25及び図26に示したように、破棄ログ情報Lg及びデジタル署名からなる破棄証明書Certを記憶する。
ユーザ認証モジュール22は、前述した各機能に加え、システムエリア11a内の署名生成鍵Ksig-10に基づいてシステムエリア11a内の破棄ログ情報Lgに署名処理を施して、デジタル署名Sig(Ksig-10,Lg)を生成する署名生成機能をもっている。
また、ユーザ認証モジュール22は、破棄ログ情報Lg及びデジタル署名Sig(Ksig-10,Lg)からなる破棄証明書Certを作成し、この破棄証明書Certをシステムエリア11aに書込む破棄証明書作成機能を更にもっている。
この破棄ログ証明書Certは、前述同様に、正規のホスト装置30Aからの読出要求により、システムエリア11aから読出可能となっている。
一方、ホスト装置30Aの構成は、第8の実施形態と同様である。
以上のような構成によれば、前述した第12の実施形態で破棄ログ情報Lgがシステムエリア11aに書き込まれたとき、ユーザ認証モジュール22は、システムエリア11a内の署名生成鍵Ksig-10に基づいてシステムエリア11a内の破棄ログ情報Lgに署名処理を施して、デジタル署名Sig(Ksig-10,Lg)を生成する。
また、ユーザ認証モジュール21は、破棄ログ情報Lg及びデジタル署名Sig(Ksig-10,Lg)からなる破棄証明書Certを作成し、この破棄証明書Certをシステムエリア11aに書込む。これにより、記憶装置10が盗難先から回収された後、正規のホスト装置30Aからの読出要求により、破棄証明書Certがシステムエリア11aから読み出される。
正規のホスト装置30AのCPU34は、読み出した破棄ログ証明書Certをメモリ32A内の署名検証鍵Kveri-10に基づいて検証し、検証結果が正当のとき、破棄証明書Certを出力モジュール35に出力する。
上述したように本実施形態によれば、ユーザ認証モジュール22が破棄ログ情報Lgにデジタル署名を付加した破棄証明書Certをシステムエリア11aに記憶する構成により、第12の実施形態の効果に加え、破棄ログ情報Lgの正当性を検証することができる。
以上説明した少なくとも一つの実施形態によれば、接続されたホスト装置30A(又は30B,…)の機器認証を実行し、機器認証が失敗したとき、暗号鍵の一部である第1部分鍵を破棄する機器認証モジュール21を記憶装置10が備えた構成により、使用可能なシステム環境とは異なる環境からアクセスされた場合には、ユーザのアクセス権の有無によらず、記憶しているデータを無効にすることができる。
<各実施形態の変形例>
第1〜第13の各実施形態においては、記憶装置10内の内部情報G(第1部分鍵)と、ホスト装置30Aから送信される固有情報“AA”(第2部分鍵)とを複合し、生成した第3部分鍵に第2ユーザ認証情報を複合して暗号鍵を作成し、この暗号鍵をスタティックRAM25(揮発性メモリ)に記憶させている。
これに対し、第1〜第13の各実施形態は、例えば図29及び図30に示すように、システムエリア11a内の第1部分鍵及びメモリ32A内の第2部分鍵を省略する一方、メモリ32A内に暗号鍵Kgを予め保持し、機器認証が成功したとき、ホスト装置30Aから送信した暗号鍵Kgを機器認証モジュール21がスタティックRAM25に書き込むように変形してもよい。
ここで、ホスト装置30Aが暗号鍵を送信するタイミングは、機器認証が成功した後(ST13;yesの後)から暗号鍵を用いる最初のステップST40又はST50の前までの任意の時点でよく、例えば、第3部分鍵を設定していたステップST17の直前とすればよい。また、第3部分鍵を破棄していたステップST15,ST15’は、機器認証が失敗したホスト装置30Bから誤った暗号鍵を受信して破棄し、乱数等の誤った暗号鍵を生成するステップに変形すればよい。機器認証が失敗した場合に、ステップST17bでは、前述同様に、誤った暗号鍵をスタティックRAM25に書き込む。
なお、図29及び図30は第1の実施形態の変形例に対応している。図示しないが、第2〜第13の各実施形態の変形例においても、システムエリア11a内の第1部分鍵及びメモリ32A内の第2部分鍵を省略する一方、メモリ32A内に暗号鍵Kgを予め保持する点は同じである。
以下、順に説明する。
<第1の実施形態の変形例>
記憶装置10のシステムエリア11aは、図29に示したように、前述した第1機器認証情報及び第1ユーザ認証情報を予め記憶する。
機器認証モジュール21は、新たに接続された現在のホスト装置30A(又は30B,…)から受けた第2機器認証情報と、システムエリア11a内の第1機器認証情報とに基づいて機器認証を実行する機器認証機能をもっている。
また、機器認証モジュール21は、この機器認証が成功したとき、現在のホスト装置30Aから受けた暗号鍵KgをスタティックRAM25(揮発性メモリ)に書込む第1の暗号鍵書込機能をもっている。
また、機器認証モジュール21は、この機器認証が失敗したとき、現在のホスト装置30B,…から受けた暗号鍵を破棄し、この暗号鍵とは異なる暗号鍵をスタティックRAM25に書込む第2の暗号鍵書込機能をもっている。
ユーザ認証モジュール22は、機器認証モジュール21による暗号鍵の書込後、現在のホスト装置30A(又は30B,…)から受けた第2ユーザ認証情報と、システムエリア11a内の第1ユーザ認証情報とに基づいてユーザ認証を実行するユーザ認証機能をもっている。
これに加え、ユーザ認証モジュール22は、ユーザ認証が規定回数だけ失敗したとき、スタティックRAM25内の暗号鍵Kgを破棄する鍵破棄機能をもっていてもよい。また鍵破棄機能に代えて、ユーザ認証モジュール22は、ユーザ認証が規定回数だけ失敗したとき、暗号化モジュール23及び復号モジュール24を動作させず、ユーザ認証のエラーを現在のホスト装置30A(又は30B,…)に出力するエラー出力機能をもっていてもよい。
暗号化モジュール23及び復号モジュール24は、第1の実施形態と同様である。
スタティックRAM25は、各モジュール21〜24から読出/書込可能な揮発性メモリであり、機器モジュール21から暗号鍵が書き込まれる。暗号鍵は、記憶装置10の電源オフ時にスタティックRAM25から消去される。なお、書込時から電源オフ時までの暗号鍵の記憶は、スタティックRAM25に代えて、バッファメモリ19が実行してもよい。
一方、ホスト装置30Aのメモリ32Aは、図30に示したように、第2部分鍵に代えて、暗号鍵Kgが記憶されている。ここで、暗号鍵Kgは、記憶装置10のユーザエリア11bに記憶された暗号化データEg(Kg,D)の作成に用いられた暗号鍵Kgである。この暗号鍵Kgに基づき、暗号化データEg(Kg,D)を復号して、正しいデータDを得ることが可能である。
なお、メモリ32A内の第2機器認証情報、ユーザ認証プログラム及びアプリケーションプログラムは、前述同様である。
メモリ32A内の機器認証プログラムは、前述同様のものに加え、ホスト装置30Aを、機器認証モジュール21により実行される機器認証の規定の認証シーケンスに沿って、メモリ32A内の暗号鍵を記憶装置10に送信する暗号鍵送信手段としても動作させるものである。
入力モジュール33、CPU34及び出力モジュール35は、前述同様である。
以上のように、機器認証が成功したとき、ホスト装置30Aから送信した暗号鍵Kgを機器認証モジュール21がスタティックRAM25に書き込む構成としても、機器認証が失敗したときには、前述同様に暗号鍵を破棄するので、第1の実施形態と同様の効果を得ることができる。
<第2の実施形態の変形例>
第2の実施形態の変形例は、前述した説明に伴い、図31及び図32に示すように、ステップST15”〜ST17”が変形されている。
ステップST15”においては、機器認証モジュール21は、現在のホスト装置30Bから受信した暗号鍵を破棄し(ST15−5)、乱数等により、誤った暗号鍵を作成する(ST15−6)。
一方、ステップST13の判定結果が一致を示す場合、機器認証モジュール21は、現在のホスト装置30Aから暗号鍵Kgを受信し(ST16”)、この暗号鍵KgをスタティックRAM25に書き込む(ST17a”)。
なお、ステップST15”で暗号鍵を破棄した場合には、機器認証モジュール21は、ステップST15−6で作成した誤った暗号鍵をスタティックRAM25に書き込む(ST17b”)。
以上のように、ホスト装置30A(又は30B,…)から暗号鍵を受信する構成としても、機器認証が失敗したときには、前述同様に暗号鍵を破棄するので、第2の実施形態と同様の効果を得ることができる。
<第3の実施形態の変形例>
第3の実施形態の変形例は、図示しないが、前述したステップ15’,ST16’及びST17が、第2の実施形態の変形例と同様に、ステップST15”,ST16”及びST17”に示すように変形されている。
以上のように、ホスト装置30A(又は30B,…)から暗号鍵を受信する構成としても、機器認証が失敗したときには、前述同様に暗号鍵を破棄するので、第3の実施形態と同様の効果を得ることができる。
<第4の実施形態の変形例>
第4の実施形態の変形例は、図示しないが、第1〜第3の各実施形態の変形例と同様に、ステップST15”,ST16”及びST17”に示すように変形されている。
以上のように、ホスト装置30A(又は30B,…)から暗号鍵を受信する構成としても、機器認証が失敗したときには、前述同様に暗号鍵を破棄するので、第4の実施形態と同様の効果を得ることができる。
<第5の実施形態の変形例>
第5の実施形態の変形例においては、前述した通り、システムエリア11a内の第1部分鍵及びメモリ32A内の第2部分鍵を省略する一方、メモリ32A内に暗号鍵Kgを予め保持する。
これに伴い、第4の実施形態の変形例においては、第1部分鍵を破棄するか否かを示す可否情報に代えて、暗号鍵を破棄するか否かを示す可否情報がシステムエリア11aに記憶される。
また、機器認証モジュール21は、前述した各機能に加え、可否情報を含む設定要求を正規のホスト装置30Aから受けると、当該可否情報をシステムエリア11aに設定する設定機能をもっている。
また、機器認証モジュール21は、機器認証が失敗したとき、システムエリア11a内の可否情報に基づいて暗号鍵の破棄を阻止する破棄阻止機能をもっている。補足すると、可否情報が破棄の否と設定されている場合に、破棄を阻止する。
さらに、機器認証モジュール21は、暗号鍵の破棄が阻止されたとき、前述した暗号鍵書込機能、ユーザ認証モジュール22及び復号モジュール24を動作させず、機器認証のエラーを現在のホスト装置30B,…に出力するエラー出力機能をもっている。
ホスト装置30Aの入力モジュール33及びCPU34は、第5の実施形態と同様である。
以上のように、可否情報により暗号鍵の破棄の可否を設定できる構成としても、第5の実施形態と同様の効果を得ることができる。
<第6の実施形態の変形例>
第6の実施形態の変形例においては、第1部分鍵を破棄するまでに許容される新たな接続の回数を示す許容接続回数(リトライ可能回数)に代えて、暗号鍵を破棄するまでに許容される新たな接続の回数を示す許容接続回数(リトライ可能回数)がシステムエリア11aに記憶される。
機器モジュール21の設定機能及びエラー回数更新機能は、前述同様である。
機器認証モジュール21は、更新後のエラー回数とシステムエリア11a内の許容接続回数に基づいて暗号鍵の破棄を阻止する破棄阻止機能をもっている。
また、機器認証モジュール21は、暗号鍵の破棄が阻止されたとき、前述した暗号鍵書込機能、ユーザ認証モジュール22及び復号モジュール24を動作させず、機器認証のエラーを現在のホスト装置30A(又は30B,…)に出力するエラー出力機能をもっている。
ホスト装置30Aの構成は、第6の実施形態と同様である。
以上のように、許容接続回数により暗号鍵の破棄の可否を設定できる構成としても、第6の実施形態と同様の効果を得ることができる。
<第7の実施形態の変形例>
第7の実施形態の変形例においては、第1部分鍵を破棄したときの破棄ログ情報に代えて、暗号鍵を破棄したときの破棄ログ情報がシステムエリア11aに記憶される。
破棄ログ情報Lgは、暗号鍵が破棄された日時を示す破棄日時情報と、機器認証の失敗を示す破棄理由情報とを含んでいる。
機器認証モジュール21は、前述した各機能に加え、暗号鍵が破棄されたとき、破棄ログ情報Lgを作成してシステムエリア11aに書き込む破棄ログ書込機能をもっている。この破棄ログ情報Lgは、正規のホスト装置30Aからの読出要求により、システムエリア11aから読出可能となっている。
以上のように、暗号鍵が破棄されたとき、破棄ログ情報Lgを記憶する構成としても、第7の実施形態と同様の効果を得ることができる。
<第8の実施形態の変形例>
第8の実施形態の変形例は、暗号鍵が破棄されたとき、破棄証明書Certを記憶する構成となり、第8の実施形態と同様の効果を得ることができる。
<第9の実施形態の変形例>
第9の実施形態の変形例は、ユーザ認証モジュール22が、規定の認証シーケンスの違いからユーザ認証の失敗を判定したとき、鍵破棄機能により暗号鍵を破棄するので、第9の実施形態と同様の効果を得ることができる。
<第10の実施形態の変形例>
第10の実施形態の変形例においては、第1部分鍵及び第3部分鍵を破棄するか否かを示す可否情報に代えて、暗号鍵を破棄するか否かを示す可否情報がシステムエリア11aに記憶される。
ユーザ認証モジュール22は、前述した各機能に加え、可否情報を含む設定要求を正規のホスト装置30Aから受けると、当該可否情報をシステムエリア11aに設定する設定機能をもっている。
また、ユーザ認証モジュール22は、ユーザ認証が失敗したとき、システムエリア11a内の可否情報に基づいて暗号鍵の破棄を阻止する破棄阻止機能をもっている。補足すると、可否情報が破棄の否と設定されている場合に、破棄を阻止する。
さらに、ユーザ認証モジュール22は、暗号鍵の破棄が阻止されたとき、復号モジュール24を動作させず、ユーザ認証のエラーを現在のホスト装置30A(又は30B,…)に出力するエラー出力機能をもっている。
ホスト装置30Aの入力モジュール33及びCPU34は、第10の実施形態と同様である。
以上のように、可否情報により暗号鍵の破棄の可否を設定できる構成としても、第10の実施形態と同様の効果を得ることができる。
<第11の実施形態の変形例>
第11の実施形態の変形例においては、第1部分鍵及び第3部分鍵を破棄するまでに許容される新たな接続の回数を示す許容接続回数(リトライ可能回数)に代えて、暗号鍵を破棄するまでに許容される新たな接続の回数を示す許容接続回数(リトライ可能回数)がシステムエリア11aに記憶される。
ユーザモジュール22の設定機能及びエラー回数更新機能は、前述同様である。
ユーザ認証モジュール22は、更新後のエラー回数とシステムエリア11a内の許容接続回数に基づいて暗号鍵の破棄を阻止する破棄阻止機能をもっている。
また、ユーザ認証モジュール22は、暗号鍵の破棄が阻止されたとき、復号モジュール24を動作させず、機器認証のエラーを現在のホスト装置30A(又は30B,…)に出力するエラー出力機能をもっている。
ホスト装置30Aの構成は、第11の実施形態と同様である。
以上のように、許容接続回数により暗号鍵の破棄の可否を設定できる構成としても、第11の実施形態と同様の効果を得ることができる。
<第12の実施形態の変形例>
第12の実施形態の変形例においては、第1部分鍵及び第3部分鍵を破棄したときの破棄ログ情報に代えて、暗号鍵を破棄したときの破棄ログ情報がシステムエリア11aに記憶される。
破棄ログ情報Lgは、暗号鍵が破棄された日時を示す破棄日時情報と、ユーザ認証の失敗を示す破棄理由情報とを含んでいる。
ユーザ認証モジュール22は、前述した各機能に加え、暗号鍵が破棄されたとき、破棄ログ情報Lgを作成してシステムエリア11aに書き込む破棄ログ書込機能をもっている。この破棄ログ情報Lgは、正規のホスト装置30Aからの読出要求により、システムエリア11aから読出可能となっている。
以上のように、暗号鍵Kgが破棄されたとき、破棄ログ情報Lgを記憶する構成としても、第12の実施形態と同様の効果を得ることができる。
<第13の実施形態の変形例>
第13の実施形態の変形例は、暗号鍵が破棄されたとき、破棄証明書Certを記憶する構成となり、第13の実施形態と同様の効果を得ることができる。
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。