(57)【特許請求の範囲】
【請求項１】
半導体メモリカードであって、
接続される装置との間で正当性を相互に認証する認証回路と、相互認証により正当性が確認された場合に、当該装置によってアクセスされるプロテクト領域を備え、
前記プロテクト領域には、複数のエントリーセットファイルと、１つのファイル状態管理ファイルとが記録されており、
各前記エントリーセットファイルは、それぞれ、固定数のエントリー領域と、エントリー状態情報とを含み、エントリー状態情報は、１つのエントリーセットファイル内におけるそれぞれのエントリー領域に対応したフラグを具備することで、エントリー領域のそれぞれに対応したテーブル構造を有しており、各フラグはオフに設定されることにより、対応するエントリー領域が未使用であることを示し、オンに設定されることにより、対応するエントリー領域が使用中であることを示し、
前記ファイル状態管理ファイルは、ファイル状態情報を含み、ファイル状態情報は、前記プロテクト領域に記録されているエントリーセットファイルのそれぞれに対応したフラグを具備することで、エントリーセットファイルのそれぞれに対応したテーブル構造を有しており、各フラグは、対応するエントリーセットファイルが未使用のエントリー領域を１つ以上有している第１状態であるか、又は、全てのエントリー領域が使用中である第２状態であるかを示し、
ファイル状態管理ファイル及びエントリーセットファイルを構成しているクラスタのサイズは、前記半導体メモリカードにおける消去可能ブロックのサイズそのもの又は当該サイズの整数分の一に設定されている
ことを特徴とする半導体メモリカード。
【請求項２】
請求項１記載の半導体メモリカードにおけるエントリーセットファイル内の空きのエントリー領域にデータを記録する記録装置であって、
前記半導体メモリカードの認証回路との間で相互認証を行う認証手段と、
前記認証手段により、正当性が確認された場合に、ファイル状態管理ファイルを半導体メモリカードにおけるプロテクト領域から読み取る読取手段と、
読み取られたファイル状態管理ファイル内の状態情報を参照して、前記半導体メモリカードにおけるプロテクト領域に記録されている複数エントリーセットファイルのうち、第１状態にあるエントリーセットファイルを特定し、特定されたエントリーセットファイル内部のエントリー状態情報を取得する特定手段と、
特定されたエントリーセット内部のエントリー領域のうち、オフフラグに対応するエントリー領域にデータを書き込む書込手段と、
データの書き込みにより、エントリーセットファイル内のエントリー領域が全て使用中となれば、そのエントリーセットファイルが第２状態になった旨を示すよう、プロテクト領域内のファイル状態管理ファイルを更新する更新手段と
を備える記録装置。
【請求項３】
前記更新手段は、
第２状態にあるエントリーセットファイルにおいて、その中の1つのエントリー領域が使用中から未使用に変化した場合、そのエントリーセットファイルが第２状態から第１状態になった旨を示すよう、ファイル状態管理ファイルを更新する
請求項２記載の記録装置。
【請求項４】
前記前記特定手段により特定されるエントリーセットファイルは、エントリー状態情報におけるフラグ列の先頭に一番近いオフフラグに対応するエントリーセットファイルである
請求項２記載の記録装置。
【請求項５】
前記記録装置は更に
前記書込手段が読み取られたファイル状態情報を参照した結果、半導体メモリカードにおけるプロテクト領域中の全エントリーセットファイルが第２状態であることが判明した場合に、第１状態にあるエントリーセットファイルを新たにクリエイトするクリエイト手段
を備える請求項２記載の記録装置。
【請求項６】
前記書込手段により書込先に選ばれるエントリー領域に対応するオフフラグは、フラグ列の先頭に一番近いオフフラグである、請求項２記載の記録装置。
【請求項７】
前記半導体メモリカードは更に、暗号化コンテンツが複数記録されたユーザデータ領域を備え、
プロテクト領域に記録されたエントリーセットファイル内の複数エントリー領域のそれぞれは、ユーザデータ領域における暗号化コンテンツのそれぞれに割り当てられており、
エントリー領域に対して書込手段が書き込むデータは、
そのエントリー領域が割り当てられた暗号化コンテンツについての復号鍵又は権利管理情報を含む、請求項２記載の記録装置。
【請求項８】
請求項１記載の半導体メモリカードにおけるエントリーセットファイル内の空きのエントリー領域にデータを記録させる手順をコンピュータに行わせるプログラムであって、
前記半導体メモリカードの認証回路との間で相互認証を行う認証ステップと、
前記認証ステップにより、正当性が確認された場合に、ファイル状態管理ファイルを半導体メモリカードにおける前記プロテクト領域から読み取る読取ステップと、
読み取られたファイル状態管理ファイル内の状態情報を参照して、前記半導体メモリカードにおけるプロテクト領域に記録されている複数エントリーセットファイルのうち、第１状態にあるエントリーセットファイルを特定し、特定されたエントリーセットファイル内部のエントリー状態情報を取得する特定ステップと、
特定されたエントリーセット内部のエントリー領域のうち、オフフラグに対応するエントリー領域にデータを書き込む書込ステップと、
データの書き込みにより、エントリーセットファイル内のエントリー領域が全て使用中となれば、そのエントリーセットファイルが第２状態になった旨を示すよう、半導体メモリカードにおけるプロテクト領域内のファイル状態管理ファイルを更新する更新ステップと
をコンピュータに行わせるプログラム。
【請求項９】
前記更新ステップは、
第２状態にあるエントリーセットファイルにおいて、その中の1つのエントリー領域が使用中から未使用に変化した場合、そのエントリーセットファイルが第２状態から第１状態になった旨を示すようファイル状態管理ファイルを更新する、請求項８記載のプログラム。
【請求項１０】
前記前記特定ステップにより特定されるエントリーセットファイルは、エントリー状態情報におけるフラグ列の先頭に一番近いオフフラグに対応するエントリーセットファイルである、請求項８記載のプログラム。
【請求項１１】
前記プログラムは更に、
前記書込ステップが読み取られたファイル状態情報を参照した結果、半導体メモリカード中の全エントリーセットファイルが第２状態であることが判明した場合に、第１状態にあるエントリーセットファイルを新たにクリエイトするクリエイトステップ
を有する請求項８記載のプログラム。
【請求項１２】
前記書込ステップにより書込先に選ばれるエントリー領域に対応するオフフラグは、フラグ列の先頭に一番近いオフフラグである、請求項８記載のプログラム。
【請求項１３】
前記半導体メモリカードは更に、暗号化コンテンツが複数記録されたユーザデータ領域を備え、
プロテクト領域に記録されたエントリーセットファイル内の複数エントリー領域のそれぞれは、ユーザデータ領域における暗号化コンテンツのそれぞれに割り当てられており、
エントリー領域に対して書込ステップが書き込むデータは、
そのエントリー領域が割り当てられた暗号化コンテンツについての復号鍵又は権利管理情報を含む、請求項８記載のプログラム。
【請求項１４】
請求項８記載のプログラムが記録されているコンピュータ読み取り可能なプログラム。
【請求項１５】
請求項１記載の半導体メモリカードにおけるエントリーセットファイル内の空きのエントリー領域にデータを記録する記録方法であって、
前記半導体メモリカードの認証回路との間で相互認証を行う認証ステップと、
前記認証ステップにより、正当性が確認された場合に、ファイル状態管理ファイルを半導体メモリカードにおける前記プロテクト領域から読み取る読取ステップと、
読み取られたファイル状態管理ファイル内の状態情報を参照して、前記半導体メモリカードにおけるプロテクト領域に記録されている複数エントリーセットファイルのうち、第１状態にあるエントリーセットファイルを特定し、特定されたエントリーセットファイル内部のエントリー状態情報を取得する特定ステップと、
特定されたエントリーセット内部のエントリー領域のうち、オフフラグに対応するエントリー領域にデータを書き込む書込ステップと、
データの書き込みにより、エントリーセットファイル内のエントリー領域が全て使用中となれば、そのエントリーセットファイルが第２状態になった旨を示すよう、半導体メモリカード上の状態情報を更新する更新ステップと、を有する記録方法。
【発明の詳細な説明】
【０００１】
本発明は、暗号鍵、権利管理情報、課金情報といったセキュアなデータが書き込まれる、SDメモリカード等の半導体メモリカード、記録装置、プログラム、方法に関する。
【０００２】
【従来の技術】
上述したSD(Secure digital)メモリカードは、コンテンツ配信サービスにより配信されたコンテンツやセキュアデータの受け皿として用いられる記録媒体である。そればかりか、SDメモリカードは、高い機密性をもって、配信されたセキュアデータを格納しておくことができる。この機密性の高さから、配信サービスの運営業者は、SDメモリカードに対して厚い信頼を寄せつつある。機密性担保のためのSDメモリカードの構成について簡単に説明する。SDメモリカードは、コンテンツを暗号化した状態のまま記録するユーザデータ領域(i)と、コンテンツに対応するセキュアなデータを記録するプロテクト領域(ii)とを備える。ユーザデータ領域は、SDメモリカードに接続された機器が自由にアクセスすることができる領域である。一方プロテクト領域は、SDメモリカードと機器との間の相互認証が成功しなければアクセスすることができない。この相互認証をクリアすることができるのは、配信サービスの運営業者からコンテンツのライセンス管理を委託された機器であり、不正な機器によるアクセスは、相互認証の段階で拒絶されるので、セキュアデータの機密性は保たれる。
【０００３】
ところでアクセスに相互認証が必要であるとはいえ、半導体メモリカードの一領域である以上、プロテクト領域の領域管理はファイルシステムによりなされる。代表的なファイルシステムである、FAT型ファイルシステムでの1つのファイルは、"クラスタ"と呼ばれる単位で管理される。一方セキュアデータは、重要な価値をもつものの、サイズは16バイト,64バイトというように小サイズであり、"クラスタ"と比較して、数百分の一程度の大きさに過ぎない。サイズの違いがあまりにも大きいので、1つのセキュアなデータを1つのファイルに格納するという格納方式をとると、領域の利用効率が非常に落ちるという問題点が生ずる。
【０００４】
そこで考えられるのは、複数のセキュアなデータを、束ねて1つのファイルに格納するという格納方式である。
【０００５】
【発明が解決しようとする課題】
しかしながら複数のセキュアなデータを1ファイルに格納するという格納方式は、歳月が経つにつれ、フラグメンテーションの発生(虫食い状の空き領域発生)に苛まれるという問題点がある。
配信サービスにて配信されるコンテンツの受け皿として、長きにわたりSDメモリカードを使用していると、SDメモリカードには多くのセキュアなデータが記録される。それにつれセキュアなデータを収録するファイルも数を増す。一方、ファイルに収録されるセキュアなデータは、対応するコンテンツの陳腐化に伴い、削除されるという運命を辿る。SDメモリカードの容量は、制限されていることが多く、新たなコンテンツの記録にあたっては、削除により得られた空き領域を記録先とするのが望ましい。ところが1つのファイルに複数セキュアなデータを格納するという格納方式では、空き領域は複数ファイルに虫食い状に出現するので、セキュアなデータを書き込むにあたって、どのファイルに空き領域が存在するのかを探し当てるという探索が必要となる。一方、プロテクト領域内のファイルアクセスにあたっては、機器とSDメモリカードとの相互認証が必要であり、この相互認証がオーバヘッドになって、ファイルアクセスの完遂までの時間を長引かせる。個々のファイルオープンにオーバヘッドが存在するため、空き領域をもったファイルを探索するという作業に時間を費してしまい、データの書き込み完遂までに、長時間を要するという問題がある。
【０００６】
本発明の目的は、複数のファイルに虫食い状に発生する空き領域に対して、高速にセキュアなデータを書き込むことができる半導体メモリカードを提供することである。
【０００７】
【課題を解決するための手段】
複数ファイル内に生じた空き領域を解消するには、ガーベッジコレクション処理(ファイル断片化の解消処理)を施し、空き領域を詰めてゆけばよいように思える。しかしこのような断片化解消には、ファイルの読み書きが多く伴う。一方、SDメモリカードを始めとする半導体メモリカードは、フラッシュメモリを内蔵しており、フラッシュメモリは、その書き換え回数が何十万回というように制限されているため、空き領域が1つ2つ発生するという理由でガーベッジコレクション処理を施すのは、SDメモリカードの寿命をちぢめてしまい、望ましくない。ガーベッジコレクション処理を施せないのなら、複数のファイルに虫食い状に発生する空き領域を書き込み先に選ぶしかない。
【０００８】
上記目的を達成するため、本発明にかかる半導体メモリカードは、接続される装置との間で正当性を相互に認証する認証回路と、相互認証により正当性が確認された場合に、当該装置によってアクセスされるプロテクト領域を備え、前記プロテクト領域には、複数のエントリーセットファイルと、１つのファイル状態管理ファイルとが記録されており、各前記エントリーセットファイルは、それぞれ、固定数のエントリー領域と、エントリー状態情報とを含み、エントリー状態情報は、１つのエントリーセットファイル内におけるそれぞれのエントリー領域に対応したフラグを具備することで、エントリー領域のそれぞれに対応したテーブル構造を有しており、各フラグはオフに設定されることにより、対応するエントリー領域が未使用であることを示し、オンに設定されることにより、対応するエントリー領域が使用中であることを示し、前記ファイル状態管理ファイルは、ファイル状態情報を含み、ファイル状態情報は、前記プロテクト領域に記録されているエントリーセットファイルのそれぞれに対応したフラグを具備することで、エントリーセットファイルのそれぞれに対応したテーブル構造を有しており、各フラグは、対応するエントリーセットファイルが未使用のエントリー領域を１つ以上有している第１状態であるか、又は、全てのエントリー領域が使用中である第２状態であるかを示し、ファイル状態管理ファイル及びエントリーセットファイルを構成しているクラスタのサイズは、前記半導体メモリカードにおける消去可能ブロックのサイズそのもの又は当該サイズの整数分の一に設定されていることを特徴としている。
【０００９】
【発明の実施の形態】
（第１実施形態）
以降、本発明に係る記録媒体の実施形態について、図面を参照しながら説明する。本実施形態では、説明の対象とする記録媒体にSDメモリカードを選んでいる。何故ならSDメモリカードは、セキュアなデータを高い機密性をもって格納することができ、本発明の特徴の説明に適しているからである。
【００１０】
本図におけるSDメモリカード１００は図１（ａ）に示すような外観形状を有し、長さ32.0 mm、幅24.0 mm、厚さ2.1 mmといった大きさ（切手サイズの大きさ）なので、ユーザはこのSDメモリカード１００を指先で把持することができる。SDメモリカード１００には、機器との接続のための９本のコネクタが設けられており、側面には、記憶内容の上書きを許可するか禁止するかを操作者が設定することができるプロテクトスイッチ１０１が設けられている。
【００１１】
図１（ｂ）は、SDメモリカード１００の階層構造を示す図である。本図に示すように、SDメモリカード１００の階層構造は、コンテンツと、これに対応する暗号鍵、権利管理情報をセキュアに格納するよう構成された物理層、FAT（FAT:File Allocation Table, ISO/IEC 9293）に基づき、クラスタを最小単位としてアクセスされるファイルシステム層、著作物を構成する暗号化コンテンツ、セキュアなデータが格納される応用層からなる。
【００１２】
図１（ｃ）は、SDメモリカード１００における物理層の構成を示す図である。本図に示すように、SDメモリカード１００の物理層は、システム領域１、Hidden領域２、プロテクト領域３、AKE処理部４、AKE処理部５、Ks復号化部６、Ks暗号化部７、ユーザデータ領域８からなる。
システム領域１は、Media Key Block(MKB)と、Media-IDとを格納した読出専用領域であり、ここに格納されたMKB、Media-IDを書き換えることはできない。SDメモリカード１００が他の機器と接続され、MKBとMedia-IDとが他の機器により読み出された場合、これらを読み出した他の機器が、MKB、Media-IDと、自身が所持しているデバイス鍵Kdとを用いて所定の演算を正しく行えば、他の機器は正しい暗号鍵Kmuを所持することができる。
【００１３】
Hidden領域２は、正解値となる暗号鍵Kmu、即ち、他の機器が正常なデバイス鍵Kdを用いて正常な演算を行なった場合、得られるべき暗号鍵Kmuを格納している領域である。
プロテクト領域３は、EEPROM等の不揮発メモリ上の一領域であり、暗号鍵及び権利管理情報等、セキュアなデータが格納される。
【００１４】
Authentication and  Key Exchange(AKE)処理部４、AKE処理部５は、機器とSDメモリカード１００との間でチャレンジ・レスポンス型の相互認証を行って、相手側の正当性を認証し、相手側が不当であれば処理を中断するが、相手側が正当であれば機器とSDメモリカード１００との間で暗号鍵（セッション鍵Ks）を共有する。機器による認証は3つのフェーズ（機器側で乱数を発生させ、得られた乱数をKmuを用いて暗号化して、チャレンジ値AとしてSDメモリカード１００に送信するChallenge1フェーズ、SDメモリカード１００側でこのチャレンジ値AをSDメモリカード１００内のKmuを用いて復号化し、得られた値をレスポンス値Bとして機器に送信するResponse1フェーズ、機器側で保持していたチャレンジ値Aを機器側のKmuで復号化して、SDメモリカード１００から送信されたレスポンス値Bと比較するVerify1フェーズ）からなる。
【００１５】
SDメモリカード１００による認証は3つのフェーズ(SDメモリカード１００で乱数を発生させ、得られた乱数をKmuを用いて暗号化して、この値をチャレンジ値Cとして機器に送信するChallenge2フェーズ、機器側においてこのチャレンジ値Cを機器内のKmuを用いて復号化し、得られた値をレスポンス値DとしてSDメモリカード１００に送信するResponse2フェーズ、SDメモリカード１００側で保持していたチャレンジ値CをSDメモリカード１００側のKmuで復号化して、機器から送信されたレスポンス値Dと比較するVerify2フェーズ）からなる。
【００１６】
この際、他の機器が不正な暗号鍵Kmuを用いて相互認証を行えば、フェーズVerify1,2において、チャレンジ値Aとレスポンス値Bとの不一致、チャレンジ値Cとレスポンス値Dとの不一致が判定され、相互認証が中断することなる。逆に相手側の正当性が認証されれば、AKE処理部４、AKE処理部５は、上述したチャレンジ値Aと、チャレンジ値Cとの排他的論理和をとり、これをKmuにて暗号化することにより、セッション鍵Ksを得る。
【００１７】
Ks復号化部６は、SDメモリカード１００と接続された他の機器から、プロテクト領域に書き込むべきセキュアなデータであって、暗号化されたものが出力された場合、セキュアなデータがセッション鍵Ksを用いて暗号化されているものとして、セッション鍵Ksを用いることにより復号を行う。そうして復号により得られたセキュアなデータが本来のセキュアなデータであるとして、プロテクト領域に書き込む。
【００１８】
Ks暗号化部７は、SDメモリカード１００と接続された他の機器から、セキュアなデータを読み出す旨のコマンドが出力されると、セッション鍵Ksを用いてプロテクト領域に格納されているセキュアなデータを暗号化した後に、そのコマンドを発行した他の機器に出力する。
ユーザデータ領域８も、プロテクト領域３同様、EEPROM等の不揮発メモリ上の一領域である。プロテクト領域３との違いは、機器の正当性が認証されるか否かに拘らず、当該機器によりアクセスされる点である。ユーザデータ領域８には、暗号化コンテンツが格納される。プロテクト領域から読み出された暗号鍵が正しい値であれば、ここに格納されている暗号化コンテンツは正しく復号されることなる。プロテクト領域に対するデータ読み書きには、Ks復号化部６による復号化と、Ks暗号化部７による暗号化とが伴うので、プロテクト領域３は、SDメモリカード１００と接続している機器がAKEプロセスを正しく行った場合のみ、当該機器により正規にアクセスされることなる。
【００１９】
続いて、本実施形態に係るSDメモリカードがどのようなファイル構成、ディレクトリ構成を有しているかについて説明する。
図２は、SDメモリカードが具備している、ユーザデータ領域及びプロテクト領域のファイル構成、ディレクトリ構成を示す図である。本実施形態においてSDメモリカードは、配信サービスにより配信されたコンテンツを、記録するという目的に用いられる。この配信されるコンテンツは、電子出版物であるものとする。図２における"SD_EPUB"は、SDメモリカードに記録されるべきコンテンツが電子出版物であることを意味している。電子出版物には、週刊誌タイプ、日刊紙タイプのものがある。週刊誌タイプ、日刊紙タイプの電子出版物は、一週間置き、一日置きに新たなコンテンツが配信されるので、電子出版物は、陳腐化のスピードが、音楽等のコンテンツと比べて極端に早いという特色がある。また出版物の配信では、出版物の記事や章・節、頁毎に、異なる暗号鍵での暗号化が施され、独立した暗号化コンテンツとして取り扱われることも多々ある。記事や章・節、頁が独立したコンテンツになるなら、一度に配信されるコンテンツの数が30,40になり、SDメモリカードに記録しておくべきコンテンツの数が極端に多いという特色がある。これらのことから、本実施形態に係るSDメモリカードは、コンテンツの削除や、新たなコンテンツの書き込みが高頻度に行われることになる。
【００２０】
続いてプロテクト領域のファイル構造、ディレクトリ構造について説明する。図２の右側に示すように、プロテクト領域のディレクトリ構造は、ルートディレクトリの直下に、"SD_EPUB"というサブディレクトリを配するというものであり、このサブディレクトリ"SD_EPUB"には、マスター管理ファイル"SD_EPUB.MMG"と、セキュアデータ格納ファイル"EPUB001.KEY","EPUB002.KEY","EPUB003.KEY"とが配置される。図２の左側に、ユーザデータ領域のディレクトリ構造を示す。本図におけるユーザデータ領域の"SD_EPUB"ディレクトリには、暗号化されたコンテンツ"Content001","Content002","Content003","Content004"が配置されている。"SD_EPUB"ディレクトリ配下のサブディレクトリには、暗号化コンテンツ"Content005","Content006","Content007"が配置されている。
【００２１】
先ずセキュアデータの格納ファイルについて説明する。セキュアデータ格納ファイルは、それぞれEPUB001.KEY,EPUB002.KEY,EPUB003.KEYといったファイル名が付されている。EPUB001.KEY,EPUB002.KEY,EPUB003.KEYにおける"001","002","003"というシリアル番号は、プロテクト領域においてそのファイルを一意に示すファイル番号である。
【００２２】
尚、以降の説明において任意のファイル番号xxxにて特定されるセキュアデータ格納ファイル(任意のセキュアデータ格納ファイル)を"EPUBxxx.KEY"と表記する。"EPUBxxx.KEY"のうち、"001","002","003"といったファイル番号で指示されるものは、ファイル番号を組み込んだファイル名"EPUB001.KEY,EPUB002.KEY,EPUB003.KEY"にて表記する。
【００２３】
図３は、EPUBxxx.KEYの内部構成を示す図である。図３に示すようにEPUBxxx.KEYは、nビットのビットマップと、n個のKey&Rule Entryとからなる。
Key&Rule Entry#1,#2,#3,#4・・・・・は、ユーザデータ領域に記録された複数の暗号化コンテンツのそれぞれと1対1に対応しており、対応するコンテンツについての暗号鍵や権利管理情報といったセキュアなデータが書き込まれる固定長の領域である。権利管理情報は、利用条件(Usage Rule)とも呼ばれる。コンテンツをどのように利用するかという条件を設定することにより、コンテンツについての著作権管理を行うのが、この権利管理情報である。本実施形態においてコンテンツは出版物であるので、その利用には、出版物の再生やコピーといったものがある。暗号鍵は、コンテンツの再生といった利用を行う際、一旦コンテンツの暗号化を解くための情報である。これら暗号鍵及び権利管理情報は、コンテンツについての著作権管理を実現する上で、高い機密性が求められるので、暗号化された状態でKey&Rule Entryに記録されている。この暗号化がなされる都合上、暗号鍵及び権利管理情報の組みは、暗号化方式に基づく固定長の大きさ(例えば16バイト、32バイト、64バイト)になっている。暗号鍵及び権利管理情報の大きさが、固定長であるので、Key&Rule Entryは、固定長に定められている。
【００２４】
図３においてKey&Rule Entryに付された、#1,#2,#3,#4・・・・・#nといった番号は、ファイル内のローカルな番号である。図４は、これら複数のKey&Rule Entryと、ユーザデータ領域における複数のコンテンツとの対応関係を示す図である。本図における矢印AK1,AK2,AK3は、コンテンツとKey&Rule Entryとの対応関係を象徴的に示している。即ち、ユーザデータ領域におけるContent001は『Key&Rule Entry#1』に格納されているセキュアなデータと対応しており、Content002は、『Key&Rule Entry#2』に格納されたセキュアなデータ、Content003は『Key&Rule Entry#3』に格納されたセキュアなデータに対応していることを示す。上述したように、本実施形態では配信された電子出版物の記録に用いられるという性格上、コンテンツの陳腐化は早い。そのため、各コンテンツに対応するKey&Rule Entryが、空き領域になったり、新たなセキュアなデータが書き込まれる頻度も高い。
【００２５】
nビットのビットマップは、各Key&Rule Entryの状態管理のために導入された情報であり、各Key&Rule Entryに割り当てられた1ビットのフラグをn個配置してなる。図５は、EPUBxxx.KEY内のビットマップの一例を示す図である。本図のビットマップにおいて、先頭からvビット目のフラグ(1≦v≦n)は、EPUBxxx.KEYにおけるv個目のKey&Rule Entryの状態を示す。v個目のKey&Rule Entryは、ローカル番号vにより特定されるKey&Rule Entryであり、以降Key&Rule Entry"#v"と称す。vビット目のフラグの値が"1"であるなら、Key&Rule Entry#vは、セキュアなデータが記録済みであり、"使用中"であることを意味する。vビット目のフラグの値が"0"であるなら、Key&Rule Entry#vは、セキュアなデータが未記録であるか、又は削除済みであり、"未使用(空き)"であることを示す。ビットマップの先頭に最も近い位置にある値"0"のフラグを探索し、この値"0"のフラグのビット位置をvビット目として、v番目のKey&Rule Entry#vにセキュアなデータを書き込めば、空き領域という隙間を詰めるようにセキュアなデータが書き込まれてゆく。
【００２６】
EPUBxxx.KEY内のビットマップの具体的な設定例について説明する。この設定例で想定するのは、図６に示すような事例である。この事例では、プロテクト領域にEPUB001.KEY〜EPUB005.KEYといった5つのファイルが記録されている。本図における表記法は以下の通りである。即ち本図におけるハッチングは、使用中であるKey&Rule Entryを象徴的に示しており、白抜きは、未使用であるKey&Rule Entryを象徴的に示している。この表記法に従って、図６を見てゆくと、EPUB001.KEY〜EPUB004.KEYまでを構成するKey&Rule Entryは、全て使用中になっている。EPUB005.KEYは、3つ目のKey&Rule Entry#3、5つ目のKey&Rule Entry#5が未使用であるが、残りは使用中になっている。
【００２７】
図７は、図６のようにEPUB005.KEY内のKey&Rule Entryが設定されている場合、EPUB005.KEY内のビットマップがどのように設定されるかを示している。
3つ目のKey&Rule Entry#3、5つ目のKey&Rule Entry#5が未使用であるので、ビットマップにおける3ビット目のフラグ、5ビット目のフラグは値「0」に設定されている。ビットマップがこのように設定されているので、EPUB005.KEYにこれからセキュアなデータを書き込もうとする場合、先頭に一番近い値「0」のフラグとして、3ビット目のフラグが探索され、この3ビット目のフラグに対応するKey&Rule Entry#3にセキュアなデータが書き込まれることになる。以上でEPUBxxx.KEYについての説明を終え、続いてSD_EPUB.MMGについて説明する。
【００２８】
SD_EPUB.MMG(Master ManaGer)は、1ビットのフラグをm個配置してなるビットマップを有する。mビットの"m"というのは、プロテクト領域に記録されるEPUBxxx.KEYの総数である。図８は、SD_EPUB.MMG内のビットマップを示す図である。本図のビットマップにおいて先頭からuビット目にあるフラグに、ハッチングを示している。このuビット目のフラグの値(1≦u≦m)は、ユーザデータ領域における複数EPUBxxx.KEYのうち、u個目のEPUBxxx.KEYの状態を示す。u個目のEPUBxxx.KEYは、ファイル番号uにより特定されるEPUBxxx.KEYであり、EPUB"#u".KEYと称す。図中の2本の矢印ty1,ty2は、このuビット目のフラグが2通りの値をとりうることを象徴的に示す。mビットビットマップにおけるuビット目のフラグの値が"1"であるなら、矢印ty1に示すようにEPUB#u.KEY内の複数Key&Rule Entryは、セキュアなデータにより満たされていることを示す。一方、uビット目のフラグの値が"0"であるなら、矢印ty2に示すようにEPUB#u.KEYが空きのKey&Rule Entryを少なくとも1つもっているか(i)、又は、EPUB#u.KEYが存在しない(ii)ことを示す。
【００２９】
SD_EPUB.MMG内のmビットビットマップにおいて先頭に最も近い値"0"のフラグを探索し、この値"0"のフラグのビット位置をuビット目として、u個目のEPUB#u.KEYをセキュアなデータの書込先にえらべば、EPUBxxx.KEYの空き領域はシリアル番号が若い順に埋められてゆくことになる。
uビット目のフラグの値が"0"であることは、EPUB#u.KEYが空きのKey&Rule Entryを少なくとも1つもつこと(i)、EPUB#u.KEYが存在しないこと(ii)の両方を示すものだが、これら2つの状態(i)(ii)の違いはどうやって見分けるのだろうか。それは、このEPUB#u.KEYが配されたディレクトリについてのディレクトリエントリーを参照すれば簡単に見分けられる。つまりEPUB#u.KEYが存在するのなら、この"#u"というファイル番号を冠した"EPUB#u.KEY"というファイル名がディレクトリエントリーに存在する筈である。"EPUB#u.KEY"というファイル名がディレクトリエントリーに存在し、かつ、uビット目のフラグの値が"0"であることは、EPUB#u.KEYが空きのKey&Rule Entryを少なくとも1つもつことを意味する。逆に"EPUB#u.KEY"というファイル名がディレクトリエントリーに存在せず、かつ、uビット目のフラグの値が"0"であることは、EPUB#u.KEYそのものが存在しないことを意味する。このようにディレクトリエントリーにおけるEPUB#u.KEYのファイル名の有無を参照することにより、状態(i)(ii)の区別がつく。
【００３０】
続いてSD_EPUB.MMG内のビットマップの具体的な設定例について説明する。この設定例で想定するのは、図６に示した事例である。図９は、EPUB001.KEY〜EPUB005.KEYが図６の状態になっている場合において、SD_EPUB.MMG内のビットマップがどのように設定されるかを示す図である。プロテクト領域に記録されているファイルは5つまでであり、6個目以降は存在しないので、EPUB006.KEY以降に対応するフラグ、即ち、SD_EPUB.MMG内のビットマップにおいて6ビット目以降はオール「0」になっている。一方、EPUB001.KEY〜EPUB004.KEYは、包含されているKey&Rule Entryが全て使用中を示す値「1」なので、これらに対応する1ビット目から4ビット目までのフラグまではオール値「1」になっている。EPUB005.KEYは、ファイル自体は存在するものの、3つ目のKey&Rule Entry#3と、5つ目のKey&Rule Entry#5とが未使用であるので、Key&Rule Entry#5に対応する5ビット目のフラグは、値「0」に設定されている。図９の下側に、EPUB001.KEY〜EPUB005.KEYが配置されたディレクトリにおけるディレクトリエントリーの設定例を示す。このディレクトリエントリーには、EPUB001.KEYからEPUB005.KEYまでのファイル名や拡張子、記録日時が記述されているか、EPUB006.KEY以降のEPUBxxx.KEYについては、ファイル名が示されていない。このディレクトリエントリーの記載と、SD_EPUB.MMGにおけるビットマップの設定とを統合すると、空きのKey&Rule Entryを少なくとも1つもっているKey&Rule Entryは、EPUB005.KEYであることがわかる。
【００３１】
このことからSD_EPUB.MMG内のビットマップにおいて先頭に最も近い値「0」のフラグを探索し、そのフラグのビット位置uに対応するEPUB#u.KEYをオープンするという処理を行えば、未使用のKey&Rule Entryを少なくとも1つ有するEPUB005.KEYが、プロテクト領域に対する1回のアクセスでオープンされることになる。ここまでの説明だけ読むと、1つの疑問に突き当たる。それは、『新たなデータの書き込みを行った後に、SD_EPUB.MMGのビットマップ側の更新が必要になるなら、それだけ半導体メモリカードの書き換え回数も増え、半導体メモリカードの寿命を縮めることになるのではないか』という疑問、つまり書き換え回数増大に伴う、弊害発生についての疑問である。確かに、SDメモリカードでは、数十万回というように書換回数に限界があり、SD_EPUB.MMGの追加により、書換回数を増えてしまうという事実は看過できない。そこでSD_EPUB.MMGの各ビットの状態が更新される確率について検討する。例えばKey&Rule Entryの総数nが10個である場合、これらKey&Rule Entryのうち、9個のKey&Rule Entryが空き領域であっても、1個のKey&Rule Entryが空き領域であっても、SD_EPUB.MMGのuビット目のフラグは、値「0」の状態を保てば良い。10個のKey&Rule Entryが全て埋まるまでの間、SD_EPUB.MMGに対する更新は一切不要となる。つまりKey&Rule Entryが10個なら、Key&Rule Entryの更新10回以上に対して、1回の割合でSD_EPUB.MMGを更新すればよい(この10回以上に対し1回という割合は、Key&Rule Entryの総数nが10個である場合の一例であり、総数nが100個であれば100回以上につき1回、総数nが200個であれば200回以上につき1回であることはいうまでもない)。そのため、SD_EPUB.MMGが配置された領域の寿命を縮めることはない。
【００３２】
続いてユーザデータ領域における変換テーブル格納ファイルについて説明する。変換テーブル格納ファイルは、これらコンテンツが、どのKey&Rule Entryに対応するかを示す。つまりコンテンツに付与された"001","002"といった番号と、Key&Rule Entryのグローバル番号との対応付けを示す。Key&Rule Entryのグローバル番号とは、EPUBxxx.KEYのファイル番号"u"と、Key&Rule Entry内のローカル番号"v"と、EPUBxxx.KEY内のKey&Rule Entryの数nをオペランドとした以下の式1から導かれる番号である。
｛式1｝
s = n・(u-1) + v
図１０は、図６に示したEPUB005.KEY内の3個目のKey&Rule Entryと、ユーザデータ領域に記録されている1つ目のコンテンツ001とが対応している場合、変換テーブル格納ファイルがどのように設定されるかを示す図である。EPUB001.KEYからEPUB004.KEYまでのそれぞれのファイルには、Key&Rule Entryがn個(n=10)が含まれるので、n・(u-1)は、図中の注釈1に示すように40(=10・(5-1))となる。更にEPUB005.KEYの3つ目のKey&Rule Entryが書込先になるので、v=3となる。
【００３３】
よってEPUB005.KEYのKey&Rule Entry#3のグローバル番号は、"43(=10・(5-1)+3)"となる。このグローバル番号"43"のKey&Rule Entryを、コンテンツ001に対応させたい場合、変換テーブル格納ファイルには、コンテンツ001の番号"001"と、グローバル番号"43"との対応を記述しておく。これにより、コンテンツ001から、EPUB005.KEY内の3個目のKey&Rule Entryを導くという作業が簡易に行われる。図中の矢印vy1,2,3,4は、コンテンツの番号からKey&Rule Entryを導くまでの導出過程を象徴的に示している。本図における注釈2に示すように、矢印vy2に示すグローバル番号"43"から、矢印vy3,4に示すようにファイル番号"5"と、ファイル内ローカル番号"3"とを得て、これらの番号から、EPUB005.KEY内のKey&Rule Entry#3をアクセスするのである。
【００３４】
以上のように本実施形態によれば、複数EPUBxxx.KEYのうち、どれに未使用のKey&Rule Entryが存在しているかがSD_EPUB.MMG内のビットマップに示されているので、複数EPUBxxx.KEYに虫食い状に空きのKey&Rule Entryが存在している場合でも、このSD_EPUB.MMG内のビットマップを参照することにより、空き領域をもったファイルの特定を高速に行うことができる。ファイルアクセスは、SD_EPUB.MMGのオープンと、空き領域をもつEPUB#u.KEYのオープンの計2回になるので、本SDメモリカードをアクセスする装置は、空きのエントリー領域をもつEPUB#u.KEYを捜し求めて、複数EPUBxxx.KEYをオープンするという手間から解放され、新たなコンテンツの書き込みに要する時間を短縮することができる。
【００３５】
（第２実施形態）
第２実施形態では、1つのファイルに収録すべきKey&Rule Entryの数を幾つにするかを定める実施形態である。Key&Rule Entryのサイズをsize、クラスタサイズをSCとした場合、Key&Rule Entryの数n、EPUBxxx.KEYの数mは以下の式を満たす値に設定する。
{式2}
SC≧n×size+n
{式3}
SC≧m
<式2>における"n×size"は、n個のKey&Rule EntryがEPUBxxx.KEY内で占めているサイズであり、"n"は、EPUBxxx.KEY内のビットマップが占めているサイズである。これらの和が「クラスタサイズ以下」ということは、EPUBxxx.KEYを1つのクラスタからなるファイルとして構成することを意味する。一方、式3におけるmは、SD_EPUB.MMGにおけるmビットのビットマップのサイズである。これが「クラスタサイズ以下」ということは、SD_EPUB.MMGもまた、1つのクラスタからなるファイルとして構成することができることを意味する。
【００３６】
以上の式を満たすように、m,nを設定すれば、第１実施形態に示したSD_EPUB.MMG及びEPUB001.KEY,EPUB002.KEY,EPUB003.KEY・・・・・のそれぞれを、1つのクラスタからなるファイルとして構成することができる。図１１（ａ）は、1つのクラスタからなるファイルとして構成されたSD_EPUB.MMG及びEPUB001.KEY,EPUB002.KEY,EPUB003.KEY・・・を示す図である。本図においてクラスタ001〜006という6つのクラスタが記述されている。この6つのクラスタのうち、クラスタ001にはSD_EPUB.MMGが記録され、クラスタ002にはEPUB001.KEYが、クラスタ002にはEPUB002.KEYは、クラスタ003にはEPUB003.KEYがそれぞれ記録されている。つまり、クラスタに1つに対して、1つのファイルが割り当てられることを意味する。
【００３７】
さて、このクラスタのサイズ自体は、どのような値に設定すべきであろうか。クラスタは、ファイルシステム層における領域管理の単位であり、1つのファイルは、このクラスタを必ず1つ占有する。一方、半導体メモリカードの物理層は、データ書き込みが可能な最小単位が定められていることが多い。この書き込み可能な最小単位を"消去可能ブロック"という。以降、32個のセクタ(16Kbyte)からなる消去可能ブロックを一例にして説明する。半導体メモリカードに消去可能ブロックが存在する場合、記録装置は、この32個のセクタを一括して白紙の状態に戻してからでないと、新たなデータを書き込むことはできない。そのため、クラスタサイズの決定にあたっては、消去可能ブロックとの関係を考慮することが重要である。
【００３８】
そこで本実施形態では、クラスタのサイズを消去可能ブロックのサイズの1/xに設定する。図１１（ｂ）は、消去可能ブロックと、クラスタとの関係を示す図であり、クラスタサイズは、消去可能ブロックのサイズである16KByteの1/xの大きさ(32セクタの1/x)に定める。図１１（ｃ）は、x=1と定められた場合のクラスタを示す図であり、図１１（ｄ）は、x=16と定められた場合のクラスタを示す図である。
【００３９】
以上のように本実施形態によれば、クラスタの大きさを消去可能ブロックの1/xの大きさに定め、このクラスタに収まるように、Key&Rule Entryの個数n、EPUBxxx.KEYの個数mを定める。Key&Rule Entry及びSD_EPUB.MMGの更新にあたって、書き込みを行うべき消去可能ブロックの数は必要最低限となる。故に本実施形態では、消去可能ブロックの寿命をいたずらに縮めることはない。
【００４０】
（第３実施形態）
第３実施形態は、ボリューム管理情報の変動が生じた場合、2つの消去可能ブロックの境界を跨ぐように、クラスタが配置されてしまうという不都合を回避する技術を開示する。
図１２（ａ）は、プロテクト領域のフォーマットを示す図である。プロテクト領域は、ファイルシステムにて管理されるため、図１２（ａ）に示すように先頭部にボリューム管理情報が配されており、このボリューム管理情報にファイル領域が後続している。このボリューム管理情報は、ISO/IEC 9293に準拠したものであり、破線の矢印hf1に示すように、マスタブートレコード＆パーティションテーブルセクタ、パーティションブートセクタ、二重化ファイルアロケーションテーブル(FAT)、ルートディレクトリエントリからなる。このうち、二重化FATは、プロテクト領域に含まれる複数のクラスタに対応づけられ、クラスタと、クラスタとの間のリンク関係を示す。このボリューム管理情報の直後以降をファイル領域という。第１実施形態に示したSD_EPUB.MMGや複数のEPUBxxx.KEYは、このファイル領域に配置されることになる。図１２（ａ）では、図１１（ａ）に示した複数クラスタ、つまりSD_EPUB.MMGやEPUB001.KEY、EPUB002.KEY、EPUB003.KEYが記録された複数クラスタ001,002,003,004・・・・・が、このファイル領域に記録されている・
ボリューム管理情報内の情報要素うち、二重化ファイルアロケーションテーブル(FAT)はボリューム管理情報変動の原因になるものであり、より詳しく説明する。二重化FATは、ISO/IEC 9293に準拠した2つのFATからなる。各FATは、各クラスタに対応づけられた複数のFATエントリーからなる。各FATエントリーは、対応するクラスタが使用中であるか、未使用であるかを示すものであり、対応するクラスタが未使用であれば、そのファイルエントリーには、"0"が設定され、対応するクラスタが使用中であれば、リンク先のクラスタ番号が設定される。
【００４１】
次に、ボリューム管理情報の変動がどのような原因で生じるかについて説明する。プロテクト領域に、データを格納するにあたって、プロテクト領域のデータサイズをユーザや記録装置が任意に決める機会が多々ある。ユーザの要望に応じてプロテクト領域のサイズを変化させた場合、プロテクト領域に含まれるクラスタ数が増減する。クラスタ数が増減すれば、それらクラスタに対応するエントリーからなるFATのサイズも増減し、このFATを含むボリューム管理情報のサイズも、増減することなる。こうしてボリューム管理情報のサイズが増減すると、ボリューム管理情報に後続するファイル領域の先頭アドレスも、変動することなる。SD_EPUB.MMGやEPUB001.KEY,EPUB002.KEY,EPUB003.KEYが記録されるべきファイル領域の先頭アドレスは、プロテクト領域のサイズに応じて変動するものなので、無論このファイル領域に含まれる各クラスタの先頭アドレスもプロテクト領域のサイズに応じて変動する。
【００４２】
クラスタの先頭アドレスが、プロテクト領域のサイズに応じて変動するとなると、2つの消去可能ブロックの境界をまたぐように、クラスタが配置されたり、ボリューム管理情報の終端部分と、ファイル領域の先頭に位置するクラスタとが同じ消去可能ブロックに配置されることも有り得る。
このような事態を避けるべく、第３実施形態では、第２実施形態で述べた第１の改良点に続く第２の改良点を提案する。
【００４３】
第２の改良点とは、プロテクト領域において、クラスタのy倍のサイズの領域を、ボリューム管理情報の記録に割り当てるという改良である。図１２（ｂ）は、s個の消去可能ブロックに含まれるs・x個のクラスタのうち、y個のクラスタをボリューム管理情報の記録に割り当てる場合を想定した図である。y個のクラスタをボリューム管理情報の記録に割り当てれば、s個の消去可能ブロックの内部領域のうち、y/xの部分が、ボリューム管理情報に占有されることなり、残る(s・x-y)/xの内部領域が、ファイル領域に割り当てられることなる。
【００４４】
ボリューム管理情報を、クラスタのy倍のサイズに設定することにより、s個の消去可能ブロックには、ボリューム管理情報と、s・x-y個のクラスタとが詰め込まれ、クラスタが2つの消去可能ブロックの境界を跨ぐことはない。
図１２（ｃ）は、x=1と設定された場合、ボリューム管理情報の記録にどれだけのクラスタが割り当てられるかを示す図であり、図１２（ｄ）は、x=16と設定された場合、ボリューム管理情報の記録にどれだけのクラスタを割り当てるかを示す図である。これらの図からも明らかなように、ボリューム管理情報の設定により複数のクラスタが、複数の消去可能ブロックに詰め込まれているので、何れのクラスタも消去可能ブロックの境界を跨ぐことはない。
【００４５】
図１３は、かかるサイズ調整がなされたプロテクト領域のレイアウトをより詳細に示した図である。図１３において、パーティション管理領域とは、ボリューム管理情報の情報要素のうちマスタブートレコード＆パーティションテーブルセクタが記録される領域であり、システム領域とは、ボリューム管理情報のうちパーティションブートセクタ、二重化FAT、ルートディレクトリエントリが記録される領域である。本図においてパーティション管理領域のサイズをNOM、パーティションブートセクタのサイズをRSC、二重化FATのサイズをSize1×2、ルートディレクトリエントリのサイズをRDE、総セクタサイズをTS、クラスタに含まれるセクタの個数をSCと表現している。
【００４６】
この図１３において、二重化FATに含まれるFATのサイズSize1は、TSに依存したものとなる。具体的にいうなら、以下の数式11により算出される値となる。
｛数式11｝
FAT12の場合:Size1=(((((TS-(RSC+RDE))/SC)+2)×12/8)+511)/512
FAT16の場合:Size1=(((((TS-(RSC+RDE))/SC)+2)×16/8)+511)/512
ここでFAT12とは、FATエントリー1つ当たりに12ビットを割り当てることをいい、FAT16とは、FATエントリー1つ当たりに16ビットを割り当てることをいう。
【００４７】
数式11において、(TS-(RSC+RDE))/SCは、ファイル領域の記録に必要なクラスタ数であり、これにインディケータ数2を加算して、FATエントリーのバイト長(12又は16)を乗じ、且つ8で割ることにより、FATのバイト長を算出している。この算出結果に、オフセット値である511Byteを足し合わせ、セクタのバイト長512で割ることにより、1つ当たりのFATを格納するのに必要なセクタ数を算出している。
【００４８】
図１３において特に注意すべきは、パーティション管理領域のサイズであるNOMである。NOMは、パーティション管理領域と、システム領域とが、互いに異なるクラスタに属するように、"SC＋α"という値に設定される。
SC+αのαをどのように設定するかであるが、αは、以下に示すように、RSCと、Size1×２と、RDEとの和がSCの整数倍になるように、(RSC+RDE＋Size1×2)をSCで割り、その余りをSCから引くことにより求められる。これらのことを勘案すると、NOMは、数式12に示すように算出される。
【００４９】
｛数式12｝
NOM=(SC-(RSC+RDE+Size1×2)%SC)+SC
こうしてαに定めると、パーティション管理領域及びファイル領域は、複数の消去可能ブロックに丁度収まる形となり、システム領域と、ファイル領域との境界が、消去可能ブロックの境界と一致することなる。こうした境界一致がはかれるので、後続する全てのクラスタの境界は、消去可能ブロックの境界に一致することになる。
【００５０】
図１３において、ファイル領域におけるクラスタ001〜003には、それぞれSD_EPUB.MMG、EPUB001.KEY、EPUB002.KEYが記録されている。つまりクラスタ001にはSD_EPUB.MMGが、クラスタ002にはEPUB001.KEY、クラスタ003にはEPUB002.KEYがそれぞれ記録されている。上述したようにx=1であるので、クラスタ001,002,003は、それぞれ消去可能ブロックe1,e2,e3に対応している。SD_EPUB.MMGと、未使用Key&Rule Entryを含むEPUB001.KEYとを読み出す場合、これらはそれぞれ1つの消去可能ブロックe1,e2上に存在するので、これら2つの消去可能ブロックを読み出せば済む。またSD_EPUB.MMGと、未使用Key&Rule Entryを含むEPUB#u.KEYとを書き換える場合も、それらの2つの消去可能ブロックe1,e2を書き換えれば済む。読み出すべき消去可能ブロック及び書き換えるべき消去可能ブロックの数が必要最低限数(2つ)になるので、不揮発メモリの寿命をいたずらに縮めることもない。
【００５１】
以上のように本実施形態によれば、ボリューム管理情報のサイズに変動があっても、消去可能ブロックの境界と、クラスタのサイズとを一致させるので、クラスタの書き換えを短期間に完遂することができる。また、消去可能ブロックの消去回数を削減することも可能になる。
（第４実施形態）
第４実施形態は、第１実施形態〜第３実施形態に示した特徴を有するSDメモリカードに対して、記録処理、再生処理を行う装置(便宜的に記録装置とよぶ)に関する実施形態である。記録装置は、図１４（ａ）に示すような民生用音響機器、図１４（ｂ）に示すようなパソコン等の情報機器である。本実施形態の記録装置により、SDメモリカードに書き込まれるのは、暗号化コンテンツと、この暗号化コンテンツについてのセキュアなデータである。暗号化コンテンツは、再生回数が制限されたものであり、セキュアなデータは、暗号化を解除するための暗号鍵と、再生処理の可能回数を示す再生回数情報とを含む。これら暗号鍵、再生回数情報の読み書きを行うよう構成された記録装置の内部について説明する。図１５は、第４実施形態に係る記録装置の内部構成を示す図である。本図に示すように記録装置は、内部メモリ１０、ブラウザ部１１、セキュア処理部１２、暗号化解除部１３、再生部１４、制御部１５からなる。
【００５２】
内部メモリ１０は、SDメモリカードのプロテクト領域から読み出されたEPUB#u.KEY、SD_EPUB.MMGを一旦格納しておくためのDRAM(Dynamic Random Access Memory),SDRAM(Synchronous Dynamic Random Access Memory)である。EPUB#u.KEY内に含まれる何れかのKey&Rule Entryを書き換えたり、ビットマップの設定をかえたりする場合は、この内部メモリにEPUB#u.KEYが読み出され、内部メモリ上で書き換えや設定が行われた後、EPUB#u.KEYはSDメモリカードのプロテクト領域に書き戻される。同様にSD_EPUB.MMGのビットマップの設定を変える場合は、この内部メモリにSD_EPUB.MMGが読み出され、設定を変えた後、SD_EPUB.MMGは再度SDメモリカードに書き戻される。内部メモリ上でEPUB#u.KEYやSD_EPUB.MMGの書き換えを行うのは、DRAMやSDRAMのアクセス速度は、SDメモリカードのそれより格段に早いため、SDメモリカードに対して直接更新処理を行うより、はるかに効率がよいという理由による。SDメモリカードに記録されたEPUB#u.KEY、SD_EPUB.MMGを読み出して、内部メモリに配置するという処理がいわゆるファイルオープンである。またEPUB#u.KEY、SD_EPUB.MMGがSDメモリカード上に無い場合に、これらのファイルを内部メモリ上で作成するという処理がいわゆるファイルクリエイトである。
【００５３】
ブラウザ１１は、SDメモリカードのファイル領域に格納されているコンテンツの一覧表示を行うと共に、再生や削除の対象となるものの指定を受け付ける。ユーザからの操作受け付けは、ボタンやキー、タッチパネル等のポインティングデバイスに対してなされたユーザ操作を検出することによりなされる。
セキュア処理部１２は、SDメモリカード内のプロテクト領域に対するデータ書き込みやデータ読み出しに先立って、SDメモリカード内のAKE処理部４、AKE処理部５、Ks復号化部６、Ks暗号化部７と、相互認証を行う。相互認証に失敗すれば、記録装置によるデータ読み出し／データ書き込みは否応無しに中断する。プロテクト領域に対するデータ書き込み／データ読み出しは、相互認証の成功を要件としているので、プロテクト領域に記録されたデータの機密性は保たれるのである。セキュア処理部１２による相互認証を前提としたデータ書き込みをセキュアライトといい、セキュア処理部１２による相互認証を前提としたデータ読み出しをセキュアリードという。
【００５４】
暗号化解除部１３は、内部メモリに読み込まれたKey&Rule Entry上に存在する暗号鍵を用いて、再生すべきコンテンツの暗号化を解除する。
再生部１４は、暗号化が解除されたコンテンツの再生を行う。コンテンツの再生開始後、再生部は、再生経過時間のカウントを継続して行い、再生経過時間が予め定められた閾値を越えれば、その旨を制御部１５に通知する。この閾値は、一回の再生とみなされるための最低の時間長であり、これを制御部１５に通知することにより、再生可能回数のデクリメントを制御部１５に促すのである。
【００５５】
制御部１５は、実行可能形式のプログラムを格納したROMと、それを実行するプロセッサ(CPU)とからなり、SDメモリカードに対する書込処理、読出処理、削除処理を実行する。先ず書込処理について説明する。図１６は、書込処理を実現する処理手順を示すフローチャートである。このフローチャート示された処理手順をなすプログラムをCPUに実行させることで、書込処理が実現される。本フローチャートにおいてステップＳ１〜ステップＳ４は、コンテンツ本体側の書き込み処理を実行するものである。ステップＳ１においてコンテンツを配すべきディレクトリを、ユーザデータ領域の中から決定し、ステップＳ２においてそのディレクトリにおけるコンテンツの番号#tを決定する。ステップＳ３においてコンテンツ番号#tを一部に含んだ名前をもったファイル#tをオープンして、ステップＳ４においてコンテンツ#tを暗号化して、オープンされたファイル#tに書き込む。
【００５６】
続くステップＳ５〜ステップＳ２０は、コンテンツに対応するセキュアなデータ(暗号鍵、再生可能回数)をプロテクト領域に書き込む処理手順である。このうちステップＳ５〜ステップＳ１６は、書き込みにあたって、プロテクト領域にある複数EPUBxxx.KEYのうち、どれを書き込みの対象にするかを定めるものである。先ず、ステップＳ５においてプロテクト領域に対してセキュアリードを実行することにより、記録装置の内部メモリ上にSD_EPUB.MMGを得る。続くステップＳ６は、SD_EPUB.MMGによる管理の限界である場合の例外処理を規定する。内部メモリ上に得られたSD_EPUB.MMG内のmビットビットマップの値がオール「1」であるかを判定する。もしオール値「1」であれば、本フローチャートの処理を終了する。
【００５７】
たった1つでも、値「0」のフラグが存在すれば、ステップＳ７において値「0」のフラグであって、mビットのビットマップ先頭に最も近いもののビット位置をuビットとして検出する。そして、このuビットに対応するEPUB#u.KEYが存在するかどうかの判定をステップＳ８で行う。既に存在する場合は、ステップＳ１０においてプロテクト領域内のプロテクト領域をセキュアリードして内部メモリ上にEPUB#u.KEYを得て、ステップＳ１１に移行する。存在しない場合は、EPUB#u.KEYは新規作成すべきであり、ステップＳ９において EPUB#u.KEYをクリエイトして内部メモリ上にEPUB#u.KEYを得て、ステップＳ１１に移行する。
【００５８】
ステップＳ１１において内部メモリ上のEPUB#u.KEY内のビットマップは、オール「1」であるかを判定する。EPUB#u.KEYの全てのKey&Rule Entryが使用中であるのに、SD_EPUB.MMG側のuビット目のフラグが値「0」になっているという瑕疵がもしかしたら存在するかもしれない。レアケースであるが、そのような瑕疵が全くないとはいいきれないので、ステップＳ１１での判定を行う。ステップＳ１１においてオール「1」と判定されたなら、ステップＳ１２において値「0」のフラグであって、mビットのビットマップ先頭に次に近いもののビット位置をuビットとして検出し、ステップＳ８に再度移行する。ステップＳ１０〜ステップＳ１２の処理を繰り返しを行えば、値「0」のフラグを有したEPUB#u.KEYに到達する筈である。値「0」のフラグを有したEPUB#u.KEYに到達すれば、ステップＳ１３に移行する。
【００５９】
ステップＳ１３〜ステップＳ１６は、未使用のKey&Rule Entryにセキュアなデータを書き込むという処理を実現する。ステップＳ１３では、内部メモリ上のEPUB#u.KEY内のビットマップにおける値「0」のフラグであって、ビットマップ先頭に最も近いもののビット位置をvビットとして検出し、ステップＳ１４では、コンテンツについての暗号鍵と、再生可能回数とを内部メモリ上のEPUB#u.KEYにおけるKey&Rule Entry#vに書き込む。ステップＳ１５において内部メモリ上のEPUB#u.KEY内のビットマップにおけるvビット目のフラグを値「1」に設定し、ステップＳ１６において内部メモリ上で更新されたEPUB#u.KEYに対するセキュアライトを実行して、このEPUB#u.KEYをプロテクト領域内に書き込む。
【００６０】
ステップＳ１５においてuビット目のフラグが値「1」に設定されると、EPUB#u.KEY内のビットマップがオール「1」になったかもしれない。1/(n-1)以上の割合であるが、そのよう場合も発生し得るので、ステップＳ１７において、この可能性を判定する。ステップＳ１７は、EPUB#u.KEY内のビットマップがオール「1」になった場合に、ステップＳ１８−ステップＳ１９を経由してからステップＳ２０を行わせ、そうでない場合に、ステップＳ１８−ステップＳ１９を経由せずにステップＳ２０を行わせる判定ステップである。
【００６１】
ステップＳ１８では内部メモリにおけるSD_EPUB.MMG内のuビット目のフラグを値「1」に設定し、ステップＳ１９では、内部メモリにおけるSD_EPUB.MMGに対するセキュアライトを実行する。以上の手順で、#u,#vが確定したので、ステップＳ２０においてファイル番号#uと、ローカル番号#vとを式#s = (n-1)・#u+#vに適用してKey&Rule Entryのグローバル番号#sを得る。そしてステップＳ２１においてグローバル番号#sと、コンテンツ番号#tとを対応付けた情報を、上述したコンテンツが配置されたディレクトリの変換テーブル格納ファイルに書き込む。以上がSDメモリカードに対するコンテンツの書き込み処理である。
【００６２】
尚、既存のEPUB#u.KEY内の未使用Key&Rule Entryを新たな書込先として優先的に選んでゆくと、EPUB001.KEY、EPUB002.KEYというように、若いファイル番号のEPUBxxx.KEYに書き込みが集中してしまい、これらに対応する消去可能ブロックの寿命を縮めるという問題をうむ。書き込みの集中は、以下のような技術で解消するのが望ましい。各消去可能ブロックに予め割り当てられた物理アドレスと、論理アドレスとの対応をとるテーブルをSDメモリカードに記録しておき、また各ファイルの書込先を論理アドレスにて管理する。こうすると、EPUB001.KEY,EPUB002.KEYに対する消去可能ブロックの割り当ては、固定的ではなくなる。つまりテーブルの書き換えにより、消去可能ブロックの割り当てを変化させることができる。このような消去可能ブロックの割り当て変化により、EPUB001.KEY、EPUB002.KEYに書き込みが集中したとしても、1つの消去可能ブロックの寿命が縮むということはない。
【００６３】
続いてコンテンツの再生時の処理について説明する。図１７は、コンテンツの再生処理の処理手順を示すフローチャートである。このフローチャート示された処理手順をなすプログラムをCPUに実行させることで、再生処理が実現される。ブラウザを介した選択操作により、何れかのディレクトリに配置されたコンテンツについての再生が命じられたとする。そうすると先ずステップＳ３１において再生すべきコンテンツが配されたディレクトリの変換テーブル格納ファイルから、再生すべきコンテンツに対応するKey&Rule Entryのグローバル番号#sを取得する。ステップＳ３２において、#s = (n-1)・#u +#vを満たす、EPUB#u.KEYのファイル番号#u、Key&Rule Entryのローカル番号#vを取得し、ステップＳ３３においてEPUB#u.KEYをセキュアリードして、内部メモリ内にEPUB#u.KEYを得る。続くステップＳ３４では、内部メモリにおけるEPUB#u.KEY内のビットマップにおいて、vビット目に位置するフラグの値が「1」であるか否かの判定を行う。変換テーブル格納ファイルの記載からは、u個目のKey&Rule Entryが使用中であることは明らかであるが、これに対応するEPUB#u.KEYのKey&Rule Entryが未使用になっているという瑕疵は全くないとはいいきれない。レアケースであるが、そのような瑕疵が存在しないとは断言できないので、ステップＳ３４における判定を行い、もしそのような瑕疵があれば処理を終了する。ステップＳ３４においてvビット目のフラグが値「1」であると判定されれば、ステップＳ３５〜ステップＳ３９において、コンテンツの再生手順を実行する。
【００６４】
ステップＳ３５においてKey&Rule Entry#vから暗号鍵を取り出し、この暗号鍵を用いて再生すべきコンテンツの復号を開始すると共に、コンテンツの再生を開始する。ステップＳ３７において所定時間が経過するのを待ち、経過すれば、ステップＳ３８においてKey&Rule Entry#vにおける再生可能回数をデクリメントして、ステップＳ３９において内部メモリ上のKey&Rule Entry#vを、プロテクト領域に対してセキュアライトする。
【００６５】
最後に削除処理について説明する。図１８は、コンテンツの削除処理の処理手順を示すフローチャートである。このフローチャート示された処理手順をなすプログラムをCPUに実行させることで、削除処理が実現される。ブラウザ１１を介した選択操作により、ユーザデータ領域の何れかのディレクトリに配置されたコンテンツについての削除が命じられたとする。そうすると先ずステップＳ５１において削除すべきコンテンツを収録したファイル#tのファイルエントリーをディレクトリエントリーから削除し、コンテンツの収録ファイルが占めているクラスタを空き状態に解放する。ステップＳ５２において再生すべきコンテンツが配されたディレクトリの変換テーブル格納ファイルから、削除すべきファイルに対応するKey&Rule Entryのグローバル番号#sを取得し、ステップＳ５３において式#s = (n-1)・#u +#vを満たす、EPUBxxx.KEYの番号#u、Key&Rule Entryの番号#vを取得する。ステップＳ５４においてEPUB#u.KEYをセキュアリードして、内部メモリ内にEPUB#u.KEYを得る。
【００６６】
続くステップＳ５５では、内部メモリにおけるEPUB#u.KEY内のビットマップにおいて、vビット目に位置するフラグの値が「1」であるか否かの判定を行う。変換テーブル格納ファイルの記載からは、u個目のKey&Rule Entryが使用中であることは明らかであるが、これに対応するEPUB#u.KEYのKey&Rule Entryが未使用になっているという瑕疵は全くないとはいいきれない。レアケースであるが、そのような瑕疵が存在しないとは断言できないので、ステップＳ５５における判定を行い、もしそのような瑕疵があれば処理を終了する。
【００６７】
ステップＳ５５においてvビット目のフラグが値「1」であると判定されれば、ステップＳ５６−ステップＳ５７−ステップＳ５８において、Key&Rule Entry#vの削除手順を実行する。つまりステップＳ５６において内部メモリにおけるEPUB#u.KEY内のKey&Rule Entry#vに乱数を書き込み、ステップＳ５７では、内部メモリにおいて、EPUB#u.KEY内ビットマップのvビット目に位置するフラグを値「0」に設定した上で、ステップＳ５８において内部メモリ上のEPUB#u.KEYをSDメモリカード上のプロテクト領域にセキュアライトする。
【００６８】
ステップＳ５７においてvビット目のフラグを値「0」に設定した結果、EPUB#u.KEY内のビットマップがオール値「0」になったかもしれない。ステップＳ５９は、この可能性を判定するものであり、もしオール値「0」なら、EPUB#u.KEY自体が不要であるとして、ステップＳ６０においてEPUB#u.KEYのファイルエントリーをディレクトリエントリーから削除し、EPUB#u.KEYが占めているクラスタを空き状態に解放する。このような削除により、プロテクト領域におけるEPUBxxx.KEYの数を減らすことができる。削除されたEPUB#u.KEYのファイル番号は、EPUBxxx.KEYを新たにクリエイトする場合、そのEPUBxxx.KEYに割り当てられる。ファイル番号は、このような再利用も想定しているのである。つまりEPUBxxx.KEYの削除により、ファイル番号に抜けが生じた場合、その抜けのファイル番号は、再利用されるのである。
【００６９】
EPUB#u.KEY内のビットマップのvビット目を「0」に更新した場合、1/(n-1)以上の割合で、SD_EPUB.MMG側のビットマップをも更新せねばならない。つまりEPUB#u.KEY内のビットマップがオール値「1」になっており、ステップＳ５７の設定で1つのKey&Rule Entryが未使用になった場合、これに伴い、SD_EPUB.MMG内のビットマップをも更新せねばならない。そのため、ステップＳ６１において、SD_EPUB.MMGをSDメモリカードからセキュアリードし、ステップＳ６２においてSD_EPUB.MMG内のビットマップにおけるuビット目のフラグが値「1」であったかどうかの判定を行う。ステップＳ６２により、SD_EPUB.MMG内のビットマップのuビット目のフラグが値「0」であれば、ステップＳ６３、Ｓ６４を経由することなくステップＳ６５が実行される。一方、SD_EPUB.MMG内のビットマップのuビット目のフラグが値「1」であれば、ステップＳ６３、Ｓ６４を経由してからステップＳ６５が実行されることになる。
【００７０】
このステップＳ６３−ステップＳ６４は、SDメモリカードにおけるSD_EPUB.MMGの更新を実行するものであり、ステップＳ６３において、SD_EPUB.MMG内のビットマップにおけるuビット目のフラグを値「0」に設定し、ステップＳ６４は、内部メモリ上のSD_EPUB.MMGをSDメモリカードにセキュアライトする。
その後、ステップＳ６５において削除すべきコンテンツについてのコンテンツの番号#tと、グローバル番号#sとを変換テーブル格納ファイルから削除して、削除処理を終える。
【００７１】
以上のように本実施形態によれば、新たなEPUB#u.KEYのクリエイトは、既存のEPUBxxx.KEY内の未使用Key&Rule Entryが埋まってからになるので、新しいEPUBxxx.KEYがむやみにクリエイトされることはない。長期的に見て、EPUBxxx.KEYの数を最小限に留めることができるので、SDメモリカードの記録内容をスッキリと整理しておくことができる。プロテクト領域は、SDメモリカード全体に対して、比較的小さめにとる場合が多く、この場合プロテクト領域内のファイルの個数も制限されることになる。従って、本実施形態に係る記録装置がプロテクト領域内のEPUBxxx.KEYの個数をなるべく小さくするよう、データ書き込みを行うことは、プロテクト領域を利用するにあたって非常に好適といえる。
【００７２】
第１〜第４実施形態に開示されるデータ構造、各種処理は、以下の国際公開公報に基づくものであり、より詳細な技術事項については、これらの公報を参照されたい。
W0 00/65602号公報  2000年11月2日  W0 00/74054号公報  2000年12月7日
W0 00/74059号公報  2000年12月7日  W0 00/74060号公報  2000年12月7日
W0 01/16821号公報  2001年 3月8日
上記実施形態に基づいて説明してきたが、現状において最善の効果が期待できるシステム例として提示したに過ぎない。本発明はその要旨を逸脱しない範囲で変更実施することができる。代表的な変更実施の形態として、以下(A)(B)(C)・・・・(I)(J)(K)のものがある。
【００７３】
（A）第１実施形態におけるKey&Rule Entryの上限は、1つのEPUBxxx.KEYに格納されるべきKey&Rule Entryの数nと、SD_EPUB.MMGに存在するビットマップのビット長mとを乗じた数n・mになる。この上限数は、あくまでもプロテクト領域に存在するSD_EPUB.MMGの数を1つとした場合の上限数であり、SD_EPUB.MMGの数を増やせば、Key&Rule Entryの上限数を倍にすることができる。例えばSD_EPUB.MMGのプロテクト領域に配置すべきSD_EPUB.MMGが2個なら、Key&Rule Entryの上限数は2・n・mになる。
【００７４】
(B)第１実施形態では、各EPUB#u.KEYの状態を示すmビットのビットマップをSD_EPUB.MMG内に配したが、1つ目のEPUB001.KEY内に配してもよい。つまり第１実施形態では、SD_EPUB.MMGのファイルオープン、空きのKey&Rule EntryをもつKey&Rule Entryのオープン(2)という2つのオープンが必要であったが、1つ目のEPUB001.KEY内にmビットビットマップを配せば、EPUB001.KEYをオープンするだけで、どのEPUBxxx.KEYに空きがあるかを知ることができる。そして空きのKey&Rule Entryが1つ目のEPUB001.KEY内に存在する場合は、そのEPUB001.KEY内の空きKey&Rule Entryに直接、新たなセキュアなデータを書き込めばよいので、オープンの回数は計1回となる。またEPUB001.KEYには、空きのKey&Rule Entryがない場合でも、そのmビットのビットマップの参照により、どのEPUBxxx.KEYに空きのKey&Rule Entryが存在することが解るので、この場合も、EPUB#u.KEYのオープンが2回を上回ることはない。
【００７５】
また、各Key&Rule Entryの状態を示すnビットのビットマップは、各EPUBxxx.KEY内に配したが、SD_EPUB.MMG内に配してもよい。
(C)各EPUBxxx.KEY内にビットマップを配置せず、SD_EPUB.MMG内のビットマップだけで未使用のKey&Rule Entryを有するEPUB#u.KEYを検索してもよい。何故なら、新たなデータの書き込みに先立って、装置側で、Key&Rule Entryが使用中であるか、未使用であるかの検査を行えば、各Key&Rule Entryの状態を示すビットマップをわざわざ設けなくても済むからである。しかしこれは、未使用や削除済みのKey&Rule Entryが、オールヌル(00000000・・・)等、削除状態であることが一見してわかるような値に設定されていることが前提であり、現実には妥当でない。それは以下の理由による。一般にセキュアデータの削除は、セキュアなデータが書き込まれたKey&Rule Entryに対して乱数を上書きすることによりなされる。一方セキュアなデータは、暗号化された状態で記録されており、一見しただけでは、Key&Rule Entryに記録されたデータが暗号化されたものであるか、削除されたものであるかの区別がつかない。そのため、上述したような検査を行うことは実質的には不可能となる。本実施形態では、各Key&Rule Entryにセキュアなデータが記録されているか、削除されているかがEPUBxxx.KEY内のビットマップにおける各フラグにより明らかである。よってこれを参照することで、ファイル内のどのKey&Rule Entryが空きであり、どのKey&Rule Entryが記録済みであるかを即座に知得することができる。
【００７６】
(D)第１〜第４実施形態では、ファイルオープンに、相互認証というオーバーヘッドが伴うSDメモリカードを一例にして説明を進めた。しかしファイルオープンに、何等かのオーバーヘッドが伴い、複数ファイルのオープンに時間がかかるような記録媒体であるなら、どのような記録媒体であっても適用されることはいうまでもない。例えば、コンパクトフラッシュ（登録商標）カード、スマートメディア、メモリスティック、マルチメディアカード、PCM-CIAカード等のフラッシュメモリカードであってもよい。半導体メモリカード以外の、フレシキブルディスク、SuperDisk,Zip,Clik!等の磁気記録ディスク(i)、ORB,Jaz,SparQ,SyJet,EZFley,マイクロドライブ等のリムーバルハードディスクドライブ(ii)、DVD-RAM,DVD-RW,PD,DVD+RW,CD-RW等の光ディスクであってもよい。
【００７７】
(E)第４実施形態において説明した記録装置の特徴は、図１６〜図１８のフローチャートで示したように、コンピュータ読み取り可能なプログラムの改良により実現される。故に、この特徴部分たるプログラムを、これらの装置とは別個独立に実施してもよい。プログラムがコンピュータ読取可能な記録媒体に記録される場合、この記録媒体を譲渡、貸与するという態様で、プログラムのみを実施してもよい。またプログラムがネットワーク上で配信される場合、ネットワーク上でプログラムを伝送させるという態様で、プログラムを実施してもよい。
【００７８】
(F)第１実施形態〜第４実施形態において、SDメモリカードに記録されるべきコンテンツは電子出版物であるものとしたが、音楽や映画等、他のコンテンツであってよいことはいうまでもない。
(G)mビットのビットマップは、各EPUBxxx.KEYに1ビットを割り当てることにより、EPUBxxx.KEY内に1つ以上の未使用Key&Rule Entryがあるか(1)、EPUBxxx.KEY内のKey&Rule Entryが全て、使用中であるか(2)の2つの状態を表したが、EPUBxxx.KEYに割り当てるべきビット数を増やすことにより、3つ以上の状態を表してもよい。
【００７９】
(H)nビットのビットマップは、各Key&Rule Entryに1ビットを割り当てることにより、Key&Rule Entryが未使用であるか(1)、Key&Rule Entryが使用中であるか(2)の2つの状態を表したが、Key&Rule Entryに割り当てるべきビット数を増やすことにより、3つ以上の状態を表してもよい。
(I)プロテクト領域には、権利管理情報を記録したが、機密性が求められる情報であれば、課金情報や個人情報、企業秘密情報等の他の情報であってもよい。また、第１実施形態〜第４実施形態で示したように、コンテンツが出版物である場合は、再生処理に、表示や印刷といったバリエーションがある。この場合、再生のバリエーション毎に、利用可能な条件を定めても良い。
【００８０】
(J)権利管理情報は、コピーや再生といった利用をどれだけ許可するかの条件を設定したが、コピー処理に、移動やマイグレイト、チェックアウトといったバリエーションが存在する場合、これらバリエーション毎に、利用可能な条件を定めても良い。移動とは、コピー元のコンテンツの削除が伴うコピー処理であり、複数記録媒体間でコンテンツを移動する場合に用いられる。
【００８１】
マイグレイトとは、コピー先記録媒体において、権利管理情報を生成させることを前提にしたコピー処理である。
チェックアウトとは、回数制限されたコピーの一種であり、コピー回数を1回デクリメントした上でコンテンツのコピーが実行される。一般にいう回数制限付きのコピーと、チェックアウトとの違いは、コピー回数のインクリメントが可能である点である。コピー回数のインクリメントは、コピーにより記録媒体に記録されたコンテンツを再生不能にするという処理("チェックイン"と呼ばれる。)を行った後でなされる。
【００８２】
(K)権利管理情報において利用可能な条件をどのように指定するかは、どのような態様でも良い。例えば再生やコピーの残り回数による指定であってもよいし、上限数の指定であってもよい。残り時間による指定であってもよいし、上限時間の設定や有効期間の指定(年月日の指定)であってもよい。
【００８３】
【発明の効果】
以上説明したように、本発明に係る半導体メモリカードは、上述したよう課題解決のための技術的な特徴を有しているので、複数ファイルに虫食い状に空き領域が存在している場合でも、この状態情報を参照することにより、空き領域をもったファイルの特定を高速に行うことができる。ファイルアクセスは、状態情報のオープンと、空き領域をもつファイルのオープンの計2回になるので、空きのエントリー領域をもつファイルを捜し求めて、複数ファイルをオープンするという手間から解放され、新たなコンテンツの書き込みに要する時間を短縮することができる。
【００８４】
半導体メモリカードが上述したような記録形式である場合、新たなファイルのクリエイトは、既存ファイル内の未使用エントリー領域が埋まってからになるので、新しいファイルがむやみにクリエイトされることはない。長期的に見て、ファイルの数を最小限に留めることができるので、半導体メモリカードの記録内容をスッキリと整理しておくことができる。半導体メモリカードがSDメモリカードである場合、プロテクト領域は、SDメモリカード全体領域に対して、比較的小さめにとる場合が多い。具体的にいうなら、SDメモリカード全体領域に対して1％程度の割合で確保される。この場合プロテクト領域内のファイルの個数も制限されることになる。しかし上述した半導体メモリカードは、ファイルの個数をなるべく小さくするので、プロテクト領域を利用するにあたって非常に望ましいという効果を奏する。
【図面の簡単な説明】
【図１】（ａ）第１実施形態に係るSDメモリカードの外観形状を示す図である。
（ｂ）SDメモリカード１００の階層構造を示す図である。
（ｃ）SDメモリカード１００における物理層の構成を示す図である。
【図２】  SDメモリカードが具備している、ユーザデータ領域及びプロテクト領域のファイル構成、ディレクトリ構成を示す図である。
【図３】  EPUBxxx.KEYの内部構成を示す図である。
【図４】  複数のKey&Rule Entryと、ユーザデータ領域における複数のコンテンツとの対応関係を示す図である。
【図５】  EPUBxxx.KEY内のビットマップの一例を示す図である。
【図６】  EPUBxxx.KEY内のビットマップの具体的な設定例を示す図である。
【図７】  図６のようにEPUB005.KEY内のKey&Rule Entryが設定されている場合、EPUB005.KEY内のビットマップがどのように設定されるかを示す図である。
【図８】  SD_EPUB.MMG内のビットマップを示す図である。
【図９】  EPUB001.KEY〜EPUB005.KEYが図６の状態になっている場合において、SD_EPUB.MMG内のビットマップがどのように設定されるかを示す図である。
【図１０】  図６に示したEPUB005.KEY内の3個目のKey&Rule Entryと、ユーザデータ領域に記録されている1つ目のコンテンツ001とが対応している場合、変換テーブル格納ファイルがどのように設定されるかを示す図である。
【図１１】（ａ）第２実施形態において1つのクラスタからなるファイルとして構成されたSD_EPUB.MMG及びEPUB001.KEY,EPUB002.KEY,EPUB003.KEY・・・を示す図である。
（ｂ）消去可能ブロックと、クラスタとの関係を示す図である。
（ｃ）x=1と定められた場合のクラスタを示す図である。
（ｄ）x=16と定められた場合のクラスタを示す図である。
【図１２】（ａ）第３実施形態に係るプロテクト領域の詳細なフォーマットを示す図である。
（ｂ）s個の消去可能ブロックに含まれるs個のクラスタのうち、y個のクラスタをボリューム管理情報の記録に割り当てる場合を想定した図である。
（ｃ）x=1と設定された場合、ボリューム管理情報の記録にどれだけのクラスタが割り当てられるかを示す図である。
（ｄ）x=16と設定された場合、ボリューム管理情報の記録にどれだけのクラスタを割り当てるかを示す図である。
【図１３】  かかるサイズ調整がなされたプロテクト領域のレイアウトをより詳細に示した図である。
【図１４】（ａ）民生用音響機器である記録装置を示す図である。
（ｂ）パソコン等の情報機器である記録装置を示す図である。
【図１５】  第４実施形態に係る記録装置の内部構成を示す図である。
【図１６】  書込処理を実現する処理手順を示すフローチャートである。
【図１７】  コンテンツの再生処理の処理手順を示すフローチャートである。
【図１８】  コンテンツの削除処理の処理手順を示すフローチャートである。
【符号の説明】
１    システム領域
２    Hidden領域
３    プロテクト領域
４    AKE処理部
５    AKE処理部
６    Ks復号化部
７    Ks暗号化部
８    ユーザデータ領域
１０    内部メモリ
１１    ブラウザ部
１２    セキュア処理部
１３    暗号化解除部
１４    再生部
１５    制御部
１００    メモリカード
１０１    プロテクトスイッチ
【図１】
0003981303.tif 000002
【図２】
0003981303.tif 000003
【図３】
0003981303.tif 000004
【図４】
0003981303.tif 000005
【図５】
0003981303.tif 000006
【図６】
0003981303.tif 000007
【図７】
0003981303.tif 000008
【図８】
0003981303.tif 000009
【図９】
0003981303.tif 000010
【図１０】
0003981303.tif 000011
【図１１】
0003981303.tif 000012
【図１２】
0003981303.tif 000013
【図１３】
0003981303.tif 000014
【図１４】
0003981303.tif 000015
【図１５】
0003981303.tif 000016
【図１６】
0003981303.tif 000017
【図１７】
0003981303.tif 000018
【図１８】
0003981303.tif 000019