JP3981303B2 - 半導体メモリカード、記録装置、プログラム、方法 - Google Patents
半導体メモリカード、記録装置、プログラム、方法 Download PDFInfo
- Publication number
- JP3981303B2 JP3981303B2 JP2002196318A JP2002196318A JP3981303B2 JP 3981303 B2 JP3981303 B2 JP 3981303B2 JP 2002196318 A JP2002196318 A JP 2002196318A JP 2002196318 A JP2002196318 A JP 2002196318A JP 3981303 B2 JP3981303 B2 JP 3981303B2
- Authority
- JP
- Japan
- Prior art keywords
- entry
- file
- key
- area
- memory card
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Description
本発明は、暗号鍵、権利管理情報、課金情報といったセキュアなデータが書き込まれる、SDメモリカード等の半導体メモリカード、記録装置、プログラム、方法に関する。
【0002】
【従来の技術】
上述したSD(Secure digital)メモリカードは、コンテンツ配信サービスにより配信されたコンテンツやセキュアデータの受け皿として用いられる記録媒体である。そればかりか、SDメモリカードは、高い機密性をもって、配信されたセキュアデータを格納しておくことができる。この機密性の高さから、配信サービスの運営業者は、SDメモリカードに対して厚い信頼を寄せつつある。機密性担保のためのSDメモリカードの構成について簡単に説明する。SDメモリカードは、コンテンツを暗号化した状態のまま記録するユーザデータ領域(i)と、コンテンツに対応するセキュアなデータを記録するプロテクト領域(ii)とを備える。ユーザデータ領域は、SDメモリカードに接続された機器が自由にアクセスすることができる領域である。一方プロテクト領域は、SDメモリカードと機器との間の相互認証が成功しなければアクセスすることができない。この相互認証をクリアすることができるのは、配信サービスの運営業者からコンテンツのライセンス管理を委託された機器であり、不正な機器によるアクセスは、相互認証の段階で拒絶されるので、セキュアデータの機密性は保たれる。
【0003】
ところでアクセスに相互認証が必要であるとはいえ、半導体メモリカードの一領域である以上、プロテクト領域の領域管理はファイルシステムによりなされる。代表的なファイルシステムである、FAT型ファイルシステムでの1つのファイルは、"クラスタ"と呼ばれる単位で管理される。一方セキュアデータは、重要な価値をもつものの、サイズは16バイト,64バイトというように小サイズであり、"クラスタ"と比較して、数百分の一程度の大きさに過ぎない。サイズの違いがあまりにも大きいので、1つのセキュアなデータを1つのファイルに格納するという格納方式をとると、領域の利用効率が非常に落ちるという問題点が生ずる。
【0004】
そこで考えられるのは、複数のセキュアなデータを、束ねて1つのファイルに格納するという格納方式である。
【0005】
【発明が解決しようとする課題】
しかしながら複数のセキュアなデータを1ファイルに格納するという格納方式は、歳月が経つにつれ、フラグメンテーションの発生(虫食い状の空き領域発生)に苛まれるという問題点がある。
配信サービスにて配信されるコンテンツの受け皿として、長きにわたりSDメモリカードを使用していると、SDメモリカードには多くのセキュアなデータが記録される。それにつれセキュアなデータを収録するファイルも数を増す。一方、ファイルに収録されるセキュアなデータは、対応するコンテンツの陳腐化に伴い、削除されるという運命を辿る。SDメモリカードの容量は、制限されていることが多く、新たなコンテンツの記録にあたっては、削除により得られた空き領域を記録先とするのが望ましい。ところが1つのファイルに複数セキュアなデータを格納するという格納方式では、空き領域は複数ファイルに虫食い状に出現するので、セキュアなデータを書き込むにあたって、どのファイルに空き領域が存在するのかを探し当てるという探索が必要となる。一方、プロテクト領域内のファイルアクセスにあたっては、機器とSDメモリカードとの相互認証が必要であり、この相互認証がオーバヘッドになって、ファイルアクセスの完遂までの時間を長引かせる。個々のファイルオープンにオーバヘッドが存在するため、空き領域をもったファイルを探索するという作業に時間を費してしまい、データの書き込み完遂までに、長時間を要するという問題がある。
【0006】
本発明の目的は、複数のファイルに虫食い状に発生する空き領域に対して、高速にセキュアなデータを書き込むことができる半導体メモリカードを提供することである。
【0007】
【課題を解決するための手段】
複数ファイル内に生じた空き領域を解消するには、ガーベッジコレクション処理(ファイル断片化の解消処理)を施し、空き領域を詰めてゆけばよいように思える。しかしこのような断片化解消には、ファイルの読み書きが多く伴う。一方、SDメモリカードを始めとする半導体メモリカードは、フラッシュメモリを内蔵しており、フラッシュメモリは、その書き換え回数が何十万回というように制限されているため、空き領域が1つ2つ発生するという理由でガーベッジコレクション処理を施すのは、SDメモリカードの寿命をちぢめてしまい、望ましくない。ガーベッジコレクション処理を施せないのなら、複数のファイルに虫食い状に発生する空き領域を書き込み先に選ぶしかない。
【0008】
上記目的を達成するため、本発明にかかる半導体メモリカードは、接続される装置との間で正当性を相互に認証する認証回路と、相互認証により正当性が確認された場合に、当該装置によってアクセスされるプロテクト領域を備え、前記プロテクト領域には、複数のエントリーセットファイルと、1つのファイル状態管理ファイルとが記録されており、各前記エントリーセットファイルは、それぞれ、固定数のエントリー領域と、エントリー状態情報とを含み、エントリー状態情報は、1つのエントリーセットファイル内におけるそれぞれのエントリー領域に対応したフラグを具備することで、エントリー領域のそれぞれに対応したテーブル構造を有しており、各フラグはオフに設定されることにより、対応するエントリー領域が未使用であることを示し、オンに設定されることにより、対応するエントリー領域が使用中であることを示し、前記ファイル状態管理ファイルは、ファイル状態情報を含み、ファイル状態情報は、前記プロテクト領域に記録されているエントリーセットファイルのそれぞれに対応したフラグを具備することで、エントリーセットファイルのそれぞれに対応したテーブル構造を有しており、各フラグは、対応するエントリーセットファイルが未使用のエントリー領域を1つ以上有している第1状態であるか、又は、全てのエントリー領域が使用中である第2状態であるかを示し、ファイル状態管理ファイル及びエントリーセットファイルを構成しているクラスタのサイズは、前記半導体メモリカードにおける消去可能ブロックのサイズそのもの又は当該サイズの整数分の一に設定されていることを特徴としている。
【0009】
【発明の実施の形態】
(第1実施形態)
以降、本発明に係る記録媒体の実施形態について、図面を参照しながら説明する。本実施形態では、説明の対象とする記録媒体にSDメモリカードを選んでいる。何故ならSDメモリカードは、セキュアなデータを高い機密性をもって格納することができ、本発明の特徴の説明に適しているからである。
【0010】
本図におけるSDメモリカード100は図1(a)に示すような外観形状を有し、長さ32.0 mm、幅24.0 mm、厚さ2.1 mmといった大きさ(切手サイズの大きさ)なので、ユーザはこのSDメモリカード100を指先で把持することができる。SDメモリカード100には、機器との接続のための9本のコネクタが設けられており、側面には、記憶内容の上書きを許可するか禁止するかを操作者が設定することができるプロテクトスイッチ101が設けられている。
【0011】
図1(b)は、SDメモリカード100の階層構造を示す図である。本図に示すように、SDメモリカード100の階層構造は、コンテンツと、これに対応する暗号鍵、権利管理情報をセキュアに格納するよう構成された物理層、FAT(FAT:File Allocation Table, ISO/IEC 9293)に基づき、クラスタを最小単位としてアクセスされるファイルシステム層、著作物を構成する暗号化コンテンツ、セキュアなデータが格納される応用層からなる。
【0012】
図1(c)は、SDメモリカード100における物理層の構成を示す図である。本図に示すように、SDメモリカード100の物理層は、システム領域1、Hidden領域2、プロテクト領域3、AKE処理部4、AKE処理部5、Ks復号化部6、Ks暗号化部7、ユーザデータ領域8からなる。
システム領域1は、Media Key Block(MKB)と、Media-IDとを格納した読出専用領域であり、ここに格納されたMKB、Media-IDを書き換えることはできない。SDメモリカード100が他の機器と接続され、MKBとMedia-IDとが他の機器により読み出された場合、これらを読み出した他の機器が、MKB、Media-IDと、自身が所持しているデバイス鍵Kdとを用いて所定の演算を正しく行えば、他の機器は正しい暗号鍵Kmuを所持することができる。
【0013】
Hidden領域2は、正解値となる暗号鍵Kmu、即ち、他の機器が正常なデバイス鍵Kdを用いて正常な演算を行なった場合、得られるべき暗号鍵Kmuを格納している領域である。
プロテクト領域3は、EEPROM等の不揮発メモリ上の一領域であり、暗号鍵及び権利管理情報等、セキュアなデータが格納される。
【0014】
Authentication and Key Exchange(AKE)処理部4、AKE処理部5は、機器とSDメモリカード100との間でチャレンジ・レスポンス型の相互認証を行って、相手側の正当性を認証し、相手側が不当であれば処理を中断するが、相手側が正当であれば機器とSDメモリカード100との間で暗号鍵(セッション鍵Ks)を共有する。機器による認証は3つのフェーズ(機器側で乱数を発生させ、得られた乱数をKmuを用いて暗号化して、チャレンジ値AとしてSDメモリカード100に送信するChallenge1フェーズ、SDメモリカード100側でこのチャレンジ値AをSDメモリカード100内のKmuを用いて復号化し、得られた値をレスポンス値Bとして機器に送信するResponse1フェーズ、機器側で保持していたチャレンジ値Aを機器側のKmuで復号化して、SDメモリカード100から送信されたレスポンス値Bと比較するVerify1フェーズ)からなる。
【0015】
SDメモリカード100による認証は3つのフェーズ(SDメモリカード100で乱数を発生させ、得られた乱数をKmuを用いて暗号化して、この値をチャレンジ値Cとして機器に送信するChallenge2フェーズ、機器側においてこのチャレンジ値Cを機器内のKmuを用いて復号化し、得られた値をレスポンス値DとしてSDメモリカード100に送信するResponse2フェーズ、SDメモリカード100側で保持していたチャレンジ値CをSDメモリカード100側のKmuで復号化して、機器から送信されたレスポンス値Dと比較するVerify2フェーズ)からなる。
【0016】
この際、他の機器が不正な暗号鍵Kmuを用いて相互認証を行えば、フェーズVerify1,2において、チャレンジ値Aとレスポンス値Bとの不一致、チャレンジ値Cとレスポンス値Dとの不一致が判定され、相互認証が中断することなる。逆に相手側の正当性が認証されれば、AKE処理部4、AKE処理部5は、上述したチャレンジ値Aと、チャレンジ値Cとの排他的論理和をとり、これをKmuにて暗号化することにより、セッション鍵Ksを得る。
【0017】
Ks復号化部6は、SDメモリカード100と接続された他の機器から、プロテクト領域に書き込むべきセキュアなデータであって、暗号化されたものが出力された場合、セキュアなデータがセッション鍵Ksを用いて暗号化されているものとして、セッション鍵Ksを用いることにより復号を行う。そうして復号により得られたセキュアなデータが本来のセキュアなデータであるとして、プロテクト領域に書き込む。
【0018】
Ks暗号化部7は、SDメモリカード100と接続された他の機器から、セキュアなデータを読み出す旨のコマンドが出力されると、セッション鍵Ksを用いてプロテクト領域に格納されているセキュアなデータを暗号化した後に、そのコマンドを発行した他の機器に出力する。
ユーザデータ領域8も、プロテクト領域3同様、EEPROM等の不揮発メモリ上の一領域である。プロテクト領域3との違いは、機器の正当性が認証されるか否かに拘らず、当該機器によりアクセスされる点である。ユーザデータ領域8には、暗号化コンテンツが格納される。プロテクト領域から読み出された暗号鍵が正しい値であれば、ここに格納されている暗号化コンテンツは正しく復号されることなる。プロテクト領域に対するデータ読み書きには、Ks復号化部6による復号化と、Ks暗号化部7による暗号化とが伴うので、プロテクト領域3は、SDメモリカード100と接続している機器がAKEプロセスを正しく行った場合のみ、当該機器により正規にアクセスされることなる。
【0019】
続いて、本実施形態に係るSDメモリカードがどのようなファイル構成、ディレクトリ構成を有しているかについて説明する。
図2は、SDメモリカードが具備している、ユーザデータ領域及びプロテクト領域のファイル構成、ディレクトリ構成を示す図である。本実施形態においてSDメモリカードは、配信サービスにより配信されたコンテンツを、記録するという目的に用いられる。この配信されるコンテンツは、電子出版物であるものとする。図2における"SD_EPUB"は、SDメモリカードに記録されるべきコンテンツが電子出版物であることを意味している。電子出版物には、週刊誌タイプ、日刊紙タイプのものがある。週刊誌タイプ、日刊紙タイプの電子出版物は、一週間置き、一日置きに新たなコンテンツが配信されるので、電子出版物は、陳腐化のスピードが、音楽等のコンテンツと比べて極端に早いという特色がある。また出版物の配信では、出版物の記事や章・節、頁毎に、異なる暗号鍵での暗号化が施され、独立した暗号化コンテンツとして取り扱われることも多々ある。記事や章・節、頁が独立したコンテンツになるなら、一度に配信されるコンテンツの数が30,40になり、SDメモリカードに記録しておくべきコンテンツの数が極端に多いという特色がある。これらのことから、本実施形態に係るSDメモリカードは、コンテンツの削除や、新たなコンテンツの書き込みが高頻度に行われることになる。
【0020】
続いてプロテクト領域のファイル構造、ディレクトリ構造について説明する。図2の右側に示すように、プロテクト領域のディレクトリ構造は、ルートディレクトリの直下に、"SD_EPUB"というサブディレクトリを配するというものであり、このサブディレクトリ"SD_EPUB"には、マスター管理ファイル"SD_EPUB.MMG"と、セキュアデータ格納ファイル"EPUB001.KEY","EPUB002.KEY","EPUB003.KEY"とが配置される。図2の左側に、ユーザデータ領域のディレクトリ構造を示す。本図におけるユーザデータ領域の"SD_EPUB"ディレクトリには、暗号化されたコンテンツ"Content001","Content002","Content003","Content004"が配置されている。"SD_EPUB"ディレクトリ配下のサブディレクトリには、暗号化コンテンツ"Content005","Content006","Content007"が配置されている。
【0021】
先ずセキュアデータの格納ファイルについて説明する。セキュアデータ格納ファイルは、それぞれEPUB001.KEY,EPUB002.KEY,EPUB003.KEYといったファイル名が付されている。EPUB001.KEY,EPUB002.KEY,EPUB003.KEYにおける"001","002","003"というシリアル番号は、プロテクト領域においてそのファイルを一意に示すファイル番号である。
【0022】
尚、以降の説明において任意のファイル番号xxxにて特定されるセキュアデータ格納ファイル(任意のセキュアデータ格納ファイル)を"EPUBxxx.KEY"と表記する。"EPUBxxx.KEY"のうち、"001","002","003"といったファイル番号で指示されるものは、ファイル番号を組み込んだファイル名"EPUB001.KEY,EPUB002.KEY,EPUB003.KEY"にて表記する。
【0023】
図3は、EPUBxxx.KEYの内部構成を示す図である。図3に示すように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は、固定長に定められている。
【0024】
図3においてKey&Rule Entryに付された、#1,#2,#3,#4・・・・・#nといった番号は、ファイル内のローカルな番号である。図4は、これら複数の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が、空き領域になったり、新たなセキュアなデータが書き込まれる頻度も高い。
【0025】
nビットのビットマップは、各Key&Rule Entryの状態管理のために導入された情報であり、各Key&Rule Entryに割り当てられた1ビットのフラグをn個配置してなる。図5は、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にセキュアなデータを書き込めば、空き領域という隙間を詰めるようにセキュアなデータが書き込まれてゆく。
【0026】
EPUBxxx.KEY内のビットマップの具体的な設定例について説明する。この設定例で想定するのは、図6に示すような事例である。この事例では、プロテクト領域にEPUB001.KEY〜EPUB005.KEYといった5つのファイルが記録されている。本図における表記法は以下の通りである。即ち本図におけるハッチングは、使用中であるKey&Rule Entryを象徴的に示しており、白抜きは、未使用であるKey&Rule Entryを象徴的に示している。この表記法に従って、図6を見てゆくと、EPUB001.KEY〜EPUB004.KEYまでを構成するKey&Rule Entryは、全て使用中になっている。EPUB005.KEYは、3つ目のKey&Rule Entry#3、5つ目のKey&Rule Entry#5が未使用であるが、残りは使用中になっている。
【0027】
図7は、図6のように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について説明する。
【0028】
SD_EPUB.MMG(Master ManaGer)は、1ビットのフラグをm個配置してなるビットマップを有する。mビットの"m"というのは、プロテクト領域に記録されるEPUBxxx.KEYの総数である。図8は、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)ことを示す。
【0029】
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)の区別がつく。
【0030】
続いてSD_EPUB.MMG内のビットマップの具体的な設定例について説明する。この設定例で想定するのは、図6に示した事例である。図9は、EPUB001.KEY〜EPUB005.KEYが図6の状態になっている場合において、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」に設定されている。図9の下側に、EPUB001.KEY〜EPUB005.KEYが配置されたディレクトリにおけるディレクトリエントリーの設定例を示す。このディレクトリエントリーには、EPUB001.KEYからEPUB005.KEYまでのファイル名や拡張子、記録日時が記述されているか、EPUB006.KEY以降のEPUBxxx.KEYについては、ファイル名が示されていない。このディレクトリエントリーの記載と、SD_EPUB.MMGにおけるビットマップの設定とを統合すると、空きのKey&Rule Entryを少なくとも1つもっているKey&Rule Entryは、EPUB005.KEYであることがわかる。
【0031】
このことから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が配置された領域の寿命を縮めることはない。
【0032】
続いてユーザデータ領域における変換テーブル格納ファイルについて説明する。変換テーブル格納ファイルは、これらコンテンツが、どの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
図10は、図6に示した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となる。
【0033】
よって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をアクセスするのである。
【0034】
以上のように本実施形態によれば、複数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をオープンするという手間から解放され、新たなコンテンツの書き込みに要する時間を短縮することができる。
【0035】
(第2実施形態)
第2実施形態では、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つのクラスタからなるファイルとして構成することができることを意味する。
【0036】
以上の式を満たすように、m,nを設定すれば、第1実施形態に示したSD_EPUB.MMG及びEPUB001.KEY,EPUB002.KEY,EPUB003.KEY・・・・・のそれぞれを、1つのクラスタからなるファイルとして構成することができる。図11(a)は、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つのファイルが割り当てられることを意味する。
【0037】
さて、このクラスタのサイズ自体は、どのような値に設定すべきであろうか。クラスタは、ファイルシステム層における領域管理の単位であり、1つのファイルは、このクラスタを必ず1つ占有する。一方、半導体メモリカードの物理層は、データ書き込みが可能な最小単位が定められていることが多い。この書き込み可能な最小単位を"消去可能ブロック"という。以降、32個のセクタ(16Kbyte)からなる消去可能ブロックを一例にして説明する。半導体メモリカードに消去可能ブロックが存在する場合、記録装置は、この32個のセクタを一括して白紙の状態に戻してからでないと、新たなデータを書き込むことはできない。そのため、クラスタサイズの決定にあたっては、消去可能ブロックとの関係を考慮することが重要である。
【0038】
そこで本実施形態では、クラスタのサイズを消去可能ブロックのサイズの1/xに設定する。図11(b)は、消去可能ブロックと、クラスタとの関係を示す図であり、クラスタサイズは、消去可能ブロックのサイズである16KByteの1/xの大きさ(32セクタの1/x)に定める。図11(c)は、x=1と定められた場合のクラスタを示す図であり、図11(d)は、x=16と定められた場合のクラスタを示す図である。
【0039】
以上のように本実施形態によれば、クラスタの大きさを消去可能ブロックの1/xの大きさに定め、このクラスタに収まるように、Key&Rule Entryの個数n、EPUBxxx.KEYの個数mを定める。Key&Rule Entry及びSD_EPUB.MMGの更新にあたって、書き込みを行うべき消去可能ブロックの数は必要最低限となる。故に本実施形態では、消去可能ブロックの寿命をいたずらに縮めることはない。
【0040】
(第3実施形態)
第3実施形態は、ボリューム管理情報の変動が生じた場合、2つの消去可能ブロックの境界を跨ぐように、クラスタが配置されてしまうという不都合を回避する技術を開示する。
図12(a)は、プロテクト領域のフォーマットを示す図である。プロテクト領域は、ファイルシステムにて管理されるため、図12(a)に示すように先頭部にボリューム管理情報が配されており、このボリューム管理情報にファイル領域が後続している。このボリューム管理情報は、ISO/IEC 9293に準拠したものであり、破線の矢印hf1に示すように、マスタブートレコード&パーティションテーブルセクタ、パーティションブートセクタ、二重化ファイルアロケーションテーブル(FAT)、ルートディレクトリエントリからなる。このうち、二重化FATは、プロテクト領域に含まれる複数のクラスタに対応づけられ、クラスタと、クラスタとの間のリンク関係を示す。このボリューム管理情報の直後以降をファイル領域という。第1実施形態に示したSD_EPUB.MMGや複数のEPUBxxx.KEYは、このファイル領域に配置されることになる。図12(a)では、図11(a)に示した複数クラスタ、つまりSD_EPUB.MMGやEPUB001.KEY、EPUB002.KEY、EPUB003.KEYが記録された複数クラスタ001,002,003,004・・・・・が、このファイル領域に記録されている・
ボリューム管理情報内の情報要素うち、二重化ファイルアロケーションテーブル(FAT)はボリューム管理情報変動の原因になるものであり、より詳しく説明する。二重化FATは、ISO/IEC 9293に準拠した2つのFATからなる。各FATは、各クラスタに対応づけられた複数のFATエントリーからなる。各FATエントリーは、対応するクラスタが使用中であるか、未使用であるかを示すものであり、対応するクラスタが未使用であれば、そのファイルエントリーには、"0"が設定され、対応するクラスタが使用中であれば、リンク先のクラスタ番号が設定される。
【0041】
次に、ボリューム管理情報の変動がどのような原因で生じるかについて説明する。プロテクト領域に、データを格納するにあたって、プロテクト領域のデータサイズをユーザや記録装置が任意に決める機会が多々ある。ユーザの要望に応じてプロテクト領域のサイズを変化させた場合、プロテクト領域に含まれるクラスタ数が増減する。クラスタ数が増減すれば、それらクラスタに対応するエントリーからなるFATのサイズも増減し、このFATを含むボリューム管理情報のサイズも、増減することなる。こうしてボリューム管理情報のサイズが増減すると、ボリューム管理情報に後続するファイル領域の先頭アドレスも、変動することなる。SD_EPUB.MMGやEPUB001.KEY,EPUB002.KEY,EPUB003.KEYが記録されるべきファイル領域の先頭アドレスは、プロテクト領域のサイズに応じて変動するものなので、無論このファイル領域に含まれる各クラスタの先頭アドレスもプロテクト領域のサイズに応じて変動する。
【0042】
クラスタの先頭アドレスが、プロテクト領域のサイズに応じて変動するとなると、2つの消去可能ブロックの境界をまたぐように、クラスタが配置されたり、ボリューム管理情報の終端部分と、ファイル領域の先頭に位置するクラスタとが同じ消去可能ブロックに配置されることも有り得る。
このような事態を避けるべく、第3実施形態では、第2実施形態で述べた第1の改良点に続く第2の改良点を提案する。
【0043】
第2の改良点とは、プロテクト領域において、クラスタのy倍のサイズの領域を、ボリューム管理情報の記録に割り当てるという改良である。図12(b)は、s個の消去可能ブロックに含まれるs・x個のクラスタのうち、y個のクラスタをボリューム管理情報の記録に割り当てる場合を想定した図である。y個のクラスタをボリューム管理情報の記録に割り当てれば、s個の消去可能ブロックの内部領域のうち、y/xの部分が、ボリューム管理情報に占有されることなり、残る(s・x-y)/xの内部領域が、ファイル領域に割り当てられることなる。
【0044】
ボリューム管理情報を、クラスタのy倍のサイズに設定することにより、s個の消去可能ブロックには、ボリューム管理情報と、s・x-y個のクラスタとが詰め込まれ、クラスタが2つの消去可能ブロックの境界を跨ぐことはない。
図12(c)は、x=1と設定された場合、ボリューム管理情報の記録にどれだけのクラスタが割り当てられるかを示す図であり、図12(d)は、x=16と設定された場合、ボリューム管理情報の記録にどれだけのクラスタを割り当てるかを示す図である。これらの図からも明らかなように、ボリューム管理情報の設定により複数のクラスタが、複数の消去可能ブロックに詰め込まれているので、何れのクラスタも消去可能ブロックの境界を跨ぐことはない。
【0045】
図13は、かかるサイズ調整がなされたプロテクト領域のレイアウトをより詳細に示した図である。図13において、パーティション管理領域とは、ボリューム管理情報の情報要素のうちマスタブートレコード&パーティションテーブルセクタが記録される領域であり、システム領域とは、ボリューム管理情報のうちパーティションブートセクタ、二重化FAT、ルートディレクトリエントリが記録される領域である。本図においてパーティション管理領域のサイズをNOM、パーティションブートセクタのサイズをRSC、二重化FATのサイズをSize1×2、ルートディレクトリエントリのサイズをRDE、総セクタサイズをTS、クラスタに含まれるセクタの個数をSCと表現している。
【0046】
この図13において、二重化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ビットを割り当てることをいう。
【0047】
数式11において、(TS-(RSC+RDE))/SCは、ファイル領域の記録に必要なクラスタ数であり、これにインディケータ数2を加算して、FATエントリーのバイト長(12又は16)を乗じ、且つ8で割ることにより、FATのバイト長を算出している。この算出結果に、オフセット値である511Byteを足し合わせ、セクタのバイト長512で割ることにより、1つ当たりのFATを格納するのに必要なセクタ数を算出している。
【0048】
図13において特に注意すべきは、パーティション管理領域のサイズであるNOMである。NOMは、パーティション管理領域と、システム領域とが、互いに異なるクラスタに属するように、"SC+α"という値に設定される。
SC+αのαをどのように設定するかであるが、αは、以下に示すように、RSCと、Size1×2と、RDEとの和がSCの整数倍になるように、(RSC+RDE+Size1×2)をSCで割り、その余りをSCから引くことにより求められる。これらのことを勘案すると、NOMは、数式12に示すように算出される。
【0049】
{数式12}
NOM=(SC-(RSC+RDE+Size1×2)%SC)+SC
こうしてαに定めると、パーティション管理領域及びファイル領域は、複数の消去可能ブロックに丁度収まる形となり、システム領域と、ファイル領域との境界が、消去可能ブロックの境界と一致することなる。こうした境界一致がはかれるので、後続する全てのクラスタの境界は、消去可能ブロックの境界に一致することになる。
【0050】
図13において、ファイル領域におけるクラスタ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つ)になるので、不揮発メモリの寿命をいたずらに縮めることもない。
【0051】
以上のように本実施形態によれば、ボリューム管理情報のサイズに変動があっても、消去可能ブロックの境界と、クラスタのサイズとを一致させるので、クラスタの書き換えを短期間に完遂することができる。また、消去可能ブロックの消去回数を削減することも可能になる。
(第4実施形態)
第4実施形態は、第1実施形態〜第3実施形態に示した特徴を有するSDメモリカードに対して、記録処理、再生処理を行う装置(便宜的に記録装置とよぶ)に関する実施形態である。記録装置は、図14(a)に示すような民生用音響機器、図14(b)に示すようなパソコン等の情報機器である。本実施形態の記録装置により、SDメモリカードに書き込まれるのは、暗号化コンテンツと、この暗号化コンテンツについてのセキュアなデータである。暗号化コンテンツは、再生回数が制限されたものであり、セキュアなデータは、暗号化を解除するための暗号鍵と、再生処理の可能回数を示す再生回数情報とを含む。これら暗号鍵、再生回数情報の読み書きを行うよう構成された記録装置の内部について説明する。図15は、第4実施形態に係る記録装置の内部構成を示す図である。本図に示すように記録装置は、内部メモリ10、ブラウザ部11、セキュア処理部12、暗号化解除部13、再生部14、制御部15からなる。
【0052】
内部メモリ10は、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メモリカード上に無い場合に、これらのファイルを内部メモリ上で作成するという処理がいわゆるファイルクリエイトである。
【0053】
ブラウザ11は、SDメモリカードのファイル領域に格納されているコンテンツの一覧表示を行うと共に、再生や削除の対象となるものの指定を受け付ける。ユーザからの操作受け付けは、ボタンやキー、タッチパネル等のポインティングデバイスに対してなされたユーザ操作を検出することによりなされる。
セキュア処理部12は、SDメモリカード内のプロテクト領域に対するデータ書き込みやデータ読み出しに先立って、SDメモリカード内のAKE処理部4、AKE処理部5、Ks復号化部6、Ks暗号化部7と、相互認証を行う。相互認証に失敗すれば、記録装置によるデータ読み出し/データ書き込みは否応無しに中断する。プロテクト領域に対するデータ書き込み/データ読み出しは、相互認証の成功を要件としているので、プロテクト領域に記録されたデータの機密性は保たれるのである。セキュア処理部12による相互認証を前提としたデータ書き込みをセキュアライトといい、セキュア処理部12による相互認証を前提としたデータ読み出しをセキュアリードという。
【0054】
暗号化解除部13は、内部メモリに読み込まれたKey&Rule Entry上に存在する暗号鍵を用いて、再生すべきコンテンツの暗号化を解除する。
再生部14は、暗号化が解除されたコンテンツの再生を行う。コンテンツの再生開始後、再生部は、再生経過時間のカウントを継続して行い、再生経過時間が予め定められた閾値を越えれば、その旨を制御部15に通知する。この閾値は、一回の再生とみなされるための最低の時間長であり、これを制御部15に通知することにより、再生可能回数のデクリメントを制御部15に促すのである。
【0055】
制御部15は、実行可能形式のプログラムを格納したROMと、それを実行するプロセッサ(CPU)とからなり、SDメモリカードに対する書込処理、読出処理、削除処理を実行する。先ず書込処理について説明する。図16は、書込処理を実現する処理手順を示すフローチャートである。このフローチャート示された処理手順をなすプログラムをCPUに実行させることで、書込処理が実現される。本フローチャートにおいてステップS1〜ステップS4は、コンテンツ本体側の書き込み処理を実行するものである。ステップS1においてコンテンツを配すべきディレクトリを、ユーザデータ領域の中から決定し、ステップS2においてそのディレクトリにおけるコンテンツの番号#tを決定する。ステップS3においてコンテンツ番号#tを一部に含んだ名前をもったファイル#tをオープンして、ステップS4においてコンテンツ#tを暗号化して、オープンされたファイル#tに書き込む。
【0056】
続くステップS5〜ステップS20は、コンテンツに対応するセキュアなデータ(暗号鍵、再生可能回数)をプロテクト領域に書き込む処理手順である。このうちステップS5〜ステップS16は、書き込みにあたって、プロテクト領域にある複数EPUBxxx.KEYのうち、どれを書き込みの対象にするかを定めるものである。先ず、ステップS5においてプロテクト領域に対してセキュアリードを実行することにより、記録装置の内部メモリ上にSD_EPUB.MMGを得る。続くステップS6は、SD_EPUB.MMGによる管理の限界である場合の例外処理を規定する。内部メモリ上に得られたSD_EPUB.MMG内のmビットビットマップの値がオール「1」であるかを判定する。もしオール値「1」であれば、本フローチャートの処理を終了する。
【0057】
たった1つでも、値「0」のフラグが存在すれば、ステップS7において値「0」のフラグであって、mビットのビットマップ先頭に最も近いもののビット位置をuビットとして検出する。そして、このuビットに対応するEPUB#u.KEYが存在するかどうかの判定をステップS8で行う。既に存在する場合は、ステップS10においてプロテクト領域内のプロテクト領域をセキュアリードして内部メモリ上にEPUB#u.KEYを得て、ステップS11に移行する。存在しない場合は、EPUB#u.KEYは新規作成すべきであり、ステップS9において EPUB#u.KEYをクリエイトして内部メモリ上にEPUB#u.KEYを得て、ステップS11に移行する。
【0058】
ステップS11において内部メモリ上のEPUB#u.KEY内のビットマップは、オール「1」であるかを判定する。EPUB#u.KEYの全てのKey&Rule Entryが使用中であるのに、SD_EPUB.MMG側のuビット目のフラグが値「0」になっているという瑕疵がもしかしたら存在するかもしれない。レアケースであるが、そのような瑕疵が全くないとはいいきれないので、ステップS11での判定を行う。ステップS11においてオール「1」と判定されたなら、ステップS12において値「0」のフラグであって、mビットのビットマップ先頭に次に近いもののビット位置をuビットとして検出し、ステップS8に再度移行する。ステップS10〜ステップS12の処理を繰り返しを行えば、値「0」のフラグを有したEPUB#u.KEYに到達する筈である。値「0」のフラグを有したEPUB#u.KEYに到達すれば、ステップS13に移行する。
【0059】
ステップS13〜ステップS16は、未使用のKey&Rule Entryにセキュアなデータを書き込むという処理を実現する。ステップS13では、内部メモリ上のEPUB#u.KEY内のビットマップにおける値「0」のフラグであって、ビットマップ先頭に最も近いもののビット位置をvビットとして検出し、ステップS14では、コンテンツについての暗号鍵と、再生可能回数とを内部メモリ上のEPUB#u.KEYにおけるKey&Rule Entry#vに書き込む。ステップS15において内部メモリ上のEPUB#u.KEY内のビットマップにおけるvビット目のフラグを値「1」に設定し、ステップS16において内部メモリ上で更新されたEPUB#u.KEYに対するセキュアライトを実行して、このEPUB#u.KEYをプロテクト領域内に書き込む。
【0060】
ステップS15においてuビット目のフラグが値「1」に設定されると、EPUB#u.KEY内のビットマップがオール「1」になったかもしれない。1/(n-1)以上の割合であるが、そのよう場合も発生し得るので、ステップS17において、この可能性を判定する。ステップS17は、EPUB#u.KEY内のビットマップがオール「1」になった場合に、ステップS18−ステップS19を経由してからステップS20を行わせ、そうでない場合に、ステップS18−ステップS19を経由せずにステップS20を行わせる判定ステップである。
【0061】
ステップS18では内部メモリにおけるSD_EPUB.MMG内のuビット目のフラグを値「1」に設定し、ステップS19では、内部メモリにおけるSD_EPUB.MMGに対するセキュアライトを実行する。以上の手順で、#u,#vが確定したので、ステップS20においてファイル番号#uと、ローカル番号#vとを式#s = (n-1)・#u+#vに適用してKey&Rule Entryのグローバル番号#sを得る。そしてステップS21においてグローバル番号#sと、コンテンツ番号#tとを対応付けた情報を、上述したコンテンツが配置されたディレクトリの変換テーブル格納ファイルに書き込む。以上がSDメモリカードに対するコンテンツの書き込み処理である。
【0062】
尚、既存のEPUB#u.KEY内の未使用Key&Rule Entryを新たな書込先として優先的に選んでゆくと、EPUB001.KEY、EPUB002.KEYというように、若いファイル番号のEPUBxxx.KEYに書き込みが集中してしまい、これらに対応する消去可能ブロックの寿命を縮めるという問題をうむ。書き込みの集中は、以下のような技術で解消するのが望ましい。各消去可能ブロックに予め割り当てられた物理アドレスと、論理アドレスとの対応をとるテーブルをSDメモリカードに記録しておき、また各ファイルの書込先を論理アドレスにて管理する。こうすると、EPUB001.KEY,EPUB002.KEYに対する消去可能ブロックの割り当ては、固定的ではなくなる。つまりテーブルの書き換えにより、消去可能ブロックの割り当てを変化させることができる。このような消去可能ブロックの割り当て変化により、EPUB001.KEY、EPUB002.KEYに書き込みが集中したとしても、1つの消去可能ブロックの寿命が縮むということはない。
【0063】
続いてコンテンツの再生時の処理について説明する。図17は、コンテンツの再生処理の処理手順を示すフローチャートである。このフローチャート示された処理手順をなすプログラムをCPUに実行させることで、再生処理が実現される。ブラウザを介した選択操作により、何れかのディレクトリに配置されたコンテンツについての再生が命じられたとする。そうすると先ずステップS31において再生すべきコンテンツが配されたディレクトリの変換テーブル格納ファイルから、再生すべきコンテンツに対応するKey&Rule Entryのグローバル番号#sを取得する。ステップS32において、#s = (n-1)・#u +#vを満たす、EPUB#u.KEYのファイル番号#u、Key&Rule Entryのローカル番号#vを取得し、ステップS33においてEPUB#u.KEYをセキュアリードして、内部メモリ内にEPUB#u.KEYを得る。続くステップS34では、内部メモリにおけるEPUB#u.KEY内のビットマップにおいて、vビット目に位置するフラグの値が「1」であるか否かの判定を行う。変換テーブル格納ファイルの記載からは、u個目のKey&Rule Entryが使用中であることは明らかであるが、これに対応するEPUB#u.KEYのKey&Rule Entryが未使用になっているという瑕疵は全くないとはいいきれない。レアケースであるが、そのような瑕疵が存在しないとは断言できないので、ステップS34における判定を行い、もしそのような瑕疵があれば処理を終了する。ステップS34においてvビット目のフラグが値「1」であると判定されれば、ステップS35〜ステップS39において、コンテンツの再生手順を実行する。
【0064】
ステップS35においてKey&Rule Entry#vから暗号鍵を取り出し、この暗号鍵を用いて再生すべきコンテンツの復号を開始すると共に、コンテンツの再生を開始する。ステップS37において所定時間が経過するのを待ち、経過すれば、ステップS38においてKey&Rule Entry#vにおける再生可能回数をデクリメントして、ステップS39において内部メモリ上のKey&Rule Entry#vを、プロテクト領域に対してセキュアライトする。
【0065】
最後に削除処理について説明する。図18は、コンテンツの削除処理の処理手順を示すフローチャートである。このフローチャート示された処理手順をなすプログラムをCPUに実行させることで、削除処理が実現される。ブラウザ11を介した選択操作により、ユーザデータ領域の何れかのディレクトリに配置されたコンテンツについての削除が命じられたとする。そうすると先ずステップS51において削除すべきコンテンツを収録したファイル#tのファイルエントリーをディレクトリエントリーから削除し、コンテンツの収録ファイルが占めているクラスタを空き状態に解放する。ステップS52において再生すべきコンテンツが配されたディレクトリの変換テーブル格納ファイルから、削除すべきファイルに対応するKey&Rule Entryのグローバル番号#sを取得し、ステップS53において式#s = (n-1)・#u +#vを満たす、EPUBxxx.KEYの番号#u、Key&Rule Entryの番号#vを取得する。ステップS54においてEPUB#u.KEYをセキュアリードして、内部メモリ内にEPUB#u.KEYを得る。
【0066】
続くステップS55では、内部メモリにおけるEPUB#u.KEY内のビットマップにおいて、vビット目に位置するフラグの値が「1」であるか否かの判定を行う。変換テーブル格納ファイルの記載からは、u個目のKey&Rule Entryが使用中であることは明らかであるが、これに対応するEPUB#u.KEYのKey&Rule Entryが未使用になっているという瑕疵は全くないとはいいきれない。レアケースであるが、そのような瑕疵が存在しないとは断言できないので、ステップS55における判定を行い、もしそのような瑕疵があれば処理を終了する。
【0067】
ステップS55においてvビット目のフラグが値「1」であると判定されれば、ステップS56−ステップS57−ステップS58において、Key&Rule Entry#vの削除手順を実行する。つまりステップS56において内部メモリにおけるEPUB#u.KEY内のKey&Rule Entry#vに乱数を書き込み、ステップS57では、内部メモリにおいて、EPUB#u.KEY内ビットマップのvビット目に位置するフラグを値「0」に設定した上で、ステップS58において内部メモリ上のEPUB#u.KEYをSDメモリカード上のプロテクト領域にセキュアライトする。
【0068】
ステップS57においてvビット目のフラグを値「0」に設定した結果、EPUB#u.KEY内のビットマップがオール値「0」になったかもしれない。ステップS59は、この可能性を判定するものであり、もしオール値「0」なら、EPUB#u.KEY自体が不要であるとして、ステップS60においてEPUB#u.KEYのファイルエントリーをディレクトリエントリーから削除し、EPUB#u.KEYが占めているクラスタを空き状態に解放する。このような削除により、プロテクト領域におけるEPUBxxx.KEYの数を減らすことができる。削除されたEPUB#u.KEYのファイル番号は、EPUBxxx.KEYを新たにクリエイトする場合、そのEPUBxxx.KEYに割り当てられる。ファイル番号は、このような再利用も想定しているのである。つまりEPUBxxx.KEYの削除により、ファイル番号に抜けが生じた場合、その抜けのファイル番号は、再利用されるのである。
【0069】
EPUB#u.KEY内のビットマップのvビット目を「0」に更新した場合、1/(n-1)以上の割合で、SD_EPUB.MMG側のビットマップをも更新せねばならない。つまりEPUB#u.KEY内のビットマップがオール値「1」になっており、ステップS57の設定で1つのKey&Rule Entryが未使用になった場合、これに伴い、SD_EPUB.MMG内のビットマップをも更新せねばならない。そのため、ステップS61において、SD_EPUB.MMGをSDメモリカードからセキュアリードし、ステップS62においてSD_EPUB.MMG内のビットマップにおけるuビット目のフラグが値「1」であったかどうかの判定を行う。ステップS62により、SD_EPUB.MMG内のビットマップのuビット目のフラグが値「0」であれば、ステップS63、S64を経由することなくステップS65が実行される。一方、SD_EPUB.MMG内のビットマップのuビット目のフラグが値「1」であれば、ステップS63、S64を経由してからステップS65が実行されることになる。
【0070】
このステップS63−ステップS64は、SDメモリカードにおけるSD_EPUB.MMGの更新を実行するものであり、ステップS63において、SD_EPUB.MMG内のビットマップにおけるuビット目のフラグを値「0」に設定し、ステップS64は、内部メモリ上のSD_EPUB.MMGをSDメモリカードにセキュアライトする。
その後、ステップS65において削除すべきコンテンツについてのコンテンツの番号#tと、グローバル番号#sとを変換テーブル格納ファイルから削除して、削除処理を終える。
【0071】
以上のように本実施形態によれば、新たなEPUB#u.KEYのクリエイトは、既存のEPUBxxx.KEY内の未使用Key&Rule Entryが埋まってからになるので、新しいEPUBxxx.KEYがむやみにクリエイトされることはない。長期的に見て、EPUBxxx.KEYの数を最小限に留めることができるので、SDメモリカードの記録内容をスッキリと整理しておくことができる。プロテクト領域は、SDメモリカード全体に対して、比較的小さめにとる場合が多く、この場合プロテクト領域内のファイルの個数も制限されることになる。従って、本実施形態に係る記録装置がプロテクト領域内のEPUBxxx.KEYの個数をなるべく小さくするよう、データ書き込みを行うことは、プロテクト領域を利用するにあたって非常に好適といえる。
【0072】
第1〜第4実施形態に開示されるデータ構造、各種処理は、以下の国際公開公報に基づくものであり、より詳細な技術事項については、これらの公報を参照されたい。
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)のものがある。
【0073】
(A)第1実施形態における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になる。
【0074】
(B)第1実施形態では、各EPUB#u.KEYの状態を示すmビットのビットマップをSD_EPUB.MMG内に配したが、1つ目のEPUB001.KEY内に配してもよい。つまり第1実施形態では、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回を上回ることはない。
【0075】
また、各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が記録済みであるかを即座に知得することができる。
【0076】
(D)第1〜第4実施形態では、ファイルオープンに、相互認証というオーバーヘッドが伴うSDメモリカードを一例にして説明を進めた。しかしファイルオープンに、何等かのオーバーヘッドが伴い、複数ファイルのオープンに時間がかかるような記録媒体であるなら、どのような記録媒体であっても適用されることはいうまでもない。例えば、コンパクトフラッシュ(登録商標)カード、スマートメディア、メモリスティック、マルチメディアカード、PCM-CIAカード等のフラッシュメモリカードであってもよい。半導体メモリカード以外の、フレシキブルディスク、SuperDisk,Zip,Clik!等の磁気記録ディスク(i)、ORB,Jaz,SparQ,SyJet,EZFley,マイクロドライブ等のリムーバルハードディスクドライブ(ii)、DVD-RAM,DVD-RW,PD,DVD+RW,CD-RW等の光ディスクであってもよい。
【0077】
(E)第4実施形態において説明した記録装置の特徴は、図16〜図18のフローチャートで示したように、コンピュータ読み取り可能なプログラムの改良により実現される。故に、この特徴部分たるプログラムを、これらの装置とは別個独立に実施してもよい。プログラムがコンピュータ読取可能な記録媒体に記録される場合、この記録媒体を譲渡、貸与するという態様で、プログラムのみを実施してもよい。またプログラムがネットワーク上で配信される場合、ネットワーク上でプログラムを伝送させるという態様で、プログラムを実施してもよい。
【0078】
(F)第1実施形態〜第4実施形態において、SDメモリカードに記録されるべきコンテンツは電子出版物であるものとしたが、音楽や映画等、他のコンテンツであってよいことはいうまでもない。
(G)mビットのビットマップは、各EPUBxxx.KEYに1ビットを割り当てることにより、EPUBxxx.KEY内に1つ以上の未使用Key&Rule Entryがあるか(1)、EPUBxxx.KEY内のKey&Rule Entryが全て、使用中であるか(2)の2つの状態を表したが、EPUBxxx.KEYに割り当てるべきビット数を増やすことにより、3つ以上の状態を表してもよい。
【0079】
(H)nビットのビットマップは、各Key&Rule Entryに1ビットを割り当てることにより、Key&Rule Entryが未使用であるか(1)、Key&Rule Entryが使用中であるか(2)の2つの状態を表したが、Key&Rule Entryに割り当てるべきビット数を増やすことにより、3つ以上の状態を表してもよい。
(I)プロテクト領域には、権利管理情報を記録したが、機密性が求められる情報であれば、課金情報や個人情報、企業秘密情報等の他の情報であってもよい。また、第1実施形態〜第4実施形態で示したように、コンテンツが出版物である場合は、再生処理に、表示や印刷といったバリエーションがある。この場合、再生のバリエーション毎に、利用可能な条件を定めても良い。
【0080】
(J)権利管理情報は、コピーや再生といった利用をどれだけ許可するかの条件を設定したが、コピー処理に、移動やマイグレイト、チェックアウトといったバリエーションが存在する場合、これらバリエーション毎に、利用可能な条件を定めても良い。移動とは、コピー元のコンテンツの削除が伴うコピー処理であり、複数記録媒体間でコンテンツを移動する場合に用いられる。
【0081】
マイグレイトとは、コピー先記録媒体において、権利管理情報を生成させることを前提にしたコピー処理である。
チェックアウトとは、回数制限されたコピーの一種であり、コピー回数を1回デクリメントした上でコンテンツのコピーが実行される。一般にいう回数制限付きのコピーと、チェックアウトとの違いは、コピー回数のインクリメントが可能である点である。コピー回数のインクリメントは、コピーにより記録媒体に記録されたコンテンツを再生不能にするという処理("チェックイン"と呼ばれる。)を行った後でなされる。
【0082】
(K)権利管理情報において利用可能な条件をどのように指定するかは、どのような態様でも良い。例えば再生やコピーの残り回数による指定であってもよいし、上限数の指定であってもよい。残り時間による指定であってもよいし、上限時間の設定や有効期間の指定(年月日の指定)であってもよい。
【0083】
【発明の効果】
以上説明したように、本発明に係る半導体メモリカードは、上述したよう課題解決のための技術的な特徴を有しているので、複数ファイルに虫食い状に空き領域が存在している場合でも、この状態情報を参照することにより、空き領域をもったファイルの特定を高速に行うことができる。ファイルアクセスは、状態情報のオープンと、空き領域をもつファイルのオープンの計2回になるので、空きのエントリー領域をもつファイルを捜し求めて、複数ファイルをオープンするという手間から解放され、新たなコンテンツの書き込みに要する時間を短縮することができる。
【0084】
半導体メモリカードが上述したような記録形式である場合、新たなファイルのクリエイトは、既存ファイル内の未使用エントリー領域が埋まってからになるので、新しいファイルがむやみにクリエイトされることはない。長期的に見て、ファイルの数を最小限に留めることができるので、半導体メモリカードの記録内容をスッキリと整理しておくことができる。半導体メモリカードがSDメモリカードである場合、プロテクト領域は、SDメモリカード全体領域に対して、比較的小さめにとる場合が多い。具体的にいうなら、SDメモリカード全体領域に対して1%程度の割合で確保される。この場合プロテクト領域内のファイルの個数も制限されることになる。しかし上述した半導体メモリカードは、ファイルの個数をなるべく小さくするので、プロテクト領域を利用するにあたって非常に望ましいという効果を奏する。
【図面の簡単な説明】
【図1】(a)第1実施形態に係るSDメモリカードの外観形状を示す図である。
(b)SDメモリカード100の階層構造を示す図である。
(c)SDメモリカード100における物理層の構成を示す図である。
【図2】 SDメモリカードが具備している、ユーザデータ領域及びプロテクト領域のファイル構成、ディレクトリ構成を示す図である。
【図3】 EPUBxxx.KEYの内部構成を示す図である。
【図4】 複数のKey&Rule Entryと、ユーザデータ領域における複数のコンテンツとの対応関係を示す図である。
【図5】 EPUBxxx.KEY内のビットマップの一例を示す図である。
【図6】 EPUBxxx.KEY内のビットマップの具体的な設定例を示す図である。
【図7】 図6のようにEPUB005.KEY内のKey&Rule Entryが設定されている場合、EPUB005.KEY内のビットマップがどのように設定されるかを示す図である。
【図8】 SD_EPUB.MMG内のビットマップを示す図である。
【図9】 EPUB001.KEY〜EPUB005.KEYが図6の状態になっている場合において、SD_EPUB.MMG内のビットマップがどのように設定されるかを示す図である。
【図10】 図6に示したEPUB005.KEY内の3個目のKey&Rule Entryと、ユーザデータ領域に記録されている1つ目のコンテンツ001とが対応している場合、変換テーブル格納ファイルがどのように設定されるかを示す図である。
【図11】(a)第2実施形態において1つのクラスタからなるファイルとして構成されたSD_EPUB.MMG及びEPUB001.KEY,EPUB002.KEY,EPUB003.KEY・・・を示す図である。
(b)消去可能ブロックと、クラスタとの関係を示す図である。
(c)x=1と定められた場合のクラスタを示す図である。
(d)x=16と定められた場合のクラスタを示す図である。
【図12】(a)第3実施形態に係るプロテクト領域の詳細なフォーマットを示す図である。
(b)s個の消去可能ブロックに含まれるs個のクラスタのうち、y個のクラスタをボリューム管理情報の記録に割り当てる場合を想定した図である。
(c)x=1と設定された場合、ボリューム管理情報の記録にどれだけのクラスタが割り当てられるかを示す図である。
(d)x=16と設定された場合、ボリューム管理情報の記録にどれだけのクラスタを割り当てるかを示す図である。
【図13】 かかるサイズ調整がなされたプロテクト領域のレイアウトをより詳細に示した図である。
【図14】(a)民生用音響機器である記録装置を示す図である。
(b)パソコン等の情報機器である記録装置を示す図である。
【図15】 第4実施形態に係る記録装置の内部構成を示す図である。
【図16】 書込処理を実現する処理手順を示すフローチャートである。
【図17】 コンテンツの再生処理の処理手順を示すフローチャートである。
【図18】 コンテンツの削除処理の処理手順を示すフローチャートである。
【符号の説明】
1 システム領域
2 Hidden領域
3 プロテクト領域
4 AKE処理部
5 AKE処理部
6 Ks復号化部
7 Ks暗号化部
8 ユーザデータ領域
10 内部メモリ
11 ブラウザ部
12 セキュア処理部
13 暗号化解除部
14 再生部
15 制御部
100 メモリカード
101 プロテクトスイッチ
Claims (15)
- 半導体メモリカードであって、
接続される装置との間で正当性を相互に認証する認証回路と、相互認証により正当性が確認された場合に、当該装置によってアクセスされるプロテクト領域を備え、
前記プロテクト領域には、複数のエントリーセットファイルと、1つのファイル状態管理ファイルとが記録されており、
各前記エントリーセットファイルは、それぞれ、固定数のエントリー領域と、エントリー状態情報とを含み、エントリー状態情報は、1つのエントリーセットファイル内におけるそれぞれのエントリー領域に対応したフラグを具備することで、エントリー領域のそれぞれに対応したテーブル構造を有しており、各フラグはオフに設定されることにより、対応するエントリー領域が未使用であることを示し、オンに設定されることにより、対応するエントリー領域が使用中であることを示し、
前記ファイル状態管理ファイルは、ファイル状態情報を含み、ファイル状態情報は、前記プロテクト領域に記録されているエントリーセットファイルのそれぞれに対応したフラグを具備することで、エントリーセットファイルのそれぞれに対応したテーブル構造を有しており、各フラグは、対応するエントリーセットファイルが未使用のエントリー領域を1つ以上有している第1状態であるか、又は、全てのエントリー領域が使用中である第2状態であるかを示し、
ファイル状態管理ファイル及びエントリーセットファイルを構成しているクラスタのサイズは、前記半導体メモリカードにおける消去可能ブロックのサイズそのもの又は当該サイズの整数分の一に設定されている
ことを特徴とする半導体メモリカード。 - 請求項1記載の半導体メモリカードにおけるエントリーセットファイル内の空きのエントリー領域にデータを記録する記録装置であって、
前記半導体メモリカードの認証回路との間で相互認証を行う認証手段と、
前記認証手段により、正当性が確認された場合に、ファイル状態管理ファイルを半導体メモリカードにおけるプロテクト領域から読み取る読取手段と、
読み取られたファイル状態管理ファイル内の状態情報を参照して、前記半導体メモリカードにおけるプロテクト領域に記録されている複数エントリーセットファイルのうち、第1状態にあるエントリーセットファイルを特定し、特定されたエントリーセットファイル内部のエントリー状態情報を取得する特定手段と、
特定されたエントリーセット内部のエントリー領域のうち、オフフラグに対応するエントリー領域にデータを書き込む書込手段と、
データの書き込みにより、エントリーセットファイル内のエントリー領域が全て使用中となれば、そのエントリーセットファイルが第2状態になった旨を示すよう、プロテクト領域内のファイル状態管理ファイルを更新する更新手段と
を備える記録装置。 - 前記更新手段は、
第2状態にあるエントリーセットファイルにおいて、その中の1つのエントリー領域が使用中から未使用に変化した場合、そのエントリーセットファイルが第2状態から第1状態になった旨を示すよう、ファイル状態管理ファイルを更新する
請求項2記載の記録装置。 - 前記前記特定手段により特定されるエントリーセットファイルは、エントリー状態情報におけるフラグ列の先頭に一番近いオフフラグに対応するエントリーセットファイルである
請求項2記載の記録装置。 - 前記記録装置は更に
前記書込手段が読み取られたファイル状態情報を参照した結果、半導体メモリカードにおけるプロテクト領域中の全エントリーセットファイルが第2状態であることが判明した場合に、第1状態にあるエントリーセットファイルを新たにクリエイトするクリエイト手段
を備える請求項2記載の記録装置。 - 前記書込手段により書込先に選ばれるエントリー領域に対応するオフフラグは、フラグ列の先頭に一番近いオフフラグである、請求項2記載の記録装置。
- 前記半導体メモリカードは更に、暗号化コンテンツが複数記録されたユーザデータ領域を備え、
プロテクト領域に記録されたエントリーセットファイル内の複数エントリー領域のそれぞれは、ユーザデータ領域における暗号化コンテンツのそれぞれに割り当てられており、
エントリー領域に対して書込手段が書き込むデータは、
そのエントリー領域が割り当てられた暗号化コンテンツについての復号鍵又は権利管理情報を含む、請求項2記載の記録装置。 - 請求項1記載の半導体メモリカードにおけるエントリーセットファイル内の空きのエントリー領域にデータを記録させる手順をコンピュータに行わせるプログラムであって、
前記半導体メモリカードの認証回路との間で相互認証を行う認証ステップと、
前記認証ステップにより、正当性が確認された場合に、ファイル状態管理ファイルを半導体メモリカードにおける前記プロテクト領域から読み取る読取ステップと、
読み取られたファイル状態管理ファイル内の状態情報を参照して、前記半導体メモリカードにおけるプロテクト領域に記録されている複数エントリーセットファイルのうち、第1状態にあるエントリーセットファイルを特定し、特定されたエントリーセットファイル内部のエントリー状態情報を取得する特定ステップと、
特定されたエントリーセット内部のエントリー領域のうち、オフフラグに対応するエントリー領域にデータを書き込む書込ステップと、
データの書き込みにより、エントリーセットファイル内のエントリー領域が全て使用中となれば、そのエントリーセットファイルが第2状態になった旨を示すよう、半導体メモリカードにおけるプロテクト領域内のファイル状態管理ファイルを更新する更新ステップと
をコンピュータに行わせるプログラム。 - 前記更新ステップは、
第2状態にあるエントリーセットファイルにおいて、その中の1つのエントリー領域が使用中から未使用に変化した場合、そのエントリーセットファイルが第2状態から第1状態になった旨を示すようファイル状態管理ファイルを更新する、請求項8記載のプログラム。 - 前記前記特定ステップにより特定されるエントリーセットファイルは、エントリー状態情報におけるフラグ列の先頭に一番近いオフフラグに対応するエントリーセットファイルである、請求項8記載のプログラム。
- 前記プログラムは更に、
前記書込ステップが読み取られたファイル状態情報を参照した結果、半導体メモリカード中の全エントリーセットファイルが第2状態であることが判明した場合に、第1状態にあるエントリーセットファイルを新たにクリエイトするクリエイトステップ
を有する請求項8記載のプログラム。 - 前記書込ステップにより書込先に選ばれるエントリー領域に対応するオフフラグは、フラグ列の先頭に一番近いオフフラグである、請求項8記載のプログラム。
- 前記半導体メモリカードは更に、暗号化コンテンツが複数記録されたユーザデータ領域を備え、
プロテクト領域に記録されたエントリーセットファイル内の複数エントリー領域のそれぞれは、ユーザデータ領域における暗号化コンテンツのそれぞれに割り当てられており、
エントリー領域に対して書込ステップが書き込むデータは、
そのエントリー領域が割り当てられた暗号化コンテンツについての復号鍵又は権利管理情報を含む、請求項8記載のプログラム。 - 請求項8記載のプログラムが記録されているコンピュータ読み取り可能なプログラム。
- 請求項1記載の半導体メモリカードにおけるエントリーセットファイル内の空きのエントリー領域にデータを記録する記録方法であって、
前記半導体メモリカードの認証回路との間で相互認証を行う認証ステップと、
前記認証ステップにより、正当性が確認された場合に、ファイル状態管理ファイルを半導体メモリカードにおける前記プロテクト領域から読み取る読取ステップと、
読み取られたファイル状態管理ファイル内の状態情報を参照して、前記半導体メモリカードにおけるプロテクト領域に記録されている複数エントリーセットファイルのうち、第1状態にあるエントリーセットファイルを特定し、特定されたエントリーセットファイル内部のエントリー状態情報を取得する特定ステップと、
特定されたエントリーセット内部のエントリー領域のうち、オフフラグに対応するエントリー領域にデータを書き込む書込ステップと、
データの書き込みにより、エントリーセットファイル内のエントリー領域が全て使用中となれば、そのエントリーセットファイルが第2状態になった旨を示すよう、半導体メモリカード上の状態情報を更新する更新ステップと、を有する記録方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002196318A JP3981303B2 (ja) | 2001-07-05 | 2002-07-04 | 半導体メモリカード、記録装置、プログラム、方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001-204322 | 2001-07-05 | ||
JP2001204322 | 2001-07-05 | ||
JP2002196318A JP3981303B2 (ja) | 2001-07-05 | 2002-07-04 | 半導体メモリカード、記録装置、プログラム、方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003085010A JP2003085010A (ja) | 2003-03-20 |
JP3981303B2 true JP3981303B2 (ja) | 2007-09-26 |
Family
ID=26618175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002196318A Expired - Lifetime JP3981303B2 (ja) | 2001-07-05 | 2002-07-04 | 半導体メモリカード、記録装置、プログラム、方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3981303B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4667014B2 (ja) * | 2004-11-18 | 2011-04-06 | キヤノン株式会社 | 記憶管理装置及びその制御方法 |
US7823214B2 (en) * | 2005-01-07 | 2010-10-26 | Apple Inc. | Accessory authentication for electronic devices |
JP2007102450A (ja) * | 2005-10-04 | 2007-04-19 | Matsushita Electric Ind Co Ltd | コンテンツ記録媒体 |
JP2010250648A (ja) * | 2009-04-17 | 2010-11-04 | Sharp Corp | コンテンツ購入システム、記録媒体、及び再生装置 |
WO2024045104A1 (en) * | 2022-09-01 | 2024-03-07 | Micron Technology, Inc. | Virtual indexing in memory device |
-
2002
- 2002-07-04 JP JP2002196318A patent/JP3981303B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2003085010A (ja) | 2003-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100859922B1 (ko) | 기록장치, 기록매체, 기록방법 | |
US6829674B2 (en) | Semiconductor memory card access apparatus, a computer-readable recording medium, an initialization method, and a semiconductor memory card | |
JP3553847B2 (ja) | コンテンツ複製システム、ドライブ装置、複製方法及びコンピュータ読取可能な記録媒体 | |
JP4101975B2 (ja) | 可搬型記憶媒体を用いたデータ記録/再生装置 | |
JP3981303B2 (ja) | 半導体メモリカード、記録装置、プログラム、方法 | |
JP2009516961A (ja) | キー及び/又は権利オブジェクトを管理する方法及びシステム | |
US20120124314A1 (en) | Recording medium | |
JP2004246851A (ja) | 記録媒体の読み出し制限方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070213 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070412 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070605 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070629 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3981303 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100706 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110706 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110706 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120706 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120706 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130706 Year of fee payment: 6 |
|
EXPY | Cancellation because of completion of term |