(57)【特許請求の範囲】
【請求項１】
ユーザデータを不揮発に記憶する不揮発性半導体メモリを有し、任意のホスト装置に着脱自在に接続可能な記憶装置であって、
前記任意のホスト装置のうち、接続権限をもつ正規のホスト装置を機器認証するための第１機器認証情報、及び前記正規のホスト装置を使用する正規のユーザを認証する第１ユーザ認証情報を予め記憶する認証情報記憶部と、
新たに接続された現在のホスト装置から受けた第２機器認証情報と前記認証情報記憶部内の第１機器認証情報とに基づいて機器認証を実行する機器認証部と、
前記機器認証が失敗した場合、前記不揮発性半導体メモリに記憶されているユーザデータを読み出せない状態にする無効化処理を実施するユーザデータ無効化部と、
前記機器認証の後、前記現在のホスト装置から受けた第２ユーザ認証情報と前記認証情報記憶部内の第１ユーザ認証情報とに基づいてユーザ認証を実行するユーザ認証部と、
前記ユーザ認証が成功したとき、前記現在のホスト装置から受けた読出要求に基づいて、前記不揮発性半導体メモリに記憶されているユーザデータを前記現在のホスト装置に出力するデータ読出部と、
を備えることを特徴とする記憶装置。
【請求項２】
電源オフ時にデータが消去される揮発性メモリ、
前記揮発性メモリに書き込まれる暗号鍵の一部を構成する第１部分鍵を予め記憶する第１部分鍵記憶部と、
前記機器認証の後かつ前記ユーザ認証の前に、前記現在のホスト装置から受けた第２部分鍵と前記認証情報記憶部内の第１部分鍵とに基づいて第３部分鍵を生成し、生成した第３部分鍵を前記揮発性メモリに書込む第３部分鍵書込部と、
を備え、
前記機器認証部は、前記機器認証が失敗したとき、前記第１部分鍵を破棄し、
前記ユーザ認証部は、前記第３部分鍵を前記ユーザ認証に用いる、ことを特徴とする請求項１に記載の記憶装置。
【請求項３】
前記第１機器認証情報は、前記正規のホスト装置の固有情報のハッシュ値であり、
前記機器認証部は、前記第２機器認証情報のハッシュ値を算出し、このハッシュ値と前記第１機器認証情報とを照合して両者が不一致のときに、前記機器認証が失敗したと判定する、ことを特徴とする請求項１または２に記載の記憶装置。
【請求項４】
前記第２機器認証情報は、前記第２部分鍵としても用いられる前記現在のホスト装置の固有情報であり、
前記第２部分鍵は、前記第２機器認証情報としても用いられる前記現在のホスト装置の固有情報であることを特徴とする、請求項２に記載の記憶装置。
【請求項５】
前記第１機器認証情報は、前記正規のホスト装置の署名検証鍵であり、
前記第２機器認証情報は、前記現在のホスト装置の署名生成鍵により生成されたデジタル署名と当該デジタル署名の生成に用いた署名対象データであり、
前記機器認証部は、前記デジタル署名を前記署名検証鍵に基づいて復号し、得られた復号データと、前記署名対象データから算出したハッシュ値とを照合して両者が不一致のときに、前記機器認証が失敗した旨を判定する、ことを特徴とする請求項１または２に記載の記憶装置。
【請求項６】
前記機器認証部は、前記現在のホスト装置が第２機器認証情報を送信するときの認証シーケンスが、規定の認証シーケンスと異なる旨を検出したときに、前記機器認証が失敗したと判定する、ことを特徴とする請求項１〜５のいずれか１つに記載の記憶装置。
【請求項７】
前記ユーザデータ無効化部によってユーザデータを無効化するか否かを示す可否情報を記憶する可否情報記憶部と、
前記可否情報を含む設定要求を前記正規のホスト装置から受けると、当該可否情報を前記可否情報記憶部に設定する設定部と、
前記機器認証が失敗したとき、前記可否情報記憶部内の前記可否情報に基づいて前記ユーザデータの無効化を阻止する無効化阻止部と、
前記ユーザデータの無効化が阻止されたとき、前記ユーザ認証部を動作させず、前記機器認証のエラーを前記現在のホスト装置に出力するエラー出力部と、
をさらに備えることを特徴とする請求項１に記載の記憶装置。
【請求項８】
前記ユーザデータ無効化部によってユーザデータを無効化するか否かを示す可否情報を記憶する可否情報記憶部と、
前記可否情報を含む設定要求を前記正規のホスト装置から受けると、当該可否情報を前記可否情報記憶部に設定する設定部と、
前記機器認証が失敗したとき、前記可否情報記憶部内の前記可否情報に基づいて前記ユーザデータの無効化を阻止する無効化阻止部と、
前記ユーザデータの無効化が阻止されたとき、前記ユーザ認証部を動作させず、前記機器認証のエラーを前記現在のホスト装置に出力するエラー出力部と、
をさらに備えることを特徴とする請求項２に記載の記憶装置。
【請求項９】
前記可否情報記憶部内の前記可否情報に基づいて、前記ユーザデータの無効化が阻止された場合に、前記第１部分鍵の破棄を阻止する破棄阻止部と、
前記エラー出力部は、前記第１部分鍵の破棄が阻止されたとき、前記第３部分鍵書込部および前記ユーザ認証部を動作させず、前記機器認証のエラーを前記現在のホスト装置に出力する、ことを特徴とする請求項８に記載の記憶装置。
【請求項１０】
前記第１部分鍵を破棄するまでに許容される新たな接続の回数を示す許容接続回数を記憶する許容接続回数記憶部と、
前記機器認証が失敗した回数を示すエラー回数を記憶するエラー回数記憶部と、
前記許容接続回数を含む設定要求を前記正規のホスト装置から受けると、当該許容接続回数を前記許容接続回数記憶部に設定する設定部と、
前記機器認証が失敗したとき、前記エラー回数記憶部内のエラー回数を増加させるように更新するエラー回数更新部と、
更新後のエラー回数と前記許容接続回数記憶部内の許容接続回数に基づいて前記ユーザデータの無効化を阻止する無効化阻止部と、
前記ユーザデータの無効化が阻止されたとき、前記ユーザ認証部を動作させず、前記機器認証のエラーを前記現在のホスト装置に出力するエラー出力部と、
をさらに備えることを特徴とする請求項２に記載の記憶装置。
【請求項１１】
前記ユーザデータの無効化処理が行われた日時を示す破棄日時情報と、前記機器認証の失敗を示す破棄理由情報とを含む破棄ログ情報を記憶する破棄ログ記憶部と、
前記ユーザデータの無効化処理が行われたとき、前記破棄ログ情報を作成して前記破棄ログ記憶部に書き込む破棄ログ書込部と、
をさらに備えることを特徴とする請求項１に記載の記憶装置。
【請求項１２】
前記ユーザデータの無効化処理が行われた日時を示す破棄日時情報と、前記機器認証の失敗を示す破棄理由情報とを含む破棄ログ情報を記憶する破棄ログ記憶部と、
前記ユーザデータの無効化処理が行われたとき、前記破棄ログ情報を作成して前記破棄ログ記憶部に書き込む破棄ログ書込部と、
をさらに備えることを特徴とする請求項２に記載の記憶装置。
【請求項１３】
前記破棄日時情報は、さらに前記第１部分鍵が破棄された日時を含み、
前記破棄ログ書込部は、さらに前記第１部分鍵が破棄されときに、前記破棄ログ情報を作成して前記破棄ログ記憶部に書き込む、ことを特徴とする請求項１２に記載の記憶装置。
【請求項１４】
自装置の署名生成鍵を予め記憶する署名生成鍵記憶部と、
前記署名生成鍵に基づいて前記破棄ログ記憶部内の破棄ログ情報に署名処理を施して、デジタル署名を生成する署名生成部と、
前記破棄ログ情報及び前記デジタル署名からなる破棄証明書を作成し、この破棄証明書を前記破棄ログ記憶部に書込む破棄証明書作成部と、
をさらに備えることを特徴とする請求項１１、１２または１３に記載の記憶装置。
【請求項１５】
前記ユーザ認証部は、前記ユーザ認証が規定回数だけ失敗したとき、前記ユーザデータ無効化部によりユーザデータを無効化する、ことを特徴とする請求項１または２に記載の記憶装置。
【請求項１６】
前記ユーザデータ無効化部によってユーザデータを無効化するか否かを示す可否情報を記憶する可否情報記憶部と、
前記可否情報を含む設定要求を前記正規のホスト装置から受けると、当該可否情報を前記可否情報記憶部に設定する設定部と、
前記ユーザ認証が失敗したとき、前記可否情報記憶部内の可否情報に基づいて前記ユーザデータの無効化を阻止する無効化阻止部と、
前記ユーザデータの無効化が阻止されたとき、前記データ読出部を動作させず、前記ユーザ認証のエラーを前記現在のホスト装置に出力するエラー出力部と、
をさらに備えることを特徴とする請求項１５に記載の記憶装置。
【請求項１７】
前記記憶装置は、前記不揮発性半導体メモリからユーザデータを読み出して前記ホスト装置へ出力するにあたって、前記ホスト装置から前記不揮発性半導体メモリ内での論理的な位置を示す論理アドレスを指定されてユーザデータを出力し、
前記論理アドレスと記憶領域中のアドレスの対応状況を記憶するアドレス変換情報、
を備え、
前記データ読出部は、前記アドレス変換情報に基づいて前記ホスト装置から読出しを要求されたユーザデータの論理アドレスを物理アドレスに変換し、変換した物理アドレスの位置のユーザデータを前記不揮発性半導体メモリから読み出して出力し、
前記ユーザデータ無効化部は、前記無効化処理として、前記アドレス変換情報のうち無効化対象のユーザデータに対応する情報を削除する、または前記アドレス変換情報内の無効化対象のユーザデータに対応する物理アドレスを無効なデータを保持する特殊物理アドレスに変更する、処理を行うことを特徴とする、請求項１〜１６のいずれか１つに記載の記憶装置。
【請求項１８】
前記ユーザデータ無効化部は、前記無効化処理として、ユーザデータを含む前記不揮発性半導体メモリ中のブロックを消去する処理を行う、ことを特徴とする請求項１〜１７のいずれか１つに記載の記憶装置。
【請求項１９】
前記不揮発性半導体メモリとしてＮＡＮＤメモリを用い、
前記不揮発性半導体メモリは、完全消去を行う場合には、前記不揮発性半導体メモリに記憶されたデータの消去後に消去確認作業を行い、消去が不完全で有る場合は、再度消去を行うという作業を、消去確認ができるまで繰り返し、
前記ユーザデータ無効化部は、前記無効化処理として、無効化対象のユーザデータに対して消去確認作業を行わずに消去を行う不完全消去を実施するよう、前記不揮発性半導体メモリを制御する、ことを特徴とする請求項１〜１７のいずれか１つに記載の記憶装置。
【請求項２０】
前記不揮発性半導体メモリとしてＮＡＮＤメモリを用い、
前記ユーザデータ無効化部は、前記無効化処理として、前記不揮発性半導体メモリに記憶されている無効化対象のユーザデータを含む前記不揮発性半導体メモリを構成するメモリチップを前記メモリチップ単位で記憶データの消去を行うよう制御する、ことを特徴とする請求項１〜１７のいずれか１つに記載の記憶装置。
【請求項２１】
前記不揮発性半導体メモリとしてＮＡＮＤメモリを用い、
前記ユーザデータ無効化部は、前記無効化処理として、前記不揮発性半導体メモリに記憶されている無効化対象のユーザデータを含む前記不揮発性半導体メモリを構成するメモリチップを前記メモリチップ単位で所定のデータで上書きする、ことを特徴とする請求項１〜１７のいずれか１つに記載の記憶装置。
【請求項２２】
前記ユーザ認証により認証された前記ホスト装置から受けた破壊要求に基づいて、前記不揮発性半導体メモリ内の全データを消去する自己破壊部、
をさらに備え、
前記自己破壊部は、前記不揮発性半導体メモリを構成する全てのメモリチップを前記メモリチップ単位で消去するまたは所定のデータで上書きする、ことを特徴とする請求項１〜２１のいずれか１つに記載の記憶装置。
【請求項２３】
ユーザデータを不揮発に記憶する不揮発性半導体メモリを有し、任意のホスト装置に着脱自在に接続可能な記憶装置と、前記任意のホスト装置のうち、前記記憶装置への接続権限をもつ正規のホスト装置と、を具備する記憶システムであって、
前記記憶装置は、
前記任意のホスト装置のうち、接続権限をもつ正規のホスト装置を機器認証するための第１機器認証情報、及び前記正規のホスト装置を使用する正規のユーザを認証する第１ユーザ認証情報を予め記憶する認証情報記憶部と、
新たに接続された現在のホスト装置から受けた第２機器認証情報と前記認証情報記憶部内の第１機器認証情報とに基づいて機器認証を実行する機器認証部と、
前記機器認証が失敗した場合、前記不揮発性半導体メモリに記憶されているユーザデータを読み出せない状態にする無効化処理を実施するユーザデータ無効化部と、
前記機器認証の後、前記現在のホスト装置から受けた第２ユーザ認証情報と前記認証情報記憶部内の第１ユーザ認証情報とに基づいてユーザ認証を実行するユーザ認証部と、
前記ユーザ認証が成功したとき、前記現在のホスト装置から受けた読出要求に基づいて、前記不揮発性半導体メモリに記憶されているユーザデータを前記現在のホスト装置に出力するデータ読出部と、
を備え、
前記正規のホスト装置は、
前記第２機器認証情報を記憶する機器認証情報記憶部と、
前記記憶装置が接続されると、前記機器認証部により実行される機器認証の規定の認証シーケンスに沿って、前記機器認証情報記憶手段内の第２機器認証情報を前記記憶装置に送信する機器認証情報送信部と、
ユーザの操作に応じて、前記第２ユーザ認証情報の入力を受け付けるユーザ認証情報受付部と、
前記入力を受け付けた第２ユーザ認証情報を前記記憶装置に送信するユーザ認証情報送信部と、
ユーザの操作に応じて、前記読出要求の入力を受け付ける読出要求受付部と、
前記入力を受け付けた読出要求を前記記憶装置に送信する読出要求送信部と、
を備えることを特徴とする記憶システム。
【請求項２４】
ユーザデータを不揮発に記憶する不揮発性半導体メモリを有し、任意のホスト装置に着脱自在に接続可能な記憶装置における認証方法であって、
前記任意のホスト装置のうち、接続権限をもつ正規のホスト装置を機器認証するための第１機器認証情報、及び前記正規のホスト装置を使用する正規のユーザを認証する第１ユーザ認証情報を認証情報記憶部に予め記憶する認証情報記憶ステップと、
新たに接続された現在のホスト装置から受けた第２機器認証情報と前記認証情報記憶部内の第１機器認証情報とに基づいて機器認証を実行する機器認証ステップと、
前記機器認証が失敗した場合、前記不揮発性半導体メモリに記憶されているユーザデータを読み出せない状態にする無効化処理を実施するユーザデータ無効化ステップと、
前記機器認証の後、前記現在のホスト装置から受けた第２ユーザ認証情報と前記認証情報記憶部内の第１ユーザ認証情報とに基づいてユーザ認証を実行するユーザ認証ステップと、
前記ユーザ認証が成功したとき、前記現在のホスト装置から受けた読出要求に基づいて、前記不揮発性半導体メモリに記憶されているユーザデータを前記現在のホスト装置に出力するデータ読出しステップと、
を含むことを特徴とする認証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、記憶装置、記憶システム及び認証方法に関する。
【背景技術】
【０００２】
従来、不揮発性半導体メモリであるNANDメモリを用いた認証機能を持つSolid  Sate  Drive（ＳＳＤ）（以下、記憶装置という）は、アクセス権のあるユーザのパスワード認証が成功すると、ホスト装置からのデータアクセス要求を受理し、ホスト装置から指定された領域に記録されたユーザデータを出力する。さらに、記憶装置が暗号化機能を持つ場合は、パスワード認証が成功すると、予め保持した暗号鍵を復号鍵に設定し、この復号鍵により暗号化ユーザデータを復号して得られたユーザデータを出力する。このように、従来の記憶装置は、アクセス権のあるユーザに対し、正しいユーザデータを出力可能となっている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−５４０８号公報
【特許文献２】特開２００９−２１１２２８号公報
【特許文献３】特開２００３−２４９０８３号公報
【特許文献４】特開平８−３０６１９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の実施形態は、データ漏洩を防止することが可能な記憶装置、記憶システム及び認証方法を提供する。
【課題を解決するための手段】
【０００５】
本願発明の一態様によれば、ユーザデータを不揮発に記憶する不揮発性半導体メモリを有し、任意のホスト装置に着脱自在に接続可能な記憶装置は、任意のホスト装置のうち、接続権限をもつ正規のホスト装置を機器認証するための第１機器認証情報、及び正規のホスト装置を使用する正規のユーザを認証する第１ユーザ認証情報を予め記憶する認証情報記憶部、を備える。また、この記憶装置は、新たに接続された現在のホスト装置から受けた第２機器認証情報と前記認証情報記憶部内の第１機器認証情報とに基づいて機器認証を実行し、機器認証が失敗した場合、不揮発性半導体メモリに記憶されているユーザデータを読み出せない状態にする無効化処理を実施する。また、この記憶装置は、機器認証の後、現在のホスト装置から受けた第２ユーザ認証情報と認証情報記憶部内の第１ユーザ認証情報とに基づいてユーザ認証を実行し、ユーザ認証が成功したとき、現在のホスト装置から受けた読出要求に基づいて、不揮発性半導体メモリに記憶されているユーザデータを現在のホスト装置に出力する。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１の実施形態にかかる記憶システムの構成の一例を示すブロック図である。
【図２】図２は、第１の実施形態にかかる記憶システムの暗号化処理を行う場合の構成の一例を示すブロック図である。
【図３】図３は、ＮＡＮＤメモリチップに含まれる１個の物理ブロックの構成例を示す図である。
【図４】図４は、アドレス変換情報の構成例を示す図である。
【図５】図５は、ＮＡＮＤメモリの記憶領域の区分を模式的に示す図である。
【図６】図６は、記憶装置が保持するデータと格納領域の一例を示す図である。
【図７】図７は、暗号化処理を行う場合のＳＲＡＭ上のデータの一例を示す図である。
【図８】図８は、メモリ上のデータの一例を示す図である。
【図９】図９は、第１の実施形態の構成例α１の動作の一例を示すフローチャートである。
【図１０】図１０は、第１の実施形態の構成例βの動作の一例を示すフローチャートである。
【図１１】図１１は、ステップＳＴ４０の詳細処理手順の一例を示すフローチャートである。
【図１２】図１２は、第２の実施形態における不揮発性半導体メモリ内のデータを説明するための模式図である。
【図１３】図１３は、第２の実施形態におけるメモリ内のデータを説明するための模式図である。
【図１４】図１４は、第２の実施形態における動作を説明するためのフローチャートである。
【図１５】図１５は、第２の実施形態における動作を説明するためのフローチャートである。
【図１６】図１６は、正規のホスト装置が複数ある場合の第１機器認証情報および内部情報の一例を示す図である。
【図１７】図１７は、一般的なパスワード認証のみを実行するユーザデータ暗号化機能を持つ記憶装置を用いた記憶システムの動作を示す模式図である。
【図１８】図１８は、第２の実施形態の記憶装置に正規のホスト装置が接続された場合の動作を示す模式図である。
【図１９】図１９は、第２の実施形態の記憶装置に正規のホスト装置が接続された場合の動作を示す模式図である。
【図２０】図２０は、第２の実施形態の記憶装置に正規のホスト装置が接続された場合の動作を示す模式図である。
【図２１】図２１は、第２の実施形態における記憶装置に不正なホスト装置が接続された場合の動作を示す模式図である。
【図２２】図２２は、第２の実施形態における記憶装置に不正なホスト装置が接続された場合の動作を示す模式図である。
【図２３】図２３は、第２の実施形態における記憶装置に不正なホスト装置が接続された場合の動作を示す模式図である。
【図２４】図２４は、第３の実施形態における不揮発性半導体メモリ内のデータを説明するための模式図である。
【図２５】図２５は、第３の実施形態におけるメモリ内のデータを説明するための模式図である。
【図２６】図２６は、第３の実施形態における動作を説明するためのフローチャートである。
【図２７】図２７は、第３の実施形態における動作を説明するためのフローチャートである。
【図２８】図２８は、第４の実施形態における動作を説明するためのフローチャートである。
【図２９】図２９は、第５の実施形態における不揮発性半導体メモリ内のデータを説明するための模式図である。
【図３０】図３０は、第５の実施形態における動作を説明するためのフローチャートである。
【図３１】図３１は、第６の実施形態における不揮発性半導体メモリ内のデータを説明するための模式図である。
【図３２】図３２は、第６の実施形態における動作を説明するためのフローチャートである。
【図３３】図３３は、第７の実施形態における不揮発性半導体メモリ内のデータを説明するための模式図である。
【図３４】図３４は、第７の実施形態における破棄ログ情報を説明するための模式図である。
【図３５】図３５は、第８の実施形態における不揮発性半導体メモリ内のデータを説明するための模式図である。
【図３６】図３６は、第８の実施形態における破棄証明書を説明するための模式図である。
【図３７】図３７は、第８の実施形態におけるメモリ内のデータを説明するための模式図である。
【図３８】図３８は、第１０の実施形態における動作を説明するためのフローチャートである。
【発明を実施するための形態】
【０００７】
従来の記憶装置は、ユーザデータを記憶した状態で、アクセス権のあるユーザによって外部のシステム環境に持ち出された場合、パスワード認証の成功により、復号したユーザデータを漏洩させてしまう心配がある。
【０００８】
また、小型の記憶装置は容易に持ち出し可能なため、盗難が発生し易い上に、盗難後にパスワードが破られると、ユーザデータを漏洩させてしまう。このため、盗難時のユーザデータ漏洩防止のため、持ち出し先で確実にユーザデータが無効化される必要がある。
【０００９】
このように、従来の記憶装置は、使用可能なシステム環境とは異なる環境からアクセスされた場合には、ユーザのアクセス権の有無によらず、記憶しているユーザデータを無効にしたいという課題がある。
【００１０】
ユーザデータの無効化については、例えば、記憶装置全体を無効データで上書きする方法が一番知られているが、これは非常に時間が掛かるため、データを読み出そうとしている悪意を持った攻撃者に気づかれ、電源を切られて、別の攻撃をされるといった問題もある。このため、短い時間でユーザデータの無効化処理を行うことが望ましい。
【００１１】
短時間のユーザデータ無効化技術としては、データを暗号化して記録し、その鍵を破棄することで、データの復号を困難にしてデータを事実上無効化する暗号消去と言われる方式が存在するが、この方式では、記憶装置の処理速度が遅くなるか、遅くならないようにするためには、暗号回路を組み込む必要があり、装置が複雑化、大型化、消費電力の増大といった課題がある。また、暗号装置は、法規制の対象になる国が多く、暗号機能を持つ記憶装置が使えない国がある、法規制に適合するため取り扱いが煩雑になる、という課題もある。
【００１２】
また、廃棄時もユーザデータを無効化したいが、記憶装置全体を無効データ上書きする方法では時間がかかりすぎるという課題もあった。
【００１３】
以下に添付図面を参照して、実施形態にかかる記憶装置、記憶システム及び認証方法を詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
【００１４】
（第１の実施形態）
図１は、第１の実施形態にかかる記憶システムの構成の一例を示すブロック図である。図２は、第１の実施形態にかかる記憶システムの暗号化処理を行う場合の構成の一例を示すブロック図である。
【００１５】
記憶装置では、記憶されるデータを保護するためにユーザデータを暗号化して記憶することがある。このように暗号化処理を行うと、セキィリティは向上するが、一方で暗号化モジュールおよび復号化モジュールを備える必要があり、また書き込みや読み出し時の処理量が増加する。本実施形態では、暗号化を行わない例（図１の構成例）を主に説明を行うが、暗号化処理を行わない例（図２の構成例）についても並行して説明を行う。なお、同一の符号を有する構成要素は、同様または類似の機能を有する構成要素を示している。
【００１６】
図１に示すように、本実施形態の記憶システムは、電源オフ時にデータが消去される揮発性メモリを有し、任意のホスト装置３０Ａ，３０Ｂ，…に着脱自在に接続可能な記憶装置１０と、任意のホスト装置３０Ａ，３０Ｂ，…のうち、記憶装置１０への接続権限をもつ正規のホスト装置３０Ａとを備えている。
【００１７】
記憶装置１０は、フューズ８、電源回路５、温度センサ７、記憶媒体である不揮発性半導体メモリ（ＮＡＮＤメモリ）１１、ＤＲＡＭ（Dynamic  Random  Access  Memory：バッファメモリ）１９及びドライブ制御回路２０を備えている。ドライブ制御回路２０は、機器認証モジュール２１、ユーザ認証モジュール２２、ＳＲＡＭ（Satic  Random  Access  Memory：揮発性メモリ）２５、データ記憶モジュール２６およびデータ読出モジュール２７を備える。なお、ここでは、不揮発性半導体メモリ１１がＮＡＮＤメモリである場合について説明するが、ＮＡＮＤメモリ以外の不揮発性半導体メモリであってもよい。
【００１８】
また、図２に示すように、記憶装置１０が、ユーザデータの暗号化処理を行う機能を持つ場合は、ドライブ制御回路２０は、図１の例のドライブ制御回路２０の構成要素に加え、さらに暗号化モジュール２３、復号化モジュール２４を備える。
【００１９】
まず、図１の構成例の各構成要素と基本動作について説明する。本実施形態では、記憶装置が備える不揮発性半導体メモリとしてＮＡＮＤメモリ１１を用いている。ＮＡＮＤメモリ１１は、図１および図２に示すように、４並列動作を行う４つの並列動作要素１１ａ〜１１ｄを有し、１つの並列動作要素は、２つのＮＡＮＤメモリパッケージを有する。各ＮＡＮＤメモリパッケージは、積層された複数のＮＡＮＤメモリチップ（例えば、１チップ＝２ＧＢ）によって構成されている。
【００２０】
図１の例では、各ＮＡＮＤメモリパッケージは、積層された４枚のＮＡＮＤメモリチップによって構成されており、ＮＡＮＤメモリ１１は６４ＧＢの容量を有する。例えば、各ＮＡＮＤメモリパッケージが、積層された８枚のＮＡＮＤメモリチップによって構成されている場合は、ＮＡＮＤメモリ１１は１２８ＧＢの容量を有することになる。
【００２１】
ＤＲＡＭ１９は、ホスト装置３０ＡとＮＡＮＤメモリ１１と間でのデータ転送用キャッシュおよび作業領域用メモリとして機能する。また、ＤＲＡＭ１９の代わりに、不揮発性メモリであるＦｅＲＡＭ（Ferroelectric  ＲＡＭ）を使用しても良い。ドライブ制御回路２０は、ホスト装置３０ＡとＮＡＮＤメモリ２０との間でＤＲＡＭ１９を介してデータ転送制御を行うとともに、記憶装置１０内の各構成要素を制御する。また、ドライブ制御回路２０は、状態表示用ＬＥＤ（Light  Emitting  Diode）６にステータス表示用信号を供給するとともに、電源回路 からのパワーオンリセット信号を受けて、リセット信号およびクロック信号を自回路内および記憶装置１０内の各部に供給する機能も有している。なお、ＬＥＤ６は、記憶装置１０自体には無く、例えばホスト装置に設けたＬＥＤ６を点灯させるための信号を出力するための端子のみを設けてあってもよい。
【００２２】
各ＮＡＮＤメモリチップは、データ消去の単位である物理ブロックを複数配列して構成されている。図３（ａ）は、ＮＡＮＤメモリチップに含まれる１個の物理ブロックの構成例を示す回路図である。各物理ブロックは、Ｘ方向に沿って順に配列された（ｐ＋１）個のＮＡＮＤストリングを備えている（ｐは、０以上の整数）。（ｐ＋１）個のＮＡＮＤストリングにそれぞれ含まれる選択トランジスタＳＴ１は、ドレインがビット線ＢＬ０〜ＢＬｐに接続され、ゲートが選択ゲート線ＳＧＤに共通接続されている。また、選択トランジスタＳＴ２は、ソースがソース線ＳＬに共通接続され、ゲートが選択ゲート線ＳＧＳに共通接続されている。
【００２３】
各メモリセルトランジスタＭＴは、半導体基板上に形成された積層ゲート構造を備えたＭＯＳＦＥＴ（Metal  Oxide  Semiconductor  Field  Effect  Transistor）から構成される。積層ゲート構造は、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層（浮遊ゲート電極）、および電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲート電極を含んでいる。メモリセルトランジスタＭＴは、浮遊ゲート電極に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じてデータを記憶する。メモリセルトランジスタＭＴは、１ビットを記憶するように構成されていてもよいし、多値（２ビット以上のデータ）を記憶するように構成されていてもよい。
【００２４】
また、メモリセルトランジスタＭＴは、浮遊ゲート電極を有する構造に限らず、ＭＯＮＯＳ（Metal-Oxide-Nitride-Oxide-Silicon）型など、電荷蓄積層としての窒化膜界面に電子をトラップさせることでしきい値調整可能な構造であってもよい。ＭＯＮＯＳ構造のメモリセルトランジスタＭＴについても同様に、１ビットを記憶するように構成されていてもよいし、多値（２ビット以上のデータ）を記憶するように構成されていてもよい。
【００２５】
各ＮＡＮＤストリングにおいて、（ｑ＋１）個のメモリセルトランジスタＭＴは、選択トランジスタＳＴ１のソースと選択トランジスタＳＴ２のドレインとの間に、それぞれの電流経路が直列接続されるように配置されている。すなわち、複数のメモリセルトランジスタＭＴは、隣接するもの同士で拡散領域（ソース領域若しくはドレイン領域）を共有するような形でＹ 方向に直列接続される。
【００２６】
そして、最もドレイン側に位置するメモリセルトランジスタＭＴから順に、制御ゲート電極がワード線ＷＬ０〜ＷＬｑにそれぞれ接続されている。従って、ワード線ＷＬ０に接続されたメモリセルトランジスタＭＴのドレインは選択トランジスタＳＴ１のソースに接続され、ワード線ＷＬｑに接続されたメモリセルトランジスタＭＴのソースは選択トランジスタＳＴ２のドレインに接続されている。
【００２７】
ワード線ＷＬ０〜ＷＬｑは、物理ブロック内のＮＡＮＤストリング間で、メモリセルトランジスタＭＴの制御ゲート電極を共通に接続している。つまり、ブロック内において同一行にあるメモリセルトランジスタＭＴの制御ゲート電極は、同一のワード線ＷＬに接続される。この同一のワード線ＷＬに接続される（ｐ＋１）個のメモリセルトランジスタＭＴは１ページ（物理ページ）として取り扱われ、この物理ページごとにデータの書き込みおよびデータの読み出しが行われる。
【００２８】
また、ビット線ＢＬ０〜ＢＬｐは、ブロック間で、選択トランジスタＳＴ１のドレインを共通に接続している。つまり、複数のブロック内において同一列にあるＮＡＮＤストリングは、同一のビット線ＢＬに接続される。
【００２９】
図３（ｂ）は、例えば、１個のメモリセルトランジスタＭＴに２ビットの記憶を行う４値データ記憶方式でのしきい値分布を示す模式図である。４値データ記憶方式では、上位ページデータ“ｘ”と下位ページデータ“ｙ”で定義される４ 値データ“ｘｙ”の何れか１つをメモリセルトランジスタＭＴに保持可能である。
【００３０】
この、４値データ“ｘｙ”は、メモリセルトランジスタＭＴのしきい値電圧の順に、例えば、データ“１１”、“０１”、“００”、“１０”が割り当てられる。データ“１１”は、メモリセルトランジスタＭＴのしきい値電圧が負の消去状態である。
【００３１】
下位ページ書き込み動作においては、データ“１１”（消去状態）のメモリセルトランジスタＭＴに対して選択的に、下位ビットデータ“ｙ”の書き込みによって、データ“１０”が書き込まれる。上位ページ書き込み前のデータ“１０”のしきい値分布は、上位ページ書き込み後のデータ“０１”とデータ“００”のしきい値分布の中間程度に位置しており、上位ページ書き込み後のしきい値分布よりブロードであってもよい。上位ページ書き込み動作においては、データ“１１”のメモリセルと、データ“１０”のメモリセルに対して、それぞれ選択的に上位ビットデータ“ｘ”の書き込みが行われて、データ“０１”およびデータ“００”が書き込まれる。
【００３２】
論理アドレス（Logical  Block  Address  略してＬＢＡともいう）と、ＮＡＮＤメモリ１１の物理アドレスと、は、アドレス変換情報により管理される。図４は、アドレス変換情報の構成例を示す図である。ドライブ制御回路２０は、ホスト装置３０Ａから要求されたユーザデータの読み出し時に、アドレス変換情報を用いて当該ユーザデータの論理アドレスに対応する物理アドレスを取得して、ＮＡＮＤメモリ１１から当該ユーザデータの読み出しを実施する。なお、ここでは、論理アドレスと物理アドレスを直接変換する例について説明したが、これに限らず、多段階でアドレスを変換する（ホスト装置の論理アドレスから記憶装置の論理アドレスへ一旦変換した後に、物理アドレスへ変換する等）方式としてもよい。
【００３３】
図５は、ＮＡＮＤメモリ１１の記憶領域の区分を模式的に示す図である。ＮＡＮＤメモリ１１の記憶領域は、図５に示すように、通常ＬＢＡ領域１１ｂと、特殊ＬＢＡ領域１１ａと、特殊領域１１ｃに区分される。ここで、通常ＬＢＡ領域１１ｂは、ホスト装置３０Ａからのコマンド（Readコマンド／Writeコマンドなど）によってアクセス可能なＬＢＡ領域（論理アドレス領域）、すなわちユーザデータ領域であるのに対し、特殊ＬＢＡ領域１１ａ、特殊領域１１ｃは、ホスト装置３０Ａから発出される通常のコマンドではアクセスすることができないＬＢＡ領域である。
【００３４】
ＮＡＮＤメモリ１１のうち、ＬＢＡが対応付けされていない領域が、特殊領域１１ｃである。本実施の形態では、非ユーザ領域は、管理情報の記録等に用いられる特殊ＬＢＡ領域（システムエリア）１１ａと、それ以外の、ファームウェアが記録された領域等、またフリーブロックＦＢを含むＬＢＡが割り当てられていない領域が属する特殊領域１１ｃで構成される。特殊ＬＢＡ領域１１ａ、特殊領域１１ｃは、記憶装置１０の内部に展開されるファームウェア（ＦＷ）を構成するモジュールが発出するコマンドによってアクセスすることが可能である。また、ファームウェア自体は、記憶装置１０内、例えばドライブ制御装置内の図示しない読み出し専用メモリ（ROM）内に予め記録されたＩＰＬ（Initial  Program  Loader）と呼ばれるファームウェアロード用コードによって、起動時に読み出されて例えばＳＲＡＭ２５に展開されて実行される。なお、これらの特殊ＬＢＡ領域１１a、通常ＬＢＡ領域１１ｂ、特殊領域１１ｃは、物理的にそれぞれ連続した物理領域として存在する必要はなく、ＮＡＮＤメモリ１１の個々の物理管理単位が、それぞれこれらの領域に属する。例えば、特殊領域１１ｃとして使用していたブロックが解放されフリーブロックＦＢとなった後、このフリーブロックＦＢにユーザデータが記録されると、以降は通常ＬＢＡ領域１１ｂとして使用される。このように個々の物理管理単位が属する領域は、固定ではなく、記憶装置１０の使用とともに、変化していく。
【００３５】
これらの通常ＬＢＡ領域１１ｂ、特殊領域１１ｃおよび特殊ＬＢＡ領域（システムエリア）１１ａについて、具体例を用いて説明する。いま、ＮＡＮＤメモリ１１の領域のサイズ（いわゆるディスク容量）を、例えば６４ＧＢとすると、この６４ＧＢの領域はユーザ領域である。なお、ここでいう６４ＧＢの領域というのは、ＬＢＡの範囲が６４ＧＢという意味であり、常に物理的に６４ＧＢのＮＡＮＤメモリ１１が割り当てられているという意味ではない。一方、ＮＡＮＤメモリ１１には、ホスト装置３０Ａからアクセスできる当該６４ＧＢの領域（ユーザ領域）以外に、ＮＡＮＤメモリ１１の内部情報を保存するための領域として、所定サイズ（例えば、１論理ブロック分程度）の領域（非ユーザ領域）がＬＢＡ上にマップされる。この６４ＧＢの領域が通常ＬＢＡ領域１１ｂであり、所定サイズの領域が特殊ＬＢＡ領域（システムエリア）１１ａであり、これらに属さない領域が特殊領域１１ｃである。なお、ここではファームウェアが特殊エリア１１ｃに記録されるとしているが、特殊ＬＢＡ領域１１ａに記録してもよい。
【００３６】
特殊ＬＢＡ領域（システムエリア）１１ａは、例えば、ＮＡＮＤメモリ１１を管理する管理データ、ＳＭＡＲＴ情報などを保存するために使用される。この特殊ＬＢＡ領域（システムエリア）１１ａに格納される管理データは、通常ＬＢＡ領域１１ｂに格納されるユーザデータと同じ管理方式でハンドリングされ、通常ＬＢＡ領域１１ｂがマップされ得る全ての論理ブロックに割り当てが可能である。すなわち、ドライブ制御回路２０から見れば、論理アドレスの違いを除いて、処理の違いはない。
【００３７】
以上、図１の構成例（以下、構成例αとする）について説明したが、図２の構成例（以下、構成例βとする）についても、重複する構成要素の機能と基本動作は構成例αと同様である。以下では、特記しない場合（例えば、「構成例βの場合は」等のような記載がない場合）は、構成例αについて説明している。構成例βについては、暗号化処理および復号化処理に関する部分以外は、構成例αの各部の機能および動作と同様であり、構成例αと重複する説明は省略する。
【００３８】
次に、本実施形態の認証と鍵データについて説明する。本実施形態では、ホスト装置３０Ａ、３０Ｂ、…から記憶装置１０へのアクセス（記憶装置１０からの読み出し、記憶装置１０への書き込み）を行う前に、機器認証処理とユーザ認証処理を実施する。機器認証処理とユーザ認証処理の両方で認証された場合に、記憶装置１０へのアクセスが可能となる。なお、機器認証手順およびユーザ認証手順に特に制約はなくどのような手順で実施してもよい。
【００３９】
本実施形態の記憶装置１０は、上述の機器認証処理およびユーザ認証処理を行うための情報を保持している。図６は、記憶装置１０が保持するデータと格納領域の一例を示す図である。図６に示すように、本実施形態では、ＮＡＮＤメモリ１１の特殊ＬＢＡ領域（システムエリア）１１ａ内に、第１部分鍵、第１機器認証情報、第１ユーザ認証情報およびアドレス変換情報を記憶している。このように、ＮＡＮＤメモリ１１の特殊ＬＢＡ領域（システムエリア）１１ａは、第１部分鍵を記憶する第１部分鍵記憶部としての機能と、認証情報を記憶する認証情報記憶部としての機能と、を有する。
【００４０】
ここで、第１部分鍵は、構成例αの場合は、第１ユーザ認証情報を生成するために用いる暗号鍵を生成するために用いる鍵データである。なお、構成例αの場合には、この第１部分鍵を用いない場合もある。また、構成例βの場合は、第１部分鍵はＳＲＡＭ２５に書き込まれる暗号鍵を生成するために用いる鍵データである。第１部分鍵としては、例えば、記憶装置１０の内部情報Ｇを用いる。また、内部情報Ｇは、例えば初期設定時に、ドライブ制御回路２０からシステムエリア１１ａに予め書込まれる。例えば、構成例βの場合は、暗号化モジュール２３から内部情報Ｇがシステムエリア１１ａに書き込まれ、構成例α（暗号化モジュール２３を持たない構成）の場合は、別のモジュールで内部情報Ｇを書き込むようにしてもよい。なお、ここでは、このような内部情報Ｇの一例として、内部情報Ｇを所定の規則により生成された乱数とするが、内部情報Ｇはこの例に限定されない。以下の説明では、第１部分鍵が内部情報Ｇであるとして述べる。
【００４１】
また、ここでは、構成例αの場合には、内部情報Ｇを用いて第１ユーザ認証情報を生成する例について説明するが、内部情報Ｇを用いて第１ユーザ認証情報を生成しなくてもよい。すなわち、記憶装置１０は内部情報Ｇを保持せず、第１ユーザ認証情報は予めシステムエリア１１ａに書き込まれるとしてもよい。以下、内部情報Ｇを用いて第１ユーザ認証情報を生成する場合としない場合を区別して説明する際には、構成例αで内部情報Ｇを用いて第１ユーザ認証情報を生成する場合を構成例α１とし、内部情報Ｇを用いない場合を構成例α２として説明する。構成例α１と構成例α２を区別しない場合（両方に共通する事項）には、構成例αと表記して説明する。なお、構成例α１の場合は、図６で示した構成例において、特殊ＬＢＡ領域（システムエリア）１１ａ内の第１ユーザ認証情報の全て、または一部は、第３暗号鍵を用いて複合された形態（後述の保護化第１ユーザ認証情報）である内部情報Ｇとして記憶される。
【００４２】
第１機器認証情報は、接続可能な任意のホスト装置３０Ａ，３０Ｂ，…のうち、接続権限をもつ正規のホスト装置３０Ａを機器認証するためのものであり、任意の機器認証方式の機器認証情報が使用可能となっている。例えば、第１機器認証情報としては、ホスト装置３０Ａの固有情報“ＡＡ”、又はホスト装置３０Ａの署名検証鍵Ｋveri-３０Ａが使用可能であるが、これらの例に限定されない。このような第１機器認証情報は、例えば初期設定時に、機器認証モジュール２１からシステムエリア１１ａに予め書込まれる。機器認証方式としては、互いに同一の第１機器認証情報と第２機器認証情報とを照合する方式や、第２又は第３の実施形態に述べるように、互いに異なる第１機器認証情報及び第２機器認証情報に基づく方式のいずれとしてもよい。ホスト装置３０Ａの固有情報としては、例えばＭＡＣアドレスが使用可能であるが、この例に限定されない。
【００４３】
第１ユーザ認証情報は、正規のホスト装置３０Ａを使用する正規のユーザを認証するためのものである。第１ユーザ認証情報としては、正規のユーザのパスワードＰ及びユーザＩＤを一例として用いるが、この例に限定されない。第１ユーザ認証情報は、例えば初期設定時に、ユーザ認証モジュール２２からシステムエリア１１ａに予め書込まれる。
【００４４】
また、通常ＬＢＡ領域１１ｂ（ユーザ領域）は、ユーザデータＤを記憶している。記憶装置１０がユーザデータ暗号化機能を持つ場合（構成例βの場合）は、ユーザエリア１１ｂは、暗号鍵Ｋｇに基づいて暗号化モジュール２３により暗号化されたデータＤである暗号化データＥｇ（Ｋｇ，Ｄ）を記憶している。なお、ここでは、内部情報Ｇの場合に、“Ｇ”の小文字“ｇ”を添字にして“Ｅｇ”，“Ｋｇ”と表記している。例えば、内部情報Ｉの場合には、“Ｉ”の小文字“ｉ”を添字にして“Ｅｉ”，“Ｋｉ”と表記する。構成例αの場合には、ユーザデータＤは暗号化されていないデータである。
【００４５】
構成例βの場合には、ＳＲＡＭ２５には、図７に示すように暗号化鍵Ｋｇが記憶される。図７は、暗号化処理を行う場合のＳＲＡＭ２５上のデータの一例を示す図である。暗号化モジュール２３は、書き込み対象のユーザデータをホスト装置３０Ａから受け取ると、当該データを暗号鍵Ｋｇを用いて暗号化して暗号化データＥｇ（Ｋｇ，Ｄ）を生成し、データ記憶モジュール２６が通常ＬＢＡ領域１１ｂにユーザデータとして暗号化データＥｇ（Ｋｇ，Ｄ）を書き込む。また、読み出し時には、データ読出モジュール２７が通常ＬＢＡ領域１１ｂから読み出した暗号化データＥｇ（Ｋｇ，Ｄ）を、復号化モジュール２４が暗号鍵Ｋｇを用いて復号し、復号後のユーザデータをホスト装置３０Ａへ送る。
【００４６】
データ記憶モジュール２６は、有効データが記憶されていないＮＡＮＤメモリ１１上の領域に、データを記録する機能を持つ。データ記憶モジュール２６は、ホスト装置から送られた論理アドレスとユーザデータを受け取り、有効データが記憶されていないＮＡＮＤメモリ１１上の領域に当該ユーザデータを書き込み、その物理アドレスと、ホスト装置から送付された論理アドレスの対応状況を、特殊ＬＢＡ領域（システムエリア）１１ａ内のアドレス変換情報に書込む。また、構成例βの場合には、ＮＡＮＤメモリ１１にユーザデータを書き込む前に、上述のように暗号化モジュール２３により暗号化データＥｇ（Ｋｇ，Ｄ）に変換する。
【００４７】
また、データ読出モジュール２７は、ＮＡＮＤメモリ１１から、指定された論理アドレスのデータを読み出す機能を持つ。ホスト装置３０Ａから指定された論理アドレスのデータを出力する（読みだす）よう要求された場合、データ読出モジュール２７は、システムエリア１１ａ内に保持したアドレス変換情報に基づいて、論理アドレスを物理アドレスに変換し、そのＮＡＮＤメモリ１１上の当該物理アドレスからユーザデータを読み出し、ホスト装置３０Ａに出力する。また、構成例βの場合には、上述のように暗号化されたユーザデータを読み出した後、復号化モジュール２４で、平文のユーザデータに戻してから、ホスト装置３０Ａに出力する。
【００４８】
アドレス変換情報には、初期時は、論理アドレスに対応する物理アドレスは登録されていない。そのため、データ読出モジュール２７は、読み出し要求を受けると、ホスト装置によって書き込まれたものではないデータを出力、あるいはエラーをホスト装置に通知するなどの動作をする。
【００４９】
この動作の実現方法としては、例えば、次のような方法がある。例えば、アドレス変換情報には、初期時は、論理アドレスに対応するユーザデータを記憶した物理アドレスは存在しない状態とし、ＮＡＮＤメモリ１１への記録時に、論理アドレスに対応する物理アドレスを登録する。そして、データ読出モジュール２７は、アドレス変換情報に、読み出しのデータに対応する物理アドレスが存在しない場合に、ゼロの値のみでなるデータを出力する、もしくはエラーをホスト装置に通知する。
【００５０】
または、例えば、初期時は、アドレス変換情報は、全ての論理アドレスが、一つの固定データを記憶した特殊ブロックの物理アドレスを示すようにして、ホスト装置から読み出し要求が来ると、この特殊ブロックを読み出して得たデータをホスト装置に出力するようにしてもよい。
【００５１】
アドレス変換情報を用いたアドレス変換の処理は、この例に限定されず、様々な実現方法があり、どのような実現方法を採用してもよい。いずれの実現方法を採用した場合も、アドレス変換情報に、論理アドレスに対応するユーザデータを記憶した物理アドレスが登録されていない状態では、ＮＡＮＤメモリ１１上に、ユーザデータが記憶されていたとしても、ホスト装置からの要求でユーザデータを出力できない。
【００５２】
ＤＲＡＭ１９は、揮発性メモリであり、ドライブ制御回路２０に制御されてリードデータ及びライトデータを一時的に記憶する。また、ドライブ制御回路２０の利用する各種管理データを記憶する。システムエリアに記録する情報、とりわけアドレス変換情報のキャッシュとして利用してもよい。なお、ＤＲＡＭ１９は、ＳＲＡＭ２５に代えて、ＳＲＡＭ２５内のデータを記憶するように用いてもよい。あるいは逆に、ＤＲＡＭ１９の代わりに、ＳＲＡＭ２５に、ＤＲＡＭ１９内のデータを記憶するように用いてもよい。ただし、揮発性メモリであるＤＲＡＭ１９の代わりに不揮発性ＦｅＲＡＭを使用した場合は、暗号鍵Ｋｇなどは、後述のように電源オフ時に消去されないので、ＦｅＲＡＭに記憶することは好ましくない。
【００５３】
ドライブ制御回路２０は、ＤＲＡＭ１９を使用して、ＮＡＮＤメモリ１１とホスト装置３０Ａとのデータ伝送を制御するインターフェースである。また、ドライブ制御回路２０は、ＮＡＮＤメモリ１１のデータ読出／書込動作を制御し、構成例βの場合は、暗号化処理及び復号化処理などを制御する。また、ドライブ制御回路２０は、さらに、機器認証処理及びユーザ認証処理を制御する。ここでいうユーザ認証処理は、従来のパスワード認証以外の処理（例、認証失敗時のユーザデータの無効化処理など）を含んでいる。
【００５４】
以下では、ドライブ制御回路２０による制御のうち、特に、機器認証処理、ユーザ認証処理、暗号化処理及び復号化処理の制御に用いられる機能ブロックについて説明する。
【００５５】
機器認証モジュール２１は、新たに接続された現在のホスト装置３０Ａ（又は３０Ｂ，…）から受けた第２機器認証情報と、特殊ＬＢＡ領域（システムエリア）１１ａ内の第１機器認証情報とに基づいて機器認証を実行し、この機器認証が失敗したとき、ユーザデータの無効化処理を行う機器認証機能をもっている。なお、第２機器認証情報は、機器認証処理において、第１機器認証情報と対を成す情報であり、認証を行う装置側（この場合は記憶装置１０）は、認証対象の機器から第２機器認証情報を取得し、第２機器認証情報と保持する第１機器認証情報とに基づいて機器認証を実施する。
【００５６】
構成例α１および構成例βの場合（第１部分鍵である内部情報Ｇを保持する記憶装置１０の場合）は、機器認証モジュール２１は、機器認証に失敗したときに、特殊ＬＢＡ領域（システムエリア）１１ａ内の内部情報Ｇを破棄する機能を有する。
【００５７】
また、構成例α１および構成例βの場合（第１部分鍵である内部情報Ｇを保持する記憶装置１０の場合）には、機器認証モジュール２１は、機器認証の後、認証したホスト装置３０Ａ（又は３０Ｂ，…）から受けとった第２部分鍵とシステムエリア１１ａ内の内部情報Ｇ（第１部分鍵）とを複合し、生成した第３部分鍵Ｋ３をＳＲＡＭ２５に書込む第３部分鍵書込部としての機能を有する。
【００５８】
ここで、複合とは、複数のデータに基づいて、なにかしらのデータを得る操作のことであり、その目的を達成できるものであれば、内容を問わない。例えば、内部情報Ｇが第２部分鍵によって予め暗号化されている情報であって、内部情報Ｇを第２部分鍵で復号（平文化）したものが第３部分鍵であってもよい。あるいは、内部情報Ｇが第２部分鍵と第３部分鍵と一緒に保存したデータであり、複合の処理としては、内部情報Ｇから第２部分鍵を取り除いて第３部分鍵を生成する操作であってもよい。これらは一例にすぎず、複合とは、第２部分鍵、内部情報Ｇおよび第３部分鍵の間に所定の関係を定義できるような処理であればどのような処理でもよい。
【００５９】
また、本実施形態における、ユーザデータの無効化処理とは、不正なホスト装置からユーザデータを保護するために、ホスト装置からユーザデータを読み出しできなくする処理である。以下、ユーザデータの無効化処理の具体例について説明する。
【００６０】
まず、ユーザデータの無効化処理の第１の方法として、前述のアドレス変換情報を初期化する方法がある。初期化とは、論理アドレスに対応するユーザデータを記録した物理アドレスを取得できない状態にすることである。例えば、ユーザデータの全部または予め設定された一部のアドレスに対応するアドレス変換情報のエントリを削除する。この場合、アドレス変換情報の大きさは、記憶装置１０全体のデータ量に対して非常に小さいため、ユーザデータを実際に削除する場合等よりきわめて短時間でユーザデータの無効化ができる。または、無効化対象のユーザデータに対応するアドレス変換情報の物理アドレスを、無効なデータが記憶される領域に対応する特殊物理アドレスに変更するようにしてもよい。
【００６１】
アドレス変換情報を初期化した（エントリが削除された）場合、ドライブ制御回路２０は、ＮＡＮＤメモリ１１上のデータを論理アドレスを介さずに読み出す手段（例えば物理アドレスを指定して読み出す手段）を別に設けなければ、ＮＡＮＤメモリ１１からデータを読み出すことは不可能になる。
【００６２】
なお本方式では、ＮＡＮＤメモリ１１上にはデータが記載されたままなので、分解されると、不揮発性半導体メモリから直接読み出すことが可能になる恐れがある。ただし、ＮＡＮＤメモリの特性として、データをランダム化して記録した方が、寿命が延びるという特性があり、近年の微細化の進んだＮＡＮＤメモリをＮＡＮＤメモリ１１として備える記憶装置１０では、データがランダマイズ化されて記録される。ランダム化の方式としては、当然ながら可逆変換が使われるが、疑似乱数（暗号に使えるような暗号的な意味での乱数の必要はない）を使用する方法や、暗号アルゴリズムを使う方法がある。暗号アルゴリズムを使う場合は、暗号化が目的でないため、固定鍵や、短い鍵長でも構わない。固定鍵や鍵長の短い鍵を用いると、暗号強度は弱まるが、ＮＡＮＤメモリ１１の寿命を延長する目的のためには十分であるからである。これらのデータランダマイズ用のハードウェアは、データを保護するための暗号化機能に比べて、簡単なハードウェアで実現できる。いずれにせよ、近年の微細化の進んだＮＡＮＤメモリを備える記憶装置１０では、暗号化ドライブで使うランダム化のためのハードウェアより、簡単なハードウェアでランダマイズすることができるため寿命延長のためにデータをランダマイズしてＮＡＮＤメモリに記録することが多い。従って、仮に分解して、ＮＡＮＤメモリ１１から直接データを読み出しても、多くの場合、ただちに、データを得ることはできない。
【００６３】
なお、実際の実装にあたっては、管理の都合から、外部から与えられた論理アドレスを、機器内部の内部論理アドレスに変換して、しかるのち内部論理ブロックアドレスへ変換し、最後に物理アドレスに変換するという複数段階の構成をとることもできる。前述の説明でいうアドレス変換情報を無くすという操作は、この外部から与えられた論理アドレスから、最終的な物理アドレスへの変換過程の、どこか１箇所で行えばよい。実装の一例として、ＮＡＮＤメモリ１１のアドレス空間を、図５で示したように、ユーザ領域と非ユーザ領域とに分けておくことができる。この場合、この場合、ユーザ領域に対応するアドレス変換情報のみを破棄することにより、記憶装置１０の動作に必要なシステムエリアの情報を失わず、ホスト装置からのデータアクセスを不能にすることができる。
【００６４】
ユーザデータの無効化処理の第２の方法として、不揮発性半導体メモリ１１がＮＡＮＤメモリで有る場合は、ユーザデータを記録した領域を消去する方法がある。ＮＡＮＤメモリは、磁気記録を用いたハードディスクドライブとは異なり、上書きができないため、ブロック単位で消去してから記録する。この際、時間がかかるのは記録（書き込み）であるため、消去だけであれば非常に高速に実行することが可能である。
【００６５】
これによって、実際に記録されたデータそのものを消去することが可能である。例えば、１ブロックの消去と記録では２００ｍｓ必要なところが消去だけでは５ｍｓ以下と、１ブロック全体上書きによりもとのデータを消去する場合の１／４０以下の時間で消去が可能になる。
【００６６】
なお、一般に、ＮＡＮＤメモリを用いた記憶装置では、通常の記録動作時において、前述のアドレス変換情報からブロックが除かれた時など、ブロックが有効なデータを保持しなくなった時点で、すなわちフリーブロックになった時点で消去する場合と、フリーブロックになった時には消さずに、記録する直前に消す方法がある。
【００６７】
本実施形態のユーザデータ無効化処理における消去では、フリーブロックになったか否かを問わず、ユーザデータが記録されている可能性のある全ブロックを実際に消去してもよい。
【００６８】
また、ＮＡＮＤメモリ１１の１つのブロック中に、ユーザデータと記憶装置１０の内部情報等とが混在して記録されている場合は、ユーザデータ以外を別のブロックにコピーしてから消去する。
【００６９】
アドレス変換情報の消去とブロックの消去（ＮＡＮＤメモリ１１上の実際のブロックのデータの消去）はどちらを先に行ってもよいが、アドレス変換情報を初期化（消去）せずに対応するブロックのデータを消去してしまうと、符号化の方式によっては読みだしたデータのエラー訂正符号が整合しなくなり、その後はすべて訂正不能ＵＮＣ（Uncorrectable  Error）となる。この方法を用いると、実際に消去されていることの確認が容易になる。データの消去の確認後、改めてホスト装置からの要求に基づいて、前述のアドレス変換情報の消去をおこなってもよい。
【００７０】
なお、ＮＡＮＤメモリ１１は、ドライブ制御回路２０から発行されるコマンドに従って動作する。消去の場合は、例えば、消去するブロックのアドレスをドライブ制御回路２０からＮＡＮＤメモリ１１へ送り、続いて消去コマンドを送付することによって、ＮＡＮＤメモリ１１内において消去が実行される。以下の説明において、ＮＡＮＤメモリ１１内の動作を説明しているが、これらはすべて、ドライブ制御回路２０から送付されたコマンドと、物理ブロックアドレスと、に基づいて、ＮＡＮＤメモリ１１内で動作が実行されることを意味している。
【００７１】
さらに、ユーザデータ無効化処理の第３の方法として、第２の方法の消去を不完全な消去とする方法がある。不揮発性メモリ１１としてＮＡＮＤメモリを用いている場合、この第３の方法を用いれば、データ無効化による消去を不完全ながら高速に行うことができる。通常のＮＡＮＤメモリにおけるデータの消去は、記録可能になるまで完全消去する方法により実施される。ＮＡＮＤメモリにおいてデータを消去する場合は、消去の対象のブロック中のワード線ＷＬ０〜ＷＬｑを選択し、つまり該当するワード線の電位を０Ｖとし、Ｓｉ基板であるP-Wellに、所定の電圧を所定時間加えることで、浮遊ゲート中の電子を抜き出す。その後、消去状況の確認（Erase  Verify）を行い、完全に消えていなければ、また消去するという操作を数回繰り返すことによって完全に消去する（例えば、上記特許文献３参照）。
【００７２】
しかし、ＮＡＮＤメモリから読めなくなることだけが目的であれば、消去操作一回だけにして消去状況の確認（消去べリファイ）を実施しない、あるいはその回数を減らすことにより、消去時間を短縮できる。この場合、完全には消去されていない状態となるが、各メモリセルの値はばらばらに変化しており、事実上読み出し不能になる。
【００７３】
このように、ここでいう不完全な消去というのは、再記録のための消去としては不十分だが、データ読出しができなくなるという意味では十分な消去である。どこまで消去すれば十分かという点については、ハードウェア構成や様々な要求等により異なってくるため消去回数が１回では不足な場合もあるもしれないが、いずれにせよ、完全なブロック消去より消去回数を減らすことで完全なブロック消去より高速になる。
【００７４】
あるいは、１回の消去時間（消去電圧の印加時間）を、読めなくなるのに十分な時間にする等、調整によって様々なバリエーションが考えられる。なお、消去作業により、全メモリセルの電圧が均等に下がるのではなく、メモリセル毎にばらばらに下がる。このため、仮にメモリセルに電位が残っていても、読み出しレベル（読み出し時にワード線に印加する電圧）を変えるなどして再現（読み出したデータの復元）することは極めて困難になる。
【００７５】
なお、このように不完全な消去により消去したブロックに、新たにデータを記録してしまうと、データ化けが発生してしまう。このため、新たに記録を行う前には、再度、通常の消去動作をする必要がある。フリーブロックを記録直前に消去してから使う方式であれば、特に不完全な消去をしたことを覚えておく必要はない。フリーブロック化時に消去する方式であれば、不完全な消去をしたブロックを記憶装置１０内部の管理情報として記録しておき、後に、再度完全消去する必要がある。
【００７６】
さらに、ユーザデータ無効化処理の第４の方法として、第２、第３の消去方法において、データ無効化処理における消去をさらに高速に行うために、チップ（ＮＡＮＤメモリチップ）内の複数ブロックを同時に消去する方法もある。これは、複数の指定したブロックを一度に消去するＮＡＮＤメモリのコマンドを使うことにより実現するものであり、例えば上記特許文献４に記載の方法で実現することができる。なお、複数ブロックの同時消去の方法は上記特許文献４に記載の方法に限定されない。ＮＡＮＤメモリ１１内で、該当するブロック内のワード線を全て選択した上、Ｓｉ基板であるP-Wellに所定の電圧を所定時間加えることで、浮遊ゲート中の電子を抜き出すことによって消去する方法である。この第４の方法は、完全に消去されたか確認して、消去されていない場合は、再度消去動作を行えば、第２の方法の複数ブロック同時消去方式への変形版となり、完全に消去する前に止めてしまえば、第３の方法の複数ブロック同時不完全消去方式への変形版となる。
【００７７】
さらに、ユーザデータ無効化処理の第５の方法として、不揮発性半導体メモリ１１としてＮＡＮＤメモリが用いられている場合、記憶装置１０におけるユーザデータ無効化処理後に装置が機能しない、つまり故障状態になっても構わないのであれば、一回の操作で、チップ単位でデータを消す方法を用いてもよい。これは、消去対象のチップ中の全てのワード線を選択し、P-Wellに電圧を加えることによって、全体を消去するものである。ただし、この方式は消費電力が大きくなる場合があるので、複数のチップをまとめて消すことができない場合は、１枚ずつ消去するなどの制御が必要となる。
【００７８】
なお、一般にＮＡＮＤメモリを用いた記憶装置では、ＮＡＮＤメモリ中にも、ドライブの制御プログラムであるファームウェア、制御プログラムが用いる前述のアドレス変換情報などの管理情報も記録されるため、本方式を用いると、これらのデータも全て消去することになり、消去後は、記憶装置として動作しなくなる。
【００７９】
なお、チップ全体のデータ無効化としては、消去の他に、全てのメモリセルの電位が上がる方向、つまり記録電圧をかけて上書きしてしまってもよい。具体的には、例えば全ビット線を０Ｖにして、全ＷＬにプログラム電圧を与えてしまえばよい。
【００８０】
消去後は、例えば、ドライブ制御回路内に保持されるＩＰＬ（Initial  Program  Loader）と呼ばれるファームウェアロード用コードが、ファームフェアを見つけられずエラーを検出し、インターフェース経由や、ドライブアクセス状況の通知用のＬＥＤの信号性を利用して、ファームフェアが存在しないことを示すようにすることによって、外部から、他の故障と区別が可能となる。
【００８１】
なお、本実施形態では、ユーザデータの無効化処理では、ＮＡＮＤメモリ１１の全てのデータ（ユーザデータ以外のファームウェア等が用いる領域も含む）を消す方法ではなく、ユーザデータ部分を消去する方法の方が望ましい。つまり、上述の第５の方法より、第１の方法から第４の方法までの方が好ましい。第５の方法のように、ＮＡＮＤメモリ１１内の全てのデータを消去する方法を用いた場合には、無効化処理時点で動作を停止するか、継続した場合であっても途中で後述の動作ができなくなる。
【００８２】
なお、この他にも、ユーザデータ無効化処理は、様々な実施方法が考えられる。例えば、単に、前述の特殊ＬＢＡ領域（システムエリア）１１ａ（以下、システムエリア１１ａと略す）に、ユーザデータが、無効化処理がされていることを示す情報を記録し、この記録がある場合、以後のホスト装置からの読み出し命令に応答しなくする方法もある。ただし、この方法は、ほとんどの情報がそのまま不揮発性半導体メモリ上に残っているため、様々な攻撃に対する防御力が弱い。また、この場合、ホスト装置から書き込み命令を受け取る前に、少なくとも、アドレス変換情報を初期化する必要がある。もしくは、無効化処理がされている論理アドレスを記録する必要がでてくるが、これは処理が煩雑になる。
【００８３】
他に、実際に、ユーザデータの記録されているＮＡＮＤメモリ１１上の領域をすべて、意味の無いデータ、例えば０で上書きしてしまう方法もあるが、書き込み時間が長いＮＡＮＤメモリにおいて、この様な上書き処理は時間がかかり非実用的である。
【００８４】
以上のようにユーザデータの無効化処理には、様々な方法を取りうるので、ユーザデータ無効処理にあたって使用する方法を、ホストから予め設定できるようにしてもよい。すなわち、記憶装置１０のシステムアリア１１ａに、前述、および後述の実施例で述べる各種情報に加え、ユーザデータ無効化方式を記憶する。この場合、消去方式によっては併用できるものもあるので、記憶できる方式は１種類以上であってもよい。
【００８５】
機器認証モジュール２１は、前述した各機能に加え、ユーザデータ無効化方式の設定要求を正規のホスト装置３０Ａから受けると、当該ユーザデータ無効化方式情報をシステムエリア１１ａに設定（記憶）する設定機能をもっている。
【００８６】
例えば、前述の第１方式であるアドレス変換情報の初期化のみ設定、前述の第２の方法であるユーザデータを保持するブロックの完全消去のみ設定、前述の第３の方法であるユーザデータを保持するブロックの不完全消去のみ設定、といった単独の無効化方法設定の他、前述の第１の方法であるアドレス変換情報を初期化と、前述の第３の方法である不完全なユーザデータ消去の組み合わせ実施の設定といった具合である。
【００８７】
これを実現するには、ユーザデータ無効化方式のそれぞれの方式毎に、実施の可否を設定（記憶）してもよいし、可能な組み合わせ毎に番号を与え、その番号を記憶してもよい。あるいは、無効化の強度に応じてレベル付を行い、そのレベルで設定できるようにしてもよい。そして、機器認証モジュール２１は、ユーザデータ無効化処理の実施の際、システムアリア１１a内に記憶した無効化方式情報に基づいて、ユーザデータの無効化処理を実施する機能を持っている。以上の構成により、ホスト装置から設定したユーザデータ無効化方式を用いて、ユーザデータの無効化が実行される。
【００８８】
なお、構成例βの場合には、第１部分鍵及び暗号鍵の破棄を、ユーザデータ無効化処理の方式と見なして、使用する方法として選択できるようにしてもよい。
【００８９】
ユーザ認証モジュール２２は、機器認証モジュール２１による機器認証後、認証処理中のホスト装置３０Ａ（又は３０Ｂ，…）から受けた第２ユーザ認証情報と、システムエリア１１ａ内の第１ユーザ認証情報とに基づいてユーザ認証を実行するユーザ認証機能を有する。
【００９０】
なお、構成例α１の場合は、第３部分鍵と第１ユーザ認証情報とを複合して保護化第１ユーザ認証情報を生成し、保護化第１ユーザ認証情報をシステムエリア１１ａ内に内部情報Ｇとして予め記憶しておく。そして機器認証時に、内部情報Ｇとホスト装置３０Ａ（又は３０Ｂ，…）から受け取った第２部分鍵とを複合して第３部分鍵Ｋ３を生成しＳＲＡＭ２５に保持しておく。そして、ユーザ認証時に、保護化第１ユーザ認証情報と、第３部分鍵Ｋ３とに基づいて第１ユーザ認証情報を生成し、生成した第１ユーザ認証情報と、ホスト装置３０Ａ（又は３０Ｂ，…）から受け取った第２ユーザ認証情報と、に基づいてユーザ認証を実行する。この場合、不正なホスト装置に接続された場合には、正しい第３部分鍵Ｋ３が得られないため、正しい第２ユーザ情報がホスト装置から送られてきても、認証に失敗する効果が得られる。なお、この場合、保護化ユーザ認証情報は、第１ユーザ認証情報の一部を保護化したものでもよい。例えば、第１ユーザ認証情報がユーザパスワードと、ユーザＩＤであれば、ユーザパスワードのみ保護化してもよい。
【００９１】
構成例α２の場合は、第１ユーザ認証情報は予めシステムエリア１１ａに記憶しておき、上述の内部情報と第１ユーザ認証情報とを用いた複合処理等は実施しない。また、内部情報Ｇも持たない。
【００９２】
また、構成例βの場合は、内部情報Ｇとホスト装置３０Ａ（又は３０Ｂ，…）から受け取った第２部分鍵とを複合して第３部分鍵Ｋ３を生成してＳＲＡＭ２５内に保持しておく。ユーザ認証モジュール２２は、ユーザ認証の後、ＳＲＡＭ２５内の第３部分鍵とホスト装置３０Ａ（又は３０Ｂ，…）から受け取った第２ユーザ認証情報とを複合して暗号鍵を生成し、生成した暗号鍵をＳＲＡＭ２５に書込む。
【００９３】
なお、構成例α、βのいずれの場合も、ユーザ認証モジュール２２は、ユーザ認証が規定回数だけ失敗したとき、ユーザデータの無効化処理を行う機能を持っていてもよい。また構成例α１および構成例βの場合、ユーザ認証モジュール２２は、システムエリア１１ａ内の内部情報Ｇ及びＳＲＡＭ２５またはシステムエリア１１ａ内の第３部分鍵を破棄する鍵破棄機能をもっていてもよい。また、ユーザデータ無効化処理、鍵破棄の両方を実行するようにしてもよい。また、ユーザデータ無効化処理および鍵破棄処理に代えて、ユーザ認証モジュール２２は、ユーザ認証が規定回数だけ失敗したとき、ＮＡＮＤメモリ１１からデータを読み出してホスト装置３０Ａ（又は３０Ｂ，…）に出力することをせず、ユーザ認証エラーを現在のホスト装置３０Ａ（又は３０Ｂ，…）に出力するエラー出力機能をもっていてもよい。
【００９４】
暗号化モジュール２３は、ユーザ認証が成功したとき、データ記憶モジュール２６がデータを書き込む際、現在のホスト装置３０Ａ（又は３０Ｂ，…）から受けたデータＤを含む書込要求に従い、ＳＲＡＭ２５内の暗号鍵Ｋｇに基づいて書込要求内のデータＤを暗号化して、暗号化データＥｇ（Ｋｇ，Ｄ）に変換する暗号化機能をもっている。
【００９５】
復号化モジュール２４は、ユーザ認証が成功したとき、データ読出モジュール２７がデータを読み込む際、現在のホスト装置３０Ａ（又は３０Ｂ，…）から受けた読出要求に基づいて読みだしたユーザエリア１１ｂ内の暗号化データをＳＲＡＭ２５内の暗号鍵に基づいて復号する復号化機能をもっている。
【００９６】
ＳＲＡＭ２５は、各モジュール２１〜２４及び２５、２６から読出／書込可能な揮発性メモリであり、構成例βの場合、図７に示すように、第３部分鍵Ｋ３の生成前に第２部分鍵としての固有情報“ＡＡ”及び第１部分鍵としての内部情報Ｇが一時的に記憶され、第３部分鍵Ｋ３生成時には、固有情報“ＡＡ”及び内部情報Ｇが消去されて第３部分鍵Ｋ３が一時的に書き込まれる。同様に、暗号鍵Ｋｇ生成時には、複合用の第２ユーザ認証情報が一時的に記憶され、第３部分鍵Ｋ３及び第２ユーザ認証情報が消去されて暗号鍵Ｋｇが書き込まれる。なお、「書き込まれる」の語は「設定される」ともいう。また、暗号鍵Ｋｇは、記憶装置１０の電源オフ時にＳＲＡＭ２５から消去される。さらに、固有情報“ＡＡ”、内部情報Ｇ、第３部分鍵Ｋ３及び第２ユーザ認証情報の一時的な記憶と、電源オフ時までの暗号鍵Ｋｇの記憶とは、ＳＲＡＭ２５に代えて、ＤＲＡＭ１９が実行してもよい。また、第２部分鍵としては、ホスト装置３０Ａの固有情報“ＡＡ”に限定されず、正規のホスト装置３０Ａが管理する任意のデータが使用可能となっている。また、ＳＲＡＭ２５は、アドレス変換情報の読み出しキャッシュとしても使用してよい。
【００９７】
構成例α１の場合には、第３部分鍵Ｋ３の生成前に第２部分鍵としての固有情報“ＡＡ”及び第１部分鍵としての内部情報Ｇが一時的に記憶され、第３部分鍵Ｋ３生成時には、固有情報“ＡＡ”及び内部情報Ｇが消去されて第３部分鍵Ｋ３が一時的に書き込まれる。第３部分鍵Ｋ３は、保護化第１ユーザ認証情報に基づいて第１ユーザ認証情報を生成する際に用いられ、第１ユーザ認証情報を生成した後に第３部分鍵Ｋ３は破棄される。
【００９８】
一方、ホスト装置３０Ａは、アクセス権のあるユーザに用いられ、記憶装置１０を接続可能な通常のコンピュータである。
【００９９】
具体的には、ホスト装置３０Ａは、インターフェース３１、メモリ３２Ａ、入力モジュール３３、ＣＰＵ３４及び出力モジュール３５を備えている。なお、ホスト装置３０Ａと、後述する他のホスト装置３０Ｂとは、メモリ３２Ａの記憶内容以外はほぼ同一構成である。このため、各要素３１〜３５のうち、メモリ３２Ａのみ“Ａ”の符号を付している。
【０１００】
インターフェース３１は、記憶装置１０をホスト装置３０Ａに接続するためのモジュールである。説明の簡略化のため、以下の説明では、記憶装置１０とのデータ伝送にインターフェース３１を介する旨の記載を省略する。
【０１０１】
メモリ３２Ａは、入力モジュール３３、ＣＰＵ３４及び出力モジュール３５から読出／書込可能な記憶部であり、例えば、図８に示すように、第２部分鍵と、第２機器認証情報と、機器認証プログラムと、ユーザ認証プログラムと、アプリケーションプログラムとを記憶している。また、メモリ３２Ａには、各プログラムの実行に応じて、適宜、処理途中及び処理結果のデータが記憶される。
【０１０２】
ここで、第２部分鍵は、記憶装置１０で作成される暗号鍵の他の一部を構成する鍵データである。第２部分鍵としては、例えば、自装置（ホスト装置３０Ａ）の固有情報“ＡＡ”を用いるが、この例に限定されない。以下の説明では、第２部分鍵を固有情報“ＡＡ”として述べる。
【０１０３】
第２機器認証情報は、記憶装置１０への接続権限をもつ正規のホスト装置３０Ａを記憶装置１０に機器認証させるためのものであり、任意の機器認証方式の機器認証情報が使用可能となっている。
【０１０４】
機器認証プログラムは、ＣＰＵ３４により実行され、ホスト装置３０Ａを、ホスト装置３０Ａに記憶装置１０が接続されると、記憶装置１０の機器認証モジュール２１により実行される機器認証の規定の認証シーケンスに沿って、メモリ３２Ａ内の第２機器認証情報を記憶装置１０に送信する機器認証情報送信手段として動作させるものである。
【０１０５】
ユーザ認証プログラムは、ＣＰＵ３４により実行され、ホスト装置３０Ａを、入力モジュール３３にて入力を受け付けた第２ユーザ認証情報を記憶装置１０に送信するユーザ認証情報送信手段として動作させるものである。
【０１０６】
アプリケーションプログラムは、ＣＰＵ３４により実行される任意のプログラムであって、例えば、ホスト装置３０Ａを、入力モジュール３３にて入力を受け付けた読出要求を記憶装置１０に送信する読出要求送信手段として動作させるものである。
【０１０７】
これに加え、アプリケーションプログラムは、例えば、ホスト装置３０Ａを、当該入力を受け付けた書込要求を記憶装置１０に送信する書込要求送信手段として動作させるものであってもよい。
【０１０８】
さらに、アプリケーションプログラムは、例えば、ホスト装置３０Ａを、記憶装置１０からデータを読み出す手段と、当該読み出したデータに基づいて業務処理を実行し、処理結果を記憶装置１０に書き込む手段として動作させるものであってもよい。
【０１０９】
入力モジュール３３は、ユーザとの間の入力インターフェースであり、例えば、ユーザの操作に応じて、第２ユーザ認証情報の入力を受け付けるユーザ認証情報受付手段と、ユーザの操作に応じて、読出要求の入力を受け付ける読出要求受付手段として動作させるものである。これに加え、入力モジュールは、ユーザの操作に応じて、データを含む書込要求の入力を受け付ける書込要求受付手段として動作させるものであってもよい。入力モジュールとしては、例えば、キーボード及びマウス等の入力デバイスが適宜使用可能となっている。
【０１１０】
ＣＰＵ３４は、メモリ３２Ａ内のデータに基づいて、メモリ３２Ａ内の各プログラムを実行する演算処理装置である。
【０１１１】
出力モジュール３５は、ユーザとの間の出力インターフェースであり、例えば、ディスプレイ装置等の出力デバイスが適宜使用可能となっている。
【０１１２】
次に、以上のように構成された記憶システムの動作を図９、図１０及び図１１のフローチャートを用いて説明する。図９は、構成例α１の動作の一例を示し、図１０は、構成例βの場合の動作の一例を示している。図１１は、後述のステップＳＴ４０の詳細処理手順の一例を示すフローチャートである。なお、構成例α２の場合（内部情報Ｇを保持しない場合）は、図９の処理のうち第３部分鍵に係る処理は行わないが、それ以外は図９の処理と同様である。
【０１１３】
なお、記憶装置１０は、構成例αの場合は、ユーザデータＤを、構成例βの場合は、暗号化データＥｇ（Ｋｇ，Ｄ）をＮＡＮＤメモリ１１内に記憶しているとする。また、ホスト装置３０Ａは、メモリ内３２Ａの機器認証プログラム、ユーザ認証プログラム及びアプリケーションプログラムをＣＰＵ３４が実行中であるとする。
【０１１４】
まず、図９を用いて、構成例αの場合の動作を説明する。この状況において、記憶装置１０は、正規のユーザにより、正規のホスト装置３０Ａに接続されて電源がオン状態にされたとする。これにより、記憶装置１０は、ホスト装置３０Ａに対する機器認証を実行する（ステップＳＴ１０）。
【０１１５】
具体的には、ホスト装置３０ＡのＣＰＵ３４は、記憶装置１０が接続されると、機器認証の規定の認証シーケンスに沿って、メモリ３２Ａ内の第２機器認証情報を記憶装置１０に送信する。
【０１１６】
記憶装置１０の機器認証モジュール２１は、新たに接続された現在のホスト装置３０Ａから受けた第２機器認証情報と、システムエリア１１ａ内の第１機器認証情報とに基づいて機器認証を実行する。機器認証モジュール２１は、機器認証に失敗したときには、ユーザデータの無効化処理を行う。さらに、構成例α１の場合には、機器認証モジュール２１は、機器認証に失敗したときには、内部情報Ｇを破棄して代わりに内部情報Ｉ（内部情報Ｉ≠内部情報Ｇ）とする。ここでは、機器認証が成功したとする。
【０１１７】
構成例α１の場合には、機器認証モジュール２１は、認証処理により機器認証が成功すると、ホスト装置３０Ａから受けた固定情報“ＡＡ”とシステムエリア１１ａ内の内部情報Ｇとを複合して生成した第３部分鍵Ｋ３をＳＲＡＭ２５に書込む。この第３部分鍵Ｋ３は正しい部分鍵である。なお、前述した機器認証が失敗した場合には、破棄状態の内部情報Ｉを含む誤った部分鍵Ｋ３ｉが書き込まれることになる。
【０１１８】
いずれにしても、構成例α１、つまり内部情報Ｇを利用する場合は、第３部分鍵の書込により、ステップＳＴ１０の機器認証が完了する。
【０１１９】
次に、記憶装置１０は、ホスト装置３０Ａに対するユーザ認証を実行する（ステップＳＴ２０）。
【０１２０】
具体的には、ホスト装置３０Ａの入力モジュール３３は、ユーザの操作に応じて、第２ユーザ認証情報の入力を受け付ける。ＣＰＵ３４は、入力を受け付けた第２ユーザ認証情報を記憶装置１０に送信する。
【０１２１】
記憶装置１０のユーザ認証モジュール２２は、現在のホスト装置３０Ａから受けた第２ユーザ認証情報と、システムエリア１１ａ内の第１ユーザ認証情報とに基づいてユーザ認証を実行する。ここでは、ユーザ認証が成功するとする。ここで、第１ユーザ認証情報が第３部分鍵Ｋ３と複合されて、システムエリア１１ａ内に保護化第１ユーザ認証情報として保存されている場合（構成例α１の場合）は、第３部分鍵Ｋ３と、保護化第１ユーザ認証情報と、に基づいて第１ユーザ認証情報を生成し、前述の認証を行う。この方式を採用した場合、機器認証で失敗した場合は、誤った第３部鍵Ｋ３ｉが生成されるため、誤った第１ユーザ認証情報が生成されるため、正しい第２ユーザ認証情報がホスト装置から送られたとしても、かならずユーザ認証は失敗する。
【０１２２】
なお、ユーザ認証が失敗した場合には、ユーザ認証モジュール２２の無効化処理によりユーザデータが無効化される。
【０１２３】
なお、構成例α１では、第３部分鍵で、第１ユーザ認証情報を暗号化したものを保護化第１ユーザ認証情報としたが、これによって、保護化第１ユーザ認証情報の解読が困難になり、セキュリティが向上する効果がある。
【０１２４】
これにより、ステップＳＴ２０のユーザ認証が完了する。
【０１２５】
ユーザ認証の終了後、記憶装置１０は、ユーザによるホスト装置３０Ａの操作に応じて、ステップＳＴ３０〜ステップＳＴ５０に移行する。ここでは、ステップＳＴ３０の認証失敗時の設定動作を実行せず、ステップＳＴ４０〜ステップＳＴ５０を実行する場合を述べる。
【０１２６】
ホスト装置３０Ａの入力モジュール３３は、ユーザの操作に応じて、読出要求の入力を受け付ける。ＣＰＵ３４は、入力を受け付けた読出要求を記憶装置１０に送信する。
【０１２７】
記憶装置１０のデータ読出モジュール２７は、現在のホスト装置３０Ａから受けた読出要求に基づいて、システムエリア１１ａ内のアドレス変換情報を用いて読み出し得られたＮＡＮＤメモリ１１内のデータＤを現在のホスト装置３０Ａに出力する（ステップＳＴ４０）。なお、ステップＳＴ４０のデータ読出処理においては、ユーザデータの無効化処理がなされていなければ、正しいデータＤが得られるが、ユーザデータ無効化処理がされていると正しいデータが出力されない。
【０１２８】
次に、ホスト装置３０Ａの入力モジュール３３は、ユーザの操作に応じて、例えばデータＤ１を含む書込要求の入力を受け付ける。ＣＰＵ３４は、入力を受け付けた書込要求を記憶装置１０に送信する。記憶装置１０のデータ記憶モジュール２６は、現在のホスト装置３０Ａから受けたデータＤ１を含む書込要求に従い、ユーザエリア１１ｂ内の有効データを保持しない位置にデータを書き込み、ホスト装置から送付された論理アドレスと実際に記録した物理的な位置の対応状況を、システムエリア１１ａ内に保持したアドレス変換情報に書き込む。これにより、ステップＳＴ５０が完了する。
【０１２９】
以下、記憶装置１０は、ユーザによるホスト装置３０Ａの操作に応じて、ステップＳＴ４０の読出処理と、ステップＳＴ５０の書込処理が適宜、繰り返し実行される。
【０１３０】
しかる後、記憶装置１０は、ユーザの操作に応じて、電源がオフ状態にされる（ステップＳＴ６０）。これにより、記憶装置１０では、ＤＲＡＭ１９及びＳＲＡＭ２５内のデータが消去される。
【０１３１】
なお、本実施形態では、以上のように、機器認証モジュール２１およびユーザ認証モジュール２２が、ユーザデータの無効化処理を実施するユーザデータ無効化部としての機能を有している。このような構成に限らず、ユーザデータ無効化部を機器認証モジュール２１およびユーザ認証モジュール２２とは別に備え、機器認証モジュール２１およびユーザ認証モジュール２２の認証処理により認証されなかった場合に、ユーザデータ無効化部が上述のユーザデータの無効化処理を行ってもよい。
【０１３２】
次に、図１０を用いて構成例βの場合の動作を説明する。ステップＳＴ１１０は構成例α１のステップＳＴ１０における構成例α１と同様である。ユーザ認証時には、ユーザ認証モジュール２２は、ユーザ認証処理を行い、ユーザ認証の後、ＳＲＡＭ２５内の第３部分鍵と、第２ユーザ認証情報とを複合し、生成した暗号鍵をＳＲＡＭ２５に書込む（ステップＳＴ１２０）。なお、機器認証モジュール２１は、機器認証に失敗したときには、構成例α１の場合と同様に、内部情報Ｇを破棄して代わりに内部情報Ｉ（内部情報Ｉ≠内部情報Ｇ）とする。また、同様にユーザ認証に失敗した場合には、ユーザ認証モジュール２２により、機器認証の失敗時と同様に誤った暗号鍵がＳＲＡＭ２５に書き込まれることになる（ステップＳ１３０）。
【０１３３】
ここでは、ユーザ認証が成功し、ステップＳＴ１３０を実施せず、ステップＳＴ１４０，１５０へ以降する場合を説明する。ユーザ認証後、ＳＲＡＭ２５内の第３部分鍵と、第２ユーザ認証情報と、を複合し、複合により生成した暗号鍵をＳＲＡＭ２５に書き込む。そして、ホスト装置５０Ａから読み出しの要求を受け取ると、要求されたユーザデータに対応する暗号化データＥｇ（Ｋｇ，Ｄ）をシステムエリア１１ａ内のアドレス変換情報を用いてＮＡＮＤメモリ１１から読み出し、読み出し得られた暗号化データＥｇ（Ｋｇ，Ｄ）を復号化モジュール２４を用いてＳＲＡＭ２５内の暗号鍵Ｋｇに基づいて復号してデータＤを得てから現在のホスト装置３０Ａに出力する（ステップＳＴ１４０）。これにより、ステップＳＴ１４０が完了する。
【０１３４】
なお、ステップＳＴ１４０のデータ読出処理においても、ユーザデータの無効化処理がなされていなければ、正しいデータＤが得られるが、ユーザデータ無効化処理がされていると正しいデータが出力されない。
【０１３５】
ホスト装置５０ＡからデータＤ１の書き込みの要求を受け取ると、ＳＲＡＭ２５内の暗号鍵Ｋｇに基づいて書き込み対象のデータＤ１を暗号化してＥｇ（Ｋｇ，Ｄ１）を生成したのち、ステップ５０と同様の処理をおこなってＮＡＮＤメモリ１１へ書き込む（ステップＳＴ１５０）。これにより、ステップＳＴ１５０が完了する。
【０１３６】
なお、記憶装置１０がユーザデータ暗号化機能を有する場合は、例え、ホスト装置側から与える情報を入手して、記憶装置１０を分解して不揮発性メモリから情報を直接読出し、各種情報がわかったとしても、内部情報Ｇが破棄され内部情報Ｉしか残っていないため、正しい暗号鍵Ｋｇを得ることはできず、正しいデータＤを復号することはできない。
【０１３７】
以下、記憶装置１０は、ユーザによるホスト装置３０Ａの操作に応じて、ステップＳＴ１４０の読出処理と、ステップＳＴ１５０の書込処理が適宜、繰り返し実行される。ステップＳＴ１６０はステップＳ６０と同様である。
【０１３８】
また、図１１に示すように、ステップＳＴ４０およびステップＳ１４０の読み出し処理においては、ホスト装置（ホスト装置３０Ａ，３０Ｂ，…）からデータ読み出し要求を受けとると（ステップＳＴ４１）、ドライブ制御回路２０は、アドレス変換情報に基づいて読み出しを要求されたデータに対応する物理アドレスが存在するかを判断する（ステップＳＴ４２）。対応する物理アドレスが存在する場合（ステップＳＴ４２  Ｙｅｓ）、ＮＡＮＤメモリ１１の当該物理アドレスからデータを読み出してホスト装置へ出力する（ステップＳＴ４３）。対応する物理アドレスが存在しない場合（ステップＳＴ４２  Ｎｏ）、無効データ（例えば、０で埋まったデータ）をホスト装置へ出力する（ステップＳＴ４４）。
【０１３９】
上述したように本実施形態によれば、ホスト装置３０Ａ，３０Ｂ，…を機器認証し、機器認証が失敗したときにはユーザデータ無効化処理により、異なるシステムに持ち出された場合（不正なホスト装置に接続された場合）のデータ漏洩を防止することができる。さらに、暗号化機能を持つ場合は、内部情報Ｇ（第１部分鍵）の破棄によって暗号鍵を破棄する構成により、異なるシステムに持ち出された場合、記憶装置１０の分解によるデータ漏洩を防止することができる。
【０１４０】
なお、構成例βの場合は、機器認証またはユーザ認証が失敗した場合には、内部情報Ｇの書き換えを行うため復号のために必要な正しい暗号鍵が得られない。従って、構成例βの場合は、機器認証またはユーザ認証が失敗した場合には、ユーザデータの無効化処理は行ってもよいし、行わなくてもよい。
【０１４１】
また、ユーザデータ無効化処理を行った後、記憶装置１０を正規のホスト装置３０Ａに再接続したとしても、無効化処理が行われているので、データは読み出すことはできない。これにより、記憶装置１０の盗難時に確実にデータＤを破棄でき、データ漏洩を防止することができる。
【０１４２】
また、ユーザ認証の失敗時にユーザデータ無効化処理を行い、さらにユーザデータ暗号機能を持つ場合は加えて暗号鍵を破棄する構成により、装置盗難時にユーザのパスワードＰが解析される前にデータＤを破棄することができる。
【０１４３】
さらに、電源オン時に暗号鍵をＳＲＡＭ２５（揮発性メモリ）に格納することにより、電源オフ時に確実に暗号鍵を破棄することができる。
【０１４４】
なお、本実施形態によれば、ホスト装置３０Ａ，３０Ｂ，…から見た場合、記憶装置１０がユーザデータ暗号機能を持つ場合（構成例βの場合）と、持たない場合（構成例αの場合）に、記憶装置１０との取り扱い方法（接続手順等）に差が無い。ホスト装置３０Ａ，３０Ｂ，…に接続する記憶装置としては、磁気ディスクを使用するＨＤＤ（Hard  Disk  Drive）が現在においても主流であるが、ＨＤＤにおいては、暗号ドライブにおける暗号消去が実用的であり、本実施形態で述べているユーザデータ無効化技術（構成例αにおける動作）は適用できない。
【０１４５】
一方、不揮発性半導体メモリを用いた記憶装置において本実施形態の構成例αを採用すれば、ホスト装置の動作を変更することなしに、ＨＤＤでは暗号ドライブ、不揮発性半導体メモリを用いた記憶装置を用いた場合は暗号機能を持たないドライブを使用できる。このため、ホスト装置側の構成を簡単にすることができ、また記憶装置を変更した場合の動作の切替等の手間が発生しない。
【０１４６】
データの安全性についても、ユーザデータ無効化処理により、不揮発性半導体メモリに記録された情報を実際消去している場合は、ユーザデータの暗号化機能がなくても暗号機能を有する場合に比べ劣ることはない。ユーザデータ無効化処理としてアドレス変換情報のみ消去した場合でも、内部データの復元には多大な労力を必要とするため、多くの用途では情報の漏えいを防げるという効果がある。
【０１４７】
また、ユーザデータ暗号機能を持つ場合（構成例β）は、暗号化、復号化を行うハードウェアが必要になり、装置が複雑、大型化、消費電力が増大する。これに対し、構成例αでは、暗号ハードウェアを持たずに、データ漏洩を防止できる記憶装置１０が実現できるので、装置が簡単、小型となり、低消費電力化ができる。
【０１４８】
＜第２の実施形態＞
次に、第２の実施形態について前述した図１および図２を参照しながら説明する。本実施形態の記憶システムの構成例は、第１の実施形態と同様である。本実施形態においても、図１のように記憶装置１０は暗号化機能を有しない構成例αと、図２のように暗号化機能を有する構成例βの両方について説明する。また、第１の実施形態と同様に、構成例αのうち、第３の部分鍵を用いた処理を行う場合を構成例α１とし、第３の部分鍵を用いない処理を行う場合を構成例α２とする。
【０１４９】
第２の実施形態は、第１の実施形態における第１及び第２機器認証情報の具体例である。すなわち、本実施形態では、第１機器認証情報は、図１２に示すように、正規のホスト装置３０Ａの固有情報“ＡＡ”のハッシュ値ｈ（ＡＡ）である。
【０１５０】
第２機器認証情報は、図１３に示すように現在のホスト装置３０Ａの固有情報“ＡＡ”であり、記憶装置１０が、内部情報Ｇを持つ場合（構成例α１、構成例β）は、第２部分鍵としても用いられる。第２部分鍵は、第２機器認証情報としても用いられる現在のホスト装置３０Ａの固有情報“ＡＡ”である。
【０１５１】
これに伴い、記憶装置１０の機器認証モジュール２１は、現在のホスト装置３０Ａから受けた第２機器認証情報“ＡＡ”のハッシュ値ｈ（ＡＡ）を算出し、このハッシュ値ｈ（ＡＡ）と、システムエリア１１ａ内の第１機器認証情報ｈ（ＡＡ）とを照合して両者が不一致のときに、機器認証が失敗した旨を判定する機能をもっている。
【０１５２】
次に、以上のように構成された記憶システムの動作を図１４及び図１５のフローチャートを用いて説明する。図１４は、機器認証手順の一例を示すフローチャートであり、図１５は、機器認証手順の一部を詳細化したフローチャートである。なお、構成例α２の場合は、図１４における第３部分鍵に関する処理は省略され、図１５における内部情報Ｇ、第３部分鍵に関する操作も実施しない。
【０１５３】
いま、構成例αまたは構成例βにおいて、ステップＳＴ１０またはステップＳＴ１１０の機器認証が開始されるとする。
【０１５４】
ホスト装置３０ＡのＣＰＵ３４は、記憶装置１０が接続されると、機器認証の規定の認証シーケンスに沿って、メモリ３２Ａ内の固有情報“ＡＡ”を記憶装置１０に送信する。
【０１５５】
記憶装置１０の機器認証モジュール２１は、新たに接続された現在のホスト装置３０Ａの固有情報“ＡＡ”を受信する（ステップＳＴ１１）。なお、不正なホスト装置３０Ｂが接続されていた場合、機器認証モジュール２１は、固有情報“ＢＢ”（“ＡＡ”≠“ＢＢ”）を受信する。
【０１５６】
機器認証モジュール２１は、受信した固有情報“ＡＡ”のハッシュ値ｈ（ＡＡ）を算出し、このハッシュ値ｈ（ＡＡ）と、システムエリア１１ａ内の固有情報“ＡＡ”のハッシュ値ｈ（ＡＡ）とを照合し（ステップＳＴ１２）、両者が一致したか否かを判定する（ステップＳＴ１３）。
【０１５７】
ステップＳＴ１３の判定結果が否を示す場合（ステップＳＴ１３  Ｎｏ）、機器認証モジュール２１は、システムエリア１１ａ内に予め保持する他のハッシュ値があるか否かを判定し（ステップＳＴ１４）、他のハッシュ値があれば（ステップＳＴ１４  Ｙｅｓ）、他のハッシュ値を用いて照合処理を再試行するように、ステップＳＴ１２に戻る。このステップＳＴ１４は、接続可能な正規のホスト装置３０Ａ，…が複数台あり、それぞれ異なる固有情報を保持するときの処理であるので、正規のホスト装置３０Ａが１台のときには省略可能である。
【０１５８】
なお、正規のホスト装置３０Ａが複数ある場合は、固有情報“ＡＡ”が第２機器認証情報としても用いられるため、例えば、内部情報Ｇも、それぞれの正規ホスト装置３０Ａの固有情報“ＡＡ”毎の情報を含むようにすれば、正規のホスト装置３０Ａの種類にかかわらず、同一の第３部分鍵を生成することができる。
【０１５９】
以下、正規のホスト装置３０Ａが複数（ｎ台）ある場合の動作の一例を図１６を用いて説明する。図１６は、正規のホスト装置３０Ａが複数ある場合の第１機器認証情報および内部情報の一例を示す図である。ここでは、複数のホスト装置３０Ａを、ホスト装置３０Ａ−１，ホスト装置３０Ａ−２，ホスト装置３０Ａ−３，…ホスト装置３０Ａ−ｎとする。そして、複合後の内部情報ｇ−ｊ（ｊ＝１，２，…，ｎ）を、ホスト装置３０Ａ−ｊの固有情報と第１部分鍵（内部情報Ｇ）とを複合した値として生成する。具体的には、例えば、正規のホスト装置３０Ａ−ｊの固有情報”ＡＡ−ｊ“で、内部情報Ｇを暗号化して暗号化内部情報（複合後の内部情報）ｇ−ｊとし、さらに暗号化内部情報ｇ−ｊをホスト装置固有情報”ＡＡ−ｊ“のハッシュ値ｈ（ＡＡ−ｊ）（第１機器認証情報）とを対応づけて、システムエリア１１ａ内に予め保持しておく。なお、ここでは、第１認証情報がホスト装置の固有情報のハッシュ値である例を説明したが、第１認証情報は、これに限らず、ホスト装置の固有情報を一方向関数で変換した値であればよい。
【０１６０】
機器認証時には、受信した固有情報“ＡＡ”のハッシュ値ｈ（ＡＡ）と一致した値として保存されている第１機器認証情報（ハッシュｈ（ＡＡ））と対応づけられて保持されている暗号化内部情報ｇ−ｋ（ｋは、１，２，…，ｎのいずれか）を内部情報から抽出し、暗号化内部情報ｇ−ｋを“ＡＡ”を用いて平文化することによって、内部情報Ｇを得て、これを第３部分鍵とするという方法である。
【０１６１】
すなわち、予め保持しておく内部情報は、正規のホスト装置の固有情報を用いて、逆関数の存在する関数Ｆ１により変換した値とし、さらに、その変換した値を一方向関数Ｆ２で変換したホスト装置の固有情報と対応づけて保持しておく。機器認証の際には、受信したホスト装置固有情報を、一方向性関数Ｆ２で変換し、保存された、一方向関数Ｆ２で変換されたホスト装置固有情報と比較し、同一の情報が見つかれば、認証成功とする。その後、関連づけられた、ホスト装置固有情報と関数Ｆ１で変換された内部情報ｇ−ｊを、Ｆ１の逆関数とホスト装置固有情報にて、元の内部情報Ｇに戻す。関数Ｆ１による処理は、例えば暗号化であり、逆関数Ｆ１による処理は復号化である。一方向性関数Ｆ２は、例えばハッシュ関数である。
【０１６２】
また、上述の方法では、正規のホスト装置に関する情報の追加時、複合していない第１部分鍵が、記憶装置１０内にある状態である必要がある。そこで、正規のホスト装置情報を追加する場合は、すでに記憶装置１０に登録された正規のホスト装置（例えば、ホスト装置３０Ａ−１とする）が、追加したい正規のｎ番目のホスト装置３０Ａ−ｎの固有情報を予め入手しておき、正規のホスト装置３０Ａ−１が記憶装置１０と認証を完了した後、記憶装置１０に認証情報の追加命令を、ホスト装置３０Ａ−ｎの固有情報とともに送付する。その後、記憶装置１０は、現在接続されているホスト装置３０Ａ−１の認証時に生成した第１部分鍵と、追加するホスト装置３０Ａ−ｎの固有情報と、を複合させた値を内部情報（複合後の内部情報）として保持する。そして、複合後の内部情報を、追加するホスト装置３０Ａ−ｎの固有情報を一方向性関数で変化した値と関連づけて共に保持する。これにより、正規のホスト装置の追加が可能になる。なお、上記は、一つの実施例であり、本方法によらず実装してもよい。
【０１６３】
また、敢えて上述のような方法を採用せず、ホスト装置によって異なる第３部分鍵が得られるようにした場合は、例えば、記憶装置１０は、接続されたホスト装置によって記録されたデータのみを正しく出力することになる。
【０１６４】
また、ステップＳＴ１４の判定結果が否を示す場合（ステップＳ１４  Ｎｏ）、機器認証モジュール２１は、ユーザデータの無効化処理を行う。さらに、構成例α１、構成例βの場合は、第３部分鍵も破棄する（ステップＳＴ１５）。具体的には、機器認証モジュール２１は、図１５に示すように、システムエリア１１ａ内の正規の内部情報Ｇを破棄し（ステップＳＴ１５−１）、乱数等の内部情報Ｉを新規作成して内部情報Ｇの代わりに保持する（ステップＳＴ１５−２）。また、機器認証モジュール２１は、システムエリア１１ａ内の固有情報“ＡＡ”のハッシュ値を破棄し（ステップＳＴ１５−３）、ステップＳＴ１１で受信した固有情報“ＢＢ”のハッシュ値を作成する（ステップＳＴ１５−４）。そして、構成例αの場合はユーザデータの無効化処理を行う（ステップＳＴ１５−５）。なお、ユーザデータの無効化処理は、ステップＳＴ１５−４の後ではなく、ステップＳＴ１４、ステップＳＴ１５−１、ステップＳＴ１５−２、ステップＳＴ１５−３のいずれかの直後であってもよい。
【０１６５】
なお、ステップＳＴ１５−１〜ステップＳＴ１５−２において、第３部分鍵Ｋ３を構成する内部情報Ｇが破棄されて内部情報Ｉが新規作成されることにより、第３部分鍵Ｋ３が破棄されている。また、第３部分鍵Ｋ３が破棄されたことにより、第３部分鍵Ｋ３に基づく暗号鍵Ｋｇが破棄されている。
【０１６６】
異なる正規のホスト装置に接続しても、同一の第３部分鍵が得られるよう正規のホスト装置ごとに複合後の内部情報と固有情報“ＡＡ”の一方向性関数による変換値（例えばハッシュ値）とを保持している場合は、全ての複合後の内部情報および固有情報“ＡＡ”の一方向性関数による変換値に対して、同様の破棄処理を行う。
【０１６７】
一方、ステップＳＴ１３の判定結果が一致を示す場合（ステップＳＴ１３  Ｙｅｓ）、機器認証モジュール２１は、システムエリア１１ａ内の内部情報Ｇ（または複合後の内部情報ｇ−ｉ）を読み出す（ステップＳＴ１６）。しかる後、機器認証モジュール２１は、ステップＳＴ１１で受信した固有情報“ＡＡ”と、ステップＳＴ１６で読み出した内部情報Ｇとを複合し（ステップＳＴ１１７）、生成した正しい第３部分鍵Ｋ３をＳＲＡＭ２５に書き込む（ステップＳＴ１７ａ）。
【０１６８】
なお、ステップＳＴ１５で第３部分鍵Ｋ３を破棄した場合には、機器認証モジュール２１は、ステップＳＴ１１で受信した固有情報“ＢＢ”と、ステップＳＴ１５−２で作成した内部情報Ｉとを複合し、生成した誤った第３部分鍵Ｋ３ｉをＳＲＡＭ２５に書き込む（ステップＳＴ１７ｂ）。
【０１６９】
いずれにしても、構成例α１、構成例βの場合には、第３部分鍵の書込により、ステップＳＴ１０の機器認証が完了する。
【０１７０】
以下、第１の実施形態と同様に、ステップＳＴ２０〜ステップＳＴ６０（またはステップＳ１２０〜ＳＴ１６０）が実行される。
【０１７１】
次に、第２の実施形態の動作中、正規のホスト装置３０Ａが接続された場合と、不正なホスト装置３０Ｂが接続された場合とについて補足的に説明する。なお、始めに、一般的なパスワード認証の場合を簡単に述べる。
【０１７２】
図１７は一般的なパスワード認証のみを実行するユーザデータ暗号化機能を持つ記憶装置を用いた記憶システムの動作を示す模式図である。
【０１７３】
記憶装置１０は、ユーザのパスワードＰ、暗号鍵Ｋ、暗号鍵ＫでデータＤが暗号化されてなる暗号化データＥ（Ｋ，Ｄ）が保存されている。
【０１７４】
この記憶装置１０においては、正規のホスト装置３０Ａ及び不正なホスト装置３０Ｂのいずれの装置３０Ａ，３０Ｂからでも正しいパスワードＰが送信されれば、暗号鍵Ｋに基づいて暗号化データＥ（Ｋ，Ｄ）を復号して、正しいデータＤを出力可能となっている。
【０１７５】
このため、アクセス権限をもつ悪意のユーザが、例えば、正規のホスト装置３０Ａから記憶装置１０を取りはずし、自宅のホスト装置３０Ｂに接続して、機密情報等を含むデータＤを正しく取得することが可能となってしまう。
【０１７６】
以上は、ユーザデータ暗号化機能を持つ記憶装置を用いた場合の説明であるが、ユーザ暗号化機能を持たない記憶装置（構成例α）の場合は、同様に、正しいパスワードＰが送信されれば、認証が成功し、正しいデータＤが出力可能になる。
【０１７７】
このため、正規のホスト装置３０Ａを使用した場合のみ、記憶装置１０から正しいデータＤを読出可能であり、ホスト装置３０Ｂを使用した場合にはデータＤが破棄されることが望ましい。
【０１７８】
図１８〜図２０は第２の実施形態における記憶装置１０に正規のホスト装置３０Ａが接続された場合の動作を示す模式図であり、図２１〜図２３は第２の実施形態における記憶装置１０に不正なホスト装置３０Ｂが接続された場合の動作を示す模式図である。
【０１７９】
図１８、図２１は、記憶装置１０が構成例α２の場合を示し、図１９、図２２は、記憶装置１０が構成例α１の場合を示し、図２０、図２３は、記憶装置１０が構成例βの場合で、ユーザデータの無効化処理を行わない例を示しており、この例は例えばＨＤＤ等にも適用できる。
【０１８０】
構成例α、構成例βの場合ともに、正規のホスト装置３０Ａに記憶装置１０が接続された状態で、図１４に示した動作が実行された場合、ホスト装置３０Ａが送信した固有情報“ＡＡ”をハッシュ演算して得たハッシュ値ｈ（ＡＡ）は、記憶装置１０内に予め保持したハッシュ値ｈ（ＡＡ）と一致する。ハッシュ値ｈ（ＡＡ）が一致した場合、認証に成功したとし、ユーザデータ無効化処理を行わない。
【０１８１】
さらに、構成例α１、構成例βの記憶装置１０では、受信したホスト装置３０Ａの固有情報“ＡＡ”と内部情報Ｇとを複合し、第３部分鍵Ｋ３を生成する。つづいて、ユーザ認証を行うが、第３部分鍵Ｋ３を用いている場合は、第３部分鍵Ｋ３と第１ユーザ認証情報を複合し、第２ユーザ認証情報とでユーザ認証を行う。なお、本例では、記憶装置１０内では、パスワードＰから生成した情報をユーザ認証情報としている。たとえばパスワードＰのハッシュ値をユーザ認証情報として扱えばよい。また本例では、ホスト装置３０ＡとのユーザＩＤの受け渡しを省略している。
【０１８２】
また、構成例βの場合は、記憶装置１０は、さらに、この第３部分鍵Ｋ３と第２ユーザ認証情報とを複合し、生成した暗号鍵Ｋｇを復号鍵に設定する。そして、ホスト装置３０ＡからデータＤの読出要求を受けた場合、データＤは設定された復号鍵Ｋｇで正しく復号されて送信される。
【０１８３】
記憶装置１０が不正なホスト装置３０Ｂと接続された場合、構成例α、構成例βの場合ともに、ホスト装置３０Ｂが送信した固有情報“ＢＢ”をハッシュ演算して得たハッシュ値ｈ（ＢＢ）は、記憶装置１０内に予め保持したハッシュ値ｈ（ＡＡ）と一致しない。このため、記憶装置１０は、構成例αの場合にはユーザデータ無効化処理を行う。また、構成例α１、構成例βの場合は、内部情報Ｇと予め保持したハッシュ値ｈ（ＡＡ）を破棄し、新たに内部情報Ｉを乱数生成等により再生成し、ホスト装置３０Ｂの固有情報“ＢＢ”のハッシュ値を作成してシステムエリア１１ａに書き込む。このとき、暗号鍵Ｋｇは破棄された状態となる。
【０１８４】
構成例α１の場合は、ユーザ認証で第３部分暗号鍵を用いる方法を用いた場合は、ユーザ認証時に、不正な第３部分暗号鍵と第１ユーザ認証情報が復合されるため、第２ユーザ認証情報が正しくとも、認証は成功しない。
【０１８５】
ホスト装置３０ＢからデータＤの読出要求があると、記憶装置１０は、構成例βの場合、ホスト装置３０Ｂの固有情報“ＢＢ”と内部情報Ｉを複合し、生成した第３部分鍵Ｋ３ｉと第２ユーザ認証情報とを複合し、生成した暗号鍵Ｋｉで暗号化データＥｇ（Ｋｇ，Ｄ）を復号化処理する。この復号化処理では、誤った暗号鍵Ｋｉを用いるため、正しいデータＤを読み出すことが不可能となる。暗号機能を持たない場合（構成例αの場合）でも、データ無効化処理が実施されているため、正しいデータＤは出力できない。
【０１８６】
また、構成例αの場合、ユーザは、データ無効化処理が実施されているため仮に記憶装置１０をホスト装置３０Ａに再接続したとしても、正しいデータＤを読み出すことができない。構成例βの場合も、暗号鍵Ｋg、および内部情報Ｇが既に廃棄されているため、読み出すことができない。なお、第１の実施形態と同様に、構成例βの場合に、鍵の破棄時にデータ無効化処理を同時に実行してもよい。
【０１８７】
上述したように本実施形態によれば、第１機器認証情報が正規のホスト装置３０Ａの固有情報“ＡＡ”のハッシュ値ｈ（ＡＡ）であり、第２機器認証情報が第２部分鍵としても用いられる現在のホスト装置３０Ａの固有情報“ＡＡ”であるように、第１の実施形態を具体化した構成としても、第１の実施形態と同様の効果を得ることができる。
【０１８８】
また、データ無効化機能を持たないＨＤＤのような暗号鍵の消去によってデータを保護している装置と、ホスト装置からみて同じ取り扱いができるように、構成することもできる。
【０１８９】
＜第３の実施形態＞
次に、第３の実施形態について前述した図１および図２を参照しながら説明する。
【０１９０】
第３の実施形態は、第１の実施形態における第１及び第２機器認証情報の他の具体例である。すなわち、第１機器認証情報は、図２４に示すように、正規のホスト装置３０Ａの署名検証鍵Ｋveri-30Aである。
【０１９１】
第２機器認証情報は、図２５に示すように、現在のホスト装置３０Ａの署名生成鍵Ｋsig-30Aにより生成されたデジタル署名と当該デジタル署名の生成に用いた署名対象データである。なお、デジタル署名は、署名対象データから算出されたハッシュ値に対し、署名生成鍵Ｋsig-30Aに基づく署名処理が施されて生成される。これに伴い、ホスト装置３０Ａのメモリ３２Ａは、署名生成鍵Ｋsig-30Aを記憶している。
【０１９２】
なお、署名生成鍵Ｋsig-30Aとしては、公開鍵ペアの秘密鍵（private key）が使用可能となっている。署名検証鍵Ｋveri-30Aとしては、公開鍵ペアの公開鍵（public key）が使用可能となっている。このため、署名生成鍵Ｋsig-30Aは秘密鍵（private key）と読み替えてもよく、署名検証鍵Ｋveri-30Aは公開鍵と読み替えてもよい。このことは、後述する記憶装置１０の署名生成鍵Ｋsig-10及び署名検証鍵Ｋveri-10についても同様である。
【０１９３】
また、記憶装置１０の機器認証モジュール２１は、第２機器認証情報内のデジタル署名を署名検証鍵Ｋveri-30Aに基づいて復号し、得られた復号データと、第２機器認証情報内の署名対象データから算出したハッシュ値とを照合して両者が不一致のときに、機器認証が失敗した旨を判定する機能をもっている。
【０１９４】
次に、以上のように構成された記憶システムの動作を図２６及び図２７のフローチャートを用いて説明する。なお、図２６および図２７は、構成例α１または構成例βの場合の動作の一例を示している。構成例α２の場合は、図２６および図２７の動作のうち、第３部分鍵に関する動作を除いた動作となるが、ステップＳＴ１６’のホスト装置の固有情報の受信処理は、構成例α１や構成例βとホストとの機器認証手順を同一にするため除かなくてもよい。この場合、受信した固有情報は、受信するだけで利用しない。
【０１９５】
いま、ステップＳＴ１０の機器認証が開始されるとする。
【０１９６】
ホスト装置３０ＡのＣＰＵ３４は、記憶装置１０が接続されると、機器認証の規定の認証シーケンスに沿って、乱数等の署名対象データを生成し、この署名対象データのハッシュ値を算出する。続いて、ＣＰＵ３４は、メモリ３２Ａ内の署名生成鍵Ｋsig-30Aに基づいて、このハッシュ値に署名処理を施してデジタル署名を生成する。しかる後、ＣＰＵ３４は、この署名対象データ及びデジタル署名からなる署名付データを第２機器認証情報としてメモリ３２Ａに書き込むと共に、当該署名付データ（第２機器認証情報）を記憶装置１０に送信する。
【０１９７】
記憶装置１０の機器認証モジュール２１は、新たに接続された現在のホスト装置３０Ａの署名付データを受信する（ステップＳＴ１１’）。なお、認証失敗時には、現在のホスト装置３０Ｂから署名付データを受信したことになる。
【０１９８】
機器認証モジュール２１は、システムエリア１１ａ内の署名検証鍵Ｋveri-30Aにより署名付データを検証する（ステップＳＴ１２’）。具体的には、機器認証モジュール２１は、受信した署名付データ内のデジタル署名を署名検証鍵Ｋveri-30Aに基づいて復号し、得られた復号データと、第２機器認証情報内の署名対象データから算出したハッシュ値とを照合して両者が一致することを検証する。
【０１９９】
機器認証モジュール２１は、検証結果が正当でなければ（ステップＳＴ１３’  Ｎｏ）、システムエリア１１ａ内に予め保持する他の署名検証鍵Ｋveriがあるか否かを判定し（ステップＳＴ１４’）、他の署名検証鍵Ｋveriがあれば（ステップＳ１４’  Ｙｅｓ）、他の署名検証鍵Ｋveriを用いて照合処理を再試行するように、ステップＳＴ１２’に戻る。このステップＳＴ１４’は、接続可能な正規のホスト装置３０Ａ，…が複数台あるときの処理であるので、正規のホスト装置３０Ａが１台のときには省略可能である。
【０２００】
また、ステップ１４’の判定結果が否を示す場合（ステップＳＴ１４’  Ｎｏ）、機器認証モジュール２１は、構成例α１または構成例α２の場合は、ユーザデータ無効化処理を実施する（ステップＳＴ１５’）。構成例α１または構成例βの場合は、第３部分鍵を破棄する（ステップＳＴ１５’）。具体的には、機器認証モジュール２１は、図２７に示すように、システムエリア１１ａ内の正規の内部情報Ｇを破棄し（ステップＳＴ１５−１）、乱数等の内部情報Ｉを新規作成する（ステップＳＴ１５−２）。また、機器認証モジュール２１は、現在のホスト装置３０Ｂから固有情報“ＢＢ”を受信し（ステップＳＴ１５−４’）、構成例αの場合はユーザデータの無効化処理を行う（ステップＳＴ１５−５’）。なお、ユーザデータの無効化処理は、ステップＳＴ１５−４’の後ではなく、ステップＳＴ１４’、ステップＳＴ１５−１、ステップＳＴ１５−２のいずれかの直後であってもよい。なお、前述同様に、ステップＳＴ１５−１〜ステップＳＴ１５−２により、第３部分鍵Ｋ３が破棄されるので、構成例βの場合、暗号鍵Ｋｇが破棄されることになる。
【０２０１】
一方、ステップＳＴ１３’の検証結果が正当であれば（ステップＳＴ１３’  Ｙｅｓ）、機器認証モジュール２１は、現在のホスト装置３０Ａから固有情報“ＡＡ”を受信する（ステップＳＴ１６’）。しかる後、機器認証モジュール２１は、構成例α１、構成例βの場合は、前述した通り、正しい第３部分鍵Ｋ３をＳＲＡＭ２５に書き込む（ステップＳＴ１７ａ）。なお、複数の正規のホスト装置が、共通のユーザデータ領域を読み出せるようにする時は、第２の実施形態と同様、内部情報Ｇとして複数のホスト装置に対応した情報を持つか、複数の正規のホスト装置が、共通の固有情報“ＡＡ”を持つ必要がある。
【０２０２】
なお、ステップＳＴ１５で第３部分鍵Ｋ３を破棄した場合には、機器認証モジュール２１は、前述した通り、誤った第３部分鍵Ｋ３ｉをＳＲＡＭ２５に書き込む（ステップＳＴ１７ｂ）。
【０２０３】
構成例α１、構成例βの場合は、いずれにしても、暗号鍵の書込により、ステップＳＴ１０の機器認証が完了する。
【０２０４】
以下、第１の実施形態と同様に、ステップＳＴ２０〜ステップＳＴ６０（またはステップＳＴ１２０〜ステップＳＴ１６０）が実行される。
【０２０５】
上述したように本実施形態によれば、第１機器認証情報が正規のホスト装置３０Ａの署名検証鍵Ｋveri-30Aであり、第２機器認証情報がホスト装置３０Ａのデジタル署名及び署名対象データであるように、第１の実施形態を具体化した構成としても、第１の実施形態と同様の効果を得ることができる。
【０２０６】
また、本実施形態は、署名認証に限らず、チャレンジ＆レスポンスによるワンタイム情報の送受信による認証を用いてもよい。この種の認証は、例えば次の［１］〜［３］のように実行してもよい。
【０２０７】
［１］機器認証モジュール２１は、乱数ｒを生成し、この乱数ｒに署名検証鍵Ｋveri-30A（ホスト装置３０Ａの公開鍵）で暗号化処理を施し、得られた値Ｃ（＝ｒ^Ｋveri-30A）をホスト装置３０Ａ（又は３０Ｂ，…）に送信する（＾は、ベキ乗を表す記号）。
【０２０８】
［２］ホスト装置３０Ａ（又は３０Ｂ，…）は、この値Ｃに署名生成鍵Ｋsig-30A（ホスト装置３０Ａの秘密鍵）で復号化処理を施し、得られた値ｔ＝（Ｃ＾Ｋsig-30A）を機器認証モジュール２１に返信する。
【０２０９】
［３］機器認証モジュール２１は、生成した乱数ｒと、返信された値ｔとが一致したとき（ｒ＝ｔのとき）、機器認証を成功と判定する。
【０２１０】
＜第４の実施形態＞
次に、第４の実施形態について前述した図１を参照しながら説明する。
【０２１１】
第４の実施形態は、第１〜第３の各実施形態における機器認証の他の具体例である。すなわち、本実施形態では、記憶装置１０の機器認証モジュール２１は、前述した各機能に加え、現在のホスト装置３０Ａ（又は３０Ｂ，…）が第２機器認証情報を送信するときの認証シーケンスが、規定の認証シーケンスと異なる旨を検出したときに、機器認証が失敗した旨を判定する機能をもっている。
【０２１２】
次に、以上のように構成された記憶システムの動作を図２８のフローチャートを用いて説明する。図２８は、構成例α１および構成例βの場合の動作を示している。構成例α２の場合は、図２８の動作から第３部分鍵に関する動作を除いた動作とする。
【０２１３】
いま、ステップＳＴ１０（またはステップＳＴ１１０）の機器認証が開始されるとする。
【０２１４】
ホスト装置３０ＡのＣＰＵ３４は、記憶装置１０が接続されると、機器認証の規定の認証シーケンスに沿って、認証コマンドを送信した後、第２機器認証情報を記憶装置１０に送信する。
【０２１５】
記憶装置１０の機器認証モジュール２１は、新たに接続された現在のホスト装置３０Ａ（又は３０Ｂ，…）から受けた最初のコマンドが認証コマンドであるか否かを判定する（ステップＳＴ１）。
【０２１６】
ステップＳＴ１の判定の結果、否の場合（ステップＳＴ１  Ｎｏ）には、機器認証モジュール２１は、規定の認証シーケンスと異なる旨を検出し、機器認証が失敗した旨を判定してステップＳＴ１５（又はステップＳＴ１５’）に移行する。
【０２１７】
ステップＳＴ１の判定の結果、最初のコマンドが認証コマンドである場合（ステップＳＴ１  Ｙｅｓ）には、機器認証モジュール２１は、ステップＳＴ２に移行して機器認証を実行する。ここで、ステップＳＴ２の機器認証は、各実施形態の機器認証（ステップＳＴ１０またはステップＳＴ１１０）において、データ無効化処理、及び第３部分鍵の破棄及び第３部分鍵の設定を除いた処理である。例えば、第２の実施形態の場合、図１４に示したステップＳＴ１１〜ステップＳＴ１４、ステップＳＴ１６が、図２８に示したステップＳＴ２に該当する。第３の実施形態の場合、図２６に示したステップＳＴ１１’〜ステップＳＴ１４’、ステップＳＴ１６’が、図２８に示したステップＳＴ２に該当する。
【０２１８】
機器認証モジュール２１は、ステップＳＴ２の機器認証が成功であればステップＳＴ１７に移行し、機器認証が失敗であれば（ステップＳＴ２  Ｎｏ）ステップＳＴ１５（又はステップＳＴ１５’）を介して処理を終了する。
【０２１９】
ステップ１５（またはステップＳＴ１５’）では、ユーザデータ無効化処理を行い、第３部分鍵の破棄を行う（ステップＳＴ１５）。なお、構成例βの場合は、ユーザデータ無効化処理は行わなくてよい。ステップ１７では、構成例α１、構成例βの場合、第３部分鍵を設定する。
【０２２０】
以下、第１〜第３の各実施形態と同様に、ステップＳＴ２０〜ステップＳＴ６０（またはステップＳＴ１２０〜ステップＳＴ１６０）が実行される。
【０２２１】
上述したように本実施形態によれば、機器認証モジュール２１が、現在のホスト装置３０Ａ（又は３０Ｂ，…）が第２機器認証情報を送信するときの認証シーケンスが、規定の認証シーケンスと異なる旨を検出したときに、機器認証が失敗した旨を判定するように、第１〜第３の各実施形態を具体化した構成としても、第１〜第３の各実施形態と同様の効果を得ることができる。
【０２２２】
また、記憶装置１０を使用可能なホスト装置が、記憶装置１０の認証シーケンスと同じ認証シーケンスをもつホスト装置３０Ａに限定されることにより、記憶装置１０の盗難時にデータＤが破棄され、データ漏洩を防止することができる。
【０２２３】
なお、ステップＳＴ１の代わりに、ホスト装置から最初の認証コマンドが来る前に、ホスト装置からユーザデータ読出要求が来たか否かで判断してもよい。ホスト装置から認証コマンドが送られてくる前に、ドライブの種別を判別するためのコマンドや、識別情報を得るためのコマンドが送られてきた場合、これを持ってユーザデータ無効化処理をするより、データ読出要求が認証コマンドより前に来るという、あきらかに不審なアクセスに対して鍵の破棄処理や、ユーザデータ無効化処理を実行した方が、防御効果を落とさずに、認証前にホスト装置に有用な情報を提供可能にした上で、防御ができる。特に、複数の正規ホスト装置に接続される記憶装置においては、機器認証前に、ホスト装置が接続された記憶装置の識別情報を得るコマンドを記憶装置に送出して、記憶装置がホスト装置に識別情報を送ることによって、記憶装置毎に、異なった固有情報や機器認証情報を設定することが実現できる。これによって、ホスト装置が複数の記憶装置に共通の情報を設定しなくて済むため、固有情報や機器認証情報が、万一ある記憶装置の情報管理に脆弱性があり、固有情報や機器認証情報が漏洩しても、他の記憶装置の安全性が脅かされることが防げる。
【０２２４】
また、認証に対応していない機器では、認証コマンドを実行せずに、ユーザデータ出力要求を送ってくるため、このような装置に接続された場合も、ただちにデータ無効化処理等が実施できる。
【０２２５】
＜第５の実施形態＞
次に、第５の実施形態について前述した図１および図２を参照しながら説明する。
【０２２６】
第５の実施形態は、第１〜第４の各実施形態における機器認証の他の具体例である。すなわち、記憶装置１０のシステムエリア１１ａは、図２９に示すように、前述した各情報に加え、第１部分鍵を破棄するか否かを示す可否情報を記憶する。
【０２２７】
機器認証モジュール２１は、前述した各機能に加え、可否情報を含む設定要求を正規のホスト装置３０Ａから受けると、当該可否情報をシステムエリア１１ａに設定する設定機能をもっている。なお「設定する」の用語は「書き込む」と読み替えてもよい。
【０２２８】
また、機器認証モジュール２１は、機器認証が失敗したとき、システムエリア１１ａ内の可否情報に基づいてユーザデータの無効化処理の実施を阻止する無効化阻止機能をもっている。補足すると、可否情報が破棄の否と設定されている場合に、ユーザデータの無効化処理を阻止する。さらに、記憶装置１０が構成例α１、構成例βの場合は、第１部分鍵（内部情報Ｇ）の破棄をさらに阻止する。
【０２２９】
さらに、機器認証モジュール２１は、ユーザデータの無効化処理が阻止され、さらに構成例α１、構成例βの場合には第１部分鍵の破棄も阻止されたとき、前述した第３部分鍵書込機能（構成例α１、構成例βの場合のみ）、ユーザ認証モジュール２２及び復号化モジュール２４（構成例βの場合のみ）を動作させず、機器認証のエラーを現在のホスト装置３０Ａ（又は３０Ｂ，…）に出力するエラー出力機能をもっている。
【０２３０】
一方、ホスト装置３０Ａの入力モジュール３３は、前述した機能に加え、ユーザの操作に応じて、可否情報を含む設定要求の入力を受け付ける設定要求受付機能をもっている。
【０２３１】
ホスト装置３０ＡのＣＰＵ３４は、前述した機能に加え、入力を受け付けた設定要求を記憶装置１０に送信する設定要求送信機能をもっている。
【０２３２】
次に、以上のように構成された記憶システムの動作を図３０のフローチャートを用いて説明する。なお、構成例によって、第３部分鍵に関する処理、および暗号鍵の設定に関する処理は該当せず、省略される。
【０２３３】
始めに、正規のホスト装置３０Ａと正規のユーザによりステップＳＴ１０’の機器認証とステップＳＴ２０のユーザ認証に成功した後のステップＳＴ３０の認証失敗時の動作設定について述べる。
【０２３４】
ステップＳＴ１０´では、ステップＳＴ１０またはステップＳＴ１１０と同様に、機器認証を実施し、認証が否の場合、記憶装置１０は、接続されたホスト装置３０Ａ（又は３０Ｂ，…）にエラーを出力し、構成例α１、構成例βの場合は認証結果に応じて正しい第３部分鍵または誤った第３部分鍵を設定する（ステップＳ１０´）。次に、ステップＳＴ２０（またはステップＳ１２０）を実施する。
【０２３５】
ホスト装置３０Ａの入力モジュール３３は、ユーザの操作に応じて、可否情報を含む設定要求の入力を受け付ける。ホスト装置３０ＡのＣＰＵ３４は、ステップＳＴ２０の後、認証された場合は、入力を受け付けた設定要求を記憶装置１０に送信する。認証されなかった場合は、第１の実施形態等と同様に認証失敗時の動作を実施する（ステップＳＴ３０）。
【０２３６】
記憶装置１０の機器認証モジュール２１は、可否情報を含む設定要求を正規のホスト装置３０Ａから受けると、当該可否情報をシステムエリア１１ａに設定する。
【０２３７】
これにより、ステップＳＴ３０が完了する。以後、適宜、ステップＳＴ４０〜ステップＳＴ５０を実行し、一旦、電源をオフして動作が終了する（ステップＳＴ６０）。電源オフの後でも可否情報は消去されずに、システムエリア１１ａに記憶されている。なお、構成例βの場合には、読出処理時には設定した暗号鍵による復号、書込処理時には設定した暗号鍵による暗号化がおこなわれる。
【０２３８】
次に、記憶装置１０は、ユーザにより、現在のホスト装置３０Ｂに接続されて電源がオン状態にされたとする。これにより、記憶装置１０は、ホスト装置３０Ｂに対する機器認証を実行する（ステップＳＴ１０’）。なお、現在のホスト装置３０Ｂは、不正な装置であるとする。
【０２３９】
ホスト装置３０ＢのＣＰＵ３４は、記憶装置１０が接続されると、機器認証の規定の認証シーケンスに沿って、メモリ３２Ｂ内の第２機器認証情報を記憶装置１０に送信する。
【０２４０】
記憶装置１０の機器認証モジュール２１は、新たに接続された現在のホスト装置３０Ｂから受けた第２機器認証情報と、システムエリア１１ａ内の第１機器認証情報とに基づいて機器認証を実行する。
【０２４１】
しかしながら、不正なホスト装置３０Ｂに対する機器認証は失敗する。機器認証が失敗した時点は、第２〜第４の各実施形態ではステップＳＴ１５，ステップＳＴ１５’の直前である。
【０２４２】
機器認証が失敗したとき、記憶装置１０の機器認証モジュール２１は、構成例αの場合はシステムエリア１１ａ内の可否情報に基づいてユーザデータ無効化処理を阻止し、また構成例α１、構成例βの場合は、さらに第１部分鍵（内部情報Ｇ）の破棄を阻止する。
【０２４３】
しかる後、機器認証モジュール２１は、ユーザデータ無効化処理や第１部分鍵の破棄が阻止されたとき、前述した第３部分鍵書込機能（構成例α１、構成例β場合のみ）、ユーザ認証モジュール２２及び復号化モジュール２４（構成例βの場合のみ）を動作させず、機器認証のエラーを現在のホスト装置３０Ｂに出力する。
【０２４４】
上述したように本実施形態によれば、可否情報によりユーザデータ無効化処理の可否、および内部情報Ｇを持つ場合はさらに第１部分鍵の破棄の可否を設定できる構成により、破棄の可を設定した場合には第１〜第４の各実施形態の効果を得ることができ、破棄の否を設定した場合にはユーザデータ無効化を阻止することができる。さらに暗号化機能を持つ場合は、暗号化データの鍵の破棄も阻止することができる。
【０２４５】
＜第６の実施形態＞
次に、第６の実施形態について前述した図１を参照しながら説明する。
【０２４６】
第６の実施形態は、第１〜第４の各実施形態における機器認証の他の具体例である。換言すると、第６の実施形態は、第５の実施形態の可否情報に代えて、許容接続回数を用いた構成である。
【０２４７】
すなわち、記憶装置１０のシステムエリア１１ａは、図３１に示すように、前述した各情報に加え、第１部分鍵を破棄するまでに許容される新たな接続の回数を示す許容接続回数（リトライ可能回数）と、機器認証が失敗した回数を示すエラー回数とを記憶する。
【０２４８】
機器認証モジュール２１は、前述した各機能に加え、許容接続回数を含む設定要求を正規のホスト装置３０Ａから受けると、当該許容接続回数をシステムエリア１１ａに設定する設定機能をもっている。
【０２４９】
また、機器認証モジュール２１は、機器認証が失敗したとき、システムエリア１１ａ内のエラー回数を増加させるように更新するエラー回数更新機能をもっている。
【０２５０】
さらに、機器認証モジュール２１は、更新後のエラー回数とシステムエリア１１ａ内の許容接続回数に基づいてユーザデータ無効化処理を阻止し(構成例αの場合)、さらに構成例α１、構成例βの場合は、第１部分鍵（内部情報Ｇ）の破棄を阻止する破棄阻止機能をもっている。
【０２５１】
また、機器認証モジュール２１は、ユーザデータ無効化処理が阻止、さらに内部情報Ｇを持つ場合は第１部分鍵の破棄が阻止されたとき、前述した第３部分鍵書込機能（構成例α１、構成例βの場合のみ）、ユーザ認証モジュール２２及び復号化モジュール２４（構成例βの場合のみ）を動作させず、機器認証のエラーを現在のホスト装置３０Ａ（又は３０Ｂ，…）に出力するエラー出力機能をもっている。
【０２５２】
一方、ホスト装置３０Ａの入力モジュール３３は、前述した機能に加え、ユーザの操作に応じて、可否情報を含む設定要求の入力を受け付ける設定要求受付機能をもっている。
【０２５３】
ホスト装置３０ＡのＣＰＵ３４は、前述した機能に加え、入力を受け付けた設定要求を記憶装置１０に送信する設定要求送信機能をもっている。
【０２５４】
次に、以上のように構成された記憶システムの動作を図３２のフローチャートを用いて説明する。なお、構成例によって、第３部分鍵に関する処理、および暗号鍵の設定に関する処理は該当せず、省略される。
【０２５５】
始めに、許容接続回数は、第５の実施形態と同様に、ステップＳＴ３０の認証失敗時の動作設定において、記憶装置１０のシステムエリア１１ａに設定される。以後、同様に、一旦、電源をオフして動作が終了する（ステップＳＴ６０）。電源オフの後でも許容接続回数は消去されずに、システムエリア１１ａに記憶されている。
【０２５６】
次に、記憶装置１０は、ユーザにより、現在のホスト装置３０Ｂに接続されて電源がオン状態にされたとする。これにより、記憶装置１０は、ホスト装置３０Ｂに対する機器認証を実行する（ステップＳＴ１０”）。なお、現在のホスト装置３０Ｂは、不正な装置であるとする。
【０２５７】
このため、第５の実施形態と同様に、不正なホスト装置３０Ｂに対する機器認証は失敗する。機器認証が失敗した時点は、第２〜第４の各実施形態ではステップＳＴ１５，ステップＳＴ１５’の直前である。
【０２５８】
機器認証が失敗したとき、記憶装置１０の機器認証モジュール２１は、システムエリア１１ａ内のエラー回数を増加させるように更新し、更新後のエラー回数と許容接続回数に基づいてユーザデータ無効化処理を阻止し（構成例αの場合）、さらに構成例α１、構成例βの場合は、第１部分鍵（内部情報Ｇ）の破棄も阻止する。
【０２５９】
しかる後、機器認証モジュール２１は、ユーザデータ無効化処理（構成例αの場合）、構成例α１、構成例βの場合はさらに第１部分鍵の破棄が阻止されたとき、前述した第３部分鍵書込機能（構成例α１、構成例βの場合のみ）、ユーザ認証モジュール２２及び復号化モジュール２４（構成例βの場合のみ）を動作させず、機器認証のエラーを現在のホスト装置３０Ｂに出力する。
【０２６０】
上述したように本実施形態によれば、許容接続回数により第１部分鍵の破棄の可否を設定できる構成により、許容接続回数に至るまでは暗号化データの破棄を阻止できると共に、許容接続回数に至った後は第１〜第４の各実施形態の効果を得ることができる。
【０２６１】
＜第７の実施形態＞
次に、第７の実施形態について前述した図１および図２を参照しながら説明する。
【０２６２】
第７の実施形態は、第１〜第６の各実施形態において、ユーザデータ無効化処理を実施した時、および、さらに構成例α１、構成例βの場合は、第１部分鍵を破棄したときの破棄ログ情報を記憶するものである。
【０２６３】
具体的には、記憶装置１０のシステムエリア１１ａは、図３３及び図３４に示すように、前述した各情報に加え、ユーザデータ無効化処理が実施された日時（構成例α１、構成例βの場合はさらに、第１部分鍵を破棄したときの日時）を示す破棄日時情報と、機器認証の失敗を示す破棄理由情報とを含む破棄ログ情報Ｌｇを記憶する。なお、破棄理由情報は、機器認証の失敗に限らず、正規の破棄コマンドで破棄された場合にはその旨を示してもよい。
【０２６４】
機器認証モジュール２１は、前述した各機能に加え、ユーザデータ無効化処理が実施されたとき（構成例α１、構成例βの場合はさらに、第１部分鍵を破棄したとき）、破棄ログ情報Ｌｇを作成してシステムエリア１１ａに書き込む破棄ログ書込機能をもっている。この破棄ログ情報Ｌｇは、正規のホスト装置３０Ａからの読出要求により、システムエリア１１ａから読出可能となっている。
【０２６５】
以上のような構成によれば、前述した通り、機器認証が失敗し、ユーザデータが無効化、つまり破棄されたとする。なお、破棄された時点は、例えば、第２〜第４の各実施形態ではステップＳＴ１５，ステップＳＴ１５’の直後である。
【０２６６】
このとき、機器認証モジュール２１は、破棄された日時を示す破棄日時情報と、機器認証の失敗を示す破棄理由情報とを含む破棄ログ情報Ｌｇを作成してシステムエリア１１ａに書き込む。これにより、例えば記憶装置１０が盗難先から回収された後、正規のホスト装置３０Ａからの読出要求により、破棄ログ情報Ｌｇがシステムエリア１１ａから読み出される。
【０２６７】
上述したように本実施形態によれば、ユーザデータが破棄されたとき、破棄ログ情報Ｌｇを記憶する構成により、第１〜第６の各実施形態の効果に加え、正規のユーザが破棄日時と破棄理由とを知ることができる。
【０２６８】
＜第８の実施形態＞
次に、第８の実施形態について前述した図１および図２を参照しながら説明する。
【０２６９】
第８の実施形態は、第７の実施形態の破棄ログ情報Ｌｇにデジタル署名を付与した破棄証明書を記憶するものである。
【０２７０】
具体的には、記憶装置１０のシステムエリア１１ａは、図３５に示すように、前述した各情報に加え、自装置の署名生成鍵Ｋsig-10を予め記憶する。ここで、自装置の署名生成鍵Ｋsig-10としては、記憶装置１０毎（製造番号又は型番毎）の署名生成鍵に限らず、例えば、記憶装置１０のメーカ毎の署名生成鍵、又は記憶装置１０の販売元（ベンダ）毎の署名生成鍵が使用可能となっている。また、システムエリア１１ａは、図３５及び図３６に示すように、破棄ログ情報Ｌｇ及びデジタル署名からなる破棄証明書Certを記憶する。
【０２７１】
機器認証モジュール２１は、前述した各機能に加え、システムエリア１１ａ内の署名生成鍵Ｋsig-10に基づいてシステムエリア１１ａ内の破棄ログ情報Ｌｇに署名処理を施して、デジタル署名Sig（Ｋsig-10，Ｌｇ）を生成する署名生成機能をもっている。
【０２７２】
また、機器認証モジュール２１は、破棄ログ情報Ｌｇ及びデジタル署名Sig（Ｋsig-10，Ｌｇ）からなる破棄証明書Certを作成し、この破棄証明書Certをシステムエリア１１ａに書込む破棄証明書作成機能を更にもっている。
【０２７３】
この破棄証明書Certは、前述同様に、正規のホスト装置３０Ａからの読出要求により、システムエリア１１ａから読出可能となっている。
【０２７４】
一方、ホスト装置３０Ａのメモリ３２Ａは、図３７に示すように、前述した各情報に加え、記憶装置１０の署名検証鍵Ｋveri-10を予め記憶している。
【０２７５】
また、ホスト装置３０ＡのＣＰＵ３４は、前述した機能に加え、読出要求により記憶装置１０から読み出した破棄証明書Certをメモリ３２Ａ内の署名検証鍵Ｋveri-10に基づいて検証する機能をもっている。
【０２７６】
以上のような構成によれば、前述した第７の実施形態で破棄ログ情報Ｌｇがシステムエリア１１ａに書き込まれたとき、機器認証モジュール２１は、システムエリア１１ａ内の署名生成鍵Ｋsig-10に基づいてシステムエリア１１ａ内の破棄ログ情報Ｌｇに署名処理を施して、デジタル署名Sig（Ｋsig-10，Ｌｇ）を生成する。
【０２７７】
また、機器認証モジュール２１は、破棄ログ情報Ｌｇ及びデジタル署名Sig（Ｋsig-10，Ｌｇ）からなる破棄証明書Certを作成し、この破棄証明書Ｃｅｒｔをシステムエリア１１ａに書込む。これにより、記憶装置１０が盗難先から回収された後、正規のホスト装置３０Ａからの読出要求により、破棄証明書Certがシステムエリア１１ａから読み出される。
【０２７８】
正規のホスト装置３０ＡのＣＰＵ３４は、読み出した破棄証明書Certをメモリ３２Ａ内の署名検証鍵Ｋveri-10に基づいて検証し、検証結果が正当のとき、破棄証明書Certを出力モジュール３５に出力する。
【０２７９】
上述したように本実施形態によれば、破棄ログ情報Ｌｇにデジタル署名を付加した破棄証明書Certを記憶する構成により、第７の実施形態の効果に加え、破棄ログ情報Ｌｇの正当性を検証することができる。
【０２８０】
＜第９の実施形態＞
次に、第９の実施形態について前述した図１および図２を参照しながら説明する。
【０２８１】
第９の実施形態は、第１〜第８の各実施形態におけるユーザ認証の他の具体例である。
【０２８２】
すなわち、記憶装置１０のユーザ認証モジュール２２は、前述した各機能に加え、現在のホスト装置３０Ａ（又は３０Ｂ，…）が第２ユーザ認証情報を送信するときの認証シーケンスが、規定の認証シーケンスと異なる旨を検出したときに、ユーザ認証が失敗した旨を判定する機能をもっている。例えば、ユーザ認証モジュール２２は、新たに接続された現在のホスト装置３０Ａ（又は３０Ｂ，…）から受けた最初のコマンドが認証コマンドであるか否かを判定し、否の場合には、規定の認証シーケンスと異なる旨を検出する。あるいは、ユーザ認証前に、ホスト装置から読出し要求が来た場合に、規定の認証シーケンスと異なる旨を検出してもよい。
【０２８３】
以上のような構成によれば、ユーザ認証モジュール２２が、現在のホスト装置３０Ａ（又は３０Ｂ，…）の認証シーケンスが、規定の認証シーケンスと異なる場合にユーザ認証の失敗を判定する構成により、第１〜第８の各実施形態の効果に加え、機器認証を成功させた不正なホスト装置３０Ｂであっても、ユーザ認証の認証シーケンスの違いから不正を検出することができる。
【０２８４】
＜第１０の実施形態＞
次に、第１０の実施形態について前述した図１および図２を参照しながら説明する。
【０２８５】
第１０の実施形態は、第１〜第９の各実施形態において、ユーザ認証失敗時の破棄の可否を設定するものである。
【０２８６】
具体的には、記憶装置１０のシステムエリア１１ａは、前述した各情報に加え、第１部分鍵及び第３部分鍵を破棄するか否かを示す可否情報を記憶する（構成例α１、構成例βの場合）。
【０２８７】
ユーザ認証モジュール２２は、前述した各機能に加え、可否情報を含む設定要求を正規のホスト装置３０Ａから受けると、当該可否情報をシステムエリア１１ａに設定する設定機能をもっている。
【０２８８】
また、ユーザ認証モジュール２２は、ユーザ認証が失敗したとき、システムエリア１１ａ内の可否情報に基づいてユーザデータの無効化処理、またさらに暗号化機能を持つ場合は、第１部分鍵及び第３部分鍵の破棄を阻止する破棄阻止機能をもっている。
【０２８９】
さらに、ユーザ認証モジュール２２は、ユーザデータの無効化処理が阻止されたとき、データ読出モジュール２７を動作させず、ユーザ認証のエラーを現在のホスト装置３０Ａ（又は３０Ｂ，…）に出力するエラー出力機能をもっている。
【０２９０】
さらに、ユーザ認証モジュール２２は、構成例βの場合は、第１部分鍵及び第３部分鍵の破棄が阻止されたとき、復号化モジュール２４を動作させない。
【０２９１】
一方、ホスト装置３０Ａの入力モジュール３３は、前述した機能に加え、ユーザの操作に応じて、可否情報を含む設定要求の入力を受け付ける設定要求受付機能をもっている。
【０２９２】
ホスト装置３０ＡのＣＰＵ３４は、前述した機能に加え、入力を受け付けた設定要求を記憶装置１０に送信する設定要求送信機能をもっている。
【０２９３】
次に、以上のように構成された記憶システムの動作を図３８のフローチャートを用いて説明する。なお、構成例によって、第３部分鍵に関する処理、および暗号鍵の設定に関する処理は該当せず、省略される。
【０２９４】
始めに、破棄の否を示す可否情報は、第５の実施形態と同様に、ステップＳＴ３０の認証失敗時の動作設定において、記憶装置１０のシステムエリア１１ａに設定される。以後、同様に、一旦、電源をオフして動作が終了する（ステップＳＴ６０）。電源オフの後でも可否情報は消去されずに、システムエリア１１ａに記憶されている。
【０２９５】
次に、記憶装置１０は、不正なユーザにより、正規のホスト装置３０Ａに接続されて電源がオン状態にされたとする。これにより、記憶装置１０は、ホスト装置３０Ａに対する機器認証を実行する（ステップＳＴ１０、ステップＳＴ１１０又はステップＳＴ１０’）。なお、正規のホスト装置３０Ａなので、機器認証は成功する。
【０２９６】
続いて、記憶装置１０は、ホスト装置３０Ａに対するユーザ認証を実行する（ステップＳＴ２０’）。
【０２９７】
具体的には、ホスト装置３０Ａの入力モジュール３３は、不正なユーザの操作に応じて、不正な第２ユーザ認証情報の入力を受け付ける。ＣＰＵ３４は、入力を受け付けた不正な第２ユーザ認証情報を記憶装置１０に送信する。
【０２９８】
記憶装置１０のユーザ認証モジュール２２は、現在のホスト装置３０Ａから受けた不正な第２ユーザ認証情報と、システムエリア１１ａ内の第１ユーザ認証情報とに基づいてユーザ認証を実行する。ここでは、不正なユーザに対するユーザ認証は失敗する。
【０２９９】
ユーザ認証が失敗したとき、ユーザ認証モジュール２２は、システムエリア１１ａ内の可否情報に基づいて、ユーザデータの無効化を阻止する。さらに、システムエリア１１ａ内の内部情報Ｇ（第１部分鍵）が存在する装置の場合は、内部情報Ｇ及びＳＲＡＭ２５内の第３部分鍵Ｋ３の破棄を阻止する。
【０３００】
また、ユーザ認証モジュール２２は、破棄を阻止したとき、ユーザ認証のエラーを現在のホスト装置３０Ａに出力する。また、このとき、構成例βの場合は復号化モジュール２４を動作させない。
【０３０１】
上述したように本実施形態によれば、可否情報によりユーザデータの無効化処理の可否、内部情報Ｇ（第１部分鍵）を持つ場合は、さらに第１部分鍵及び暗号鍵の破棄の可否を設定できる構成により、破棄の可を設定した場合には第１〜第９の各実施形態の効果を得ることができ、破棄の否を設定した場合には暗号化データの破棄を阻止することができる。
【０３０２】
＜第１１の実施形態＞
次に、第１１の実施形態について前述した図１および図２を参照しながら説明する。
【０３０３】
第１１の実施形態は、第９の実施形態において、ユーザ認証失敗時の接続許容回数（リトライ可能回数）を設定するものである。換言すると、第１１の実施形態は、第１０の実施形態の可否情報に代えて、許容接続回数を用いた構成である。
【０３０４】
すなわち、記憶装置１０のシステムエリア１１ａは、前述した各情報に加え、第１部分鍵及び第３部分鍵を破棄するまでに許容される新たな接続の回数を示す許容接続回数と、ユーザ認証が失敗した回数を示すエラー回数とを記憶する。
【０３０５】
ユーザ認証モジュール２２は、前述した各機能に加え、許容接続回数を含む設定要求を正規のホスト装置３０Ａから受けると、当該許容接続回数をシステムエリア１１ａに設定する設定機能をもっている。
【０３０６】
また、ユーザ認証モジュール２２は、ユーザ認証が失敗したとき、システムエリア１１ａ内のエラー回数を増加させるように更新するエラー回数更新機能をもっている。
【０３０７】
さらに、ユーザ認証モジュール２２は、更新後のエラー回数とシステムエリア１１ａ内の許容接続回数に基づいてユーザデータ無効化処理（構成例αの場合）、構成例α１、構成例βの場合はさらに第１部分鍵（内部情報Ｇ）及び第３部分鍵の破棄を阻止する破棄阻止機能をもっている。
【０３０８】
また、ユーザ認証モジュール２２は、ユーザデータ無効化処理が阻止された場合、データ読出モジュール２７を動作させずに、ユーザ認証のエラーを現在のホスト装置３０Ａ（又は３０Ｂ，…）に出力するエラー出力機能をもっている。
【０３０９】
また、ユーザ認証モジュール２２は、構成例βの場合は、第１部分鍵及び第３部分鍵の破棄が阻止されたとき、復号化モジュール２４も動作させない。
【０３１０】
一方、ホスト装置３０Ａの入力モジュール３３は、前述した機能に加え、ユーザの操作に応じて、可否情報を含む設定要求の入力を受け付ける設定要求受付機能をもっている。
【０３１１】
ホスト装置３０ＡのＣＰＵ３４は、前述した機能に加え、入力を受け付けた設定要求を記憶装置１０に送信する設定要求送信機能をもっている。
【０３１２】
以上のような構成によれば、ユーザ認証が失敗した場合に、許容接続回数によりユーザデータの無効化処理、さらに構成例α１、構成例βの場合は、第１部分鍵及び第３部分鍵の破棄の可否を設定できる構成により、許容接続回数に至るまではデータの破棄を阻止できると共に、許容接続回数に至った後は第９の実施形態の効果を得ることができる。
【０３１３】
＜第１２の実施形態＞
次に、第１２の実施形態について前述した図１および図２を参照しながら説明する。
【０３１４】
第１２の実施形態は、第１〜第１１の各実施形態において、ユーザ認証モジュール２２がユーザデータの無効化処理つまり破棄した時、さらに構成例α１、構成例βの場合は、第１部分鍵及び第３部分鍵を破棄したときの破棄ログ情報をシステムエリア１１ａに記憶するものである。
【０３１５】
ここで、破棄ログ情報Ｌｇは、前述同様に、ユーザデータが破棄、さらに構成例α１、構成例βの場合においては第１部分鍵及び第３部分鍵が破棄された日時を示す破棄日時情報と、ユーザ認証の失敗を示す破棄理由情報とを含んでいる。なお、破棄理由情報は、ユーザ認証の失敗に限らず、正規の破棄コマンドで破棄された場合にはその旨を示してもよい。
【０３１６】
ユーザ認証モジュール２２は、前述した各機能に加え、ユーザデータが破棄、さらに構成例α１、構成例βの場合においては第１部分鍵及び第３部分鍵が破棄されたとき、破棄ログ情報Ｌｇを作成してシステムエリア１１ａに書き込む破棄ログ書込機能をもっている。この破棄ログ情報Ｌｇは、正規のホスト装置３０Ａからの読出要求により、システムエリア１１ａから読出可能となっている。
【０３１７】
以上のような構成によれば、ユーザ認証が失敗し、ユーザデータが破棄、さらに構成例α１、構成例βの場合においては内部情報Ｇ（第１部分鍵）及び第３部分鍵Ｋ３が破棄されたとき、ユーザ認証モジュール２２は、破棄された日時を示す破棄日時情報と、ユーザ認証の失敗を示す破棄理由情報とを含む破棄ログ情報Ｌｇを作成してシステムエリア１１ａに書き込む。これにより、例えば記憶装置１０が盗難先から回収された後、正規のホスト装置３０Ａからの読出要求により、破棄ログ情報Ｌｇがシステムエリア１１ａから読み出される。
【０３１８】
上述したように本実施形態によれば、ユーザデータが破棄、さらに構成例α１、構成例βの場合においては内部情報Ｇ（第１部分鍵）及び第３部分鍵Ｋ３が破棄されたとき、破棄ログ情報Ｌｇを記憶する構成により、第１〜第１１の各実施形態の効果に加え、正規のユーザが破棄日時と破棄理由とを知ることができる。
【０３１９】
＜第１３の実施形態＞
次に、第１３の実施形態について前述した図１および図２を参照しながら説明する。
【０３２０】
第１３の実施形態は、第１２の実施形態の破棄ログ情報Ｌｇにデジタル署名を付与した破棄証明書を記憶するものである。
【０３２１】
具体的には第８の実施形態と同様に、記憶装置１０のシステムエリア１１ａは、図２５に示したように、前述した各情報に加え、自装置の署名生成鍵Ｋsig-10を予め記憶する。また、システムエリア１１ａは、図２５及び図２６に示したように、破棄ログ情報Ｌｇ及びデジタル署名からなる破棄証明書Certを記憶する。
【０３２２】
ユーザ認証モジュール２２は、前述した各機能に加え、システムエリア１１ａ内の署名生成鍵Ｋsig-10に基づいてシステムエリア１１ａ内の破棄ログ情報Ｌｇに署名処理を施して、デジタル署名Sig（Ｋsig-10，Ｌｇ）を生成する署名生成機能をもっている。
【０３２３】
また、ユーザ認証モジュール２２は、破棄ログ情報Ｌｇ及びデジタル署名Sig（Ｋsig-10，Ｌｇ）からなる破棄証明書Certを作成し、この破棄証明書Certをシステムエリア１１ａに書込む破棄証明書作成機能を更にもっている。
【０３２４】
この破棄証明書Certは、前述同様に、正規のホスト装置３０Ａからの読出要求により、システムエリア１１ａから読出可能となっている。
【０３２５】
一方、ホスト装置３０Ａの構成は、第８の実施形態と同様である。
【０３２６】
以上のような構成によれば、前述した第１２の実施形態で破棄ログ情報Ｌｇがシステムエリア１１ａに書き込まれたとき、ユーザ認証モジュール２２は、システムエリア１１ａ内の署名生成鍵Ｋsig-10に基づいてシステムエリア１１ａ内の破棄ログ情報Ｌｇに署名処理を施して、デジタル署名Sig（Ｋsig-10，Ｌｇ）を生成する。
【０３２７】
また、ユーザ認証モジュール２１は、破棄ログ情報Ｌｇ及びデジタル署名Sig（Ｋsig-10，Ｌｇ）からなる破棄証明書Certを作成し、この破棄証明書Ｃｅｒｔをシステムエリア１１ａに書込む。これにより、記憶装置１０が盗難先から回収された後、正規のホスト装置３０Ａからの読出要求により、破棄証明書Certがシステムエリア１１ａから読み出される。
【０３２８】
正規のホスト装置３０ＡのＣＰＵ３４は、読み出した破棄証明書Certをメモリ３２Ａ内の署名検証鍵Ｋveri-10に基づいて検証し、検証結果が正当のとき、破棄証明書Certを出力モジュール３５に出力する。
【０３２９】
上述したように本実施形態によれば、ユーザ認証モジュール２２が破棄ログ情報Ｌｇにデジタル署名を付加した破棄証明書Certをシステムエリア１１ａに記憶する構成により、第１２の実施形態の効果に加え、破棄ログ情報Ｌｇの正当性を検証することができる。
【０３３０】
以上説明した少なくとも一つの実施形態によれば、接続されたホスト装置３０Ａ（又は３０Ｂ，…）の機器認証を実行し、機器認証が失敗したとき、ユーザデータを破棄、さらに構成例α１においては認証情報の一部である内部情報Ｇ、構成例βにおいては暗号鍵の一部である第１部分鍵を破棄する機器認証モジュール２１を記憶装置１０が備えた構成により、使用可能なシステム環境とは異なる環境からアクセスされた場合には、ユーザのアクセス権の有無によらず、記憶しているデータを無効にすることができる。
【０３３１】
＜第１４の実施形態＞
次に、第１４の実施形態について前述した図１および図２を参照しながら説明する。
【０３３２】
第１４の実施形態においては、前述の、機器認証、ユーザ認証すべてが成功した後の処理である。本実施形態では、記憶装置１０は、不揮発性半導体メモリ１１としてＮＡＮＤメモリを用いることを前提としており、機器認証、ユーザ認証すべてが成功した後の状態において、ホスト装置からの命令、つまりインターフェース装置を経由して送られる自己破壊コマンドに基づいて、自己破壊を行う機能を持つ。自己破壊の手段は、ＮＡＮＤメモリ１１内の全ての内容を消してしまう方法である。
【０３３３】
この場合、前述のデータ無効化処理の方法として上げた第２の方法から第５の方法など、実際に不揮発性半導体メモリの記憶内容を破壊できる方法が使用できる。なお、第２の方法から第４の方法においては、ユーザデータを保持したブロックのみを消去対象としたが、自己破壊を行う場合においては、全ブロックを対象として、データの消去を行う。
【０３３４】
この自己破壊の後は、ドライブ制御回路内に保持される、ＩＰＬと呼ばれるファームウェアロード用コードが、ファームウェアを見つけられずエラーを検出し、インターフェース経由や、ドライブアクセス状況の通知用のＬＥＤの信号性を利用して、ファームウェアが存在しないことを示すようにすることによって、外部から、他の故障と区別が可能となる。
【０３３５】
本実施例によれば、認証がされたホスト装置から、認証がされたユーザからのみ破壊処理が可能になり、悪意を持ったユーザによる破壊が防げるとともに、必要な時に、安全に高速に破壊し、安全に記憶装置を廃棄することが可能となる。ハードディスクドライブの場合は、外部から強力な磁界を加えることによってＨＤＤとしての破壊が可能であったが、不揮発性半導体メモリを用いた記憶装置において、対応する方法がなかったが、本発明により、簡単に破壊して処分することが可能になる。
【０３３６】
＜各実施形態の変形例＞
第１〜第１３の各実施形態においては、記憶装置１０内の内部情報Ｇ（第１部分鍵）と、ホスト装置３０Ａから送信される固有情報“ＡＡ”（第２部分鍵）とを複合し、生成した第３部分鍵に第２ユーザ認証情報を複合して暗号鍵を作成し、この暗号鍵をＳＲＡＭ２５（揮発性メモリ）に記憶させている。
【０３３７】
これに対し、システムエリア１１ａ内の第１部分鍵及びメモリ３２Ａ内の第２部分鍵を省略する一方、メモリ３２Ａ内に暗号鍵Ｋｇを予め保持し、機器認証が成功したとき、ホスト装置３０Ａから送信した暗号鍵Ｋｇを機器認証モジュール２１がＳＲＡＭ２５に書き込むように変形してもよい。
【０３３８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０３３９】
１  記憶装置１０１  不揮発性半導体メモリ（ＮＡＮＤメモリ）、１９  ＤＲＡＭ、２０  ドライブ制御回路、２１  機器認証モジュール、２２  ユーザ認証モジュール、２３  暗号化モジュール、２４  復号化モジュール、２５  ＳＲＡＭ、２６  データ記憶モジュール、２７  データ読出モジュール、３０Ａ，３０Ｂ  ホスト装置。
【図１】
0005624510.tif 000002
【図２】
0005624510.tif 000003
【図３】
0005624510.tif 000004
【図４】
0005624510.tif 000005
【図５】
0005624510.tif 000006
【図６】
0005624510.tif 000007
【図７】
0005624510.tif 000008
【図８】
0005624510.tif 000009
【図９】
0005624510.tif 000010
【図１０】
0005624510.tif 000011
【図１１】
0005624510.tif 000012
【図１２】
0005624510.tif 000013
【図１３】
0005624510.tif 000014
【図１４】
0005624510.tif 000015
【図１５】
0005624510.tif 000016
【図１６】
0005624510.tif 000017
【図１７】
0005624510.tif 000018
【図１８】
0005624510.tif 000019
【図１９】
0005624510.tif 000020
【図２０】
0005624510.tif 000021
【図２１】
0005624510.tif 000022
【図２２】
0005624510.tif 000023
【図２３】
0005624510.tif 000024
【図２４】
0005624510.tif 000025
【図２５】
0005624510.tif 000026
【図２６】
0005624510.tif 000027
【図２７】
0005624510.tif 000028
【図２８】
0005624510.tif 000029
【図２９】
0005624510.tif 000030
【図３０】
0005624510.tif 000031
【図３１】
0005624510.tif 000032
【図３２】
0005624510.tif 000033
【図３３】
0005624510.tif 000034
【図３４】
0005624510.tif 000035
【図３５】
0005624510.tif 000036
【図３６】
0005624510.tif 000037
【図３７】
0005624510.tif 000038
【図３８】
0005624510.tif 000039