(57)【要約】  これらの実施形態は、ライトワンスリードメニー（ＷＯＲＭ）メモリデバイスの認証およびセキュアリングに関する。一実施形態では、メモリデバイスは、格納されているセキュリティ情報が確認された後に第１動作モードおよび第２動作モードで動作することのできるコントローラを備え、その第１動作モードでは、メモリデバイスは読み出し専用モードで動作し、その第２動作モードでは、メモリデバイスはライトワンスリードメニー（ＷＯＲＭ）モードで動作する。他の１つの実施形態では、コントローラはセキュリティ方法を実行するように動作することができる。
2013506910.tif 000002
【特許請求の範囲】
【請求項１】
メモリデバイスであって、
メモリと、
格納されているセキュリティ情報と、
前記メモリと通信するコントローラと、を備え、
前記コントローラは、前記格納されているセキュリティ情報が確認された後に、第１動作モードおよび第２動作モードで動作することができ、第１動作モードでは、前記メモリデバイスは読み出し専用モードで動作し、第２動作モードでは、前記メモリデバイスはライトワンスリードメニー（ＷＯＲＭ）モードで動作するメモリデバイス。
【請求項２】
請求項１記載のメモリデバイスにおいて、
前記格納されているセキュリティ情報は、前記メモリデバイスに特有であるメモリデバイス。
【請求項３】
請求項１記載のメモリデバイスにおいて、
前記格納されているセキュリティ情報は、前記メモリデバイスを含むメモリデバイスのバッチに特有であるメモリデバイス。
【請求項４】
請求項１記載のメモリデバイスにおいて、
前記コントローラは、前記メモリデバイスと通信するホストによって前記格納されているセキュリティ情報が確認された後に、前記第１動作モードおよび前記第２動作モードで動作することができるメモリデバイス。
【請求項５】
請求項４記載のメモリデバイスにおいて、
前記格納されているセキュリティ情報を確認するために使用される情報は、前記ホストに格納されるメモリデバイス。
【請求項６】
請求項４記載のメモリデバイスにおいて、
前記格納されているセキュリティ情報を確認するために使用される情報は、前記ホストと通信するサーバに格納されるメモリデバイス。
【請求項７】
請求項４記載のメモリデバイスにおいて、
前記格納されているセキュリティ情報はＲＳＡ証明書を含み、前記ＲＳＡ証明書を確認するために使用される情報は証明書機関ルート証明書および証明書取り消しリストを含むメモリデバイス。
【請求項８】
請求項１記載のメモリデバイスにおいて、
前記格納されているセキュリティ情報が確認された後、前記コントローラが第１動作モードおよび第２動作モードで動作できるように前記メモリデバイスにフラグが格納されるメモリデバイス。
【請求項９】
請求項１記載のメモリデバイスにおいて、
前記格納されているセキュリティ情報は、前記メモリデバイス内の隠しエリアに格納されるメモリデバイス。
【請求項１０】
請求項１記載のメモリデバイスにおいて、
前記コントローラは、前記格納されているセキュリティ情報が確認された後でかつ少なくとも１つのさらなるアイテムが確認された後に、第１動作モードおよび第２動作モードで動作することができるメモリデバイス。
【請求項１１】
請求項１０記載のメモリデバイスにおいて、
前記少なくとも１つのさらなるアイテムは、タイムスタンプまたは前記メモリデバイスの識別子を含むメモリデバイス。
【請求項１２】
請求項１０記載のメモリデバイスにおいて、
前記格納されているセキュリティ情報および前記少なくとも１つのさらなるアイテムのうちの少なくとも１つは、暗号化されるメモリデバイス。
【請求項１３】
請求項１記載のメモリデバイスにおいて、
前記格納されているセキュリティ情報は、前記メモリデバイスと通信するホストによって自動的に確認されるメモリデバイス。
【請求項１４】
請求項１記載のメモリデバイスにおいて、
前記格納されているセキュリティ情報は、許可されているユーザによって操作される前記メモリデバイスと通信するホストによって確認されるメモリデバイス。
【請求項１５】
請求項１記載のメモリデバイスにおいて、
前記メモリは、ＮＡＮＤを含むメモリデバイス。
【請求項１６】
請求項１記載のメモリデバイスにおいて、
前記格納されているセキュリティ情報が確認された後、前記メモリデバイスは認証されていないメモリデバイスと区別されるメモリデバイス。
【請求項１７】
メモリデバイスを認証する方法であって、
コントローラを備えるメモリデバイスで、
前記メモリデバイスに格納されているセキュリティ情報を目的とする、前記メモリデバイスと通信するホストからの要求を受け取り、
前記セキュリティ情報を前記ホストに送り、かつ
前記セキュリティ情報が確認されたならば、前記コントローラが第１動作モードおよび第２動作モードで動作できるようにする前記ホストからの情報を受け取り、前記第１動作モードでは、前記メモリデバイスは読み出し専用モードで動作し、前記第２動作モードでは、前記メモリデバイスはライトワンスリードメニー（ＷＯＲＭ）モードで動作することを実行するステップを含む方法。
【請求項１８】
請求項１７記載の方法において、
前記格納されているセキュリティ情報は、前記メモリデバイスに特有である方法。
【請求項１９】
請求項１７記載の方法において、
前記格納されているセキュリティ情報は、前記メモリデバイスを含むメモリデバイスのバッチに特有である方法。
【請求項２０】
請求項１７記載の方法において、
前記セキュリティ情報を確認するために使用される情報は、前記ホストに格納される方法。
【請求項２１】
請求項１７記載の方法において、
前記セキュリティ情報を確認するために使用される情報は、前記ホストと通信するサーバに格納される方法。
【請求項２２】
請求項１７記載の方法において、
前記セキュリティ情報はＲＳＡ証明書を含み、前記ＲＳＡ証明書を確認するために証明書機関ルート証明書および証明書取り消しリストが使用される方法。
【請求項２３】
請求項１７記載の方法において、
前記コントローラが第１動作モードおよび第２動作モードで動作できるようにする前記ホストから受け取られる情報には、フラグが含まれる方法。
【請求項２４】
請求項１７記載の方法において、
前記セキュリティ情報は、前記メモリデバイス内の隠しエリアに格納される方法。
【請求項２５】
請求項１７記載の方法において、
確認のために少なくとも１つのさらなるアイテムを前記ホストに送るステップをさらに含み、前記メモリデバイスは、前記セキュリティ情報および前記少なくとも１つのさらなるアイテムの両方が確認されたならば、前記コントローラが第１動作モードおよび第２動作モードで動作できるようにする前記ホストからの情報を受け取る方法。
【請求項２６】
請求項２５記載の方法において、
前記少なくとも１つのさらなるアイテムは、タイムスタンプまたは前記メモリデバイスの識別子を含む方法。
【請求項２７】
請求項２５記載の方法において、
前記格納されているセキュリティ情報および前記少なくとも１つのさらなるアイテムのうちの少なくとも１つは、暗号化される方法。
【請求項２８】
請求項１７記載の方法において、
前記格納されているセキュリティ情報は、前記ホストによって自動的に確認される方法。
【請求項２９】
請求項１７記載の方法において、
前記格納されているセキュリティ情報は前記ホストによって確認され、前記ホストは許可されているユーザによって操作される方法。
【請求項３０】
請求項１７記載の方法において、
前記メモリは、ＮＡＮＤを含む方法。
【請求項３１】
メモリデバイスであって、
メモリと、
前記メモリと通信するコントローラと、を備え、
前記コントローラは、第１動作モードおよび第２動作モードで動作することができ、第１動作モードでは、前記メモリデバイスは読み出し専用モードで動作し、第２動作モードでは、前記メモリデバイスはライトワンスリードメニー（ＷＯＲＭ）モードで動作し、
前記コントローラは、
前記コントローラ自体が前記メモリに格納するデータを暗号化し、かつ
前記コントローラ自体が前記メモリから読み出す暗号化されているデータを復号化し、適切な認証情報を提供するホストだけに前記復号化されたデータを提供するように動作することのできる第１のストレージモードでさらに動作することができるメモリデバイス。
【請求項３２】
請求項３１記載のメモリデバイスにおいて、
前記コントローラは、少なくとも１つのさらなるストレージモードでさらに動作できるメモリデバイス。
【請求項３３】
請求項３２記載のメモリデバイスにおいて、
前記第１のストレージモードおよび前記少なくとも１つのさらなるストレージモードは、前記メモリにデータを格納することを要求するホストによって選択可能であるメモリデバイス。
【請求項３４】
請求項３３記載のメモリデバイスにおいて、
前記少なくとも１つのさらなるストレージモードは、前記コントローラがファイルへの自由なアクセスを許すように動作できるストレージモードを含むメモリデバイス。
【請求項３５】
請求項３３記載のメモリデバイスにおいて、
前記少なくとも１つのさらなるストレージモードは、前記ホストが有効な認証情報を提供した後に前記コントローラがファイルへのアクセスを許すように動作できるストレージモードを含むメモリデバイス。
【請求項３６】
請求項３５記載のメモリデバイスにおいて、
前記有効な認証情報は、有効なユーザ名およびパスワードを含むメモリデバイス。
【請求項３７】
請求項３５記載のメモリデバイスにおいて、
前記有効な認証情報は、前記ホストの証明書の確認を含むメモリデバイス。
【請求項３８】
請求項３１記載のメモリデバイスにおいて、
前記コントローラはファイルのセキュリティレベルを、それが格納された後に、変更するようにさらに動作できるメモリデバイス。
【請求項３９】
請求項３１記載のメモリデバイスにおいて、
前記コントローラは、前記メモリに格納されているファイルにアクセスする試みのログを維持するようにさらに動作できるメモリデバイス。
【請求項４０】
請求項３１記載のメモリデバイスにおいて、
前記メモリは、ＮＡＮＤを含むメモリデバイス。
【請求項４１】
請求項３１記載のメモリデバイスにおいて、
前記メモリデバイスの認証中にホストによって暗号化タイプがセットされるメモリデバイス。
【請求項４２】
メモリデバイス内のデータにアクセスする方法であって、
メモリおよび前記メモリと通信するコントローラを備えるメモリデバイスであって、前記コントローラは、第１動作モードおよび第２動作モードで動作することができ、第１動作モードでは、前記メモリデバイスは読み出し専用モードで動作し、第２動作モードでは、前記メモリデバイスはライトワンスリードメニー（ＷＯＲＭ）モードで動作するメモリデバイスで、
（ａ）データを格納する要求を受け取り、前記要求が複数のストレージモードのうちの１つの選択を含み、複数のストレージモードのうちの少なくとも１つにおいて、データが前記メモリに格納される前に暗号化されて、許可されたホストによってのみ前記メモリから読み出し可能であり、かつ
（ｂ）前記選択されたストレージモードに従ってデータを格納することを実行するステップを含む方法。
【請求項４３】
請求項４２記載の方法において、
前記ストレージモードのうちの別の１つにおいて、前記コントローラは、データへの自由なアクセスを許すように動作することができる方法。
【請求項４４】
請求項４２記載の方法において、
前記ストレージモードのうちの別の１つにおいて、有効な認証情報を提供するホストだけがデータにアクセスすることができる方法。
【請求項４５】
請求項４４記載の方法において、
前記有効な認証情報は、有効なユーザ名およびパスワードを含む方法。
【請求項４６】
請求項４４記載の方法において、
前記有効な認証情報は、前記ホストの証明書の確認を含む方法。
【請求項４７】
請求項４２記載の方法において、
データのセキュリティレベルを、それが前記メモリに格納された後に変更するステップをさらに含む方法。
【請求項４８】
請求項４２記載の方法において、
前記メモリに格納されているデータにアクセスする試みのログを維持するステップをさらに含む方法。
【請求項４９】
請求項４２記載の方法において、
前記メモリは、ＮＡＮＤを含む方法。
【請求項５０】
請求項４２記載の方法において、
前記メモリデバイスの認証中にホストによって暗号化タイプがセットされる方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ライトワンスリードメニー（ＷＯＲＭ）メモリデバイスの認証およびセキュアリングに関する。
【背景技術】
【０００２】
メモリカードのような携帯用メモリデバイスは、データを蓄積しかつ／または移送するために、デジタルカメラ、移動電話、およびパーソナルコンピュータ（ＰＣ）のような家電装置と共にしばしば使用される。記憶媒体の他に、多くの携帯用メモリデバイスは、ホストデバイスから受け取られた論理アドレスをメモリデバイスにより使用される物理アドレスに変換することができるマイクロプロセッサまたはコントローラのような回路を包含し、これにより、メモリデバイス上の回路は、データが記憶媒体のどこに格納されるかを制御することができる。
【０００３】
多くのメモリデバイスは再書き込み可能なメモリを使用し、これによりシステムまたはユーザの目的のためにメモリアドレスを消去して再書き込みすることを可能にする。しかし、他のメモリデバイスはワンタイムプログラマブル（ＯＴＰ：one-time programmable）メモリアレイを使用する。ＯＴＰメモリアレイでは、メモリアドレスに存在するメモリセルは、一旦プログラムされた状態に変更されたならば、元のプログラムされていない状態に戻すことはできない。メモリアドレスに書き込める回数にこのような制限があるために、ＯＴＰメモリアレイを有するメモリデバイスは、メモリアドレスに再書き込みできることを期待するポピュラーなＤＯＳ  ＦＡＴファイルシステムあるいは他のファイルシステムを使用するホストデバイスと互換性がない可能性がある。そのメモリセルに２回以上、ただし再書き込み可能なメモリアレイ内のメモリセルほど多数回ではないが、書き込むことのできるフュータイムプログラマブル（ＦＴＰ：few-time programmable ）メモリアレイを使用するメモリデバイスでは同様の問題が、より低い程度に、起きる。
【０００４】
他の１つのタイプのメモリデバイスは、ライトワンスリードメニー（ＷＯＲＭ：write-once read-many）メモリデバイスである。このメモリデバイスは、一旦書き込まれたデータを後で変更したり、消去したり、上書きしたりできないように、再書き込み可能ではない。これは、永久記録文書保管あるいは永久記録保守のような、データ信頼性およびセキュリティが特に重要な用途のためには有益である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願公開第２００６／００４７９２０号
【特許文献２】米国特許第６，８９５，４９０号
【特許文献３】米国特許第６，０３４，８８２号
【特許文献４】米国特許第７，１３９，８６４号
【特許文献５】米国特許出願第１２／４２１，２２９号
【特許文献６】米国特許出願第１２／４２１，２３８号
【特許文献７】米国特許出願公開第２００６／０２４２０６４号
【特許文献８】米国特許出願公開第２００８／００１０６８５号
【発明の概要】
【０００６】
一実施形態では、メモリデバイスは、格納されているセキュリティ情報が確認された後に第１動作モードおよび第２動作モードで動作することのできるコントローラを備え、その第１動作モードでは、メモリデバイスは読み出し専用モードで動作し、その第２動作モードでは、メモリデバイスはライトワンスリードメニー（ＷＯＲＭ）モードで動作する。他の１つの実施形態では、コントローラはセキュリティ方法を実行するように動作することができる。
【図面の簡単な説明】
【０００７】
【図１】一実施形態のメモリデバイスと通信するホストデバイスの図である。
【図２】一実施形態のメモリデバイスのデュアルモード挙動の図である。
【図３】一実施形態のメモリデバイスのコントローラが、基礎となるメモリがワンタイムプログラマブルであっても、どのようにして論理メモリを再書き込み可能に見えさせるかを示す図である。
【図４】一実施形態のメモリデバイスのコントローラが、基礎となるメモリがワンタイムプログラマブルであっても、どのようにして論理メモリを再書き込み可能に見えさせるかを示す図である。
【図５】一実施形態の、論理メモリおよび物理メモリ間の関係の図である。
【図６】一実施形態のライトワンスリードメニー（ＷＯＲＭ）メモリデバイスのデュアルモード挙動の図である。
【図７】一実施形態のライトワンスリードメニー（ＷＯＲＭ）メモリデバイスの論理メモリの図である。
【図８】リモートキーサーバにより認証されている一実施形態のメモリデバイスの図である。
【図９】ローカルキーサーバにより認証されている一実施形態のメモリデバイスの図である。
【図１０】暗号化／復号化機能を有する一実施形態のメモリデバイスと通信するホストデバイスの図である。
【図１１】一実施形態のメモリデバイスにデータを書き込むホストデバイスの図である。
【図１２Ａ】一実施形態のメモリデバイスからデータを読み出すホストデバイスの図である。
【図１２Ｂ】一実施形態のメモリデバイスからデータを読み出すホストデバイスの図である。
【図１２Ｃ】一実施形態のメモリデバイスからデータを読み出すホストデバイスの図である。
【発明を実施するための形態】
【０００８】
前置きとして、次の実施形態は、一般的に、ワンタイムプログラマブル（ＯＴＰ）（またはフュータイムプログラマブル（ＦＴＰ））メモリアレイを使用するメモリデバイスと、メモリデバイス内のメモリアドレスに再書き込みできることを期待するＤＯＳ  ＦＡＴファイルシステムのようなファイルシステムを使用するホストデバイスとの間の互換性を提供することに関する。ＯＴＰメモリは、メモリセルが初期のプログラムされていないデジタル状態に製造され、製造後の時点で代わりのプログラム済みデジタル状態に転換されることのできるメモリである。例えば、元のプログラムされていないデジタル状態を論理１（または論理０）状態として識別することができ、プログラム済みデジタル状態を論理０（または論理１）状態として識別することができる。メモリセルはＯＴＰであるので、記憶位置の元のプログラムされていないデジタル状態（例えば、論理１状態）は、一旦プログラム済みデジタル状態（例えば、論理０状態）に転換されれば、復元され得ない。対照的に、ＦＴＰメモリは、メモリセルが２回以上、ただし代表的な再書き込み可能な（あるいはライトメニー）メモリアレイほど多数回ではないが、書き込むことのできるメモリである。
【０００９】
ＯＴＰメモリデバイスをホストデバイスの再書き込み可能なファイルシステムと互換性があるようにするために多くの技術が使用され得る。１つの技術では、メモリデバイスは、メモリが完全に消費され尽くすまでは標準的なフラッシュの再書き込み可能なメモリデバイスと全く同じく振る舞うように構成され、その時点でメモリデバイスは書き込み操作を停止する。メモリが消費され尽くすまでは、メモリデバイスは本質的に正規の再書き込み可能なメモリデバイスと見分けがつかない。このように、そのようなメモリデバイスは、既存のホストアプリケーションおよびデバイスとバックワードコンパチブルである。共に本明細書において参照により援用されている米国特許出願公開第２００６／００４７９２０号（特許文献１）および米国特許第６，８９５，４９０号（特許文献２）は、バックワードコンパチブルなメモリデバイスに関するさらなる詳細を記載する。しかし、或るホストおよび或るホスト挙動について、ホストがデータをメモリデバイスに書き込もうとするけれどもメモリデバイスはメモリを使い果たしてデータを記憶できないという危機的な場合が起きる危険があり得る（典型的な例は、写真をメモリカードに格納しようとするデジタルカメラである）。最悪の場合には、ホストデバイスは書き込みが失敗していることさえ気づかなくて、問題があったという表示をユーザに与えもしない。
【００１０】
このリスク（と、付随する否定的なエンドユーザ知覚）を避けるために、次に述べる実施形態は、読み出し専用メモリ（ＲＯＭ）カードタイプの現行の定義を拡張するメモリデバイスを提供し、既存のホストデバイス（既存のＳｅｃｕｒｅＤｉｇｉｔａｌ（ＳＤ）ホストデバイスなど）との読み出しコンパチビリティを提供し、ＯＴＰメモリデバイスに書き込むようにホストデバイスを改変しようとする努力をなるべく少なくする。１つの現在好ましい実施形態では、メモリデバイスは、ＳｅｃｕｒｅＤｉｇｉｔａｌ（ＳＤ）アソシエーションにより公表されている公式ＯＴＰカードタイプ仕様に従って動作する、ＯＴＰメモリに基づくＳＤメモリカードの形をとる。これらの実施形態の種々の特徴は、以下のものを含むが、それらに限定はされない。
＊現行の仕様と互換性のある既存のＳＤ対応のホストデバイスにおいて読み出し可能であるように読み出し専用メモリ（ＲＯＭ）モードにパワーアップするメモリデバイス。
＊メモリデバイスを読み書き（Ｒ／Ｗ）モードに転換させる新しい機能（ＳＤ仕様において定義されているプロトコルを使用する）を実現するメモリデバイス。Ｒ／Ｗモードであるときには、メモリデバイスは一般的に標準的再書き込み可能な（例えば、フラッシュ）カードのように振る舞うので、ホストデバイスがＯＴＰカードのためのサポートを実行するために必要とされる変更は極めて少ない。
＊再書き込み可能なメモリとは違ってＯＴＰメモリは有限で完全に消費され尽くすことがあるので、一実施形態では、メモリカードはホストデバイスが物理メモリ消費を追跡するための新しいコマンド（好ましくはＳＤ仕様における定義に準拠する）を定義する。
＊（再書き込み可能なメモリと対比した）ＯＴＰメモリの制約に起因してレジスタをプログラムする操作のために追加の改変も提供される。
【００１１】
ここで図面を参照すると、図１は、一実施形態のメモリカード２０と通信するホストデバイス１０の図である。本願明細書において使用される「通信する」という句は、直接通信するか１つ以上のコンポーネントを通して間接的に通信することを意味し、それらは本願明細書において示されたり、または記述されることもあれば、されないこともある。この図では、ホストデバイス１０は、接合ポートを介してメモリカード２０と通信する。図１では説明のためにメモリカード２０が使用されているけれども、メモリカード２０はこれらの実施形態に使用され得るメモリデバイスの単なる一例に過ぎないということに留意するべきである。一般的に、「メモリデバイス」は、それらに限定されるわけではないけれども、メモリカードや、ユニバーサルシリアルバス（ＵＳＢ）デバイスや、ハードディスクなどの任意の適切な形をとることができる。１つの現在好ましい実施形態では、メモリデバイスはＳｅｃｕｒｅＤｉｇｉｔａｌ（ＳＤ）メモリカードのようなソリッドステートメモリカードの形をとる。
【００１２】
図１に示されているように、この実施形態では、メモリカード２０は、１つ以上のメモリデバイス４０と通信するコントローラ３０を含む。１つまたは複数のメモリデバイス４０は、それらに限定されるわけではないけれどもソリッドステートメモリや、光メモリや、磁気メモリなどの任意の適切なタイプのメモリを含むことができる。一実施形態では、１つまたは複数のメモリデバイス４０のうちの少なくとも幾つかはＯＴＰメモリおよび／またはＦＴＰメモリを含む。複数のメモリデバイス４０が使用される場合には、その種々のメモリデバイスはそれぞれ同じかあるいは異なるメモリ技術（例えば、（ｉ）全部ＯＴＰ、（ｉｉ）ＯＴＰとＦＴＰ、あるいは（ｉｉｉ）ＯＴＰ、ＦＴＰ、および再書き込み可能）を使用し得るということが理解されるべきである。好ましくは、メモリデバイス４０はフィールドプログラマブルなソリッドステートメモリアレイを含む。メモリアレイ内のメモリセルは２次元式にまたは３次元式に編成され得る。１つの好ましい実施形態では、メモリアレイは、本願明細書において参照により援用されているJohnson らの米国特許第６，０３４，８８２号（特許文献３）に記載されているアレイのような３次元アレイである。図１だけに関して、「メモリデバイス」という用語はメモリダイ自体を指すということに留意するべきである。本願明細書の他の例では、「メモリデバイス」は、より一般的に、メモリダイと他のコンポーネント（コントローラ、入出力ポートなど）を含むデバイス（メモリカードのような）全体を指す。
【００１３】
コントローラ３０は種々の機能を実行するように動作し、それらのうちの幾つかは後述する。コントローラ３０が図１に示されているけれども、メモリカード２０は任意の適切な回路１３０を含み得るということが理解されるべきである。本願明細書において使用される「回路」は、１つ以上のコンポーネントを含むことができると共に、純粋のハードウェアの実現形態および／またはハードウェア／ソフトウェア（またはファームウェア）複合の実現形態であり得る。従って、「回路」は、例えば、コンピュータ可読のプログラムコード（例えば、１つまたは複数のメモリデバイス４０に格納されているソフトウェアもしくはファームウェア）を実行するコントローラ、マイクロプロセッサ、またはプロセッサ、論理ゲート、スイッチ、特定用途向け集積回路（ＡＳＩＣ）、プログラム可能なロジックコントローラ、および埋め込みマイクロコントローラなどのうちの１つ以上の形をとることができる。
【００１４】
さらに、「ホストデバイス」は、メモリデバイスと通信した状態にすることができて、メモリデバイスにデータを格納しかつ／またはメモリデバイスからデータを読み出すために使用することのできる任意のデバイスを指す。ホストデバイスの例は、携帯電話、デジタルメディアプレーヤ、デジタルカメラ、ゲームデバイス、パーソナルコンピュータ（例えば、デスクトップまたは携帯用（ラップトップもしくはノートブックなどの）コンピュータ）、電子メールおよび／またはテキスト送信デバイス、および携帯情報端末（ＰＤＡ）などの家電デバイスを含むけれども、これらに限定はされない。ホストデバイスは、どちらかと言えば移動性のあるデバイス（携帯電話など）あるいはどちらかと言えば据え付け式のデバイス（デスクトップ型パーソナルコンピュータなど）であり得る。
【００１５】
この実施形態では、ＯＴＰメモリカード２０は２つのモードの動作を実行する。第１のモードでは、メモリカード１２０は、ＳＤ仕様において既に定義されている（従って、準拠ＳＤホストデバイスによりサポートされる）現行のＲＯＭカード定義と互換性のある構成にパワーアップする。第２のモードでは、メモリカード２０は、書き込みを受け入れて実行する前に書き込み可能モードに転換される。（適切なＲＯＭカード構成および挙動は、SD Part 1 Physical Layer Specification, version 2.00およびPart 1 Physical Layer Specification, version 2.00, Supplementary Notes version 1.00 に記載されている。スイッチコマンドプロトコルはＳＤカードのための拡張または追加機能をイネーブルするという一般的状況のためにＳＤ仕様において定義されたSD Part 1 Physical Layer Specification, version 2.00, section 4.3.10を参照されたい。）現行のカード定義と互換性のある読み出し専用モードにパワーアップすることにより、既存のホストデバイスはメモリカード２０からまだ読み出すことができるけれどもメモリカード２０に書き込むことはできず、既存のホストデバイスとの読み出しコンパチビリティを提供するけれども、これらのイネーブルされていないホストデバイスがメモリカード２０に書き込もうとして前に論じられた問題となる危機的な場合に陥るという危険を回避する。
【００１６】
この実施形態ではホストデバイスはメモリカード２０を書き込み可能モードに転換させるためにコマンドを発しなくてはならないので、ＯＴＰメモリカード２０と協働するようにイネーブルされていてその特有の機能を理解しているホストデバイスだけがそれに書き込める。図２は、メモリカード２０のデュアルモード挙動を示している。図２の左側の説明図は、（１）レガシーなホストデバイスがメモリ２０から単に読み出せるだけであるようにメモリカード２０が読み出し専用モードにパワーアップすること、（２）イネーブルされたホストデバイスだけがカード２０を読み出し／書き込みモードに転換させる方法を知っていること、および（３）読み出し／書き込みモードでは、イネーブルされたホストデバイスはカード２０からの読み出しおよび書き込みの両方を行えることを示す。
【００１７】
その書き込み可能モードでは、メモリカード２０は、少なくともメモリカードのＯＴＰメモリ４０が完全に消費され尽くすまでは、「正規の」フラッシュの再書き込み可能なメモリカードと同様に振る舞う。従って、例えば、ホストデバイス１０が１セクタのデータを別のデータで上書きすれば（これはいろいろな理由で再書き込み可能なメモリカードにしばしば行われる）、メモリカード２０は、その要求された書込み操作を受け入れて実行する。（この実施形態では基礎となるメモリデバイス４０がＯＴＰであるので、デバイス４０上のメモリ自体を書き込まれた後に変更することができないが、カード２０のファームウェアは、更新されたデータを自動的にメモリ内の新しい位置に書き込んで旧位置をその新しい位置に「再マッピング」することができる。この再マッピング機能は既存のフラッシュメモリデバイスにおいてファームウェアで行われる再マッピングと同様である。（例えば、本願明細書において参照により援用されている米国特許第７，１３９，８６４号（特許文献４）を参照されたい。）この「上書き」挙動により、ＯＴＰメモリカード２０をサポートするためにホストデバイス１０が行わなければならない変更が最少となることが保証される。ホストデバイス１０は、どんなファイルシステムでも使用することができ（大抵は業界標準のＦＡＴファイルシステムを使用する）、書き換え可能なメモリカードについてそれが行う例えばファイル改名、変更、および削除操作を含む操作のすべてを依然として実行することができる。
【００１８】
再び図１を参照すると、ホストデバイス１０は論理アドレスを用いてメモリカード２０にインターフェイスし、コントローラ３０は、ホストデバイス１０と物理的な１つまたは複数のメモリデバイス４０との間のインターフェイスとして行動して論理対物理アドレス指定を実行する。コントローラ３０と１つまたは複数のメモリデバイス４０との間のインターフェイスは物理アドレスを使用する。このインターフェイスの実現形態は、既存のフラッシュメモリデバイスにとっては標準的である（例えば、本願明細書において参照により援用されている米国特許第７，１３９，８６４号（特許文献４）を参照されたい）。図３および４は、基礎となるメモリ４０がＯＴＰであってもコントローラ３０がどのようにして論理メモリを再書き込み可能に見えさせるかを示す。図３は、論理アドレスに格納されているオリジナルデータがメモリデバイス３０内の物理的位置に格納されることを示す。図４は、ホストデバイス１０がその論理アドレスのデータを上書きすると、その新しい更新済みデータが新しい物理アドレスに格納され、コントローラ３０が、今では不要になったオリジナルデータの代わりに更新済みデータを参照するためにその論理対物理アドレス指定を更新することを示す。ここでも、プロセスは、前に記された既存のフラッシュメモリデバイスの実現形態と同様であるけれども、この実施形態とフラッシュの実現形態との差異は、この実現形態においてはメモリ４０（ここでは、ＯＴＰ）が消去されて再使用されるのではないことである。
【００１９】
その書き込み可能モードでは、メモリカード２０は、ホストデバイス１０が残りの物理的（ＯＴＰ）メモリの量を追跡するように新しいコマンド（Ｒｅａｄ＿Ｍｅｍ＿Ｒｅｍａｉｎｉｎｇ）を実行する。「SD Part 1 Physical Layer Specification, version 2.00, section 4.3.12 Command System as part of the switch command protocol」において割り当てられて定義されたが、データ値およびフォーマットはＯＴＰカードアプリケーションのために特に定義された。）以下のテーブルは、現在好ましい実施形態（もちろん他の実現形態も使用され得る）においてＲｅａｄ＿Ｍｅｍ＿Ｒｅｍａｉｎｉｎｇにより戻される値をリストしている。値は、好ましくは最上位バイト、最上位ビットの順で戻される。
【表１】
2013506910.tif 000003
【００２０】
メモリ消費を追跡する責任をホストデバイス１０に負わせることにより、メモリカード２０定義は、ホストデバイスが何をなぜ行っているかをカードが識別しようとするオリジナルＯＴＰカードの実現形態に伴う問題を回避する。この新しい定義では、メモリカード２０は全ての書き込み操作を自由に受け入れて実行できる。それは、イネーブルされたホストデバイスだけがそれに書き込むことができて、メモリ消費を追跡すると共に違法な操作を避ける責任を負うからである。
【００２１】
この実施形態では、新しいコマンドにより戻される初めの２つの値（「メイン」および「リザーブ」）は、ホストデバイス１０に、（１）一般的用途／不特定用途（ファイルデータおよびファイルシステム操作）のためにカード２０に残っている物理的スペース（「メインエリア」）の量および（２）（ファイルデータではなくて）ファイルシステム操作だけのためにリザーブされているカード２０に残っている物理的スペース（「リザーブされているエリア」）の量を報告する。メイン値は、ホストデバイス１０が自身がＦＡＴテーブルを現在使用しているのと同じ仕方でそれを使用できるように、すなわち、もう幾つのファイルを（あるいは、より一般的に、後どれだけの量のデータを）カード２０に書き込めるかを判定すると共に、カード２０が満杯になってホストデバイス１０がカード２０へのデータの書き込みをやめるべきであるときを決定するように、定義された。リザーブ値は、ホストデバイス１０が、自身がＦＡＴファイルシステム構造のために行うのと同じ仕方で、（メインエリアによって報告されたように）カード２０が完全に消費され尽くしたときに進行中であったファイルを完成させるのに必要なファイルシステム関連操作をいつでも実行できるように、定義された。これにより、再書き込みカードの他にＯＴＰカードもサポートするためにホストデバイス１０が行わなければならない変更が最少となる。
【００２２】
図５は、論理メモリ（ホストデバイス１０に見える）と物理メモリ４０（ホストデバイス１０には直接には見えない）の間の関係を示す。使用されていない論理メモリの量はファイルシステム構造、通例標準的ＦＡＴファイルシステムのための「ファイルアロケーションテーブル」により、追跡される。メモリカード２０内のコントローラ３０は、論理対物理アドレス指定を管理する。この線図で斜線部により表されている上書きされたデータは、最早参照されないけれども依然として物理メモリを消費している。利用し得るスペースの量をホストデバイスが判定できるように、コントローラ３０は残っている物理メモリの量を新しいコマンドを用いて報告する。残っている物理メモリの量は、残っている論理メモリの量より少ないこともあるし多いこともある。
【００２３】
この実施形態では、「Ｐｒｏｇｒａｍ＿ＣＳＤ」および「Ｌｏｃｋ＿Ｕｎｌｏｃｋ」コマンドの挙動も、カードメモリ４０がＯＴＰであって再書き込み可能ではないという事実を反映するように改変される。すなわち、これらのコマンドは、好ましくは、関連するレジスタを更新／プログラムするために１回だけ使用される。カードステータスデフォルト（ＣＳＤ：Card Status Defaults）レジスタは、カード２０の動作状態ならびにサポートされるコマンドおよび機能を報告する。それは、カード２０の書き込み禁止ステータスと、カード２０がオリジナルデータであるのか、それともコピーであるのかとを示すために使用される少数の書き込み可能なビットをも含む。これらのビットは一括して１回だけセットされ得るに過ぎない。いずれかのビットがＰｒｏｇｒａｍ＿ＣＳＤコマンドを発することにより変更されれば、ＣＳＤレジスタをさらに更新するために再びコマンドを使用することはできない。Ｌｏｃｋ＿Ｕｎｌｏｃｋコマンドは、カード２０のパスワードをセットするためにも、さらにカード２０を後にアンロックするためにパスワードを供給するためにも使用される。ＯＴＰカード２０に関して、パスワードは１回セットされ得るだけであり、一旦セットされれば変更もクリアもされ得ない。パスワードがセットされたならば、これはＳＤ仕様により要求されるカード２０の将来の挙動に影響を及ぼす。さらに、ＯＴＰカード２０は消去操作をサポートしないので、ＯＴＰカード２０は、好ましくは、パスワードを忘れてもカード２０を完全に消去する（パスワードをクリアする）ことができるＳＤ仕様に記載されている「強制消去 (force erase)」操作をサポートしない。これら２つのレジスタがそれぞれ１回だけ変更され得ると定めれば、２つの目的を達成できる。第１に、更新レジスタ値を格納するためにカード２０がリザーブしなければならないスペースの量を固定し、第２に、ホストデバイス１０はレジスタが既に変更されているか否かを判定することができる（レジスタがそのデフォルト値と一致しなければ、それは改変されているに違いなく、そして改変されているのであるから、再び改変することはできない）。ホストデバイス１０がレジスタを２回以上変更できるならば、明らかにこれは当てはまらない。
【００２４】
前に記されたように、ここに記載されている例は、これらの実施形態がとることのできる多数の実現形態のうちのほんの幾つかであるに過ぎない。さらに、これらの例ではＯＴＰメモリの使用が用いられているけれども、ここに記載されている教示はＦＴＰメモリにも応用され得るということに留意するべきである。さらに、これらの実施形態において、メモリカード２０はＳＤカードの形をとっているけれども、前に言及されたように、ＭｕｌｔｉＭｅｄｉａ、Ｍｅｍｏｒｙ  Ｓｔｉｃｋ、Ｃｏｍｐａｃｔ  Ｆｌａｓｈ（登録商標）、Ｓｍａｒｔ  Ｍｅｄｉａ（登録商標）、ｘＤ、ＵＳＢ、あるいはＨＳ−ＭＭＣ仕様に準拠するものを含むけれどもそれらに限定はされない、任意の適切なタイプのメモリデバイスが使用され得る。
【００２５】
他の１つの選択肢として、前述した実施形態は、ライトワンスリードメニー（ＷＯＲＭ）メモリデバイス内の現行のデータに対する偶発的または意図的な上書き、変更、または削除を防ぐための機能を付け加えるために改変され得る。好ましくは、これらの機能は、ファームウェア論理およびアルゴリズムで実装され、どのような特定のメモリタイプにも依拠しない。従って、ＷＯＲＭメモリカードは、ワンタイププログラマブル（ＯＴＰ）、フュータイムプログラマブル（ＦＴＰ）、または読み出し／書き込みメモリデバイスを用いて構築され、標準的な２次元フラッシュメモリまたは３次元メモリを用いて構築され得る。（より一般的には、前述したＯＴＰの実施形態を含む、本願明細書に記載されている実施形態のいずれも、任意のタイプのメモリ（例えば、ＯＴＰまたは再書き込み可能なメモリ）を用いて構築され得る。というのも、これらの実施形態では、カードを「ＯＴＰ」または「ＷＯＲＭ」にするのは基礎となるメモリではなくてコントローラだからである。）
【００２６】
一般的に、ＷＯＲＭカードは、警察の証拠のために使用されるデジタル静止画像、ビデオ画像、および音声記録を保存するとき、徴税目的のための販売時点情報管理レシート、および金融記録の長期保存のように、データの信頼性およびセキュリティが至上命題であるＯＥＭ／産業用途向けに設計されている。これらの用途およびその他の用途のために、ＷＯＲＭカードの、カードに書き込まれたデータの完全性および安全性を保証する能力は、その主要な属性である。従って、現行のデータに対する偶発的または意図的な上書き、変更、または削除を防ぐ機能が望まれる。この実施形態は、前述したＯＴＰ実施形態の機能のうちの幾つかを使用し、同時に追加の機能を付け加える。具体的には、ＯＴＰカードと同様に、この実施形態のＷＯＲＭカードは、
＊定義されている「ＲＯＭ」ＳＤメモリカードタイプと互換性のある現行のＳＤ準拠ホストデバイスにおいて読み出し可能な読み出し専用モードにパワーアップする。
＊ホストデバイスがカードを異なるモードに転換させることを要求する（ここでは、ＯＴＰカードで使用されるＯＴＰモードとは異なる読み書きＷＯＲＭモード）。ＷＯＲＭモードは、データ完全性を保証するために以下に記される追加機能を実行する。
＊ホストデバイスが物理メモリ消費を追跡するようにＯＴＰカードと同様のコマンドを実行する。
＊Ｐｒｏｇｒａｍ＿ＣＳＤおよびＬｏｃｋ／ＵｎｌｏｃｋコマンドのためにＯＴＰカードと同様に振る舞う。
しかし、この実施形態のＷＯＲＭカードは、データをカードに付け加えることはできるけれども書き込み後にデータを変更したり削除したりすることはできないことを保証するための新しい機能を実行する。具体的には、この実施形態のＷＯＲＭカードは、
＊ホストデバイスにより発せられた書き込みコマンドを分析して書き込みが実行されるべきか否かを判定する新しい書き込み「フィルタ」を実行する。
＊ホストデバイスが書き込みを「オープン」または「クローズ」と指定するようにＷＯＲＭモードで新しいコマンドを実行する。この機能は、データが書き込み後に変更されないことを保証するために書き込みフィルタと共に使用される。
【００２７】
１つの現在好ましい実施形態では、ＷＯＲＭカードの実現形態は、他のＳＤカード製品と同じカードアーキテクチャに従う。すなわち、コントローラ３０は、カード２０の機能およびアルゴリズムを実行し、図１に示されているようにホストデバイス１０と１つまたは複数の内部メモリデバイス４０との間のインターフェイスとして作用する。前述したように、ＷＯＲＭカードは特定のメモリ技術を必要とせず、例えばＯＴＰ、ＦＴＰ、あるいは読み出し／書き込みメモリで構築され得る。
【００２８】
図６に示されているように、前述したＯＴＰカード２０と同様に、この実施形態においてＷＯＲＭカード６０は２つの動作モードを実行して、準拠ＳＤホストデバイスによって読み出され得るＲＯＭモードにパワーアップし、書き込みを実行できるようになる前に書き込み可能モードに転換されなければならない。しかし、前述したＯＴＰカード２０とは違って、ＷＯＲＭカード６０は（「ＯＴＰ」モードの代わりに）「ＷＯＲＭ」モードに転換され、これは、同じコマンドと異なる一切の引数とを用いて実行され得る。ＷＯＲＭモードでは、カード６０は、データをカード６０に加えることはできるがその後に変更することはできないことを保証するための機能を実行する。
【００２９】
内部では、書き込みコマンドがカード６０により受け入れられた（そして、データが書き込まれた後に変更されないことを保証するためにカード６０が実行する書き込みフィルタにより拒否されなかった）後に、カード６０は前述したＯＴＰカード２０と同様に動作し、現行のデータのセクタを更新する書き込みのために内部データ構造を更新する。基礎となる１つまたは複数のメモリデバイスが読み出し／書き込みされるならば、今や不用になった「オリジナルデータ」セクタは消去されて再使用され得る。基礎となる１つまたは複数のメモリデバイスがＯＴＰであるならば、更新されたデータセクタは決して再使用されず、単に決して再び参照あるいはアクセスされない。
【００３０】
ＷＯＲＭカード６０は、好ましくは、ホストが物理メモリ消費を追跡するようにＯＴＰカード２０と同じＲｅａｄ＿Ｍｅｍ＿Ｒｅｍａｉｎｉｎｇコマンドを実行する。さらに、Ｐｒｏｇｒａｍ＿ＣＳＤコマンドおよびＬｏｃｋ＿ＵｎｌｏｃｋコマンドでのＷＯＲＭカード６０の挙動は、好ましくは前述したＯＴＰカード２０の実現形態と同じである。しかし、ＷＯＲＭカード６０は、好ましくはホストが書き込み操作を「オープン」または「クローズ」とマークするように新しいコマンドを実行する。この情報は、データが書き込まれた後は変更も削除もされ得ないことを保証するために以下の書き込みフィルタと関連して使用される。（コマンドコードは、「SD Part 1 Physical Layer Specification, version 2.00, section 4.3.12 Command System as part of the switch command protocol」において割り当てられて定義されたが、データ値およびフォーマットはＷＯＲＭカードアプリケーションのために特に定義された。）一実施形態では、ホストは、「オープン」のための０１ｈまたは「クローズ」のための０２ｈの引数を指定することによってこのコマンドを使用する。一旦セットされた後は、モードは「スティッキー」であって、コマンドが再び発せられるまでは変更されない。カード６０が初めにＷＯＲＭモードに転換されると、書き込みモードは「オープン」に戻る。
【００３１】
この実施形態では、ＷＯＲＭカード６０は、カード６０に書き込まれたファイルおよびディレクトリを編成するためにＦＡＴファイルシステムを使用する。（これは、ＳＤ仕様により、Part 2 File System Specificationにおいて勧告されているファイルシステムである。）前にＯＴＰカードについての解説に記されたように、ＦＡＴファイルシステムを使用するホストデバイスは、通常のファイルシステム操作を実行する過程で現行のデータを上書きする書き込み操作をしばしば発する。この実施形態では、ＷＯＲＭカード６０は、ホストデバイスがＷＯＲＭカードデータ上書き要求条件を満たすために自身のＦＡＴファイルシステムの実現形態に変更を加えることを要求するけれども、ＷＯＲＭカード６０が一般的にＦＡＴファイルシステムと互換性であるためになおサポートしなければならない現行のデータを上書きするＦＡＴファイルシステム操作もある。従って、この実施形態では、ＷＯＲＭカード６０は、好ましくは、ホストにより発せられた書き込みコマンドを分析してどれが適法であって実行されるべきか、どれが違法であって拒否されるべきかを判定するために書き込みフィルタを実行する。ハイレベルにおいて、ＷＯＲＭカード６０は、新しいファイルまたはディレクトリを加えることまたは作成することに関連する書き込み操作を許すけれども既に書き込まれているデータを変更する書き込み操作を拒否する。拒否される書き込み操作は、例えば、完成しているファイルに上書きしたり、削除したり、データを付け加えたりするようなファイルデータを変更するものや、ファイルエントリを改名したり、ファイルエントリを削除したり（あるいはそれを「削除済み」とマークする異なる操作）、その属性（読み出し専用、アーカイブなど）を変更したり、あるいは作成または最後に改変された日付およびタイムスタンプを変更したりするようなファイル（あるいはディレクトリ）のファイルエントリを変更するものや、他の類似する操作を含む。
【００３２】
書き込みフィルタをサポートするために、ＷＯＲＭカード６０は、図７に示されているように、好ましくは自身の論理メモリを３つの領域に分割する。システムエリアは、メモリの先頭（論理アドレス００ｈ）に位置する「マスターブートレコード(Master Boot Record)」構造から始まって、「パーティションブートレコード（Partition Boot Record)」構造を含んで構造にまで及ぶ。ＦＡＴエリアは、ファイルアロケーションテーブルの２つのコピーから成り、システムエリアの直ぐ後に位置する。ユーザエリアはカードのメモリの残りから成り、２番目のＦＡＴの直ぐ後のルートディレクトリから始まってカードの論理メモリの末端に及ぶ。種々の領域の間の境界を指示するＦＡＴファイルシステム構造のアドレスは、論理アドレス００ｈに位置するＭＢＲから始まる構造を復号化することによって決定され得る。
【００３３】
この実施形態では、ＷＯＲＭカード６０は、データが書き込まれた後にそれが改変され得ないことを保証するために書き込み規則を実行する。これらの規則は、各セクタがホストにより要求されたとおりに書き込まれるべきであるかどうかを判定するために、セクタごとに、全ての書き込みコマンドを分析する。書き込み規則は、書き込みが許されるべきか拒否されるべきかを判定するときに３片の情報、すなわち書き込み操作の位置（システムエリア、ＦＡＴエリア、またはユーザエリア）と、そのセクタが以前に書き込まれていたか否か、そしてそれが「オープン」あるいは「クローズ」に書き込まれていたかということと、ホストが書き込もうとしているデータパターンとを好ましくは使用する。
【００３４】
１つの現在好ましい実施形態では、ＷＯＲＭカード６０によって実行される書き込み規則は次のとおりである。
＊オープンでもクローズでも、システムエリアに対して書き込みは一切許されない。
＊ＦＡＴエリアへの書き込みは、プログラムされていないクラスタエントリを変更できるだけである。プログラムされているクラスタエントリは、００００ｈ（プログラムされていない値）を含むどんな値へも変更することができない。クラスタエントリは、偶数バイトアドレスで整列させられる２バイト値である。クラスタエントリのいずれかのビットが非ゼロであるならば、そのクラスタエントリはプログラムされていると見なされ、変更することができない。
【００３５】
１つの現在好ましい実施形態では、ユーザエリアへの書き込みは次の規則に従う。
＊データは、３２バイトアドレスで整列させられ、３２バイト量（ディレクトリエントリのサイズ）の倍数を単位としてのみ改変され得る。３２バイトグループのいずれかのビットが非ゼロであるならば、その３２バイトグループはプログラムされていると見なされ、変更されることができない。
＊１つのセクタ（５１２バイト）が以前に任意の非ゼロのデータを書き込まれているならば、そのセクタへの追加のデータはプログラム済みの３２バイト量を単位として追加され（後に書き込まれ）得るに過ぎない。１つ以上のプログラムされていない（全部００ｈ値）３２バイト量の「ギャップ」が存在するように以前にプログラムされた１つ以上の３２バイト量をセクタが有するならば、それらの介在する空白の３２バイト量をプログラムすることはできない。
＊１つのセクタが以前に「クローズ」に書き込まれていたならば、ホストによって要求される位置またはデータパターンに関わらず、そのセクタには二度と書き込むことができない。
【００３６】
ホストがこれらの規則のいずれかに違反したならば、カードは書き込み保護違反(Write Protection Violation)エラーを戻す。
もちろん、前の規則は単なる例であり、他の規則も使用され得る。例えば、データは３２バイト量の倍数を単位としてのみ改変され得るという規則は或る実施形態では不要に制限的であり、以前にプログラムされていた３２バイト量が「開始クラスタ」フィールドおよび／または「ファイル長」フィールドを空白のままにしておいたならば、それらの３２バイト量に対する更新を許し、そしてこれらのフィールドを更新することだけを許し、他のいずれを更新することも許さないほうがよい。この改変は、ホストデバイスがＷＯＲＭカードをサポートしやすくする。それは、ホストデバイスが自身の現行のＦＡＴファイルシステムの実現形態に対して行わなければならない変更がより少ないからである。他の１つの例として、データは３２バイト量を単位として追加され得るに過ぎないという規則は、ＷＯＲＭカードがホストデバイスに依拠して規則に適切に従うのであれば、不要である。勧告された実現形態に従うホストデバイスに関して、この事態は起こらない。
さらに、前述した規則は「ＦＡＴ１６」ＦＡＴファイルシステムをサポートする好ましい実施形態を記述しているということに留意するべきである。メモリデバイスのために同じくよく使用されているＦＡＴ１２、ＦＡＴ３２、およびｅｘＦＡＴファイルシステムのために同様の規則が開発され得る。
【００３７】
ＷＯＲＭカード６０は、好ましくは、ホストデバイスに対して、書き込み規則を満たすように自身のＦＡＴファイルシステムの実現形態を改変するように要求する。ＷＯＲＭカード６０は、好ましくはホストデバイスに対してファイルデータ（ファイル名などのファイルシステム関連データとは対照的に、ファイルが包含しているデータ）を「クローズ」書き込みとして書き込むように要求する。そうすれば、ファイルデータは、ファイルの内容に関わらず、決して変更され得ない。ホストがファイルデータを「クローズ」として書き込まず、ファイルデータが１つ以上の空白セクタ（全部００ｈ値）を包含しているならば、悪意のあるデバイスは、それらの００ｈ値の幾つかが他の値に変更されることとなるようにそのセクタを変更することによって、ファイルを壊すことができる。セクタは２つ以上のファイルに関する情報を包含することがあるから、ファイルシステム関連情報は、それらのセクタが後に更新されることがあるので、「オープン」に書き込まれるべきである。
【００３８】
前述したように、さらに本願明細書において参照により援用されている米国特許出願第１２／４２１，２２９号（特許文献５）および第１２／４２１，２３８号（特許文献６）において述べられているように、ＷＯＲＭメモリデバイスは、例えばデジタル証拠または他のタイプの法廷許容コンテンツ、国家安全保障情報、保険記録、秘密情報、投票計算機データを格納するときなど、データの完全性が重要である永久記録保存環境においてデータを格納するために使用され得る。そのような環境では、ユーザにとって、ＷＯＲＭメモリデバイスが期待通りに機能してデータ完全性を維持するであろうと確信することが重要である。そのような確信を提供するために、ホストがメモリデバイスにデータを格納することを許される前に、そのメモリデバイスは初めに認証される。これにより、そのメモリデバイスが信頼の置ける出所から得られたものであって、意図的あるいは偶発的に重要なデータを削除または変更する危険性のある模造デバイスではないことが保証される。この認証は、メモリデバイス当たりに１回だけ（例えば、ワンタイム登録）、ホストがデータをメモリデバイスに格納しようとする度に（例えば、セッションごとに認証が要求される）、あるいは他の任意の所望間隔を置いて、行われ得る。メモリデバイスを認証するために任意の適切な手法が使用され得るけれども、以下の段落で幾つかの代表的な手法を示す。
【００３９】
一実施形態では、ＷＯＲＭメモリデバイスにはセキュリティキー（あるいはより一般的には、メモリデバイスを認証するために使用されるどんな情報であってもよい「セキュリティ情報」）が事前にロードされ、メモリデバイスは、そのセキュリティキーが許可されたセキュリティキーのリストに載っていれば、認証される。セキュリティキーは、任意の適切な形をとることができて、そのメモリデバイスに特有であるか（例えば、コントローラによりランダムに生成される）あるいはメモリデバイスのバッチに特有であることができる。セキュリティキーをメモリデバイス内の任意の適切な位置に格納することができ、一実施形態では、セキュリティキーは無許可のエンティティがキーにアクセスするのを防ぐために隠し領域に格納される。この実施形態では、メモリデバイスのコントローラが初期化して動作モードに入る前に、ホストは初めにセキュリティキーをセキュリティキーのリストと対照して確認することによってメモリデバイスを登録しなければならない。このリストをホストあるいは接続されているサーバに格納することができる。接続されているサーバの場合、その確認を行うホストは、好ましくは、確認中にセキュリティキーの最新のリストにアクセスするために、例えばインターネットを介して、サーバに接続される。メモリデバイスのセキュリティキーがリストに載っていれば、そのメモリデバイスは操作可能モードにされる。これを任意の適切な仕方で行うことができる。例えば、一実施形態では、セキュリティキーを確認するとき、ホストは、メモリデバイスにおいてフラグをセットすることによってメモリデバイスを自動的に登録することができ、これによりメモリデバイスはアンロックされてその操作可能モードに入ることを許される。他の１つの実施形態では、検査役の人（例えば、認証プロセスを監督するための有資格パスワードアクセスを有する人）が手動でこのフラグをセットする。さらに別の実施形態では、メモリデバイスをその操作可能モードにするためにメモリデバイスにおいてフラグをセットする代わりに、メモリデバイスは操作可能モードに製造され、認証されたメモリデバイスだけが頒布されるように、検査役の人が認証されているメモリデバイスをそうでないものから単に分離する。この「管理の連鎖」は、認証されたメモリデバイスのその所望の保証を提供する。供給経路の真正性を確かめる目視検査あるいはメモリデバイスとマスター「ゴールドコピー」との電子的比較に、確認の基礎を置くこともできる。どの特定の方法が使用されるかに関わらず、前述した手法は、ＷＯＲＭメモリデバイスが広告されたとおりに機能することを保証する。
【００４０】
セキュリティをさらに高めるために、セキュリティキーを認証するほか、メモリデバイスが真性であると見なされる前にセキュリティキーの他に１つ以上の値を認証することもできる。これらの追加の値はタイムスタンプまたはメモリデバイス識別子（例えば、メモリデバイスのシリアルＩＤ）のような、ただしこれらに限定はされない、任意の適切な形をとることができる。セキュリティキーを確認する同じリストによってこれらの追加の値を確認することができ、あるいは他のリストを使用することもできる。セキュリティをさらに高めるために、セキュリティキーおよび／または追加の値のうちの１つ以上を所定のキーを用いて暗号化することができ、ホストは、それらを確認する前にこれらの暗号化されたエレメントを復号化する。
【００４１】
特許請求の範囲に関して限定を置く意図なしに、１つの現在好ましい実施形態では、認証方法は、キーサーバを通してＷＯＲＭメモリデバイスを認証するためにＲＳＡ（または同等のＥＣＣなど）非対称プロトコルと、ＷＯＲＭメモリデバイス上の証明書およびキーのペアとを使用する。この例が図８および９に示されている。図８および９の両方において、ＷＯＲＭカード証明機関（ＣＡ：Certification Authority）８００は、ＷＯＲＭメモリデバイス８２０のために（またはＷＯＲＭメモリデバイスのバッチのために）セキュリティ証明書８１０を発行する。ＣＡのためのルート証明書は、取り消された証明書を識別するために使用される証明書取り消しリスト（ＣＲＬ：certificate revocation list）と共に、キーサーバ８３０に格納される。この同じ証明書８１０が、秘密キーペア（図示せず）と共に、製造中にＷＯＲＭメモリデバイス８２０に格納される。ＷＯＲＭメモリデバイス８２０を使用のために初期化する前に、メモリデバイス８２０上の証明書はキーサーバ８３０上の証明書およびＣＲＬと対照されて確認される。キーサーバ８３０は、このプロセスを通してイネーブルされている有効なメモリデバイスのリストを維持することができる。
【００４２】
図８において、キーサーバ８３０は、ホスト８４０から遠く離れ、最新の証明書のリストおよびＣＲＬにアクセスするためにインターネット８５０などのネットワークを介してホスト８４０によりアクセスされる。この状況で、ホスト８４０は、保護されている接続を通してキーサーバ８３０を識別し認証することができる。対照的に、図９では、キーサーバ８３０はホスト８４０の一部である。この状況では、キーサーバ８３０は信頼できるローカルサーバであり、メモリ認証はローカルに行われ得るのでサーバ認証は不要である。ホスト／ローカルサーバは、例えば、ＰＣまたはデジタルカメラであることができる。他のキーサーバ構成が使用され得ることに留意するべきである。例えば、キーサーバは、ホストから離れて、組織体のイントラネットの中に置かれることができる。
【００４３】
次に他の１つの実施形態に注目すると、ＷＯＲＭメモリデバイスに格納されるデータは非常にセンシティブで機密であることがある。それ故、格納されているデータの完全性および機密性を維持するためにＷＯＲＭメモリデバイスに１つ以上のセキュリティ機能を実装することが望ましい。図１０を参照すると、ＷＯＲＭメモリデバイス１０１０のコントローラ１０００はストレージモードで動作することができ、このモードでは、コントローラ１０００は、データがメモリ１０２０に書き込まれるときにデータを暗号化し、適切な認証情報を提供したホスト１０３０に対して復号化されたデータを提供するだけである。どんな暗号化方法でも使用することができる。一実施形態では、ＷＯＲＭメモリデバイス１０１０はハードウェア暗号化方法を使用する。例えば、ＷＯＲＭメモリデバイス１０１０内のコントローラ１０００は、本願明細書において参照により援用されている米国特許出願公開第２００６／０２４２０６４号（特許文献７）および第２００８／００１０６８５号（特許文献８）に記載されているハードウェア暗号化方法を使用することができる。代わりに、ＷＯＲＭメモリデバイス１０１０は、ソフトウェア暗号化方法あるいはハードウェア暗号化方法およびソフトウェア暗号化方法の組み合わせを使用することができる。使用することのできる適切な暗号化手法は、ＡＥＳ、ＤＥＳ、３ＤＥＳ、ＰＫＩ、ＳＨＡ−１ハッシュ、ＲＳＡ、および乱数生成を含むけれども、これらに限定されない。１つの現在好ましい実施形態では、メモリデバイス１０１０は、サンディスク  コーポレーションのＴｒｕｓｔｅｄＦｌａｓｈ（登録商標）セキュリティプラットフォームを使用する。種々の形の暗号化が使用可能であり、ホストはカードの認証中に暗号化のタイプをセットすることができる。これは、組織体が自分のカードの全てが一定のモードで動作することを希望することができ、認証プロセス中にそれをセットすることによってこれを保証することができるという状況において有益である。この場合、そのモードでもデータを書き込むようにセットされる適切なホストを有し得る。
【００４４】
メモリデバイス１０１０のコントローラ１０００は数個のストレージモードを実行するように機能することもでき、その場合、ホスト１０３０は、それらのモードのうちの１つを選択するためのコマンド（例えば、オペコード）をメモリデバイス１０１０に与えることができる。これにより、ホスト１０３０は、所与のアプリケーション使用モデルにどんなモードが最善に適するかを決定することができる。例えば、図１１は、ホストデバイス１０３０が３つの異なるファイル（「ファイル１」、「ファイル２」、「ファイル３」）のために３つの異なるオペコード（「Ｗｒｉｔｅ  Ａ」、「Ｗｒｉｔｅ  Ｂ」、「Ｗｒｉｔｅ  Ｃ」）を送ることを示す。これらのオペコードに応じて、ＷＯＲＭメモリデバイス１０１０は、これらのそれぞれのストレージモードを用いてファイルを格納する。それ故、図１１に示されているように、ファイル１はストレージモードＡを用いて格納され、ファイル２はストレージモードＢを用いて格納され、ファイル３はストレージモードＣで格納される。もちろん、もっと少数（１つでさえも）あるいはもっと多数のストレージモードも使用することができる。種々のストレージモードは任意の望ましい特性を持つことができるけれども、図１２Ａ〜１２Ｃは、一実施形態の３つの特定のストレージモードを示す。ストレージモードＡ（図１２Ａ）は無保護モードである。従って、ホストデバイス１０３０がストレージモードＡを用いて格納されたファイル（ここでは、ファイル１）を読み出す（あるいは、より一般的には、「アクセスする」（例えば、読み出すかまたはコピーする））ためにＷＯＲＭメモリデバイス１０１０にコマンドを送ると、ＷＯＲＭメモリデバイス１０１０は単にファイル１をホストデバイス１０３０に提供する。すなわち、このモードでは、セキュリティは全く要求されず、ＷＯＲＭメモリデバイス１０１０はファイルへの自由なアクセスを許す。ストレージモードＢ（図１２Ｂ）は標準的なセキュリティモードであり、ストレージモードＢを用いて格納されたファイル（ここでは、ファイル２）を読むためにはパスワードが要求される。図１２Ｂに示されているように、ファイル２を読むために、ホストデバイス１０３０は、ファイル２を読み出すためのコマンドおよび有効な認証情報（ここでは、ユーザＩＤおよびパスワード）の両方を送る。ＷＯＲＭメモリデバイス１０１０は、有効な認証情報の格納されているリストと対照してこれらの認証情報をチェックし、一致があれば、ファイル２をホストデバイス１０３０に提供する。ＷＯＲＭメモリデバイス１０１０は、ファイル２を読み出す試み（成功したかまたは成功しなかった）のアクセスログを維持することができ、認証されたホストデバイス１０３０にこのログを提供することができる。アクセスログは、正確なレコードを維持する目的のために、ユーザＩＤ、ユーザパスワード、ならびにタイムスタンプおよび日付スタンプのような、ただしこれらに限定はされない、データを含むことができる。ストレージモードＢの他の１つの実現形態では、ホストはカードにアクセスするための有効なキーを既に持っている。しかし、システム（例えば、ＰＣ上で動作するプログラム）は、ホストがカードにアクセスすることを許す前に有効なユーザＩＤおよびパスワードを入力するようにユーザに要求する。これは、その壁の中でアクセスを制御することが組織体の義務である一種の「ローカル認証」となり得る。
【００４５】
最後に、ストレージモードＣ（図１２Ｃ）は高度セキュリティモードであり、ホストデバイス１０３０に格納されている証明書１２００（あるいは、より一般的には、ユーザＩＤおよびアクセスキー）を確認するためにホストデバイス１０３０がキーサーバ１２１０に（例えば、インターネット１２２０を介して）接続されることを要求する。このレベルのセキュリティは、ＷＯＲＭメモリデバイス１０１０内のデータにアクセスしようとしているホストデバイスが現在認証されているホストであることを保証することができる。この実施形態では、ＷＯＲＭホスト証明書機関(WORM Host Certificate Authority)は、証明書１２００をホストデバイス１０１０に提供する。ＷＯＲＭホスト証明書機関は、さらに証明書および証明書取り消しリスト（ＣＲＬ）をキーサーバ１２１０に格納する。ホストデバイス１０３０が、ストレージモードＣを用いて格納されたファイル（ここでは、ファイル３）を読み出したいときには、ホストデバイス１０３０は初めに自分の証明書を確認のためにキーサーバ１２１０に提示する。その証明書１２００がキーサーバ１２１０上のものと一致し、かつＣＲＬに載っていなければ、キーサーバ１２１０は証明書１２００を確認し、ホストデバイス１０３０に有効な認証情報を与える。ホストデバイス１０３０が、ファイル３を読み出す要求と共にこれらの有効な認証情報をＷＯＲＭメモリデバイス１０１０に提示すると、ＷＯＲＭメモリデバイス１０１０はホストデバイス１０３０がファイル３を読み出すことを許す。ストレージモードＢの場合と同じく、ＷＯＲＭメモリデバイス１０１０は、ファイルを読み出そうとする試みのアクセスログを維持することができる。キーサーバ１２１０は、証明書を確認しようとする試みのアクセスログと、イネーブルされたホストデバイスのリストとを維持することもできる。
【００４６】
一定のストレージモードを用いてファイルがＷＯＲＭメモリデバイス１０１０に書き込まれた後、そのファイル（および／またはＷＯＲＭメモリデバイス１０１０に格納されている他のファイル）をより高いセキュリティレベルにセットすることができる。例えば、ストレージモードＡを用いて書き込まれたファイルを認証されたホストによってストレージモードＢにセットすることができ、ストレージモードＢを用いて書き込まれたファイルをストレージモードＣにセットすることができる。しかし、ファイルがより低いストレージモードにセットされることを妨げることが好まれる（例えば、ストレージモードＣのファイルはストレージモードＡにセットされるべきではない）。１つの使用例は、カメラホストが画像を捉えるときである。カメラホストは、ユーザがその画像をカメラのディスプレイデバイスで再観察できるように、画像をストレージモードＡを用いて書き込むことができる。しかし、その画像を再観察した後、ユーザはＷＯＲＭメモリデバイス上の画像をその後「保護する」と決定することができ、従って、その画像（と、おそらくはＷＯＲＭメモリデバイス上の他の画像）をストレージモードＣに切り替えることができ、その時点で読み出しアクセスは、認証されたホストだけに許される。ストレージモードＣの他の１つの実現形態では、ホスト上の証明書は初めに遠隔のキーサーバで認証されなければならず、その後、システム（例えば、ＰＣ上で動作するプログラム）は、ホストがカードにアクセスすることを許す前に有効なユーザＩＤおよびパスワードを入力するようにユーザに要求する。キーサーバは、ホストから離れているローカルイントラネットのような、ただしこれに限定はされない、任意の適切な位置にあることができる。
【００４７】
これらの実施形態は、従来の記憶手法に優る利点を幾つか提供する。例えば、フィルムおよびカセットテープのようなアナログ媒体は、証拠のような重要なデータを変更できない状態に格納するために使用され得るけれども、アナログ媒体は、データが電子的に格納され頒布されるためにはデジタルフォーマットに変換されなければならないので、デジタル媒体（例えば、フラッシュメモリ）より複製しにくい。永久記録保存を目的としてオリジナルのアナログ媒体を維持することもできるけれども、データへのアクセスを物理的に制限するためにアナログ媒体を外側格納装置にしまい込まなければ、データを秘密に保つのは困難であり、アクセス履歴を追跡するのは困難である。さらに、アナログ媒体は希少になりつつあって、大抵の製造業者により漸次廃止されつつあり、アナログ媒体を見出しにくくしている。さらに、センシティブなデータを格納するために標準的なＳＤカードまたはＣＦカードのような在来のフラッシュメディアデバイスが使用されるときには、しばしば、従来のフラッシュメディアデバイスは変更され得るので、その中に格納されているデータがカードの取り扱い中に決して変更されないことを保証するためにはカードのために厳しい管理の連鎖のプロセスが必要である。格納されているデータが変更されないことを保証する機能がＷＯＲＭメモリデバイス自体に組み込まれるので、これらの関心事に対処するために前に論じられたセキュリティ機能が使用され得る。さらに、前に論じられた登録機能を用いることにより、ＷＯＲＭメモリデバイスが正当であって、ＷＯＲＭ機能を実行するために必要とされるホストからのどんな専用コマンドをもサポートするということがユーザに保証され得る。
他の選択肢が使用され得る。例えば、ＷＯＲＭメモリデバイスを耐タンパ性に保つために、メモリへの直接アクセスを提供することのできるテストパッドをメモリデバイスの製造中にメモリデバイスの基板から除去することができる。
【００４８】
最後に、前述したように、メモリデバイスのライトワンスリードメニー性を実施するのはコントローラ（例えば、純粋なハードウェア、またはファームウェアもしくはソフトウェアを動作させるハードウェア）であるので、これらの実施形態に使用されるメモリは任意の適切な形をとることができる。従って、メモリは、ワンタイムプログラマブル（ＯＴＰ）、フュータイムプログラマブル（ＦＴＰ）、または再書き込み可能（例えば、ＮＡＮＤ）であることができる。再書き込み可能なメモリの場合には、書き込みの回数を（唯１回の書き込みに）制限するためにコントローラを用いることにより、データをより長く保持し得るようになる。さらに、前述したように、一実施形態では、メモリデバイスは、ＳＤＡ標準規格に従って動作し、幾つかの追加のＷＯＲＭ特有のコマンドの他にＳＤＡ物理レイヤ仕様からの標準的ＳＤコマンドを使用する。その実施形態ではメモリデバイスはＳＤカードのフォームファクタを有するが、他のフォームファクタが使用され得ることにも留意するべきである。
【００４９】
添付されている特許請求の範囲のうちの幾つかの請求項は、構成要素が一定の機能を実行するように動作し得るかあるいは一定のタスクのために構成されていると述べている。これらは拘束性のある限定事項ではないことに留意するべきである。特許請求の範囲において詳述されている動作は、必ずしもそれらが詳述された順序ではなくて任意の順序で実行され得るということにも留意するべきである。さらに、前述した詳細な説明は本発明がとり得る選択された形の説明として理解されるべく意図されているのであって、本発明の定義と解されるべく意図されてはいない。この発明の範囲を定めるべく意図されているのは、あらゆる同等物を含む、添付されている特許請求の範囲だけである。最後に、本願明細書に記載された好ましい実施形態のいずれのいかなる態様も単独であるいは互いに組み合わされて使用され得るということに留意するべきである。
【図１】
2013506910.tif 000004
【図２】
2013506910.tif 000005
【図３】
2013506910.tif 000006
【図４】
2013506910.tif 000007
【図５】
2013506910.tif 000008
【図６】
2013506910.tif 000009
【図７】
2013506910.tif 000010
【図８】
2013506910.tif 000011
【図９】
2013506910.tif 000012
【図１０】
2013506910.tif 000013
【図１１】
2013506910.tif 000014
【図１２Ａ】
2013506910.tif 000015
【図１２Ｂ】
2013506910.tif 000016
【図１２Ｃ】
2013506910.tif 000017
【国際調査報告】
2013506910.tif 000018
2013506910.tif 000019
2013506910.tif 000020
2013506910.tif 000021
2013506910.tif 000022