| 【発明の名称】 |
データ処理装置およびデータ処理方法、並びにプログラム提供媒体 |
| 【発明者】 |
【氏名】岡上 拓己
|
| 【要約】 |
【課題】コンテンツの利用を行なうデータ処理装置におけるコンテンツ改竄チェックの効率化を実現した構成を提供する。
【解決手段】記憶装置に格納されるコンテンツの検証値を生成してコンテンツに対応付けて格納し、コンテンツ改竄の有無を前記検証値により実行する構成において、検証値をコンテンツのカテゴリ毎に生成して格納する。カテゴリは、コンテンツの種類、あるいは、コンテンツの暗号処理鍵として設定されるコンテンツキーKconを暗号化して提供する有効化キーブロック(EKB)の管理エンティテイ等に基づいて設定することにより、例えば有効化キーブロック(EKB)の管理エンティテイ別に、コンテンツデータの検証処理を独立して実行可能となり、効率的な処理が可能となる。 |
【特許請求の範囲】
【請求項1】記憶装置に格納されるコンテンツの検証値を生成してコンテンツに対応付けて格納し、コンテンツ改竄の有無を前記検証値により実行するデータ処理装置であり、前記検証値は、コンテンツのカテゴリ毎に独立した検証値として生成して格納する構成を有することを特徴とするデータ処理装置。 【請求項2】前記データ処理装置は、コンテンツ利用に際して、利用対象コンテンツ構成データに基づいて検証値を算出し、該算出検証値と、予め格納された検証値との比較処理を実行し、一致する場合にのみコンテンツ利用を可能とした構成を有することを特徴とする請求項1に記載のデータ処理装置。 【請求項3】前記記憶装置は、複数のディレクトリの各々に異なるカテゴリのコンテンツデータを格納する構成を有し、前記検証値は、前記複数のディレクトリの各々を単位とするコンテンツの集合に対して生成される値であることを特徴とする請求項1に記載のデータ処理装置。 【請求項4】前記記憶装置は、フラッシュメモリであり、前記カテゴリ毎の検証値は、フラッシュメモリの使用禁止ブロックとして設定された領域に格納される構成を有することを特徴とする請求項1に記載のデータ処理装置。 【請求項5】前記カテゴリは、コンテンツの種類に基づいて設定された構成であり、コンテンツの種類別に独立した検証値を設定し、格納する構成を有することを特徴とする請求項1に記載のデータ処理装置。 【請求項6】前記カテゴリは、コンテンツの暗号処理鍵として設定されるコンテンツキーKconを暗号化して提供する有効化キーブロック(EKB)の管理エンティテイに基づいて設定された構成であり、有効化キーブロック(EKB)の管理エンティテイ別に独立した検証値を設定し、格納する構成を有することを特徴とする請求項1に記載のデータ処理装置。 【請求項7】前記検証値は、検証対象となるコンテンツおよびヘッダ情報等のコンテンツ関連データを構成する部分データをメッセージとしてDES暗号処理によって生成されるメッセージ認証符号(MAC)に基づいて生成されるデータであることを特徴とする請求項1に記載のデータ処理装置。 【請求項8】記憶装置に格納されるコンテンツまたはヘッダ情報中の改竄有無検証データとしてのメッセージ認証符号(MAC)を生成して格納するデータ処理装置であり、コンテンツまたはヘッダ情報中の異なるデータ領域をMAC生成対象として複数のメッセージ認証符号(MAC)を生成するとともに、前記複数のメッセージ認証符号(MAC)の各MAC生成対象データ領域の一部を共通データとし、いずれかのMAC更新時に、前記共通データを更新し、他方のMAC更新処理も併せて実行する構成としたことを特徴とするデータ処理装置。 【請求項9】記憶装置に格納されるコンテンツの検証値を生成してコンテンツに対応付けて格納し、コンテンツ改竄の有無を前記検証値により実行するデータ処理方法であり、前記検証値を、コンテンツのカテゴリ毎に独立した検証値として生成して格納することを特徴とするデータ処理方法。 【請求項10】前記データ処理方法において、さらに、コンテンツ利用に際して、利用対象コンテンツ構成データに基づいて検証値を算出し、該算出検証値と、予め格納された検証値との比較処理を実行し、一致する場合にのみコンテンツ利用を行なうことを特徴とする請求項9に記載のデータ処理方法。 【請求項11】前記記憶装置は、複数のディレクトリの各々に異なるカテゴリのコンテンツデータを格納する構成を有し、前記検証値は、前記複数のディレクトリの各々を単位とするコンテンツの集合に対して生成することを特徴とする請求項9に記載のデータ処理方法。 【請求項12】前記記憶装置は、フラッシュメモリであり、前記カテゴリ毎の検証値は、フラッシュメモリの使用禁止ブロックとして設定された領域に格納することを特徴とする請求項9に記載のデータ処理方法。 【請求項13】前記カテゴリは、コンテンツの種類に基づいて設定され、コンテンツの種類別に独立した検証値を設定し、格納することを特徴とする請求項9に記載のデータ処理方法。 【請求項14】前記カテゴリは、コンテンツの暗号処理鍵として設定されるコンテンツキーKconを暗号化して提供する有効化キーブロック(EKB)の管理エンティテイに基づいて設定され、有効化キーブロック(EKB)の管理エンティテイ別に独立した検証値を設定し、格納することを特徴とする請求項9に記載のデータ処理方法。 【請求項15】前記検証値は、検証対象となるコンテンツおよびヘッダ情報等のコンテンツ関連データを構成する部分データをメッセージとしてDES暗号処理によって生成されるメッセージ認証符号(MAC)に基づいて生成されるデータであることを特徴とする請求項9に記載のデータ処理方法。 【請求項16】前記検証対象となるコンテンツおよびヘッダ情報には、異なるデータ領域をMAC生成対象とした複数のメッセージ認証符号(MAC)を含み、前記複数のメッセージ認証符号(MAC)は、各々のMAC生成対象データ領域の一部を共通とし、いずれかのMAC更新時に他方のMAC更新処理も併せて実行することを特徴とする請求項15に記載のデータ処理方法。 【請求項17】記憶装置に格納されるコンテンツまたはヘッダ情報中の改竄有無検証データとしてのメッセージ認証符号(MAC)を生成して格納するデータ処理方法であり、コンテンツまたはヘッダ情報中の異なるデータ領域をMAC生成対象として複数のメッセージ認証符号(MAC)を生成するとともに、前記複数のメッセージ認証符号(MAC)の各MAC生成対象データ領域の一部を共通データとし、いずれかのMAC更新時に、前記共通データを更新し、他方のMAC更新処理も併せて実行することを特徴とするデータ処理方法。 【請求項18】記憶装置に格納されるコンテンツの検証値を生成してコンテンツに対応付けて格納し、コンテンツ改竄の有無を前記検証値により実行するデータ処理をコンピュータ・システム上で実行せしめるコンピュータ・プログラムを提供するプログラム提供媒体であって、前記コンピュータ・プログラムは、検証値を、コンテンツのカテゴリ毎に独立した検証値として生成して格納するステップを有することを特徴とするプログラム提供媒体。
|
【発明の詳細な説明】【0001】 【発明の属する技術分野】本発明は、データ処理装置およびデータ処理方法、並びにプログラム提供媒体に関する。特に、記憶装置に格納されるコンテンツの検証値を生成してコンテンツに対応付けて格納し、コンテンツ改竄の有無を前記検証値により実行する構成において、検証値をコンテンツのカテゴリ毎に独立した検証値として生成して格納する構成とし、コンテンツ改竄チェック処理の効率化を実現したデータ処理装置およびデータ処理方法、並びにプログラム提供媒体に関する。 【0002】 【従来の技術】昨今、音楽データ、ゲームプログラム、画像データ等、様々なソフトウエアデータ(以下、これらをコンテンツ(Content)と呼ぶ)を、インターネット等のネットワーク、あるいは、メモリカード、DVD、CD等の流通可能な記憶媒体を介して流通させるコンテンツ流通が盛んになってきている。これらの流通コンテンツは、ユーザの所有するPC(Personal Computer)、再生専用器、あるいはゲーム機器におけるコンテンツデータの受信、あるいはメモリカード、CD、DVD等の記憶媒体の装着により、コンテンツ再生処理が実行されたり、あるいは外部からの入力コンテンツを再生器、PC等に内蔵の記録デバイス、例えばメモリカード、ハードディスク等に格納し、再度、格納媒体から再生する等の方法により利用される。 【0003】再生装置、ゲーム機器、PC等の情報機器には、流通コンテンツをネットワークから受信するため、あるいはDVD、CD等にアクセスするためのインタフェースを有し、さらにコンテンツの再生に必要となる制御手段、プログラム、データのメモリ領域として使用されるRAM、ROM等を有する。 【0004】音楽データ、画像データ、あるいはプログラム等の様々なコンテンツは、再生機器として利用される再生装置、ゲーム機器、PC等の情報機器本体からのユーザ指示、あるいは接続された入力手段を介したユーザの指示により、例えば内蔵、あるいは着脱自在の記憶媒体から呼び出され、情報機器本体、あるいは接続されたディスプレイ、スピーカ等を通じて再生される。 【0005】ゲームプログラム、音楽データ、画像データ等、多くのソフトウエア・コンテンツは、一般的にその作成者、販売者に頒布権等が保有されている。従って、これらのコンテンツの配布に際しては、一定の利用制限、すなわち、正規なユーザに対してのみ、ソフトウエアの使用を許諾し、許可のない複製等が行われないようにする、すなわちセキュリティを考慮した構成をとるのが一般的となっている。 【0006】ユーザに対する利用制限を実現する1つの手法が、配布コンテンツの暗号化処理である。すなわち、例えばインターネット等を介して暗号化された音声データ、画像データ、ゲームプログラム等の各種コンテンツを配布するとともに、正規ユーザであると確認された者に対してのみ、配布された暗号化コンテンツを復号する手段、すなわち復号鍵を付与する構成である。 【0007】暗号化データは、所定の手続きによる復号化処理によって利用可能な復号データ(平文)に戻すことができる。このような情報の暗号化処理に暗号化鍵を用い、復号化処理に復号化鍵を用いるデータ暗号化、復号化方法は従来からよく知られている。 【0008】暗号化鍵と復号化鍵を用いるデータ暗号化・復号化方法の態様には様々な種類あるが、その1つの例としていわゆる共通鍵暗号化方式と呼ばれている方式がある。共通鍵暗号化方式は、データの暗号化処理に用いる暗号化鍵とデータの復号化に用いる復号化鍵を共通のものとして、正規のユーザにこれら暗号化処理、復号化に用いる共通鍵を付与して、鍵を持たない不正ユーザによるデータアクセスを排除するものである。この方式の代表的な方式にDES(データ暗号標準:Deta encryption standard)がある。 【0009】上述の暗号化処理、復号化に用いられる暗号化鍵、復号化鍵は、例えばあるパスワード等に基づいてハッシュ関数等の一方向性関数を適用して得ることができる。一方向性関数とは、その出力から逆に入力を求めるのは非常に困難となる関数である。例えばユーザが決めたパスワードを入力として一方向性関数を適用して、その出力に基づいて暗号化鍵、復号化鍵を生成するものである。このようにして得られた暗号化鍵、復号化鍵から、逆にそのオリジナルのデータであるパスワードを求めることは実質上不可能となる。 【0010】また、暗号化するときに使用する暗号化鍵による処理と、復号するときに使用する復号化鍵の処理とを異なるアルゴリズムとした方式がいわゆる公開鍵暗号化方式と呼ばれる方式である。公開鍵暗号化方式は、不特定のユーザが使用可能な公開鍵を使用する方法であり、特定個人に対する暗号化文書を、その特定個人が発行した公開鍵を用いて暗号化処理を行なう。公開鍵によって暗号化された文書は、その暗号化処理に使用された公開鍵に対応する秘密鍵によってのみ復号処理が可能となる。秘密鍵は、公開鍵を発行した個人のみが所有するので、その公開鍵によって暗号化された文書は秘密鍵を持つ個人のみが復号することができる。公開鍵暗号化方式の代表的なものにはRSA(Rivest-Shamir-Adleman)暗号がある。このような暗号化方式を利用することにより、暗号化コンテンツを正規ユーザに対してのみ復号可能とするシステムが可能となる。 【0011】 【発明が解決しようとする課題】コンテンツデータの正当性、すなわちデータが改竄されていないことをチェックするために検証用のチェック値を正規のコンテンツデータに基づいて生成して予めメモリに格納し、コンテンツ利用時に検証対象のデータに基づいて生成したチェック値と格納チェック値とを照合処理することによって、データ検証を行なう方法が従来から行なわれている。 【0012】しかしながら、メモリに格納するコンテンツ数が増大すると、検証用のチェック値を正規のコンテンツデータに基づいて生成し、格納し管理することが困難となる。特に、昨今フラッシュメモリを使用したメモリカード等の容量の大きい媒体においては、音楽データ、画像データ、プログラムデータ等、様々なカテゴリのコンテンツデータがメモリに格納されることとなる。このような環境においては、コンテンツ。チェック値の生成処理、格納処理、改竄チェック処理の管理は困難となる。格納データ全体に対するチェック値を生成すると、チェック対象となったデータ全体に対するチェック値生成処理を実行することが必要となる。例えばDES−CBCモードにおいて生成されるメッセージ認証符号(MAC)により、チェック値ICVを求める手法を行なう場合、データ全体に対するDES−CBCの処理を実行することが必要となる。この計算量は、データ長が長くなるにつれ増大することとなり、処理効率の点で問題がある。 【0013】本発明は、このような従来技術の問題点を解決するものであり、データ正当性の確認処理を効率的に実行し、コンテンツデータの検証処理の効率化、さらに検証後の記録デバイスに対するダウンロード処理、あるいは検証後の再生処理等を効率的に実行することを可能とするデータ処理装置およびデータ処理方法、並びにプログラム提供媒体を提供することを目的とする。 【0014】 【課題を解決するための手段】本発明の第1の側面は、記憶装置に格納されるコンテンツの検証値を生成してコンテンツに対応付けて格納し、コンテンツ改竄の有無を前記検証値により実行するデータ処理装置であり、前記検証値は、コンテンツのカテゴリ毎に独立した検証値として生成して格納する構成を有することを特徴とするデータ処理装置にある。 【0015】さらに、本発明のデータ処理装置の一実施態様において、前記データ処理装置は、コンテンツ利用に際して、利用対象コンテンツ構成データに基づいて検証値を算出し、該算出検証値と、予め格納された検証値との比較処理を実行し、一致する場合にのみコンテンツ利用を可能とした構成を有することを特徴とする。 【0016】さらに、本発明のデータ処理装置の一実施態様において、前記記憶装置は、複数のディレクトリの各々に異なるカテゴリのコンテンツデータを格納する構成を有し、前記検証値は、前記複数のディレクトリの各々を単位とするコンテンツの集合に対して生成される値であることを特徴とする。 【0017】さらに、本発明のデータ処理装置の一実施態様において、前記記憶装置は、フラッシュメモリであり、前記カテゴリ毎の検証値は、フラッシュメモリの使用禁止ブロックとして設定された領域に格納される構成を有することを特徴とする。 【0018】さらに、本発明のデータ処理装置の一実施態様において、前記カテゴリは、コンテンツの種類に基づいて設定された構成であり、コンテンツの種類別に独立した検証値を設定し、格納する構成を有することを特徴とする。 【0019】さらに、本発明のデータ処理装置の一実施態様において、前記カテゴリは、コンテンツの暗号処理鍵として設定されるコンテンツキーKconを暗号化して提供する有効化キーブロック(EKB)の管理エンティテイに基づいて設定された構成であり、有効化キーブロック(EKB)の管理エンティテイ別に独立した検証値を設定し、格納する構成を有することを特徴とする。 【0020】さらに、本発明のデータ処理装置の一実施態様において、前記検証値は、検証対象となるコンテンツおよびヘッダ情報等のコンテンツ関連データを構成する部分データをメッセージとしてDES暗号処理によって生成されるメッセージ認証符号(MAC)に基づいて生成されるデータであることを特徴とする。 【0021】さらに、本発明の第2の側面は、記憶装置に格納されるコンテンツまたはヘッダ情報中の改竄有無検証データとしてのメッセージ認証符号(MAC)を生成して格納するデータ処理装置であり、コンテンツまたはヘッダ情報中の異なるデータ領域をMAC生成対象として複数のメッセージ認証符号(MAC)を生成するとともに、前記複数のメッセージ認証符号(MAC)の各MAC生成対象データ領域の一部を共通データとし、いずれかのMAC更新時に、前記共通データを更新し、他方のMAC更新処理も併せて実行する構成としたことを特徴とするデータ処理装置にある。 【0022】さらに、本発明の第3の側面は、記憶装置に格納されるコンテンツの検証値を生成してコンテンツに対応付けて格納し、コンテンツ改竄の有無を前記検証値により実行するデータ処理方法であり、前記検証値を、コンテンツのカテゴリ毎に独立した検証値として生成して格納することを特徴とするデータ処理方法にある。 【0023】さらに、本発明のデータ処理方法の一実施態様において、コンテンツ利用に際して、利用対象コンテンツ構成データに基づいて検証値を算出し、該算出検証値と、予め格納された検証値との比較処理を実行し、一致する場合にのみコンテンツ利用を行なうことを特徴とする。 【0024】さらに、本発明のデータ処理方法の一実施態様において、前記記憶装置は、複数のディレクトリの各々に異なるカテゴリのコンテンツデータを格納する構成を有し、前記検証値は、前記複数のディレクトリの各々を単位とするコンテンツの集合に対して生成することを特徴とする。 【0025】さらに、本発明のデータ処理方法の一実施態様において、前記記憶装置は、フラッシュメモリであり、前記カテゴリ毎の検証値は、フラッシュメモリの使用禁止ブロックとして設定された領域に格納することを特徴とする。 【0026】さらに、本発明のデータ処理方法の一実施態様において、前記カテゴリは、コンテンツの種類に基づいて設定され、コンテンツの種類別に独立した検証値を設定し、格納することを特徴とする。 【0027】さらに、本発明のデータ処理方法の一実施態様において、前記カテゴリは、コンテンツの暗号処理鍵として設定されるコンテンツキーKconを暗号化して提供する有効化キーブロック(EKB)の管理エンティテイに基づいて設定され、有効化キーブロック(EKB)の管理エンティテイ別に独立した検証値を設定し、格納することを特徴とする。 【0028】さらに、本発明のデータ処理方法の一実施態様において、前記検証値は、検証対象となるコンテンツおよびヘッダ情報等のコンテンツ関連データを構成する部分データをメッセージとしてDES暗号処理によって生成されるメッセージ認証符号(MAC)に基づいて生成されるデータであることを特徴とする。 【0029】さらに、本発明のデータ処理方法の一実施態様において、前記検証対象となるコンテンツおよびヘッダ情報には、異なるデータ領域をMAC生成対象とした複数のメッセージ認証符号(MAC)を含み、前記複数のメッセージ認証符号(MAC)は、各々のMAC生成対象データ領域の一部を共通とし、いずれかのMAC更新時に他方のMAC更新処理も併せて実行することを特徴とする。 【0030】さらに、本発明の第4の側面は、記憶装置に格納されるコンテンツまたはヘッダ情報中の改竄有無検証データとしてのメッセージ認証符号(MAC)を生成して格納するデータ処理方法であり、コンテンツまたはヘッダ情報中の異なるデータ領域をMAC生成対象として複数のメッセージ認証符号(MAC)を生成するとともに、前記複数のメッセージ認証符号(MAC)の各MAC生成対象データ領域の一部を共通データとし、いずれかのMAC更新時に、前記共通データを更新し、他方のMAC更新処理も併せて実行することを特徴とするデータ処理方法にある。 【0031】さらに、本発明の第5の側面は、記憶装置に格納されるコンテンツの検証値を生成してコンテンツに対応付けて格納し、コンテンツ改竄の有無を前記検証値により実行するデータ処理をコンピュータ・システム上で実行せしめるコンピュータ・プログラムを提供するプログラム提供媒体であって、前記コンピュータ・プログラムは、検証値を、コンテンツのカテゴリ毎に独立した検証値として生成して格納するステップを有することを特徴とするプログラム提供媒体にある。 【0032】なお、本発明の第3の側面に係るプログラム提供媒体は、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ・プログラムをコンピュータ可読な形式で提供する媒体である。媒体は、CDやFD、MOなどの記録媒体、あるいは、ネットワークなどの伝送媒体など、その形態は特に限定されない。 【0033】このようなプログラム提供媒体は、コンピュータ・システム上で所定のコンピュータ・プログラムの機能を実現するための、コンピュータ・プログラムと提供媒体との構造上又は機能上の協働的関係を定義したものである。換言すれば、該提供媒体を介してコンピュータ・プログラムをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の他の側面と同様の作用効果を得ることができるのである。 【0034】本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。 【0035】 【発明の実施の形態】[システム概要]図1に本発明のデータ処理システムの適用可能なコンテンツ配信システム例を示す。コンテンツ配信手段10は、データ処理手段20に対して、コンテンツあるいはコンテンツキー、その他、認証処理キー等のデータを暗号化して送信する。データ処理手段20では、受信した暗号化コンテンツ、あるいは暗号化コンテンツキー等を復号してコンテンツあるいはコンテンツキー等を取得して、画像データ、音声データの再生、あるいは各種プログラムを実行する。コンテンツの配信手段10とデータ処理手段20との間のデータ交換は、インターネット等のネットワークを介して、あるいはDVD、CD、その他の流通可能な記憶媒体を介して実行される。 【0036】データ処理手段20は、例えばフラッシュメモリ等の記憶手段を備えたメモリーカード等のデータ記憶手段30にデータを格納して保存する。データ記憶手段30には、暗号処理機能を有する記憶手段としての例えばメモリーカード(具体例としてはメモリスティック(Memory Stick:商標))が含まれる。データ処理手段20からデータ記憶手段30に対するデータ格納処理、およびデータ記憶手段30からデータ処理手段に対するデータ移動の際には、相互認証処理、およびデータの暗号処理が実行され不正なデータコピーの防止が図られる。 【0037】なお、データ処理手段20に含まれる各機器間でのコンテンツデータの移動も可能であり、この際にも機器間の相互認証処理、データの暗号処理が実行される。 【0038】コンテンツ配信手段10としては、インターネット11、衛星放送12、電話回線13、DVD、CD等のメディア14等があり、一方、データ処理手段20のデバイスとしては、パーソナルコンピュータ(PC)21、ポータブルデバイス(PD)22、携帯電話、PDA(Personal Digital Assistants)等の携帯機器23、DVD、CDプレーヤ等の記録再生器、ゲーム端末24、メモリーカード(ex.メモリースティック(商標))を利用した再生装置25等がある。これらデータ処理手段20の各デバイスは、コンテンツ配信手段10から提供されるコンテンツをネットワーク等の通信手段あるいは、他のデータ処理手段、または、データ記憶手段30から取得可能である。 【0039】図2に、代表的なコンテンツデータの移動処理例を示す。図2に示すシステムは、パーソナルコンピュータ(PC)100、再生装置200および記憶装置300間でのデータ(コンテンツ)の移動処理例を示した図である。PC100は、プログラムおよびデータ記憶用のハードディスク(HD)を有し、さらに、外部記憶媒体としてのCD,DVD等を装着可能な構成を持つ。 【0040】パーソナルコンピュータ(PC)100は、インターネット、公衆回線等の各種ネットワークに接続可能であり、例えば、EMD(Electronic Music Distribution: 電子音楽配信)などのサービスを提供する図示しないサービスプロバイダのホストコンピュータから、ネットワークをしてオーディオデータ、画像データ、プログラム等の各種データを受信し、受信したデータを必要に応じて復号して、再生装置200に出力する。また、パーソナルコンピュータ(PC)100は、コンテンツデータを受信するに当たって、必要に応じて、サービスプロバイダのホストコンピュータとの間で認証処理および課金処理などを行う。また、パーソナルコンピュータ(PC)100は、例えば、CD、DVDから入力したデータを再生装置200に出力する。 【0041】記憶装置300は、再生装置200に対して着脱自在な装置、例えばメモリスティック(Memory Stick:商標)であり、フラッシュメモリなどの書き換え可能な半導体メモリを内蔵している。 【0042】図2に示すように、PC100、再生装置200、記憶装置300間におけるデータ移動、例えば音楽データ、画像データ等のデータ再生、データ記録、データコピー等の処理の際にはデータ移動機器間において、相互認証処理が実行され、不正な機器を用いたデータ移動は防止される。これらの処理については後述する。また、コンテンツデータのネットワークまたは各種記憶媒体を介する配信、また、PCと再生装置相互間、あるいは再生装置とメモリカード等の記憶装置間でのコンテンツ移動の際にはコンテンツを暗号化することでデータのセキュリティが保全される。 【0043】[キー配信構成としてのツリー(木)構造について]上述のようなコンテンツに対する暗号処理に適用する暗号鍵、例えばコンテンツの暗号処理に適用するコンテンツキー、またはコンテンツキーを暗号化するためのコンテンツキー暗号化キー等の様々な暗号処理キーを、安全に正当なライセンスを持つデバイスに配信する構成として、階層キー・ツリー構成について図3以下を用いて説明する。 【0044】図3の最下段に示すナンバ0〜15がコンテンツデータの再生、実行を行なうデータ処理手段20を構成する個々のデバイス、例えばコンテンツ(音楽データ)再生装置である。すなわち図3に示す階層ツリー(木)構造の各葉(リーフ:leaf)がそれぞれのデバイスに相当する。 【0045】各デバイス0〜15は、製造時あるいは出荷時、あるいはその後において、図3に示す階層ツリー(木)構造における、自分のリーフからルートに至るまでのノードに割り当てられた鍵(ノードキー)および各リーフのリーフキーからなるキーセットをメモリに格納する。図3の最下段に示すK0000〜K1111が各デバイス0〜15にそれぞれ割り当てられたリーフキーであり、最上段のKR(ルートキー)から、最下段から2番目の節(ノード)に記載されたキー:KR〜K111をノードキーとする。 【0046】図3に示すツリー構成において、例えばデバイス0はリーフキーK0000と、ノードキー:K000、K00、K0、KRを所有する。デバイス5はK0101、K010、K01、K0、KRを所有する。デバイス15は、K1111、K111、K11、K1、KRを所有する。なお、図3のツリーにはデバイスが0〜15の16個のみ記載され、ツリー構造も4段構成の均衡のとれた左右対称構成として示しているが、さらに多くのデバイスがツリー中に構成され、また、ツリーの各部において異なる段数構成を持つことが可能である。 【0047】また、図3のツリー構造に含まれる各デバイスには、様々な記録媒体、例えば、デバイス埋め込み型あるいはデバイスに着脱自在に構成されたフラッシュメモリ等を使用したメモリカード、DVD、CD、MD等、様々なタイプの記憶装置を利用可能なデバイスが含まれている。さらに、様々なアプリケーションサービスが共存可能である。このような異なるデバイス、異なるアプリケーションの共存構成の上に図3に示すコンテンツあるいは鍵配布構成である階層ツリー構造が適用される。 【0048】これらの様々なデバイス、アプリケーションが共存するシステムにおいて、例えば図3の点線で囲んだ部分、すなわちデバイス0,1,2,3を同一の記録媒体を用いる1つのグループとして設定する。例えば、この点線で囲んだグループ内に含まれるデバイスに対しては、まとめて、共通のコンテンツを暗号化してプロバイダから送付したり、各デバイス共通に使用するコンテンツキーを送付したり、あるいは各デバイスからプロバイダあるいは決済機関等にコンテンツ料金の支払データをやはり暗号化して出力するといった処理が実行される。コンテンツプロバイダ、あるいは決済処理機関等、各デバイスとのデータ送受信を行なう機関は、図3の点線で囲んだ部分、すなわちデバイス0,1,2,3を1つのグループとして一括してデータを送付する処理を実行する。このようなグループは、図3のツリー中に複数存在する。コンテンツプロバイダ、あるいは決済処理機関等、各デバイスとのデータ送受信を行なう機関は、メッセージデータ配信手段として機能する。 【0049】なお、ノードキー、リーフキーは、ある1つの鍵管理センタによって統括して管理してもよいし、各グループに対する様々なデータ送受信を行なうプロバイダ、決済機関等のメッセージデータ配信手段によってグループごとに管理する構成としてもよい。これらのノードキー、リーフキーは例えばキーの漏洩等の場合に更新処理が実行され、この更新処理は鍵管理センタ、プロバイダ、決済機関等が実行する。 【0050】このツリー構造において、図3から明らかなように、1つのグループに含まれる3つのデバイス0,1,2,3はノードキーとして共通のキーK00、K0、KRを保有する。このノードキー共有構成を利用することにより、例えば共通のコンテンツキーをデバイス0,1,2,3のみに提供することが可能となる。たとえば、共通に保有するノードキーK00自体をコンテンツキーとして設定すれば、新たな鍵送付を実行することなくデバイス0,1,2,3のみに共通のコンテンツキーの設定が可能である。また、新たなコンテンツキーKconをノードキーK00で暗号化した値Enc(K00,Kcon)を、ネットワークを介してあるいは記録媒体に格納してデバイス0,1,2,3に配布すれば、デバイス0,1,2,3のみが、それぞれのデバイスにおいて保有する共有ノードキーK00を用いて暗号Enc(K00,Kcon)を解いてコンテンツキー:Kconを得ることが可能となる。なお、Enc(Ka,Kb)はKbをKaによって暗号化したデータであることを示す。 【0051】また、ある時点tにおいて、デバイス3の所有する鍵:K0011,K001,K00,K0,KRが攻撃者(ハッカー)により解析されて露呈したことが発覚した場合、それ以降、システム(デバイス0,1,2,3のグループ)で送受信されるデータを守るために、デバイス3をシステムから切り離す必要がある。そのためには、ノードキー:K001,K00,K0,KRをそれぞれ新たな鍵K(t)001,K(t)00,K(t)0,K(t)Rに更新し、デバイス0,1,2にその更新キーを伝える必要がある。ここで、K(t)aaaは、鍵Kaaaの世代(Generation):tの更新キーであることを示す。 【0052】更新キーの配布処理ついて説明する。キーの更新は、例えば、図4(A)に示す有効化キーブロック(EKB:Enabling Key Block)と呼ばれるブロックデータによって構成されるテーブルをたとえばネットワーク、あるいは記録媒体に格納してデバイス0,1,2に供給することによって実行される。なお、有効化キーブロック(EKB)は、図3に示すようなツリー構造を構成する各リーフに対応するデバイスに新たに更新されたキーを配布するための暗号化キーによって構成される。有効化キーブロック(EKB)は、キー更新ブロック(KRB:KeyRenewal Block)と呼ばれることもある。 【0053】図4(A)に示す有効化キーブロック(EKB)には、ノードキーの更新の必要なデバイスのみが更新可能なデータ構成を持つブロックデータとして構成される。図4の例は、図3に示すツリー構造中のデバイス0,1,2において、世代tの更新ノードキーを配布することを目的として形成されたブロックデータである。図3から明らかなように、デバイス0,デバイス1は、更新ノードキーとしてK(t)00、K(t)0、K(t)Rが必要であり、デバイス2は、更新ノードキーとしてK(t)001、K(t)00、K(t)0、K(t)Rが必要である。 【0054】図4(A)のEKBに示されるようにEKBには複数の暗号化キーが含まれる。最下段の暗号化キーは、Enc(K0010,K(t)001)である。これはデバイス2の持つリーフキーK0010によって暗号化された更新ノードキーK(t)001であり、デバイス2は、自身の持つリーフキーによってこの暗号化キーを復号し、K(t)001を得ることができる。また、復号により得たK(t)001を用いて、図4(A)の下から2段目の暗号化キーEnc(K(t)001,K(t)00)を復号可能となり、更新ノードキーK(t)00を得ることができる。以下順次、図4(A)の上から2段目の暗号化キーEnc(K(t)00,K(t)0)を復号し、更新ノードキーK(t)0、図4(A)の上から1段目の暗号化キーEnc(K(t)0,K(t)R)を復号しK(t)Rを得る。一方、デバイスK0000.K0001は、ノードキーK000は更新する対象に含まれておらず、更新ノードキーとして必要なのは、K(t)00、K(t)0、K(t)Rである。デバイスK0000.K0001は、図4(A)の上から3段目の暗号化キーEnc(K000,K(t)00)を復号しK(t)00、を取得し、以下、図4(A)の上から2段目の暗号化キーEnc(K(t)00,K(t)0)を復号し、更新ノードキーK(t)0、図4(A)の上から1段目の暗号化キーEnc(K(t)0,K(t)R)を復号しK(t)Rを得る。このようにして、デバイス0,1,2は更新した鍵K(t)001,K(t)00,K(t)0,K(t)Rを得ることができる。なお、図4(A)のインデックスは、復号キーとして使用するノードキー、リーフキーの絶対番地を示す。 【0055】図3に示すツリー構造の上位段のノードキー:K(t)0,K(t)Rの更新が不要であり、ノードキーK00のみの更新処理が必要である場合には、図4(B)の有効化キーブロック(EKB)を用いることで、更新ノードキーK(t)00をデバイス0,1,2に配布することができる。 【0056】図4(B)に示すEKBは、例えば特定のグループにおいて共有する新たなコンテンツキーを配布する場合に利用可能である。具体例として、図3に点線で示すグループ内のデバイス0,1,2,3がある記録媒体を用いており、新たな共通のコンテンツキーK(t)conが必要であるとする。このとき、デバイス0,1,2,3の共通のノードキーK00を更新したK(t)00を用いて新たな共通の更新コンテンツキー:K(t)conを暗号化したデータEnc(K(t),K(t)con)を図4(B)に示すEKBとともに配布する。この配布により、デバイス4など、その他のグループの機器においては復号されないデータとしての配布が可能となる。 【0057】すなわち、デバイス0,1,2はEKBを処理して得たK(t)00を用いて上記暗号文を復号すれば、t時点でのコンテンツキーK(t)conを得ることが可能になる。 【0058】[EKBを使用したコンテンツキーの配布]図5に、t時点でのコンテンツキーK(t)conを得る処理例として、K(t)00を用いて新たな共通のコンテンツキーK(t)conを暗号化したデータEnc(K(t)00,K(t)con)と図4(B)に示すEKBとを記録媒体を介して受領したデバイス0の処理を示す。すなわちEKBによる暗号化メッセージデータをコンテンツキーK(t)conとした例である。 【0059】図5に示すように、デバイス0は、記録媒体に格納されている世代:t時点のEKBと自分があらかじめ格納しているノードキーK000を用いて上述したと同様のEKB処理により、ノードキーK(t)00を生成する。さらに、復号した更新ノードキーK(t)00を用いて更新コンテンツキーK(t)conを復号して、後にそれを使用するために自分だけが持つリーフキーK0000で暗号化して格納する。 【0060】[EKBのフォーマット]図6に有効化キーブロック(EKB)のフォーマット例を示す。バージョン601は、有効化キーブロック(EKB)のバージョンを示す識別子である。なお、バージョンは最新のEKBを識別する機能とコンテンツとの対応関係を示す機能を持つ。デプスは、有効化キーブロック(EKB)の配布先のデバイスに対する階層ツリーの階層数を示す。データポインタ603は、有効化キーブロック(EKB)中のデータ部の位置を示すポインタであり、タグポインタ604はタグ部の位置、署名ポインタ605は署名の位置を示すポインタである。 【0061】データ部606は、例えば更新するノードキーを暗号化したデータを格納する。例えば図5に示すような更新されたノードキーに関する各暗号化キー等を格納する。 【0062】タグ部607は、データ部に格納された暗号化されたノードキー、リーフキーの位置関係を示すタグである。このタグの付与ルールを図7を用いて説明する。図7では、データとして先に図4(A)で説明した有効化キーブロック(EKB)を送付する例を示している。この時のデータは、図7の表(b)に示すようになる。このときの暗号化キーに含まれるトップノードのアドレスをトップノードアドレスとする。この場合は、ルートキーの更新キーK(t)Rが含まれているので、トップノードアドレスはKRとなる。このとき、例えば最上段のデータEnc(K(t)0,K(t)R)は、図7の(a)に示す階層ツリーに示す位置にある。ここで、次のデータは、Enc(K(t)00,K(t)0)であり、ツリー上では前のデータの左下の位置にある。データがある場合は、タグが0、ない場合は1が設定される。タグは{左(L)タグ,右(R)タグ}として設定される。最上段のデータEnc(K(t)0,K(t)R)の左にはデータがあるので、Lタグ=0、右にはデータがないので、Rタグ=1となる。以下、すべてのデータにタグが設定され、図7(c)に示すデータ列、およびタグ列が構成される。 【0063】タグは、データEnc(Kxxx,Kyyy)がツリー構造のどこに位置しているのかを示すために設定されるものである。データ部に格納されるキーデータEnc(Kxxx,Kyyy)...は、単純に暗号化されたキーの羅列データに過ぎないので、上述したタグによってデータとして格納された暗号化キーのツリー上の位置を判別可能としたものである。上述したタグを用いずに、先の図4で説明した構成のように暗号化データに対応させたノード・インデックスを用いて、例えば、0:Enc(K(t)0,K(t)root) 00:Enc(K(t)00,K(t)0) 000:Enc(K((t)000,K(T)00) ... のようなデータ構成とすることも可能であるが、このようなインデックスを用いた構成とすると冗長なデータとなりデータ量が増大し、ネットワークを介する配信等においては好ましくない。これに対し、上述したタグをキー位置を示す索引データとして用いることにより、少ないデータ量でキー位置の判別が可能となる。 【0064】図6に戻って、EKBフォーマットについてさらに説明する。署名(Signature)は、有効化キーブロック(EKB)を発行した例えば鍵管理センタ、コンテンツロバイダ、決済機関等が実行する電子署名である。EKBを受領したデバイスは署名検証によって正当な有効化キーブロック(EKB)発行者が発行した有効化キーブロック(EKB)であることを確認する。 【0065】[EKBを使用したコンテンツキーおよびコンテンツの配信]上述の例では、コンテンツキーのみをEKBとともに送付する例について説明したが、コンテンツキーで暗号化したコンテンツと、コンテンツキー暗号キーで暗号化したコンテンツキーと、EKBによって暗号化したコンテンツキー暗号キーを併せて送付する構成について以下説明する。 【0066】図8にこのデータ構成を示す。図8(a)に示す構成において、Enc(Kcon,content)801は、コンテンツ(Content)をコンテンツキー(Kcon)で暗号化したデータであり、Enc(KEK,Kcon)802は、コンテンツキー(Kcon)をコンテンツキー暗号キー(KEK:Key Encryption Key)で暗号化したデータであり、Enc(EKB,KEK)803は、コンテンツキー暗号キーKEKを有効化キーブロック(EKB)によって暗号化したデータであることを示す。 【0067】ここで、コンテンツキー暗号キーKEKは、図3で示すノードキー(K000,K00…)、あるいはルートキー(KR)自体であってもよく、またノードキー(K000,K00…)、あるいはルートキー(KR)によって暗号化されたキーであってもよい。 【0068】図8(b)は、複数のコンテンツがメディアに記録され、それぞれが同じEnc(EKB,KEK)805を利用している場合の構成例を示す、このような構成においては、各データに同じEnc(EKB,KEK)を付加することなく、Enc(EKB,KEK)にリンクするリンク先を示すデータを各データに付加する構成とすることができる。 【0069】図9にコンテンツキー暗号キーKEKを、図3に示すノードキーK00を更新した更新ノードキーK(t)00として構成した場合の例を示す。この場合、図3の点線枠で囲んだグループにおいてデバイス3が、例えば鍵の漏洩によりリボーク(排除)されているとして、他のグループのメンバ、すなわち、デバイス0,1,2に対して図9に示す(a)有効化キーブロック(EKB)と、(b)コンテンツキー(Kcon)をコンテンツキー暗号キー(KEK=K(t)00)で暗号化したデータと、(c)コンテンツ(content)をコンテンツキー(Kcon)で暗号化したデータとを配信することにより、デバイス0,1,2はコンテンツを得ることができる。 【0070】図9の右側には、デバイス0における復号手順を示してある。デバイス0は、まず、受領した有効化キーブロックから自身の保有するリーフキーK000を用いた復号処理により、コンテンツキー暗号キー(KEK=K(t)00)を取得する。次に、K(t)00による復号によりコンテンツキーKconを取得し、さらにコンテンツキーKconによりコンテンツの復号を行なう。これらの処理により、デバイス0はコンテンツを利用可能となる。デバイス1,2においても各々異なる処理手順でEKBを処理することにより、コンテンツキー暗号キー(KEK=K(t)00)を取得することが可能となり、同様にコンテンツを利用することが可能となる。 【0071】図3に示す他のグループのデバイス4,5,6…は、この同様のデータ(EKB)を受信したとしても、自身の保有するリーフキー、ノードキーを用いてコンテンツキー暗号キー(KEK=K(t)00)を取得することができない。同様にリボークされたデバイス3においても、自身の保有するリーフキー、ノードキーでは、コンテンツキー暗号キー(KEK=K(t)00)を取得することができず、正当な権利を有するデバイスのみがコンテンツを復号して利用することが可能となる。 【0072】このように、EKBを利用したコンテンツキーの配送を用いれば、データ量を少なくして、かつ安全に正当権利者のみが復号可能とした暗号化コンテンツを配信することが可能となる。 【0073】なお、有効化キーブロック(EKB)、コンテンツキー、暗号化コンテンツ等は、ネットワークを介して安全に配信することが可能な構成であるが、有効化キーブロック(EKB)、コンテンツキー、暗号化コンテンツをDVD、CD等の記録媒体に格納してユーザに提供することも可能である。この場合、記録媒体に格納された暗号化コンテンツの復号には、同一の記録媒体に格納された有効化キーブロック(EKB)の復号により得られるコンテンツキーを使用するように構成すれば、予め正当権利者のみが保有するリーフキー、ノードキーによってのみ利用可能な暗号化コンテンツの配布処理、すなわち利用可能なユーザデバイスを限定したコンテンツ配布が簡易な構成で実現可能となる。 【0074】図10に記録媒体に暗号化コンテンツとともに有効化キーブロック(EKB)を格納した構成例を示す。図10に示す例においては、記録媒体にコンテンツC1〜C4が格納され、さらに各格納コンテンツに対応するの有効化キーブロック(EKB)を対応付けたデータが格納され、さらにバージョンMの有効化キーブロック(EKB_M)が格納されている。例えばEKB_1はコンテンツC1を暗号化したコンテンツキーKcon1を生成するのに使用され、例えばEKB_2はコンテンツC2を暗号化したコンテンツキーKcon2を生成するのに使用される。この例では、バージョンMの有効化キーブロック(EKB_M)が記録媒体に格納されており、コンテンツC3,C4は有効化キーブロック(EKB_M)に対応付けられているので、有効化キーブロック(EKB_M)の復号によりコンテンツC3,C4のコンテンツキーを取得することができる。EKB_1、EKB_2はディスクに格納されていないので、新たな提供手段、例えばネットワーク配信、あるいは記録媒体による配信によってそれぞれのコンテンツキーを復号するために必要なEKB_1,EKB_2を取得することが必要となる。 【0075】[階層ツリー構造のカテゴリー分類]暗号鍵をルートキー、ノードキー、リーフキー等、図3の階層ツリー構造として構成し、コンテンツキー、認証キー、ICV生成キー、あるいはプログラムコード、データ等を有効化キーブロック(EKB)とともに暗号化して配信する構成について説明してきたが、ノードキー等を定義している階層ツリー構造を各デバイスのカテゴリー毎に分類して効率的なキー更新処理、暗号化キー配信、データ配信を実行する構成について、以下説明する。 【0076】図11に階層ツリー構造のカテゴリーの分類の一例を示す。図11において、階層ツリー構造の最上段には、ルートキーKroot1101が設定され、以下の中間段にはノードキー1102が設定され、最下段には、リーフキー1103が設定される。各デバイスは個々のリーフキーと、リーフキーからルートキーに至る一連のノードキー、ルートキーを保有する。 【0077】ここで、一例として最上段から第M段目のあるノードをカテゴリノード1104として設定する。すなわち第M段目のノードの各々を特定カテゴリのデバイス設定ノードとする。第M段の1つのノードを頂点として以下、M+1段以下のノード、リーフは、そのカテゴリに含まれるデバイスに関するノードおよびリーフとする。 【0078】例えば図11の第M段目の1つのノード1105にはカテゴリ[メモリステッイク(商標)]が設定され、このノード以下に連なるノード、リーフはメモリステッイクを使用した様々なデバイスを含むカテゴリ専用のノードまたはリーフとして設定される。すなわち、ノード1105以下を、メモリスティックのカテゴリに定義されるデバイスの関連ノード、およびリーフの集合として定義する。 【0079】さらに、M段から数段分下位の段をサブカテゴリノード1106として設定することができる。例えば図に示すようにカテゴリ[メモリスティック]ノード1105の2段下のノードに、メモリスティックを使用したデバイスのカテゴリに含まれるサブカテゴリノードとして、[再生専用器]のノードを設定する。さらに、サブカテゴリノードである再生専用器のノード1106以下に、再生専用器のカテゴリに含まれる音楽再生機能付き電話のノード1107が設定され、さらにその下位に、音楽再生機能付き電話のカテゴリに含まれる[PHS]ノード1108と[携帯電話]ノード1109を設定することができる。 【0080】さらに、カテゴリ、サブカテゴリは、デバイスの種類のみならず、例えばあるメーカー、コンテンツプロバイダ、決済機関等が独自に管理するノード、すなわち処理単位、管轄単位、あるいは提供サービス単位等、任意の単位(これらを総称して以下、エンティティと呼ぶ)で設定することが可能である。例えば1つのカテゴリノードをゲーム機器メーカーの販売するゲーム機器XYZ専用の頂点ノードとして設定すれば、メーカーの販売するゲーム機器XYZにその頂点ノード以下の下段のノードキー、リーフキーを格納して販売することが可能となり、その後、暗号化コンテンツの配信、あるいは各種キーの配信、更新処理を、その頂点ノードキー以下のノードキー、リーフキーによって構成される有効化キーブロック(EKB)を生成して配信し、頂点ノード以下のデバイスに対してのみ利用可能なデータが配信可能となる。 【0081】このように、1つのノードを頂点としして、以下のノードをその頂点ノードに定義されたカテゴリ、あるいはサブカテゴリの関連ノードとして設定する構成とすることにより、カテゴリ段、あるいはサブカテゴリ段の1つの頂点ノードを管理するメーカー、コンテンツプロバイダ等がそのノードを頂点とする有効化キーブロック(EKB)を独自に生成して、頂点ノード以下に属するデバイスに配信する構成が可能となり、頂点ノードに属さない他のカテゴリのノードに属するデバイスには全く影響を及ぼさずにキー更新を実行することができる。 【0082】[簡略EKBによるキー配信構成]先に説明した例えば図3のツリー構成において、キー、例えばコンテンツキーを所定デバイス(リーフ)宛に送付する場合、キー配布先デバイスの所有しているリーフキー、ノードキーを用いて復号可能な有効化キーブロック(EKB)を生成して提供する。例えば図12(a)に示すツリー構成において、リーフを構成するデバイスa,g,jに対してキー、例えばコンテンツキーを送信する場合、a,g,jの各ノードにおいて復号可能な有効化キーブロック(EKB)を生成して配信する。 【0083】例えば更新ルートキーK(t)rootでコンテンツキーK(t)conを暗号化処理し、EKBとともに配信する場合を考える。この場合、デバイスa,g,jは、それぞれが図12(b)に示すリーフおよびノードキーを用いて、EKBの処理を実行してK(t)rootを取得し、取得した更新ルートキーK(t)rootによってコンテンツキーK(t)conの復号処理を実行してコンテンツキーを得る。 【0084】この場合に提供される有効化キーブロック(EKB)の構成は、図13に示すようになる。図13に示す有効化キーブロック(EKB)は、先の図6で説明した有効化キーブロック(EKB)のフォーマットにしたがって構成されたものであり、データ(暗号化キー)と対応するタグとを持つ。タグは、先に図7を用いて説明したように左(L)、右(R)、それぞれの方向にデータがあれば0、無ければ1を示している。 【0085】有効化キーブロック(EKB)を受領したデバイスは、有効化キーブロック(EKB)の暗号化キーとタグに基づいて、順次暗号化キーの復号処理を実行して上位ノードの更新キーを取得していく。図13に示すように、有効化キーブロック(EKB)は、ルートからリーフまでの段数(デプス)が多いほど、そのデータ量は増加していく。段数(デプス)は、デバイス(リーフ)数に応じて増大するものであり、キーの配信先となるデバイス数が多い場合は、EKBのデータ量がさらに増大することになる。 【0086】このような有効化キーブロック(EKB)のデータ量の削減を可能とした構成について説明する。図14は、有効化キーブロック(EKB)をキー配信デバイスに応じて簡略化して構成した例を示すものである。 【0087】図13と同様、リーフを構成するデバイスa,g,jに対してキー、例えばコンテンツキーを送信する場合を想定する。図14の(a)に示すように、キー配信デバイスによってのみ構成されるツリーを構築する。この場合、図12(b)に示す構成に基づいて新たなツリー構成として図14(b)のツリー構成が構築される。KrootからKjまでは全く分岐がなく1つの枝のみが存在すればよく、KrootからKaおよびKgに至るためには、K0に分岐点を構成するのみで、2分岐構成の図14(a)のツリーが構築される。 【0088】図14(a)に示すように、ノードとしてK0のみを持つ簡略化したツリーが生成される。更新キー配信のための有効化キーブロック(EKB)は、これらの簡略ツリーに基づいて生成する。図14(a)に示すツリーは、有効化キーブロック(EKB)を復号可能な末端ノードまたはリーフを最下段とした2分岐型ツリーを構成するパスを選択して不要ノードを省略することにより再構築される再構築階層ツリーである。更新キー配信のための有効化キーブロック(EKB)は、この再構築階層ツリーのノードまたはリーフに対応するキーのみに基づいて構成される。 【0089】先の図13で説明した有効化キーブロック(EKB)は、各リーフa,g,jからKrootに至るまでのすべてのキーを暗号化したデータを格納していたが、簡略化EKBは、簡略化したツリーを構成するノードについてのみの暗号化データを格納する。図14(b)に示すようにタグは3ビット構成を有する。第1および第2ビットは、図13の例と、同様の意味を持ち、左(L)、右(R)、それぞれの方向にデータがあれば0、無ければ1を示す。第3番目のビットは、EKB内に暗号化キーが格納されているか否かを示すためのビットであり、データが格納されている場合は1、データが無い場合は、0として設定される。 【0090】データ通信網、あるいは記憶媒体に格納されてデバイス(リーフ)に提供される有効化キーブロック(EKB)は、図14(b)に示すように、図13に示す構成に比較すると、データ量が大幅に削減されたものとなる。図14に示す有効化キーブロック(EKB)を受領した各デバイスは、タグの第3ビットに1が格納された部分のデータのみを順次復号することにより、所定の暗号化キーの復号を実現することができる。例えばデバイスaは、暗号化データEnc(Ka,K(t)0)をリーフキーKaで復号して、ノードキーK(t)0を取得して、ノードキーK(t)0によって暗号化データEnc(K(t)0,K(t)root)を復号してK(t)rootを取得する。デバイスjは、暗号化データEnc(Kj,K(t)root)をリーフキーKjで復号して、K(t)rootを取得する。 【0091】このように、配信先のデバイスによってのみ構成される簡略化した新たなツリー構成を構築して、構築されたツリーを構成するリーフおよびノードのキーのみを用いて有効化キーブロック(EKB)を生成することにより、少ないデータ量の有効化キーブロック(EKB)を生成することが可能となり、有効化キーブロック(EKB)のデータ配信が効率的に実行可能となる。 【0092】なお、簡略化した階層ツリー構成は、後段で説明するエンティテイ単位のEKB管理構成において特に有効に活用可能である。エンティテイは、キー配信構成としてのツリー構成を構成するノードあるいはリーフから選択した複数のノードあるいはリーフの集合体ブロックである。エンティテイは、デバイスの種類に応じて設定される集合であったり、あるいはデバイス提供メーカー、コンテンツプロバイダ、決済機関等の管理単位等、ある共通点を持った処理単位、管轄単位、あるいは提供サービス単位等、様々な態様の集合として設定される。1つのエンティテイには、ある共通のカテゴリに分類されるデバイスが集まっており、例えば複数のエンティテイの頂点ノード(サブルート)によって上述したと同様の簡略化したツリーを再構築してEKBを生成することにより、選択されたエンティテイに属するデバイスにおいて復号可能な簡略化された有効化キーブロック(EKB)の生成、配信が可能となる。エンティテイ単位の管理構成については後段で詳細に説明する。 【0093】なお、このような有効化キーブロック(EKB)は、光ディスク、DVD等の情報記録媒体に格納した構成とすることが可能である。例えば、上述の暗号化キーデータによって構成されるデータ部と、暗号化キーデータの階層ツリー構造における位置識別データとしてのタグ部とを含む有効化キーブロック(EKB)にさらに、更新ノードキーによって暗号化したコンテンツ等のメッセージデータとを格納した情報記録媒体を各デバイスに提供する構成が可能である。デバイスは有効化キーブロック(EKB)に含まれる暗号化キーデータをタグ部の識別データにしたがって順次抽出して復号し、コンテンツの復号に必要なキーを取得してコンテンツの利用を行なうことが可能となる。もちろん、有効化キーブロック(EKB)をインターネット等のネットワークを介して配信する構成としてもよい。 【0094】[暗号処理機能を有する記憶装置とデータ処理装置間のデータ移動]次に、上述した階層ツリー構成を適用した有効化キーブロック(EKB)によって配信される暗号処理キーを適用した処理構成について、暗号処理機能を有する記憶装置、例えばメモリスティック(商標)等のメモリカードと、データ再生装置間におけるデータ移動処理を中心として説明する。 【0095】図15は、相互にコンテンツデータの移動を実行可能な再生装置と暗号処理機能を有するメモリカード等の記憶装置の詳細構成を示したブロック図である。 【0096】図15に示すように、記憶装置300は、例えば、主制御モジュール31、通信インターフェイス32、制御モジュール33、フラッシュメモリ34およびフラッシュメモリ管理モジュール35を有する。以下、各モジュールについて説明する。 【0097】〔制御モジュール33〕図15に示すように、制御モジュール33は、例えば、乱数発生ユニット50、記憶ユニット51、鍵生成/演算ユニット52、相互認証ユニット53、暗号化/復号ユニット54および制御ユニット55を有する。制御モジュール33は、シングルチップの暗号処理専用の集積回路であり、多層構造を有し、内部のメモリセルはアルミニウム層などのダミー層に挟まれている。また、制御モジュール33は、動作電圧または動作周波数の幅が狭く、外部から不正にデータを読み出せないように耐タンパー性を有している。乱数発生ユニット50は、乱数発生指示を受けると、64ビット(8バイト)の乱数を発生する。 【0098】記憶ユニット51は、例えば、EEPROM(Electrically Erasable Programmable Read Only Memory) などの不揮発性メモリであり、認証処理に必要な鍵データなどの種々のデータを記憶している。図16は、記憶ユニット51に記憶されているデータを説明するための図である。図16に示すように、記憶ユニット51は、認証鍵データIK0〜IK31、装置識別データIDmおよび記憶用鍵データKstmを記憶している。 【0099】認証鍵データIK0〜IK31は、記憶装置300が再生装置200との間で相互認証を行う際に用いられる鍵データであり、後述するように相互認証を行う度に認証鍵データIK0〜IK31のうち一の認証鍵データがランダムに選択される。なお、認証鍵データIK0〜IK31および記憶用鍵データKstmは、記憶装置300の外部から読めないようになっている。装置識別データIDmは、記憶装置300に対してユニークに付けられた識別データであり、後述するように、記憶装置300が再生装置200との間で相互認証を行う際に読み出されて再生装置200に出力される。記憶用鍵データKstmは、後述するように、コンテンツの暗号化に用いられるコンテンツ鍵データCKを暗号化してフラッシュメモリ34に記憶する際に用いられる。 【0100】鍵生成/演算ユニット52は、例えば、ISO/IEC9797のMAC(Message Authentication Code) 演算などの種々の演算を行って鍵データを生成する。このとき、MAC演算には、例えば、"Block cipher Algorithm"としてFIPSPUB46−2に規定されるDES(Data Encryption Standard)が用いられる。MAC演算は、任意の長さのデータを固定の長さに圧縮する一方向性ハッシュ関数演算であり、関数値が秘密鍵に依存して定まる。 【0101】相互認証ユニット53は、再生装置200からオーディオデータを入力してフラッシュメモリ34に書き込む動作を行うのに先立って、再生装置200との間で相互認証処理を行う。また、相互認証ユニット53は、フラッシュメモリ34からオーディオデータを読み出して再生装置200に出力する動作を行うのに先立って、再生装置200との間で相互認証処理を行う。また、相互認証ユニット53は、相互認証処理において、前述したMAC演算を行う。当該相互認証処理では、記憶ユニット51に記憶されているデータが用いられる。 【0102】暗号化/復号ユニット54は、DES、IDEA、MISTYなどのブロック暗号アルゴリズムでの暗号化を行う。使用するモードは、FIPS PUB81”DES MODES OF OPERATION”に規定されているようなECB(Electronic Code Book)モードおよびCBC(Cipher Block Chaining) モードである。また、暗号化/復号ユニット54は、DES、IDEA、MISTYなどのブロック復号アルゴリズムでの復号を行う。使用するモードは、上記ECBモードおよびCBCモードである。当該ECBモードおよびCBCモードのブロック暗号化/復号では、指定された鍵データを用いて指定されたデータを暗号化/復号する。制御ユニット55は、乱数発生ユニット50、記憶ユニット51、鍵生成/演算ユニット52、相互認証ユニット53および暗号化/復号ユニット54の処理を統括して制御する。 【0103】〔フラッシュメモリ34〕フラッシュメモリ34は、例えば、32Mバイトの記憶容量を有する。フラッシュメモリ34には、相互認証ユニット53による再生装置200と記憶装置300との間の相互認証処理によって双方が正当な装置であると認められたときに、再生装置200から入力したオーディオデータあるいは画像データ等、各種データが書き込まれる。また、フラッシュメモリ34からは、相互認証ユニット53による再生装置200と記憶装置300との間の相互認証処理によって正当な相手であると認められたときに、オーディオデータ、画像データ等が読み出されて再生装置200に出力される。 【0104】以下、フラッシュメモリ34に記憶されるデータおよびそのフォーマットについて説明する。図17は、フラッシュメモリ34に記憶されるデータを説明するための図である。図17に示すように、フラッシュメモリ34には、例えば、再生管理ファイル、複数のトラックデータ(再生データ)ファイルが記憶されている。ここで、再生管理ファイルはトラックデータファイルの再生を管理する管理データを有し、トラックデータファイルはそれぞれ対応するトラックデータ(オーディオデータ)を有している。なお、本実施形態では、トラックデータは、例えば、1曲分のオーディオデータを意味する。以下、フラッシュメモリ34に記憶されるデータをオーディオデータとした場合の例について説明する。 【0105】図18は、再生管理ファイルの構成を示し、図19が一つ(1曲)のATRAC(登録商標)3データファイルの構成を示す。再生管理ファイルは、16KB固定長のファイルである。ATRAC3データファイルは、曲単位でもって、先頭の属性ヘッダと、それに続く実際の暗号化された音楽データとからなる。属性ヘッダも16KB固定長とされ、再生管理ファイルと類似した構成を有する。 【0106】再生管理ファイルは、ヘッダ、1バイトコードのメモリカードの名前NM1−S、2バイトコードのメモリカードの名前NM2−S、曲順の再生テーブルTRKTBL、メモリカード全体の付加情報INF−Sとからなる。データファイルの先頭の属性ヘッダは、ヘッダ、1バイトコードの曲名NM1、2バイトコードの曲名NM2、トラックのキー情報等のトラック情報TRKINF、パーツ情報PRTINFと、トラックの付加情報INFとからなる。ヘッダには、総パーツ数、名前の属性、付加情報のサイズの情報等が含まれる。 【0107】属性ヘッダに対してATRAC3の音楽データが続く。音楽データは、16KBのブロック毎に区切られ、各ブロックの先頭にヘッダが付加されている。ヘッダには、暗号を復号するための初期値が含まれる。なお、暗号化の処理を受けるのは、ATRAC3データファイル中の音楽データ等のコンテンツデータのみであって、それ以外の再生管理ファイル、ヘッダ等のデータは、暗号化されない。 【0108】図20は、再生管理ファイルPBLISTの詳細なデータ構成を示す。再生管理ファイルPBLISTは、1クラスタ(1ブロック=16KB)のサイズである。図20Aに示すヘッダは、32バイトから成る。図20Bに示すヘッダ以外の部分は、メモリカード全体に対する名前NM1−S(256バイト)、名前NM2−S(512バイト)、暗号化されたコンテンツキー(CONTENTSKEY)、MAC、S−YMDhmsと、再生順番を管理するテーブルTRKTBL(800バイト)、メモリカード全体に対する付加情報INF−S(14720バイト)および最後にヘッダ中の情報の一部が再度記録されている。これらの異なる種類のデータ群のそれぞれの先頭は、再生管理ファイル内で所定の位置となるように規定されている。 【0109】再生管理ファイルは、図20Aに示す(0x0000)および(0x0010)で表される先頭から32バイトがヘッダである。なお、ファイル中で先頭から16バイト単位で区切られた単位をスロットと称する。ファイルの第1および第2のスロットに配されるヘッダには、下記の意味、機能、値を持つデータが先頭から順に配される。なお、Reservedと表記されているデータは、未定義のデータを表している。通常ヌル(0x00)が書かれるが、何が書かれていてもReservedのデータが無視される。将来のバージョンでは、変更がありうる。また、この部分への書き込みは禁止する。Optionと書かれた部分も使用しない場合は、全てReservedと同じ扱いとされる。 【0110】BLKID−TL0(4バイト) 意味:BLOCKID FILE ID機能:再生管理ファイルの先頭であることを識別するための値値:固定値=”TL=0”(例えば0x544C2D30) MCode(2バイト) 意味:MAKER CODE機能:記録した機器の、メーカー、モデルを識別するコード値:上位10ビット(メーカーコード) 下位6ビット(機種コード) REVISION(4バイト) 意味:PBLISTの書き換え回数機能:再生管理ファイルを書き換える度にインクリメント値:0より始まり+1づつ増加する【0111】SN1C+L(2バイト) 意味:NM1−S領域に書かれるメモリカードの名前(1バイト)の属性を表す機能:使用する文字コードと言語コードを各1バイトで表す値:文字コード(C)は上位1バイトで下記のように文字を区別する00: 文字コードは設定しない。単なる2進数として扱うこと01: ASCII(American Standard Code for Information Interchange)02:ASCII+KANA 03:modifided8859-181:MS-JIS 82:KS C 5601-1989 83:GB(Great Britain)2312-8090:S-JIS(Japanese Industrial Standards)(for Voice)。 【0112】言語コード(L)は下位1バイトで下記のようにEBU Tech 3258 規定に準じて言語を区別する00: 設定しない 08:German 09:English 0A:Spanish0F:French 15:Italian 1D:Dutch65:Korean 69:Japanese 75:Chineseデータが無い場合オールゼロとすること。 【0113】SN2C+L(2バイト) 意味:NM2−S領域に書かれるメモリカードの名前(2バイト)の属性を表す機能:使用する文字コードと言語コードを各1バイトで表す値:上述したSN1C+Lと同一SINFSIZE(2バイト) 意味:INF−S領域に書かれるメモリカード全体に関する付加情報の全てを合計したサイズを表す機能:データサイズを16バイト単位の大きさで記述、無い場合は必ずオールゼロとすること値:サイズは0x0001から0x39C(924) T−TRK(2バイト) 意味:TOTAL TRACK NUMBER機能:総トラック数値:1から0x0190(最大400トラック)、データが無い場合はオールゼロとすることVerNo(2バイト) 意味:フォーマットのバージョン番号 機能:上位がメジャーバージョン番号、下位がマイナーバージョン番号。著作権対応型か否か、すなわち前述の階層ツリー構成による有効化キーブロック(EKB)による配信キーの使用対象か否かを示すデータとしても使用される。
【0114】上述したヘッダに続く領域に書かれるデータ(図20B)について以下に説明する。 【0115】NM1−S意味:メモリカード全体に関する1バイトの名前機能:1バイトの文字コードで表した可変長の名前データ(最大で256)名前データの終了は、必ず終端コード(0x00)を書き込むことサイズはこの終端コードから計算すること、データの無い場合は少なくとも先頭(0x0020)からヌル(0x00)を1バイト以上記録すること値:各種文字コードNM2−S意味:メモリカード全体に関する2バイトの名前機能:2バイトの文字コードで表した可変長の名前データ(最大で512)名前データの終了は、必ず終端コード(0x00)を書き込むことサイズはこの終端コードから計算すること、データの無い場合は少なくとも先頭(0x0120)からヌル(0x00)を2バイト以上記録すること値:各種文字コード。 【0116】EKB_version(4バイト) 意味:前述の階層ツリー構成による有効化キーブロック(EKB)によって提供されるコンテンツキーの世代番号、および/または有効化キーブロック(EKB)のファイル名を示す。 機能:階層ツリー構成による有効化キーブロック(EKB)によって提供されるコンテンツキーを求めるための有効化キーブロック(EKB)を示す。 値:0から0xFFまで【0117】E(Kstm,Kcon)(8バイト) 意味:コンテンツ毎の暗号処理用のキーであルコンテンツキーをメモリカードのストレージキー(Kstm)で暗号化したデータ。 機能:コンテンツの暗号処理に使用される値:0から0xFFFFFFFFFFFFFFFFまで【0118】E(KEKn,Kcon)(8バイト) 意味:コンテンツ毎の暗号処理用のキーであるコンテンツキーを前述の階層ツリー構成による有効化キーブロック(EKB)によって提供されるキー暗号化キーKEKnによって暗号化したデータ。 機能:コンテンツの暗号処理に使用される値:0から0xFFFFFFFFFFFFFFFFまで【0119】C_MAC[0](8バイト) 意味:著作権情報改ざんチェック値機能:再生管理ファイル内のデータ、最終コンテンツ記録等のコンテンツ処理日時を示すS−YMDhms他のデータに基づいて生成される改竄チェック用の値。日時データS−YMDhmsが改竄されていた場合には、C_MAC[0]のチェック時に改竄があったと判定され、コンテンツの再生が実行されない。 値:0から0xFFFFFFFFFFFFFFFFまで。 【0120】MGR意味:コンテンツキーの種類機能:0x00で、コンテンツキーKconと、E(KEKn,Kcon)の両方有り、0x01で、E(KEKn,Kcon)のみ有り。 値:0から0x01まで【0121】 S−YMDhms(4バイト)(Option) 意味:信頼できる時計を持つ機器で記録した年・月・日・時・分・秒機能:コンテンツの最終記録日時等、コンテンツ最終処理日時を識別するための値。コンテンツの処理時に更新される。 値:25−31ビット 年 0−99(1980−2079) 21−24ビット 月 0−12 16−20ビット 日 0−31 11−15ビット 時 0−23 05−10ビット 分 0−59 00−04ビット 秒 0−29(2秒単位)。 なお、S−YMDhmsは、コンテンツ記録時等のコンテンツ処理時に更新され、更新されたデータに基づいて前述のC−MAC[0]も更新されて格納される。 【0122】TRK−nnn意味:再生するATRAC3データファイルのSQN(シーケンス)番号 機能:TRKINFの中のFNoを記述する値:1から400(0x190) トラックが存在しない時はオールゼロとすることINF−S意味:メモリカード全体に関する付加情報データ(例えば写真、歌詞、解説等の情報) 機能:ヘッダを伴った可変長の付加情報データ複数の異なる付加情報が並べられることがある。それぞれにIDとデータサイズが付けられている。個々のヘッダを含む付加情報データは最小16バイト以上で4バイトの整数倍の単位で構成される。その詳細については、後述する値:付加情報データ構成を参照【0123】再生管理ファイルの最後のスロットとして、ヘッダ内のものと同一のBLKID−TL0と、MCodeと、REVISIONとが書かれる。 【0124】民生用オーディオ機器として、メモリカードが記録中に抜かれたり、電源が切れることがあり、復活した時にこれらの異常の発生を検出することが必要とされる。上述したように、REVISIONをブロックの先頭と末尾に書き込み、この値を書き換える度に+1インクリメントするようにしている。若し、ブロックの途中で異常終了が発生すると、先頭と末尾のREVISIONの値が一致せず、異常終了を検出することができる。REVISIONが2個存在するので、高い確率で異常終了を検出することができる。異常終了の検出時には、エラーメッセージの表示等の警告が発生する。 【0125】また、1ブロック(16KB)の先頭部分に固定値BLKID−TL0を挿入しているので、FATが壊れた場合の修復の目安に固定値を使用できる。すなわち、各ブロックの先頭の固定値を見れば、ファイルの種類を判別することが可能である。しかも、この固定値BLKID−TL0は、ブロックのヘッダおよびブロックの終端部分に二重に記述するので、その信頼性のチェックを行うことができる。なお、再生管理ファイルPBLISTの同一のものを二重に記録しても良い。 【0126】ATRAC3データファイルは、トラック情報管理ファイルと比較して、相当大きなデータ量であり、ATRAC3データファイルに関しては、ブロック番号BLOCK SERIALが付けられている。但し、ATRAC3データファイルは、通常複数のファイルがメモリカード上に存在するので、CONNUM0でコンテンツの区別を付けた上で、BLOCK SERIALを付けないと、重複が発生し、FATが壊れた場合のファイルの復旧が困難となる。換言すると単一のATRAC3データファイルは、複数のBLOCKで構成されると共に、離散して配置される可能性があるので、同一ATRAC3データファイルを構成するBLOCKを判別するためにCONNUM0を用いると共に、同一ATRAC3データファイル内の昇降順をブロック番号BLOCK SERIALで決定する。 【0127】同様に、FATの破壊までにはいたらないが、論理を間違ってファイルとして不都合のあるような場合に、書き込んだメーカーの機種が特定できるように、メーカーコード(MCode)がブロックの先頭と末尾に記録されている。 【0128】図20Cは、付加情報データの構成を示す。付加情報の先頭に下記のヘッダが書かれる。ヘッダ以降に可変長のデータが書かれる。 【0129】INF意味:FIELD ID機能:付加情報データの先頭を示す固定値値:0x69ID意味:付加情報キーコード機能:付加情報の分類を示す値:0から0xFFSIZE意味:個別の付加情報の大きさ機能:データサイズは自由であるが、必ず4バイトの整数倍でなければならない。また、最小16バイト以上のこと。データの終わりより余りがでる場合はヌル(0x00)で埋めておくこと値:16から14784(0x39C0) MCode意味:MAKER CODE機能:記録した機器の、メーカー、モデルを識別するコード値:上位10ビット(メーカーコード) 下位6ビット(機種コード) C+L意味:先頭から12バイト目からのデータ領域に書かれる文字の属性を表す機能:使用する文字コードと言語コードを各1バイトで表す値:前述のSNC+Lと同じDATA意味:個別の付加情報データ機能:可変長データで表す。実データの先頭は常に12バイト目より始まり、長さ(サイズ)は最小4バイト以上、常に4バイトの整数倍でなければならない。データの最後から余りがある場合はヌル(0x00)で埋めること値:内容により個別に定義される。 【0130】図21に、ATRAC3データファイルA3Dnnnnのデータ配列例を示す。図21には、データファイルの属性ヘッダ(1ブロック)と、音楽データファイル(1ブロック)とが示されている。図21では、この2ブロック(16×2=32Kバイト)の各スロットの先頭のバイト(0x0000〜0x7FF0)が示されている。図22に分離して示すように、属性ヘッダの先頭から32バイトがヘッダであり、256バイトが曲名領域NM1(256バイト)であり、512バイトが曲名領域NM2(512バイト)である。属性ヘッダのヘッダには、下記のデータが書かれる。 【0131】BLKID−HD0(4バイト) 意味:BLOCKID FILE ID機能:ATRAC3データファイルの先頭であることを識別するための値値:固定値=”HD=0”(例えば0x48442D30) 【0132】MCode(2バイト) 意味:MAKER CODE機能:記録した機器の、メーカー、モデルを識別するコード値:上位10ビット(メーカーコード) 下位6ビット(機種コード) 【0133】BLOCK SERIAL(4バイト) 意味:トラック毎に付けられた連続番号 機能:ブロックの先頭は0から始まり次のブロックは+1づつインクリメント編集されても値を変化させない値:0より始まり0xFFFFFFFFまで。 【0134】N1C+L(2バイト) 意味:トラック(曲名)データ(NM1)の属性を表す機能:NM1に使用される文字コードと言語コードを各1バイトで表す値:SN1C+Lと同一【0135】N2C+L(2バイト) 意味:トラック(曲名)データ(NM2)の属性を表す機能:NM2に使用される文字コードと言語コードを各1バイトで表す値:SN1C+Lと同一【0136】INFSIZE(2バイト) 意味:トラックに関する付加情報の全てを合計したサイズを表す機能:データサイズを16バイト単位の大きさで記述、無い場合は必ずオールゼロとすること値:サイズは0x0000から0x3C6(966) 【0137】T−PRT(2バイト) 意味:トータルパーツ数機能:トラックを構成するパーツ数を表す。通常は1値:1から0x285(645dec ) 【0138】T−SU(4バイト) 意味:トータルSU(サウンドユニット)数、SUは、パーツの最小単位であり、且つATRAC3でオーディオデータを圧縮する時の最小のデータ単位である。44.1kHzのサンプリング周波数で得られた1024サンプル分(1024×16ビット×2チャンネル)のオーディオデータを約1/10に圧縮した数百バイトのデータがSUである。1SUは、時間に換算して約23m秒になる。通常は、数千に及ぶSUによって1つのパーツが構成される。1クラスタが42個のSUで構成される場合、1クラスタで約1秒の音を表すことができる。1つのトラックを構成するパーツの数は、付加情報サイズに影響される。パーツ数は、1ブロックの中からヘッダや曲名、付加情報データ等を除いた数で決まるために、付加情報が全く無い状態が最大数(645個)のパーツを使用できる条件となる。 機能:1トラック中の実際の総SU数を表す。曲の演奏時間に相当する値:0x01から0x001FFFFF【0139】INX(2バイト)(Option) 意味:INDEX の相対場所機能:曲のさびの部分(特徴的な部分)の先頭を示すポインタ。曲の先頭からの位置をSUの個数を1/4した数で指定する。これは、通常のSUの4倍の長さの時間(約93m秒)に相当する値:0から0xFFFF(最大、約6084秒) 【0140】XT(2バイト)(Option) 意味:INDEX の再生時間機能:INX-nnnで指定された先頭から再生すべき時間のSUの個数を1/4した数で指定する。これは、通常のSUの4倍の長さの時間(約93m秒)に相当する値:0x0000:無設定 0x01から0xFFFE(最大6084秒) 0xFFFF:曲の終わりまで。 【0141】次に曲名領域NM1およびNM2について説明する。 【0142】NM1意味:曲名を表す文字列機能:1バイトの文字コードで表した可変長の曲名(最大で256) 名前データの終了は、必ず終端コード(0x00)を書き込むことサイズはこの終端コードから計算すること、データの無い場合は少なくとも先頭(0x0020)からヌル(0x00)を1バイト以上記録すること値:各種文字コード【0143】NM2意味:曲名を表す文字列機能:2バイトの文字コードで表した可変長の名前データ(最大で512)名前データの終了は、必ず終端コード(0x00)を書き込むことサイズはこの終端コードから計算すること、データの無い場合は少なくとも先頭(0x0120)からヌル(0x00)を2バイト以上記録すること値:各種文字コード。 【0144】属性ヘッダの固定位置(0x320)から始まる、80バイトのデータをトラック情報領域TRKINFと呼び、主としてセキュリティ関係、コピー制御関係の情報を一括して管理する。図23にTRKINFの部分を示す。TRKINF内のデータについて、配置順序に従って以下に説明する。 【0145】EKI(1バイト) 意味:前述の階層ツリー構成による有効化キーブロック(EKB)によって提供される暗号化コンテンツキー:E(KEKn,Kcon)を有するか否かを示す。 機能:bit7=1でキー有、bit7=0で無し。bit7=0の場合は、EKB_version、E(KEKn,Kcon)は非参照。 値:0から0xFFまで【0146】EKB_version(4バイト) 意味:前述の階層ツリー構成による有効化キーブロック(EKB)によって提供されるコンテンツキーの世代番号、および/または有効化キーブロック(EKB)のファイル名を示す。 機能:階層ツリー構成による有効化キーブロック(EKB)によって提供されるコンテンツキーを求めるための有効化キーブロック(EKB)を示す。 値:0から0xFFまで【0147】E(Kstm,Kcon)(8バイト) 意味:コンテンツ毎の暗号処理用のキーであるコンテンツキーをメモリカードのストレージキー(Kstm)で暗号化したデータ。 機能:コンテンツの暗号処理に使用される値:0から0xFFFFFFFFFFFFFFFFまで【0148】E(KEKn,Kcon)(8バイト) 意味:コンテンツ毎の暗号処理用のキーであるコンテンツキーを前述の階層ツリー構成による有効化キーブロック(EKB)によって提供されるキー暗号化キーKEKnによって暗号化したデータ。 機能:コンテンツの暗号処理に使用される値:0から0xFFFFFFFFFFFFFFFFまで【0149】C_MAC[n](8バイト) 意味:著作権情報改ざんチェック値機能:コンテンツ累積番号を含む複数のTRKINFの内容と隠しシーケンス番号から作成される値。隠しシーケンス番号とは、メモリカードの隠し領域に記録されているシーケンス番号のことである。著作権対応でないレコーダは、隠し領域を読むことができない。また、著作権対応の専用のレコーダ、またはメモリカードを読むことを可能とするアプリケーションを搭載したパーソナルコンピュータは、隠し領域をアクセスすることができる。 【0150】A(1バイト) 意味:パーツの属性機能:パーツ内の圧縮モード等の情報を示す値:図24を参照して以下に説明するただし、N=0,1のモノラルは、bit7が1でサブ信号を0、メイン信号(L+R)のみの特別なJointモードをモノラルとして規定する。bit2,1の情報は通常の再生機は無視しても構わない。 【0151】Aのビット0は、エンファシスのオン/オフの情報を形成し、ビット1は、再生SKIPか、通常再生かの情報を形成し、ビット2は、データ区分、例えばオーディオデータか、FAX等の他のデータかの情報を形成する。ビット3は、未定義である。ビット4、5、6を組み合わせることによって、図示のように、ATRAC3のモード情報が規定される。すなわち、Nは、この3ビットで表されるモードの値であり、モノ(N=0,1),LP(N=2),SP(N=4),EX(N=5),HQ(N=7)の5種類のモードについて、記録時間(64MBのメモリカードの場合)、データ転送レート、1ブロック内のSU数がそれぞれ示されている。1SUのバイト数は、(モノ:136バイト、LP:192バイト、SP:304バイト、EX:384バイト、HQ:512バイト)である。さらに、ビット7によって、ATRAC3のモード(0:Dual 1:Joint )が示される。 【0152】一例として、64MBのメモリカードを使用し、SPモードの場合について説明する。64MBのメモリカードには、3968ブロックがある。SPモードでは、1SUが304バイトであるので、1ブロックに53SUが存在する。1SUは、(1024/44100)秒に相当する。従って、1ブロックは、(1024/44100)×53×(3968−16)=4863秒=81分転送レートは、(44100/1024)×304×8=104737 bpsとなる。 【0153】LT(1バイト) 意味:再生制限フラグ(ビット7およびビット6)とセキュリティバージョン(ビット5−ビット0) 機能:このトラックに関して制限事項があることを表す 値:ビット7: 0=制限なし 1=制限有り ビット6: 0=期限内 1=期限切れ ビット5−ビット0:セキュリティバージョン0(0以外であれば再生禁止とする) 【0154】FNo(2バイト) 意味:ファイル番号 機能:最初に記録された時のトラック番号、且つこの値は、メモリカード内の隠し領域に記録されたMAC計算用の値の位置を特定する値:1から0x190(400) 【0155】MG(D)SERIAL−nnn(16バイト(upper:8,Lower:8)) 意味:記録機器のセキュリティブロック(セキュリティIC20)のシリアル番号 機能:記録機器ごとに全て異なる固有の値値:0から0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF【0156】CONNUM(4バイト) 意味:コンテンツ累積番号 機能:曲毎に累積されていく固有の値で記録機器のセキュリティブロックによって管理される。2の32乗、42億曲分用意されており、記録した曲の識別に使用する値:0から0xFFFFFFFF。 【0157】 YMDhms−S(4バイト)(Option) 意味:再生制限付きのトラックの再生開始日時機能:EMDで指定する再生開始を許可する日時値:上述した日時の表記と同じYMDhms−E(4バイト)(Option) 意味:再生制限付きのトラックの再生終了日時機能:EMDで指定する再生許可を終了する日時値:上述した日時の表記と同じ【0158】XCC(1バイト) 意味:以下に説明するCCの拡張部機能:コピー制御【0159】CT(1バイト)(Option) 意味:再生回数機能:再生許可された回数の内で、実際に再生できる回数。再生の度にデクリメントする値:0x00〜0xFF 未使用の時は、0x00であるLTのbit7が1でCTの値が00の場合は再生を禁止すること。 【0160】CC(1バイト) 意味:COPY CONTROL機能:コピー制御値:図25に示すように、ビット6および7によってコピー制御情報を表し、ビット4および5によって高速ディジタルコピーに関するコピー制御情報を表し、ビット2および3によってセキュリティブロック認証レベルを表す。ビット0および1は、未定義CCの例:(bit7,6)11:無制限のコピーを許可、01:コピー禁止、00:1回のコピーを許可(bit3,2)00:アナログないしディジタルインからの録音、MG認証レベルは0とするCDからのディジタル録音では(bit7,6)は00、(bit3,2)は00となる【0161】CN(1バイト)(Option) 意味:高速ディジタルコピーHSCMS(High speed Serial Copy ManagementSystem)におけるコピー許可回数機能:コピー1回か、コピーフリーかの区別を拡張し、回数で指定する。コピー第1世代の場合にのみ有効であり、コピーごとに減算する値:00:コピー禁止、01から0xFE:回数、0xFF:回数無制限。 【0162】上述したトラック情報領域TRKINFに続いて、0x0370から始まる24バイトのデータをパーツ管理用のパーツ情報領域PRTINFと呼び、1つのトラックを複数のパーツで構成する場合に、時間軸の順番にPRTINFを並べていく。図26にPRTINFの部分を示す。PRTINF内のデータについて、配置順序に従って以下に説明する。 【0163】PRTSIZE(4バイト) 意味:パーツサイズ機能:パーツの大きさを表す。クラスタ:2バイト(最上位)、開始SU:1バイト(上位)、終了SU:1バイト(最下位) 値:クラスタ:1から0x1F40(8000)、開始SU:0から0xA0(160)、終了SU:0から0xA0(160)(但し、SUの数え方は、0,1,2,と0から開始する) 【0164】PRTKEY(8バイト) 意味:パーツを暗号化するための値機能:初期値=0、編集時は編集の規則に従うこと値:0から0xFFFFFFFFFFFFFFFF【0165】CONNUM0(4バイト) 意味:最初に作られたコンテンツ累積番号キー機能:コンテンツをユニークにするためのIDの役割値:コンテンツ累積番号初期値キーと同じ値とされる。 【0166】図21に戻る。ATRAC3データファイルの属性ヘッダ中には、図21に示すように、付加情報INFが含まれる。INFは、トラックに関する付加情報データであり、ヘッダを伴った可変長の付加情報データ。複数の異なる付加情報が並べられることがある。それぞれにIDとデータサイズが付加されている。個々のヘッダを含む付加情報データは、最小16バイト以上で4バイトの整数倍の単位である。 【0167】上述した属性ヘッダに対して、ATRAC3データファイルの各ブロックのデータが続く。図27に示すように、ブロック毎にヘッダが付加される。各ブロックのデータについて以下に説明する。 【0168】BLKID−A3D(4バイト) 意味:BLOCKID FILE ID機能:ATRAC3データの先頭であることを識別するための値値:固定値=”A3D”(例えば0x41334420) 【0169】MCode(2バイト) 意味:MAKER CODE機能:記録した機器の、メーカー、モデルを識別するコード値:上位10ビット(メーカーコード) 下位6ビット(機種コード) 【0170】CONNUM0(4バイト) 意味:最初に作られたコンテンツ累積番号 機能:コンテンツをユニークにするためのIDの役割、編集されても値は変化させない値:コンテンツ累積番号初期値キーと同じ値とされる【0171】BLOCK SERIAL(4バイト) 意味:トラック毎に付けられた連続番号 機能:ブロックの先頭は0から始まり次のブロックは+1づつインクリメント編集されても値を変化させない値:0より始まり0xFFFFFFFFまで【0172】BLOCK−SEED(8バイト) 意味:1ブロックを暗号化するための1つの鍵機能:ブロックの先頭は、記録機器のセキュリティブロックで乱数を生成、続くブロックは、+1インクリメントされた値、この値が失われると、1ブロックに相当する約1秒間、音が出せないために、ヘッダとブロック末尾に同じものが二重に書かれる。編集されても値を変化させない値:初期は8バイトの乱数【0173】INITIALIZATION VECTOR(8バイト) 意味:ブロック毎にATRAC3データを暗号化、復号化する時に必要な初期値機能:ブロックの先頭は0から始まり、次のブロックは最後のSUの最後の暗号化された8バイトの値。デバイドされたブロックの途中からの場合は開始SUの直前の最後の8バイトを用いる。編集されても値を変化させない値:0から0xFFFFFFFFFFFFFFFF【0174】SU−nnn意味:サウンドユニットのデータ機能:1024サンプルから圧縮されたデータ、圧縮モードにより出力されるバイト数が異なる。編集されても値を変化させない(一例として、SPモードの時では、N=384バイト) 値:ATRAC3のデータ値。 【0175】図21では、N=384であるので、1ブロックに42SUが書かれる。また、1ブロックの先頭の2つのスロット(4バイト)がヘッダとされ、最後の1スロット(2バイト)にBLKID−A3D、MCode、CONNUM0、BLOCK SERIALが二重に書かれる。従って、1ブロックの余りの領域Mバイトは、(16,384−384×42−16×3=208(バイト)となる。この中に上述したように、8バイトのBLOCK SEEDが二重に記録される。 【0176】ここで、フラッシュメモリ34に記憶されているデータは、後述するように例えば、ATRAC3方式で圧縮されている。圧縮の単位がサウンドユニットSUである。従って、記憶装置300から再生装置200にデータを読み出す場合には、読み出しの最小単位は当該サウンドユニットSUとなる。オーディオデータの圧縮方式は、ATRAC3などのATRAC方式以外のCODEC方式でもよい。 【0177】ブロックシードデータBSは、各ブロック毎に例えば乱数を発生して生成されたデータである。 【0178】〔フラッシュメモリ管理モジュール35〕フラッシュメモリ管理モジュール35は、フラッシュメモリ34へのデータの書き込み、フラッシュメモリ34からのデータの読み出しなどの制御を行う。 【0179】図15に示す再生装置200の構成について説明する。再生装置200は、例えば、主制御モジュール41、通信インターフェイス42、制御モジュール43、編集モジュール44、圧縮/伸長モジュール45、スピーカ46、D/A変換器47およびA/D変換器48を有する。 【0180】〔主制御モジュール41〕主制御モジュール41は、再生装置200の処理を統括的に制御する。 【0181】〔制御モジュール43〕図15に示すように、制御モジュール43は、例えば、乱数発生ユニット60、記憶ユニット61、鍵生成/鍵演算ユニット62、相互認証ユニット63、暗号化/復号ユニット64および制御ユニット65を有する。制御モジュール43は、制御モジュール33と同様に、シングルチップの暗号処理専用の集積回路であり、多層構造を有し、内部のメモリセルはアルミニウム層などのダミー層に挟まれている。また、制御モジュール43は、動作電圧または動作周波数の幅が狭く、外部から不正にデータを読み出せないように耐タンパー性を有している。乱数発生ユニット60は、乱数発生指示を受けると、64ビット(8バイト)の乱数を発生する。記憶ユニット61は、認証処理に必要な種々のデータを記憶している。 【0182】鍵生成/鍵演算ユニット62は、例えば、ISO/IEC9797のMAC演算方式を用いた演算などの種々の演算を行って鍵データを生成する。このとき、"Block cipher Algorithm"としてFIPS PUB 46−2に規定されるDESが用いられる。 【0183】相互認証ユニット63は、例えば、コンピュータから入力したオーディオデータを記憶装置300に出力する動作を行うのに先立って、記憶装置300との間で相互認証処理を行う。また、相互認証ユニット63は、記憶装置300からオーディオデータを入力する動作を行うのに先立って、記憶装置300との間で相互認証処理を行う。また、相互認証ユニット63は、相互認証処理において、前述したMAC演算を行う。当該相互認証処理では、記憶ユニット61に記憶されているデータが用いられる。なお、相互認証ユニット63は、必要に応じて、例えば、パーソナルコンピュータ(PC)100あるいはネットワーク上のコンピュータとの間でオーディオデータの入出力を行う動作に先立って、パーソナルコンピュータ(PC)100あるいはネットワーク上のコンピュータとの間で相互認証処理を行う。 【0184】暗号化/復号ユニット64は、前述したように、FIPS PUB 81に規定されたECBモードおよびCBCモードを選択的に用いてブロック暗号化を行う。 【0185】暗号化/復号ユニット64は、FIPS81のモードのうち、ECBモードおよびCBCモードの復号を選択的に行う。ここで、暗号化/復号ユニット64は、CBCモードにおいて、例えば56ビットの鍵データkを用いて、暗号文を、64ビットからなる暗号化ブロックを単位として復号して平文を生成する。 【0186】制御ユニット65は、乱数発生ユニット60、記憶ユニット61、鍵生成/鍵演算ユニット62、相互認証ユニット63および暗号化/復号ユニット64の処理を統括的に制御する。 【0187】〔編集モジュール44〕編集モジュール44は、例えば、図16に示すように記憶装置300のフラッシュメモリ34内に記憶されたトラックデータファイルを、ユーザからの操作指示に基づいて編集して新たなトラックデータファイルを生成する。 【0188】〔圧縮/伸長モジュール45〕圧縮/伸長モジュール45は、例えば、記憶装置300から入力した暗号化されたオーディオデータを復号した後に再生する際に、ATRAC3方式で圧縮されているオーディオデータを伸長し、当該伸長したオーディオデータをD/A変換器47に出力する。また、例えば、CD、DVDあるいはPC1から入力したオーディオデータを、記憶装置300に記憶する際に、当該オーディオデータをATRAC3方式で圧縮する。 【0189】〔D/A変換器47〕D/A変換器47は、圧縮/伸長モジュール45から入力したデジタル形式のオーディオデータをアナログ形式のオーディオデータに変換してスピーカ46に出力する。 【0190】〔スピーカ46〕スピーカ46は、D/A変換器47から入力したオーディオデータに応じた音響を出力する。 【0191】〔A/D変換器48〕A/D変換器48は、例えば、CDプレーヤ7から入力したアナログ形式のオーディオデータをデジタル形式に変換して圧縮/伸長モジュール45に出力する。 【0192】〔メモリ49〕メモリ49は、例えば、E2PROM(ex.フラッシュメモリ)であり、前述したキー有効化ブロック(EKB)、あるいはEKBに基づいて生成されるデバイスキーブロック(DKB)等の鍵データ、デバイス識別子としてのデバイスID等が格納される。 【0193】[コンテンツデータの記憶装置に対する格納処理および再生処理]図15に示す再生装置200と、記憶装置300との間では、コンテンツデータの移動、すなわち、再生装置200から記憶装置300のフラッシュメモリ34に対するデータ記録処理が実行され、さらに、記憶装置300のフラッシュメモリ34から再生装置200に対するデータ再生処理が実行される。 【0194】このデータ記録および再生処理について、以下説明する。まず、再生装置200から記憶装置300のフラッシュメモリ34に対するデータ記録処理を図28のフローを用いて説明する。 【0195】再生装置および記憶装置は、データ移動に先立ち、まずステップS2701、S2702に示す相互認証処理を実行する。図29に、共通鍵暗号方式を用いた相互認証方法(ISO/IEC 9798-2)を示す。図29においては、共通鍵暗号方式としてDESを用いているが、共通鍵暗号方式であれば他の方式も可能である。図29において、まず、Bが64ビットの乱数Rbを生成し、Rbおよび自己のIDであるID(b)をAに送信する。これを受信したAは、新たに64ビットの乱数Raを生成し、Ra、Rb、ID(b)の順に、DESのCBCモードで鍵Kabを用いてデータを暗号化し、Bに返送する。なお、鍵Kabは、AおよびBに共通の秘密鍵としてそれぞれの記録素子内に格納する鍵である。DESのCBCモードを用いた鍵Kabによる暗号化処理は、例えばDESを用いた処理においては、初期値とRaとを排他的論理和し、DES暗号化部において、鍵Kabを用いて暗号化し、暗号文E1を生成し、続けて暗号文E1とRbとを排他的論理和し、DES暗号化部において、鍵Kabを用いて暗号化し、暗号文E2を生成し、さらに、暗号文E2とID(b)とを排他的論理和し、DES暗号化部において、鍵Kabを用いて暗号化して生成した暗号文E3とによって送信データ(Token-AB)を生成する。 【0196】これを受信したBは、受信データを、やはり共通の秘密鍵としてそれぞれの記録素子内に格納する鍵Kab(認証キー)で復号化する。受信データの復号化方法は、まず、暗号文E1を認証キーKabで復号化し、乱数Raを得る。次に、暗号文E2を認証キーKabで復号化し、その結果とE1を排他的論理和し、Rbを得る。最後に、暗号文E3を認証キーKabで復号化し、その結果とE2を排他的論理和し、ID(b)を得る。こうして得られたRa、Rb、ID(b)のうち、RbおよびID(b)が、Bが送信したものと一致するか検証する。この検証に通った場合、BはAを正当なものとして認証する。 【0197】次にBは、認証後に使用するセッションキー(Kses)を生成する(生成方法は、乱数を用いる)。そして、Rb、Ra、Ksesの順に、DESのCBCモードで認証キーKabを用いて暗号化し、Aに返送する。 【0198】これを受信したAは、受信データを認証キーKabで復号化する。受信データの復号化方法は、Bの復号化処理と同様であるので、ここでは詳細を省略する。こうして得られたRb、Ra、Ksesの内、RbおよびRaが、Aが送信したものと一致するか検証する。この検証に通った場合、AはBを正当なものとして認証する。互いに相手を認証した後には、セッションキーKsesは、認証後の秘密通信のための共通鍵として利用される。 【0199】なお、受信データの検証の際に、不正、不一致が見つかった場合には、相互認証が失敗したものとして処理を終了(S2703でNo)する。 【0200】相互認証が成立(S2703でYes)した場合は、ステップS2704において、再生装置がコンテンツキーKconの生成処理を実行する。この処理は、図15の乱数生成ユニット60で生成した乱数を用いて鍵生成/鍵演算ユニット62において実行される。 【0201】次に、ステップS2705において、(1)コンテンツキーKconを有効化キーブロック(EKB)から取得される暗号化キーKEKを用いて暗号化処理して、E(KEK,Kcon)を生成するとともに、(2)コンテンツキーKconを認証処理において生成したセッションキー(Kses)で暗号化処理を実行して、E(Kses,Kcon)を生成して、記憶装置(メモリカード)に送信する。 【0202】ステップS2706では、記憶装置が再生装置から受信したE(Kses,Kcon)をセッションキーで復号してコンテンツキーKconを取得し、さらに、Kconを記憶装置に予め格納されているストレージキーKstmによって暗号化してE(Kstm,Kcon)を生成し、これを再生装置に送信する。 【0203】次に、再生装置は、ステップS2707において、ステップS2705で生成したE(KEK,Kcon)、およびステップS2706で記憶装置から受信したE(Kstm,Kcon)を用いて、データファイル(図21参照)を構成するトラック情報領域TRKINFデータを生成し、データファイルのフォーマット処理の後、これを記憶装置(メモリカード)に送信する。 【0204】ステップS2708において、記憶装置(メモリカード)は、再生装置から受信したデータファイルをフラッシュメモリに格納する。 【0205】このような処理により、データファイルのトラック情報領域TRKINFデータには、先に説明した図21、図23に示すように、コンテンツキーKconを有効化キーブロック(EKB)から取得される暗号化キーKEKを用いて暗号化処理したE(KEK,Kcon)と、コンテンツキーKconを記憶装置に予め格納されているストレージキーKstmによって暗号化したE(Kstm,Kcon)の2つの暗号化コンテンツキーが格納されることになる。 【0206】なお、音楽データ、画像データ等の暗号化処理は、コンテンツキーKconをそのままコンテンツの暗号化鍵として適用して実行するか、あるいはコンテンツを構成するパーツ、またはブロック等を単位として、コンテンツキーと他のキー生成データに基づいて各パーツ単位、またはブロック単位の暗号化鍵を個別に生成して各パーツ単位、またはブロック単位の暗号化処理を行なう構成とすることが可能である。 【0207】このようなデータファイルを用いた再生処理においては、再生装置は、E(KEK,Kcon)と、E(Kstm,Kcon)のいずれかを選択的に適用してコンテンツキーKconを取得可能となる。 【0208】次に、再生装置200が記憶装置300のフラッシュメモリ34に格納されたデータの読み出し処理、すなわち再生処理を実行する場合の処理を図30のフローを用いて説明する。 【0209】再生装置および記憶装置は、データ移動に先立ち、まずステップS2901、S2902に示す相互認証処理を実行する。この処理は、先に説明した図29の処理と同様である。相互認証が失敗した場合(S2903でNo)は、処理を終了する。 【0210】相互認証が成立(S2903でYes)した場合は、ステップS2904において、記憶装置が再生装置に対してデータファイルを送信する。データファイルを受信した再生装置は、データファイル中のトラック情報領域TRKINFデータを検査し、コンテンツキー(Kcon)の格納状況を判別する。この判別処理は、キー有効化ブロック(EKB)によって取得される暗号化キーKEKによって暗号化されたコンテンツキー、すなわちE(KEK.Kcon)が格納されているか否かを判別する処理である。E(KEK.Kcon)の有無は、先の図21,23で説明したデータファイル中のトラック情報領域TRKINFデータの[EKI]のデータにより判別可能である。 【0211】E(KEK.Kcon)が格納されている場合(ステップS2906でYes)は、ステップS2907に進み、キー有効化ブロック(EKB)の処理により、暗号化キーKEKを取得して、取得した暗号化キーKEKにより、E(KEK.Kcon)を復号して、コンテンツキーKconを取得する。 【0212】E(KEK.Kcon)が格納されていない場合(ステップS2906でNo)は、ステップS2908において、記憶装置の制御モジュール33において、記憶装置に予め格納されているストレージキーKstmによって暗号化したE(Kstm,Kcon)をストレージキーKstmによって復号して、さらに、相互認証処理において再生装置および記憶装置で共有したセッションキーKsesで暗号化したデータE(Kses,Kcon)を生成して、再生装置に送信する。 【0213】再生装置は、ステップS2909において、記憶装置から受信したE(Kses,Kcon)をセッションキーKsesで復号してコンテンツキーKconを取得する。 【0214】ステップS2910では、ステップS2907、またはステップS2909のいずれかにおいて取得したコンテンツキーKconにより暗号化コンテンツの復号を行なう。 【0215】このように、暗号化コンテンツの再生処理において、再生装置は、E(KEK,Kcon)を有効化キーブロック(EKB)から取得される暗号化キーKEKを用いて復号するか、または、記憶装置に予め格納されているストレージキーKstmによって暗号化したE(Kstm,Kcon)に基づく処理を実行するか、いずれかの処理を実行することによりコンテンツキーKconを取得することができる。 【0216】なお、音楽データ、画像データ等の復号処理は、コンテンツキーKconをそのままコンテンツの復号鍵として適用して実行するか、あるいはコンテンツを構成するパーツ、またはブロック等を単位として、コンテンツキーと他のキー生成データに基づいて各パーツ単位、またはブロック単位の復号鍵を個別に生成して各パーツ単位、またはブロック単位の復号処理を行なう構成とすることが可能である。 【0217】[KEKを格納したEKBのフォーマット]先に図6を用いて有効化キーブロック(EKB)の概略的なフォーマットについて説明したが、さらに、キー暗号化キー(KEK)を有効化キーブロック(EKB)に格納して保持する場合の具体的なデータ構成例について説明する。 【0218】図31にキー暗号化キー(KEK)を有効化キーブロック(EKB)に格納したデータであるEKBである配信鍵許可情報ファイルの構成例を示す。デバイス(再生装置)は、このファイルから必要に応じてキー暗号化キー(KEK)を取り出して、KEKによりE(KEK,Kcon)を復号してコンテンツキー:Kconを取得してコンテンツの復号を実行する。各データについて説明する。 【0219】BLKID−EKB(4バイト) 意味:BLOCKID FILE ID機能:配信鍵情報ファイルの先頭であることを識別するための値値:固定値=”EKB”(例えば0x454B4220) 【0220】MCode(2バイト) 意味:MAKER CODE機能:記録した機器の、メーカー、モデルを識別するコード値:上位10ビット(メーカーコード) 下位6ビット(機種コード) 【0221】LKF意味:LINK FILE INFORMATION機能:このEKBによって取得されるKEKが適用可能なコンテンツデータであるリンクファイルを識別する。 値:0〜0xFFbit7:再生管理ファイル(PBLIST)に使用:1、未使用:0bit6:改竄チェック値(ICV)に使用:1、未使用:0bit5〜0:リザーブ【0222】LINK count意味:LINK COUNT機能:リンクしているファイル(例えばATRACK3ファイル)数値:0〜0xFFFFFFFF【0223】Version意味:VERSION機能:配信鍵許可情報ファイルのバージョンを示す。 値:0〜0xFFFFFFFF【0224】EA意味:Encryption Algorithm機能:配信鍵許可情報ファイルのトレース処理アルゴリズムを示す。 値:0〜0xFF00h:3DES:トリプルDESモードによる処理01h:DES :シングルDESモードによる処理なお、トリプルDESモードによる処理は、2種類以上の暗号処理キーを用いる暗号処理であり、シングルDESモードは1つのキーによる処理である。 【0225】KEK1意味:Key Encrypting Key機能:キー有効化ブロック(EKB)中のルートキー(最上位)キーで暗号化されたコンテンツキー暗号キー値:0〜0xFFFFFFFFFFFFFFFF【0226】KEK2意味:Key Encrypting Key機能:キー有効化ブロック(EKB)中のルートキー(最上位)キーで暗号化されたコンテンツキー暗号キー値:0〜0xFFFFFFFFFFFFFFFF【0227】E(Version) 意味:Encrypted Version機能:キー有効化ブロック(EKB)中のルートキー(最上位)キーで暗号化されたバージョン番号。復号時の下4バイトはリザーブ値:0〜0xFFFFFFFFFFFFFFFF【0228】Size of tag part意味:Size of tag part機能:配信鍵許可情報ファイルを構成するデータのタグ部分のサイズ(Byte) 値:0〜0xFFFFFFFF【0229】Size of Key part意味:Size of key part機能:配信鍵許可情報ファイルを構成するデータのキー部分のサイズ(Byte) 値:0〜0xFFFFFFFF【0230】Size of Sign part意味:Size of sign part機能:配信鍵許可情報ファイルを構成するデータのサイン部分のサイズ(Byte) 値:0〜0xFFFFFFFF【0231】Tag part意味:Tag part機能:配信鍵許可情報ファイルを構成するデータのタグ部分のデータ値:すべての値8バイトに満たない場合は0で埋めて8バイトにする。 【0232】Key part意味:Key part機能:配信鍵許可情報ファイルを構成するデータのキー部分のデータ値:すべての値【0233】Signature part意味:Signature part機能:配信鍵許可情報ファイルを構成するデータの署名(Signature)部分のデータ値:すべての値【0234】上述の説明および図31によって示されるように、デバイスに対して提供される配信鍵許可情報ファイルには、その配信鍵許可情報ファイルから取得されるKEKが適用可能なコンテンツデータであるリンクファイルを識別するための識別データ[LKF]が格納され、さらに、リンクしているファイル(例えばATRACK3ファイル)数としてのデータ[Linc Count]が格納される。再生装置は、[LKF]、[Link Count]を参照することにより、その配信鍵許可情報ファイルから取得されるKEKを適用すべきデータが存在するか否かおよびその数を知ることが可能となる。 【0235】[リンク情報を用いたデータ復号、再生処理]上述した配信鍵許可情報ファイルに含まれるリンクファイルを識別するための識別データ[LKF]、リンクしているファイル(例えばATRACK3ファイル)数としてのデータ[Linc Count]を用いて、効率的にデータの復号、再生を実行する処理態様について、以下説明する。 【0236】図32に記憶装置のデータ格納領域、例えば図15に示す記憶装置300のフラッシュメモリ34に格納されたデータファイル構成例を示す。ここでは、音楽データ(HIFI)のディレクトリ構成のみを例として示しているが、さらに、画像ファイル等のディレクトリが存在してもよい。 【0237】図32に示す音楽データのディレクトリには、再生管理ファイル(PBLIST)、暗号化コンテンツとして複数のATRACK3データファイル(A3D)含まれる。さらに、記憶装置には、複数の有効化キーブロックファイル(EKBn)が格納される。ATRACK3データファイル(A3D)の復号処理に適用するコンテンツキーを取得するための有効化キーブロックファイル(EKBn)は、ATRACK3データファイル(A3D)に含まれるポインタによって判別される。図32に示すように、1つの有効化キーブロックファイル(EKB1)3101は複数(3)のATRACK3データファイル(A3D)の復号処理に適用される。 【0238】この場合、有効化キーブロックファイル(EKB1)3101に対応する配信鍵許可情報ファイルの[Linc Count]には3つのコンテンツに適用されることを示すデータが格納されることになる。 【0239】図32のような複数のコンテンツファイル、複数の有効化キーブロックファイルを格納した記憶装置であるメモリカードからコンテンツを復号して、再生する場合の処理フローを図33に示す。 【0240】図33の処理は、例えば記憶装置としてのメモリカードを再生装置にセットした際、あるいはメモリカードを装着した再生装置の電源をONした際に再生装置が実行する処理である。 【0241】まず、ステップS3201において、再生装置は、各々のEKBファイルのトラック情報を読み取り、[Linc Count]をチェックする。さらに、[Linc Count]のカウント数が多いものから順に、予め定められた個数[n]のEKBファイルを選択する。個数[n]は、再生装置の所定メモリ領域、すなわちキー暗号化キー:KEKを格納保持する領域に格納可能な個数に相当する個数として設定される。 【0242】次に、ステップS3202において、選択したEKBの処理により、複数[n]のキー暗号化キー:KEKを取得し、これらを再生装置の鍵格納領域として設定されたRAMの所定領域に格納する。 【0243】次に、再生装置は、ステップS3203において、復号、再生するコンテンツを選択する。さらに、ステップS3204において、その選択コンテンツの復号に適用するKEKがRAMに格納されているか否かを判定し、Yesの場合は、ステップS3205に進み、その対応KEKに基づいて、E(KEK,Kcon)を復号してコンテンツキーを取得して、ステップS3209で再生、すなわち、取得したコンテンツキーによるデータの復号、再生処理を実行する。 【0244】ステップS3204において、選択コンテンツの復号に適用するKEKがRAMに格納されていない場合は、ステップS3206において、ストレージキーで暗号化されたコンテンツキー、すなわち、E(Kstm,Kcon)の有無を判定し、ある場合は、ステップS3207において、E(Kstm,Kcon)の復号処理によりコンテンツキーを取得して、ステップS3209で再生、すなわち、取得したコンテンツキーによるデータの復号、再生処理を実行する。 【0245】また、ステップS3206において、E(Kstm,Kcon)がないと判定されると、その復号対象コンテンツに適用すべきEKBを記憶装置から取得して、取得したEKBの復号処理によりKEKを取得し、取得したKEKによるE(KEK,Kcon)の復号処理を実行してコンテンツキーを取得して、ステップS3209で再生、すなわち、取得したコンテンツキーによるデータの復号、再生処理を実行する。 【0246】このように、再生装置は、予め記憶装置に格納した複数のキー有効化ブロック(EKB)の[Linc Count]をチェックし、[Linc Count]のカウント数が多いEKBの復号を実行して、キー暗号化キー:KEKを格納しておく構成とすることにより、コンテンツ再生処理の際に、高い確率でRAMに格納したKEKを適用可能となり、効率的なコンテンツ再生が実行できる。 【0247】[キー有効化ブロック(EKB)による認証キー配信]上述の有効化キーブロック(EKB)を使用したキーの配信において、認証処理を実行する際に使用する認証キーIKnを配信することにより、安全な秘密鍵として共有する認証キーを提供し、共通鍵方式に従った認証処理を実行する構成について説明する。 【0248】共通鍵暗号方式を用いた相互認証方法(ISO/IEC 9798-2)は、先に図29を用いて説明した処理であり、データ送受信が実行される前の処理として、双方の正当性を確認するための処理として実行される。認証処理においては、データの送受信を行なう、例えば再生装置と記憶装置は認証キーKabを共有する。この共通鍵Kabを上述の有効化キーブロック(EKB)を使用して再生装置に配信する。 【0249】図34および図35に複数のデバイスに共通の認証キーIKnを有効化キーブロック(EKB)によって配信する構成例を示す。図34はデバイス0,1,2,3に対して復号可能な認証キーIKnを配信する例、図35はデバイス0,1,2,3中のデバイス3をリボーク(排除)してデバイス0,1,2に対してのみ復号可能な認証キーを配信する例を示す。 【0250】図34の例では、更新ノードキーK(t)00によって、認証キーIKnを暗号化したデータ(b)とともに、デバイス0,1,2,3においてそれぞれの有するノードキー、リーフキーを用いて更新されたノードキーK(t)00を復号可能な有効化キーブロック(EKB)を生成して配信する。それぞれのデバイスは、図34の右側に示すようにまず、EKBを処理(復号)することにより、更新されたノードキーK(t)00を取得し、次に、取得したノードキーK(t)00を用いて暗号化された認証キー:Enc(K(t)00,IKn)を復号して認証キーIKnを得ることが可能となる。 【0251】その他のデバイス4,5,6,7…は同一の有効化キーブロック(EKB)を受信しても自身の保有するノードキー、リーフキーでは、EKBを処理して更新されたノードキーK(t)00を取得することができないので、安全に正当なデバイスに対してのみ認証キーを送付することができる。 【0252】一方、図35の例は、デバイス3が、例えば鍵の漏洩によりリボーク(排除)されているとして、他のグループのメンバ、すなわち、デバイス0,1,2,に対してのみ復号可能な有効化キーブロック(EKB)を生成して配信した例である。図35に示す(a)有効化キーブロック(EKB)と、(b)認証キー(IKn)をノードキー(K(t)00)で暗号化したデータを配信する。 【0253】図35の右側には、復号手順を示してある。デバイス0,1,2は、まず、受領した有効化キーブロックから自身の保有するリーフキーまたはノードキーを用いた復号処理により、更新ノードキー(K(t)00)を取得する。次に、K(t)00による復号により認証キーIKnを取得する。 【0254】他のグループのデバイス、例えばデバイス4,5,6…は、この同様のデータ(EKB)を受信したとしても、自身の保有するリーフキー、ノードキーを用いて更新ノードキー(K(t)00)を取得することができない。同様にリボークされたデバイス3においても、自身の保有するリーフキー、ノードキーでは、更新ノードキー(K(t)00)を取得することができず、正当な権利を有するデバイスのみが認証キーを復号して利用することが可能となる。 【0255】このように、EKBを利用した認証キーの配送を用いれば、データ量を少なくして、かつ安全に正当権利者のみが復号可能とした認証キーを配信することが可能となる。また、有効化キーブロック(EKB)によって暗号化され提供されるEKB配信認証鍵は、世代(バージョン)管理がなされ、世代毎の更新処理が実行され、任意のタイミングでのデバイスのリボーク(排除)が可能である。 【0256】上述したEKBによる認証キーの提供処理により、リボークされたデバイス(再生装置)では、記憶装置(例えばメモリカード)との認証処理が成立せず、データの不正な復号が不可能となる。 【0257】さらに、EKBを利用した認証キーの配送を用いれば、メモリカード以外の記憶媒体、例えば再生装置に内蔵したハードディスク等の記憶媒体に対するデータ格納、再生処理に対する制御も可能となる。 【0258】先の図28〜30を用いて説明したように、記憶装置を利用したコンテンツの記録、再生処理においては、相互認証処理が実行され、相互認証処理の成立を条件として、データの記録および再生が可能となる。この認証処理プログラムは、メモリカードのような相互認証処理が可能な記憶装置との間での処理においては有効に作用するが、例えば、再生装置がハードディスク、CD−R等、暗号処理機能を持たない、すなわち相互認証を実行不可能な記憶媒体に対してデータ格納、データ再生時には意味をなさないことになる。シカシ、本発明のシステムでは、このような認証不可能な機器を利用したデータ格納、あるいはデータ再生処理においても認証処理プログラムを実行させる構成とする。ハードディスク、CD−R等は相互認証が不可能であるので、仮想のメモリカード(メモリスティック)を再生装置に構成し、仮想メモリカードと再生装置間において認証処理を実行させて、認証成立を条件として、認証機能を持たない記憶媒体に対するデータ格納処理、あるいは記憶媒体からのデータ再生を可能とする。 【0259】これらの仮想メモリカードを使用したデータ記録、再生処理フローを図36に示す。まず、再生装置は、再生装置内の仮想メモリカードとの間で相互認証処理を実行する。ステップS3502において、認証成立したか否かを判定し、成立したことを条件としてステップS3503に進み、認証機能を持たない記憶媒体、例えばハードディスク、CD−R、DVD等を用いたデータ記録、再生処理を実行する。 【0260】ステップS3502において、認証が成立しなかったと判定された場合は、ステップS3503の認証機能を持たない記憶媒体、例えばハードディスク、CD−R、DVD等を用いたデータ記録、再生処理が実行されない。 【0261】ここで、仮想メモリカードには、予め、先の図16で説明した認証鍵データを格納した構成とし、再生装置が使用する認証キーを前述したように、キー有効化ブロックで提供する構成とする。 【0262】このように、再生装置の認証キーをキー有効化ブロック(EKB)で提供することにより、正当なライセンスを持つデバイス(再生装置)に対してのみ、仮想メモリカードとの相互認証可能な認証キーを配信することが可能となる。従って、不正な機器、すなわちリボークされた再生装置には、有効な認証キーが配信しない処理が可能となる。有効な認証キーが提供されない再生装置は、相互認証が不成立となり、認証機能を持つメモリカードのみならず、認証機能を持たない記憶媒体、例えばハードディスク、CD−R、DVD等を用いたデータ記録、再生処理が実行されず、不正な機器によるデータ記録、再生を排除することが可能となる。 【0263】すなわち、認証鍵を提供する有効化キーブロック(EKB)をキーツリーのリーフを構成するデータ処理装置中、正当なライセンスを持つデータ処理装置においてのみ復号可能で、正当ライセンスを持たない不正なデータ処理装置においては復号不可能な有効化キーブロック(EKB)として提供することにより、不正なデータ処理装置における仮想メモリデバイスとの認証成立を防止して、不正データ処理装置におけるコンテンツ利用を排除可能とした構成を有するライセンスシステムが実現される。 【0264】[チェック値(ICV:Integrity Check Value)格納構成]次に、コンテンツの改竄を防止するためにコンテンツのインテグリティ・チェック値(ICV)を生成して、コンテンツに対応付けて、ICVの計算により、コンテンツ改竄の有無を判定する処理構成について説明する。 【0265】コンテンツのインテグリティ・チェック値(ICV)は、例えばコンテンツに対するハッシュ関数を用いて計算され、ICV=hash(Kicv,C1,C2,…)によって計算される。KicvはICV生成キーである。C1,C2はコンテンツの情報であり、コンテンツの重要情報のメッセージ認証符号(MAC:Message authentication Code)が使用される。前述したように、[MAC]は、図21で説明したATRAC3データファイルにも含まれる。これらを使用してインテグリティ・チェック値(ICV)の計算がなされる。 【0266】DES暗号処理構成を用いたMAC値生成例を図37に示す。図37の構成に示すように対象となるメッセージを8バイト単位に分割し、(以下、分割されたメッセージをM1、M2、・・・、MNとする)、まず、初期値(Initial Value(以下、IVとする))とM1を排他的論理和する(その結果をI1とする)。次に、I1をDES暗号化部に入れ、鍵(以下、K1とする)を用いて暗号化する(出力をE1とする)。続けて、E1およびM2を排他的論理和し、その出力I2をDES暗号化部へ入れ、鍵K1を用いて暗号化する(出力E2)。以下、これを繰り返し、全てのメッセージに対して暗号化処理を施す。最後に出てきたENがメッセージ認証符号(MAC(Message Authentication Code))となる。なお、メッセージとしては、検証対象となるコンテンツおよびヘッダ情報等のコンテンツ関連データを構成する部分データが使用可能である。 【0267】このようなコンテンツのMAC値とICV生成キーKicvにハッシュ関数を適用して用いてコンテンツのインテグリティ・チェック値(ICV)が生成される。改竄のないことが保証された例えばコンテンツ生成時に生成したICVと、新たにコンテンツに基づいて生成したICVとを比較して同一のICVが得られればコンテンツに改竄のないことが保証され、ICVが異なれば、改竄があったと判定される。 【0268】上述のようなインテグリティ・チェック値(ICV)は、コンテンツ個々に対して生成される複数のコンテンツMAC値により、1つのインテグリティ・チェック値(ICV)を生成することが可能である。複数のMACによるICVの計算は、例えば、ICV=MAC(Kicv,C_MAC[0]||C_MAC[1]||C_MAC[2]||…)によって生成する。 【0269】コンテンツ生成時に生成したICVを格納しておき、チェック処理時に生成ICVと格納ICVの比較処理を行なう。両ICVが一致すれば改竄無しと判定し、ICVが不一致の場合は、改竄が有りと判定され、データ再生等の処理制限がなされる。 【0270】メモリカード等の記憶装置には、音楽コンテンツのみならず、画像データ、ゲームプログラムデータ等、カテゴリの異なるが格納される。これら各カテゴリのコンテンツも改竄の防止を図るため、各カテゴリ毎にインテグリティ・チェック値(ICV)を生成して格納することがコンテンツ改竄チェックのためには有効な手段となる。 【0271】しかしながら、メモリに格納するコンテンツ数が増大すると、検証用のチェック値を正規のコンテンツデータに基づいて生成し、格納し管理することが困難となる。特に、昨今フラッシュメモリを使用したメモリカード等の容量の大きい媒体においては、音楽データ、画像データ、プログラムデータ等、様々なカテゴリのコンテンツデータがメモリに格納されることとなる。このような環境においては、チェック値の生成処理、格納処理、改竄チェック処理の管理は困難となる。格納データ全体に対するチェック値を生成すると、チェック対象となったデータ全体に対するチェック値生成処理を実行することが必要となる。例えばDES−CBCモードにおいて生成されるメッセージ認証符号(MAC)により、チェック値ICVを求める手法を行なう場合、データ全体に対するDES−CBCの処理を実行することが必要となる。この計算量は、データ長が長くなるにつれ増大することとなり、処理効率の点で問題がある。 【0272】記憶装置として使用可能なメモリカードには、多くのカテゴリの異なるコンテンツが格納される。これらのカテゴリの異なるコンテンツの改竄チェック管理をカテゴリ毎に独立したインテグリティ・チェック値(ICV)を生成して実行する構成とすることにより、ICVのチェック時、あるいはICVの変更時、例えばデータ変更時の新たなインテグリティ・チェック値(ICV)の生成処理が、1つのカテゴリ内のデータを対象として実行可能となり、他のカテゴリに影響を及ぼすことがない。このようにカテゴリ毎の複数のインテグリティ・チェック値(ICV)を格納する構成について説明する。 【0273】図38に記憶装置に格納されるデータ構成と、それぞれのインテグリティ・チェック値(ICV)の格納構成例を示す。メモリカード等の記憶部(フラッシュメモリ)には、図38に示されるように音楽データのディレクトリに、再生管理ファイル(PBLIST)、暗号化コンテンツとして複数のATRACK3データファイル(A3D)が含まれ、さらに、メモリには、複数のカテゴリに属するコンテンツデータ(#1〜#n)が格納される。複数のカテゴリとは、例えば、音楽データ、画像データ、ゲームプログラム等である。さらに、同様の画像データであっても、それぞれのデータ提供元に応じて別のディレクトリとして独立のカテゴリとして管理してもよい。 【0274】また、前述の有効化キーブロック(EKB)の管理単位(エンティテイ)を1カテゴリとして設定してもよい。すなわち、ある有効化キーブロック(EKB)によって取得されるキー暗号キー:KEKによって復号されるコンテンツキーKconを適用可能なコンテンツ集合を1つのカテゴリとして設定してもよい。 【0275】再生管理ファイル(PBLIST)、暗号化コンテンツとして複数のATRACK3データファイル(A3D)の各々には、改竄チェックのためのメッセージ認証符号(MAC(Message Authentication Code))が含まれ、これらのMAC値に基づいてインテグリティ・チェック値(ICV(con))が生成される。複数のコンテンツのMAC値は、フラッシュメモリのシーケンスページにMACリストとして格納、管理され、これらのMACリストに基づいてICV生成キーKicvを適用して得られるインテグリティ・チェック値(ICV(con))が格納保存される。 【0276】コンテンツMAC値を格納するシーケンスページフォーマットを図39に示す。シーケンスページ領域は、一般コンテンツデータの書き込み禁止領域として設定された領域である。図39のシーケンスページ構成について説明する。 【0277】E(kSTR,kCON)は、メモリカードのストレージキーで暗号化したコンテンツキーである。ID(upper),(lower)は、メモリカードの識別子(ID)の格納領域である。C_MAC[0]は、再生管理ファイル(PBLIST)の構成データに基づいて生成されたMAC値である。C_MAC[1]は、コンテンツ、例えばATRACK3データファイル#1のデータに基づいて生成されたMAC値、以下、コンテンツ毎にMAC値が格納される。これらのMAC値に基づいてインテグリティ・チェック値(ICV(con))が生成され、生成されたICV(con)がシリアルプロトコルを通してメモリに書き込まれる。なお、異なる鍵システムに対応するため、それぞれの鍵システムから生成されるICVをそれぞれ違うエリアに格納する構成とすることが好ましい。 【0278】また、カテゴリ毎に改竄チェックのために生成される各カテゴリ毎のインテグリティ・チェック値(ICV)は、メモリカードの記憶部(フラッシュメモリ)のプールページに記録される。プールページもまた、一般データの書き込みの禁止された領域として設定されている。 【0279】各カテゴリ毎のインテグリティ・チェック値(ICV)を格納するプールページフォーマットを図40に示す。#0_revisionは、カテゴリ#0の更新データが設定され、更新された場合はインクリメントされる。#0_versionは、カテゴリ#0のバージョン、#0_E(KEK,Kicv)は、カテゴリ#0のキー暗号化キー(KEK)で暗号化したICV生成キー(Kicv)であり、ICV0は、カテゴリ#0のインテグリティ・チェック値(ICV)値である。以下、同様のデータが各カテゴリ毎にEKB#15まで格納可能となっている。 【0280】ICVのチェックは、パワーオン時、またはメモリカード等の記憶装置が再生装置にセットされたことを条件として開始される。図41にICVチェックを含む処理フローを示す。 【0281】まず、再生装置がパワーオン、または新たなメモリカード等が装着されたことを検知すると、ステップS4001において、再生装置と記憶装置間の相互認証が可能か否かが判定され、可能である場合は、ステップS4002において記憶装置と再生装置間での相互認証処理(図29参照)が実行される。また、ステップS4001において、再生装置と記憶装置間の相互認証が可能でないと判定された場合は、ステップS4003において、前述した仮想メモリカードと再生装置間の相互認証処理が実行される。 【0282】ステップS4004で相互認証が成立したか否かが判定され、不成立の場合は、以下の処理は実行されないで終了する。相互認証が成立の場合は、ステップS4005においてICVの計算が実行される。ICVは、前述したように各ファイルのMAC値に基づいて算出される。 【0283】次にステップS4006において、計算によって算出された生成ICVと、予め格納してある格納ICVとの比較が実行される。両ICVが一致した場合は、データ改竄がないと判定され、ステップS4007において、データ再生等の様々な処理が実行される。一方、ICVが不一致であった場合は、データ改竄があると判定され、データの再生等を行なわず処理を終了する。このような処理を実行することによりデータ改竄の防止、改竄されたデータの再生が排除される。 【0284】このように、カテゴリの異なるコンテンツについて、カテゴリ毎に独立したインテグリティ・チェック値(ICV)を生成して管理する構成とすることにより、ICVのチェック時、あるいはICVの変更時、例えばデータ変更時の新たなインテグリティ・チェック値(ICV)の生成処理が、1つのカテゴリ内のデータを対象として実行可能となり、他のカテゴリに影響を及ぼすことがない。 【0285】[拡張MAC構成]前述の再生管理ファイルまたは、ATRACK3データファイルのデータ内容の欄で説明したデータ改竄チェック用のMAC(Message Authentication Code)の生成、および各ファイルに対する格納処理の変形例として、拡張MACの生成、格納処理について、以下説明する。 【0286】図42に拡張MACの生成、格納処理例を示す。図42には、先の図21〜23で示したATRACK3データファイルの一部を示している。データ改竄チェック用のMAC(Message Authentication Code)は、例えばATRACK3データファイル中のいくつかのデータ項目のデータに基づいて、先の図37で説明した処理によって生成される値であり、予めファイルに格納されたMACと、チェック時の生成MACとの比較により、データ改竄の有無を判定する。 【0287】例えば、図42に示すATRACK3データファイルに格納されるMACは、そのMACによる改竄チェック対象データが、「INF−seq#」からの複数のデータ項目に設定され、予めそれらのMAC対象データ項目に基づいて生成されたMACがファイルに格納されることになる。すなわち、MAC(INF−seq#||A||LT||…)である。()内のデータがMACの対象、すなわち、改竄の有無の判定対象となるデータである。 【0288】しかしながら、ATRACK3データファイル中には、様々な情報データが格納され、改竄チェック対象データが増加する場合がある。このような増加したチェック対象データも含めて新たなMACを生成し、これを拡張MACとしてファイル中に格納するとともに、従来の改竄チェック対象データのみを対象として生成されるオリジナルMACについては、基本的に改竄チェック対象領域を不変として設定した構成について説明する。 【0289】図42には、先に説明したINF−seq#以下のデータを改竄チェック対象データとして設定して、生成されるオリジナルMAC701がATRACK3データファイルに格納されている。 【0290】さらに、ATRACK3データファイル中のINFスペースに記録されるいくつかの情報中に、改竄チェックの対象とすべきデータが存在する場合、オリジナルMAC701のMAC生成対象データを構成するデータ、ここでは、[INF−seq#]を含めて、その他のINFスペース内の改竄チェック対象データに基づいて新たなMACを生成し、これを拡張MACとしてデータファイル中に格納する。 【0291】図42において、拡張MAC[MAC(INF)]702は、MAC(INF−Seq#||path||MAC(profile)||Others…)によって生成される、このように、拡張MACは、オリジナルMACのMAC生成対象データの一部を含み、その他の改竄チェック対象と併せたデータに基づいて生成される。 【0292】また、拡張MACの書き換え時、すなわち、拡張MACの対象データ、すなわちINF領域の[path]以下のデータの書き換えにより、新たな拡張MACを、その書き換えデータに基づいて再生成して再格納する処理を実行する際には、拡張MACに含まれ、かつオリジナルMACの対象データでもある[INF−seq#]の書き換えを行なって新たな拡張MACの生成、格納処理を実行する。 【0293】この場合、オリジナルMACについても、その対象データである[INF−seq#]の書き換えが実行されているので、新たにオリジナルMACの計算を実行する。すなわち、拡張MACの更新時には、オリジナルMACの再生成、再格納処理を併せて実行する。 【0294】[INF−seq#]の書き換えは、例えば新たな乱数の発生による書き換え処理、あるいは、INF−seq#データのインクリメント処理等によって実行可能である。 【0295】このように、改竄チェック対象データの増加に対応して生成される拡張MACのMAC生成対象データに、オリジナルMACのMAC対象データの一部を含めて、双方のMACの共通するMAC対象データを存在させ、拡張MACの更新時には、オリジナルMACの再生成も併せて実行する構成としたので、オリジナルMACのMAC対象データ領域を広げることなく、新たな改竄チェック用データである例えばINF内のデータの書き換え処理を常にオリジナルMACに反映させることが可能となる。 【0296】[記憶装置および再生装置間におけるEKB処理]次に、前述のツリー構造の鍵配信システムを適用した有効化キーブロック(EKB)を用いて、暗号化コンテンツの復号処理に適用するコンテンツキーを取得する具体的処理構成について説明する。 【0297】図43にATRACK3データ等の暗号化コンテンツを格納した例えばメモリスティック等の記憶装置100と、コンテンツ再生を実行する再生装置A200,再生装置B300を示す。 【0298】記憶装置100には、暗号化コンテンツとして、図21等を用いて説明したATRACK3データファイルが格納され、再生装置においてコンテンツを再生するためには、コンテンツの復号に必要なコンテンツキーKconを取得することが必要となる。 【0299】まず、再生装置が記憶装置からコンテンツキーを直接取得する処理態様について、図43に示す記憶装置800と再生装置A810とで説明する。まず、記憶装置800と、再生装置A810は、認証処理機能を実行する相互の制御モジュール801,811間において相互認証処理を実行する。相互認証は、例えば先に説明した図8の共通鍵暗号方式、あるいは公開鍵暗号方式による相互認証処理として実行する。この場合、記憶装置800と、再生装置A810は、それぞれの制御処理モジュール801,811が認証処理実行アルゴリズムを有し、さらに、認証処理に必要な鍵を格納していることが必要である。 【0300】記憶装置800は、再生装置A810との相互認証の成立後、記憶装置800内の制御モジュール801において、フラッシュメモリ802に格納したATRACK3データファイルから、記憶装置のストレージキーKstmで暗号化されたコンテンツキー:E(Kstm,Kcon)または、先に説明したEKBファイルの処理によって取得可能なキー暗号キー(KEK)で暗号化されたコンテンツキー:E(KEK,Kcon)のいずれかを取り出し、復号処理を実行して、コンテンツキーKconを取得する。 【0301】記憶装置800は、再生装置A810との相互認証時に生成したセッションキーKsesを用いてコンテンツキーKconの再暗号化を実行し、生成した暗号化データ:E(Kses,Kcon)を再生装置A810に送付する。再生装置A810は、制御モジュール811において、受領した暗号化コンテンツキーE(Kses,Kcon)をセッションキーKsesで復号してコンテンツキーを取得する。 【0302】以上、説明した手法が、記憶装置側において、コンテンツキーを復号して取り出して、これを再度セッションキーで暗号化して再生装置に送付する手法である。 【0303】次に、記憶装置側では復号処理を実行せず、再生装置側においてコンテンツキーを取得する処理を実行形態について説明する。 【0304】この処理形態を図43の記憶装置800と再生装置B830との間の処理として説明する。記憶装置800は、ATRACK3データフアイル中の有効化キーブロック(EKB)バージョン(またはジェネレーション)から、コンテンツキーの取得に必要となる対応有効化キーブロック(EKB)を特定し、特定されたEKBを再生装置B830に送付する。 【0305】再生装置B830は、記憶装置からEKBを受領し、予め再生装置内のメモリ、例えばE2PROM(ex.フラッシュメモリ)内に格納したデバイスキーブロック(DKB)を用いて受領EKBの処理を実行し、キー暗号キー(KEK)を取得する。 【0306】ここで、デバイスキーブロック(DKB)について説明する。図44を用いてデバイスキーブロック(DKB)の構成を説明する。前述したように、コンテンツ再生装置等の各デバイスは、図44(a)に示すツリー構造の鍵配信構成の末端すなわちリーフから上位のルートに連なる各ノードのキーを有する。例えば図44(a)に示す末端ノードのセット5(SET5)に対応するデバイスは、リーフキーとしてのK101,ノードキーとしてK10,K1から、ルートキーKrootに至るキーセット、または、サブカテゴリーノードキーに至るキーセット、あるいはカテゴリーノードに至るキーセットを保有する。 【0307】これらの各キーは、デバイスにおいて暗号化されてデバイス内のメモリ、例えばE2PROMに格納される。このような各デバイスに保存されるリーフから特定ノード(ex.サブカテゴリーノード)またはルートまでのキーに対応するキーセットの暗号化キーセットがデバイスキーブロック(DKB)である。 【0308】デバイスキーブロック(DKB)のデータ構成例を図44(b)に示す。図44(b)に示すように、DKBはノードキー、およびルートキーをリーフキーで暗号化したデータと、リーフキーをデバイス(ex.再生装置)のストレージキー:Kstdで暗号化したデータを有する暗号化キーブロックとして構成される。デバイス(ex.再生装置)は、このデバイスキーブロック(DKB)中のEnc(Kstd,Kleaf)を、自身のストレージキー:Kstdを用いて復号し、リーフキーKleafを取得し、さらに、取得したリーフキーKleafを用いて高位の暗号化ノードキー、暗号化ルートキーを直接復号することが可能となり、EKBの下位キーから順次復号して上位キーを取得していく処理の省略が可能となる。な | |