(57)【要約】【課題】記録媒体に記録されたデータの改竄チェックを効率的に行うことができるようにする。【解決手段】ディレクトリ１２２Ａに属するファイルの夫々について生成されたＭＡＣ値と、ディレクトリ１２２Ａに属する全ファイルのＭＡＣ値に基づき生成されたＩＣＶ（Ｄ−ＩＣＶ）とがシーケンスページ１２１Ａに格納される。ディスク上の全てのディレクトリ１２２Ａ、１２２Ｂ、・・・について夫々作成されたシーケンスページ１２１Ａ、１２１Ｂ、・・・と、全てのシーケンスページ１２１Ａ、１２１Ｂ、・・・に格納されたＤ−ＩＣＶに基づき生成されたＩＣＶとがシーケンスブロック１１４に格納される。シーケンスページ１２１Ａ、１２１Ｂ、・・・によって、ＭＡＣ値がディレクトリ毎に閉じて管理されるため、データ改竄チェックをディレクトリ毎に行うことができる。【選択図】図３
2007234214.tif 000002
【特許請求の範囲】
【請求項１】
記録媒体に記録されたファイル毎に、少なくとも上記ファイルに固有な鍵情報を用いて所定の演算方法により第１の演算値を算出する第１の算出手段と、
１または複数のファイルをまとめた上位概念であるディレクトリ毎に、少なくとも該ディレクトリに含まれる全てのファイルの上記第１の演算値を用いて所定の演算方法により第２の演算値を算出する第２の算出手段と、
少なくとも、上記第２の演算値に対応する情報として上記記録媒体の所定領域に記録されている第３の演算値と、上記ファイルに固有な鍵情報とを上記記録媒体から読み出す読み出し手段と、
上記読み出し手段によって読み出された上記ファイルに固有な鍵情報に基づき上記第１の算出手段で算出された上記第１の演算値を用いて上記第２の算出手段により所定の演算方法で演算された上記第２の演算値と、上記読み出し手段によって読み出された上記第３の演算値とを比較する比較手段と
を有することを特徴とするデータ再生装置。
【請求項２】
上記比較手段による比較結果に基づき、上記ファイルが改竄されたか否かを判断する
ことを特徴とする請求項１に記載のデータ再生装置。
【請求項３】
上記比較手段による比較結果に基づき、上記第２の演算値と上記第３の演算値とが一致しないときに、上記ファイルが改竄されたと判断する
ことを特徴とする請求項２に記載のデータ再生装置。
【請求項４】
上記ファイルは、該ファイルの種類に応じて上記ディレクトリにまとめられている
ことを特徴とする請求項１に記載のデータ再生装置。
【請求項５】
上記第３の演算値は、ファイルシステムがアクセスしない領域に記録されている
ことを特徴とする請求項１に記載のデータ再生装置。
【請求項６】
記録媒体に記録されたファイル毎に、少なくとも上記ファイルに固有な鍵情報を用いて所定の演算方法により第１の演算値を算出する第１の算出手段と、
１または複数のファイルをまとめた上位概念であるディレクトリ毎に、少なくとも該ディレクトリに含まれる全てのファイルの上記第１の演算値を用いて所定の演算方法により第２の演算値を算出する第２の算出手段と、
少なくとも上記第２の算出手段により算出した上記第２の演算値を上記記録媒体に記録する記録手段と
を有することを特徴とするデータ記録装置。
【請求項７】
上記ファイルは、該ファイルの種類に応じて上記ディレクトリにまとめられている
ことを特徴とする請求項６に記載のデータ記録装置。
【請求項８】
上記第３の演算値は、ファイルシステムがアクセスしない領域に記録されている
ことを特徴とする請求項６に記載のデータ記録装置。
【請求項９】
記録媒体に記録されたファイル毎に、少なくとも上記ファイルに固有な鍵情報を用いて所定の演算方法により第１の演算値を算出する第１の算出ステップと、
１または複数のファイルをまとめた上位概念であるディレクトリ毎に、少なくとも該ディレクトリに含まれる全てのファイルの上記第１の演算値を用いて所定の演算方法により第２の演算値を算出する第２の算出ステップと、
少なくとも、上記第２の演算値に対応する情報として上記記録媒体の所定領域に記録されている第３の演算値と、上記ファイルに固有な鍵情報とを上記記録媒体から読み出す読み出しステップと、
上記読み出しステップによって読み出された上記ファイルに固有な鍵情報に基づき上記第１の算出手段で算出された上記第１の演算値を用いて上記第２の算出手段により所定の演算方法で演算された上記第２の演算値と、上記読み出しステップによって読み出された上記第３の演算値とを比較する比較ステップと
を有し、
上記比較ステップによる比較結果に基づき、上記ファイルが改竄されたか否かを判断する
ことを特徴とするデータ改竄チェック方法。
【請求項１０】
上記比較ステップによる比較結果に基づき、上記第２の演算値と上記第３の演算値とが一致しないときに、上記ファイルが改竄されたと判断する
ことを特徴とする請求項９に記載のデータ改竄チェック方法。
【請求項１１】
記録媒体に記録されたファイル毎に、少なくとも上記ファイルに固有な鍵情報を用いて所定の演算方法により第１の演算値を算出する第１の算出手段と、
１または複数のファイルをまとめた上位概念であるディレクトリ毎に、少なくとも該ディレクトリに含まれる全てのファイルの上記第１の演算値を用いて所定の演算方法により第２の演算値を算出する第２の算出手段と、
少なくとも、上記第２の演算値に対応する情報として上記記録媒体の所定領域に記録されている第３の演算値と、上記ファイルに固有な鍵情報とを上記記録媒体から読み出す読み出し手段と、
上記読み出し手段によって読み出された上記ファイルに固有な鍵情報に基づき、上記第１の算出手段で上記第１の演算値を算出し、該第１の演算値に基づき上記第２の算出手段により所定の演算方法で演算された第２の演算値と、上記読み出し手段によって読み出された上記第３の演算値とを比較する比較手段と
を有し、
上記比較手段の比較結果に基づいて、上記ファイルが改竄されたか否かを判断する
ことを特徴とするデータ改竄チェック装置。
【請求項１２】
記録媒体に記録されたファイル毎に、少なくとも上記ファイルに固有な鍵情報を用いて所定の演算方法により第１の演算値を算出する第１の算出手段と、
１または複数のファイルをまとめた上位概念であるディレクトリ毎に、少なくとも該ディレクトリに含まれる全てのファイルの上記第１の演算値を用いて所定の演算方法により第２の演算値を算出する第２の算出手段と、
少なくとも、上記第１の算出手段により算出した上記第１の演算値と、上記第２の算出手段により算出した上記第２の演算値とを上記記録媒体の所定領域に記録する記録手段と
を有するデータ記録装置と、
上記記録媒体に記録されたファイル毎に、少なくとも上記ファイルに固有な鍵情報を用いて所定の演算方法により第３の演算値を算出する第３の算出手段と、
１または複数のファイルをまとめた上位概念であるディレクトリ毎に、少なくとも該ディレクトリに含まれる全てのファイルの上記第３の演算値を用いて所定の演算方法により第４の演算値を算出する第４の算出手段と、
少なくとも、上記第２の演算値と、上記ファイルに固有な鍵情報とを上記記録媒体から読み出す読み出し手段と、
上記読み出し手段によって読み出された上記ファイルに固有な鍵情報に基づき上記第３の算出手段で算出された上記第３の演算値を用いて上記第４の算出手段により所定の演算方法で演算された上記第４の演算値と、上記読み出し手段によって読み出された上記第２の演算値とを比較する比較手段と
を有するデータ再生装置と
を備え、
上記比較手段の比較結果に基づき、上記ファイルが改竄されたか否かを判断する
ことを特徴とするデータ改竄チェックシステム。
【請求項１３】
上記比較手段の比較結果に基づき、上記第２の演算値と上記第４の演算値とが一致しないときに、上記ファイルが改竄されたと判断する
ことを特徴とする請求項１２に記載のデータ改竄チェックシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、著作権保護され、記録媒体に記録されたコンテンツファイルに対する改竄の有無をチェックするようなデータ再生装置およびデータ記録装置、ならびに、データ改竄チェック方法、データ改竄チェック装置およびデータ改竄チェックシステムに関する。
【背景技術】
【０００２】
近年、ＤＶＤ(Digital Versatile Disk)に代表される、高密度光ディスクの開発が進み、それに伴い、規格の標準化が進められた。この標準化により、ＵＤＦ(Universal Disk Format)が策定された。ＤＶＤが書き換え可能とされたＤＶＤ−ＲＡＭ(DVD-Random Access Memory)は、このＵＤＦに従った論理フォーマットが用いられる。また、ＣＤ−ＲＯＭ(Compact Disc-Read Only Memory)が書き込み可能とされたＣＤ−Ｒや、書き換え可能とされＣＤ−ＲＷも、このＵＤＦを適用可能である。
【０００３】
ＵＤＦにおいては、階層的なファイルシステムが用いられ、ルートディレクトリに格納された情報からサブディレクトリが参照され、サブディレクトリに格納された情報から、さらに別のサブディレクトリの参照や、実体的なファイルの参照がなされる。
【０００４】
上述について、より具体的に説明する。ディスク上の記録領域は、セクタを最小単位としてアクセスされ、例えばＤＶＤ−ＲＡＭでは、ディスクの内側から外側へとアクセスがなされる。最内周側から、リードイン領域に続けてボリューム情報が書き込まれる領域（ここでは、システム領域とする）が配され、ここに、ルートディレクトリのファイルエントリ(File Entry:以下、ＦＥと略称する)が書き込まれる位置が示される。ＦＥは、ルートディレクトリ、サブディレクトリおよびファイルのアドレスと長さの情報であるアロケーションディスクリプタ(Allocation Descriptor:以下、ＡＤと略称する)からなる。
【０００５】
ルートディレクトリのＦＥにおいて、ＡＤによって実体としてのルートディレクトリの論理アドレスと長さとが示される。ルートディレクトリは、１または複数のファイル識別記述子(File Identifier Descriptor:以下、ＦＩＤと略称する)を含み、ＦＩＤによって、ルートディレクトリ下にあるサブディレクトリのＦＥやファイルのＦＥが参照される。これらのＦＥによって、それぞれ対応するサブディレクトリやファイルの実体が参照される。また、サブディレクトリの実体は、さらに１または複数のＦＩＤを含む。すなわち、ＵＤＦにおいて、ルートディレクトリ以外は、ＦＩＤおよびＦＥをポインタとして、ＦＩＤ、ＦＥおよび実体の順にアクセスが行われる。
【０００６】
ところで、記録媒体に記録された情報データの著作権保護に関する技術要素の一つとして、改竄チェックがある。これは、記録された情報データに対する不正な改竄の防止と、情報データが不正に改竄されてしまった場合の改竄の検出を行うための技術である。さらに、この改竄チェックは、情報データを、その情報データが記録された記録媒体で閉じたものとして縛ることで、情報データの不正な複写を防止することができるので、著作権保護においては、非常に重要な技術要素であるということがいえる。
【０００７】
従来のデータ改竄チェック方法について、概略的に説明する。情報データの単位であるファイル（コンテンツ）毎に、当該ファイルの重要管理情報、著作権情報および状態情報などの属性情報から、一意に生成され、且つ、逆演算による源情報の同定が困難であるような改竄チェック値を求める。求められた改竄チェック値は、記録媒体上に設けられた、ユーザが容易にアクセスできないエリアやファイルである改竄チェック管理値スペースに書き込まれる。当該記録媒体を再生したときに、再生データに基づき改竄チェック値を求め、求められた改竄チェック値と、改竄チェック値管理スペースに書き込まれた改竄チェック値とを比較することで、不正なファイルの移動や複写が行われたかどうかをチェックする。
【０００８】
同様に、同一記録媒体上に存在する全てのファイルを対象に、改竄チェック値を求めることで、不正なファイルの移動や複写が行われたかどうかをチェックする方法も、実施されている。
【０００９】
改竄チェック値を求める方法としては、例えばＩＳＯ／ＩＥＣ９７９７に規定されているＭＡＣ(Message Authentication Code)と称される演算方法が知られている。ここで、ファイル毎の改竄チェック値そのものを指してＭＡＣと呼ぶことがあり、このとき特に、同一記録媒体上にある全てのファイルが対象とされた改竄チェックをＩＣＶ(Integrity Check Value)と呼んで、両者の差別化を図ることがある。以下では、ファイル毎の改竄チェック値をＭＡＣと称し、同一記録媒体上の全てのファイルが対象にされた改竄チェック値をＩＣＶと称する。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
従来の改竄チェック方法では、上述したように、記録媒体上のファイル毎にＭＡＣを生成する。一方、近年では、記録媒体の大容量化が著しく進んでいる。記録媒体の容量が大きくなればなるほど記録媒体上に存在するファイル数も膨大になり、それに伴い、ＭＡＣの量も膨大になることが予想される。上述した改竄チェック方法の手続として、チェックを行うタイミングにおいて、記録媒体上に存在するファイルなどに基づき現状のＭＡＣおよびＩＣＶを演算することが必要となる。その際に、特にディスク状の記録媒体においては、その構造上、駆動系が存在し、ＭＡＣおよびＩＣＶを求める情報を得るためになされるアクセスに要する時間が多くかかってしまうという問題点があった。また、これは、ユーザによってもストレスになるという問題点があった。
【００１１】
さらに、同一記録媒体上に、様々な種類のコンテンツが存在する場合、この記録媒体を再生するアプリケーションソフトウェアやセット機器によっては、対象外になるようなコンテンツファイルについても、毎回改竄チェック手続に含まれることになる。このような場合、改竄チェックに費やされる時間が余計にかかってしまうことになり、時間効率が悪いという問題点があった。
【００１２】
さらにまた、あるタイミングで特定のファイルについて改竄チェック手続を行わなければならない場合も考えられる。このような場合、アプリケーションソフトウェアやセット機器では、当該記録媒体についての最初の改竄チェックの際に保持された、当該ファイルのＭＡＣリストの中から、対応するＭＡＣを検索し、検索されたＭＡＣを用いて改竄チェックを行う。この場合、上述のように記録媒体が大容量となり、記録媒体上に存在するファイル数が膨大となると、ＭＡＣリストも膨大となり、そのリストの中から対応するＭＡＣを特定するには多くの時間を費やす必要があり、上述と同様に、時間効率が悪いという問題点があった。
【００１３】
この問題に対する解決策の一例として、ＭＡＣを格納するエリアを固定長として、ファイル番号などと合わせて直接的にＭＡＣの格納場所を特定する方法がある。しかしながら、大容量の記録媒体の場合、そのコンテンツ格納能力からかなりの大きさのエリアをそのために確保する必要があるという問題点があった。
【００１４】
また、この方法では、ＭＡＣを格納するエリアが固定長とされるために、ファイル数などを制限する必要があり、実用的とはいえないという問題点があった。
【００１５】
したがって、この発明の目的は、データの改竄チェックを効率的に行うことができるデータ再生装置およびデータ記録装置、ならびに、データ改竄チェック方法、データ改竄チェック装置およびデータ改竄チェックシステムを提供することにある。
【課題を解決するための手段】
【００１６】
上述した課題を解決するために、第１の発明は、記録媒体に記録されたファイル毎に、少なくともファイルに固有な鍵情報を用いて所定の演算方法により第１の演算値を算出する第１の算出手段と、
１または複数のファイルをまとめた上位概念であるディレクトリ毎に、少なくともディレクトリに含まれる全てのファイルの第１の演算値を用いて所定の演算方法により第２の演算値を算出する第２の算出手段と、
少なくとも、第２の演算値に対応する情報として記録媒体の所定領域に記録されている第３の演算値と、ファイルに固有な鍵情報とを記録媒体から読み出す読み出し手段と、
読み出し手段によって読み出されたファイルに固有な鍵情報に基づき第１の算出手段で算出された第１の演算値を用いて第２の算出手段により所定の演算方法で演算された第２の演算値と、読み出し手段によって読み出された第３の演算値とを比較する比較手段と
を有することを特徴とするデータ再生装置である。
【００１７】
また、第２の発明は、記録媒体に記録されたファイル毎に、少なくともファイルに固有な鍵情報を用いて所定の演算方法により第１の演算値を算出する第１の算出手段と、
１または複数のファイルをまとめた上位概念であるディレクトリ毎に、少なくともディレクトリに含まれる全てのファイルの第１の演算値を用いて所定の演算方法により第２の演算値を算出する第２の算出手段と、
少なくとも第２の算出手段により算出した第２の演算値を記録媒体に記録する記録手段と
を有することを特徴とするデータ記録装置である。
【００１８】
また、第３の発明は、記録媒体に記録されたファイル毎に、少なくともファイルに固有な鍵情報を用いて所定の演算方法により第１の演算値を算出する第１の算出ステップと、
１または複数のファイルをまとめた上位概念であるディレクトリ毎に、少なくともディレクトリに含まれる全てのファイルの第１の演算値を用いて所定の演算方法により第２の演算値を算出する第２の算出ステップと、
少なくとも、第２の演算値に対応する情報として記録媒体の所定領域に記録されている第３の演算値と、ファイルに固有な鍵情報とを記録媒体から読み出す読み出しステップと、
読み出しステップによって読み出されたファイルに固有な鍵情報に基づき第１の算出手段で算出された第１の演算値を用いて第２の算出手段により所定の演算方法で演算された第２の演算値と、読み出しステップによって読み出された第３の演算値とを比較する比較ステップと
を有し、
比較ステップによる比較結果に基づき、ファイルが改竄されたか否かを判断する
ことを特徴とするデータ改竄チェック方法である。
【００１９】
また、第４の発明は、記録媒体に記録されたファイル毎に、少なくともファイルに固有な鍵情報を用いて所定の演算方法により第１の演算値を算出する第１の算出手段と、
１または複数のファイルをまとめた上位概念であるディレクトリ毎に、少なくともディレクトリに含まれる全てのファイルの第１の演算値を用いて所定の演算方法により第２の演算値を算出する第２の算出手段と、
少なくとも、第２の演算値に対応する情報として記録媒体の所定領域に記録されている第３の演算値と、ファイルに固有な鍵情報とを記録媒体から読み出す読み出し手段と、
読み出し手段によって読み出されたファイルに固有な鍵情報に基づき、第１の算出手段で第１の演算値を算出し、第１の演算値に基づき第２の算出手段により所定の演算方法で演算された第２の演算値と、読み出し手段によって読み出された第３の演算値とを比較する比較手段と
を有し、
比較手段の比較結果に基づいて、ファイルが改竄されたか否かを判断する
ことを特徴とするデータ改竄チェック装置である。
【００２０】
また、第５の発明は、記録媒体に記録されたファイル毎に、少なくともファイルに固有な鍵情報を用いて所定の演算方法により第１の演算値を算出する第１の算出手段と、
１または複数のファイルをまとめた上位概念であるディレクトリ毎に、少なくともディレクトリに含まれる全てのファイルの第１の演算値を用いて所定の演算方法により第２の演算値を算出する第２の算出手段と、
少なくとも、第１の算出手段により算出した第１の演算値と、第２の算出手段により算出した第２の演算値とを記録媒体の所定領域に記録する記録手段と
を有するデータ記録装置と、
記録媒体に記録されたファイル毎に、少なくともファイルに固有な鍵情報を用いて所定の演算方法により第３の演算値を算出する第３の算出手段と、
１または複数のファイルをまとめた上位概念であるディレクトリ毎に、少なくともディレクトリに含まれる全てのファイルの第３の演算値を用いて所定の演算方法により第４の演算値を算出する第４の算出手段と、
少なくとも、第２の演算値と、ファイルに固有な鍵情報とを記録媒体から読み出す読み出し手段と、
読み出し手段によって読み出されたファイルに固有な鍵情報に基づき第３の算出手段で算出された第３の演算値を用いて第４の算出手段により所定の演算方法で演算された第４の演算値と、読み出し手段によって読み出された第２の演算値とを比較する比較手段と
を有するデータ再生装置と
を備え、
比較手段の比較結果に基づき、ファイルが改竄されたか否かを判断する
ことを特徴とするデータ改竄チェックシステムである。
【００２１】
上述したように、第１の発明によれば、記録媒体に記録されたファイル毎に、少なくともファイルに固有な鍵情報を用いて所定の演算方法により第１の演算値を算出し、１または複数のファイルをまとめた上位概念であるディレクトリ毎に、少なくともディレクトリに含まれる全てのファイルの第１の演算値を用いて所定の演算方法により第２の演算値を算出し、少なくとも、第２の演算値に対応する情報として記録媒体の所定領域に記録されている第３の演算値と、ファイルに固有な鍵情報とを記録媒体から読み出し、読み出されたファイルに固有な鍵情報に基づき算出された第１の演算値を用いて所定の演算方法で演算された第２の演算値と、読み出された第３の演算値とを比較するようにしているため、比較結果に基づき、ファイルが改竄されたか否かを判断できる。
【００２２】
また、第２の発明によれば、記録媒体に記録されたファイル毎に、少なくともファイルに固有な鍵情報を用いて所定の演算方法により第１の演算値を算出し、１または複数のファイルをまとめた上位概念であるディレクトリ毎に、少なくともディレクトリに含まれる全てのファイルの第１の演算値を用いて所定の演算方法により第２の演算値を算出し、少なくとも算出した第２の演算値を記録媒体に記録するようにしているため、再生側においてファイルに固有な鍵情報を基にディレクトリに含まれる全てのファイルを用いて演算した演算値と、記録媒体から読み出した第２の演算値とを比較することにより、ファイルが改竄されたか否かを判断できる。
【００２３】
また、第３及び第４の発明によれば、記録媒体に記録されたファイル毎に、少なくともファイルに固有な鍵情報を用いて所定の演算方法により第１の演算値を算出し、１または複数のファイルをまとめた上位概念であるディレクトリ毎に、少なくともディレクトリに含まれる全てのファイルの第１の演算値を用いて所定の演算方法により第２の演算値を算出し、少なくとも、第２の演算値に対応する情報として記録媒体の所定領域に記録されている第３の演算値と、ファイルに固有な鍵情報とを記録媒体から読み出し、読み出されたファイルに固有な鍵情報に基づき算出された第１の演算値を用いて所定の演算方法で演算された第２の演算値と、読み出された第３の演算値とを比較し、比較結果に基づき、ファイルが改竄されたか否かを判断するようにしているため、時間的に効率よくデータ改竄チェックを行うことができる。
【００２４】
また、第５の発明によれば、記録側においては記録媒体に記録されたファイル毎に、少なくともファイルに固有な鍵情報を用いて所定の演算方法により第１の演算値を算出し、１または複数のファイルをまとめた上位概念であるディレクトリ毎に、少なくともディレクトリに含まれる全てのファイルの第１の演算値を用いて所定の演算方法により第２の演算値を算出し、少なくとも、算出した第１の演算値と、算出した第２の演算値とを記録媒体の所定領域に記録し、再生側においては記録媒体に記録されたファイル毎に、少なくともファイルに固有な鍵情報を用いて所定の演算方法により第３の演算値を算出し、１または複数のファイルをまとめた上位概念であるディレクトリ毎に、少なくともディレクトリに含まれる全てのファイルの第３の演算値を用いて所定の演算方法により第４の演算値を算出し、少なくとも、第２の演算値と、ファイルに固有な鍵情報とを記録媒体から読み出し、読み出されたファイルに固有な鍵情報に基づき算出された第３の演算値を用いて所定の演算方法で演算された第４の演算値と、読み出された第２の演算値とを比較し、比較結果に基づいてファイルが改竄されたか否かを判断するようにしているため、時間的に効率よくデータ改竄チェックを行うことができる。
【発明の効果】
【００２５】
第１の発明は、上述したように、記録媒体に記録されたファイル毎に、少なくともファイルに固有な鍵情報を用いて所定の演算方法により第１の演算値を算出し、１または複数のファイルをまとめた上位概念であるディレクトリ毎に、少なくともディレクトリに含まれる全てのファイルの第１の演算値を用いて所定の演算方法により第２の演算値を算出し、少なくとも、第２の演算値に対応する情報として記録媒体の所定領域に記録されている第３の演算値と、ファイルに固有な鍵情報とを記録媒体から読み出し、読み出されたファイルに固有な鍵情報に基づき算出された第１の演算値を用いて所定の演算方法で演算された第２の演算値と、読み出された第３の演算値とを比較するようにしているため、比較結果に基づき、ファイルが改竄されたか否かを判断できる効果がある。
【００２６】
また、第２の発明は、記録媒体に記録されたファイル毎に、少なくともファイルに固有な鍵情報を用いて所定の演算方法により第１の演算値を算出し、１または複数のファイルをまとめた上位概念であるディレクトリ毎に、少なくともディレクトリに含まれる全てのファイルの第１の演算値を用いて所定の演算方法により第２の演算値を算出し、少なくとも算出した第２の演算値を記録媒体に記録するようにしているため、再生側においてファイルに固有な鍵情報に基づきディレクトリに含まれる全てのファイルを用いて演算した演算値と、記録媒体から読み出した第２の演算値とを比較することにより、ファイルが改竄されたか否かを判断できる効果がある。
【００２７】
また、第３及び第４の発明は、記録媒体に記録されたファイル毎に、少なくともファイルに固有な鍵情報を用いて所定の演算方法により第１の演算値を算出し、１または複数のファイルをまとめた上位概念であるディレクトリ毎に、少なくともディレクトリに含まれる全てのファイルの第１の演算値を用いて所定の演算方法により第２の演算値を算出し、少なくとも、第２の演算値に対応する情報として記録媒体の所定領域に記録されている第３の演算値と、ファイルに固有な鍵情報とを記録媒体から読み出し、読み出されたファイルに固有な鍵情報に基づき算出された第１の演算値を用いて所定の演算方法で演算された第２の演算値と、読み出された第３の演算値とを比較し、比較結果に基づき、ファイルが改竄されたか否かを判断するようにしているため、時間的に効率よくデータ改竄チェックを行うことができる効果がある。
【００２８】
また、第５の発明は、記録側においては記録媒体に記録されたファイル毎に、少なくともファイルに固有な鍵情報を用いて所定の演算方法により第１の演算値を算出し、１または複数のファイルをまとめた上位概念であるディレクトリ毎に、少なくともディレクトリに含まれる全てのファイルの第１の演算値を用いて所定の演算方法により第２の演算値を算出し、少なくとも、算出した第１の演算値と、算出した第２の演算値とを記録媒体の所定領域に記録し、再生側においては記録媒体に記録されたファイル毎に、少なくともファイルに固有な鍵情報を用いて所定の演算方法により第３の演算値を算出し、１または複数のファイルをまとめた上位概念であるディレクトリ毎に、少なくともディレクトリに含まれる全てのファイルの第３の演算値を用いて所定の演算方法により第４の演算値を算出し、少なくとも、第２の演算値と、ファイルに固有な鍵情報とを記録媒体から読み出し、読み出されたファイルに固有な鍵情報に基づき算出された第３の演算値を用いて所定の演算方法で演算された第４の演算値と、読み出された第２の演算値とを比較し、比較結果に基づいてファイルが改竄されたか否かを判断するようにしているため、時間的に効率よくデータ改竄チェックを行うことができる効果がある。
【発明を実施するための最良の形態】
【００２９】
以下、この発明の実施の一形態を、図面を参照しながら説明する。先ず、理解を容易とするために、記録媒体にディスクを用いた場合における基本的なデータ改竄チェック方法について、図１および図２を用いて説明する。ここで説明する基本的な改竄チェック方法は、ＩＳＯ／ＩＥＣ９７９７のＭＡＣ(Message Authentication Code)による演算方法を導入したものである。なお、以下では、ファイル毎に求められる改竄チェック値そのものをＭＡＣ値と称し、同一記録媒体上にある全てのファイルを対象として求められる改竄チェック値を、ＩＣＶ(Integrity Check Value)と称する。
【００３０】
図１は、ディスク記録媒体に新たにファイル＃１および＃２が追加されたときの改竄チェック方法を概略的に示す一例の機能ブロック図である。ディスク記録媒体（以下、ディスクと略称する）１１０のユーザデータ領域１１０Ａに記録されたファイルのそれぞれについて、ＭＡＣの演算手法に基づきＭＡＣ値が求められる。例えば、図１に示されるファイル＃１のように、著作権情報やファイルの重要情報などのファイルの属性情報と、当該ファイルに固有な鍵となる情報、例えばそのファイルの実データ部分を暗号化する際に用いられたコンテンツ鍵とを用い、ＭＡＣ演算部１１２Ａによって所定の演算がなされ、ＭＡＣ値＃１が求められる。
【００３１】
他のファイルについても同様にしてＭＡＣ値が求められる。例えばファイル＃２では、上述と同様にコンテンツ鍵と、ファイルの重要情報および著作権保護条件などのファイルの属性情報から、ＭＡＣ演算部１１２ＢによってＭＡＣ値＃２が求められる。
【００３２】
ＭＡＣ値は、上述の著作権情報、ファイルの重要情報およびコンテンツ鍵などに限らず、ファイルの再生回数や複製回数などをさらに用いて求めるようにしてもよい。例えば、ファイルの複製回数をさらに用いてＭＡＣ値を求めることにより、ファイルのコピー世代の制限を行うことができる。
【００３３】
なお、ＭＡＣ値は、与えられた値に基づき一方向性の関数であるハッシュ関数を用いて生成される値であり、ＭＡＣ値から逆演算を行って元の値を求めることはできない。
【００３４】
このようにして、ファイル＃１および＃２についてそれぞれ生成されたＭＡＣ値＃１および＃２は、それぞれ対応するファイルのヘッダ情報として、対応するファイルに格納される。それと共に、ＭＡＣ値＃１および＃２は、ディスク１１０の記録領域のうち、ユーザが容易にアクセスできない領域、例えばディスク１１０に用意されたリードイン領域１１０Ｂにまとめて格納される。リードイン領域１１０Ｂは、そのディスク１１０が扱われるシステムにおいて、ファイルシステムがアクセスしない領域、すなわち、当該ファイルシステムにおいて論理アドレス上では存在しない領域である。
【００３５】
さらに、ファイル毎に生成されたＭＡＣ値＃１および＃２は、ＭＡＣ演算部１１３に入力される。ＭＡＣ演算部１１３には、さらにＩＣＶ演算用鍵が入力され、このＩＣＶ演算用鍵と、入力されたＭＡＣ値＃１および＃２とからＩＣＶを生成する。このＩＣＶは、ディスク１１０上において対象となる全てのファイルの情報が反映された値となっている。生成されたＩＣＶは、上述したＭＡＣ値＃１および＃２と同様に、ディスク１１０のリードイン領域１１０Ｂに記録される。
【００３６】
このように、ディスク１１０上に新規にファイル＃１および＃２が追加された場合には、リードイン領域１１０Ｂには、ファイル毎の改竄チェック値であるＭＡＣ値＃１および＃２と、ディスク１１０上において対象となる全てのファイルの情報が反映された改竄チェック値であるＩＣＶとが記録される。ここでは、改竄チェックに関連する情報が格納される、リードイン領域１１０Ｂのような領域およびその領域におけるデータ構造を、シーケンスブロックと称する。図１において、シーケンスブロック１１４に対してファイル毎のＭＡＣ値＃１、＃２と、ＩＣＶとが格納される。シーケンスブロック１１４は、上述したように。ディスク１１０の記録領域のうち、ユーザが容易にアクセスできない、例えばリードイン領域１１０Ｂに記録される。
【００３７】
図２は、ディスク１１０上で、例えばある特定のファイルを再生／移動する場合や、システムにおいて改竄チェックが要求されたタイミングにおける一例の手続を示す機能ブロック図である。ある特定のファイルについての改竄チェックは、ＭＡＣ値を用いて行われる。例えばファイル＃１が再生あるいは移動される場合、先ず、図１を用いて既に説明した方法により、当該ファイルに関して、ＭＡＣ値が生成される。ファイル＃１に関して生成されるこのＭＡＣ値を、ＭＡＣ値＃１’とする。
【００３８】
一方、ファイル＃１がこのディスク１１０に記録された際に生成され、ファイル＃１のヘッダ部に格納されたＭＡＣ値＃１と、ヘッダ部へのＭＡＣ＃１の格納と共にリードイン領域１１０Ｂのシーケンスブロック１１４に格納されたＭＡＣ＃１とが取り出される。取り出されたこれらのＭＡＣ値＃１と、上述のＭＡＣ値＃１’とが比較部１１５Ａにおいて比較される。この比較により、ＭＡＣ値＃１’がヘッダ部から取り出されたＭＡＣ値＃１およびシーケンスブロック１１４から取り出されたＭＡＣ値＃１と一致しない場合には、ファイル＃１に対して不正に改竄が行われたおそれがあると判断され、システムにおいてエラー処理がなされる。
【００３９】
また、ディスク１１０上の全てのファイルを対象とした改竄チェックは、シーケンスブロック１１４に格納されたＩＣＶを用いて行われる。例えばディスク１１０上のあるファイル（ファイル＃１とする）が再生あるいは移動される場合、先ず、上述と同様にして、ディスク１１０上に存在する全てのファイルについてＭＡＣ値が生成され、生成された、全てのファイルについてもＭＡＣ値に対して、ＭＡＣ演算部１１３において、ＩＣＶ演算用鍵を用いてＩＣＶ’が生成される。
【００４０】
一方、ディスク１１０のリードイン領域１１０Ｂのシーケンスブロック１１４に格納されたＩＣＶが取り出される。シーケンスブロック１１４から取り出されたこのＩＣＶと、ディスク１１０上の全てのファイルのＭＡＣ値から生成されたＩＣＶ’とが比較部１６で比較される。比較の結果、両者が一致しなければ、ディスク１１０上においてファイルの不正な移動やコピー、消去などが行われたと判断され、システムにおいてエラー処理がなされる。
【００４１】
上述の基本的な改竄チェック方法を踏まえて、この発明の実施の第１の形態による改竄チェック方法について説明する。図３は、この実施の一形態による改竄チェック値のデータ構造を概略的に示す。この実施の第１の形態は、上述の図１および図２で示した基本構成における、シーケンスブロック１１４の構造にポイントを置いたものである。適用される記録媒体は、上述したような、ディスク状記録媒体であるディスク１１０が想定されている。なお、この実施の第１の形態では、適用可能な記録媒体はディスク状記録媒体に限られない。
【００４２】
シーケンスブロック１１４は、１または複数のシーケンスページ１２１Ａ、１２１Ｂ、・・・とディスク１１０上の全てのファイルについての改竄チェック値ＩＣＶとからなる。シーケンスページ１２１Ａ、１２１Ｂ、・・・のそれぞれは、ディスク１１０上のファイル毎の改竄チェック値、例えばＭＡＣ値が複数、リスト構造として格納されるデータ構造とされている。各ファイルとＭＡＣ値との対応付けは、例えば、ファイルシステムによって構築されるファイルの木構造の探索順に対応した順序で、シーケンスページにおけるＭＡＣ値のエントリを並べることでなされる。
【００４３】
また、ディスク１１０上のファイルは、１または複数のファイルが上位概念であるディレクトリとしてまとめられる。シーケンスページ＃１、＃２、・・・のそれぞれは、格納されるＭＡＣ値に対応するファイルがまとめられたディレクトリに対応付けられる。例えば、各ディレクトリ１２２Ａ、１２２Ｂ、・・・と各シーケンスページ１２１Ａ、１２１Ｂ、・・・とが互いに対応がとれるようなＩＤを格納するフィールドを、シーケンスページ１２１Ａ、１２１Ｂ、・・・にそれぞれ規定することで、各ディレクトリ１２２Ａ、１２２Ｂ、・・・と各シーケンスページ１２１Ａ、１２１Ｂ、・・・との対応をとることができる。
【００４４】
例えばシーケンスページ１２１Ａ、１２１Ｂ、・・・は、ディスク１１０上に形成されたディレクトリ１２２Ａ、１２２Ｂ、・・・とそれぞれ対応付けられている。シーケンスページ１２１Ａ、１２１Ｂ、・・・は、対応するディレクトリに含まれるファイルそれぞれから生成されたＭＡＣ値と、当該ディレクトリに含まれる全てのファイルのＭＡＣ値を入力として生成されたＩＣＶとが格納される。
【００４５】
一例として、ディレクトリ１２２Ａと対応付けられるシーケンスページ１２１Ａは、ディレクトリ１２２Ａに格納されるファイル＃１［０］、＃１［１］、・・・、＃１［ｎ−１］（図示しない）のそれぞれから生成されたＭＡＣ値＃１［０］、＃１［１］、・・・、＃１［ｎ−１］と、ファイル＃１［０］、＃１［１］、・・・、＃１［ｎ−１］の全てのＭＡＣ値から生成されたＩＣＶとからなる。
【００４６】
なお、以下では、ディレクトリに含まれる全てのファイルのＭＡＣ値を入力として生成されたＩＣＶを、Ｄ−ＩＣＶと称する。また、図３において、「＃１」、「＃２」は、対応するディレクトリを区別するため、括弧［］の内容は、当該ディレクトリに格納されるファイルを区別するために記される。
【００４７】
さらに、上述したシーケンスブロック１１４に格納されるＩＣＶは、各シーケンスページ１２１Ａ、１２１Ｂ、・・・に格納される全てのＤ−ＩＣＶ＃１、＃２、・・・を入力として生成される。したがって、シーケンスブロック１１４Ａに格納されるＩＣＶは、結果的に、ディスク１１０全体のファイルに対するＭＡＣ値が反映された値となる。
【００４８】
上述したように、各シーケンスページ１２１Ａ、１２１Ｂ、・・・に格納されるＭＡＣ値の数は、対応するディレクトリ１２２Ａ、１２２Ｂ、・・・に格納されるファイル数に応じて変わる。同様に、シーケンスブロック１１４に格納されるシーケンスページ１２１Ａ、１２１Ｂ、・・・の数は、ディスク１１０に作成されるディレクトリ１２２Ａ、１２２Ｂ、・・・の数に応じて変わる。したがって、シーケンスブロック１１４は、可変長領域として構築されると共に、シーケンスブロック１１４中の各シーケンスページ１２１Ａ、１２１Ｂ、・・・も、それぞれ可変長領域として構築される。
【００４９】
図４は、ディスク１１０の一例の物理フォーマットを部分的に示す。ディスク１１０がディスク内周側から外周側へとデータを記録していく場合、図４の上側がディスク内周側、下側が外周側にそれぞれ相当する。ディスク内周側からリードイン領域１１０Ｂが配置されている。リードイン領域１１０Ｂの外側から、ユーザデータ領域が開始される。ユーザデータ領域は、論理アドレスが与えられ、このディスク１１０を扱うファイルシステムによってアクセス可能とされた領域である。一方、リードイン領域１１０Ｂは、上述したように、論理アドレス上では存在せず、ファイルシステムがアクセスしない領域である。
【００５０】
リードイン領域１１０Ｂの先頭に、メディアＩＤが記録される領域１３０が例えば１３２バイトの大きさで設けられる。メディアＩＤの領域の後ろにエンボス領域１３１が配され、エンボス領域１３１の次から、リードイン領域１１０Ｂの最後までが書き替え可能な領域１３２とされる。シーケンスブロック１１４は、この書き替え可能な領域１３２の所定位置に２重書きされる。シーケンスブロック１１４が２重書きされたそれぞれを、シーケンスブロック１１４Ａ、シーケンスブロック１１４Ｂとする。
【００５１】
この書き替え可能な領域１３２の所定位置から開始される、大きさが例えば１２８ｋバイトの固定領域１３３に、シーケンスブロック１１４Ａが書き込まれる。そして、固定領域１３３に続けて配される大きさが例えば１２８ｋバイト固定領域１３３’には、シーケンスブロック１１４Ａと同一のデータからなるシーケンスブロック１１４Ｂが書き込まれる。
【００５２】
例えば固定領域１３３において、シーケンスブロック１１４Ａは例えば前詰めで書き込まれ、固定領域１３３内で余った領域１３４は、スタッフィングバイトで埋められる。固定領域１３３’も、固定領域１３３と同様な構成とされる。
【００５３】
図５は、シーケンスブロック１１４Ａおよび１１４Ｂの一例の論理フォーマットを示す。図中、「０ｘ」から始まる数値は、１６進表記されていることを示す。ここでは、シーケンスブロック１１４Ａを例にとって説明する。横方向にバイトが示されている。最初の２バイトのフィールド「ＳＰＥ  Ｎｕｍ」には、このシーケンスブロック１１４Ａにエントリされているシーケンスページの総エントリ数が格納される。次の４バイトのフィールド「Ｂｌｏｃｋ  Ｓｉｚｅ」は、シーケンスブロック１１４Ａ自身のサイズが格納される。シーケンスブロック１１４Ａの先頭バイトから最終エントリの最終バイトまでのバイト数が格納される。
【００５４】
フィールド「Ｂｌｏｃｋ  Ｓｉｚｅ」に続く４バイトには、フィールド「Ｒｅｖｉｓｉｏｎ」が配される。フィールド「Ｒｅｖｉｓｉｏｎ」は、このシーケンスブロック１１４Ａの書き替え回数およびこのシーケンスブロック１１４Ａが有効／無効のどちらの状態にあるかを示す値Ｒｅｖｉｓｉｏｎが格納される。値Ｒｅｖｉｓｉｏｎは、初期状態が「０」とされ、このシーケンスブロック１１４Ａが書き替えられる度に、値が「１」ずつ増加される。また、このシーケンスブロック１１４Ａが無効であるか、または、書き替え途中である場合には、値Ｒｅｖｉｓｉｏｎ＝Ｉｎｖａｌｉｄ  Ｎｕｍとされ、その旨が示される。値Ｉｎｖａｌｉｄ  Ｎｕｍは、例えば値「０ｘＦＦＦＦＦＦＦＦ」で示される。
【００５５】
「Ｒｅｖｉｓｉｏｎ」に続く６バイトおよびその次の１６バイトは、システム予約されている。このシステム予約バイトにＩＣＶを格納することができる。１３３バイト目からシーケンスページ１２１Ａ、１２１Ｂ、・・・がエントリされる。ディスク１１０上に存在する全てのディレクトリに対応したシーケンスページの情報がエントリされたら、例えば全て「０」からなるスタッフィングバイトで以て、シーケンスブロック１１４Ａが格納される固定領域１３３が、最終バイトまで埋め尽くされる。なお、フィールド「Ｂｌｏｃｋ  Ｓｉｚｅ」にシーケンスブロック１１４Ａ自身のサイズ情報が記述されているため。スタッフィングバイトは、必ずしも必要ではない。
【００５６】
このように、この実施の一形態では、シーケンスブロックが、ディスク１１０上に存在するディレクトリ毎に一対一に対応したデータ構造であるシーケンスページの集合体で構成される。
【００５７】
図６は、シーケンスページ１２１Ａ、１２１Ｂ、・・・の一例の論理フォーマットを示す。図中、「０ｘ」から始まる数値は、１６進表記されていることを示す。ここでは、シーケンスページ１２１Ａを例にとって説明する。最初の２バイトのフィールド「Ｐａｇｅ  ＩＤ」は、このシーケンスページ１２１Ａとディスク１１０上のファイルシステムにおけるディレクトリとを関連付けるためのＰａｇｅ  ＩＤが格納される。次の２バイトのフィールド「Ｅｎｔｒｙ  Ｎｕｍ」は、このシーケンスページ１２１ＡにエントリされているＭＡＣ値の総数が格納される。次の４バイトのフィールド「Ｐａｇｅ  Ｓｉｚｅ」は、シーケンスページ１２１Ａ自身のサイズが格納される。シーケンスページ１２１Ａの先頭バイトから最終エントリの最終バイトまでのバイト数が格納される。次の８バイトは、システム予約されている。
【００５８】
１７バイト目のフィールド「Ｄ−ＩＣＶ」は、Ｄ−ＩＣＶが格納される。そして、続く３３バイト目からＭＡＣ値が格納される。ＭＡＣ値は、例えば６４ビットすなわち８バイトの固定長とされている。ＭＡＣ値は、シーケンスページ１２１Ａの１７バイト目から８バイトずつ詰め込まれる。
【００５９】
このように、この実施の一形態では、シーケンスページには、ディスク１１０上のディレクトリと一対一で対応をとれるような値が格納される、フィールド「Ｐａｇｅ  ＩＤ」が規定されている。そのため、改竄チェック手続においては、シーケンスブロック１１４Ａ内の特定のシーケンスページだけを対象とした処理を行うことができる。すなわち、この実施の第１の形態によれば、ディスク１１０上の特定のディレクトリだけを対象としてデータ改竄チェックを行うことができる。
【００６０】
この実施の一形態では、上述のシーケンスブロック１１４Ａおよび１１４Ｂは、互いにバックアップとして機能する。すなわち、ディスク上のファイルの再生や変更、複写などがなされる場合に、一方は当該処理が開始されると共に更新され、他方は当該処理中は更新を禁止し、当該処理が終了すると共に更新されるようにする。これにより、当該処理途中に例えば電源が切られるなどしてシステムダウンしても、シーケンスブロック１１４Ａおよび１１４Ｂのうち何方か一方は正常に残っており、ディスク１１０の状態を後に復帰させることが容易である。
【００６１】
図７は、この実施の一形態によるシーケンスブロック１１４Ａおよび１１４Ｂの更新手続きを示す。図７Ａおよび図７Ｂは、シーケンスブロック１１４Ａおよび１１４Ｂにおけるフィールド「Ｒｅｖｉｓｉｏｎ」の状態の遷移をそれぞれ示す。なお、図７において、図の上側から下側へ時間が進行しているものとする。時刻Ａで、ディスク１１０上に記録されるファイルの更新や複写、あるいはファイルの新規の記録などのファイル処理が開始され、時刻Ｂで当該処理が終了するものとする。また、図７Ｃは、各時刻におけるフィールド「Ｒｅｖｉｓｉｏｎ」の値を示す。シーケンスブロック１１４Ａおよび１１４Ｂのフィールド「Ｒｅｖｉｓｉｏｎ」の値は、当初、共にＲｅｖｉｓｉｏｎ＝ｎ−１であるとする。
【００６２】
時刻Ａでディスク１１０上のファイルに対するファイル処理が開始されると、シーケンスブロック１１４Ｂが一旦削除される。このとき、シーケンスブロック１１４Ｂのフィールド「Ｒｅｖｉｓｉｏｎ」だけが値をＲｅｖｉｓｉｏｎ＝Ｉｎｖａｌｉｄ  Ｎｕｍに変更されて残される。あるいは、時刻Ａでのファイル処理の開始と共に、既存のシーケンスブロック１１４Ｂが、値Ｒｅｖｉｓｉｏｎ＝Ｉｎｖａｌｉｄとされたフィールド「Ｒｅｖｉｓｉｏｎ」（およびフィールド「ＳＰＥ  Ｎｕｍ」、フィールド「ブロックサイズ」）のみからなるシーケンスブロック１１４Ｂで上書きされる。
【００６３】
一方、シーケンスブロック１１４Ａは、時刻Ａでディスク１１０上でのファイル処理が開始されても、何も変化されず、フィールド「Ｒｅｖｉｓｉｏｎ」の値も、Ｒｅｖｉｓｉｏｎ＝ｎ−１のままとされる。
【００６４】
時刻Ｂになり当該ファイル処理が終了されると、ファイル処理の結果を反映し、フィールド「Ｒｅｖｉｓｉｏｎ」の値がＲｅｖｉｓｉｏｎ＝ｎとされたシーケンスブロック１１４Ｂが書き込まれる。すなわち、フィールド「Ｒｅｖｉｓｉｏｎ」の値がファイル処理前の値よりも１だけ大きくされる。勿論、ディスク１１０上の全てのファイルおよびディレクトリに関するＭＡＣ値およびＤ−ＩＣＶも計算し直されシーケンスページが再構築され、シーケンスブロック１１４Ｂに格納される。
【００６５】
このシーケンスブロック１１４Ｂの書き込みが終了すると、シーケンスブロック１１４Ａの書き込みが開始される。先ず、シーケンスブロック１１４Ａのフィールド「Ｒｅｖｉｓｉｏｎ」の値がＲｅｖｉｓｉｏｎ＝Ｉｎｖａｌｉｄ  Ｎｕｍとされ、シーケンスブロック１１４Ａが無効化される（時刻Ｃ）。そして、当該ファイル処理の結果を反映し、フィールド「Ｒｅｖｉｓｉｏｎ」の値がＲｅｖｉｓｉｏｎ＝ｎとされたシーケンスブロック１１４Ａが書き込まれる。これ以降は、シーケンスブロック１１４Ａおよび１１４Ｂは、同一データからなり、フィールド「Ｒｅｖｉｓｉｏｎ」においては同一のＲｅｖｉｓｉｏｎ＝ｎを有する。
【００６６】
このようにして、シーケンスブロック１１４Ａおよび１１４Ｂの更新を行うことで、図７で示されるどの時刻をとってもシーケンスブロック１１４Ａおよび１１４Ｂのどちらか一方は、必ず有効とされている。そのため、データの記録や複写などといったファイル処理の途中に、何らかの理由によりシステムがダウンしても、救済処理が可能である。
【００６７】
すなわち、システム復帰した際に、現状におけるディスク１１０上のファイルおよびディレクトリからＭＡＣ値、ＩＣＶおよびＤ−ＩＣＶを生成し、生成されたこれらの値と、シーケンスブロック１１４Ａおよび１１４Ｂのうちシステム復帰直後に有効となっているシーケンスブロックの内容とを比較する。両者の差分を求めることで、何らかの救済措置をとることが可能である。
【００６８】
図８は、この救済措置を含めたシーケンスブロックの更新手続きの一例の処理を示すフローチャートである。このフローチャートによる処理は、シーケンスブロック１１４Ａおよび１１４Ｂに記録されているデータが更新される場合に実行されるものである。
【００６９】
先ず、最初のステップＳ１０で、シーケンスブロック１１４Ａおよび１１４Ｂのフィールド「Ｒｅｖｉｓｉｏｎ」の値（それぞれＲｅｖｉｓｉｏｎ＃１、Ｒｅｖｉｓｉｏｎ＃２とする）が比較される。比較の結果、Ｒｅｖｉｓｉｏｎ＃１とＲｅｖｉｓｉｏｎ＃２とが一致していなければ、処理はステップＳ１１に移行する。
【００７０】
ステップＳ１１では、シーケンスブロック１１４Ａおよび１１４Ｂのうち、フィールド「Ｒｅｖｉｓｉｏｎ」の値がＲｅｖｉｓｉｏｎ≠Ｉｎｖａｌｉｄ  Ｎｕｍであるシーケンスブロックのデータが読み出される。読み出される対象となるデータは、そのシーケンスブロックに格納された各シーケンスページのデータである。このデータをデータＡとする。
【００７１】
次のステップＳ１２では、現状のディスク１１０上のデータに基づきＭＡＣ演算がなされ、新たにシーケンスブロックのデータが生成される。このときには、上述のステップＳ１１と同様に、生成される対象となるデータは、ディスク１１０上のファイルやディレクトリに基づくシーケンスページである。このデータをデータＢとする。
【００７２】
ステップＳ１３で、上述したデータＡとデータＢとが比較される。比較の結果、若し、データＡとデータＢとが一致していると判断されれば、何も問題が無かったとされ、このフローチャートによる一連の処理が終了され、通常処理に移行する。一方、ステップＳ１３で、データＡとデータＢとが一致していないと判断されれば、処理はステップＳ１４に移行する。
【００７３】
ステップＳ１４では、データＡとデータＢとの差分が抽出され、その差分に基づきディスク１１０上のファイルの救済措置がとられる。例えば、データＡとデータＢとの差分を求めることで、ディスク１１０上のシーケンスブロックによれば存在しているはずだが実際には存在していないファイルやディレクトリを見つけ出すことができる。同様に、データＡとデータＢとを比較することで、所定のファイルの著作権情報などが書き替えられているために、シーケンスブロックに記録されているＭＡＣ値とは異なるＭＡＣ値となっているファイルなどを見つけ出すことができる。
【００７４】
このようなファイルに対して、可能であれば救済措置を施す。例えば、データの所定位置にＥＯＦ(End OF File)を付加し、強制的にファイルを構成することができる。また、不正に複写や著作権情報の書き替えなどがなされたおそれがあるファイルについては、そのファイルに再生不可の属性を与えたり、そのファイルを削除するようにしてもよい。
【００７５】
こうしてデータＡおよびデータＢの差分が抽出され、ファイル救済措置がなされた後に、図７を用いて上述したようにして、シーケンスブロック１１４Ａおよび１１４Ｂの更新手続きがなされる。
【００７６】
一方、上述したステップＳ１０で、シーケンスブロック１１４Ａおよび１１４Ｂのフィールド「Ｒｅｖｉｓｉｏｎ」の値であるＲｅｖｉｓｉｏｎ＃１およびＲｅｖｉｓｉｏｎ＃２が比較され、両者が一致していると判断されれば、処理はステップＳ１５に移行する。ステップＳ１５では、さらに、シーケンスブロック１１４Ａおよび１１４Ｂについて、他のフィールドのデータが互いに一致しているかどうかが判断される。若し、両者が一致していると判断されれは、何も問題が無かったとされ、このフローチャートによる一連の処理が終了され、通常処理に移行する。
【００７７】
一方、ステップＳ１５において、他のフィールドのデータが互いに一致していないと判断されれば、処理はステップＳ１６に移行し、シーケンスブロック１１４Ａあるいは２０’のエラー訂正処理がなされる。シーケンスブロックのエラー訂正処理がなされたら、このフローチャートによる一連の処理が終了され、通常処理に移行する。
【００７８】
ステップＳ１６によるエラー訂正処理は、例えば次のようにして行うことができる。ディスク１１０上に存在するファイルやディレクトリ情報を取得し、取得されたそれらの情報に基づきファイル毎のＭＡＣ値やディレクトリ毎のＤ−ＩＣＶ、さらにはディスク１１０全体のＩＣＶを生成し、ディスク１１０上の現状でのシーケンスブロックを作成する。作成されたこのシーケンスブロックと、ディスク１１０上から読み出されたシーケンスブロック１１４Ａおよび１１４Ｂとをそれぞれ比較する。そして、シーケンスブロック１１４Ａおよび１１４Ｂのうち、新たに生成されたシーケンスブロックと一致する方を基準にして、図７で上述したシーケンスブロックの更新手続きを行う。
【００７９】
次に、この発明によるデータ改竄チェック方法の第１の応用例について説明する。第１の応用例は、ディスク１１０においてディレクトリ毎に同一種類のファイルをまとめて格納する場合に用いて好適な例である。より具体的には、１枚のディスク１１０に対して作成される複数のディレクトリＡ、Ｂ、Ｃ、・・・は、ディレクトリＡ、Ｂ、Ｃ、・・・毎に異なる種類のファイルから構成される。例えば、ディレクトリＡは静止画像ファイル、ディレクトリＢは動画像ファイル、ディレクトリＣは音声ファイルから、それぞれ構成される。このように、記録媒体として多用途のものを考えた場合、同一記録媒体上に多種のデータが存在することになる。
【００８０】
また、改竄チェックに関しては、一般的に、記録媒体がアプリケーションにセットされたときや、ディスクドライブにディスク１１０が装填された状態で装置の電源を投入したときなど、比較的頻繁に行われることが予想される。同様に、記録媒体に対して新規に記録を行ったり、他の記録媒体との間でファイルの複写や移動が発生した場合には、記録媒体においてＩＣＶの再計算とシーケンスブロック１１４Ａおよび１１４Ｂの更新が行われることになる。
【００８１】
なお、ここでアプリケーションとは、コンピュータ装置に搭載されたアプリケーションソフトウェアや、ハードウェアとソフトウェアとが一体的に構成された専用機的な装置など、この記録媒体に対して記録／再生などを行える構成を指す。
【００８２】
一方、アプリケーションによっては、記録媒体上に存在する全てのデータを、必ずしも扱えるとは限らない。例えば、音楽再生専用機の場合には、音楽ファイルから構成されるディレクトリのみを対象にし、そのディレクトリで閉じて改竄チェック手続を行えるようにすれば、時間的な効率を向上させることができる。特に、上述のディスク１１０のように、記録媒体がディスク形状のときには、その構造上、所定のアドレスにアクセスするのに要する時間が比較的大きく、さらに記録容量が大容量になるのに伴い、その時間的効率は無視できないものとなる。
【００８３】
この実施の第１の形態によれば、シーケンスページは、１つのディレクトリを構成するファイル毎のＭＡＣ値と、当該ディレクトリの全てのＭＡＣ値を入力として生成されたＩＣＶとからなり、記録媒体上の全てのディレクトリのそれぞれに対応付けられたシーケンスページは、シーケンスブロックにおいてそれぞれフィールドを与えられて格納される。そのため、各シーケンスページで閉じた改竄チェックを行うことが可能である。したがって、上述したような、ディレクトリ毎に同一種類のファイルをまとめて格納する場合にこの発明による改竄チェック方法を適用させることで、時間的に効率的に改竄チェックを行うことができる。
【００８４】
次に、この実施の第１の形態によるデータ改竄チェック方法の第２の応用例について説明する。第２の応用例は、著作権保護されたデータと、例えば個人的に撮影や録音したデータや、著作権フリーで配信されたような、著作権保護されていないデータとでディレクトリを分けて記録するような場合に用いて好適な例である。
【００８５】
本来、上述のような著作権保護されていないデータは、改竄チェックなどのようなセキュリティのシステムを介さないで複写や移動、更新などを行うことができる。しかしながら、このような著作権保護されていないデータを、上述の改竄チェックの対象としてしまうと、そのデータを再生できなくなったり、場合によっては削除されてしまったりして、ユーザビリティが損なわれてしまう。
【００８６】
一方、そのファイルを改竄チェックの対象とするかどうかを、ファイル単位で明示するような方法も考えられる。しかしながら、この方法でも、記録媒体全体で改竄チェック手続を閉じてしまうと、結局、その記録媒体上の全てのファイルをスキャニングして、それぞれのファイルについて改竄チェックを行うかどうかを判断しなければならず、上述の第１の応用例で述べたのと同様に、時間的なロスが生じてしまう。
【００８７】
この発明では、上述したように、データ改竄チェックの対象とするかどうかをディレクトリ単位で判断することができる。したがって、著作権保護が必用なデータと、著作権保護が必用でないデータとを互いに異なるディレクトリに格納することで、時間的なロスを少なく、データ改竄チェックを行うことができる。
【００８８】
次に、この発明の実施の第２の形態について説明する。この実施の第２の形態では、ディスク状記録媒体そのものが有する物理的に固有で且つユニークな情報を用いてＭＡＣ値を生成する。これにより、ファイルを当該ディスク状記録媒体に対して縛ることができ、ファイルの、他の記録媒体への違法な複写などを防止することができる。
【００８９】
図９は、この実施の第２の形態によるデータ改竄チェックを行うための基本的な処理を示す一例の機能ブロック図である。ディスク２３０は、上述の実施の第１の形態と同様に、ユーザデータが記録されるユーザデータ領域２３０Ａと、ファイルシステムによる論理アドレスを持たないリードイン領域２３０Ｂとを有する。さらに、この実施の第２の形態では、ディスク２３０に固有で改竄不可能、若しくは改竄が非常に困難な方法で、メディア固有ＩＤがディスク２３０の所定領域に記録されている。
【００９０】
メディア固有ＩＤは、例えばリードイン領域２３０Ｂなどのように、ユーザが簡単にはアクセスできないような領域に記録されるのが好ましい。さらに、メディア固有ＩＤは、ユーザによる改竄が不可能、若しくは改竄が困難なように、例えば、ディスク２３０の記録膜そのものを大出力レーザで破壊する、あるいは、ディスク２３０の記録面に物理的に傷を付けるといった、破壊系の記録方法で記録されるのがより好ましい。これに限らず、例えばディスク２３０の出荷時に、スタンパなどによりディスク２３０の表面や記録面に固有のＩＤを刻印し、これをメディア固有ＩＤとして用いることもできる。
【００９１】
ディスク２３０のユーザデータ領域２３０Ａに記録されたファイルのそれぞれについて、ＭＡＣの演算手法に基づき、ＭＡＣ値が計算される。このとき、上述したメディア固有ＩＤも読み取られ、ＭＡＣ演算の際の入力として用いられる。図９でいうと、ディスク２３０に記録されたファイル＃１から、著作権情報やファイルの重要情報といったファイルの属性情報と、当該ファイルに固有な鍵となる情報、例えばそのファイルの実データ部分を暗号化する際に用いられたコンテンツ鍵とが読み取られ、ＭＡＣ演算部２３１に供給される。一方、ディスク２３０の例えばリードイン領域２３０Ｂに記録されたメディア固有ＩＤが読み取られ、ＭＡＣ演算部２３１に供給される。
【００９２】
ＭＡＣ演算部２３１では、これら、各ファイルから得られたファイルの重要情報およびコンテンツ鍵と、ディスク２３０に記録されたメディア固有ＩＤとを用いて、ＭＡＣ値＃１を生成する。生成されたＭＡＣ値＃１は、ファイル＃１のヘッダ情報としてファイル＃１に格納されると共に、シーケンスブロック２３２に格納される。シーケンスブロック２３２は、リードイン領域２３０Ｂに記録される。シーケンスブロック２３２は、上述のシーケンスブロック１４に対応し、改竄チェックに関連する情報が格納される領域およびそのデータ構造を指す。
【００９３】
図１０は、この実施の第２の形態によるデータ改竄チェック方法を示す一例の機能ブロック図である。先ず、図１０Ａに示されるように、上述の図９で示したのと同様な方法で、ファイル＃１上の情報とメディア固有ＩＤとからＭＡＣ値＃１が生成され、生成されたＭＡＣ値＃１がファイル＃１のヘッダ情報としてファイル＃１に格納される。また、ＭＡＣ値＃１は、ディスク２３０上の他のファイルのＭＡＣ値と共に、シーケンスブロック２３２に格納される。ここで、このファイル＃１がディスク２３０とは異なるディスク２３０’に正規手続きを踏まずに複写あるいは移動された場合を考える。
【００９４】
ディスク２３０’には、上述と同様にして、例えばリードイン領域２３０Ｂにメディア固有ＩＤが記録されている。なお、ディスク２３０および２３０’に記録されているメディア固有ＩＤを、それぞれメディア固有ＩＤ−１、メディア固有ＩＤ−２と称する。メディア固有ＩＤは、記録メディアに対して固有であって、ディスク２３０のメディア固有ＩＤ−１と、ディスク２３０’のメディア固有ＩＤ−２とは、互いに異なる値となる。
【００９５】
ファイルが複写あるいは移動されると、図１０Ｂに示されるように、移動先のディスク２３０’においてデータ改竄チェックが行われる。先ず、ディスク２３０’上のファイル＃１のヘッダ情報から、ファイルの重要情報とコンテンツ鍵とが取り出され、ＭＡＣ演算部２３１に供給される。それと共に、ディスク２３０’のメディア固有ＩＤ−２が読み出され、ＭＡＣ演算部２３１に供給される。ＭＡＣ演算部２３１では、供給されたこれらのファイルの重要情報、コンテンツ鍵およびメディア固有ＩＤ−２を用いてＭＡＣ演算を行い、ＭＡＣ値＃１”を生成する。生成されたＭＡＣ値＃１”は、比較部２３３に供給される。
【００９６】
一方、ファイル＃１のヘッダ情報には、複写元のディスク２３０におけるメディア固有ＩＤ−１に基づき生成されたＭＡＣ値＃１が格納されている。このＭＡＣ値＃１がファイル＃１のヘッダから読み取られ、比較部２３３に供給される。
【００９７】
比較部では、供給されたこれらＭＡＣ値＃１とＭＡＣ値＃１”とを比較する。上述したように、ディスク２３０のメディア固有ＩＤ−１とディスク２３０’のメディア固有ＩＤ−２とは異なる。そのため、複写元のディスク２３０上のファイル＃１と複写先のディスク２３０’のファイル＃１とが全く同一の内容であっても、メディア固有ＩＤ−１を用いて生成されたＭＡＣ値＃１とメディア固有ＩＤ−２を用いて生成されたＭＡＣ値＃１”とは異なる値となり、ＭＡＣ値の不一致が生じる。
【００９８】
さらに、ファイル＃１のディスク２３０’への複写は、正規の手続きを踏んでいないため、ディスク２３０’上のシーケンスブロック２３２’には、複写されたファイル＃１に対応するＭＡＣ値が格納されていない。したがって、上述した図２のように、シーケンスブロック２３２’に格納されたＭＡＣ値とディスク２３０’上の全てのファイルのＭＡＣ値とを比較した場合、不正が検出されることになる。
【００９９】
このように、この実施の第２の形態によれば、異なるディスク間でのファイルの複写や移動は可能であるが、複写または移動先において、不正に複写または移動されたファイルを検出することができる。そのため、例えば複写あるいは移動先のディスクからの当該ファイルの再生を禁止したり、複写あるいは移動先のディスク上からの当該ファイルの削除などを行うことができる。これにより、実質上、あるファイルをあるディスク上に縛ることが可能とされる。
【０１００】
また、この実施の第２の形態よれば、データ改竄チェックのために、ＩＣＶが必ずしも必要ではないことがわかる。ＩＣＶは、同一記録媒体上に存在するファイルの整合性を保つためのものであるが、記録媒体上に存在する全ファイルを対象にＭＡＣ演算を行うため、時間的効率が悪かった。しかしながら、この実施の第２の形態を用いることで、実質的に、記録媒体とファイルとの対応が一対一になるため、ＩＣＶが無くても記録媒体全体での整合性を保つことができる。
【０１０１】
特に記録媒体がディスク形状のときには、その構造上、所定のアドレスにアクセスするのに要する時間が比較的大きく、さらに記録容量が大容量になるのに伴い、その時間的効率は無視できないものとなる。この実施の第２の形態を用いることで、この問題を軽減することができる。
【０１０２】
次に、この実施の第２の形態の変形例について説明する。上述した実施の第２の形態では、ＭＡＣ演算の際の入力として、記録媒体に固有で、且つ、改竄不可能あるいは改竄困難なＩＤであるメディア固有ＩＤを用いていた。これに対して、この変形例では、記録媒体上に記録された、当該記録媒体の欠陥情報であるディフェクト情報をＭＡＣ演算の際の入力として用いている。ディフェクト情報は、十分大きな確率で記録媒体毎に異なった値をとるため、記録媒体固有の情報となり得る。したがって、このディフェクト情報を用いて上述した実施の第２の形態と同様の改竄チェックを行うことができる。
【０１０３】
ディスク状記録媒体には、製造時に必ず、記録領域の物理的な欠陥が発生する。この製造時に発生した記録領域の物理的な欠陥を、ディフェクトと呼ぶ。このディフェクトは、ディスク状記録媒体の製造過程において乱数的に発生し、製造ロットにおいて、あるディスク状記録媒体と全く同一の欠陥状態を持つ他のディスク状記録媒体が存在する確率は、十分に小さい。したがって、このディフェクト情報は、ディスク状記録媒体における固有な物理的情報といえる。
【０１０４】
この変形例の前提として、ディスク状記録媒体の出荷時には、この欠陥状態がベリファイされ、記録の最小単位毎の欠陥状態が反映されたＰＤＬ(Primary Defect List)と称されるディフェクト情報が各ディスクに記録される。図１１は、ＰＤＬの一例のデータ構造を示す。ＰＤＬは、ビット列からなり、最初の１６ビットは、このデータがＰＤＬであることを示す固定値とされる。次からの各ビットは、例えばアドレス昇順に準じて、ディスク状記録媒体の最小記録単位のそれぞれを表し、立っている、すなわちビットの値が「１」であるビットに対応した最小記録単位に欠陥が存在し、その最小記録単位が使用不能であることを示す。このビット列が、ディスク状記録媒体の全最小記録単位数にわたり記録される。ＰＤＬは、例えばディスク状記録媒体の全記録容量が２ＧＢｙｔｅであれば、２〜１６ＫＢｙｔｅの容量となる。
【０１０５】
なお、ＰＤＬは、それ自身が改竄されないように、ディスク状記録媒体上の、例えばリードイン領域といった、ユーザにより簡単にアクセスできないような領域に記録されることが必要である。
【０１０６】
この実施の第２の形態の変形例では、このＰＤＬをＭＡＣ演算に用いる。これにより、ディスク状記録媒体に記録されたファイルは、当該ディスク状記録媒体において閉じたものとなる。
【０１０７】
図１２は、この実施の第２の形態の変形例によるデータ改竄チェックを行うための基本的な処理を示す一例の機能ブロック図である。ディスク２４０は、上述の実施の第１および第２の形態と同様に、ユーザデータが記録されるユーザデータ領域２４０Ａと、ファイルシステムによる論理アドレスを持たないリードイン領域２４０Ｂとを有する。ＰＤＬは、リードイン領域２４０Ｂに記録される。
【０１０８】
ディスク２４０のユーザデータ領域２４０Ａに記録されたファイルのそれぞれについて、ＭＡＣの演算手法に基づき、ＭＡＣ値が計算される。このとき、上述したＰＤＬも読み取られ、ＭＡＣ演算の際の入力として用いられる。図１２でいうと、ディスク２４０に記録されたファイル＃１から、著作権情報といった重要情報と、当該ファイルに固有な鍵となる情報、例えばそのファイルの実データ部分を暗号化する際に用いられたコンテンツ鍵とが読み取られ、ＭＡＣ演算部２４１に供給される。一方、ディスク２４０の例えばリードイン領域２４０Ｂに記録されたＰＤＬが読み取られ、ＭＡＣ演算部２４１に供給される。
【０１０９】
ＭＡＣ演算部２４１では、これら、各ファイルから得られたファイルの重要情報およびコンテンツ鍵と、ディスク２４０に記録されたＰＤＬとを用いて、ＭＡＣ値＃１を生成する。生成されたＭＡＣ値＃１は、ファイル＃１のヘッダ情報としてファイル＃１に格納されると共に、シーケンスブロック２４２に格納される。シーケンスブロック２４２は、リードイン領域２４０Ｂに記録される。
【０１１０】
図１３は、この実施の第２の形態の変形例によるデータ改竄チェック方法を示す一例の機能ブロック図である。先ず、図１３Ａに示されるように、上述の図１２で示したのと同様な方法でファイル＃１上の情報とＰＤＬとからＭＡＣ値＃１が生成され、生成されたＭＡＣ値＃１がファイル＃１のヘッダ情報としてファイル＃１に格納される。また、ＭＡＣ値＃１は、ディスク２４０上の他のファイルのＭＡＣ値と共に、シーケンスブロック２４２に格納される。ここで、このファイル＃１がディスク２４０とは異なるディスク２４０’に正規手続きを踏まずに複写あるいは移動された場合を考える。
【０１１１】
ディスク２４０’には、上述と同様にして、例えばリードイン領域２４０ＢにＰＤＬが記録されている。なお、ディスク２４０および２４０’に記録されているＰＤＬを、それぞれＰＤＬ−１、ＰＤＬ−２と称する。これらＰＤＬ−１とＰＤＬ−２とが同一の値となる確率は、上述したように極めて小さい。
【０１１２】
ファイルが複写あるいは移動されると、図１３Ｂに示されるように、移動先のディスク２４０’においてデータ改竄チェックが行われる。先ず、ディスク２４０’上のファイル＃１のヘッダ情報から、ファイルの重要情報とコンテンツ鍵とが取り出され、ＭＡＣ演算部２４１に供給される。それと共に、ディスク２４０’のＰＤＬ−２が読み出され、ＭＡＣ演算部２４１に供給される。ＭＡＣ演算部２４１では、これらファイルの重要情報、コンテンツ鍵およびＰＤＬ−２を用いてＭＡＣ演算を行い、ＭＡＣ値＃１”を生成する。生成されたＭＡＣ値＃１”は、比較部２４３に供給される。
【０１１３】
一方、ファイル＃１のヘッダ情報には、複写元のディスク２４０におけるＰＤＬ−１に基づき生成されたＭＡＣ値＃１が格納されている。このＭＡＣ値＃１がファイル＃１のヘッダから読み取られ、比較部２４３に供給される。
【０１１４】
比較部では、供給されたこれらＭＡＣ値＃１とＭＡＣ値＃１”とを比較する。上述したように、ディスク２４０のＰＤＬ−１とディスク２４０’のＰＤＬ−２とが一致する確率は、極めて小さいため、複写元のディスク２４０上のファイル＃１と複写先のディスク２４０’のファイル＃１とが全く同一の内容であっても、ＰＤＬ−１を用いて生成されたＭＡＣ値＃１と、ＰＤＬ−２を用いて生成されたＭＡＣ値＃１”とは、極めて高い確率で異なる値となり、ＭＡＣ値の不一致が生じる。
【０１１５】
さらに、ファイル＃１のディスク２４０’への複写は、正規の手続きを踏んでいないため、ディスク２４０’上のシーケンスブロック２４２’には、複写されたファイル＃１に対応するＭＡＣ値が格納されていない。したがって、シーケンスブロック２４２’に格納されたＭＡＣ値とディスク２４０’上の全てのファイルのＭＡＣ値とを比較した場合、不正が検出されることになる。
【０１１６】
このように、この実施の第２の形態の変形例でも、上述の実施の第２の形態と同様に、異なるディスク間でのファイルの複写や移動は可能であるが、複写または移動先において、不正に複写または移動されたファイルを検出することができる。そのため、例えば複写あるいは移動先のディスクからの当該ファイルの再生を禁止したり、複写あるいは移動先のディスク上からの当該ファイルの削除などを行うことができる。これにより、実質上、あるファイルをあるディスク上に縛ることが可能とされる。
【０１１７】
また、この実施の第２の形態の変形例は、上述の実施の第２の形態と同様に、データ改竄チェックのために、ＩＣＶが必ずしも必要ではないことになる。ＩＣＶは、同一記録媒体上に存在するファイルの整合性を保つためのものであるが、記録媒体上に存在する全ファイルを対象にＭＡＣ演算を行うため、時間的効率が悪かった。しかしながら、この変形例を用いることで、実質的に、記録媒体とファイルとの対応が一対一になるため、ＩＣＶが無くても記録媒体全体での整合性を保つことができる。
【０１１８】
特に記録媒体がディスク形状のときには、その構造上、所定のアドレスにアクセスするのに要する時間が比較的大きく、さらに記録容量が大容量になるのに伴い、その時間的効率は無視できないものとなる。この実施の第２の形態の変形例を用いることで、この問題を軽減することができる。
【０１１９】
なお、上述の実施の第１および第２の形態、ならびに、実施の第２の形態の変形例は、互いに組み合わせて実施可能なものである。
【０１２０】
図１４は、この発明に適用できるディスク状記録媒体１の論理フォーマットを、ディスクの形状に対応付けて示す。このディスク状記録媒体１の論理フォーマットは、従来例で上述したＵＤＦ(Universal Disk Format)に準ずるものである。ディスク状記録媒体１（以下、ディスク１と称する）において、最内周にリードイン領域１０が配される。リードイン領域１０の外側から論理セクタ番号（ＬＳＮ：Logical Sector Number）が割り当てられ、順に、ボリューム情報領域１１、領域ＤＡＮ(Data Area Number)−１、ＤＡＮ−２、ＤＡＮ−３およびボリューム情報領域１２が配され、最外周にリードアウト領域１３が配される。領域ＤＡＮ−１〜ＤＡＮ−３には、論理ブロック番号が割り当てられる。
【０１２１】
図１５は、ボリューム情報領域１１および１２の一例の内容を示す。ボリューム情報領域１１には、ＵＤＦの規定に基づき、ＶＲＳ(Volume Recognition Sequence)、ＭＶＤＳ(Main Volume Descriptor)およびＬＶＩＳ(Logical Volume Integrity Sequence)が書き込まれる。ボリューム情報領域１１の終端には、アンカーポイントが置かれる。また、ボリューム情報領域１１の内容は、リードアウト領域１３の内側のボリューム情報領域１２にＲＶＤＳ(Reserve Volume Descriptor Sequence)として２度書きされる。ボリューム情報領域１２の先頭および終端には、アンカーポイントが置かれる。ボリューム情報領域１２の終端のアンカーポイントは、最終論理セクタ番号に対応する。
【０１２２】
論理セクタ番号が２７２から（最終論理セクタ番号−２７２）の間は、ＬＶＳ(Logical Volume Space)とされ、パーティション領域が設けられる。このＬＶＳに、上述の領域ＤＡＮ−１〜ＤＡＮ−３が配される。ＬＶＳの最内周側に設けられる領域ＤＡＮ−１は、ＵＤＦの規定に基づくＦＳＤ(File Set Descriptor)およびＳＢＤ(Space Bitmap Descriptor)からなる。ＳＢＤは、ディスク１の全体の空きエリア情報を、セクタ毎にフラグを立てることで表現する。また、領域ＤＡＮ−１には、ファイルシステムの階層構造のルートディレクトリのＦＥのアドレスが示される。
【０１２３】
領域ＤＡＮ−２は、ディレクトリのＦＥ(File Entry)と、その実体のＦＩＤ(File ID)とが置かれる領域である。すなわち、これらディレクトリのＦＥとその実体のＦＩＤとは、領域ＤＡＮ−２にまとめて記録されることになる。領域ＤＡＮ−２は、後述するフォーマット時に、予め所定の容量が連続的に確保される。詳細は後述するが、領域ＤＡＮ−２の未使用領域は、特定の属性が付されたファイルとして確保される。以下、この領域ＤＡＮ−２の未使用領域からなるファイルを、ＥＩＦ(Entry Information File)と称する。未使用領域をＥＩＦとしてファイル化して扱うことで、上述のＳＢＤにおいて、この未使用領域が空きエリアとして認識されないようにできる。
【０１２４】
なお、従来例で既に述べたが、ＦＥは、ファイルやディレクトリの実体の場所（アドレス）および大きさを示す。ＦＥ中のＡＤ(Allocation Descriptor)によって、これらの情報が記される。また、ＦＩＤは、ファイルやディレクトリの名前と、ＦＥの場所（アドレス）および大きさを示す。ＦＩＤ中のＩＣＢ(Information Control Block)によってこれらの情報が記される。
【０１２５】
領域ＤＡＮ−３には、ファイルのＦＥとその実体とが置かれる領域である。領域ＤＡＮ−３において、ファイルのＦＥとそのＦＥに対応したファイルは、アドレス的に連続して配置される。ファイルを追加する際には、既存のファイルに対してアドレス的に連続的に、追加されるファイルのＦＥが配置され、さらに、アドレス的に連続してファイルの実体が配置される。このように、ファイルのＦＥおよび実体をアドレス的に連続して配置することにより、ファイルへのアクセスを高速に行うことができる。
【０１２６】
図１６および図１７を用いて、このディスク状記録媒体１におけるディレクトリ、ファイルおよび空きエリアの管理方法について説明する。図１６は、上述の図１４に対して、領域ＤＡＮ−１〜ＤＡＮ−３を抜き出した図である。ここでは、データの記録方向は、図１６に一例が示されるように、反時計回りであるものとする。図１７は、各ＦＥ、ＦＩＤおよび実体の一例の階層構造を示す。
【０１２７】
例えば、ルートディレクトリのＦＥがＬＳＮ＝ａから開始されるとする。ルートディレクトリのＦＥ中のＡＤによって、ルートディレクトリの実体のアドレスおよび大きさが示される。ルートディレクトリのアドレスは、ルートディレクトリのＦＥと連続的に配置できるようにされており、例えばＬＳＮ＝ａ＋１とされる。ルートディレクトリの実体は、１以上のＦＩＤを含む。ルートディレクトリのサブディレクトリ（以下、サブディレクトリと略称する）のＦＥの名前、アドレスおよび大きさがＦＩＤに記される。サブディレクトリのＦＥは、ルートディレクトリの実体と連続的になるように配置され、例えばＬＳＮ＝ａ＋２とされる。このサブディレクトリのＦＥ中のＡＤによって、当該サブディレクトリの実体のアドレスおよび大きさが記される。このサブディレクトリの実体のアドレスは、当該サブディレクトリのＦＥと連続的になるように配置され、例えばＬＳＮ＝ａ＋３とされる。サブディレクトリに実体は、１以上のＦＩＤを含み、ファイルや他のサブディレクトリのＦＥの名前、アドレスおよび大きさが記される。
【０１２８】
各ＦＥ、ＦＩＤおよび実体がこのように参照されることで、図１７に一例が示されるように、領域ＤＡＮ−２の最内周の所定位置に配置されたルートディレクトリのＦＥに対して連続的に、ルートディレクトリの実体およびルートディレクトリのサブディレクトリ情報などが配置される。
【０１２９】
一方、図１７を参照し、ルートディレクトリの実体中のＦＩＤによって、ＥＩＦのＦＥの名前、アドレスおよび大きさが記される。そして、ＥＩＦのＦＥ中のＡＤによって、ＥＩＦの実体のアドレスおよび大きさが記される。このように、ＥＩＦはファイルとして扱われるので、他のファイルと同様に、ＦＥによってそのアドレスおよび大きさが示される。
【０１３０】
ＥＩＦのＦＥは、図１６に一例が示されるように、例えばＥＩＦの実体よりも後ろに配置される。ＥＩＦの実体の開始および／または終了アドレス、ならびに、大きさは、後述するように、領域ＤＡＮ−２に書き込まれる各情報の量によって変動する。
【０１３１】
以上、ルートディレクトリのＦＥ、ルートディレクトリの実体、ルートディレクトリのサブディレクトリのＦＥ、ルートディレクトリのサブディレクトリの実体、ＥＩＦのＦＥおよびＥＩＦの実体は、領域ＤＡＮ−２に配置される。
【０１３２】
領域ＤＡＮ−３には、ファイルのＦＥおよびファイルの実体が配置される。ファイルの実体は、実際にユーザデータなどが書き込まれる領域である。図１７に一例が示されるように、ルートディレクトリの実体中のＦＩＤによって名前、アドレスおよび大きさが記されたファイルのＦＥは、領域ＤＡＮ−３に配置される。このときの、ファイルのＦＥの開始アドレスをＬＳＮ＝ｄとする。ファイルのＦＥ中のＡＤによって、当該ファイルの実体のアドレスおよび大きさが示される。ファイルの実体は、当該ファイルのＦＥと連続的になるように配置され、例えば開始アドレスがＬＳＮ＝ｄ＋１とされる。
【０１３３】
上述したように、領域ＤＡＮ−２は、このディスク１のフォーマット処理時に予め確保される。次に、このディスク１の一例のフォーマット方法について、概略的に説明する。なお、リードイン領域１０およびリードアウト領域１３は、例えばディスク１の製造のプレス行程の際に予め作成されるなどして、フォーマット処理以前から既に存在するものとする。フォーマット処理は、ディスク１の内周側から外周側にかけて進められる。
【０１３４】
フォーマット処理が開始されると、最初に、上述したＶＲＳ、ＭＶＤＳおよびＬＶＩＳがリードイン領域１０の外側から書き込まれる。次に、ＬＶＳが作成される。ＬＶＳにおいて、先ず、領域ＤＡＮ−１が作成される。ＦＳＤが書き込まれ、ルートディレクトリの位置が決められる。そして、ＳＢＤが作成される。このときに、上述したＥＩＦの領域をＳＢＤにおいて使用済み領域とすることで、ＥＩＦの領域が確保される。
【０１３５】
ＳＢＤが作成され領域ＤＡＮ−１が作成されると、次に、領域ＤＡＮ−１の外側から領域ＤＡＮ−２が作成される。領域ＤＡＮ−２の作成において、先ず、領域ＤＡＮ−１で書き込まれたＦＳＤに基づき、所定アドレスにルートディレクトリＦＥおよびルートディレクトリの実体が連続的に書き込まれる。次に、作成されたルートディレクトリの実体に、ＥＩＦのＦＩＤが追加される。このＦＩＤにおいて、ＥＩＦのＦＥのアドレスが指定される。
【０１３６】
このとき、ＥＩＦの属性がＦＩＤ中に指定される。指定されるＥＩＦの属性は、ＥＩＦが他の機器やＯＳ(Operating System)によって消去、書き換え、移動などが行われないようにするためのものである。例えば「隠しファイル属性」、「システムファイル属性」および「読み出し専用ファイル属性」が、共にＥＩＦの属性として指定される。
【０１３７】
「隠しファイル属性」は、この属性が設定されたファイルを通常の方法では閲覧できなくする属性である。「システムファイル属性」は、この属性が設定されたファイルがシステムのために必要なファイルであることを示す属性である。「読み出し専用ファイル属性」は、この属性が設定されたファイルが読み出し専用であって、変更や消去がシステムによって禁止されることを示す属性である。これら３つの属性を共にファイルに指定することで、意図的な操作以外には、そのファイルに対する消去、書き換え、移動などの処理を行うことができなくされる。なお、これらの属性は、所定の方法で解除することができる。
【０１３８】
次に、ＥＩＦのＦＥが作成される。上述したように、ＦＥでは、当該ファイルのアドレスと大きさが指定される。したがって、ＦＥを指定するだけで、当該ファイルが存在することになり、ダミーファイルとして用いることができる。ＥＩＦのＦＥには、「読み出し専用ファイル属性」および「システムファイル属性」が指定される。
【０１３９】
このように、領域ＤＡＮ−２内にＥＩＦを存在させることで、領域ＤＡＮ−２の空きエリアをＥＩＦによって確保することができる。上述したように、ＤＡＮ−２には、フォーマット処理後に、サブディレクトリのＦＥおよび実体が書き込まれる。このときには、ＥＩＦの領域を削って、これらサブディレクトリのＦＥおよび実体が領域ＤＡＮ−２に作成される。
【０１４０】
なお、詳細は後述するが、領域ＤＡＮ−２の作成順は、上述の順序に限られず、他の順序で行うようにしても良い。このとき当然、領域ＤＡＮ−２における各情報の配置順序も変わってくる。
【０１４１】
このようにして領域ＤＡＮ−２が作成される。領域ＤＡＮ−２の外側は領域ＤＡＮ−３であるが、領域ＤＡＮ−３では、特に何も処理が行われない。例えば、領域ＤＡＮ−３として指定される領域を飛び越して次の処理がなされる。領域ＤＡＮ−３の次は、ＲＶＤＳが作成される。これは、上述したように、先に作成されたＶＲＳ、ＭＶＤＳおよびＬＶＩＳの情報が２度書きされる。ＲＶＤＳが作成されて、ディスク１のフォーマット処理が完了される。
【０１４２】
図１８は、この発明に適用することができるドライブ装置の一例の構成を示す。ここでは、上述したディスク１を記録層に相変化金属材料を用いたものとし、ドライブ装置は、レーザの出力を調節することで記録層に加える温度を制御して結晶／非結晶に状態を変えさせる相変化技術によって、ディスク１にデータの記録を行うものとする。
【０１４３】
ディスク１は、スピンドルモータ２２によって、回転駆動される。ディスク１にデータを記録し、また、データをディスク１から再生するために、光ピックアップ２３が設けられている。光ピックアップ２３が送りモータ２４によってディスク径方向に送られる。
【０１４４】
外部のホストコンピュータ３０からのデータがインターフェイス２９（例えばＳＣＭＳ(Serial Copy Management System) ）を介してドライブに供給される。インターフェイス２９には、エンコーダ／デコーダブロック２５が接続され、エンコーダ／デコーダブロック２５には、バッファメモリ２６が接続されている。バッファメモリ２６は、ライトデータまたはリードデータを保持する。
【０１４５】
ライトデータがインターフェイス２９を介してエンコーダ／デコーダブロック２５に供給される。エンコーダ／デコーダブロック２５では、記録時には、上述したフォーマットのデータを生成し、次にそのフォーマットに従ってデータをエンコードする。再生時には、デコード処理を行い、ディジタルデータをインターフェイス２９を介してホストコンピュータ３０に出力する。アドレスは、例えばエンコーダ／デコーダブロック２５において、サブコードとして付加され、また、データ中のヘッダに対しても付加される。
【０１４６】
エンコーダ／デコーダブロック２５からの記録データが記録イコライザ２７を介してレーザドライバ２８に供給される。レーザドライバ２８では、ディスク１に対して記録データを記録するための所定のレベルを有するドライブ波形が生成される。レーザドライバ２８の出力が光ピックアップ２３に対して供給され、データが記録される。レーザドライバ２８は、ＲＦ信号処理ブロック３１内のＡＰＣ(Automatic Power Control) によって、上述したように、レーザパワーが適切なものに制御される。また、ディスク１からの戻り光により発生した信号がＲＦ信号処理ブロック３１に供給される。アドレス抽出回路３２では、ＲＦ信号処理ブロックから供給された信号に基づき、アドレス情報の抽出を行う。抽出されたアドレス情報は、後述する制御用マイコン３３に供給される。
【０１４７】
また、ＲＦ信号処理ブロック３１では、マトリックスアンプがフォトディテクタの検出信号を演算することによって、トラッキングエラー信号ＴＥＲＲ、フォーカスエラー信号ＦＥＲＲを生成する。トラッキングエラー信号、フォーカスエラー信号がサーボブロック３４に供給される。
【０１４８】
制御用マイコン３３がアドレスを使用してシーク動作を制御し、また、制御信号を使用してレーザパワーの制御等を行う。制御用マイコン３３は、ＣＰＵ(Central Processing Unit)、ＲＡＭ(Random Access Memory)およびＲＯＭ(Read Only Memory)などからなり、インターフェイス２９、エンコーダ／デコーダブロック２５、ＲＦ信号処理ブロック３１、サーボブロック３４等、ドライブの全体を制御する。また、制御用マイコン３３に対してメモリ３６が続される。
【０１４９】
さらに、制御用マイコン３３によって、ディスク１のリードイン領域１０に対するアクセスが制御される。上述した、リードイン領域内に記録されるシーケンスブロックが制御用マイコン３３によって読み出される。読み出されたシーケンスブロックは、例えばメモリ３６に記憶される。また、ディスク１のユーザデータ領域（領域ＤＡＮ−３）に記録されたファイルのヘッダ情報が制御用マイコン３３によって読み取られ、例えばメモリ３６に記憶される。また、実施の第２の形態およびその変形例に示されるような、ディスク１に対して物理的に記されたメディア固有ＩＤやＰＤＬも、制御用マイコン３３によって読み取られ、読み取られた情報がメモリ３６に記憶される。
【０１５０】
上述したＭＡＣ演算部や比較部は、例えば制御用マイコン３３においてソフトウェア的に構成される。勿論、ＭＡＣ演算部や比較部をハードウェア的に別途、設けてもよい。ＭＡＣ演算部により、メモリ３６に記憶されたこれらの情報に基づき上述したようにＭＡＣ値などが生成され、データ改竄チェックなどの処理がなされる。
【０１５１】
ディスク１を再生することで得られるＲＦ信号がエンコーダ／デコーダブロック２５に供給され、エンコーダ／デコーダブロック２５では、記録時に施された変調処理の復調、エラー訂正符号の復号（すなわち、エラー訂正）等の所定のフォーマットに準ずるデコードを行う。エンコーダ／デコーダブロック２５では、再生データがバッファメモリ２６に格納される。ホストコンピュータ３０からのリードコマンドが受け付けられると、リードデータがインターフェイス２９を介してホストコンピュータ３０に対して転送される。
【０１５２】
ＲＦ信号処理ブロック３１からのフレーム同期信号、トラッキングエラー信号およびフォーカスエラー信号と、アドレス抽出回路からのアドレス情報がサーボブロック３４に供給される。サーボブロック３４は、光ピックアップ２３に対するトラッキングサーボおよびフォーカスサーボと、スピンドルモータ２２に対するスピンドルサーボと、送りモータ２４に対するスレッドサーボを行う。
【０１５３】
なお、上述では、ドライブ装置に対してホストコンピュータ３０が接続されると説明したが、これはこの例に限定されない。ドライブ装置に接続される機器は、ディジタル信号の入出力を行いインターフェイスが適合していれば、他の機器でも良い。例えば、このドライブ装置は、例えば撮像画像をディスク状記録媒体に記録するようにされたカメラ付き携帯用ディジタルビデオレコーダに内蔵されるものとしても良い。
【０１５４】
上述では、ディスク１に対するフォーマットデータをエンコーダ／デコーダブロック２５で生成するように説明したが、これはこの例に限定されない。フォーマットデータは、制御用マイコン３３で生成することができる。また、フォーマットデータは、ホストコンピュータ３０から供給するようにしても良い。
【０１５５】
以上説明したように、この発明によれば、ファイル毎のＭＡＣ値をディレクトリ単位でまとめて管理しているために、アプリケーションの仕様に応じて、データ改竄チェックに要する手続を最小限化できるという効果がある。特に、記録媒体にディスク状記録媒体を用いた場合に、ファイル毎のデータ改竄チェックを行う際のアクセス性を大幅に向上できる。
【０１５６】
また、この発明によれば、データ改竄チェックを行うデータ、すなわち、著作権を保護するデータがディレクトリ単位でまとめられるため、著作権の保護が必要ないデータに対するアクセス性を確保できる効果がある。またそのため、データ改竄チェック管理スペース、すなわちシーケンスブロックのサイズも最小限のものとすることができる。
【０１５７】
さらに、改竄チェック値（ＭＡＣ値）のリストからある特定のファイルに対応する値を検索する際に、対象となるディレクトリに対応したシーケンスページ内のＭＡＣエントリ数が検索の母数となるため、ディスク全体のＭＡＣエントリを母数とする場合に比べて検索効率を改善できる。
【０１５８】
さらにまた、改善チェック管理スペースであるシーケンスブロックのサイズが可変長とされているため、シーケンスブロックのサイズをファイルやディレクトリ数に応じた最小限のものにすることができ、スペース効率と検索効率とを改善できる。
【図面の簡単な説明】
【０１５９】
【図１】ディスク記録媒体に新たにファイルが追加されたときの改竄チェック方法を概略的に示す一例の機能ブロック図である。
【図２】ディスク上である特定のファイルを再生／移動する場合や、システムにおいて改竄チェックが要求されたタイミングにおける一例の手続を示す機能ブロック図である。
【図３】実施の一形態による改竄チェック値のデータ構造を概略的に示す略線図である。
【図４】ディスクの一例の物理フォーマットを部分的に示す略線図である。
【図５】シーケンスブロックの一例の論理フォーマットを示す略線図である。
【図６】シーケンスページの一例の論理フォーマットを示す略線図である。
【図７】実施の一形態によるシーケンスブロックの更新手続きを示す略線図である。
【図８】救済措置を含めたシーケンスブロックの更新手続きの一例の処理を示すフローチャートである。
【図９】実施の第２の形態によるデータ改竄チェックを行うための基本的な処理を示す一例の機能ブロック図である。
【図１０】実施の第２の形態によるデータ改竄チェック方法を示す一例の機能ブロック図である。
【図１１】ＰＤＬの一例のデータ構造を示す略線図である。
【図１２】実施の第２の形態の変形例によるデータ改竄チェックを行うための基本的な処理を示す一例の機能ブロック図である。
【図１３】実施の第２の形態の変形例によるデータ改竄チェック方法を示す一例の機能ブロック図である。
【図１４】この発明に適用できるディスク状記録媒体の論理フォーマットをディスクの形状に対応付けて示す略線図である。
【図１５】ボリューム情報領域の一例の内容を示す略線図である。
【図１６】ディスク状記録媒体でのディレクトリ、ファイルおよび空きエリアの管理方法について説明するための略線図である。
【図１７】ディスク状記録媒体でのディレクトリ、ファイルおよび空きエリアの管理方法について説明するための略線図である。
【図１８】この発明に適用することができるドライブ装置の一例の構成を示すブロック図である。
【符号の説明】
【０１６０】
１・・・ディスク状記録媒体
１０・・・リードイン領域
３３・・・制御用マイコン
３６・・・メモリ
１１４，２３２，２４２・・・シーケンスブロック
【図１】
2007234214.tif 000003
【図２】
2007234214.tif 000004
【図３】
2007234214.tif 000005
【図４】
2007234214.tif 000006
【図５】
2007234214.tif 000007
【図６】
2007234214.tif 000008
【図７】
2007234214.tif 000009
【図８】
2007234214.tif 000010
【図９】
2007234214.tif 000011
【図１０】
2007234214.tif 000012
【図１１】
2007234214.tif 000013
【図１２】
2007234214.tif 000014
【図１３】
2007234214.tif 000015
【図１４】
2007234214.tif 000016
【図１５】
2007234214.tif 000017
【図１６】
2007234214.tif 000018
【図１７】
2007234214.tif 000019
【図１８】
2007234214.tif 000020