(57)【特許請求の範囲】
【請求項１】
データを記憶領域で記憶する記憶部と、
前記記憶部に電源が投入されると経過時間のカウントを開始する経過時間計測部と、
パスワードと現在日時を表す時刻情報とを含んだコマンドの入力をホスト装置から受け付ける受付部と、
前記経過時間計測部でカウントされた複数のカウンタ値に基づいて、前回のコマンド入力から今回のコマンド入力までの経過時間を算出する算出部と、
前記算出部が算出した経過時間を、前記前回のコマンドに含まれる前回の時刻情報に加算する加算部と、
前記今回のコマンドに含まれる今回の時刻情報が、前記加算部の加算結果よりも小さい場合に前記今回の時刻情報が不整合であると判定し、前記今回の時刻情報が、前記加算結果以上である場合に前記今回の時刻情報が整合であると判定する時刻情報判定部と、
前記時刻情報判定部が不整合と判定した場合に、前記記憶領域に記憶されたデータを無効化する無効化部と、
前記時刻情報判定部が整合と判定した場合に、前記今回のコマンドに含まれるパスワードの認証を行い、当該認証に成功した場合に前記記憶領域へのアクセスを許可する認証部と、
を備えることを特徴とする記憶装置。
【請求項２】
前記算出部は、前記前回のコマンドの入力時までに前記経過時間計測部でカウントされた第１のカウンタ値と、前記今回のコマンドの入力時までに前記経過時間計測部でカウントされた第２のカウンタ値と、に基づいて、前記前回のコマンド入力から前記今回のコマンド入力までの経過時間を算出することを特徴とする請求項１に記載の記憶装置。
【請求項３】
前記データを前記記憶領域に記憶する際には、前記記憶領域中での論理的な記憶位置を示す論理アドレスが、前記ホスト装置によって指定され、
前記記憶部は、前記論理アドレスと前記記憶領域中のアドレスである物理アドレスとの対応関係を示すアドレス変換情報に基づいて、前記論理アドレスを前記物理アドレスに変換するとともに、変換された物理アドレスの位置に前記データを記憶し、
前記無効化部は、前記アドレス変換情報に対して、前記論理アドレスに対応する物理アドレスを無くすように変更することによって、前記記憶領域に記憶されたデータを無効化することを特徴とする請求項１に記載の記憶装置。
【請求項４】
前記無効化部は、前記ホスト装置から書き込まれたデータを含むブロック内のデータを、前記記憶領域から消去することを特徴とする請求項１に記載の記憶装置。
【請求項５】
前記記憶部は、ＮＡＮＤ型フラッシュメモリであり、
前記ＮＡＮＤ型フラッシュメモリは、記憶しているデータを完全消去する際に消去が完了しているか否かの確認処理が行なわれるとともに、消去が不完全である場合には、消去の完了が確認されるまで消去処理が繰り返され、
前記無効化部は、前記ホスト装置から書き込まれたデータを含むブロック内のデータを消去する場合、消去が完了しているか否かの確認処理を行わずに消去することを特徴とする請求項４に記載の記憶装置。
【請求項６】
前記記憶部は、ＮＡＮＤ型フラッシュメモリであり、
前記記憶部は、当該記憶部の動作を制御する制御プログラムおよび前記アドレス変換情報を記憶し、
前記無効化部は、前記記憶部を構成するＮＡＮＤ型フラッシュメモリのチップ全体を消去することによって、前記記憶領域に記憶されたデータを無効化することを特徴とする請求項３に記載の記憶装置。
【請求項７】
前記記憶部は、ＮＡＮＤ型フラッシュメモリであり、
前記記憶部は、当該記憶部の動作を制御する制御プログラムおよび前記アドレス変換情報を記憶し、
前記無効化部は、前記記憶部を構成するＮＡＮＤ型フラッシュメモリのチップ全体にデータの上書きを行うことによって、前記記憶領域に記憶されたデータを無効化することを特徴とする請求項３に記載の記憶装置。
【請求項８】
一定時間あたりの前記コマンドの入力回数を検出し、当該入力回数が所定の上限値を超えたか否かを判定する回数判定部を更に備え、
前記回数判定部が上限値を超えたと判定した場合に、前記無効化部が前記記憶領域に記憶されたデータを無効化することを特徴とする請求項１乃至請求項７のいずれか１つに記載の記憶装置。
【請求項９】
前記受付部は、前記認証部による前記パスワードの認証が所定回数失敗した場合、前記コマンドの受け付けを所定時間停止することを特徴とする請求項１乃至請求項８のいずれか１つに記載の記憶装置。
【請求項１０】
前記記憶部は、前記データを暗号鍵に基づいて暗号化された暗号化データを記憶するとともに、前記暗号化データは前記暗号鍵に基づいて復号化され、
前記暗号鍵を有効とする時間を定めた暗号鍵有効時間と、前記経過時間計測部でカウントされた第３のカウンタ値とを比較し、前記第３のカウンタ値が前記暗号鍵有効時間を超えた場合に、前記暗号鍵が失効したと判定する有効時間判定部を更に備え、
前記無効化部は、前記有効時間判定部が前記暗号鍵有効時間の範囲外と判定した場合に、前記暗号鍵を無効化することによって、前記記憶領域に記憶されたデータを無効化することを特徴とする請求項１に記載の記憶装置。
【請求項１１】
前記有効時間判定部は、前記パスワードが設定された日時を表すパスワード設定日時に前記暗号鍵有効時間を加算し、この加算結果の表す日時が、前記コマンドに含まれる時刻情報の表す日時を超えた場合に、前記暗号鍵が失効したと判定することを特徴とする請求項１０に記載の記憶装置。
【請求項１２】
前記無効化部は、前記暗号鍵を消去又は他の文字列に置き換えることによって、前記記憶領域に記憶されたデータを無効化することを特徴とする請求項１０に記載の記憶装置。
【請求項１３】
データを記憶領域で記憶する記憶部に電源が投入されると、経過時間計測部が、経過時間のカウントを開始する経過時間計測ステップと、
パスワードと現在日時を表す時刻情報とを含んだコマンドの入力を、受付部がホスト装置から受け付ける受付ステップと、
前記経過時間計測部でカウントされた複数のカウンタ値に基づいて、算出部が、前回のコマンド入力から今回のコマンド入力までの経過時間を算出する算出ステップと、
加算部が、前記算出ステップで算出された経過時間を、前記前回のコマンドに含まれる前回の時刻情報に加算する加算ステップと、
時刻情報判定部が、前記今回のコマンドに含まれる今回の時刻情報が、前記加算ステップでの加算結果よりも小さい場合に前記今回の時刻情報が不整合であると判定し、前記今回の時刻情報が、前記加算結果以上である場合に前記今回の時刻情報が整合であると判定する時刻情報判定ステップと、
前記時刻情報判定ステップで不整合と判定された場合に、無効化部が、前記記憶領域に記憶されたデータを無効化する無効化ステップと、
前記時刻情報判定ステップで整合と判定された場合に、認証部が、前記今回のコマンドに含まれるパスワードの認証を行い、当該認証に成功した場合に前記記憶領域へのアクセスを許可する認証ステップと、
を含むことを特徴とする保護方法。
【請求項１４】
データを記憶領域で記憶する記憶部と、
現在日時を表した時刻情報を生成する計時部と、
前記記憶部へのアクセスに際し、予め定められたパスワードと前記時刻情報とを含んだコマンドを前記記憶部に送信する送信部と、
前記記憶部に電源が投入されると経過時間のカウントを開始する経過時間計測部と、
前記送信部から前記コマンドの入力を受け付ける受付部と、
前記経過時間計測部でカウントされた複数のカウンタ値に基づいて、前回のコマンド入力から今回のコマンド入力までの経過時間を算出する算出部と、
前記算出部が算出した経過時間を、前記前回のコマンドに含まれる前回の時刻情報に加算する加算部と、
前記今回のコマンドに含まれる今回の時刻情報が、前記加算部の加算結果よりも小さい場合に前記今回の時刻情報が不整合であると判定し、前記今回の時刻情報が、前記加算結果以上である場合に前記今回の時刻情報が整合であると判定する時刻情報判定部と、
前記時刻情報判定部が不整合と判定した場合に、前記記憶領域に記憶されたデータを無効化する無効化部と、
前記時刻情報判定部が整合と判定した場合に、前記今回のコマンドに含まれるパスワードの認証を行い、当該認証に成功した場合に前記記憶領域へのアクセスを許可する認証部と、
を備える電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、記憶装置、保護方法及び電子機器に関する。
【背景技術】
【０００２】
従来、記録する情報の漏洩を防止する記憶装置として、記録されるデータを自動的に暗号化する記憶装置が知られている。このような記憶装置の機能は、ＳＥＤ（Self  Encryption  Disk）機能として知られている。このＳＥＤ機能を有する記憶装置において、暗号鍵は、設定されたパスワードに基づいて生成され、ホスト装置から記憶装置にパスワードが入力されることによって、暗号化されたデータが復号化可能となる。
【０００３】
また、ホスト装置に接続された記憶装置をホットプラグアタックから保護するため、ホスト装置と記憶装置との双方のタイマを同期させ、この同期のための計時値を用いて両装置における認証のための共通データを生成する技術が知られている。
【０００４】
しかしながら、ＳＥＤ機能による情報漏洩防止技術では、ホスト装置と記憶装置との間の情報の流れからパスワードが読み取られる可能性があるため、改善の余地があった。また、ホスト装置と記憶装置との間でタイマを同期する技術では、両装置の接続関係を検証することが可能であるが、タイマ同期のための処理や機構が両装置で必要となる。そのため、正しい接続関係にある場合も含めて、より簡便に記憶装置のセキュリティを向上させることが可能な技術が望まれている。
【０００５】
また、情報漏洩防止のため、記憶装置としての記録スピード、読み出しスピード等に影響を与えずに暗号化するには、暗号処理回路を記憶装置に組み込まなければならず、記憶装置が複雑になるという問題があった。また、暗号装置を組み込んだ装置については、多くの国々で流通等に関して法規制があり、流通の手続きが煩雑、販売先が限定されるなどの問題もあった。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第４３５７９６３号公報
【特許文献２】特開２００３−２４９０８３号公報
【特許文献３】特開平８−３０６１９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明が解決しようとする課題は、簡便に記憶装置のセキュリティを向上させることができる記憶装置、保護方法及び電子機器を提供することである。
【課題を解決するための手段】
【０００８】
実施形態によれば、記憶装置が提供される。記憶装置では、記憶部が、データを不揮発性半導体メモリで構成された記憶領域に記憶し、経過時間計測部が、前記記憶部への電源の投入に伴い、経過時間のカウントを開始する。受付部が、前記記憶部に接続されたホスト装置から、パスワードと前記ホスト装置で計時された現在日時を表す時刻情報とを含んだコマンドの入力を受け付ける。算出部が、前記コマンドに含まれる時刻情報と、当該コマンドの入力時までに前記経過時間計測部でカウントされたカウンタ値とに基づいて、前回のコマンド入力から今回のコマンド入力までの経過時間を算出する。加算部が、前記算出部が算出した経過時間を、前回入力されたコマンドに含まれる時刻情報に加算する。時刻情報判定部が、前記加算部の加算結果と、今回入力されたコマンドに含まれる時刻情報との時間的な大小関係に基づいて、前記時刻情報の整合性を判定する。無効化部が、前記時刻情報判定部が不整合と判定した場合に、前記記憶領域に記憶されたデータを無効化する。そして、認証部が、前記時刻情報判定部が整合と判定した場合に、今回入力されたコマンドに含まれるパスワードの認証を行い、当該認証に成功した場合に前記記憶領域へのアクセスを許可する。
【図面の簡単な説明】
【０００９】
【図１】図１は、第１の実施形態に係る電子機器の構成を模式的に示す図である。
【図２】図２は、第１の実施形態に係る記憶装置の構成の一例を示すブロック図である。
【図３】図３は、ＮＡＮＤメモリチップに含まれる１個のブロックの構成例と、４値データ記憶方式でのしきい値分布を示す図である。
【図４】図４は、第１の実施形態に係るＮＡＮＤメモリ内のデータを説明するための模式図である。
【図５】図５は、アドレス変換情報の構成例を示す図である。
【図６】図６は、第１の実施形態に係るドライブ制御回路のハードウェア的な内部構成例を示すブロック図である。
【図７】図７は、第１の実施形態に係る記憶装置の機能構成を示す図である。
【図８】図８は、記憶装置が実行するコマンド受付処理の手順を示すフローチャートである。
【図９】図９は、時刻情報判定処理の手順を示すフローチャートである。
【図１０】図１０は、時刻情報判定処理を説明するための図である。
【図１１】図１１は、第２の実施形態に係る記憶装置の構成の一例を示すブロック図である。
【図１２】図１２は、第２の実施形態に係るＮＡＮＤメモリ内のデータを説明するための模式図である。
【図１３】図１３は、第２の実施形態に係るドライブ制御回路のハードウェア的な内部構成例を示すブロック図である。
【図１４】図１４は、第２の実施形態に係る記憶装置の機能構成を示す図である。
【図１５】図１５は、有効時間判定処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、実施形態に係る記憶装置、保護方法及び電子機器を詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
【００１１】
（第１の実施形態）
本実施形態では、パスワード認証が失敗となった場合や、短時間に連続して認証コマンドが入力された場合に、不揮発性半導体メモリ内のユーザデータを読み出しできない状態にする（無効化処理）。これにより、アクセス元となったホスト装置の正当性を確認し、不正なユーザデータの読み出し（ホットプラグアタック）を防ぐ。
【００１２】
図１は、第１の実施形態に係る電子機器の構成を模式的に示す図である。同図に示すように、電子機器（データ記憶システム）は、ホスト装置３０Ａと記憶装置２０Ａとを有したＰＣ（Personal  Computer）等の装置である。ホスト装置３０Ａは、ＣＰＵ（Central  Processing  Unit）１１、ＲＯＭ（Read  Only  Memory）１２、ＲＡＭ（Random  Access  Memory）１３、計時部１４、表示部１５、操作入力部１６および通信部１７を備えている。
【００１３】
ＣＰＵ１１は、ＲＡＭ１３の所定領域を作業領域として、ＲＯＭ１２や記憶装置２０Ａに予め記憶された各種プログラムを実行し、ホスト装置３０Ａを構成する各部の動作を統括的に制御する。
【００１４】
ＲＯＭ１２は、不揮発性の記憶デバイスであって、ホスト装置３０Ａの制御に係るプログラムや各種設定情報等を書き換え不可能に記憶する。ＲＡＭ１３は、揮発性の記憶デバイスであって、ＣＰＵ１１の作業領域として機能し、各種の処理時においてスタックやバッファ等の役割を果たす。
【００１５】
計時部１４は、ホスト装置３０Ａに設けられたＲＴＣ（Real  Time  Clock）等の計時装置であり、現在日時を表した時刻情報を生成する。なお、時刻情報は、所定の年月日（例えば、１９００年１月１日）から起算した秒数で表されている。例えば、現在日時が２０１０年１１月１２日１３時１４分１５秒の場合、時刻情報は“Ｄ０８Ａ５Ｆ２７”（１６進数表記）で表される。
【００１６】
表示部１５は、ＬＣＤ（Liquid  Crystal  Display）等の表示デバイスにより構成され、ＣＰＵ１１からの表示信号に基づいて、各種情報を表示する。操作入力部１６は、各種入力キーを備え、ユーザから操作入力された情報を指示信号として受け付け、その指示信号をＣＰＵ１１に出力する。なお、表示部１５は、操作入力部１６と一体的にタッチパネルを構成する態様としてもよい。
【００１７】
通信部１７は、図示しないネットワークを介して外部装置との間で通信を行う通信インタフェースであって、外部装置から受信した各種の情報をＣＰＵ１１に出力し、また、ＣＰＵ１１から出力される各種の情報を外部装置へ送信する。
【００１８】
また、本実施形態の記憶装置２０Ａは、ホスト装置３０Ａの制御に係るプログラムや各種データ等を書き換え可能に記憶する。記憶装置２０Ａは、例えば、ＳＳＤ（Solid  State  Drive）やフラッシュメモリ等の、不揮発性の半導体メモリを記録媒体とした記憶装置である。
【００１９】
記憶装置２０Ａは、予め定められたパスワードと時刻情報とに基づいて、ホスト装置３０Ａ，３０Ｂなどのホスト装置からのアクセスが正当なアクセスか否かを判定し、正当と判定された場合にのみ記録媒体へのデータの書き込みや、データの読み出しを許可する。そのため、ＣＰＵ１１では、記憶装置２０Ａへのアクセスに際し、リード／ライト等を指示するコマンドとともに、計時部１４から取得した時刻情報を含んだ認証コマンドを記憶装置２０Ａに送信する。なお、記憶装置２０Ａのアクセスに係るＣＰＵ１１の動作は、ＲＯＭ１２に記憶されたプログラムや各種設定情報との協働により実現されるものとする。
【００２０】
図２は、第１の実施形態に係る記憶装置の構成の一例を示すブロック図である。データ記憶システムは、任意のホスト装置３０Ａ，３０Ｂ，…に着脱自在に接続可能な記憶装置２０Ａと、任意のホスト装置３０Ａ，３０Ｂ，…のうち、記憶装置２０Ａへの接続権限をもつ正規のホスト装置３０Ａと、を備えている。
【００２１】
記憶装置２０Ａは、ＡＴＡインタフェース（ＡＴＡ  Ｉ／Ｆ）２などのメモリ接続インタフェースを介してパーソナルコンピュータあるいはＣＰＵコアなどのホスト装置３０Ａと接続され、ホスト装置３０Ａの外部メモリとして機能する。また、記憶装置２０Ａは、ＲＳ２３２Ｃインタフェース（ＲＳ２３２Ｃ  Ｉ／Ｆ）などの通信インタフェース３を介して、デバッグ用／製造検査用機器２００との間でデータを送受信することができる。記憶装置２０Ａは、不揮発性半導体メモリとしてのＮＡＮＤ型フラッシュメモリ（以下、ＮＡＮＤメモリと略す）１０と、コントローラとしてのドライブ制御回路４Ａと、揮発性半導体メモリとしてのＤＲＡＭ１と、電源回路５と、状態表示用のＬＥＤ６と、ドライブ内部の温度を検出する温度センサ７と、フューズ８とを備えている。そして、ドライブ制御回路４Ａ内には、データ無効化モジュール２４、パスワード認証モジュール２５、データ記憶モジュール２６、データ読出モジュール２７、ＳＲＡＭ（Static  Random  Access  Memory）１１５を持つ。
【００２２】
本実施形態においては、不揮発性半導体メモリとしてＮＡＮＤメモリ１０を使用している。ＮＡＮＤメモリ１０は、例えば、４並列動作を行う４つの並列動作要素１０ａ〜１０ｄを有し、１つの並列動作要素は、２つのＮＡＮＤメモリパッケージを有する。各ＮＡＮＤメモリパッケージは、積層された複数のＮＡＮＤメモリチップ（例えば、１チップ＝２ＧＢ）によって構成されている。図２の場合は、各ＮＡＮＤメモリパッケージは、積層された４枚のＮＡＮＤメモリチップによって構成されており、ＮＡＮＤメモリ１０は６４ＧＢの容量を有する。各ＮＡＮＤメモリパッケージが、積層された８枚のＮＡＮＤメモリチップによって構成されている場合は、ＮＡＮＤメモリ１０は１２８ＧＢの容量を有することになる。
【００２３】
ＤＲＡＭ１は、ホスト装置３０ＡとＮＡＮＤメモリ１０との間でのデータ転送用キャッシュおよび作業領域用メモリとして機能する。また、ＤＲＡＭ１の代わりに、ＦｅＲＡＭを使用してもよい。ドライブ制御回路４Ａは、ホスト装置３０ＡとＮＡＮＤメモリ１０との間でＤＲＡＭ１を介してデータ転送制御を行うとともに、記憶装置２０Ａ内の各構成要素を制御する。また、ドライブ制御回路４Ａは、状態表示用ＬＥＤ６にステータス表示用信号を供給するとともに、電源回路からのパワーオンリセット信号を受けて、リセット信号およびクロック信号を自回路内および記憶装置２０Ａ内の各部に供給する機能も有している。なお、ＬＥＤ６は、記憶装置２０自体には無く、例えばホスト装置に設けたＬＥＤ６を点灯させるための信号を出力するための端子のみを設けてあってもよい。
【００２４】
各ＮＡＮＤメモリチップは、データ消去の単位である物理ブロックを複数配列して構成されている。図３の（ａ）は、ＮＡＮＤメモリチップに含まれる１個の物理ブロックの構成例を示す回路図である。各物理ブロックは、Ｘ方向に沿って順に配列された（ｐ＋１）個のＮＡＮＤストリングを備えている（ｐは、０以上の整数）。（ｐ＋１）個のＮＡＮＤストリングにそれぞれ含まれる選択トランジスタＳＴ１は、ドレインがビット線ＢＬ０〜ＢＬｐに接続され、ゲートが選択ゲート線ＳＧＤに共通接続されている。また、選択トランジスタＳＴ２は、ソースがソース線ＳＬに共通接続され、ゲートが選択ゲート線ＳＧＳに共通接続されている。
【００２５】
各メモリセルトランジスタＭＴは、半導体基板上に形成された積層ゲート構造を備えたＭＯＳＦＥＴ（Metal  Oxide  Semiconductor  Field  Effect  Transistor）から構成される。積層ゲート構造は、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層（浮遊ゲート電極）、および電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲート電極を含んでいる。メモリセルトランジスタＭＴは、浮遊ゲート電極に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じてデータを記憶する。メモリセルトランジスタＭＴは、１ビットを記憶するように構成されていてもよいし、多値（２ビット以上のデータ）を記憶するように構成されていてもよい。
【００２６】
また、メモリセルトランジスタＭＴは、浮遊ゲート電極を有する構造に限らず、ＭＯＮＯＳ（Metal-Oxide-Nitride-Oxide-Silicon）型など、電荷蓄積層としての窒化膜界面に電子をトラップさせることでしきい値調整可能な構造であってもよい。ＭＯＮＯＳ構造のメモリセルトランジスタＭＴについても同様に、１ビットを記憶するように構成されていてもよいし、多値（２ビット以上のデータ）を記憶するように構成されていてもよい。
【００２７】
各ＮＡＮＤストリングにおいて、（ｑ＋１）個のメモリセルトランジスタＭＴは、選択トランジスタＳＴ１のソースと選択トランジスタＳＴ２のドレインとの間に、それぞれの電流経路が直列接続されるように配置されている。すなわち、複数のメモリセルトランジスタＭＴは、隣接するもの同士で拡散領域（ソース領域若しくはドレイン領域）を共有するような形でＹ方向に直列接続される。
【００２８】
そして、最もドレイン側に位置するメモリセルトランジスタＭＴから順に、制御ゲート
電極がワード線ＷＬ０〜ＷＬｑにそれぞれ接続されている。従って、ワード線ＷＬ０に接続されたメモリセルトランジスタＭＴのドレインは選択トランジスタＳＴ１のソースに接続され、ワード線ＷＬｑに接続されたメモリセルトランジスタＭＴのソースは選択トランジスタＳＴ２のドレインに接続されている。
【００２９】
ワード線ＷＬ０〜ＷＬｑは、物理ブロック内のＮＡＮＤストリング間で、メモリセルトランジスタＭＴの制御ゲート電極を共通に接続している。別言すれば、ブロック内において同一行にあるメモリセルトランジスタＭＴの制御ゲート電極は、同一のワード線ＷＬに接続されている。この同一のワード線ＷＬに接続される（ｐ＋１）個のメモリセルトランジスタＭＴは１ページ（物理ページ）として取り扱われ、この物理ページごとにデータの書き込みおよびデータの読み出しが行われる。
【００３０】
また、ビット線ＢＬ０〜ＢＬｐは、ブロック間で、選択トランジスタＳＴ１のドレインを共通に接続している。別言すれば、複数のブロック内において同一列にあるＮＡＮＤストリングは、同一のビット線ＢＬに接続されている。
【００３１】
図３の（ｂ）は、例えば、１個のメモリセルトランジスタＭＴに２ビットの記憶を行う４値データ記憶方式でのしきい値分布を示す模式図である。４値データ記憶方式では、上位ページデータ“ｘ”と下位ページデータ“ｙ”で定義される４値データ“ｘｙ”の何れか１つをメモリセルトランジスタＭＴに保持可能である。
【００３２】
この、４値データ“ｘｙ”は、メモリセルトランジスタＭＴのしきい値電圧の順に、例えば、データ“１１”、“０１”、“００”、“１０”が割り当てられる。データ“１１”は、メモリセルトランジスタＭＴのしきい値電圧が負の消去状態である。
【００３３】
下位ページ書き込み動作においては、データ“１１”（消去状態）のメモリセルトランジスタＭＴに対して選択的に、下位ビットデータ“ｙ”の書き込みによって、データ“１０”が書き込まれる。上位ページ書き込み前のデータ“１０”のしきい値分布は、上位ページ書き込み後のデータ“０１”とデータ“００”のしきい値分布の中間程度に位置しており、上位ページ書き込み後のしきい値分布よりブロードであってもよい。上位ページ書き込み動作においては、データ“１１”のメモリセルと、データ“１０”のメモリセルに対して、それぞれ選択的に上位ビットデータ“ｘ”の書き込みが行われて、データ“０１”およびデータ“００”が書き込まれる。
【００３４】
図４は、第１の実施形態に係るＮＡＮＤメモリ内のデータを説明するための模式図である。図４では、ホスト装置３０Ａから見たＮＡＮＤメモリ１０の記憶領域の区分を模式的に示している。不揮発性半導体メモリであるＮＡＮＤメモリ１０は、図４に示すように、一般ユーザがアクセス不可の特殊ＬＢＡ（Logical  Block  Addressing）領域（システムエリア）１１ａ、さらにＬＢＡも割り当てられていない特殊領域１１ｃと、一般ユーザがアクセス可能な通常ＬＢＡ領域（ユーザエリア）１１ｂと、に区分される。
【００３５】
ここで、ユーザエリア１１ｂは、ホスト装置３０Ａからのコマンド（Readコマンド／Writeコマンドなど）によってアクセス可能なＬＢＡ領域（論理アドレス領域）であるのに対し、非ユーザ領域であるシステムエリア１１ａ、特殊領域１１ｃは、ホスト装置３０Ａから発出される通常のコマンドではアクセスすることができない領域である。ＮＡＮＤメモリ１１のうち、ＬＢＡが対応付けされていない領域が、特殊領域１１ｃである。本実施の形態では、非ユーザ領域は、管理情報の記録等に用いられる特殊ＬＢＡ領域（システムエリア）１１ａと、それ以外の、ファームウェアが記録された領域等、またフリーブロックＦＢを含むＬＢＡが割り当てられていない領域が属する特殊領域１１ｃで構成される。
【００３６】
なお、システムエリア１１ａ、特殊領域１１ｃは、記憶装置２０Ａ（ＳＳＤ）の内部に展開されるファームウェア（ＦＷ）を構成するモジュールが発出するコマンドによってアクセスすることが可能である。また、特殊領域１１ｃに格納されたファームウェア（ＦＷ）は、後述のブート用プログラムによって、起動時に読み出されて例えばＳＲＡＭ１１５に展開されて実行される。
【００３７】
なお、これらのシステムエリア１１a、ユーザエリア１１ｂ、特殊領域１１ｃは、物理的にそれぞれ連続した物理領域として存在する必要はなく、ＮＡＮＤメモリ１１の個々の物理管理単位が、それぞれこれらの領域に属する。また、個々の物理管理単位が属する領域は、固定ではなく、記憶装置２０の使用とともに変化していく。例えば、特殊領域１１ｃとして使用していたブロックが解放されフリーブロックＦＢとなった後、このフリーブロックＦＢにユーザデータが記録されると、以降は通常ＬＢＡ領域１１ｂとして使用される。このように個々の物理管理単位が属する領域は、固定ではなく、記憶装置１０の使用とともに、変化していく。
【００３８】
これらのシステムエリア１１ａ、ユーザエリア１１ｂおよび特殊エリア１１ｃについて、具体例を用いて説明する。いま、記憶装置２０Ａの記憶領域のサイズを、例えば６４ＧＢとすると、この６４ＧＢの領域はユーザ領域である。なお、ここでいう６４ＧＢの領域というのは、ＬＢＡの範囲が６４ＧＢという意味であり、常に物理的に６４ＧＢのＮＡＮＤメモリ１１が割り当てられているという意味ではない。一方、記憶装置２０Ａには、ホスト装置３０Ａからアクセスできる当該６４ＧＢの領域（ユーザ領域）以外に、記憶装置２０Ａの内部情報を保存するための領域として、所定サイズ（例えば、１論理ブロック分程度）の領域（非ユーザ領域）がＬＢＡ上にマップされる。この６４ＧＢの領域がユーザエリア１１ｂであり、所定サイズの領域がシステムエリア１１ａであり、これらに属さない領域が特殊領域１１ｃである。なお、ここではファームウェアが特殊エリア１１ｃに記録されるとしているが、特殊ＬＢＡ領域に記録してもよい。
【００３９】
システムエリア１１ａは、例えば、記憶装置２０Ａを管理する管理データ、ＳＭＡＲＴ情報などを保存するために使用される。このシステムエリア１１ａに格納される管理データは、ユーザエリア１１ｂに格納されるユーザデータと同じ管理方式でハンドリングされ、ユーザエリア１１ｂがマップされ得る全ての論理ブロックに割り当てが可能である。
【００４０】
システムエリア１１ａは、例えば、第１ユーザ認証情報を記憶する。第１ユーザ認証情報は、正規のホスト装置３０Ａを使用する正規のユーザを認証するためのものである。第１ユーザ認証情報としては、正規のユーザのパスワードＰを一例として用いるが、この例に限定されない。例えば、第１ユーザ認証情報としてユーザＩＤを用いてもよいし、パスワードＰおよびユーザＩＤの両方を用いてもよい。第１ユーザ認証情報は、例えば初期設定時に、パスワード認証モジュール２５からシステムエリア１１ａに予め書込まれる。なお、ここではユーザ認証としたが、正規のホスト装置であることを認証するための機器認証情報等、なんらかの認証情報が予め書き込まれるように変更可能である。
【００４１】
ユーザエリア１１ｂは、ユーザデータＤを記憶している。データ記憶モジュール２６は、有効データを保持しないＮＡＮＤメモリ１０上に、データを記憶する機能を持つ。データ記憶モジュール２６は、ホスト装置３０Ａから送られた論理アドレスとユーザデータＤを受け取り、有効データを保持しないＮＡＮＤメモリ１０上のブロックに書き込み、その物理アドレスと、ホスト装置３０Ａから送付された論理アドレスの対応状況を、システムエリア１１ａ内のアドレス変換情報に書込む。アドレス変換情報は、例えば、論理アドレスと物理アドレスとを対応付けした論物変換テーブルである。
【００４２】
図５は、アドレス変換情報の構成例を示す図である。同図に示すように、アドレス変換情報は、ホスト装置３０Ａが指定する論理アドレスとしてのＬＢＡとＮＡＮＤメモリ１０上でのデータ記憶位置である物理アドレスとの対応関係を示す情報である。
【００４３】
データ読出モジュール２７は、ＮＡＮＤメモリ１０から、指定された論理アドレスのデータを読み出す機能を持つ。ホスト装置３０Ａから指定されたアドレスのデータを出力するよう要求された場合、システムエリア１１ａ内に保持したアドレス変換情報から、ドライブ制御回路４Ａ内のアドレス変換手段（図示せず）が、論理アドレスを物理アドレスに変換して、その物理アドレスからユーザデータＤを読み出し、ホスト装置３０Ａに出力する。
【００４４】
アドレス変換情報には、初期時は、論理アドレスに対応する物理アドレスは登録されていない。そのため、データ読出モジュール２７は、読み出し要求を受けると、ホスト装置３０Ａによって書き込まれたものではないデータを出力、あるいはエラーをホスト装置３０Ａに通知するなどの動作をする。
【００４５】
この実現方法としては、例えば、初期時のアドレス変換情報を、論理アドレスに対応するユーザデータＤを記憶した物理アドレスが存在しない状態とし、記憶時に、論理アドレスに対応する物理アドレスを登録する。前記アドレス変換手段は、アドレス変換情報に対応する物理アドレスが存在しない場合に、例えばゼロの値のみでなるデータを出力する、もしくはエラーをホスト装置３０Ａに通知する。
【００４６】
若しくは、例えば、初期時のアドレス変換情報を、全ての論理アドレスが１つの固定データを記憶した特殊ブロックの物理アドレスを示すようにしておく。そして、ホスト装置３０Ａから読み出し要求が来ると、この特殊ブロックを読み出して得たデータをホスト装置３０Ａに出力するようにしてもよい。
【００４７】
なお、これらの例に限定されず、様々な記憶装置２０Ａの実現方法がある。アドレス変換情報において、論理アドレスに対応するユーザデータＤを記憶した物理アドレスが登録されていない状態では、ＮＡＮＤメモリ１０上にユーザデータＤが記憶されていたとしても、ホスト装置３０Ａからの要求でユーザデータＤを出力できない。
【００４８】
本実施形態のドライブ制御回路４Ａは、データ無効化モジュール２４を制御する。データ無効化モジュール２４は、認証失敗時のユーザデータの無効化処理を行う。ユーザデータの無効化処理は、ホスト装置３０ＡからユーザデータＤを読み出しできなくする処理である。
【００４９】
図６は、第１の実施形態に係るドライブ制御回路のハードウェア的な内部構成例を示すブロック図である。ドライブ制御回路４Ａは、データアクセス用バス１０１、第１の回路制御用バス１０２、および第２の回路制御用バス１０３を備えている。第１の回路制御用バス１０２には、ドライブ制御回路４Ａ全体を制御するプロセッサ１０４が接続されている。第１の回路制御用バス１０２には、ＮＡＮＤメモリ１０に記憶された各管理プログラム（ＦＷ：ファームウエア）をブートするブート用プログラムが格納されたブートＲＯＭ１０５がＲＯＭコントローラ１０６を介して接続されている。また、第１の回路制御用バス１０２には、図２に示した電源回路５からのパワーオンリセット信号を受けて、リセット信号およびクロック信号を各部に供給するクロックコントローラ１０７が接続されている。
【００５０】
第２の回路制御用バス１０３は、第１の回路制御用バス１０２に接続されている。第２の回路制御用バス１０３には、図２に示した温度センサ７からのデータを受けるためのＩ2Ｃ回路１０８、状態表示用ＬＥＤ６にステータス表示用信号を供給するパラレルＩＯ（ＰＩＯ）回路１０９、ＲＳ２３２Ｃ  Ｉ／Ｆ３を制御するシリアルＩＯ（ＳＩＯ）回路１１０が接続されている。
【００５１】
ＡＴＡインタフェースコントローラ（ＡＴＡコントローラ）１１１、第１のＥＣＣ（Error  Checking  and  Correction）回路１１２、ＮＡＮＤコントローラ１１３Ａ、およびＤＲＡＭコントローラ１１４は、データアクセス用バス１０１と第１の回路制御用バス１０２との両方に接続されている。ＡＴＡコントローラ１１１は、ＡＴＡインタフェース２を介してホスト装置３０Ａとの間でデータを送受信する。データアクセス用バス１０１には、データ作業領域作業領域およびファームウェア展開領域として使用されるＳＲＡＭ１１５がＳＲＡＭコントローラ１１６を介して接続されている。ＮＡＮＤメモリ１０に記憶されているファームウェアは起動時、ブートＲＯＭ１０５に記憶されたブート用プログラムによってＳＲＡＭ１１５に転送される。
【００５２】
ＮＡＮＤコントローラ１１３Ａは、ＮＡＮＤメモリ１０とのインタフェース処理を行うＮＡＮＤ  Ｉ／Ｆ１１７、第２のＥＣＣ回路１１８、ランダマイズ回路１２２、およびＮＡＮＤメモリ１０−ＤＲＡＭ２０間のアクセス制御を行うＤＭＡ転送制御用ＤＭＡコントローラ１１９を備えている。第２のＥＣＣ回路１１８は第２の訂正符号のエンコードを行い、また、第１の誤り訂正符合のエンコードおよびデコードを行う。第１のＥＣＣ回路１１２は、第２の誤り訂正符号のデコードを行う。第１の誤り訂正符号、第２の誤り訂正符号は、例えば、ハミング符号、ＢＣＨ（Bose  Chaudhuri  Hocqenghem）符号、ＲＳ(Reed  Solomon)符号、或いはＬＤＰＣ（Low  Density  Parity  Check）符号等であり、第２の誤り訂正符号の訂正能力は、第１の誤り訂正符号の訂正能力よりも高いとする。ランダマイズ回路１２２は、ＮＡＮＤメモリ１０に記憶させるデータをランダマイズ化する回路であるが、省略してもよい。
【００５３】
ランダマイズ回路１２２は、例えばＤＭＡコントローラ１１９と第２のＥＣＣ回路１１８との間に配置される。なお、ランダマイズ回路１２２を、第２のＥＣＣ回路１１８とＮＡＮＤ  Ｉ／Ｆ１１７との間に配置してもよい。図６では、ＤＭＡコントローラ１１９にランダマイズ回路１２２を接続し、ランダマイズ回路１２２に第２のＥＣＣ回路１１８を接続した場合を示している。
【００５４】
不揮発性半導体メモリとして主に用いられるＮＡＮＤメモリ１０の特性として、データをランダム化して記録した方が、寿命が延びるという特性があり、近年の微細化の進んだＮＡＮＤメモリを用いる記憶装置においては、データがランダマイズ化されて記録される。ランダム化の方式としては、可逆変換が使われるが、疑似乱数（暗号に使えるような暗号的な意味での乱数の必要はない）を使用する方法や、暗号アルゴリズムを固定鍵で使う方法がある。
【００５５】
また、鍵が固定でなくとも鍵長が短ければ、暗号強度は弱まるが、ＮＡＮＤメモリの寿命延長上は十分である。これらのデータランダマイズ用のハードウェアは、データを保護するための暗号化機能に比べて、簡単なハードウェアで実現できる。いずれにせよ、暗号化ドライブで使うランダム化のためのハードウェアより、簡単なハードウェアでランダマイズすることが多いので、仮に記憶装置２０Ａを分解して、ＮＡＮＤメモリ１０から直接データを読み出しても、容易にランダマイズ前の元データを得ることはできない。
【００５６】
本実施形態のドライブ制御回路４Ａは、記憶装置２０Ａへの電源供給が開始されてからの経過時間を計測する経過時間計測部１３０を備えている。経過時間計測部１３０は、カウントした経過時間を、プロセッサ１０４に送る。経過時間計測部１３０で計測されたカウント値は、ホスト装置３０Ａから認証コマンドとして送信される時刻情報との間における、時刻情報の時間的な整合性の判定に用いられる。
【００５７】
次に、図７を参照して、記憶装置２０Ａの構成について説明する。図７は、第１の実施形態に係る記憶装置の機能構成を示す図である。図７に示すように、記憶装置２０Ａは、コマンド受付部２０１、時刻情報判定部２０２、パスワード認証部２０４、データ無効化部２０５Ａ及び記憶部２０６を備えている。
【００５８】
コマンド受付部２０１は、ホストＩＦ（ＡＴＡインタフェース２）を介して入力されるコマンド（認証コマンド）の受け付けに関する制御を行う機能部である。具体的には、コマンド受付部２０１は、コマンドの受け付け開始時（記憶装置２０Ａの電源投入時）において、記憶部２０６に保持された起動時無効化フラグ及び不正使用フラグの状態を確認する。両フラグがセットされていない場合、コマンド受付部２０１は、前回の記憶装置２０Ａの電源断が正当に行われたと判断し、ホスト装置３０Ａからのコマンドの受け付けを開始する。なお、起動時無効化フラグ及び不正使用フラグの何れかがセットされていた場合、コマンド受付部２０１は、不正な操作が行われたと判断し、コマンドの受け付けを停止する。
【００５９】
ここで、起動時無効化フラグは、記憶装置２０Ａに不正な操作の疑いがある所定の操作（例えば、パスワード認証の失敗等）が行われた場合にセットされるフラグ情報である。また、不正使用フラグは、不正な操作と定義された所定の操作（例えば、パスワード認証を所定回数失敗する等）が行われた場合にセットされるフラグ情報である。
【００６０】
また、コマンド受付部２０１は、記憶装置２０Ａの動作中において、不正使用フラグがセットされると、ホスト装置３０Ａからのコマンド受け付けを所定時間停止し、この所定時間が経過した後、コマンド受け付けを再開する。なお、コマンド受け付けの停止時間は、設定情報として記憶部２０６（フラッシュメモリ等）に予め設定されているものとする。
【００６１】
時刻情報判定部２０２は、ホスト装置３０Ａから認証コマンドとして送信される時刻情報と、経過時間計測部１３０でカウントされるカウンタ値とに基づいて、時刻情報の時間的な整合性を判定する時刻情報判定処理を実行する。なお、時刻情報判定処理の詳細については、後述する（図５参照）。
【００６２】
パスワード認証部２０４は、認証コマンドに含まれるパスワードと、当該パスワードとの照合用として記憶部２０６に記憶された後述する照合用パスワードとを比較し、両パスワードが一致するか否かを判定することで、パスワードの認証を行う。
【００６３】
また、パスワード認証部２０４は、一定時間あたりの認証コマンドの入力回数を検出し、この入力回数が所定の上限値を上回った場合に、認証コマンドの入力が短時間に連続して行われたと判定する。この場合、後述するようにブルートフォースアタック（総当たり攻撃）等のパスワードアタックが行われている可能性があるため、パスワード認証部２０４は、不正な操作と判断する。なお、不正な操作と判定する際の上限値は、設定情報として記憶部２０６（フラッシュメモリ等）に予め設定されているものとする。
【００６４】
また、パスワード認証部２０４は、パスワードの不一致を確認すると（パスワード認証に失敗すると）、不正な操作の可能性があると判断し、起動時無効化フラグをセットする。さらに、パスワード認証部２０４は、パスワード認証に所定回数失敗すると、不正な操作と判断し、不正使用フラグをセットする。なお、パスワード認証に成功した場合には、起動時無効化フラグ及び不正使用フラグのセットの解除（クリア）し、記憶装置２０Ａへのアクセスを許可する。
【００６５】
データ無効化部２０５Ａは、上記各機能部の判定（判断）結果に応じて、ＮＡＮＤメモリ１０内のユーザデータＤの無効化を行う機能部である。ここで、ユーザデータの無効化とは、ホスト装置３０Ｂなどの不正なホスト装置からユーザデータを読み出しできなくする処理である。換言すると、ＮＡＮＤメモリ１０に記録されたデータが読み取られてしまうことを防止するものである。
【００６６】
記憶部２０６は、記憶装置２０Ａが備える不揮発性メモリ（ＮＡＮＤメモリ１０など）の所定の記憶領域により実現される機能部であって、後述するコマンド受付処理の実行に係る各種の情報を記憶する。
【００６７】
具体的には、記憶部２０６は、コマンド受付処理の実行に係る情報として、照合用パスワード、パスワード設定日時、上述した起動時無効化フラグ及び不正使用フラグ等を記憶している。
【００６８】
ここで、照合用パスワードは、記憶装置２０Ａの利用に係る正規のパスワードであって、ホスト装置３０Ａ，３０Ｂなどから送信されるパスワードとの照合に用いられる。パスワード設定日時は、照合用パスワードが設定された日時を表す情報である。なお、パスワード設定日時は、上述した時刻情報と同様、所定の年月日（例えば、１９００年１月１日）から起算した秒数で表されている。
【００６９】
ここで、データ無効化部２０５Ａによる、ユーザデータＤの具体的な無効化方法について説明する。ユーザデータＤの無効化方法としては、例えば、以下の５つの方法がある。
【００７０】
（第１の無効化方法）
ユーザデータＤの無効化の第１の方法として、前述のアドレス変換情報を初期化する方法がある。初期化とは、論理アドレスに対応するユーザデータＤを記録した物理アドレスが無い状態にすることである。この方式の場合、アドレス変換情報の大きさは、記憶装置２０Ａ全体のデータ量に対して、非常に小さいため、きわめて短時間でユーザデータＤの無効化を実施できる。
【００７１】
これにより、アドレス変換情報を初期化した記憶装置２０Ａから、ＮＡＮＤメモリ１０上のデータを、論理アドレスを介さずに、例えば物理アドレスを指定して読み出す手段を別に設けなければ、インタフェース経由でユーザデータＤを読み出すことは不可能になる。なお、ランダマイズ回路１２２が備えられていれば、前述のように仮に分解して、ＮＡＮＤメモリ１０から直接データを読み出しても、容易にランダマイズ前の元データを得ることはできない。
【００７２】
なお、実際の実装にあたっては、管理の都合から、外部から与えられた論理アドレスを、機器内部の内部論理アドレスに変換して、しかるのち内部論理ブロックアドレスへ変換し、最後に物理アドレスに変換するという複数段階の構成をとることもできる。前述の説明でいうアドレス変換情報を無くすという操作は、この外部から与えられた論理アドレスから、最終的な物理アドレスへの変換過程の、何れか１箇所で行えばよい。実装の一例として、ＮＡＮＤメモリ１０の物理アドレス空間を、機器起動時に必要な情報（ドライブ制御回路４Ａの制御プログラム等）を記録した特殊領域１１ｃと、残りの機器内部用論理アドレス空間用と、に分ける。さらに、機器内部アドレス空間は、外部から与えられる論理アドレス空間をマッピングした領域（ユーザエリア１１ｂ）と、ドライブ制御回路４Ａがシステムエリア１１ａとして使う特殊ＬＢＡ領域に分けて使うことができる。この場合、ユーザデータＤ用にマッピングした内部アドレス空間から物理アドレスへの変換情報のみ破棄することにより、記憶装置２０Ａの動作に必要なシステムエリア１１ａの情報を失わず、不正なホスト装置からのデータアクセスを不能にすることができる。
【００７３】
（第２の無効化方法）
ユーザデータＤの無効化の第２の方法として、前記ＮＡＮＤメモリ１０内のユーザデータを記録した領域（ユーザエリア１１ｂ）を消去する方法がある。ＮＡＮＤメモリ１０は、磁気記録を用いたハードディスクドライブとは異なり、上書きができないので、ブロック単位で消去してから記録する。そして、時間がかかるのは記録（書き込み）であるので、消去だけであれば、非常に高速に可能である。これにより、実際に記録されたデータそのものを消去することが可能である。例えば，１ブロックの消去と記録が２００ｍｓ必要なところが、５ｍｓ以下で消去でき、１ブロック全体上書きによる消去の１／４０以下の時間で消去が可能になる。
【００７４】
なお、ＮＡＮＤメモリ１０を用いた記憶装置２０Ａでは、通常の記録動作時において、前述のアドレス変換情報からブロックが除かれた時など、有効なデータを保持しなくなった時点（フリーブロックになった時点）で消去する場合と、フリーブロックになった時には消さずに、データを記録する直前に消す方法がある。
【００７５】
ユーザデータＤの無効化における消去では、フリーブロックになったか否かを問わず、ユーザデータＤが記録されている可能性のある全ブロックを実際に消去してもよい。１つのＮＡＮＤブロック中に、ユーザデータＤと、記憶装置２０Ａの内部情報が混在して記録されている場合は、ユーザデータＤ以外のデータを別のブロックにコピーしてからユーザデータＤを消去する。アドレス変換情報を初期化せずに、対応するブロックの情報を消去してしまうと、読みだしたデータは、エラー訂正符号も合わなくなるので、その後は読み出すと、その後は全て訂正不能ＵＮＣ（Uncorrectable  Error）になる。このため、ブロックを消去する場合には、前述のアドレス変換情報の消去と組み合わせることが望ましい。なお、アドレス変換情報の消去とブロックの消去は、どちらを先に行ってもよい。
【００７６】
（第３の無効化方法）
さらに、ユーザデータＤの無効化の第３の方法として、前記第２の無効化方法における消去を不完全な消去とする方法がある。ＮＡＮＤメモリ１０を用いた記憶装置２０Ａにおいては、本方法を用いれば、データ無効化による消去を不完全ながら高速に行うことができる。
【００７７】
通常のＮＡＮＤメモリ１０の消去は、記録可能になるまで完全消去している。ＮＡＮＤメモリ１０を消去する場合は、対象のブロック中のワード線ＷＬ０〜ＷＬｑを選択し（ワード線の電位を０Ｖとし）、ビット線ＢＬ０〜ＢＬｐをフローティング状態にした後、Ｓｉ基板のＰ−Ｗｅｌｌに所定の電圧を所定時間加えることで、浮遊ゲート中の電子を抜き出す。その後、消去状況の確認（Erase  Verify）を行い、完全に消えていなければ、また消去するという操作を数回繰り返すことによって完全に消去する。
【００７８】
一方、ユーザデータＤを読めなくさせることだけが目的であれば、消去操作を１回だけ行い、又は消去回数を減らし、Erase  Verify（消去ベリファイ）を省略にすることにより、消去時間を短縮できる。この場合、完全にはユーザデータＤが消去されていない状態だが、各セルの値はばらばらに変化しており、事実上読み出し不能になる。このように、ここでいう不完全な消去というのは、再記録には不十分だが、データ読出しの阻止という意味では十分な消去である。
【００７９】
なお、消去回数は、１回に限らず複数回であってもよい。この場合であっても、完全なブロック消去より高速にユーザデータＤを消去することが可能となる。また、１回の消去時間（消去電圧の印加時間）を、ユーザデータＤを読み出し不能にさせるために十分な時間にするなどの調整を行ってもよい。なお、消去作業により、全セルの電圧が均等に下がるのではなく、メモリセル毎にばらばらに下がる。このため、仮にメモリセルに電位が残っていても、読み出しレベル（読み出し時にワード線に印加する電圧）を変えるなどして再現（読み出したユーザデータＤの復元）することは極めて困難になる。
【００８０】
なお、ユーザデータＤの無効化を行う際に、Erase  Verifyを行ってもよい。この場合、例えば、特開２００３−２４９０８３号公報に記載の消去ベリファイなどによって、ユーザデータＤの無効化を行う。
【００８１】
なお、第３の無効化方法で消去したブロックに新たなユーザデータＤを記録してしまうと、データ化けが発生してしまうので、新たなユーザデータＤの記録前には、再度、通常の消去動作をする必要がある。フリーブロックを記録直前に消去してから使う方式のＳＳＤであれば、特に不完全な消去をしたことを覚えておく必要はない。フリーブロック化時に消去する方式のＳＳＤであれば、不完全な消去をしたブロックを記憶装置２０Ａ内部の管理情報として記録しておき、後に、再度完全消去する必要がある。
【００８２】
（第４の無効化方法）
さらに、ユーザデータＤの無効化の第４の方法として、前記第２、第３の無効化方法において、Chip内の複数ブロックを同時に消去する方法がある。この方法では、例えば特開平８−３０６１９６号公報に記載の消去方法などによって、Chip内の複数ブロックを同時に消去する。この方法により、第２、第３の無効化方法よりも、さらに高速にユーザデータＤの無効化を行うことが可能となる。
【００８３】
（第５の無効化方法）
さらに、ユーザデータＤの無効化の第５の方法として、１回の操作で、ＮＡＮＤメモリchip中のデータを消す方法がある。この方法では、Chip中の全てのワード線を選択し、Ｐ−Ｗｅｌｌに電圧を加えることによって、Chip全体を消去する。なお、この方法では消費電力が大きくなる場合があるので、複数のchipをまとめて消すことができない場合は、chipを１枚ずつ消すなどの制御が必要となる。
【００８４】
なお、ＮＡＮＤメモリ１０を用いた記憶装置２０Ａでは、ＮＡＮＤメモリ１０中にも、ドライブの制御プログラムであるファームウェアや、制御プログラムが用いる前述のアドレス変換情報などの管理情報も記録される。このため、本方法を用いると、これらのデータも全て消去することになり、消去後は、記憶装置として動作しなくなる。換言すると、この方法では、ユーザデータＤの消去後に記憶装置２０Ａがもはや機能しなくなる故障状態となる。したがって、ユーザデータＤの復元を不能にすることが可能となる。
【００８５】
なお、chip全体のデータ無効化としては、消去の他に、全てのメモリセルの電位が上がる方向に記録電圧をかけてユーザデータＤにデータの上書きをしてもよい。具体的には、全ビット線ＢＬ０〜ＢＬｐを０にして、全ワード線ＷＬ０〜ＷＬｑにプログラム電圧を与えてしまえばよい。
【００８６】
ユーザデータＤの消去後は、次の起動時にブートＲＯＭ１０５に格納されたブート用プログラムが、ファームウェアを見つけられずエラーが検出される。そして、インタフェース経由によって、またはドライブアクセス状況の通知用のＬＥＤの信号性を利用して、ファームウェアが存在しないことを示すことにより、外部から他の故障と区別することが可能となる。
【００８７】
なお、本実施形態におけるユーザデータＤの無効化処理は、前述の記憶装置２０Ａ内部の全てのデータを消す方法以外が好ましい。すなわち、第１から第４の方法が好ましい。
【００８８】
（その他の無効化方法）
なお、上述した方法以外にも、ユーザデータＤの無効化処理は、様々な方法が考えられる。例えば、単に、前述のシステムエリア１１ａに、ユーザデータＤが無効化処理されていることを示す情報を記録し、この記録がある場合、以後のホスト装置からの読み出し命令に応答しなくする方法がある。この場合、ホスト装置から書き込み命令を受け取る前に、少なくとも、アドレス変換情報を初期化する必要がある。もしくは、無効化処理がされている論理アドレスを記録する必要がある。また、他の方法として、実際に論理アドレスに対応するユーザデータＤを全て意味の無いデータ（例えば０）で上書きしてしまう方法がある。
【００８９】
以上のように、ユーザデータＤの無効化処理には、様々な方法を取りうるので、ユーザデータＤの無効処理にあたって使用する方法を、ホスト装置３０Ａから予め設定できるようにしてもよい。
【００９０】
すなわち、記憶装置２０Ａのシステムエリア１１ａに、前述および後述の実施形態で述べる各種情報に加え、ユーザデータＤの無効化方式を記憶させておく。この場合、消去方式によっては併用できるものもあるので、記憶できる方式は２種類以上であってもよい。パスワード認証モジュール２５は、前述した各機能に加え、ユーザデータ無効化方式の設定要求を正規のホスト装置３０Ａから受けると、当該ユーザデータ無効化方式情報をシステムエリア１１ａに設定（記憶）する設定機能をもっている。
【００９１】
例えば、パスワード認証モジュール２５は、前述の第１の無効化方法（アドレス変換情報の初期化）のみ設定、前述の第２の無効化方法（ユーザデータを保持するブロックの完全消去）のみ設定、前述の第３の無効化方法（ユーザデータを保持するブロックの不完全消去）のみ設定、といった単独の無効化方法の設定を行ってもよい。また、パスワード認証モジュール２５は、前述の第１の無効化方法（アドレス変換情報の初期化）と、前述の第３の無効化方法（不完全なユーザデータ消去）と、の組み合わせの設定を行ってもよい。これらを実現するには、ユーザデータ無効化方式のそれぞれの方式毎に、実施の可否を設定（記憶）してもよいし、可能な組み合わせ毎に番号を与え、その番号を記憶してもよい。あるいは、無効化の強度に応じてレベル付を行い、そのレベルで設定できるようにしてもよい。そして、パスワード認証モジュール２５は、ユーザデータ無効化処理の実施の際、システムエリア１１ａ内に記憶した無効化方式情報に基づいて、ユーザデータＤの無効化処理を実施する機能を持っている。以上の構成により、ホスト装置３０Ａから設定したユーザデータ無効化方式を用いて、ユーザデータＤの無効化が実行される。
【００９２】
次に、図８〜図１１を参照して、上述した構成の記憶装置２０Ａの動作について説明する。図８は、記憶装置が実行するコマンド受付処理の手順を示すフローチャートである。図示しない電源ボタンの操作によりホスト装置３０Ａの電源がオンとされ、記憶装置２０Ａへの電源供給が開始されると、経過時間計測部１３０はカウントを開始する（ステップＳ１１）。
【００９３】
続いて、コマンド受付部２０１は、記憶部２０６に保持された起動時無効化フラグの状態を確認し、セットされているか否かを判定する（ステップＳ１２）。ここで、起動時無効化フラグがセットされていると判定した場合（ステップＳ１２；Ｙｅｓ）、コマンド受付部２０１は、前回の動作時に不正な操作が行われた疑いがあると判断する。この場合、
データ無効化部２０５Ａは、ユーザデータＤを無効化し（ステップＳ３１）、本処理を終了する。
【００９４】
ステップＳ１２において、起動時無効化フラグがセットされていないと判定した場合（ステップＳ１２；Ｎｏ）、コマンド受付部２０１は、不正使用フラグがセットされているか否かを判定する（ステップＳ１３）。ここで、不正使用フラグがセットされていると判定した場合（ステップＳ１３；Ｙｅｓ）、コマンド受付部２０１は、前回の動作時に不正な操作が行われたと判断する。この場合、データ無効化部２０５Ａは、ユーザデータＤを無効化し（ステップＳ３１）、本処理を終了する。
【００９５】
また、コマンド受付部２０１は、起動時無効化フラグ及び不正使用フラグがともにセットされていないと判定すると（ステップＳ１３；Ｎｏ）、認証コマンドの受け付けを開始し（ステップＳ１４）、ホスト装置３０Ａから認証コマンドを受信するまで待機する（ステップＳ１５；Ｎｏ）。そして、ホスト装置３０Ａから認証コマンドを受信すると（ステップＳ１５；Ｙｅｓ）、時刻情報判定部２０２は、この認証コマンドに対し時刻情報判定処理を実行する（ステップＳ１６）。ここで、図９を参照して、ステップＳ１６の時刻情報判定処理について説明する。
【００９６】
図９は、時刻情報判定処理の手順を示すフローチャートである。まず、時刻情報判定部２０２は、認証コマンドに時刻情報が含まれているか否かを判定する（ステップＳ１６１）。ここで、時刻情報が含まれていないと判定した場合（ステップＳ１６１；Ｎｏ）、時刻情報判定部２０２は、受信した認証コマンドを不正なコマンドと判断する。この場合、データ無効化部２０５Ａは、ユーザデータＤを無効化し（ステップＳ１６７）、本処理を終了する。
【００９７】
また、認証コマンドに時刻情報が含まれている場合（ステップＳ１６１；Ｙｅｓ）、時刻情報判定部２０２は、記憶部２０６に前回受信時情報が記憶されているか否かを判定する（ステップＳ１６２）。ここで、前回受信時情報が記憶部２０６に記憶されていないと判定すると（ステップＳ１６２；Ｎｏ）、時刻情報判定部２０２は、ステップＳ１６８の処理に移行する。
【００９８】
一方、前回受信時情報が記憶されていると判定した場合（ステップＳ１６２；Ｙｅｓ）、時刻情報判定部２０２は、この前回受信時情報を記憶部２０６から読み出す（ステップＳ１６３）。次いで、時刻情報判定部２０２は、前回受信時情報に含まれるカウンタ値と、経過時間計測部１３０の現在のカウント値との差分から、前回の認証コマンドを受信してから今回の認証コマンドを受信するまでの経過時間を算出する（ステップＳ１６４）。
【００９９】
続いて、時刻情報判定部２０２は、前回受信時情報に含まれた時刻情報にステップＳ１６４で算出した経過時間を加算し、計算時刻を導出する（ステップＳ１６５）。そして、時刻情報判定部２０２は、この計算時刻と入力された認証コマンドに含まれる時刻情報とを比較し、時刻情報の表す値（秒数）が、計算時刻の表す値（秒数）以上か否かを判定する（ステップＳ１６６）。
【０１００】
ここで、図１０を参照し、上記ステップＳ１６４〜Ｓ１６６の動作について説明する。図１０は、時刻情報判定処理を説明するための図である。まず、ホスト装置３０Ａにおいて、２０１０年１１月１２日１３時１４分１５秒に認証コマンド（以下、第１認証コマンドという）が送信されると、記憶装置２０Ａはこの第１認証コマンドを受け付ける。図１０では、第１認証コマンドに含まれるパスワードを“ＡＢＣＤＥＦＧＨ”としており、時刻情報を“Ｄ０８Ａ５Ｆ２７”で表している。また、記憶装置２０Ａでは、経過時間計測部１３０のカウンタ値が１００（秒）の時に、第１認証コマンドを受信しているため、時刻情報“Ｄ０８Ａ５Ｆ２７”とカウンタ値“１００”との組が、後述するステップＳ１６８の処理で前回受信時情報として記憶される。
【０１０１】
その後、ホスト装置３０Ａから、２０１０年１１月１２日１３時２４分１５秒に認証コマンド（以下、第２認証コマンドという）が送信されると、記憶装置２０Ａはこの第２認証コマンドを受け付ける。図１０では、第２認証コマンドに含まれるパスワードを前回同
様“ＡＢＣＤＥＦＧＨ”としており、時刻情報を“Ｄ０８Ａ６１７Ｆ”で表している。なお、記憶装置２０Ａでは、経過時間計測部１３０のカウンタ値が７００（秒）の時に、第２認証コマンドを受信している。
【０１０２】
時刻情報判定部２０２は、要求コマンドが図６に示した条件の場合、第１認証コマンドを受信した際のカウンタ値“１００”と、第２認証コマンドを受信した際のカウンタ値“７００”との差分“６００”を、第１認証コマンドを受信してから第２認証コマンドを受信するまでの経過時間とする。また、時刻情報判定部２０２は、第１認証コマンドに含まれる時刻情報“Ｄ０８Ａ５Ｆ２７”に、経過時間“６００”を加算することで、計算時間“Ｄ０８Ａ６１７Ｆ”を導出する。そして、時刻情報判定部２０２は、計算時間“Ｄ０８Ａ６１７Ｆ”と、第２認証コマンドに含まれた時刻情報“Ｄ０８Ａ６１７Ｆ”とを比較し、時間的な大小関係を判定する。
【０１０３】
図９に戻り、ステップＳ１６６の比較の結果、時刻情報の表す値（秒）が計算時刻の表
す値（秒）よりも小さい場合（ステップＳ１６６；Ｎｏ）、計算時間と時刻情報との時間
的な関係に不整合が生じるため、時刻情報判定部２０２は、不正（不整合）と判断する。
この場合、データ無効化部２０５Ａは、ユーザデータＤを無効化し（ステップＳ１６７）、本処理を終了する。
【０１０４】
また、時刻情報が計算時刻以上の場合には（ステップＳ１６６；Ｙｅｓ）、計算時間と時刻情報との時間的な関係に不整合が生じないため、時刻情報判定部２０２は正当（整合）と判断する。そして、時刻情報判定部２０２は、今回受信した認証コマンドに含まれる時刻情報と、この認証コマンドを受信した時の経過時間計測部１３０のカウンタ値とを対応付け、前回受信時情報として記憶部２０６に記憶し（ステップＳ１６８）、図８のステップＳ１７に移行する。
【０１０５】
なお、ステップＳ１６６において、時刻情報が計算時刻を超えている場合を正当とする理由は以下のとおりである。前回受信時情報を記憶した後、記憶装置２０Ａが電源断となると経過時間計測部１３０のカウンタ値はゼロからカウントを始めることになる。この場合、時刻情報の表す値（秒）は計算時刻の表す値（秒）を上回ることになるが、これは正当な操作であるため、記憶装置２０Ａの使用を制限する対象とはならない。しかしながら、時刻情報が計算時刻を下回ることは、通常の使用環境では発生しないため、これを不正と判断して、記憶装置２０Ａの使用を制限している。
【０１０６】
図８に戻り、パスワード認証部２０４は、ステップＳ１５で受信した認証コマンドが、短時間に連続して入力されたものか否かを判定する（ステップＳ１８）。例えば、記憶装置２０Ａが、ブルートフォースアタックに晒されていると、膨大な文字列の組み合わせがパスワードとして高速に入力されることになる。そこで、ステップＳ１８では、このような不正な操作を防止するため、認証コマンドが短時間に連続して入力されたことを検出する。換言すると、不正な操作を防止するために、所定時間内に所定回数以上の認証コマンドが入力されたことが検出される。
【０１０７】
ステップＳ１８において、認証コマンドが短時間に連続して入力されていることを検出すると（ステップＳ１８；Ｙｅｓ）、パスワード認証部２０４は、不正な操作が行われて
いると判断する。この場合、データ無効化部２０５Ａは、ユーザデータＤを無効化し（ステップＳ３１）、本処理を終了する。
【０１０８】
また、ステップＳ１８において、短時間に連続して入力されていないと判定すると（ステップＳ１８；Ｎｏ）、パスワード認証部２０４は、受信した認証コマンドに含まれるパスワードと、記憶部２０６に記憶された照合用パスワードとを比較し、両パスワードが一致するか否かを判定する（ステップＳ１９）。
【０１０９】
ここで、パスワードが不一致となった場合（ステップＳ１９；Ｎｏ）、パスワード認証部２０４は、認証要求回数を１加算する（ステップＳ２０）。なお、認証要求回数は、パスワード認証に失敗した回数を記録するための変数であって、バッファメモリや記憶部２０６等に保持されているものとする。
【０１１０】
次いで、パスワード認証部２０４は、不正な操作の可能性があると判断し、起動時無効化フラグをセットする（ステップＳ２１）。続いて、パスワード認証部２０４は、認証要求回数が所定回数（以下、認証可能回数という）を上回ったか否かを判定し、認証可能回数以下の場合には（ステップＳ２２；Ｎｏ）、パスワードの不一致をホスト装置３０Ａに通知し（ステップＳ２３）、ステップＳ１５に再び戻る。
【０１１１】
また、ステップＳ２２において、認証要求回数が認証可能回数を上回ったと判定した場合（ステップＳ２２；Ｙｅｓ）、パスワード認証部２０４は、不正使用フラグがセットされているか否かを判定する（ステップＳ２４）。ここで、不正使用フラグがセットされている場合（ステップＳ２４；Ｙｅｓ）、データ無効化部２０５Ａは、不正な操作が行われたと判断する。この場合、データ無効化部２０５Ａは、ユーザデータＤを無効化し（ステップＳ３１）、本処理を終了する。
【０１１２】
また、ステップＳ２４において、不正使用フラグがセットされていないと判定した場合（ステップＳ２４；Ｎｏ）、パスワード認証部２０４は、不正使用フラグをセットする（ステップＳ２５）。コマンド受付部２０１は、ステップＳ２５の不正使用フラグのセットに伴い、所定時間の間、ホスト装置３０Ａからのコマンドの受け付けを停止する（ステップＳ２６）。
【０１１３】
ここで、ステップＳ２６の処理は、パスワードアタックを目的としたものでなく、クラッキング（故意にＮＡＮＤメモリ１０上のデータを消失させること）のため、一致しないパスワードが多数回入力されるような場合に、故意にＮＡＮＤメモリ１０上のデータを一時的に保護することを目的としている。なお、コマンド受け付け停止期間の間、ホスト装置３０Ａ側では記憶装置２０Ａからのコマンド応答がないため、記憶装置２０Ａで異常が発生していることを検知することが可能である。そのため、記憶装置２０Ａの異常発生時に、管理者にメール等で記憶装置２０Ａの異常報知を自動で行う仕組みをホスト装置３０Ａに搭載することで、記憶装置２０Ａの異常に迅速に対処することが可能となる。
【０１１４】
コマンド受付部２０１は、所定時間が経過するまで待機し（ステップＳ２７；Ｎｏ）、この所定時間が経過すると（ステップＳ２７；Ｙｅｓ）、コマンドの受け付けを再開し（ステップＳ２８）、ステップＳ１５に再び戻る。
【０１１５】
一方、ステップＳ１９において、パスワードの一致を確認した場合（ステップＳ１９；Ｙｅｓ）、パスワード認証部２０４は、起動時無効化フラグ及び不正使用フラグをクリアするとともに、認証要求回数をゼロにリセットする（ステップＳ２９）。そして、記憶装置２０Ａ内のＭＰＵ（図示せず）は、入力されたコマンドに応じた処理（例えば、データの読み出しや書き込み）を実行し（ステップＳ３０）、ステップＳ１５に再び戻る。
【０１１６】
以上のように、第１の実施形態によれば、ホスト装置３０Ａからのコマンド入力時において、記憶装置２０Ａでは、認証コマンドに含まれた時刻情報と、経過時間計測部１３０のカウント値とに基づいて当該時刻情報の整合性を判定し、整合が確認された場合にのみパスワード認証を行う。これにより、アクセス元となったホスト装置３０Ａの正当性を確認することができる。また、不正なホスト装置からアクセスされた場合には、記憶装置２０Ａ内のデータを無効化するので、簡便に記憶装置２０Ａのセキュリティを向上させることができる。
【０１１７】
（第２の実施形態）
つぎに、図１１〜図１５を用いてこの発明の第２の実施形態について説明する。第２の実施形態では、ユーザデータＤを暗号化してＮＡＮＤメモリ１０内に記憶させるとともに、パスワード認証が失敗となった場合や、短時間に連続して認証コマンドが入力された場合に、暗号化に用いた暗号鍵を無効化する。
【０１１８】
図１１は、第２の実施形態に係るデータ記憶システムの構成の一例を示すブロック図である。図１１の各構成要素のうち図２に示す第１の実施形態のデータ記憶システムと同一機能を達成する構成要素については同一番号を付しており、重複する説明は省略する。
【０１１９】
本実施形態のデータ記憶システムは、記憶装置２０Ａの代わりに記憶装置２０Ｂを備えている。記憶装置２０Ｂは、ドライブ制御回路４Ａの代わりに、ドライブ制御回路４Ｂを有している。そして、ドライブ制御回路４Ｂは、ドライブ制御回路４Ａの有する機能に加えて、ユーザデータＤを暗号化する機能、復号化する機能を有している。具体的には、ドライブ制御回路４Ｂは、データ無効化モジュール２４、パスワード認証モジュール２５、データ記憶モジュール２６、データ読出モジュール２７、ＳＲＡＭ１１５に加えて、暗号化モジュール２１、復号化モジュール２２を具備している。
【０１２０】
暗号化モジュール２１は、ユーザ認証が成功した場合にデータ記憶モジュール２６がデータを書き込む際、現在のホスト装置３０Ａ（又は３０Ｂ，…）から受けたユーザデータＤを含む書込要求に従い、記憶装置２０Ｂが備えるスタティックＲＡＭ（図示せず）内の暗号鍵に基づいて書込要求内のユーザデータＤを暗号化して、暗号化データＥに変換する暗号化機能をもっている。
【０１２１】
復号化モジュール２２は、ユーザ認証が成功した場合にデータ読出モジュール２７がデータを書き込む際、現在のホスト装置３０Ａ（又は３０Ｂ，…）から受けた読出要求に基づいて、ユーザエリア１１ｂ内の暗号化データＥをスタティックＲＡＭ内の暗号鍵に基づいて復号化する復号化機能をもっている。
【０１２２】
例えば、記憶装置２０Ｂは、ＳＥＤ機能を有しており、ＡＥＳ（Advanced  Encryption  Standard）等の所定の暗号化方式により暗号化した状態でデータを記憶する。記憶装置２０Ｂは、予め定められたパスワードと時刻情報とに基づいて、ホスト装置からのアクセスが正当なアクセスか否かを判定し、正当と判定された場合にのみ記録媒体へのデータの書き込みや、データの読み出しを許可する。そのため、ＣＰＵ１１では、記憶装置２０Ｂへのアクセスに際し、リード／ライト等を指示するコマンドとともに、予め定められた暗号化解除のためのパスワード、及び、計時部１４から取得した時刻情報を含んだ認証コマンドを記憶装置２０Ｂに送信する。
【０１２３】
また、本実施形態では、データ記憶モジュール２６がＮＡＮＤメモリ１０にデータを書き込む前に、暗号化モジュール２１でデータを暗号化データＥに変換する。また、本実施形態では、データ読出モジュール２７が、暗号化されたユーザデータＤ（暗号化データＥ）を読み出した後、復号化モジュール２２で、平文のユーザデータＤに戻してから、ホスト装置３０Ａに出力する。
【０１２４】
図１２は、第２の実施形態に係るＮＡＮＤメモリ内のデータを説明するための模式図である。本実施形態のＮＡＮＤメモリ１０は、システムエリア１１ａ内に第１ユーザ認証情報とともに暗号鍵を予め記憶しておく。
【０１２５】
ここで、暗号鍵は、スタティックＲＡＭ（揮発性メモリ）に書き込まれる暗号鍵の一部を構成する鍵データである。本実施形態のユーザエリア１１ｂは、暗号鍵に基づいて暗号化モジュール２１により暗号化されたユーザデータＤである暗号化データＥを記憶している。
【０１２６】
図１３は、第２の実施形態に係るドライブ制御回路のハードウェア的な内部構成例を示すブロック図である。図１３の各構成要素のうち図６に示す第１の実施形態のドライブ制御回路４Ａと同一機能を達成する構成要素については同一番号を付しており、重複する説明は省略する。
【０１２７】
本実施形態のドライブ制御回路４Ｂは、ＮＡＮＤコントローラ１１３Ａの代わりにＮＡＮＤコントローラ１１３Ｂを備えている。ＮＡＮＤコントローラ１１３Ｂは、ＮＡＮＤコントローラ１１３Ａが有するランダマイズ回路１２２の代わりに暗号化回路１２１を有している。
【０１２８】
暗号化回路１２１は、ＮＡＮＤメモリ１０に記憶させるデータを暗号化する回路である。暗号化されたデータは、乱数とみなせるため、ランダマイズ回路１２２と同じくＮＡＮＤメモリの寿命延長効果が得られる。
【０１２９】
暗号化回路１２１は、例えばＤＭＡコントローラ１１９と第２のＥＣＣ回路１１８との間に配置される。なお、暗号化回路１２１を、第２のＥＣＣ回路１１８とＮＡＮＤ  Ｉ／Ｆ１１７との間に配置してもよい。図１３では、ＤＭＡコントローラ１１９に暗号化回路１２１を接続し、暗号化回路１２１に第２のＥＣＣ回路１１８を接続した場合を示している。
【０１３０】
図１４は、第２の実施形態に係る記憶装置の機能構成を示す図である。図１４に示すように、記憶装置２０Ｂは、記憶装置２０Ａが有するデータ無効化部２０５Ａの代わりに暗号鍵無効化部２０５Ｂを有している。具体的には、記憶装置２０Ｂは、コマンド受付部２０１、時刻情報判定部２０２、有効時間判定部２０３、パスワード認証部２０４、暗号鍵無効化部２０５Ｂ及び記憶部２０６を備えている。
【０１３１】
本実施形態の有効時間判定部２０３は、暗号鍵を有効とする時間を定めた暗号鍵有効時間に基づき、記憶部２０６に記憶された暗号鍵がこの暗号鍵有効時間の範囲内か否かを判定する有効時間判定処理を実行する。なお、有効時間判定処理の詳細については、後述する（図１５参照）。
【０１３２】
暗号鍵無効化部２０５Ｂは、時刻情報判定部２０２、有効時間判定部２０３、パスワード認証部２０４の各判定（判断）結果に応じて、暗号鍵の無効化を行う機能部である。ここで、暗号鍵の無効化とは、当該暗号鍵を用いたデータの暗号化／復号化を不能とすることを意味する。換言すると、ＮＡＮＤメモリ１０に記録されたデータが読み取られてしまうことを防止するとともに、ＮＡＮＤメモリ１０にデータが書き込まれてしまうことを防止することを目的とするものである。
【０１３３】
具体的な無効化方法としては、暗号鍵自体を消去する方法や、暗号鍵に更なる暗号化等を施すことで、暗号鍵を構成する文字列（データ）を他の文字列に置き換える方法等が挙げられる。なお、後者の方法を用いる場合、置き換えが行われた暗号鍵を復元（復号化）する仕組みを記憶装置２０Ｂに実装してもよい。
【０１３４】
具体的には、記憶部２０６は、コマンド受付処理の実行に係る情報として、照合用パスワード、暗号鍵、パスワード設定日時、暗号鍵有効時間、上述した起動時無効化フラグ及び不正使用フラグ等を記憶している。
【０１３５】
暗号鍵は、暗号鍵無効化部２０５Ｂにより生成されたものであって、データの暗号化／復号化の際に用いられる。なお、暗号鍵の生成は照合用パスワードの設定時に行われるものとする。また、暗号鍵の生成方法は特に問わず、例えば、照合用パスワードを生成シードに用いてもよい。また、暗号鍵有効時間は、暗号鍵の有効時間（秒単位）を定めた情報であって、パスワード設定日時（暗号鍵の生成日時）を基準としている。
【０１３６】
次に、上述した構成の記憶装置２０Ｂの動作について説明する。なお、図８で説明した記憶装置２０Ａと同様の動作については、その説明を省略する。本実施形態の記憶装置２０Ｂは、データ無効化の代わりに、暗号鍵を無効化する。具体的には、起動時無効化フラグがセットされていると判定された場合（ステップＳ１２；Ｙｅｓ）に、暗号鍵無効化部２０５Ｂが暗号鍵を無効化する。また、不正使用フラグがセットされていると判定された場合（ステップＳ１３；Ｙｅｓ）に、暗号鍵無効化部２０５Ｂが暗号鍵を無効化する。また、認証コマンドが短時間に連続して入力されていることが検出されると（ステップＳ１８；Ｙｅｓ）、暗号鍵無効化部２０５Ｂが暗号鍵を無効化する。また、不正使用フラグがセットされている場合（ステップＳ２４；Ｙｅｓ）、暗号鍵無効化部２０５Ｂが暗号鍵を無効化する。
【０１３７】
また、本実施の形態では、ステップＳ１６の時刻情報判定処理の後に、有効時間判定部２０３が、有効時間判定処理を実行する。以下、図１５を参照して、有効時間判定処理について説明する。ここで、図１５は、有効時間判定処理の手順を示すフローチャートである。
【０１３８】
まず、有効時間判定部２０３は、記憶部２０６に暗号鍵有効時間が設定されているか否かを判定する（ステップＳ１７１）。暗号鍵有効時間が設定されていない場合には（ステップＳ１７１；Ｎｏ）、図４のステップＳ１８に移行する。また、暗号鍵有効時間が設定されていると判定した場合（ステップＳ１７１；Ｙｅｓ）、有効時間判定部２０３は、現在の経過時間計測部３０のカウンタ値が暗号鍵有効時間を超えているか否かを判定する（ステップＳ１７２）。
【０１３９】
ステップＳ１７２において、暗号鍵有効時間を超えたと判定した場合（ステップＳ１７２；Ｙｅｓ）、有効時間判定部２０３は、暗号鍵が失効したと判断する。この場合、暗号鍵無効化部２０５Ｂは、暗号鍵を無効化し（ステップＳ１７６）、本処理を終了する。
【０１４０】
また、ステップＳ１７２において、経過時間計測部３０のカウンタ値が暗号鍵有効時間以下と判定した場合（ステップＳ１７２；Ｎｏ）、暗号鍵無効化部２０５Ｂは、ステップＳ１７３の処理に移行する。なお、ステップＳ１７２の判定処理は、ホスト装置３０Ａの電源投入後、パスワード認証を一度も行わないまま時間が経過したケースに対応するためのものである。
【０１４１】
続いて、有効時間判定部２０３は、記憶部２０６からパスワード設定日時を読み出すと（ステップＳ１７３）、このパスワード設定日時に暗号鍵有効時間を加算し、計算時刻を導出する（ステップＳ１７４）。そして、有効時間判定部２０３は、ステップＳ１７４で導出した計算時刻と、今回受信した認証コマンドに含まれる時刻情報とを比較し、時刻情報の表す値（秒）が計算時刻の表す値（秒）を上回るか否かを判定する（ステップＳ１７５）。
【０１４２】
ステップＳ１７５において、時刻情報が計算時刻を上回ったと判定した場合（ステップＳ１７５；Ｙｅｓ）、有効時間判定部２０３は、暗号鍵が失効したと判断する。この場合、暗号鍵無効化部２０５Ｂは、暗号鍵を無効化し（ステップＳ１７６）、本処理を終了する。一方、ステップＳ１７５において、時刻情報が計算時刻以下と判定した場合（ステップＳ１７５；Ｎｏ）、図１１のステップＳ１８に移行する。
【０１４３】
以上のように、第２の実施形態によれば、不正なホスト装置からアクセスされた場合には、記憶装置２０Ａ内の暗号鍵を無効化するので、簡便に記憶装置２０Ａのセキュリティを向上させることができる。
【０１４４】
このように第１および第２の実施形態によれば、不正なホスト装置からアクセスされた場合には、不揮発性半導体メモリ内のユーザデータＤや暗号鍵を無効化するので、簡便に記憶装置２０Ａ，２０Ｂのセキュリティを向上させることが可能となる。
【０１４５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。例えば、第２の実施形態において、無効化処理のため、暗号鍵無効化部２０５Ｂとともに、第１の実施形態のデータ無効化部２０５Ａを備えていてもよい。さらに、設定する無効化方式情報の方式１つに暗号鍵無効化方式を加えてもよい。
【０１４６】
また、第２の実施形態における暗号鍵有効時間に関わる処理（ステップＳ１７１からステップＳ１７６）も、暗号鍵をデータ、暗号鍵有効時間をデータ有効時間、暗号鍵無効化をデータ無効化と読み替え、データ有効時間は、データの有効時間（秒単位）を定めた情報であって、パスワード設定日時を基準としているとすれば、第１の実施形態のように暗号化回路１２１が無い場合にも適用可能である。
【０１４７】
これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【０１４８】
例えば、上記実施形態では、起動時無効化フラグと不正使用フラグの２つのフラグを用いる形態としたが、不正使用フラグのみ用いる形態としてもよい。また、上記実施形態では、記憶装置２０Ａ，２０Ｂの電源投入時（起動時）において、起動時無効化フラグがセットされている場合に、ユーザデータＤや暗号鍵を無効化する形態としたが、これに限らず、不正使用フラグがセットされている場合にのみユーザデータＤや暗号鍵を無効化する形態としてもよい。
【符号の説明】
【０１４９】
４Ａ，４Ｂ…ドライブ制御回路、１０…ＮＡＮＤメモリ、１１ａ…システムエリア、１１ｂ…ユーザエリア、１４…計時部、２０Ａ，２０Ｂ…記憶装置、２１…暗号化モジュール、２２…復号化モジュール、２４…データ無効化モジュール、２５…パスワード認証モジュール、２６…データ記憶モジュール、２７…データ読出モジュール、３０…経過時間計測部、３０Ａ，３０Ｂ…ホスト装置、１２１…暗号化回路、１２２…ランダマイズ回路、１３０…経過時間計測部、２０２…時刻情報判定部、２０３…有効時間判定部、２０４…パスワード認証部、２０５Ａ…データ無効化部、２０５Ｂ…暗号鍵無効化部、２０６…記憶部。
【図１】
0005595965.tif 000002
【図２】
0005595965.tif 000003
【図３】
0005595965.tif 000004
【図４】
0005595965.tif 000005
【図５】
0005595965.tif 000006
【図６】
0005595965.tif 000007
【図７】
0005595965.tif 000008
【図８】
0005595965.tif 000009
【図９】
0005595965.tif 000010
【図１０】
0005595965.tif 000011
【図１１】
0005595965.tif 000012
【図１２】
0005595965.tif 000013
【図１３】
0005595965.tif 000014
【図１４】
0005595965.tif 000015
【図１５】
0005595965.tif 000016