(57)【特許請求の範囲】
【請求項１】
複数のファイルが記録可能なプログラム領域と、上記プログラム領域に記録された所定ファイルに対する改ざんを検出するための再生制限値群の情報を管理する管理領域とを備える記録媒体からデータの再生を行う再生装置において、
上記記録媒体に記録されているファイルに対して再生を行う度に上記記録媒体の管理領域に管理された改ざんを検出するための再生制限値群の情報に対して所定の関数に基づく演算を施す演算手段と、
前回の再生指示時に、上記演算手段において上記再生制限値群の所定の情報から演算され、第１の領域に記録されている第１の値と、今回の再生指示時に、上記演算手段において上記再生制限値群の所定の情報から演算され、第２の領域に記録される第２の値とを比較する比較手段と、
上記比較手段において前回演算された上記第１の値と今回演算された上記第２の値とが同一であるときに、上記第２の値を上記第１の領域に複写し、今回再生指示されたファイルの再生を許可する制御手段と
を備えることを特徴とする再生装置。
【請求項２】
請求項１において、
上記改ざんを検出するための再生制限値群の情報は、少なくとも再生回数および／または再生制限値であることを特徴とする再生装置。
【請求項３】
請求項１において、
上記改ざんを検出するための再生制限値群の情報は、ファイルの属性情報、再生制限フラグ、再生開始日、再生期限日、ファイルの再生回数、再生許可回数、複写制御フラグ、高速デジタルコピー許可回数であることを特徴とする再生装置。
【請求項４】
請求項１において、
上記演算手段における所定の関数に基づく演算は、ハッシュ関数であり、上記第１の値および上記第２の値はハッシュ値であることを特徴とする再生装置。
【請求項５】
請求項１において、
上記再生装置は、さらに内部タイマを有し、
上記内部タイマにおいて計数された日時情報が上記再生期限日以降であった場合に、以降の再生を上記制御手段において、禁止することを特徴とする再生装置。
【請求項６】
請求項１において、
上記再生装置は、さらに内部タイマを有し、
上記内部タイマにおいて計数された日時情報が上記再生開始日以降であると判断された場合に、以降の再生を上記制御手段において、許可することを特徴とする再生装置。
【請求項７】
請求項１において、
上記各ファイルには暗号化のためのキー情報が記録されており、上記演算手段は、上記再生指示が行われたファイルに記録されている上記キー情報と、上記改ざんを検出するための再生制限値群の情報とに基づいて、所定の関数に基づく演算を行うことを特徴とする再生装置。
【請求項８】
請求項１において、
上記各ファイルには暗号化のためのキー情報が記録されており、所定のファイルに対して編集処理が行われた場合には、新たなキー情報を生成しなおして、上記演算手段は、新たに生成した上記キー情報と、上記改ざんを検出するための再生制限値群の情報とに基づいて、所定の関数に基づく演算を行うことを特徴とする再生装置。
【請求項９】
改ざんを検出するための情報が管理されている属性ヘッダが付加されたメインファイルと、少なくとも時計情報が管理されている再生管理ファイルが記録されている記録媒体を再生する再生装置において、
上記記録媒体に記録されているメインファイルの再生を行う度に上記記録媒体の管理領域に管理された改ざんを検出するための情報に対して所定の関数に基づく演算を施すと共に、上記時計情報が更新される度に上記時計情報に対して演算を施す演算手段と、
前回の時計情報更新時に、上記時計情報が上記演算手段において演算され、第１の領域に記録されている第１の値と、今回の時計情報更新時に、上記時計情報が上記演算手段において演算され、第２の領域に記録される第２の値とを比較する第１の比較手段と、
前回の再生指示時に、上記演算手段において再生回数から求められた第３の値と、今回の再生指示時に、上記演算手段において再生回数から求められた第４の値とを比較する第２の比較手段と、
上記第１の比較手段において、前回演算された上記第１の値と今回演算された上記第２の値とが同一であるとき、上記第２の値を上記第１の領域に複写し、再生を許可し、または上記第２の比較手段において前回演算された上記第３の値と今回演算された上記第４の値とが同一であるときに、再生を許可する制御手段と
を備えることを特徴とする再生装置。
【請求項１０】
請求項９において、
上記改ざんを検出するための情報は、少なくとも再生制限値であることを特徴とする再生装置。
【請求項１１】
請求項９において、
上記改ざんを検出するための情報は、ファイルの属性情報、再生制限フラグ、再生開始日、再生期限日、ファイルの再生回数、再生許可回数、複写制御フラグ、高速デジタルコピー許可回数であることを特徴とする再生装置。
【請求項１２】
請求項９において、
上記演算手段における所定の関数に基づく演算は、ハッシュ関数であり、上記第１の値、上記第２の値、上記第３の値、および上記第４の値はハッシュ値であることを特徴とする再生装置。
【請求項１３】
請求項９において、
上記再生装置は、さらに内部タイマを有し、
上記内部タイマにおいて計数された日時情報が上記再生期限日以降であった場合に、以降の再生を上記制御手段において、禁止することを特徴とする再生装置。
【請求項１４】
請求項９において、
上記再生装置は、さらに内部タイマを有し、
上記内部タイマにおいて計数された日時情報が上記再生開始日以降であると判断された場合に、以降の再生を上記制御手段において、許可することを特徴とする再生装置。
【請求項１５】
請求項９において、
上記各メインファイルには、暗号化のためのキー情報が記録されており、上記演算手段は、上記再生指示が行われたメインファイルに記録されている上記キー情報と上記改ざんを検出するための情報とに基づいて、所定の関数による演算を行うことを特徴とする再生装置。
【請求項１６】
請求項９において、
上記時計情報は、ファイルが記録される際に生成され、生成した上記メインファイルに含まれるキー情報と、上記時計情報とに基づいて所定の関数による演算を施すことを特徴とする再生装置。
【請求項１７】
請求項９において、
上記各メインファイルには、暗号化のためのキー情報が記録されており、所定のファイルに対して編集処理が行われた場合には、新たなキー情報を生成しなおして、上記演算手段は、新たに生成した上記キー情報と上記改ざんを検出するための情報とに基づいて、所定の関数に基づく演算を行うことを特徴とする再生装置。
【請求項１８】
複数のファイルが記録可能なプログラム領域と、上記プログラム領域に記録された所定ファイルに対する改ざんを検出するための情報を管理する管理領域とを備える記録媒体からデータの再生を行う再生方法において、
演算手段では、上記記録媒体に記録されているファイルに対して再生を行う度に上記記録媒体の管理領域に管理された改ざんを検出するための情報に対して所定の関数に基づく演算を施し、
比較手段では、前回の再生指示時に、上記管理領域に管理されている時計情報が演算され、第１の領域に記録されている第１の値と、今回の再生指示時に、上記時計情報が演算され、第２の領域に記録される第２の値とを比較し、
制御手段では、上記比較結果において前回演算された上記第１の値と今回演算された上記第２の値とが同一であるときに、上記第２の値を上記第１の領域に複写し、今回再生指示されたファイルの再生を許可する
を備えることを特徴とする再生方法。
【請求項１９】
改ざんを検出するための情報が管理されている属性ヘッダが付加されたメインファイルと、少なくとも時計情報が管理されている再生管理ファイルが記録されている記録媒体を再生する再生方法において、
演算手段では、上記記録媒体に記録されているメインファイルの再生を行う度に上記記録媒体の管理領域に管理された改ざんを検出するための情報に対して所定の関数に基づく演算を施すと共に、上記時計情報が更新される度に上記時計情報に対して演算を施し、
第１の比較手段では、前回の時計情報更新時に、上記時計情報が演算され、第１の領域に記録されている第１の値と、今回の時計情報更新時に、上記時計情報が演算され、第２の領域に記録される第２の値とを比較し、
第２の比較手段では、前回の再生指示時に、再生回数から求められた第３の値と、今回の再生指示時に、上記再生回数から求められた第４の値とを比較し、
制御手段では、前回演算された上記第１の値と今回演算された上記第２の値とが同一であるとき、上記第２の値を上記第１の領域に複写し、再生を許可し、または前回演算された上記第３の値と今回演算された上記第４の値とが同一であるときに、再生を許可する
を備えることを特徴とする再生方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、着脱可能なメモリカードに記録されたファイルに関して改ざんチェックを行う再生装置および再生方法に関する。
【０００２】
【従来の技術】
ＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）と呼ばれる電気的に書き換え可能な不揮発性メモリは、１ビットを２個のトランジスタで構成するために、１ビット当たりの専有面積が大きく、集積度を高くするのに限界があった。この問題を解決するために、全ビット一括消去方式により１ビットを１トランジスタで実現することが可能なフラッシュメモリが開発された。フラッシュメモリは、磁気ディスク、光ディスク等の記録媒体に代わりうるものとして期待されている。
【０００３】
また、フラッシュメモリを機器に対して着脱自在に構成したメモリカードも知られている。このメモリカードを使用すれば、従来のＣＤ（コンパクトディスク）、ＭＤ（ミニディスク）等のディスク状記録媒体に換えてメモリカードを使用するディジタルオーディオ記録／再生装置を実現することができる。
【０００４】
一方、音声・映像情報のディジタル化およびマルチメディアへの対応に伴って近年、著作権保護が重視されている。また、情報サービスの分野においては、ディジタル化された音声・映像情報に何らかの再生制限情報を付加して記録媒体に記録し、この形態でもって情報を利用者に対して提供したり、また、ディジタル放送やインターネットを利用してディジタル化された音声・映像情報に何らかの再生制限情報を付加して各利用者に配信するサービスが検討されている。利用者は、再生制限情報で示される期間、回数等の範囲で、音声・映像情報（コンテンツ）を再生することができる。そして、若し、利用者がその結果、必要とすれば、有料で、その音声・映像情報をメモリカードに記録することができる。
【０００５】
【発明が解決しようとする課題】
従来、再生制限情報が付加された情報自体を記録し、保存することは、容易になされる。しかしながら、その情報が示す値に意味がある時に、この値を何らかの手段で不正に改ざんが行われた場合には、それを検出することができず再生制限の意味をなさずに問題となる。また、改ざんを検出する簡単な方法としては、ＣＲＣ（Cyclic Redundancy Check)を求めて得られた値と共に、ＣＲＣとを書き込みことで改ざんの検出までは可能であるが、ＣＲＣ自体良く知られた計算式であるため、改ざんの後でＣＲＣ自体も改ざんされた場合には、対応のしようがないという問題点を有する。
【０００６】
従って、この発明の目的は、再生制限情報の改ざんを確実に検出することができると共に、改ざんを検出した際には、確実にコンテンツの再生を禁止することができる再生装置および再生方法を提供することにある。
【０００７】
【課題を解決するための手段】
以上の問題を解決するために請求項１の発明は、複数のファイルが記録可能なプログラム領域と、プログラム領域に記録された所定ファイルに対する改ざんを検出するための再生制限値群の情報を管理する管理領域とを備える記録媒体からデータの再生を行う再生装置において、記録媒体に記録されているファイルに対して再生を行う度に記録媒体の管理領域に管理された改ざんを検出するための再生制限値群の情報に対して所定の関数に基づく演算を施す演算手段と、前回の再生指示時に、演算手段において再生制限値群の所定の情報から演算され、第１の領域に記録されている第１の値と、今回の再生指示時に、演算手段において再生制限値群の所定の情報から演算され、第２の領域に記録される第２の値とを比較する比較手段と、比較手段において前回演算された第１の値と今回演算された第２の値とが同一であるときに、第２の値を第１の領域に複写し、今回再生指示されたファイルの再生を許可する制御手段とを備えることを特徴とする再生装置である。
【０００８】
また、請求項９の発明は、改ざんを検出するための情報が管理されている属性ヘッダが付加されたメインファイルと、少なくとも時計情報が管理されている再生管理ファイルが記録されている記録媒体を再生する再生装置において、記録媒体に記録されているメインファイルの再生を行う度に記録媒体の管理領域に管理された改ざんを検出するための情報に対して所定の関数に基づく演算を施すと共に、時計情報が更新される度に時計情報に対して演算を施す演算手段と、前回の時計情報更新時に、時計情報が演算手段において演算され、第１の領域に記録されている第１の値と、今回の時計情報更新時に、時計情報が演算手段において演算され、第２の領域に記録される第２の値とを比較する第１の比較手段と、前回の再生指示時に、演算手段において再生回数から求められた第３の値と、今回の再生指示時に、演算手段において再生回数から求められた第４の値とを比較する第２の比較手段と、第１の比較手段において、前回演算された第１の値と今回演算された第２の値とが同一であるとき、第２の値を第１の領域に複写し、再生を許可し、または第２の比較手段において前回演算された第３の値と今回演算された第４の値とが同一であるときに、再生を許可する制御手段とを備えることを特徴とする再生装置である。
【０００９】
そして、請求項１８の発明は、複数のファイルが記録可能なプログラム領域と、プログラム領域に記録された所定ファイルに対する改ざんを検出するための情報を管理する管理領域とを備える記録媒体からデータの再生を行う再生方法において、演算手段では、記録媒体に記録されているファイルに対して再生を行う度に記録媒体の管理領域に管理された改ざんを検出するための情報に対して所定の関数に基づく演算を施し、比較手段では、前回の再生指示時に、管理領域に管理されている時計情報が演算され、第１の領域に記録されている第１の値と、今回の再生指示時に、時計情報が演算され、第２の領域に記録される第２の値とを比較し、制御手段では、比較結果において前回演算された第１の値と今回演算された第２の値とが同一であるときに、第２の値を第１の領域に複写し、今回再生指示されたファイルの再生を許可するを備えることを特徴とする再生方法である。
【００１０】
また、請求項１９の発明は、改ざんを検出するための情報が管理されている属性ヘッダが付加されたメインファイルと、少なくとも時計情報が管理されている再生管理ファイルが記録されている記録媒体を再生する再生方法において、演算手段では、記録媒体に記録されているメインファイルの再生を行う度に記録媒体の管理領域に管理された改ざんを検出するための情報に対して所定の関数に基づく演算を施すと共に、時計情報が更新される度に時計情報に対して演算を施し、第１の比較手段では、前回の時計情報更新時に、時計情報が演算され、第１の領域に記録されている第１の値と、今回の時計情報更新時に、時計情報が演算され、第２の領域に記録される第２の値とを比較し、第２の比較手段では、前回の再生指示時に、再生回数から求められた第３の値と、今回の再生指示時に、再生回数から求められた第４の値とを比較し、制御手段では、前回演算された第１の値と今回演算された第２の値とが同一であるとき、第２の値を第１の領域に複写し、再生を許可し、または前回演算された第３の値と今回演算された第４の値とが同一であるときに、再生を許可するを備えることを特徴とする再生方法である。
【００１１】
この発明では、再生動作に先立って、再生制限情報のハッシュ値が算出され、得られたハッシュ値が外部からは見えないメモリ領域に保持される。前回計算されたハッシュ値と今回計算されたハッシュ値とが比較され、一致しているかどうかにより改ざんの検出がなされる。一致していない場合には、改ざん検出フラグを立てると共に、再生動作を禁止する。このため、確実に改ざんが検出されると共に、改ざんが検出された際には、コンテンツを再生できない。
【００１２】
【発明の実施の形態】
以下、この発明の一実施形態について説明する。図１は、この発明の一実施形態におけるメモリカードを使用したディジタルオーディオレコーダ／プレーヤの全体の構成を示す。この一実施形態は、記録媒体として、着脱自在のメモリカードを使用するディジタルオーディオ信号の記録および再生機である。より具体的には、このレコーダ／プレーヤは、アンプ装置、スピーカ、ＣＤプレーヤ、ＭＤレコーダ、チューナ等と共にオーディオシステムを構成する。この発明は、これ以外のオーディオレコーダに対しても適用できる。すなわち、携帯型記録再生装置に対しても適用できる。また、衛星を使用したデータ通信、ディジタル放送、インターネット等を経由して配信されるディジタルオーディオ信号を記録するセットトップボックスに対しても適用できる。さらに、ディジタルオーディオ信号以外に動画データ、静止画データ等の記録／再生に対してもこの発明を適用できる。一実施形態においても、ディジタルオーディオ信号以外の画像、文字等の付加情報を記録／再生可能としている。
【００１３】
記録再生装置は、それぞれ１チップＩＣで構成されたオーディオエンコーダ／デコーダＩＣ１０、セキュリティＩＣ２０、ＤＳＰ(Digital Signal Processor)３０を有する。さらに、記録再生装置本体に対して着脱自在のメモリカード４０を備える。メモリカード４０は、フラッシュメモリ（不揮発性メモリ）、メモリコントロールブロック、ＤＥＳ(Data Encryption Standard)の暗号化回路を含むセキュリティブロックが１チップ上にＩＣ化されたものである。なお、この一実施形態では、ＤＳＰ３０を使用しているが、マイクロコンピュータを使用しても良い。
【００１４】
オーディオエンコーダ／デコーダＩＣ１０は、オーディオインタフェース１１およびエンコーダ／デコーダブロック１２を有する。エンコーダ／デコーダブロック１２は、ディジタルオーディオ信号をメモリカード４０に書き込むために高能率符号化し、また、メモリカード４０から読み出されたデータを復号する。高能率符号化方法としては、ミニディスクで採用されているＡＴＲＡＣ(Adaptive Transform Acoustic Coding)を改良したＡＴＲＡＣ３が使用される。
【００１５】
上述のＡＴＲＡＣ３では、サンプリング周波数＝４４．１ｋHzでサンプリングした量子化ビットが１６ビットのオーディオデータを高能率符号化処理する。ＡＴＲＡＣ３でオーディオデータを処理する時の最小のデータ単位がサウンドユニットＳＵである。１ＳＵは、１０２４サンプル分（１０２４×１６ビット×２チャンネル）を数百バイトに圧縮したものであり、時間にして約２３ｍ秒である。上述の高能率符号化処理により約１／１０にオーディオデータが圧縮される。ミニディスクで適用されたＡＴＲＡＣ１と同様に、ＡＴＲＡＣ３方式において、信号処理されたオーディオ信号の圧縮／伸長処理による音質の劣化は少ない。
【００１６】
ライン入力セレクタ１３は、ＭＤの再生出力、チューナの出力、テープ再生出力を選択的にＡ／Ｄ変換器１４に供給する。Ａ／Ｄ変換器１４は、入力されるライン入力信号をサンプリング周波数＝４４．１ｋHz、量子化ビット＝１６ビットのディジタルオーディオ信号へ変換する。ディジタル入力セレクタ１６は、ＭＤ、ＣＤ、ＣＳ（衛星ディジタル放送）のディジタル出力を選択的にディジタル入力レシーバ１７に供給する。上述のディジタル入力は、例えば光ケーブルを介して伝送される。ディジタル入力レシーバ１７の出力がサンプリングレートコンバータ１５に供給され、ディジタル入力のサンプリング周波数が４４．１ｋHz、量子化ビットが１６ビットのデジタルオーディオ信号に変換される。
【００１７】
オーディオエンコーダ／デコーダＩＣ１０のエンコーダ／デコーダブロック１２からの符号化データがセキュリティＩＣ２０のインタフェース２１を介してＤＥＳの暗号化回路２２に供給される。ＤＥＳの暗号化回路２２は、ＦＩＦＯ２３を有している。ＤＥＳの暗号化回路２２は、コンテンツの著作権を保護するために備えられている。メモリカード４０にも、ＤＥＳの暗号化回路が組み込まれている。記録再生装置のＤＥＳの暗号化回路２２は、複数のマスターキーと機器毎にユニークなストレージキーを持つ。さらに、ＤＥＳの暗号化回路２２は、乱数発生回路を持ち、ＤＥＳの暗号化回路を内蔵するメモリカードと認証およびセッションキーを共有することができる。よりさらに、ＤＥＳの暗号化回路２２は、ＤＥＳの暗号化回路を通してストレージキーでキーをかけなおすことができる。
【００１８】
ＤＥＳの暗号化回路２２からの暗号化されたオーディオデータがＤＳＰ(Digit al Signal Processor) ３０に供給される。ＤＳＰ３０は、着脱機構（図示しない）に装着されたメモリカード４０とメモリインタフェースを介しての通信を行い、暗号化されたデータをフラッシュメモリに書き込む。ＤＳＰ３０とメモリカード４０との間では、シリアル通信がなされる。また、メモリカードの制御に必要なメモリ容量を確保するために、ＤＳＰ３０に対して外付けのＳＲＡＭ(Static Random Access Memory) ３１が接続される。
【００１９】
さらに、ＤＳＰ３０に対して、バスインタフェース３２が接続され、図示しない外部のコントローラからのデータがバス３３を介してＤＳＰ３０に供給される。外部のコントローラは、オーディオシステム全体の動作を制御し、操作部からのユーザの操作に応じて発生した録音指令、再生指令等のデータをＤＳＰ３０にバスインタフェース３２を介して与える。また、画像情報、文字情報等の付加情報のデータもバスインタフェース３２を介してＤＳＰ３０に供給される。バス３３は、双方向通信路であり、メモリカード４０から読み出された付加情報データ、制御信号等がＤＳＰ３０、バスインターフェース３２、バス３３を介して外部のコントローラに取り込まれる。外部のコントローラは、具体的には、オーディオシステム内に含まれる他の機器例えばアンプ装置に含まれている。さらに、外部のコントローラによって、付加情報の表示、レコーダの動作状態等を表示するための表示が制御される。表示部は、オーディオシステム全体で共用される。ここで、バス３３を介して送受信されるデータは、著作物ではないので、暗号化がされない。
【００２０】
ＤＳＰ３０によってメモリカード４０から読み出した暗号化されたオーディオデータは、セキュリティＩＣ２０によって復号化され、オーディオエンコーダ／デコーダＩＣ１０によってＡＴＲＡＣ３の復号化処理を受ける。オーディオエンコーダ／デコーダ１０の出力がＤ／Ａ変換器１８に供給され、アナログオーディオ信号へ変換される。そして、アナログオーディオ信号がライン出力端子１９に取り出される。
【００２１】
ライン出力は、図示しないアンプ装置に伝送され、スピーカまたはヘッドホンにより再生される。Ｄ／Ａ変換器１８に対してミューティング信号が外部のコントローラから供給される。ミューティング信号がミューティングのオンを示す時には、ライン出力端子１９からのオーディオ出力が禁止される。
【００２２】
図２は、ＤＳＰ３０の内部構成を示す。ＤＳＰ３０は、Ｃｏｒｅ３４と、フラッシュメモリ３５と、ＳＲＡＭ３６と、バスインタフェース３７と、メモリカードインタフェース３８と、バスおよびバス間のブリッジとで構成される。ＤＳＰ３０は、マイクロコンピュータと同様な機能を有し、Ｃｏｒｅ３４がＣＰＵに相当する。フラッシュメモリ３５にＤＳＰ３０の処理のためのプログラムが格納されている。ＳＲＡＭ３６と外部のＳＲＡＭ３１とがＲＡＭとして使用される。
【００２３】
ＤＳＰ３０は、バスインタフェース３２、３７を介して受け取った録音指令等の操作信号に応答して、所定の暗号化されたオーディオデータ、所定の付加情報データをメモリカード４０に対して書き込み、また、これらのデータをメモリカード４０から読み出す処理を制御する。すなわち、オーディオデータ、付加情報の記録／再生を行うためのオーディオシステム全体のアプリケーションソフトウェアと、メモリカード４０との間にＤＳＰ３０が位置し、メモリカード４０のアクセス、ファイルシステム等のソフトウェアによってＤＳＰ３０が動作する。
【００２４】
ＤＳＰ３０におけるメモリカード４０上のファイル管理は、既存のパーソナルコンピュータで使用されているＦＡＴシステムが使用される。このファイルシステムに加えて、一実施形態では、後述するようなデータ構成の管理ファイルが使用される。管理ファイルは、メモリカード４０上に記録されているデータファイルを管理する。第１のファイル管理情報としての管理ファイルは、オーディオデータのファイルを管理するものである。第２のファイル管理情報としてのＦＡＴは、オーディオデータのファイルと管理ファイルを含むメモリカード４０のフラッシュメモリ上のファイル全体を管理する。管理ファイルは、メモリカード４０に記録される。また、ＦＡＴは、ルートディレクトリ等と共に、予め出荷時にフラッシュメモリ上に書き込まれている。ＦＡＴの詳細に関しては後述する。
【００２５】
なお、一実施形態では、著作権を保護するために、ＡＴＲＡＣ３により圧縮されたオーディオデータを暗号化している。一方、管理ファイルは、著作権保護が必要ないとして、暗号化を行わないようにしている。また、メモリカードとしても、暗号化機能を持つものと、これを持たないものとがありうる。一実施形態のように、著作物であるオーディオデータを記録するレコーダが対応しているメモリカードは、暗号化機能を持つメモリカードのみである。上述の暗号化機能を有さないメモリカードには、個人が録音したＶｏｉｃｅまたは録画した画像が記録される。
【００２６】
図３は、メモリカード４０の構成を示す。メモリカード４０は、コントロールブロック４１とフラッシュメモリ４２が１チップＩＣとして構成されたものである。プレーヤ／レコーダのＤＳＰ３０とメモリカード４０との間の双方向シリアルインタフェースは、１０本の線からなる。主要な４本の線は、データ伝送時にクロックを伝送するためのクロック線ＳＣＫと、ステータスを伝送するためのステータス線ＳＢＳと、データを伝送するデータ線ＤＩＯ、インターラプト線ＩＮＴとである。その他に電源供給用線として、２本のＧＮＤ線および２本のＶＣＣ線が設けられる。２本の線Ｒｅｓｅｒｖは、未定義の線である。
【００２７】
クロック線ＳＣＫは、データに同期したクロックを伝送するための線である。ステータス線ＳＢＳは、メモリカード４０のステータスを表す信号を伝送するための線である。データ線ＤＩＯは、コマンドおよび暗号化されたオーディオデータを入出力するための線である。インターラプト線ＩＮＴは、メモリカード４０からプレーヤ／レコーダのＤＳＰ３０に対しての割り込みを要求するインターラプト信号を伝送する線である。メモリカード４０を装着した時にインターラプト信号が発生する。但し、この一実施形態では、インターラプト信号をデータ線ＤＩＯを介して伝送するようにしているので、インターラプト線ＩＮＴを接地している。
【００２８】
コントロールブロック４１のシリアル／パラレル変換・パラレル／シリアル変換・インタフェースブロック（Ｓ／Ｐ・Ｐ／Ｓ・ＩＦブロックと略す）４３は、上述した複数の線を介して接続されたレコーダのＤＳＰ３０とコントロールブロック４１とのインタフェースである。Ｓ／Ｐ・Ｐ／Ｓ・ＩＦブロック４３は、プレーヤ／レコーダのＤＳＰ３０から受け取ったシリアルデータをパラレルデータに変換し、コントロールブロック４１に取り込み、コントロールブロック４１からのパラレルデータをシリアルデータに変換してプレーヤ／レコーダのＤＳＰ３０に送る。また、Ｓ／Ｐ・Ｐ／Ｓ・ＩＦブロック４３は、データ線ＤＩＯを介して伝送されるコマンドおよびデータを受け取った時に、フラッシュメモリ４２に対する通常のアクセスのためのコマンドおよびデータと、暗号化に必要なコマンドおよびデータとを分離する。
【００２９】
データ線ＤＩＯを介して伝送されるフォーマットでは、最初にコマンドが伝送され、その後にデータが伝送される。Ｓ／Ｐ・Ｐ／Ｓ・ＩＦブロック４３は、コマンドのコードを検出して、通常のアクセスに必要なコマンドおよびデータか、暗号化に必要なコマンドおよびデータかを判別する。この判別結果に従って、通常のアクセスに必要なコマンドをコマンドレジスタ４４に格納し、データをページバッファ４５およびライトレジスタ４６に格納する。ライトレジスタ４６と関連してエラー訂正符号化回路４７が設けられている。ページバッファ４５に一時的に蓄えられたデータに対して、エラー訂正符号化回路４７がエラー訂正符号の冗長コードを生成する。
【００３０】
コマンドレジスタ４４、ページバッファ４５、ライトレジスタ４６およびエラー訂正符号化回路４７の出力データがフラッシュメモリインタフェースおよびシーケンサ（メモリＩ／Ｆ・シーケンサと略す）５１に供給される。メモリＩＦ・シーケンサ５１は、コントロールブロック４１とフラッシュメモリ４２とのインタフェースであり、両者の間のデータのやり取りを制御する。メモリＩＦ・シーケンサ５１を介してデータがフラッシュメモリ４２に書き込まれる。
【００３１】
フラッシュメモリ４２に書き込まれるＡＴＲＡＣ３により圧縮されたオーディオデータ（以下、ＡＴＲＡＣ３データと表記する）は、著作権保護のために、プレーヤ／レコーダのセキュリティＩＣ２０とメモリカード４０のセキュリティブロック５２とによって、暗号化されたものである。セキュリティブロック５２は、バッファメモリ５３と、ＤＥＳの暗号化回路５４と、不揮発性メモリ５５とを有する。
【００３２】
メモリカード４０のセキュリティブロック５２は、複数の認証キーとメモリカード毎にユニークなストレージキーを持つ。不揮発性メモリ５５は、暗号化に必要なキーを格納するもので、チップ解析を行っても解析不能な構造となっている。この実施形態では、例えばストレージキーが不揮発性メモリ５５に格納される。さらに、乱数発生回路を持ち、対応可能なプレーヤ／レコーダと認証ができ、セッションキーを共有できる。ＤＥＳの暗号化回路５４を通して、コンテンツキーをストレージキーでキーのかけ直しを行う。
【００３３】
例えばメモリカード４０をプレーヤ／レコーダに装着した時に相互に認証がなされる。認証は、プレーヤ／レコーダのセキュリティＩＣ２０とメモリカード４０のセキュリティブロック５２によって行わせる。プレーヤ／レコーダは、装着されたメモリカード４０が対応可能なメモリカードであることを認証し、また、メモリカード４０が相手のプレーヤ／レコーダが対応可能なプレーヤ／レコーダであることを認証すると、相互認証処理が正常に行われたことを意味する。認証が行われると、プレーヤ／レコーダとメモリカード４０がそれぞれセッションキーを生成し、セッションキーを共有する。セッションキーは、認証の度に生成される。
【００３４】
メモリカード４０に対するコンテンツの書き込み時には、プレーヤ／レコーダがセッションキーでコンテンツキーを暗号化してメモリカード４０に渡す。メモリカード４０では、コンテンツキーをセッションキーで復号し、ストレージキーで暗号化してプレーヤ／レコーダに渡す。ストレージキーは、メモリカード４０の一つ一つにユニークなキーであり、プレーヤ／レコーダは、暗号化されたコンテンツキーを受け取ると、フォーマット処理を行い、暗号化されたコンテンツキーと暗号化されたコンテンツをメモリカード４０に書き込む。
【００３５】
以上、メモリカード４０に対する書き込み処理について説明したが、以下メモリカード４０からの読み出し処理について説明する。フラッシュメモリ４２から読み出されたデータがメモリＩＦ・シーケンサ５１を介してページバッファ４５、リードレジスタ４８、エラー訂正回路４９に供給される。ページバッファ４５に記憶されたデータがエラー訂正回路４９によってエラー訂正がなされる。エラー訂正がされたページバッファ４５の出力およびリードレジスタ４８の出力がＳ／Ｐ・Ｐ／Ｓ・ＩＦブロック４３に供給され、上述したシリアルインタフェースを介してプレーヤ／レコーダのＤＳＰ３０に供給される。
【００３６】
読み出し時には、ストレージキーで暗号化されたコンテンツキーとブロックキーで暗号化されたコンテンツとがフラッシュメモリ４２から読み出される。セキュリティブロック５２によって、ストレージキーでコンテンツキーが復号される。復号したコンテンツキーがセッションキーで再暗号化されてプレーヤ／レコーダ側に送信される。プレーヤ／レコーダは、受信したセッションキーでコンテンツキーを復号する。プレーヤ／レコーダは、復号したコンテンツキーでブロックキーを生成する。このブロックキーによって、暗号化されたＡＴＲＡＣ３データを順次復号する。
【００３７】
なお、ConfigＲＯＭ５０は、メモリカード４０のバージョン情報、各種の属性情報等が格納されているメモリである。また、メモリカード４０には、ユーザが必要に応じて操作可能な誤消去防止用のスイッチ６０が備えられている。このスイッチ６０が消去禁止の接続状態にある場合には、フラッシュメモリ４２を消去することを指示するコマンドがレコーダ側から送られてきても、フラッシュメモリ４２の消去が禁止される。さらに、ＯＳＣ Cont.６１は、メモリカード４０の処理のタイミング基準となるクロックを発生する発振器である。
【００３８】
図４は、メモリカードを記憶媒体とするコンピュータシステムのファイルシステム処理階層を示す。ファイルシステム処理階層としては、アプリケーション処理層が最上位であり、その下に、ファイル管理処理層、論理アドレス管理層、物理アドレス管理層、フラッシュメモリアクセスが順次積層される。上述の階層構造において、ファイル管理処理層がＦＡＴシステムである。物理アドレスは、フラッシュメモリの各ブロックに対して付されたもので、ブロックと物理アドレスの対応関係は、不変である。論理アドレスは、ファイル管理処理層が論理的に扱うアドレスである。
【００３９】
図５は、メモリカード４０におけるフラッシュメモリ４２のデータの物理的構成の一例を示す。フラッシュメモリ４２は、セグメントと称されるデータ単位が所定数のブロック（固定長）へ分割され、１ブロックが所定数のページ（固定長）へ分割される。フラッシュメモリ４２では、ブロック単位で消去が一括して行われ、書き込みと読み出しは、ページ単位で一括して行われる。各ブロックおよび各ページは、それぞれ同一のサイズとされ、１ブロックがページ０からページｍで構成される。１ブロックは、例えば８ＫＢ（Ｋバイト）バイトまたは１６ＫＢの容量とされ、１ページが５１２Ｂの容量とされる。フラッシュメモリ４２全体では、１ブロック＝８ＫＢの場合で、４ＭＢ（５１２ブロック）、８ＭＢ（１０２４ブロック）とされ、１ブロック＝１６ＫＢの場合で、１６ＭＢ（１０２４ブロック）、３２ＭＢ（２０４８ブロック）、６４ＭＢ（４０９６ブロック）の容量とされる。
【００４０】
１ページは、５１２バイトのデータ部と１６バイトの冗長部とからなる。冗長部の先頭の３バイトは、データの更新に応じて書き換えられるオーバーライト部分とされる。３バイトの各バイトに、先頭から順にブロックステータス、ページステータス、更新ステータスが記録される。冗長部の残りの１３バイトの内容は、原則的にデータ部の内容に応じて固定とされる。１３バイトは、管理フラグ（１バイト）、論理アドレス（２バイト）、フォーマットリザーブの領域（５バイト）、分散情報ＥＣＣ（２バイト）およびデータＥＣＣ（３バイト）からなる。分散情報ＥＣＣは、管理フラグ、論理アドレス、フォーマットリザーブに対する誤り訂正用の冗長データであり、データＥＣＣは、５１２バイトのデータに対する誤り訂正用の冗長データである。
【００４１】
管理フラグとして、システムフラグ（その値が１：ユーザブロック、０：ブートブロック）、変換テーブルフラグ（１：無効、０：テーブルブロック）、コピー禁止指定（１：ＯＫ、０：ＮＧ）、アクセス許可（１：ｆｒｅｅ、０：リードプロテクト）の各フラグが記録される。
【００４２】
先頭の二つのブロック０およびブロック１がブートブロックである。ブロック１は、ブロック０と同一のデータが書かれるバックアップ用である。ブートブロックは、カード内の有効なブロックの先頭ブロックであり、メモリカードを機器に装填した時に最初にアクセスされるブロックである。残りのブロックがユーザブロックである。ブートブロックの先頭のページ０にヘッダ、システムエントリ、ブート＆アトリビュート情報が格納される。ページ１に使用禁止ブロックデータが格納される。ページ２にＣＩＳ(Card Information Structure)／ＩＤＩ(Identify Drive Information)が格納される。
【００４３】
ブートブロックのヘッダは、ブートブロックＩＤ、ブートブロック内の有効なエントリ数が記録される。システムエントリには、使用禁止ブロックデータの開始位置、そのデータサイズ、データ種別、ＣＩＳ／ＩＤＩのデータ開始位置、そのデータサイズ、データ種別が記録される。ブート＆アトリビュート情報には、メモリカードのタイプ（読み出し専用、リードおよびライト可能、両タイプのハイブリッド等）、ブロックサイズ、ブロック数、総ブロック数、セキュリティ対応か否か、カードの製造に関連したデータ（製造年月日等）等が記録される。
【００４４】
フラッシュメモリは、データの書き換えを行うことにより絶縁膜の劣化を生じ、書き換え回数が制限される。従って、ある同一の記憶領域（ブロック）に対して繰り返し集中的にアクセスがなされることを防止する必要がある。従って、ある物理アドレスに格納されているある論理アドレスのデータを書き換える場合、フラッシュメモリのファイルシステムでは、同一のブロックに対して更新したデータを再度書き込むことはせずに、未使用のブロックに対して更新したデータを書き込むようになされる。その結果、データ更新前における論理アドレスと物理アドレスの対応関係が更新後では、変化する。スワップ処理を行うことで、同一のブロックに対して繰り返して集中的にアクセスがされることが防止され、フラッシュメモリの寿命を延ばすことが可能となる。
【００４５】
論理アドレスは、一旦ブロックに対して書き込まれたデータに付随するので、更新前のデータと更新後のデータの書き込まれるブロックが移動しても、ＦＡＴからは、同一のアドレスが見えることになり、以降のアクセスを適正に行うことができる。スワップ処理により論理アドレスと物理アドレスとの対応関係が変化するので、両者の対応を示す論理−物理アドレス変換テーブルが必要となる。このテーブルを参照することによって、ＦＡＴが指定した論理アドレスに対応する物理アドレスが特定され、特定された物理アドレスが示すブロックに対するアクセスが可能となる。
【００４６】
論理−物理アドレス変換テーブルは、ＤＳＰ３０によってＳＲＡＭ上に格納される。若し、ＲＡＭ容量が少ない時は、フラッシュメモリ中に格納することができる。このテーブルは、概略的には、昇順に並べた論理アドレス（２バイト）に物理アドレス（２バイト）をそれぞれ対応させたテーブルである。フラッシュメモリの最大容量を１２８ＭＢ（８１９２ブロック）としているので、２バイトによって８１９２のアドレスを表すことができる。また、論理−物理アドレス変換テーブルは、セグメント毎に管理され、そのサイズは、フラッシュメモリの容量に応じて大きくなる。例えばフラッシュメモリの容量が８ＭＢ（２セグメント）の場合では、２個のセグメントのそれぞれに対して２ページが論理−物理アドレス変換テーブル用に使用される。論理−物理アドレス変換テーブルを、フラッシュメモリ中に格納する時には、上述した各ページの冗長部における管理フラグの所定の１ビットによって、当該ブロックが論理−物理アドレス変換テーブルが格納されているブロックか否かが指示される。
【００４７】
上述したメモリカードは、ディスク状記録媒体と同様にパーソナルコンピュータのＦＡＴシステムによって使用可能なものである。図５には示されてないが、フラッシュメモリ上にＩＰＬ領域、ＦＡＴ領域およびルート・ディレクトリ領域が設けられる。ＩＰＬ領域には、最初にレコーダのメモリにロードすべきプログラムが書かれているアドレス、並びにメモリの各種情報が書かれている。ＦＡＴ領域には、ブロック（クラスタ）の関連事項が書かれている。ＦＡＴには、未使用のブロック、次のブロック番号、不良ブロック、最後のブロックをそれぞれ示す値が規定される。さらに、ルートディレクトリ領域には、ディレクトリエントリ（ファイル属性、更新年月日、開始クラスタ、ファイルサイズ等）が書かれている。
【００４８】
図６にＦＡＴ管理による管理方法を説明する。この図６は、メモリ内の模式図を示しており、上からパーティションテーブル部、空き領域、ブートセクタ、ＦＡＴ領域、ＦＡＴのバックアップ領域、Ｒｏｏｔ  Ｄｉｒｅｃｔｏｒｙ領域、Ｓｕｂ  Ｄｉｒｅｃｔｏｒｙ領域、データ領域が積層されている。なお、メモリマップは、論理―物理アドレス変換テーブルに基づいて、論理アドレスから物理アドレスへ変換した後のメモリマップである。
【００４９】
上述したブートセクタ、ＦＡＴ領域、ＦＡＴのバックアップ領域、ＲｏｏｔＤｉｒｅｃｔｏｒｙ領域、Ｓｕｂ  Ｄｉｒｅｃｔｏｒｙ領域、データ領域を全部まとめてＦＡＴパーティション領域と称する。
【００５０】
上述のパーティションテーブル部には、ＦＡＴパーティション領域の始めと終わりのアドレスが記録されている。通常フロッピディスクで使用されているＦＡＴには、パーティションテーブル部は備えられていない。最初のトラックには、パーティションテーブル以外のものは置かないために空きエリアができてしまう。
【００５１】
次に、ブートセクタには、１２ビットＦＡＴおよび１６ビットＦＡＴの何れかであるかでＦＡＴ構造の大きさ、クラスタサイズ、それぞれの領域のサイズが記録されている。ＦＡＴは、データ領域に記録されているファイル位置を管理するものである。ＦＡＴのコピー領域は、ＦＡＴのバックアップ用の領域である。ルートデイレクトリ部は、ファイル名、先頭クラスタアドレス、各種属性が記録されており、１ファイルにつき３２バイト使用する。
【００５２】
サブデイレクトリ部は、デレクトリというファイルの属性のファイルとして存在しており、図６の実施形態ではＰＢＬＩＳＴ．ＭＳＦ、ＣＡＴ．ＭＳＡ、ＤＯＧ．ＭＳＡ、ＭＡＮ. ＭＳＦという４つのファイルが存在する。このサブデイレクトリ部には、ファイル名とＦＡＴ上の記録位置が管理されている。すなわち、図６においては、ＣＡＴ．ＭＳＡというファイル名が記録されているスロットには「５」というＦＡＴ上のアドレスが管理されており、ＤＯＧ．ＭＳＡというファイル名が記録されているスロットには「１０」というＦＡＴ上のアドレスが管理されている。
【００５３】
クラスタ２以降が実際のデータ領域で、このデータ領域にこの実施形態では、ＡＴＲＡＣ３で圧縮処理されたオーデイオデータが記録される。さらに、ＭＡＮ. ＭＳＡというファイル名が記録されているスロットには「１１０」というＦＡＴ上のアドレスが管理されている。
【００５４】
この発明の実施形態では、クラスタ５、６、７および８にＣＡＴ．ＭＳＡというファイル名のＡＴＲＡＣ３で圧縮処理されたオーデイオデータが記録され、クラスタ１０、１１および、１２にＤＯＧ．ＭＳＡというファイル名の前半パートであるＤＯＧ−１がＡＴＲＡＣ３で圧縮処理されたオーデイオデータが記録され、クラスタ１００および１０１にＤＯＧ．ＭＳＡというファイル名の後半パートであるＤＯＧ−２がＡＴＲＡＣ３で圧縮処理されたオーデイオデータが記録されている。さらに、クラスタ１１０および１１１にＭＡＮ．ＭＳＡというファイル名のＡＴＲＡＣ３で圧縮処理されたオーデイオデータが記録されている。
【００５５】
この実施形態においては、単一のファイルが２分割されて離散的に記録されている例を示している。また、データ領域上のＥｍｐｔｙとかかれた領域は記録可能領域である。
【００５６】
クラスタ２００以降は、ファイルネームを管理する領域であり、クラスタ２００には、ＣＡＴ．ＭＳＡというファイルが、クラスタ２０１には、ＤＯＧ．ＭＳＡというファイルが、クラスタ２０２にはＭＡＮ．ＭＳＡというファイルが記録されている。ファイル順を並び替える場合には、このクラスタ２００以降で並び替えを行えばよい。
【００５７】
この実施形態のメモリカードが初めて挿入された場合には、先頭のパーティションテーブル部を参照してＦＡＴパーティション領域の始めと終わりのアドレスが記録されている。ブートセクタ部の再生を行った後にＲｏｏｔ  Ｄｉｒｅｃｔｏｒｙ、Ｓｕｂ  Ｄｉｒｅｃｔｏｒｙ部の再生を行う。そして、Ｓｕｂ  Ｄｉｒｅｃｔｏｒｙ部に記録されている再生管理情報ＰＢＬＩＳＴ．ＭＳＦが記録されているスロットを検索して、ＰＢＬＩＳＴ．ＭＳＦが記録されているスロットの終端部のアドレスを参照する。
【００５８】
この実施形態の場合には、ＰＢＬＩＳＴ．ＭＳＦが記録されているスロットの終端部には「２００」というアドレスが記録されているのでクラスタ２００を参照する。クラスタ２００以降は、ファイル名を管理するとともにファイルの再生順を管理する領域であり、この実施形態の場合には、ＣＡＴ. ＭＳＡというファイルが１曲目となり、ＤＯＧ．ＭＳＡというファイルが２曲目となり、ＭＡＮ．ＭＳＡというファイルが３曲目となる。
【００５９】
ここで、クラスタ２００以降を全て参照したら、サブデレクトリ部に移行して、ＣＡＴ. ＭＳＡ、ＤＯＧ．ＭＳＡおよびＭＡＮ．ＭＳＡという名前のファイル名と合致するスロットを参照する。この図６においては、ＣＡＴ．ＭＳＡというファイル名が記録されたスロットの終端には「５」というアドレスが記録され、ＤＯＧ. ＭＳＡというファイルが記録されたスロットの終端には「１０」というアドレスが記録され、ＭＡＮ．ＭＳＡというファイルが記録されたスロットの終端には１１０というアドレスが記録されている。
【００６０】
ＣＡＴ．ＭＳＡというファイル名が記録されたスロットの終端に記録された「５」というアドレスに基づいて、ＦＡＴ上のエントリアドレスを検索する。エントリアドレス５には、「６」というクラスタアドレスがエントリされており、「６」というエントリアドレスを参照すると「７」というクラスタアドレスがエントリされており、「７」というエントリアドレスを参照すると「８」というクラスタアドレスがエントリされており、「８」というエントリアドレスを参照すると「ＦＦＦ」という終端を意味するコードが記録されている。
【００６１】
よって、ＣＡＴ．ＭＳＡというファイルは、クラスタ５、６、７、８のクラスタ領域を使用しており、データ領域のクラスタ５、６、７、８を参照することでＣＡＴ．ＭＳＡというＡＴＲＡＣ３データが実際に記録されている領域をアクセスすることができる。
【００６２】
次に、離散記録されているＤＯＧ. ＭＳＡというファイルを検索する方法を以下に示す。ＤＯＧ. ＭＳＡというファイル名が記録されたスロットの終端には「１０」というアドレスが記録されている。ここで、「１０」というアドレスに基づいて、ＦＡＴ上のエントリアドレスを検索する。エントリアドレス１０には、「１１」というクラスタアドレスがエントリされており、「１１」というエントリアドレスを参照すると「１２」というクラスタアドレスがエントリされており、「１２」というエントリアドレスを参照すると「１００」というクラスタアドレスがエントリされている。さらに、「１００」というエントリアドレスを参照すると「１０１」というクラスタアドレスがエントリされており、「１０１」というエントリアドレスを参照するとＦＦＦという終端を意味するコードが記録されている。
【００６３】
よって、ＤＯＧ．ＭＳＡというファイルは、クラスタ１０、１１、１２、１００、１０１というクラスタ領域を使用しており、データ領域のクラスタ１０、１１、１２を参照することでＤＯＧ．ＭＳＡというファイルの前半パートに対応するＡＴＲＡＣ３データが実際に記録されている領域をアクセスすることができる。さらに、データ領域のクラスタ１００、１０１を参照することでＤＯＧ．ＭＳＡというファイルの後半パートに対応するＡＴＲＡＣ３データが実際に記録されている領域をアクセスすることができる。
【００６４】
さらに、ＭＡＮ．ＭＳＡというファイル名が記録されたスロットの終端に記録された「１１０」というアドレスに基づいて、ＦＡＴ上のエントリアドレスを検索する。エントリアドレス１１０には、「１１１」というクラスタアドレスがエントリされており、「１１１」というエントリアドレスを参照すると「ＦＦＦ」という終端を意味するコードが記録されている。
【００６５】
よって、ＭＡＮ．ＭＳＡというファイルは、クラスタ１１０、１１１というクラスタ領域を使用しており、データ領域のクラスタ１１０、１１１を参照することでＭＡＮ．ＭＳＡというＡＴＲＡＣ３データが実際に記録されている領域をアクセスすることができる。
【００６６】
以上のようにフラッシュメモリ上で離散して記録されたデータファイルを連結してシーケンシャルに再生することが可能となる。
【００６７】
この一実施形態では、上述したメモリカード４０のフォーマットで規定されるファイル管理システムとは別個に、音楽用ファイルに対して、各トラックおよび各トラックを構成するパーツを管理するための管理ファイルを持つようにしている。この管理ファイルは、メモリカード４０のユーザブロックを利用してフラッシュメモリ４２上に記録される。それによって、後述するように、メモリカード４０上のＦＡＴが壊れても、ファイルの修復を可能となる。
【００６８】
この管理ファイルは、ＤＳＰ３０により作成される。例えば最初に電源をオンした時に、メモリカード４０の装着されているか否かが判定され、メモリカードが装着されている時には、認証が行われる。認証により正規のメモリカードであることが確認されると、フラッシュメモリ４２のブートブロックがＤＳＰ３０に読み込まれる。そして、論理−物理アドレス変換テーブルが読み込まれる。読み込まれたデータは、ＳＲＡＭに格納される。ユーザが購入して初めて使用するメモリカードでも、出荷時にフラッシュメモリ４２には、ＦＡＴや、ルートディレクトリの書き込みがなされている。管理ファイルは、録音がなされると、作成される。
【００６９】
すなわち、ユーザのリモートコントロール等によって発生した録音指令が外部のコントローラからバスおよびバスインターフェース３２を介してＤＳＰ３０に与えられる。そして、受信したオーディオデータがエンコーダ／デコーダＩＣ１０によって圧縮され、エンコーダ／デコーダＩＣ１０からのＡＴＲＡＣ３データがセキュリティＩＣ２０により暗号化される。ＤＳＰ３０が暗号化されたＡＴＲＡＣ３データをメモリカード４０のフラッシュメモリ４２に記録する。この記録後にＦＡＴおよび管理ファイルが更新される。ファイルの更新の度、具体的には、オーディオデータの記録を開始し、記録を終了する度に、ＳＲＡＭ３１および３６上でＦＡＴおよび管理ファイルが書き換えられる。そして、メモリカード４０を外す時に、またはパワーをオフする時に、ＳＲＡＭ３１、３６からメモリカード４０のフラッシュメモリ４２上に最終的なＦＡＴおよび管理ファイルが格納される。この場合、オーディオデータの記録を開始し、記録を終了する度に、フラッシュメモリ４２上のＦＡＴおよび管理ファイルを書き換えても良い。編集を行った場合も、管理ファイルの内容が更新される。
【００７０】
さらに、この一実施形態のデータ構成では、付加情報も管理ファイル内に作成、更新され、フラッシュメモリ４２上に記録される。管理ファイルの他のデータ構成では、付加情報管理ファイルがトラック管理用の管理ファイルとは別に作成される。付加情報は、外部のコントローラからバスおよびバスインターフェース３２を介してＤＳＰ３０に与えられる。ＤＳＰ３０が受信した付加情報をメモリカード４０のフラッシュメモリ４２上に記録する。付加情報は、セキュリティＩＣ２０を通らないので、暗号化されない。付加情報は、メモリカード４０を取り外したり、電源オフの時に、ＤＳＰ３０のＳＲＡＭからフラッシュメモリ４２に書き込まれる。
【００７１】
図７は、メモリカード４０のファイル構成の全体を示す。ディレクトリとして、静止画用ディレクトリ、動画用ディレクトリ、Ｖｏｉｃｅ用ディレクトリ、制御用ディレクトリ、音楽用（ＨＩＦＩ）ディレクトリが存在する。この一実施形態は、音楽の記録／再生を行うので、以下、音楽用ディレクトリについて説明する。音楽用ディレクトリには、２種類のファイルが置かれる。その１つは、再生管理ファイルＰＢＬＩＳＴ．ＭＳＦ（以下、単にＰＢＬＩＳＴと表記する）であり、他のものは、暗号化された音楽データを収納したＡＴＲＡＣ３データファイルＡ３Ｄｎｎｎｎ．ＭＳＡ（以下、単にＡ３Ｄｎｎｎと表記する）とからなる。ＡＴＲＡＣ３データファイルは、最大数が４００までと規定されている。すなわち、最大４００曲まで収録可能である。ＡＴＲＡＣ３データファイルは、再生管理ファイルに登録した上で機器により任意に作成される。
【００７２】
図８は、再生管理ファイルの構成を示し、図９が１ＦＩＬＥ（１曲）のＡＴＲＡＣ３データファイルの構成を示す。再生管理ファイルは、１６ＫＢ固定長のファイルである。ＡＴＲＡＣ３データファイルは、曲単位でもって、先頭の属性ヘッダと、それに続く実際の暗号化された音楽データとからなる。属性ヘッダも１６ＫＢ固定長とされ、再生管理ファイルと類似した構成を有する。
【００７３】
図８に示す再生管理ファイルは、ヘッダ、１バイトコードのメモリカードの名前ＮＭ１−Ｓ、２バイトコードのメモリカードの名前ＮＭ２−Ｓ、曲順の再生テーブルＴＲＫＴＢＬ、メモリカード全体の付加情報ＩＮＦ−Ｓとからなる。図９に示すデータファイルの先頭の属性ヘッダは、ヘッダ、１バイトコードの曲名ＮＭ１、２バイトコードの曲名ＮＭ２、トラックのキー情報等のトラック情報ＴＲＫＩＮＦ、パーツ情報ＰＲＴＩＮＦと、トラックの付加情報ＩＮＦとからなる。ヘッダには、総パーツ数、名前の属性、付加情報のサイズの情報等が含まれる。
【００７４】
属性ヘッダに対してＡＴＲＡＣ３の音楽データが続く。音楽データは、１６ＫＢのブロック毎に区切られ、各ブロックの先頭にヘッダが付加されている。ヘッダには、暗号を復号するための初期値が含まれる。なお、暗号化の処理を受けるのは、ＡＴＲＡＣ３データファイル中の音楽データのみであって、それ以外の再生管理ファイル、ヘッダ等のデータは、暗号化されない。
【００７５】
図１０を参照して、曲とＡＴＲＡＣ３データファイルの関係について説明する。１トラックは、１曲を意味する。１曲は、１つのＡＴＲＡＣ３データファイル（図９参照）で構成される。ＡＴＲＡＣ３データファイルは、ＡＴＲＡＣ３により圧縮されたオーディオデータである。メモリカード４０に対しては、クラスタと呼ばれる単位で記録される。１クラスタは、例えば１６ＫＢの容量である。１クラスタに複数のファイルが混じることがない。フラッシュメモリ４２を消去する時の最小単位が１ブロックである。音楽データを記録するのに使用するメモリカード４０の場合、ブロックとクラスタは、同意語であり、且つ１クラスタ＝１セクタと定義されている。
【００７６】
１曲は、基本的に１パーツで構成されるが、編集が行われると、複数のパーツから１曲が構成されることがある。パーツは、録音開始からその停止までの連続した時間内で記録されたデータの単位を意味し、通常は、１トラックが１パーツで構成される。曲内のパーツのつながりは、各曲の属性ヘッダ内のパーツ情報ＰＲＴＩＮＦで管理する。すなわち、パーツサイズは、ＰＲＴＩＮＦの中のパーツサイズＰＲＴＳＩＺＥという４バイトのデータで表す。パーツサイズＰＲＴＳＩＺＥの先頭の２バイトがパーツが持つクラスタの総数を示し、続く各１バイトが先頭および末尾のクラスタ内の開始サウンドユニット（以下、ＳＵと略記する）の位置、終了ＳＵの位置を示す。このようなパーツの記述方法を持つことによって、音楽データを編集する際に通常、必要とされる大量の音楽データの移動をなくすことが可能となる。ブロック単位の編集に限定すれば、同様に音楽データの移動を回避できるが、ブロック単位は、ＳＵ単位に比して編集単位が大きすぎる。
【００７７】
ＳＵは、パーツの最小単位であり、且つＡＴＲＡＣ３でオーディオデータを圧縮する時の最小のデータ単位である。４４．１ｋHzのサンプリング周波数で得られた１０２４サンプル分（１０２４×１６ビット×２チャンネル）のオーディオデータを約１／１０に圧縮した数百バイトのデータがＳＵである。１ＳＵは、時間に換算して約２３ｍ秒になる。通常は、数千に及ぶＳＵによって１つのパーツが構成される。１クラスタが４２個のＳＵで構成される場合、１クラスタで約１秒の音を表すことができる。１つのトラックを構成するパーツの数は、付加情報サイズに影響される。パーツ数は、１ブロックの中からヘッダや曲名、付加情報データ等を除いた数で決まるために、付加情報が全く無い状態が最大数（６４５個）のパーツを使用できる条件となる。
【００７８】
図１０Ａは、ＣＤ等からのオーディオデータを２曲連続して記録する場合のファイル構成を示す。１曲目（ファイル１）が例えば５クラスタで構成される。１曲目と２曲目（ファイル２）の曲間では、１クラスタに二つのファイルが混在することが許されないので、次のクラスタの最初からファイル２が作成される。従って、ファイル１に対応するパーツ１の終端（１曲目の終端）がクラスタの途中に位置し、クラスタの残りの部分には、データが存在しない。第２曲目（ファイル２）も同様に１パーツで構成される。ファイル１の場合では、パーツサイズが５、開始クラスタのＳＵが０、終了クラスタが４となる。
【００７９】
編集操作として、デバイド、コンバイン、イレーズ、ムーブの４種類の操作が規定される。デバイドは、１つのトラックを２つに分割することである。デバイドがされると、総トラック数が１つ増加する。デバイドは、一つのファイルをファイルシステム上で分割して２つのファイルとし、再生管理ファイルおよびＦＡＴを更新する。コンバインは、２つのトラックを１つに統合することである。コンバインされると、総トラック数が１つ減少する。コンバインは、２つのファイルをファイルシステム上で統合して１つのファイルにし、再生管理ファイルおよびＦＡＴを更新する。イレーズは、トラックを消去することである。消された以降のトラック番号が１つ減少する。ムーブは、トラック順番を変えることである。以上イレーズおよびムーブ処理についても、再生管理ファイルおよびＦＡＴを更新する。
【００８０】
図１０Ａに示す二つの曲（ファイル１およびファイル２）をコンバインした結果を図１０Ｂに示す。コンバインされた結果は、１つのファイルであり、このファイルは、二つのパーツからなる。また、図１０Ｃは、一つの曲（ファイル１）をクラスタ２の途中でデバイドした結果を示す。デバイドによって、クラスタ０、１およびクラスタ２の前側からなるファイル１と、クラスタ２の後側とクラスタ３および４とからなるファイル２とが発生する。
【００８１】
上述したように、この一実施形態では、パーツに関する記述方法があるので、コンバインした結果である図１０Ｂにおいて、パーツ１の開始位置、パーツ１の終了位置、パーツ２の開始位置、パーツ２の終了位置をそれぞれＳＵ単位でもって規定できる。その結果、コンバインした結果のつなぎ目の隙間をつめるために、パーツ２の音楽データを移動する必要がない。また、パーツに関する記述方法があるので、デバイドした結果である図１０Ｃにおいて、ファイル２の先頭の空きを詰めるように、データを移動する必要がない。
【００８２】
図１１は、再生管理ファイルＰＢＬＩＳＴのより詳細なデータ構成を示し、図１２Ａおよび図１２Ｂは、再生管理ファイルＰＢＬＩＳＴを構成するヘッダとそれ以外の部分をそれぞれ示す。再生管理ファイルＰＢＬＩＳＴは、１クラスタ（１ブロック＝１６ＫＢ）のサイズである。図１２Ａに示すヘッダは、３２バイトから成る。図１２Ｂに示すヘッダ以外の部分は、メモリカード全体に対する名前ＮＭ１−Ｓ（２５６バイト）、名前ＮＭ２−Ｓ（５１２バイト）、ＣＯＮＴＥＮＴＳＫＥＹ、ＭＡＣ、Ｓ−ＹＭＤｈｍｓと、再生順番を管理するテーブルＴＲＫＴＢＬ（８００バイト）、メモリカード全体に対する付加情報ＩＮＦ−Ｓ（１４７２０バイト）および最後にヘッダ中の情報の一部が再度記録されている。これらの異なる種類のデータ群のそれぞれの先頭は、再生管理ファイル内で所定の位置となるように規定されている。
【００８３】
再生管理ファイルは、図１２Ａに示す（０ｘ００００）および（０ｘ００１０）で表される先頭から３２バイトがヘッダである。なお、ファイル中で先頭から１６バイト単位で区切られた単位をスロットと称する。ファイルの第１および第２のスロットに配されるヘッダには、下記の意味、機能、値を持つデータが先頭から順に配される。なお、Ｒｅｓｅｒｖｅｄと表記されているデータは、未定義のデータを表している。通常ヌル（０ｘ００）が書かれるが、何が書かれていてもＲｅｓｅｒｖｅｄのデータが無視される。将来のバージョンでは、変更がありうる。また、この部分への書き込みは禁止する。Ｏｐｔｉｏｎと書かれた部分も使用しない場合は、全てＲｅｓｅｒｖｅｄと同じ扱いとされる。
【００８４】
ＢＬＫＩＤ−ＴＬ０（４バイト）
意味：BLOCKID FILE ID
機能：再生管理ファイルの先頭であることを識別するための値
値：固定値＝”ＴＬ＝０”（例えば０ｘ５４４Ｃ２Ｄ３０）
ＭＣｏｄｅ（２バイト）
意味：MAKER CODE
機能：記録した機器の、メーカー、モデルを識別するコード
値：上位１０ビット（メーカーコード）  下位６ビット（機種コード）
ＲＥＶＩＳＩＯＮ（４バイト）
意味：ＰＢＬＩＳＴの書き換え回数
機能：再生管理ファイルを書き換える度にインクリメント
値：０より始まり＋１づつ増加する
Ｓ−ＹＭＤｈｍｓ（４バイト）（Ｏｐｔｉｏｎ）
意味：信頼できる時計を持つ機器で記録した年・月・日・時・分・秒
機能：最終記録日時を識別するための値
値：２５〜３１ビット  年  ０〜９９（１９８０〜２０７９）
２１〜２４ビット  月  ０〜１２
１６〜２０ビット  日  ０〜３１
１１〜１５ビット  時  ０〜２３
０５〜１０ビット  分  ０〜５９
００〜０４ビット  秒  ０〜２９（２秒単位）。
【００８５】
ＳＮ１Ｃ＋Ｌ（２バイト）
意味：ＮＭ１−Ｓ領域に書かれるメモリカードの名前（１バイト）の属性を表す
機能：使用する文字コードと言語コードを各１バイトで表す
値：文字コード（Ｃ）は上位１バイトで下記のように文字を区別する
00: 文字コードは設定しない。単なる２進数として扱うこと
01: ASCII(American Standard Code for Information Interchange)
02:ASCII+KANA  03:modifided8859-1
81:MS-JIS  82:KS C 5601-1989  83:GB(Great Britain)2312-80
90:S-JIS(Japanese Industrial Standards)(for Voice)。
【００８６】
言語コード（Ｌ）は下位１バイトで下記のようにEBU Tech 3258 規定に準じて言語を区別する
00: 設定しない  08:German  09:English  0A:Spanish
0F:French  15:Italian  1D:Dutch
65:Korean  69:Japanese  75:Chinese
データが無い場合オールゼロとすること。
【００８７】
ＳＮ２Ｃ＋Ｌ（２バイト）
意味：ＮＭ２−Ｓ領域に書かれるメモリカードの名前（２バイト）の属性を表す
機能：使用する文字コードと言語コードを各１バイトで表す
値：上述したＳＮ１Ｃ＋Ｌと同一
ＳＩＮＦＳＩＺＥ（２バイト）
意味：ＩＮＦ−Ｓ領域に書かれるメモリカード全体に関する付加情報の全てを合計したサイズを表す
機能：データサイズを１６バイト単位の大きさで記述、無い場合は必ずオールゼロとすること
値：サイズは０ｘ０００１から０ｘ３９Ｃ（９２４）
Ｔ−ＴＲＫ（２バイト）
意味：TOTAL TRACK NUMBER
機能：総トラック数
値：１から０ｘ０１９０（最大４００トラック）、データが無い場合はオールゼロとすること
ＶｅｒＮｏ（２バイト）
意味：フォーマットのバージョン番号
機能：上位がメジャーバージョン番号、下位がマイナーバージョン番号
値：例  ０ｘ０１００（Ｖｅｒ１．０）
０ｘ０２０３（Ｖｅｒ２．３）。
【００８８】
上述したヘッダに続く領域に書かれるデータ（図１３Ｂ）について以下に説明する。
【００８９】
ＮＭ１−Ｓ
意味：メモリカード全体に関する１バイトの名前
機能：１バイトの文字コードで表した可変長の名前データ（最大で２５６）
名前データの終了は、必ず終端コード（０ｘ００）を書き込むこと
サイズはこの終端コードから計算すること、データの無い場合は少なくとも先頭（０ｘ００２０）からヌル（０ｘ００）を１バイト以上記録すること
値：各種文字コード
ＮＭ２−Ｓ
意味：メモリカード全体に関する２バイトの名前
機能：２バイトの文字コードで表した可変長の名前データ（最大で５１２）
名前データの終了は、必ず終端コード（０ｘ００）を書き込むこと
サイズはこの終端コードから計算すること、データの無い場合は少なくとも先頭（０ｘ０１２０）からヌル（０ｘ００）を２バイト以上記録すること
値：各種文字コード。
【００９０】
ＣＯＮＴＥＮＴＳ  ＫＥＹ
意味：曲ごとに用意された値でＭＧ（Ｍ）で保護されてから保存される。ここでは、１曲目に付けられるＣＯＮＴＥＮＴＳ  ＫＥＹと同じ値
機能：Ｓ−ＹＭＤｈｍｓのＭＡＣの計算に必要となるキーとなる
値：０から０ｘＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦまで
ＭＡＣ
意味：著作権情報改ざんチェック値
機能：Ｓ−ＹＭＤｈｍｓの内容とＣＯＮＴＥＮＴＳ  ＫＥＹから作成される値
値：０から０ｘＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦまで。
【００９１】
ＴＲＫ−ｎｎｎ
意味：再生するＡＴＲＡＣ３データファイルのＳＱＮ（シーケンス）番号
機能：ＴＲＫＩＮＦの中のＦＮｏを記述する
値：１から４００（０ｘ１９０）
トラックが存在しない時はオールゼロとすること
ＩＮＦ−Ｓ
意味：メモリカード全体に関する付加情報データ（例えば写真、歌詞、解説等の情報）
機能：ヘッダを伴った可変長の付加情報データ
複数の異なる付加情報が並べられることがある。それぞれにＩＤとデータサイズが付けられている。個々のヘッダを含む付加情報データは最小１６バイト以上で４バイトの整数倍の単位で構成される。その詳細については、後述する
値：付加情報データ構成を参照
Ｓ−ＹＭＤｈｍｓ（４バイト）（Ｏｐｔｉｏｎ）
意味：信頼できる時計を持つ機器で記録した年・月・日・時・分・秒
機能：最終記録日時を識別するための値、ＥＭＤの時は必須
値：２５〜３１ビット  年  ０〜９９（１９８０〜２０７９）
２１〜２４ビット  月  ０〜１２
１６〜２０ビット  日  ０〜３１
１１〜１５ビット  時  ０〜２３
０５〜１０ビット  分  ０〜５９
００〜０４ビット  秒  ０〜２９（２秒単位）。
【００９２】
再生管理ファイルの最後のスロットとして、ヘッダ内のものと同一のＢＬＫＩＤ−ＴＬ０と、ＭＣｏｄｅと、ＲＥＶＩＳＩＯＮとが書かれる。
【００９３】
民生用オーディオ機器として、メモリカードが記録中に抜かれたり、電源が切れることがあり、復活した時にこれらの異常の発生を検出することが必要とされる。上述したように、ＲＥＶＩＳＩＯＮをブロックの先頭と末尾に書き込み、この値を書き換える度に＋１インクリメントするようにしている。若し、ブロックの途中で異常終了が発生すると、先頭と末尾のＲＥＶＩＳＩＯＮの値が一致せず、異常終了を検出することができる。ＲＥＶＩＳＩＯＮが２個存在するので、高い確率で異常終了を検出することができる。異常終了の検出時には、エラーメッセージの表示等の警告が発生する。
【００９４】
また、１ブロック（１６ＫＢ）の先頭部分に固定値ＢＬＫＩＤ−ＴＬ０を挿入しているので、ＦＡＴが壊れた場合の修復の目安に固定値を使用できる。すなわち、各ブロックの先頭の固定値を見れば、ファイルの種類を判別することが可能である。しかも、この固定値ＢＬＫＩＤ−ＴＬ０は、ブロックのヘッダおよびブロックの終端部分に二重に記述するので、その信頼性のチェックを行うことができる。なお、再生管理ファイルＰＢＬＩＳＴの同一のものを二重に記録しても良い。
【００９５】
ＡＴＲＡＣ３データファイルは、トラック情報管理ファイルと比較して、相当大きなデータ量であり、ＡＴＲＡＣ３データファイルに関しては、後述するように、ブロック番号ＢＬＯＣＫ  ＳＥＲＩＡＬが付けられている。但し、ＡＴＲＡＣ３データファイルは、通常複数のファイルがメモリカード上に存在するので、ＣＯＮＮＵＭ０でコンテンツの区別を付けた上で、ＢＬＯＣＫ  ＳＥＲＩＡＬを付けないと、重複が発生し、ＦＡＴが壊れた場合のファイルの復旧が困難となる。換言すると単一のＡＴＲＡＣ３データファイルは、複数のＢＬＯＣＫで構成されると共に、離散して配置される可能性があるので、同一ＡＴＲＡＣ３データファイルを構成するＢＬＯＣＫを判別するためにＣＯＮＮＵＭ０を用いると共に、同一ＡＴＲＡＣ３データファイル内の昇降順をブロック番号ＢＬＯＣＫ  ＳＥＲＩＡＬで決定する。
【００９６】
同様に、ＦＡＴの破壊までにはいたらないが、論理を間違ってファイルとして不都合のあるような場合に、書き込んだメーカーの機種が特定できるように、メーカーコード（ＭＣｏｄｅ）がブロックの先頭と末尾に記録されている。
【００９７】
図１２Ｃは、付加情報データの構成を示す。付加情報の先頭に下記のヘッダが書かれる。ヘッダ以降に可変長のデータが書かれる。
【００９８】
ＩＮＦ
意味：FIELD ID
機能：付加情報データの先頭を示す固定値
値：０ｘ６９
ＩＤ
意味：付加情報キーコード
機能：付加情報の分類を示す
値：０から０ｘＦＦ
ＳＩＺＥ
意味：個別の付加情報の大きさ
機能：データサイズは自由であるが、必ず４バイトの整数倍でなければならない。また、最小１６バイト以上のこと。データの終わりより余りがでる場合はヌル（０ｘ００）で埋めておくこと
値：１６から１４７８４（０ｘ３９Ｃ０）
ＭＣｏｄｅ
意味：MAKER CODE
機能：記録した機器の、メーカー、モデルを識別するコード
値：上位１０ビット（メーカーコード）  下位６ビット（機種コード）
Ｃ＋Ｌ
意味：先頭から１２バイト目からのデータ領域に書かれる文字の属性を表す
機能：使用する文字コードと言語コードを各１バイトで表す
値：前述のＳＮＣ＋Ｌと同じ
ＤＡＴＡ
意味：個別の付加情報データ
機能：可変長データで表す。実データの先頭は常に１２バイト目より始まり、長さ（サイズ）は最小４バイト以上、常に４バイトの整数倍でなければならない。データの最後から余りがある場合はヌル（０ｘ００）で埋めること
値：内容により個別に定義される。
【００９９】
図１３は、付加情報キーコードの値（０〜６３）と、付加情報の種類の対応の一例を示す。キーコードの値（０〜３１）が音楽に関する文字情報に対して割り当てられ、その（３２〜６３）がＵＲＬ(Uniform Resource Locator)（Ｗｅｂ関係）に対して割り当てられている。アルバムタイトル、アーティスト名、ＣＭ等の文字情報が付加情報として記録される。
【０１００】
図１４は、付加情報キーコードの値（６４〜１２７）と、付加情報の種類の対応の一例を示す。キーコードの値（６４〜９５）がパス／その他に対して割り当てられ、その（９６〜１２７）が制御／数値・データ関係に対して割り当てられている。例えば（ＩＤ＝９８）の場合では、付加情報がＴＯＣ（Table of Content）−ＩＤとされる。ＴＯＣ−ＩＤは、ＣＤ（コンパクトディスク）のＴＯＣ情報に基づいて、最初の曲番号、最後の曲番号、その曲番号、総演奏時間、その曲演奏時間を示すものである。
【０１０１】
図１５は、付加情報キーコードの値（１２８〜１５９）と、付加情報の種類の対応の一例を示す。キーコードの値（１２８〜１５９）が同期再生関係に対して割り当てられている。図１５中のＥＭＤ(Electronic Music Distribution）は、電子音楽配信の意味である。
【０１０２】
図１６を参照して付加情報のデータの具体例について説明する。図１６Ａは、図１２Ｃと同様に、付加情報のデータ構成を示す。図１６Ｂは、キーコードＩＤ＝３とされる、付加情報がアーティスト名の例である。ＳＩＺＥ＝０ｘ１Ｃ（２８バイト）とされ、ヘッダを含むこの付加情報のデータ長が２８バイトであることが示される。また、Ｃ＋Ｌが文字コードＣ＝０ｘ０１とされ、言語コードＬ＝０ｘ０９とされる。この値は、前述した規定によって、ＡＳＣＩＩの文字コードで、英語の言語であることを示す。そして、先頭から１２バイト目から１バイトデータでもって、「ＳＩＭＯＮ＆ＧＲＡＦＵＮＫＥＬ」のアーティスト名のデータが書かれる。付加情報のサイズは、４バイトの整数倍と決められているので、１バイトの余りが（０ｘ００）とされる。
【０１０３】
図１６Ｃは、キーコードＩＤ＝９７とされる、付加情報がＩＳＲＣ(International Standard Recording Code：著作権コード) の例である。ＳＩＺＥ＝０ｘ１４（２０バイト）とされ、この付加情報のデータ長が２０バイトであることが示される。また、Ｃ＋ＬがＣ＝０ｘ００、Ｌ＝０ｘ００とされ、文字、言語の設定が無いこと、すなわち、データが２進数であることが示される。そして、データとして８バイトのＩＳＲＣのコードが書かれる。ＩＳＲＣは、著作権情報（国、所有者、録音年、シリアル番号）を示すものである。
【０１０４】
図１６Ｄは、キーコードＩＤ＝９７とされる、付加情報が録音日時の例である。ＳＩＺＥ＝０ｘ１０（１６バイト）とされ、この付加情報のデータ長が１６バイトであることが示される。また、Ｃ＋ＬがＣ＝０ｘ００、Ｌ＝０ｘ００とされ、文字、言語の設定が無いことが示される。そして、データとして４バイト（３２ビット）のコードが書かれ、録音日時（年、月、日、時、分、秒）が表される。
【０１０５】
図１６Ｅは、キーコードＩＤ＝１０７とされる、付加情報が再生ログの例である。ＳＩＺＥ＝０ｘ１０（１６バイト）とされ、この付加情報のデータ長が１６バイトであることが示される。また、Ｃ＋ＬがＣ＝０ｘ００、Ｌ＝０ｘ００とされ、文字、言語の設定が無いことが示される。そして、データとして４バイト（３２ビット）のコードが書かれ、再生ログ（年、月、日、時、分、秒）が表される。再生ログ機能を持つものは、１回の再生毎に１６バイトのデータを記録する。
【０１０６】
図１７は、１ＳＵがＮバイト（例えばＮ＝３８４バイト）の場合のＡＴＲＡＣ３データファイルＡ３Ｄｎｎｎｎのデータ配列を示す。図１７には、データファイルの属性ヘッダ（１ブロック）と、音楽データファイル（１ブロック）とが示されている。図１７では、この２ブロック（１６×２＝３２Ｋバイト）の各スロットの先頭のバイト（０ｘ００００〜０ｘ７ＦＦ０）が示されている。図１８に分離して示すように、属性ヘッダの先頭から３２バイトがヘッダであり、２５６バイトが曲名領域ＮＭ１（２５６バイト）であり、５１２バイトが曲名領域ＮＭ２（５１２バイト）である。属性ヘッダのヘッダには、下記のデータが書かれる。
【０１０７】
ＢＬＫＩＤ−ＨＤ０（４バイト）
意味：BLOCKID FILE ID
機能：ＡＴＲＡＣ３データファイルの先頭であることを識別するための値
値：固定値＝”ＨＤ＝０”（例えば０ｘ４８４４２Ｄ３０）
ＭＣｏｄｅ（２バイト）
意味：MAKER CODE
機能：記録した機器の、メーカー、モデルを識別するコード
値：上位１０ビット（メーカーコード）  下位６ビット（機種コード）
ＢＬＯＣＫ  ＳＥＲＩＡＬ（４バイト）
意味：トラック毎に付けられた連続番号
機能：ブロックの先頭は０から始まり次のブロックは＋１づつインクリメント編集されても値を変化させない
値：０より始まり０ｘＦＦＦＦＦＦＦＦまで。
【０１０８】
Ｎ１Ｃ＋Ｌ（２バイト）
意味：トラック（曲名）データ（ＮＭ１）の属性を表す
機能：ＮＭ１に使用される文字コードと言語コードを各１バイトで表す
値：ＳＮ１Ｃ＋Ｌと同一
Ｎ２Ｃ＋Ｌ（２バイト）
意味：トラック（曲名）データ（ＮＭ２）の属性を表す
機能：ＮＭ２に使用される文字コードと言語コードを各１バイトで表す
値：ＳＮ１Ｃ＋Ｌと同一
ＩＮＦＳＩＺＥ（２バイト）
意味：トラックに関する付加情報の全てを合計したサイズを表す
機能：データサイズを１６バイト単位の大きさで記述、無い場合は必ずオールゼロとすること
値：サイズは０ｘ００００から０ｘ３Ｃ６（９６６）
Ｔ−ＰＲＴ（２バイト）
意味：トータルパーツ数
機能：トラックを構成するパーツ数を表す。通常は１
値：１から０ｘ２８５（６４５dec ）
Ｔ−ＳＵ（４バイト）
意味：トータルＳＵ数
機能：１トラック中の実際の総ＳＵ数を表す。曲の演奏時間に相当する
値：０ｘ０１から０ｘ００１ＦＦＦＦＦ
ＩＮＸ（２バイト）（Ｏｐｔｉｏｎ）
意味：INDEX の相対場所
機能：曲のさびの部分（特徴的な部分）の先頭を示すポインタ。曲の先頭からの位置をＳＵの個数を１／４した数で指定する。これは、通常のＳＵの４倍の長さの時間（約９３ｍ秒）に相当する
値：０から０ｘＦＦＦＦ（最大、約６０８４秒）
ＸＴ（２バイト）（Ｏｐｔｉｏｎ）
意味：INDEX の再生時間
機能：ＩＮＸ-nnnで指定された先頭から再生すべき時間のＳＵの個数を１／４した数で指定する。これは、通常のＳＵの４倍の長さの時間（約９３ｍ秒）に相当する
値：０ｘ００００：無設定    ０ｘ０１から０ｘＦＦＦＥ（最大６０８４秒）０ｘＦＦＦＦ：曲の終わりまで。
【０１０９】
次に曲名領域ＮＭ１およびＮＭ２について説明する。
【０１１０】
ＮＭ１
意味：曲名を表す文字列
機能：１バイトの文字コードで表した可変長の曲名（最大で２５６）
名前データの終了は、必ず終端コード（０ｘ００）を書き込むこと
サイズはこの終端コードから計算すること、データの無い場合は少なくとも先頭（０ｘ００２０）からヌル（０ｘ００）を１バイト以上記録すること
値：各種文字コード
ＮＭ２
意味：曲名を表す文字列
機能：２バイトの文字コードで表した可変長の名前データ（最大で５１２）
名前データの終了は、必ず終端コード（０ｘ００）を書き込むこと
サイズはこの終端コードから計算すること、データの無い場合は少なくとも先頭（０ｘ０１２０）からヌル（０ｘ００）を２バイト以上記録すること
値：各種文字コード。
【０１１１】
属性ヘッダの固定位置（０ｘ３２０）から始まる、８０バイトのデータをトラック情報領域ＴＲＫＩＮＦと呼び、主としてセキュリティ関係、コピー制御関係の情報を一括して管理する。図１９にＴＲＫＩＮＦの部分を示す。ＴＲＫＩＮＦ内のデータについて、配置順序に従って以下に説明する。
【０１１２】
ＣＯＮＴＥＮＴＳ  ＫＥＹ（８バイト）
意味：曲毎に用意された値で、メモリカードのセキュリティブロックで保護されてから保存される
機能：曲を再生する時、まず必要となる最初の鍵となる。ＭＡＣ計算時に使用される
値：０から０ｘＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦまで
ＭＡＣ（８バイト）
意味：著作権情報改ざんチェック値
機能：コンテンツ累積番号を含む複数のＴＲＫＩＮＦの内容と隠しシーケンス番号から作成される値
隠しシーケンス番号とは、メモリカードの隠し領域に記録されているシーケンス番号のことである。著作権対応でないレコーダは、隠し領域を読むことができない。また、著作権対応の専用のレコーダ、またはメモリカードを読むことを可能とするアプリケーションを搭載したパーソナルコンピュータは、隠し領域をアクセスすることができる。
【０１１３】
Ａ（１バイト）
意味：パーツの属性
機能：パーツ内の圧縮モード等の情報を示す
値：図２０を参照して以下に説明する
ただし、Ｎ＝０，１のモノラルは、ｂｉｔ７が１でサブ信号を０、メイン信号（Ｌ＋Ｒ）のみの特別なＪｏｉｎｔモードをモノラルとして規定する。ｂｉｔ２，１の情報は通常の再生機は無視しても構わない。
【０１１４】
Ａのビット０は、エンファシスのオン／オフの情報を形成し、ビット１は、再生ＳＫＩＰか、通常再生かの情報を形成し、ビット２は、データ区分、例えばオーディオデータか、ＦＡＸ等の他のデータかの情報を形成する。ビット３は、未定義である。ビット４、５、６を組み合わせることによって、図示のように、ＡＴＲＡＣ３のモード情報が規定される。すなわち、Ｎは、この３ビットで表されるモードの値であり、モノ（Ｎ＝０，１）、ＬＰ（Ｎ＝２）、ＳＰ（Ｎ＝４）、ＥＸ（Ｎ＝５）、ＨＱ（Ｎ＝７）の５種類のモードについて、記録時間（６４ＭＢのメモリカードの場合）、データ転送レート、１ブロック内のＳＵ数がそれぞれ示されている。１ＳＵのバイト数は、（モノ：１３６バイト、ＬＰ：１９２バイト、ＳＰ：３０４バイト、ＥＸ：３８４バイト、ＨＱ：５１２バイト）である。さらに、ビット７によって、ＡＴＲＡＣ３のモード（０：Dual  １：J0int ）が示される。
【０１１５】
一例として、６４ＭＢのメモリカードを使用し、ＳＰモードの場合について説明する。６４ＭＢのメモリカードには、３９６８ブロックがある。ＳＰモードでは、１ＳＵが３０４バイトであるので、１ブロックに５３ＳＵが存在する。１ＳＵは、（１０２４／４４１００）秒に相当する。従って、１ブロックは、
（１０２４／４４１００）×５３×（３９６８−１６）＝４８６３秒＝８１分
転送レートは、
（４４１００／１０２４）×３０４×８＝１０４７３７ bps
となる。
【０１１６】
0004779183.tif 000002
【０１１７】
ＹＭＤｈｍｓ−Ｓ（４バイト）（Ｏｐｔｉｏｎ）
意味：再生制限付きのトラックの再生開始日時
機能：ＥＭＤで指定する再生開始を許可する日時
値：上述した日時の表記と同じ
ＹＭＤｈｍｓ−Ｅ（４バイト）（Ｏｐｔｉｏｎ）
意味：再生制限付きのトラックの再生終了日時
機能：ＥＭＤで指定する再生許可を終了する日時
値：上述した日時の表記と同じ
ＭＴ（１バイト）（Ｏｐｔｉｏｎ）
意味：再生許可回数の最大値
機能：ＥＭＤで指定される最大の再生回数
値：１から０ｘＦＦ  未使用の時は、０ｘ００
ＬＴのｂｉｔ７の値が０の場合はＭＴの値は００とすること
ＣＴ（１バイト）（Ｏｐｔｉｏｎ）
意味：再生回数
機能：再生許可された回数の内で、実際に再生できる回数。再生の度にデクリメントする
値：０ｘ００〜０ｘＦＦ  未使用の時は、０ｘ００である
ＬＴのｂｉｔ７が１でＣＴの値が００の場合は再生を禁止すること。
【０１１８】
ＣＣ（１バイト）
意味：COPY CONTROL
機能：コピー制御
値：図２１に示すように、ビット６および７によってコピー制御情報を表し、ビット４および５によって高速ディジタルコピーに関するコピー制御情報を表し、ビット２および３によってセキュリティブロック認証レベルを表す。ビット０および１は、未定義
ＣＣの例：（ｂｉｔ７，６）１１：無制限のコピーを許可、０１：コピー禁止、００：１回のコピーを許可
（ｂｉｔ３，２）００：アナログないしディジタルインからの録音、ＭＧ認証レベルは０とする
ＣＤからのディジタル録音では（ｂｉｔ７，６）は００、（ｂｉｔ３，２）は００となる
ＣＮ（１バイト）（Ｏｐｔｉｏｎ）
意味：高速ディジタルコピーＨＳＣＭＳ(High speed Serial Copy Management System)におけるコピー許可回数
機能：コピー１回か、コピーフリーかの区別を拡張し、回数で指定する。コピー第１世代の場合にのみ有効であり、コピーごとに減算する
値：００：コピー禁止、０１から０ｘＦＥ：回数、０ｘＦＦ：回数無制限。
【０１１９】
上述したトラック情報領域ＴＲＫＩＮＦに続いて、０ｘ０３７０から始まる２４バイトのデータをパーツ管理用のパーツ情報領域ＰＲＴＩＮＦと呼び、１つのトラックを複数のパーツで構成する場合に、時間軸の順番にＰＲＴＩＮＦを並べていく。図２２にＰＲＴＩＮＦの部分を示す。ＰＲＴＩＮＦ内のデータについて、配置順序に従って以下に説明する。
【０１２０】
ＰＲＴＳＩＺＥ（４バイト）
意味：パーツサイズ
機能：パーツの大きさを表す。クラスタ：２バイト（最上位）、開始ＳＵ：１バイト（上位）、終了ＳＵ：１バイト（最下位）
値：クラスタ：１から０ｘ１Ｆ４０（８０００）、開始ＳＵ：０から０ｘＡ０（１６０）、終了ＳＵ：０から０ｘＡ０（１６０）（但し、ＳＵの数え方は、０，１，２，と０から開始する）
ＰＲＴＫＥＹ（８バイト）
意味：パーツを暗号化するための値
機能：初期値＝０、編集時は編集の規則に従うこと
値：０から０ｘＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦ
ＣＯＮＮＵＭ０（４バイト）
意味：最初に作られたコンテンツ累積番号キー
機能：コンテンツをユニークにするためのＩＤの役割
値：コンテンツ累積番号初期値キーと同じ値とされる。
【０１２１】
ＡＴＲＡＣ３データファイルの属性ヘッダ中には、図１７に示すように、付加情報ＩＮＦが含まれる。この付加情報は、開始位置が固定化されていない点を除いて、再生管理ファイル中の付加情報ＩＮＦ−Ｓ（図１１および図１２Ｂ参照）と同一である。１つまたは複数のパーツの最後のバイト部分（４バイト単位）の次を開始位置として付加情報ＩＮＦのデータが開始する。
【０１２２】
ＩＮＦ
意味：トラックに関する付加情報データ
機能：ヘッダを伴った可変長の付加情報データ。複数の異なる付加情報が並べられることがある。それぞれにＩＤとデータサイズが付加されている。個々のヘッダを含む付加情報データは、最小１６バイト以上で４バイトの整数倍の単位
値：再生管理ファイル中の付加情報ＩＮＦ−Ｓと同じである。
【０１２３】
上述した属性ヘッダに対して、ＡＴＲＡＣ３データファイルの各ブロックのデータが続く。図２３に示すように、ブロック毎にヘッダが付加される。各ブロックのデータについて以下に説明する。
【０１２４】
ＢＬＫＩＤ−Ａ３Ｄ（４バイト）
意味：BLOCKID FILE ID
機能：ＡＴＲＡＣ３データの先頭であることを識別するための値
値：固定値＝”Ａ３Ｄ”（例えば０ｘ４１３３４４２０）
ＭＣｏｄｅ（２バイト）
意味：MAKER CODE
機能：記録した機器の、メーカー、モデルを識別するコード
値：上位１０ビット（メーカーコード）  下位６ビット（機種コード）
ＣＯＮＮＵＭ０（４バイト）
意味：最初に作られたコンテンツ累積番号
機能：コンテンツをユニークにするためのＩＤの役割、編集されても値は変化させない
値：コンテンツ累積番号初期値キーと同じ値とされる
ＢＬＯＣＫ  ＳＥＲＩＡＬ（４バイト）
意味：トラック毎に付けられた連続番号
機能：ブロックの先頭は０から始まり次のブロックは＋１づつインクリメント編集されても値を変化させない
値：０より始まり０ｘＦＦＦＦＦＦＦＦまで
ＢＬＯＣＫ−ＳＥＥＤ（８バイト）
意味：１ブロックを暗号化するための１つの鍵
機能：ブロックの先頭は、記録機器のセキュリティブロックで乱数を生成、続くブロックは、＋１インクリメントされた値、この値が失われると、１ブロックに相当する約１秒間、音が出せないために、ヘッダとブロック末尾に同じものが二重に書かれる。編集されても値を変化させない
値：初期は８バイトの乱数
ＩＮＩＴＩＡＬＩＺＡＴＩＯＮ  ＶＥＣＴＯＲ（８バイト）
意味：ブロック毎にＡＴＲＡＣ３データを暗号化、復号化する時に必要な初期値
機能：ブロックの先頭は０から始まり、次のブロックは最後のＳＵの最後の暗号化された８バイトの値。デバイドされたブロックの途中からの場合は開始ＳＵの直前の最後の８バイトを用いる。編集されても値を変化させない
値：０から０ｘＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦ
ＳＵ−ｎｎｎ
意味：サウンドユニットのデータ
機能：１０２４サンプルから圧縮されたデータ、圧縮モードにより出力されるバイト数が異なる。編集されても値を変化させない（一例として、ＳＰモードの時では、Ｎ＝３８４バイト）
値：ＡＴＲＡＣ３のデータ値。
【０１２５】
図１７では、Ｎ＝３８４であるので、１ブロックに４２ＳＵが書かれる。また、１ブロックの先頭の２つのスロット（４バイト）がヘッダとされ、最後の１スロット（２バイト）にＢＬＫＩＤ−Ａ３Ｄ、ＭＣｏｄｅ、ＣＯＮＮＵＭ０、ＢＬＯＣＫ  ＳＥＲＩＡＬが二重に書かれる。従って、１ブロックの余りの領域Ｍバイトは、（１６，３８４−３８４×４２−１６×３＝２０８（バイト）となる。この中に上述したように、８バイトのＢＬＯＣＫ  ＳＥＥＤが二重に記録される。
【０１２６】
ここで、上述したＦＡＴ領域が壊れた場合には、フラッシュメモリの全ブロックの探索を開始し、ブロック先頭部のブロックＩＤ  ＢＬＫＩＤがＴＬ０か、ＨＤ０か、Ａ３Ｄかを各ブロックについて判別する。この処理を図２４に示すフローチャートを参照して、説明する。ブロック先頭のブロックＩＤ  ＢＬＫＩＤがＢＬＫＩＤ−ＴＬ０であるか否かをステップＳＰ１で判別する。
【０１２７】
このステップＳＰ１において、ブロック先頭のブロックＩＤ  ＢＬＫＩＤがＢＬＫＩＤ−ＴＬ０で無い場合には、ステップＳＰ２において、ブロック番号をインクリメント処理して、ステップＳＰ３において、ブロックの終端部まで検索したかを判別する。ステップＳＰ３において、ブロックの終端部まで至ってないと判別された場合には、再度ステップＳＰ１に戻る。
【０１２８】
そして、ステップＳＰ１において、ブロック先頭のブロックＩＤ  ＢＬＫＩＤがＢＬＫＩＤ−ＴＬ０と判別された場合には、ステップＳＰ４において、検索したブロックが再生管理ファイルＰＢＬＩＳＴであると判定される。次に、ステップＳＰ５において、再生管理ファイルＰＢＬＩＳＴ内に含まれる総トラック数Ｔ−ＴＲＫを参照して、レジスタにＮとして記憶する。一例として、メモリ上に１０曲のＡＴＲＡＣ３データファイルが存在する場合には（すなわち１０ファイル）Ｔ−ＴＲＫには１０が記録されている。
【０１２９】
次に、ステップＳＰ６において、総トラック数Ｔ−ＴＲＫに基づいてブロック内に記録されているＴＲＫ−００１からＴＲＫ−４００を順次参照する。上述した一例の場合には、メモリ内に１０曲収録されているのでＴＲＫ−００１からＴＲＫ−０１０までを参照すればよい。
【０１３０】
ステップＳＰ７において、ＴＲＫ−ＸＸＸ（ＸＸＸ＝００１〜４００）には、対応するファイル番号ＦＮＯが記録されているので、トラック番号ＴＲＫ−ＸＸＸとファイル番号ＦＮＯの対応表をメモリに記憶する。
【０１３１】
ステップＳＰ８において、レジスタに記憶したＮをデクリメント処理して、ステップＳＰ９において、Ｎ＝０になるまでステップＳＰ６、ＳＰ７およびＳＰ８を繰り返す。ステップＳＰ９において、Ｎ＝０と判断されたらステップＳＰ１０において、先頭のブロックにポインタをリセットして、先頭のブロックから探索をやり直す。
【０１３２】
次に、ステップＳＰ１１において、ブロック先頭のブロックＩＤ  ＢＬＫＩＤがＢＬＫＩＤ−ＨＤ０か否かを判別する。このステップＳＰ１１において、ブロック先頭のブロックＩＤ  ＢＬＫＩＤがＢＬＫＩＤ−ＨＤ０で無い場合には、ステップＳＰ１２において、ブロック番号をインクリメント処理して、ステップＳＰ１３において、ブロックの終端部まで検索したか否かを判別する。
【０１３３】
そして、ステップＳＰ１３において、ブロックの終端部まで至ってないと判別された場合には、再度ステップＳＰ１１に制御が戻る。
【０１３４】
ステップＳＰ１１において、ブロック先頭のブロックＩＤ  ＢＬＫＩＤがＢＬＫＩＤ−ＨＤ０であると判断されるまで、先頭ブロックからの探索を開始する。ステップＳＰ１１において、ブロック先頭のブロックＩＤ  ＢＬＫＩＤがＢＬＫＩＤ−ＨＤ０と判断された場合には、ステップＳＰ１４において、そのブロックは、図１８の0x0000〜0x03FFF に示すＡＴＲＡＣ３データファイルの先頭部分の属性ヘッダ（図８参照）と判断される。
【０１３５】
次に、ステップＳＰ１５において、属性ヘッダ内に記録されているファイル番号ＦＮＯ、同一ＡＴＲＡＣ３データファイル内での通し番号を表すＢＬＯＣＫＳＥＲＩＡＬ、コンテンツ累積番号キーＣＯＮＮＵＭ０を参照して、メモリに記憶する。ここで、１０個のＡＴＲＡＣ３データファイルが存在する（すなわち、１０曲収録されている）場合には、先頭のブロックＩＤ  ＢＬＫＩＤがＢＬＫＩＤ−ＴＬ０と判断されるブロックが１０個存在するので、１０個索出されるまで処理を続ける。
【０１３６】
ステップＳＰ１３において、ブロックの終端部まで至っていると判別された場合には、ステップＳＰ１６において、先頭のブロックにポインタをリセットして、先頭のブロックから探索をやり直す。
【０１３７】
次に、ステップＳＰ１７において、ブロック先頭のブロックＩＤ  ＢＬＫＩＤがＢＬＫＩＤ−Ａ３Ｄか否かを判断する。このステップＳＰ１７において、ブロック先頭のブロックＩＤ  ＢＬＫＩＤがＢＬＫＩＤ−Ａ３Ｄで無い場合には、ステップＳＰ１８において、ブロック番号をインクリメント処理して、ステップＳＰ１９において、ブロックの終端部まで検索したか否かを判別する。ステップＳＰ１９において、ブロックの終端部まで至ってないと判別された場合には、再度ステップＳＰ１７に制御が戻る。
【０１３８】
そして、ステップＳＰ１７において、ブロック先頭のブロックＩＤ  ＢＬＫＩＤがＢＬＫＩＤ−Ａ３Ｄであると判断された場合には、ステップＳＰ２０において、ブロックはＡＴＲＡＣ３データファイルが実際に記録されているブロックと判断される。
【０１３９】
次に、ステップＳＰ２１において、ＡＴＲＡＣ３データブロック内に記録されている通し番号ＢＬＯＣＫ  ＳＥＲＩＡＬ、コンテンツ累積番号キーＣＯＮＮＵＭ０を参照して、メモリに記憶する。このコンテンツ累積番号キーＣＯＮＮＵＭ０は同一ＡＴＲＡＣ３データファイル内では共通の番号が付与されている。即ち１つのＡＴＲＡＣ３データファイルが１０個のブロックから構成されている場合には、ブロック内に各々記録されているＣＯＮＮＵＭ０には全部共通の番号が記録されている。
【０１４０】
さらに、１つのＡＴＲＡＣ３データファイルが１０個のブロックから構成されている場合には、１０個のブロックの各々のＢＬＯＣＫ  ＳＥＲＩＡＬには１〜１０のいずれかの通し番号が付与されている。ＣＯＮＮＵＭ０およびＢＬＯＣＫＳＥＲＩＡＬに基づいて同一コンテンツを構成するブロックか、さらに同一コンテンツ内の再生順序（連結順序）が判る。
【０１４１】
この実施形態では、１０個のＡＴＲＡＣ３データファイル（即ち１０曲）が記録され、例えば各々のＡＴＲＡＣ３データファイルが１０個のブロックから構成される場合には、１００個のデータブロックが存在することになる。この１００個のデータファイルがどの曲番を構成し、どの順序で連結されるべきかはＣＯＮＮＵＭ０およびＢＬＯＣＫ  ＳＥＲＩＡＬを参照して行われる。
【０１４２】
ステップＳＰ１９において、ブロックの終端部まで至っていると判別された場合には、全ブロックに対して、再生管理ファイル、ＡＴＲＡＣ３データファイル、属性ファイルの全ての検索が終了したことを意味するので、ステップＳＰ２２は、メモリ上に記憶されたブロック番号に対応するＣＯＮＮＵＭ０、ＢＬＯＣＫＳＥＲＩＡＬ、ＦＮＯ、ＴＲＫ−ＸＸＸに基づいてファイルの連結状態を再現する。連結状態が確認できたらメモリ上の破壊されていない空きエリアにＦＡＴを作成し直しても良い。
【０１４３】
次に、上述した管理ファイルと異なるデータ構成の管理ファイル他の例について、説明する。図２５は、メモリカード４０のファイル構成の他の例を全体として示す。音楽用ディレクトリには、トラック情報管理ファイルＴＲＫＬＩＳＴ．ＭＳＦ（以下、単にＴＲＫＬＩＳＴと表記する）と、トラック情報管理ファイルのバックアップＴＲＫＬＩＳＴＢ．ＭＳＦ（以下、単にＴＲＫＬＩＳＴＢと表記する）と、アーチスト名、ＩＳＲＣコード、タイムスタンプ、静止画像データ等の各種付加情報データを記述するＩＮＦＬＩＳＴ．ＭＳＦ（以下、単にＩＮＦＩＳＴと表記する）と、ＡＴＲＡＣ３データファイルＡ３Ｄｎｎｎｎ．ＭＳＡ（以下、単にＡ３Ｄｎｎｎｎと表記する）とが含まれる。ＴＲＫＬＩＳＴには、ＮＡＭＥ１およびＮＡＭＥ２が含まれる。ＮＡＭＥ１は、メモリカード名、曲名ブロック（１バイトコード用）で、ＡＳＣＩＩ／８８５９−１の文字コードにより曲名データを記述する領域である。ＮＡＭＥ２は、メモリカード名、曲名ブロック（２バイトコード用）で、ＭＳ−ＪＩＳ／ハングル語／中国語等により曲名データを記述する領域である。
【０１４４】
図２６は、音楽用ディレクトリのトラック情報管理ファイルＴＲＫＬＩＳＴと、ＮＡＭＥ１および２と、ＡＴＲＡＣ３データファイルＡ３Ｄｎｎｎｎ間の関係を示す。ＴＲＫＬＩＳＴは、全体で６４Ｋバイト（＝１６Ｋ×４）の固定長で、その内の３２Ｋバイトがトラックを管理するパラメータを記述するのに使用され、残りの３２ＫバイトがＮＡＭＥ１および２を記述するのに使用される。曲名等を記述したファイルＮＡＭＥ１および２は、トラック情報管理ファイルと別扱いでも実現できるが、ＲＡＭ容量の小さいシステムは、トラック情報管理ファイルと曲名ファイルとを分けない方が管理ファイルをまとめて管理することができ、操作しやすくなる。
【０１４５】
トラック情報管理ファイルＴＲＫＬＩＳＴ内のトラック情報領域ＴＲＫＩＮＦ−ｎｎｎｎおよびパーツ情報領域ＰＲＴＩＮＦ−ｎｎｎｎによって、データファイルＡ３Ｄｎｎｎｎおよび付加情報用のＩＮＦＬＩＳＴが管理される。なお、暗号化の処理を受けるのは、ＡＴＲＡＣ３データファイルＡ３Ｄｎｎｎｎのみである。図２６中で、横方向が１６バイト（０〜Ｆ）であり、縦方向に１６進数（０ｘか１６進数を意味する）でその行の先頭の値が示されている。
【０１４６】
他の例では、トラック情報管理ファイルＴＲＫＬＩＳＴ（曲名ファイルを含む）と、付加情報管理ファイルＩＮＦＬＩＳＴと、データファイルＡ３Ｄｎｎｎｎとの３個のファイルの構成とされ、ＴＲＫＬＩＳＴによってＩＮＦＬＩＳＴおよびＡ３Ｄｎｎｎｎが管理される。前述したデータ構成の一例（図７、図８および図９）では、メモリカードの全体を管理する再生管理ファイルＰＢＬＩＳＴと、各トラック（曲）のデータファイルＡＴＲＡＣ３との２種類のファイルの構成とされる。
【０１４７】
以下、データ構成の他の例について説明するが、上述したデータ構成の一例と同一の点については、その説明を省略することにする。
【０１４８】
図２７は、トラック情報管理ファイルＴＲＫＬＩＳＴのより詳細な構成を示す。トラック情報管理ファイルＴＲＫＬＩＳＴは、１クラスタ（１ブロック）＝１６ＫＢのサイズで、その後に続くバックアップ用のＴＲＫＬＩＳＴＢも同一サイズ、同一データのものである。トラック情報管理ファイルは、先頭から３２バイトがヘッダである。ヘッダには、上述した再生管理ファイルＰＢＬＩＳＴ中のヘッダと同様に、ＢＬＫＩＤ−ＴＬ０／ＴＬ１（バックアップファイルのＩＤ）（４バイト）、総トラック数Ｔ−ＴＲＫ（２バイト）、メーカーコードＭＣｏｄｅ（２バイト）、ＴＲＫＬＩＳＴの書き換え回数ＲＥＶＩＳＩＯＮ（４バイト）、更新日時のデータＳ−ＹＭＤｈｍｓ（４バイト）（Ｏｐｔｉｏｎ）が書かれる。
これらのデータの意味、機能、値は、前述した通りである。これらのデータ以外に下記のデータが書かれる。
【０１４９】
ＹＭＤｈｍｓ（４バイト）
最後にＴＲＫＬＩＳＴが更新された年月日
Ｎ１（１バイト）（Ｏｐｔｉｏｎ）
メモリカードの連番号（分子側）で、１枚使用時はすべて（０ｘ０１）
Ｎ２（１バイト）（Ｏｐｔｉｏｎ）
メモリカードの連番号（分母側）で、１枚使用時はすべて（０ｘ０１）
ＭＳＩＤ（２バイト）（Ｏｐｔｉｏｎ）
メモリカードのＩＤで、複数組の時は、ＭＳＩＤが同一番号（Ｔ．Ｂ．Ｄ．）（Ｔ．Ｂ．Ｄ．は、将来定義されうることを意味する）
Ｓ−ＴＲＫ（２バイト）
特別トラック（４０１〜４０８）の記述（Ｔ．Ｂ．Ｄ．）で、通常は、０ｘ００００
ＰＡＳＳ（２バイト）（Ｏｐｔｉｏｎ）
パスワード（Ｔ．Ｂ．Ｄ．）
ＡＰＰ（２バイト）（Ｏｐｔｉｏｎ）
再生アプリケーションの規定（Ｔ．Ｂ．Ｄ．）（通常は、０ｘ００００）
ＩＮＦ−Ｓ（２バイト）（Ｏｐｔｉｏｎ）
メモリカード全体の付加情報ポインタであり、付加情報がないときは、０ｘ００とする。
【０１５０】
ＴＲＫＬＩＳＴの最後の１６バイトとして、ヘッダ内のものと同一のＢＬＫＩＤ−ＴＬ０と、ＭＣｏｄｅと、ＲＥＶＩＳＩＯＮとが配される。また、バックアップ用のＴＲＫＬＩＳＴＢにも上述したヘッダが書かれる。この場合、ＢＬＫＩＤ−ＴＬ１と、ＭＣｏｄｅと、ＲＥＶＩＳＩＯＮとが配される。
【０１５１】
ヘッダの後にトラック（曲）ごとの情報を記述するトラック情報領域ＴＲＫＩＮＦと、トラック（曲）内のパーツの情報を記述するパーツ情報領域ＰＲＴＩＮＦが配置される。図２７では、ＴＲＫＬＩＳＴの部分に、これらの領域が全体的に示され、下側のＴＲＫＬＩＳＴＢの部分にこれらの領域の詳細な構成が示されている。また、斜線で示す領域は、未使用の領域を表す。
【０１５２】
トラック情報領域ＴＲＫＩＮＦ−ｎｎｎおよびパーツ情報領域ＰＲＴＩＮＦ−ｎｎｎに、上述したＡＴＲＡＣ３データファイルに含まれるデータが同様に書かれる。すなわち、再生制限フラグＬＴ（１バイト）、コンテンツキーＣＯＮＴＥＮＴＳ  ＫＥＹ（８バイト）、記録機器のセキュリティブロックのシリアル番号ＭＧ（Ｄ）ＳＥＲＩＡＬ（１６バイト）、曲の特徴的部分を示すためのＸＴ（２バイト）（Ｏｐｔｉｏｎ）およびＩＮＸ（２バイト）（Ｏｐｔｉｏｎ）、再生制限情報およびコピー制御に関連するデータＹＭＤｈｍｓ−Ｓ（４バイト）（Ｏｐｔｉｏｎ）、ＹＭＤｈｍｓ−Ｅ（４バイト）（Ｏｐｔｉｏｎ）、ＭＴ（１バイト）（Ｏｐｔｉｏｎ）、ＣＴ（１バイト）（Ｏｐｔｉｏｎ）、ＣＣ（１バイト）、ＣＮ（１バイト）（Ｏｐｔｉｏｎ）、パーツの属性を示すＡ（１バイト）、パーツサイズＰＲＴＳＩＺＥ（４バイト）、パーツキーＰＲＴＫＥＹ（８バイト）、コンテンツ累積番号ＣＯＮＮＵＭ（４バイト）が書かれている。これらのデータの意味、機能、値は、前述した通りである。これらのデータ以外に下記のデータが書かれる。
【０１５３】
Ｔ０（１バイト）
固定値（Ｔ０＝０ｘ７４）
ＩＮＦ−ｎｎｎ（Ｏｐｔｉｏｎ）（２バイト）
各トラックの付加情報ポインタ（０〜４０９）、００：付加情報がない曲の意味
ＦＮＭ−ｎｎｎ（４バイト）
ＡＴＲＡＣ３データのファイル番号（０ｘ００００〜０ｘＦＦＦＦ）
ＡＴＲＡＣ３データファイル名（Ａ３Ｄｎｎｎｎｎ）のｎｎｎｎｎ  （ＡＳＣＩＩ）番号を０ｘｎｎｎｎｎに変換した値
ＡＰＰ ＣＴＬ（４バイト）（Ｏｐｔｉｏｎ）
アプリケーション用パラメータ（Ｔ．Ｂ．Ｄ．）（通常、０ｘ００００）
Ｐ−ｎｎｎ（２バイト）
曲を構成するパーツ数（１〜２０３９）で、前述のＴ−ＰＡＲＴに対応する
ＰＲ（１バイト）
固定値（ＰＲ＝０ｘ５０）。
【０１５４】
次に、名前をまとめて管理する名前の領域ＮＡＭＥ１およびＮＡＭＥ２について説明する。図２８は、ＮＡＭＥ１（１バイトコードを使用する領域）のより詳細なデータ構成を示す。ＮＡＭＥ１および後述のＮＡＭＥ２は、ファイルの先頭から８バイト単位で区切られ、１スロット＝８バイトとされている。先頭の０ｘ８０００には、ヘッダが書かれ、その後ろにポインタおよび名前が記述される。ＮＡＭＥ１の最後のスロットにヘッダと同一データが記述される。
【０１５５】
ＢＬＫＩＤ−ＮＭ１（４バイト）
ブロックの内容を特定する固定値（ＮＭ１＝０ｘ４Ｅ４Ｄ２Ｄ３１）
ＰＮＭ１−ｎｎｎ（４バイト）（Ｏｐｔｉｏｎ）
ＮＭ１（１バイトコード）へのポインタ
ＰＮＭ１−Ｓは、メモリカードを代表する名前のポインタ
ｎｎｎ（＝１〜４０８）は、曲名のポインタ
ポインタは、ブロック内の開始位置（２バイト）と文字コードタイプ（２ビット）とデータサイズ（１４ビット）を記述
ＮＭ１−ｎｎｎ（Ｏｐｔｉｏｎ）
１バイトコードで、メモリカード名、曲名データを可変長で記述
名前データの終端コード（０ｘ００）を書き込む。
【０１５６】
図２９は、ＮＡＭＥ２（２バイトコードを使用する領域）のより詳細なデータ構成を示す。先頭（０ｘ８０００）には、ヘッダが書かれ、ヘッダの後ろにポインタおよび名前が記述される。ＮＡＭＥ２の最後のスロットにヘッダと同一データが記述される。
【０１５７】
ＢＬＫＩＤ−ＮＭ２（４バイト）
ブロックの内容を特定する固定値（ＮＭ２＝０ｘ４Ｅ４Ｄ２Ｄ３２）
ＰＮＭ２−ｎｎｎ（４バイト）（Ｏｐｔｉｏｎ）
ＮＭ２（２バイトコード）へのポインタ
ＰＮＭ２−Ｓは、メモリカードを代表する名前のポインタ
ｎｎｎ（＝１〜４０８）は、曲名のポインタ
ポインタは、ブロック内の開始位置（２バイト）と文字コードタイプ（２ビット）とデータサイズ（１４ビット）を記述
ＮＭ２−ｎｎｎ（Ｏｐｔｉｏｎ）
２バイトコードで、メモリカード名、曲名データを可変長で記述
名前データの終端コード（０ｘ００００）を書き込む。
【０１５８】
図３０は、１ＳＵがＮバイトの場合のＡＴＲＡＣ３データファイルＡ３Ｄｎｎｎｎのデータ配列（１ブロック分）を示す。このファイルは、１スロット＝８バイトである。図３０では、各スロットの先頭（０ｘ００００〜０ｘ３ＦＦ８）の値が示されている。ファイルの先頭から４個のスロットがヘッダである。前述したデータ構成の一例におけるデータファイル（図１７参照）の属性ヘッダに続くデータブロックと同様に、ヘッダが設けられる。すなわち、このヘッダには、ＢＬＫＩＤ−Ａ３Ｄ（４バイト）、メーカーコードＭＣｏｄｅ（２バイト）、暗号化に必要なＢＬＯＣＫ  ＳＥＥＤ（８バイト）、最初に作られたコンテンツ累積番号ＣＯＮＮＵＭ０（４バイト）、トラック毎の連続番号ＢＬＯＣＫ  ＳＥＲＩＡＬ（４バイト）、暗号化／復号化に必要なＩＮＩＴＩＡＬＩＺＡＴＩＯＮ  ＶＥＣＴＯＲ（８バイト）が書かれる。なお、ブロックの最後の一つ前のスロットに、ＢＬＯＣＫ  ＳＥＥＤが二重記録され、最後のスロットにＢＬＫＩＤ−Ａ３ＤおよびＭＣｏｄｅが記録される。そして、前述したデータ構成の一例と同様に、ヘッダの後にサウンドユニットデータＳＵ−ｎｎｎｎが順に配される。
【０１５９】
図３１は、付加情報を記述するための付加情報管理ファイルＩＮＦＬＩＳＴのより詳細なデータ構成を示す。他のデータ構成においては、このファイルＩＮＦＬＩＳＴの先頭（０ｘ００００）には、下記のヘッダが記述される。ヘッダ以降にポインタおよびデータが記述される。
【０１６０】
ＢＬＫＩＤ−ＩＮＦ（４バイト）
ブロックの内容を特定する固定値（ＩＮＦ＝０ｘ４９４Ｅ４６４Ｆ）
Ｔ−ＤＡＴ（２バイト）
総データ数を記述（０〜４０９）
ＭＣｏｄｅ（２バイト）
記録した機器のメーカーコード
ＹＭＤｈｍｓ（４バイト）
記録更新日時
ＩＮＦ−ｎｎｎ（４バイト）
付加情報のＤＡＴＡ（可変長、２バイト（スロット）単位）へのポインタ
開始位置は、上位１６ビットで示す（００００〜ＦＦＦＦ）
ＤａｔａＳｌｏｔ−００００の（０ｘ０８００）先頭からのオフセット値（スロット単位）を示す
データサイズは、下位１６ビットで示す（０００１〜７ＦＦＦ）（最上位ビットＭＳＢに無効フラグをセットする。ＭＳＢ＝０（有効を示す）、ＭＳＢ＝１（無効を示す）
データサイズは、その曲のもつ総データ数を表す
（データは、各スロットの先頭から始まり、データの終了後は、スロットの終わりまで００を書き込むこと）
最初のＩＮＦは、アルバム全体の持つ付加情報を示すポインタ（通常ＩＮＦ−４０９で示される）。
【０１６１】
図３２は、付加情報データの構成を示す。一つの付加情報データの先頭に８バイトのヘッダが付加される。この付加情報の構成は、上述したデータ構成の一例における付加情報の構成（図１２Ｃ参照）と同様のものである。すなわち、ＩＤとしてのＩＮ（１バイト）、キーコードＩＤ（１バイト）、個々の付加情報の大きさを示すＳＩＺＥ（２バイト）、メーカーコードＭＣｏｄｅ（２バイト）が書かれる。さらに、ＳＩＤ（１バイト）は、サブＩＤである。
【０１６２】
上述したこの発明の一実施形態では、メモリカードのフォーマットとして規定されているファイルシステムとは別に音楽用データに対するトラック情報管理ファイルＴＲＫＬＩＳＴを使用するので、ＦＡＴが何らかの事故で壊れても、ファイルを修復することが可能となる。図３３は、ファイル修復処理の流れを示す。ファイル修復のためには、ファイル修復プログラムで動作し、メモリカードをアクセスできるコンピュータ（ＤＳＰ３０と同様の機能を有するもの）と、コンピュータに接続された記憶装置（ハードディスク、ＲＡＭ等）とが使用される。最初のステップ１０１では、次の処理がなされる。なお、図２５〜図３２を参照して説明したトラック管理ファイルＴＲＫＬＩＳＴに基づいてファイルを修復する処理を説明する。
【０１６３】
ＦＡＴが壊れたフラッシュメモリの全ブロックを探索し、ブロックの先頭の値（ＢＬＫＩＤ）がＴＬ−０を探す。このフラッシュメモリの全ブロックを探索し、ブロックの先頭の値（ＢＬＫＩＤ）がＴＬ−１を探す。このフラッシュメモリの全ブロックを探索し、ブロックの先頭の値（ＢＬＫＩＤ）がＮＭ−１を探す。このフラッシュメモリの全ブロックを探索し、ブロックの先頭の値（ＢＬＫＩＤ）がＮＭ−２を探す。この４ブロック（トラック情報管理ファイル）の全内容は、修復用コンピュータによって例えばハードディスクに収集する。
【０１６４】
トラック情報管理ファイルの先頭から４バイト目以降のデータから総トラック数ｍの値を見つけ把握しておく。トラック情報領域ＴＲＫＩＮＦ−００１の先頭から２０バイト目、１曲目のＣＯＮＮＵＭ−００１とそれに続くＰ−００１の値を見つける。Ｐ−００１の内容から構成されるパーツの総数を把握し、続くＰＲＴＩＮＦの中のトラック１を構成する全てのＰＲＴＳＩＺＥの値を見つけ出し、それらを合計した総ブロック（クラスタ）数ｎを計算し、把握しておく。
【０１６５】
トラック情報管理ファイルは見つかったので、ステップ１０２では、音のデータファイル（ＡＴＲＡＣ３データファイル）を探索する。フラッシュメモリの管理ファイル以外の全ブロックを探索し、ＡＴＲＡＣ３データファイルであるブロックの先頭の値（ＢＬＫＩＤ）がＡ３Ｄのブロック群の収集を開始する。
【０１６６】
Ａ３Ｄｎｎｎｎの中で先頭から１６バイト目に位置するＣＯＮＮＵＭ０の値がトラック情報管理ファイルの１曲目のＣＯＮＮＵＭ−００１と同一で、２０バイト目からのＢＬＯＣＫ  ＳＥＲＩＡＬの値が０のものを探し出す。これが見つかったら、次のブロック（クラスタ）として同一のＣＯＮＮＵＭ０の値で、２０バイト目からのＢＬＯＣＫ  ＳＥＲＩＡＬの値が＋１されたもの（１＝０＋１）を探し出す。これが見つかったら、同様に、次のブロック（クラスタ）として同一のＣＯＮＮＵＭ０の値で、２０バイト目からのＢＬＯＣＫ  ＳＥＲＩＡＬの値が＋１されたもの（２＝１＋１）を探し出す。
【０１６７】
この処理を繰り返して、トラック１の総クラスタであるｎ個になるまでＡＴＲＡＣ３データファイルを探す。全てが見つかったら、探したブロック（クラスタ）の内容を全てハードディスクに順番に保存する。
【０１６８】
次のトラック２に関して、上述したトラック１に関する処理を行う。すなわち、ＣＯＮＮＵＭ０の値がトラック情報管理ファイルの１曲目のＣＯＮＮＵＭ−００２と同一で、２０バイト目からのＢＬＯＣＫ  ＳＥＲＩＡＬの値が０のものを探し出し、以下、トラック１の場合と同様に、最後のブロック（クラスタ）ｎ’までＡＴＲＡＣ３データファイルを探し出す。全てが見つかったら、探したブロック（クラスタ）の内容を全て外部のハードディスクに順番に保存する。
【０１６９】
全トラック（トラック数ｍ）について、以上の処理を繰り返すことによって、全てのＡＴＲＡＣ３データファイルが修復用コンピュータが管理する外部のハードディスクに収集される。
【０１７０】
そして、ステップ１０３では、ＦＡＴが壊れたメモリカードを再度初期化し、ＦＡＴを再構築し、所定のディレクトリを作り、トラック情報管理ファイルと、ｍトラック分のＡＴＲＡＣ３データファイルをハードディスク側からメモリカードへコピーする。これによって、修復作業が完了する。
【０１７１】
なお、管理ファイル、データファイルにおいて、重要なパラメータ（主としてヘッダ内のコード）を二重に限らず、三重以上記録しても良く、重要なパラメータに対して専用のエラー訂正符号の符号化を行うようにしても良い。また、このように多重記録する場合の位置は、ファイルの先頭および末尾の位置に限らず、１ページ単位以上離れた位置であれば有効である。
【０１７２】
この発明は、メモリカードから再生したデータファイル（ＡＴＲＡＣ３ファイル）に再生制限情報があるとき、その条件がファイルに書き込まれ、再生を制限すると共に、そのファイルが改ざんされた場合にも、これを確実に検出することができるものである。以下、図７〜図２４に示す第１の実施形態および図２５〜図３２に示す第２の実施形態において、データファイルの改ざんに関連する部分をより詳細に説明する。
【０１７３】
以下、第１の実施形態で説明したデータファイルに対する改ざんチェックに関して説明する。改ざんチェックの対象としては、再生管理ファイルＰＢＬＩＳＴ．ＭＳＦおよび圧縮されたオーディオデータであるＡＴＲＡＣ３データファイルの各々が考えられる。再生管理ファイルＰＢＬＩＳＴ．ＭＳＦに関しては時計情報Ｓ−ＹＭＤｈｍｓが記録されているので、この時計情報に対するユーザによる改ざんを防止するために改ざんチェックを行う。
【０１７４】
改ざんチェックコードの生成は、最初に再生管理ファイルＰＢＬＩＳＴ．ＭＳＦが生成されたときに同時に生成されるＡＴＲＡＣ３データファイル（すなわち１曲目）のＣＯＮＴＥＮＴＳ  ＫＥＹ（ＣＫ）を使用してハッシュ関数による演算が行われる。また、そのファイルが消去または移動されたときのためにＣＯＮＴＥＮＴＳ  ＫＥＹ（ＣＫ）の値をファイル内に保存する。時計情報Ｓ−ＹＭＤｈｍｓが無エントリーである場合には、計算を行わずにハッシュ値を全てゼロにする。このハッシュ値は、時計情報Ｓ−ＹＭＤｈｍｓが更新される毎に計算される。
【０１７５】
一方、改ざんチェックの対象としてオーディオデータであるＡＴＲＡＣ３データファイルに関してはトラックの属性Ａ、再生制限フラグとセキュリティバージョンＬＴ、ＭＧ（Ｄ）のシリアル番号ＭＧ（Ｄ）Ｓｅｒｉａｌ、コンテンツ累計番号ＣＯＮＮＵＭ、再生開始日ＹＭＤｈｍｓ−Ｓ、再生期限日ＹＭＤｈｍｓ−Ｅ、トラックの再生回数ＣＴ、再生許可回数ＭＴ、ＣＯＰＹ  Ｃｏｎｔｒｏｌ  ＣＣ、高速デジタルコピー許可回数ＣＮ（Ｏｐｔｉｏｎ）に対してユーザによる改ざんを防止するために改ざんチェックを行う。改ざんチェックコードの生成は、このＡＴＲＡＣ３データファイルのＣＯＮＴＥＮＴＳ  ＫＥＹ（ＣＫ）を使用してハッシュ関数による演算が行われる。また、このＡＴＲＡＣ３データファイルに対して分割処理または結合処理が行われた場合には、新規に生成したＣＯＮＴＥＮＴＳ  ＫＥＹを用いてハッシュ値を再度計算しなおす。
【０１７６】
図３４は、上述したディジタルオーディオレコーダの内で、この発明と関連する部分の構成を概略的に示す。メモリカードがプレーヤ／レコーダに装着される時、または再生ボタンが押される時に、装着されたメモリカードが正規のものであるか否かの認証がなされ、認証が完了すると、メモリカード４０のフラッシュメモリからトラック情報管理ファイルＴＲＫＬＩＳＴ．ＭＳＦがＤＳＰ（Digital Signal Processor）３０によって、Ｓ−ＲＡＭ（Static-RAM）３１（３６）に読み込まれる。
【０１７７】
図３４において、トラック情報管理ファイル中の再生制限値群７０は、メモリカード４０のフラッシュメモリの所定領域に格納されており、フラッシュメモリからＳＲＡＭ３１（３６）に読み込まれる。この再生制限値群７０を用いることで改ざんのチェックがなされる。また、この発明と関連する構成要素として、ハッシュ計算回路７１、不揮発性メモリから構成される所定のメモリ領域（７２，７３）を備えた暗号化回路２２、一致検出回路７４、内部時計７６を有した制御部７５が設けられる。なお、ハッシュ計算回路７１、一致検出回路７４、制御部７５は、ハードウエア構成またはＤＳＰ３０によるソフトウェア的な処理により実現される。例えば暗号化回路２２を構成する機能素子を利用してハッシュ計算回路７１を実現できる。
【０１７８】
制御部７５は、メモリカード４０の着脱を監視し、メモリカード４０が挿入されて再生動作を行う際には、その処理に先立って再生制限値群７０の所定の情報に基づいて再生が許可されているか否かを判定する。上述の所定の情報は、具体的には、トラックの属性Ａ、再生制限フラグとセキュリティバージョンＬＴ、ＭＧ（Ｄ）のシリアル番号ＭＧ（Ｄ）Ｓｅｒｉａｌ、コンテンツ累積番号ＣＯＮＮＵＭ、再生開始日ＹＭＤｈｍｓ−Ｓ、再生期限日ＹＭＤｈｍｓ−Ｅ、トラックの再生回数ＣＴ、再生許可回数ＭＴ、ＣＯＰＹ  Ｃｏｎｔｒｏｌ  ＣＣ、高速デジタルコピー許可回数ＣＮ（Ｏｐｔｉｏｎ）およびＣＯＮＴＥＮＴＳ  ＫＥＹ（ＣＫ）等である。再生開始日および再生期限日に関しては、内部時計７６の示す日時との参照を行うことによって、再生が許可されているかを判定する。また、トラックの再生回数ＣＴおよび再生許可回数ＭＴに関しては、その値によって再生が許可／不許可を決定する。
【０１７９】
ハッシュ計算回路７１において、再生制限値群７０の各パラメータに基づいて演算処理によりハッシュ値の算出がなされる。なお、ハッシュ値は、ハッシュ関数によって導出される値で、改ざんがなされた場合には、その値が変化する。また、ハッシュ関数に関する一般的な定義は、（ISO/IEC 10118-1,JIS X5057-1)により標準化されている。ハッシュ関数とは、同じ出力値になる任意の二つの異なる入力を発見することが計算量的に実行不可能な関数である。ハッシュ計算回路７１における演算により得られた結果が暗号化回路２２に供給される。
【０１８０】
暗号化回路２２の不揮発性メモリには、制御部７５からの制御情報が供給されており、再生動作を行う際に先立って算出されたハッシュ値が今回ハッシュ値として所定のメモリ領域７２に保持される。一方、前回の再生動作完了後において算出されたハッシュ値が前回ハッシュ値として所定のメモリ領域７３に保持される。暗号化回路２２に格納されている今回ハッシュ値と前回ハッシュ値とが読み出され、一致検出回路７４に供給される。なお、暗号化回路２２のフラッシュメモリの所定のメモリ領域（７２，７３）は、外部から値自身は読み出せないものであり、その領域に格納されるハッシュ値を外部から知ることは不可能である。一致検出回路７４の一致検出結果のみが外部から読み出される。外部からアクセス不能な領域をｔａｍｐｅｒ  ｒｅｓｉｓｔａｎｔ領域という。
【０１８１】
一致検出回路７４において、今回ハッシュ値と前回ハッシュ値とが比較され、今回ハッシュ値と前回ハッシュ値とが同一であるかどうかで改ざんの有無が検出され、一致検出回路７４の出力が制御部７５に供給される。
【０１８２】
制御部７５において、トラックの属性Ａ、再生制限フラグとセキュリティバージョンＬＴ、ＭＧ（Ｄ）のシリアル番号ＭＧ（Ｄ）Ｓｅｒｉａｌ、コンテンツ累積番号ＣＯＮＮＵＭ、再生開始日ＹＭＤｈｍｓ−Ｓ、再生期限日ＹＭＤｈｍｓ−Ｅ、トラックの再生回数ＣＴ、再生許可回数ＭＴ、ＣＯＰＹ  ＣＯＮＴＲＯＬＣＣ、高速デジタルコピー許可回数ＣＮ（Ｏｐｔｉｏｎ）およびＣＯＮＴＥＮＴＳ  ＫＥＹ（ＣＫ）に基づいてなされた判定と、一致検出回路７４からの出力とに基づいて最終的に再生の許可／禁止が決定される。この判定結果に応じた制御情報が制御部７５において形成される。つまり、改ざんが検出されず、かつ、再生が許可されていると判断される場合には、制御部７５において再生動作を許可するための制御情報が形成されて再生動作がなされる。
【０１８３】
一方、改ざんが検出された場合には、制御部７５において制御情報が形成されて再生が禁止される。また、改ざんが検出されなくとも、トラックの属性Ａ、再生制限フラグとセキュリティバージョンＬＴ、ＭＧ（Ｄ）のシリアル番号ＭＧ（Ｄ）Ｓｅｒｉａｌ、コンテンツ累積番号ＣＯＮＮＵＭ、再生開始日ＹＭＤｈｍｓ−Ｓ、再生期限日ＹＭＤｈｍｓ−Ｅ、トラックの再生回数ＣＴ、再生許可回数ＭＴ、ＣＯＰＹ  ＣＯＮＴＲＯＬ  ＣＣ、高速デジタルコピー許可回数ＣＮ（Ｏｐｔｉｏｎ）、ＣＯＮＴＥＮＴＳ  ＫＥＹ（ＣＫ）に基づいて、再生が不許可と判断される場合には、改ざんの有無にかかわらず、再生動作が禁止される。
【０１８４】
上述の説明では、ＡＴＲＡＣ３データファイルに対しての改ざんチェックに対して説明したが、再生管理ファイルＰＢＬＩＳＴ．ＭＳＦに関しても同様に時計情報Ｓ−ＹＭＤｈｍｓに対して改ざんチェックを行う。改ざんチェックコードの生成は、最初に再生管理ファイルＰＢＬＩＳＴ．ＭＳＦが生成されたときに同時に生成されるＡＴＲＡＣ３データファイル、すなわち１曲目のＣＯＮＴＥＮＴＳＫＥＹ（ＣＫ）を使用してハッシュ関数による演算が行われる。
【０１８５】
演算の手順は、上述したＡＴＲＡＣ３データファイルに対しての改ざんチェックと同様な手順で行い、この演算に用いる回路は共有できる。また、そのファイルが消去または移動されたときのためにＣＯＮＴＥＮＴＳ  ＫＥＹ（ＣＫ）の値をファイル内に保存する。時計情報Ｓ−ＹＭＤｈｍｓが無エントリーである場合には、計算を行わずにハッシュ値を全てゼロにする。このハッシュ値は、時計情報Ｓ−ＹＭＤｈｍｓが更新される毎に計算される。
【０１８６】
以下、この発明の第１の実施形態のフォーマットに準拠したＥＭＤ端末によりＡＴＲＡＣ３データファイルをダウンロードした場合の処理を図３５に示す。まず、図示しないがＥＭＤ端末を公衆回線（ＩＳＤＮ、電話回線、衛星回線）を介して圧縮されていると共に、暗号化されているＡＴＲＡＣ３データファイルをダウンロードする手順を図３５に示す。なお、ＥＭＤ端末に挿入されるフラッシュメモリは、未使用なものが挿入されるものとする。
【０１８７】
ステップＳＰ１０１において、バージン（未使用）のメモリカードが挿入されると、最初に再生管理ファイルＰＢＬＩＳＴ．ＭＳＦが作成されると同時にダウンロードされた日時情報が作成されて、再生管理ファイルＰＢＬＩＳＴ．ＭＳＦの時計情報Ｓ−ＹＭＤｈｍｓとして記録が行われる。
【０１８８】
さらに、ステップＳＰ１０２において、公衆回線（ＩＳＤＮ、電話回線、衛星回線）を介して圧縮されていると共に、暗号化されているＡＴＲＡＣ３データファイルをフラッシュメモリに記録する際に、図９に示すように属性ヘッダを生成して記録を行うＡＴＲＡＣ３データファイルに付加する。
【０１８９】
ステップＳＰ１０３において、上述の属性ヘッダに記録されているＣＯＮＴＥＮＴＳ  ＫＥＹ（ＣＫ）を用いて、上述の再生管理ファイルＰＢＬＩＳＴ．ＭＳＦの時計情報Ｓ−ＹＭＤｈｍｓに対してハッシュ関数による演算をハッシュ計算回路７１で行い、得られた演算値を暗号化回路２２のメモリ領域７３に保持する。
【０１９０】
さらに、ステップＳＰ１０４において、公衆回線（ＩＳＤＮ、電話回線、衛星回線）を介して圧縮されていると共に、暗号化されているＡＴＲＡＣ３データファイルに付随する再生制限情報（トラックの属性Ａ、再生制限フラグとセキュリティバージョンＬＴ、再生開始日ＹＭＤｈｍｓ−Ｓ、再生期限日ＹＭＤｈｍｓ−Ｅ、トラックの再生回数ＣＴ、再生許可回数ＭＴ、ＣＯＰＹ  ＣＯＮＴＲＯＬＣＣ、高速デジタルコピー許可回数ＣＮ（Ｏｐｔｉｏｎ））に対して上述の属性ヘッダに記録されているＣＯＮＴＥＮＴＳ  ＫＥＹ（ＣＫ）を用いてハッシュ関数による演算をハッシュ計算回路７１で行い、得られた演算値を暗号化回路２２のメモリ領域７３に保持する。
【０１９１】
併せて、属性ファイルを生成時に生成されたＭＧ（Ｄ）のシリアル番号ＭＧ（Ｄ）Ｓｅｒｉａｌおよびコンテンツ累積番号ＣＯＮＮＵＭに対しても、上述の属性ヘッダに記録されているＣＯＮＴＥＮＴＳ  ＫＥＹ（ＣＫ）を用いてハッシュ関数による演算をハッシュ計算回路７１で行い、得られた演算値を暗号化回路２２のメモリ領域７３に保持する。今回はバージン（未使用）のフラッシュメモリに初めてデータが記録されたので、暗号化回路２２のメモリ領域７２には、何も記録されていない。
【０１９２】
ステップＳＰ１０５において、ＥＭＤ端末本体からフラッシュメモリが取り外されたか否かを判別する。ＥＭＤ端末本体からフラッシュメモリが取り外されたと判断された場合には、ステップＳＰ１０６において、メモリが再挿入されたか否かを判別する。ステップＳＰ１０５において、フラッシュメモリがＥＭＤ端末本体から取り外されていないと判断された場合には、ステップＳＰ１０７において、電源が断たれたか否かを判別する。ステップＳＰ１０７において、電源が断たれたと判断された場合には、電源が再投入されたか否かをステップＳＰ１０８において判別する。
【０１９３】
ステップＳＰ１０６において、メモリが再挿入されたと判断された場合、またはステップＳＰ１０８において、電源が再投入されたと判断された場合には、ステップＳＰ１０９において、属性ヘッダに記録されているＣＯＮＴＥＮＴＳ  ＫＥＹ（ＣＫ）を用いて、上述の再生管理ファイルＰＢＬＩＳＴ．ＭＳＦの時計情報Ｓ−ＹＭＤｈｍｓに対してハッシュ関数による演算をハッシュ計算回路７１で行い、得られた演算値を暗号化回路２２のメモリ領域７２に保持する。
【０１９４】
ステップＳＰ１１０において、暗号化回路２２のメモリ領域７２に保持された今回のハッシュ値と暗号化回路２２のメモリ領域７３に保持された前回のハッシュ値を比較する。ステップＳＰ１１０において、暗号化回路２２のメモリ領域７２に保持された今回のハッシュ値と、暗号化回路２２のメモリ領域７３に保持された前回のハッシュ値とが一致した場合には、暗号化回路２２のメモリ領域７２に保持された今回のハッシュ値を暗号化回路２２のメモリ領域７３に保持された前回のハッシュ値にコピーを行う。
【０１９５】
ステップ１１１において、再生指示が行われた場合、ステップＳＰ１１０において、暗号化回路２２のメモリ領域７２に保持された今回のハッシュ値と、暗号化回路２２のメモリ領域７３に保持された前回のハッシュ値とが一致した場合には、再生指示の行われたＡＴＲＡＣ３データファイルに付加された属性ファイル中のトラックの属性Ａ、再生制限フラグとセキュリティバージョンＬＴ、ＭＧ（Ｄ）のシリアル番号ＭＧ（Ｄ）Ｓｅｒｉａｌ、コンテンツ累積番号ＣＯＮＮＵＭ、再生開始日ＹＭＤｈｍｓ−Ｓ、再生期限日ＹＭＤｈｍｓ−Ｅ、トラックの再生回数ＣＴ、再生許可回数ＭＴ、ＣＯＰＹ  ＣＯＮＴＲＯＬ  ＣＣ、高速デジタルコピー許可回数ＣＮ（Ｏｐｔｉｏｎ）に対してＡＴＲＡＣ３データファイルの属性ファイルに記録されているＣＯＮＴＥＮＴＳ  ＫＥＹ（ＣＫ）を用いてハッシュ関数による演算をハッシュ計算回路７１で行い、得られた演算値を暗号化回路２２のメモリ領域７２に保持する。
【０１９６】
ハッシュ計算回路７１における演算によって得られた暗号化回路２２のメモリ領域７２に保持されたハッシュ値と、暗号化回路２２のメモリ領域７３に保持されたハッシュ値との比較がステップＳＰ１１３において、行われる。
【０１９７】
今回演算されたハッシュ値と、前回演算されたハッシュ値とが一致検出回路７４において行われ、今回演算されたハッシュ値と、前回演算されたハッシュ値とが一致した場合には、上述のトラックの属性Ａ、再生制限フラグとセキュリティバージョンＬＴ、ＭＧ（Ｄ）のシリアル番号ＭＧ（Ｄ）Ｓｅｒｉａｌ、コンテンツ累積番号ＣＯＮＮＵＭ、再生開始日ＹＭＤｈｍｓ−Ｓ、再生期限日ＹＭＤｈｍｓ−Ｅ、トラックの再生回数ＣＴ、再生許可回数ＭＴ、ＣＯＰＹ  ＣＯＮＴＲＯＬ  ＣＣ、高速デジタルコピー許可回数ＣＮ（Ｏｐｔｉｏｎ）の何れの情報に対しても改ざんが行われなかったと判断され、ステップＳＰ１１４において、再生が許可される。
【０１９８】
ステップＳＰ１１３の比較において、今回演算されたハッシュ値と、前回演算されたハッシュ値とが不一致の場合には、上述のトラックの属性Ａ、再生制限フラグとセキュリティバージョンＬＴ、ＭＧ（Ｄ）のシリアル番号ＭＧ（Ｄ）Ｓｅｒｉａｌ、コンテンツ累積番号ＣＯＮＮＵＭ、再生開始日ＹＭＤｈｍｓ−Ｓ、再生期限日ＹＭＤｈｍｓ−Ｅ、トラックの再生回数ＣＴ、再生許可回数ＭＴ、ＣＯＰＹ  ＣＯＮＴＲＯＬ  ＣＣ、高速デジタルコピー許可回数ＣＮ（Ｏｐｔｉｏｎ）の何れかの情報に対して改ざんが行われたと判断され、ステップＳＰ１１５において、再生が不許可とされる。そして、ステップＳＰ１１６において、改ざんフラグがセットされる。
【０１９９】
なお、再生の際に上述のトラックの再生回数ＣＴに所定の数値（ゼロより大きい正の整数）および再生許可回数ＭＴに所定の数値（ゼロより大きい正の整数）が設定されているか否かを判別して、所定の数値が設定されているときには、再生回数ＣＴに対してデクリメントが行われる。この場合に、上述のトラックの再生回数ＣＴがゼロで再生許可回数ＭＴに所定の数値（ゼロより大きい正の整数）が設定されている場合には、再生許可回数を全て使用したと判断でき再生不許可に制御する。
【０２００】
上述した第２の実施形態で説明したフォーマットに準拠したＥＭＤ端末での実施形態の動作についてさらに具体的な例を挙げて詳細に説明する。図３６は、ＥＭＤ（Electric Music Distribution ）端末により２回の再生制限付きの音楽ファイルをダウンロードした場合の処理例を示す。簡単のため、再生期日の制限はないものと想定する。ＥＭＤ端末は、図示しないが、上述したレコーダと同様の暗号化回路を有しており、端末に装着されたメモリカードの認証を行い、正規のメモリカードである場合には、暗号化されたオーディオファイル（ＡＴＲＡＣ３ファイル）をメモリカードに記録する。これと共に、ＥＭＤ端末が対応するオーディオファイルに関する再生制限情報をレコーダに供給する。
【０２０１】
レコーダ側は、フォーマット化処理を行い、メモリカードにオーディオファイルおよび再生制限情報をフラッシュメモリに記録する。図３６においてＳ２０１で示される処理は、ＥＭＤ端末からディジタルをダウンロードした時になされる処理である。ステップＳ１において、ＥＭＤ端末より再生回数制限のデータを受け取り、トラック情報管理ファイルＴＲＫＬＩＳＴのＴＲＫＩＮＦにおいて、（ＭＴ＝２）および（ＣＴ＝２）が記録（セット）される。
【０２０２】
同時に、ハッシュ計算回路７１において、このＭＴ、ＣＴ値とコンテンツＩＤ等の他のいくつかのパラメータ（再生制限値群７０）によってハッシュ値が演算が演算される。ハッシュ計算回路７１における演算により得られたハッシュ値が暗号化回路２２のメモリ領域７３に保持される。この後、ディジタルオーディオレコーダの電源がオフされたり、メモリカード４０が取り外された場合には、必ず改ざんのチェックがなされる。必要であれば、再生動作を行う度に改ざんのチェックを行うようにしても良い。
【０２０３】
例えば、メモリカード４０が取り外された後、再度、挿入され、ステップＳ３において再生命令が指示された場合には、図３６において、Ｓ２０２で示される処理がなされる。先ず、ステップＳ４において、再生制限値群７０のハッシュ値を算出する演算がハッシュ計算回路７１においてなされる。ハッシュ計算回路７１における演算により得られた結果が暗号化回路２２の所定の今回ハッシュ値を格納するためのメモリ領域７２に保持される。そして、今回ハッシュ値と、前回ハッシュ値とが読み出され、一致検出回路７４に供給される。一致検出回路７４において、今回ハッシュ値と前回ハッシュ値とが比較され、今回ハッシュ値と前回ハッシュ値とが同一であるかどうかで改ざんの有無が検出され、一致検出回路７４の出力が制御部７５に供給される。
【０２０４】
一致検出回路７４からの出力に基づいて制御部７５において制御情報が形成される。つまり、改ざんがなされていなければ、当然、今回ハッシュ値と前回ハッシュ値とが同一であり、改ざんが検出されない。また、この場合においては、再生回数ＣＴが（ＣＴ＝０）でないため、ステップＳ５に移行して制御部７５において再生動作を制御するための制御情報が形成され、再生動作が開始される。再生動作が完了すると、次に、ステップＳ６に移行し、再生回数ＣＴがデクリメントされ、（ＣＴ＝１）が再セットされる。同時に、再生制限値群７０のハッシュ値が演算され、前回ハッシュ値としてメモリ領域７３に保持される。
【０２０５】
さらに、例えば、メモリカード４０が取り外された後、再度、挿入され、ステップＳ７において再生命令が指示された場合には、Ｓ２０３で示すように、前述した処理Ｓ２０２と同様の処理がなされる。すなわち、再生制限値群７０のハッシュ値を算出し、前回ハッシュ値とが比較され、改ざんの有無が検出され（ステップＳ８）、改ざんがなされていなければ、再生動作が行われ（ステップＳ９）、−１された後の再生回数（ＣＴ＝０）が再セットされる（ステップＳ１０）。
【０２０６】
再生回数ＣＴが（ＣＴ＝０）に設定された後では、改ざんの有無に係わらず再生回数ＣＴの条件が優先的に判断され、再生が禁止される。例えば、メモリカード４０が取り外された後、再度、挿入され、ステップＳ１１において再生命令が指示されると、ステップＳ１２において、再生制限値群７０のハッシュ値の演算、今回ハッシュ値と前回ハッシュ値との比較がなされる。今回ハッシュ値と前回ハッシュ値とが同一であると判定されて本来なら再生動作が許可されるのであるが、（ＣＴ＝０）であるので、再生禁止と判断される。従って、この場合においては、制御部７５において、再生不可とする制御情報が形成される（ステップＳ１３）。これと共に、再生許可回数に再生回数が達したために再生動作が禁止されることを音声、表示等で利用者に告知する。
【０２０７】
若し、トラック情報管理ファイルＴＲＫＬＩＳＴのＴＲＫＩＮＦが改ざんされた場合、例えば、前述した処理１１１で改ざんがなされ、ステップＳ２１において、再生条件付きの音楽ファイルの再生許可回数ＭＴの値が（ＭＴ＝１０）に改ざんされた場合について説明する。
【０２０８】
ステップＳ２２において再生命令が指示された場合には、先ず、ステップＳ２３において、再生制限値群７０のハッシュ値が算出される。このハッシュ値が今回ハッシュ値としてメモリ領域７２に保持される。そして、今回ハッシュ値と、前回ハッシュ値とが一致検出回路７４において、両者が同一であるかどうかが検出される。この場合においては、改ざんがなされているため、今回ハッシュ値と前回ハッシュ値とが一致していないことが検出され、制御部７５において、再生動作を禁止する制御情報が形成される（ステップＳ２３）。従って、ステップＳ２４では、再生動作がなされない。この場合に、改ざんされたために再生動作が禁止されることを音声、表示等で利用者に告知する。
【０２０９】
そして、ステップＳ２５に移行し、ＴＲＫＬＩＳＴのＴＲＫＩＮＦの所定位置（例えば、図２７におけるＲｅｓｅｒｖｅｄ）に改ざんフラグをセットし、ハッシュ値を演算し、保存する（ステップＳ２５）。改ざんフラグがセットされた状態では、再生許可回数ＭＴの値が（ＭＴ＝２）に書き戻しても、改ざんフラグがセットされているため、再生が禁止される（ステップＳ２６）。つまり、常に再生する前のチェックで改ざんフラグの有無の検出がなされ、改ざんフラグが検出されると、制御部７５において再生禁止と判断される。従って、この場合においては、制御部７５において、再生不可とする制御情報が形成され、再生動作がなされることがない。
【０２１０】
なお、上述した具体例においては、再生動作がなされる度にトラックの再生回数ＣＴを一つずつデクリメントして（ＣＴ＝０）となる時に、再生を禁止する場合について説明したが、ＣＴを実際の再生回数のカウント値として再生動作がなされる度にＣＴの値を０から＋１ずつインリメントして再生条件付きのトラックの再生許可回数ＭＴと等しくなった（ＭＴ＝ＣＴ）の時に、再生を禁止するようにしても良い。さらに、ＣＴを設けずに、ＭＴを１回の再生毎に１づつ減らしても良い。
【０２１１】
次に、ＴＲＫＬＩＳＴのＴＲＫＩＮＦに再生許可回数ＭＴと再生回数ＣＴとがセットされないで、再生制限付きのトラックの再生期限日（ＹＭＤｈｍｓ−Ｅ）のみがセットされた場合について説明する。
【０２１２】
再生期限日は、ＥＭＤ端末により再生期限日付きの音楽ファイルをメモリカードにダウンロードした時に同時にこの再生期限日がメモリカードのトラック情報管理ファイルに書き込まれる。そして、再生期限日を含む再生制限値群７０のハッシュ値が演算される。このハッシュ値が暗号化回路２２の所定の前回ハッシュ値を格納するためのメモリ領域７３に保持される。この後、ディジタルオーディオレコーダの電源がオフされたり、メモリカード４０が取り外された場合、さらに、必要であれば、再生指令が与えられた場合には、再生動作に先立って必ず、改ざんの有無のチェックと、制御部７５の内部時計７６の示す日時と再生期限日との照合処理とがなされる。
【０２１３】
例えば、メモリカード４０が取り外された後、再度、挿入され、再生命令が指示された場合には、再生制限値群７０のハッシュ値が算出される。そして、今回の演算により得られたハッシュ値と前回の演算により得られたハッシュ値とが一致検出回路７４において比較され、今回ハッシュ値と前回ハッシュ値とが同一であるかどうかで改ざんの有無の検出がなされると共に、内部時計７６の示す日時と再生期限日との照合処理がなされる。改ざんがなく、かつ、内部時計７６の示す日時が再生期限日内であると判定される場合には、再生動作がなされる。
【０２１４】
一方、改ざんが検出された場合には、前述したのと同様に再生が禁止される。また、改ざんがなくとも、内部時計７６の示す日時が再生期限日を経過していると判定される時には、ＴＲＫＬＩＳＴのＴＲＫＩＮＦの所定位置（例えば、図２７におけるＲｅｓｅｒｖｅｄ）に期限切れを示すフラグがセットされると共に、改ざんの有無に対して再生期限日の条件が優先的に判断され、再生動作が禁止される。
【０２１５】
つまり、常に再生する前のチェックでハッシュ値が異なればどこかでファイルが改ざんされた可能性があると判断されて再生を禁止する動作がなされるが、ハッシュ値が同一の場合でも、再生期限日の条件が満たされなければ、やはり再生が禁止される。このように再生が禁止される時には、その旨を音声、表示等で利用者に告知する。なお、内部時計７６の示す日時が再生期限日を経過している場合においても、再生制限値群７０のハッシュ値が演算され、保持され、将来の改ざんに対処する。
【０２１６】
さらに、ＴＲＫＬＩＳＴのＴＲＫＩＮＦに再生許可回数ＭＴと再生回数ＣＴとがセットされないで、音楽ファイルの再生開始日（ＹＭＤｈｍｓ−Ｓ）のみがセットされている場合について説明する。
【０２１７】
再生開始日は、ＥＭＤ端末により音楽ファイルをメモリカードにダウンロードした時にトラック情報管理ファイルに書き込まれる。そして、再生期限日を含む再生制限値群７０のハッシュ値が演算され、ハッシュ値が暗号化回路２２に供給され、暗号化回路２２の所定の前回ハッシュ値を格納するためのメモリ領域７３に保持される。この後、ディジタルオーディオレコーダの電源がオフされたり、メモリカード４０が取り外された場合には、再生動作に先立って必ず、改ざんのチェックと、制御部７５の内部時計７６の示す日時と再生開始日との照合処理とがなされる。
【０２１８】
例えば、メモリカード４０が取り外された後、再度、挿入され、再生命令が指示された場合には、今回ハッシュ値と前回ハッシュ値とが比較され、両者が同一であるかどうかで改ざんの有無の検出がなされると共に、内部時計７６の示す日時と再生開始日との照合処理がなされる。改ざんがなく、かつ、内部時計７６の示す日時が再生開始日以降であると判定される場合には、再生動作が許可される。
【０２１９】
一方、改ざんが検出された場合には、前述したのと同様に再生動作が禁止される。また、改ざんがなくとも、内部時計７６の示す日時が再生開始日に到達していないと判定される時には、改ざんの有無に係わらず再生開始日の条件が優先的に判断され、再生動作が禁止される。
【０２２０】
なお、上述した説明においては、改ざんを検出するために、再生制限値群７０の各パラメータ、すなわちコンテンツＩＤ、再生回数ＣＴ、再生許可回数ＭＴ、再生期限日、再生開始日、制限値オーバー毎にハッシュ値を計算したが、これらのハッシュ値を音楽ファイル毎にひとまとめにして計算しても良い。
【０２２１】
また、上述した説明においては、ディジタルオーディオレコーダにこの発明を適用した場合について説明したが、他の映像、オーディオ、プログラムデータ等のデータを扱う機器に対しても同様に適用することができる。
【０２２２】
【発明の効果】
この発明では、再生制限情報のハッシュ値が算出され、得られたハッシュ値が外部から見えない、すなわち、値自身を外部に読み出すことができないメモリ領域に保持され、前回ハッシュ値と今回ハッシュ値とが一致しているかどうかにより改ざんの有無が検出される。制御部は、この比較手段の出力に基づいて改ざんを検出した場合には、再生動作を禁止する。従って、この発明に依れば、再生制限情報の改ざんを確実に検出することができると共に、改ざんを検出した際には、そのファイルの再生を禁止することができる。
【図面の簡単な説明】
【図１】この発明の不揮発性メモリカードを使用したデジタルオーディオレコーダ／プレーヤーに関するブロック図である。
【図２】この発明に適応されるＤＳＰの内部ブロック図を示す。
【図３】この発明に適応されるメモリカードの内部ブロック図を示す。
【図４】この発明に適応されるメモリカードを記憶媒体とするファイル管理構造を示す模式図である。
【図５】この発明に適応されるメモリカード内のフラッシュメモリのデータの物理的構造を示す。
【図６】この発明に適応されるメモリカード内のデータ構造を示す、
【図７】メモリカード内に記憶されるファイル構造を示す枝図面である。
【図８】メモリカード内に記憶されるサブディレクトリーである再生管理ファイルＰＢＬＩＳＴ. ＭＳＦのデータ構造を示す。
【図９】連続した１つのＡＴＲＡＣ３データファイルを所定単位長ごとに分割するとともに属性ファイルを付加した場合のデータ構造図である。
【図１０】この発明のコンバイン編集処理および分割編集処理を説明するための構造図である。
【図１１】再生管理ファイルＰＢＬＩＳＴのデータ構造図を示す。
【図１２】再生管理ファイルＰＢＬＩＳＴのデータ構造図を示す。
【図１３】付加情報データの種類の対応表を示す。
【図１４】付加情報データの種類の対応表を示す。
【図１５】付加情報データの種類の対応表を示す。
【図１６】付加情報データのデータ構造を示す。
【図１７】ＡＴＲＡＣ３データファイルの詳細なデータ構造図である。
【図１８】ＡＴＲＡＣ３データファイルを構成する属性ヘッダーの上段のデータ構造図である。
【図１９】ＡＴＲＡＣ３データファイルを構成する属性ヘッダーの中段のデータ構造図である。
【図２０】録音モードの種類と各録音モードにおける録音時間等を示す表である。
【図２１】コピー制御状態を示す表である。
【図２２】ＡＴＲＡＣ３データファイルを構成する属性ヘッダーの下段のデータ構造図である。
【図２３】ＡＴＲＡＣ３データファイルのデータブロックのヘッダーのデータ構造図である。
【図２４】この発明におけるＦＡＴ領域が破壊された場合の回復方法を示すフローチャートである。
【図２５】メモリカード４０内に記憶されるファイル構造を示す第２の実施形態における枝図面である。
【図２６】トラック情報管理ファイルＴＲＫＬＩＳＴ．ＭＳＦとＡＴＲＡＣ３データファイルＡ３Ｄｎｎｎｎｎ．ＭＳＡとの関係を示す図である。
【図２７】トラック情報管理ファイルＴＲＫＬＩＳＴ．ＭＳＦの詳細なデータ構造を示す。
【図２８】名前を管理するＮＡＭＥ１の詳細なデータ構造である。
【図２９】名前を管理するＮＡＭＥ２の詳細なデータ構造である。
【図３０】ＡＴＲＡＣ３データファイルＡ３Ｄｎｎｎｎｎ．ＭＳＡの詳細なデータ構造を示す。
【図３１】付加情報を示すＩＮＦＬＩＳＴ. ＭＳＦの詳細なデータ構造を示す。
【図３２】付加情報データのを示すＩＮＦＬＩＳＴ. ＭＳＦの詳細なデータ構造を示す。
【図３３】この発明の第２の実施形態におけるＦＡＴ領域が破壊された場合の回復方法を示す遷移図である。
【図３４】この発明に適応される改善チェックを行う回路のブロック図である。
【図３５】この発明の第１の実施形態における改ざんチェックの手順を表すフローチャートである。
【図３６】この発明の第２の実施形態における改ざんチェックの手順を表すフローチャートである。
【符号の説明】
１０・・・オーディオエンコーダ／デコーダＩＣ、２０・・・セキュリティＩＣ、３０・・・ＤＳＰ、４０・・・メモリカード、４２・・・フラッシュメモリ、５２・・・セキュリティブロック、ＰＢＬＩＳＴ・・・再生管理ファイル、ＴＲＫＬＩＳＴ・・・トラック情報管理ファイル、ＩＮＦＬＩＳＴ・・・付加情報管理ファイル、Ａ３Ｄｎｎｎ・・・オーディオデータファイル
【図１】
0004779183.tif 000003
【図２】
0004779183.tif 000004
【図３】
0004779183.tif 000005
【図４】
0004779183.tif 000006
【図５】
0004779183.tif 000007
【図６】
0004779183.tif 000008
【図７】
0004779183.tif 000009
【図８】
0004779183.tif 000010
【図９】
0004779183.tif 000011
【図１０】
0004779183.tif 000012
【図１１】
0004779183.tif 000013
【図１２】
0004779183.tif 000014
【図１３】
0004779183.tif 000015
【図１４】
0004779183.tif 000016
【図１５】
0004779183.tif 000017
【図１６】
0004779183.tif 000018
【図１７】
0004779183.tif 000019
【図１８】
0004779183.tif 000020
【図１９】
0004779183.tif 000021
【図２０】
0004779183.tif 000022
【図２１】
0004779183.tif 000023
【図２２】
0004779183.tif 000024
【図２３】
0004779183.tif 000025
【図２４】
0004779183.tif 000026
【図２５】
0004779183.tif 000027
【図２６】
0004779183.tif 000028
【図２７】
0004779183.tif 000029
【図２８】
0004779183.tif 000030
【図２９】
0004779183.tif 000031
【図３０】
0004779183.tif 000032
【図３１】
0004779183.tif 000033
【図３２】
0004779183.tif 000034
【図３３】
0004779183.tif 000035
【図３４】
0004779183.tif 000036
【図３５】
0004779183.tif 000037
【図３６】
0004779183.tif 000038