JP4120135B2 - Information processing system and information processing method using encryption key block, and program providing medium - Google Patents

Information processing system and information processing method using encryption key block, and program providing medium Download PDF

Info

Publication number
JP4120135B2
JP4120135B2 JP2000179694A JP2000179694A JP4120135B2 JP 4120135 B2 JP4120135 B2 JP 4120135B2 JP 2000179694 A JP2000179694 A JP 2000179694A JP 2000179694 A JP2000179694 A JP 2000179694A JP 4120135 B2 JP4120135 B2 JP 4120135B2
Authority
JP
Japan
Prior art keywords
sub
key
node
ekb
key block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000179694A
Other languages
Japanese (ja)
Other versions
JP2001358705A (en
Inventor
義道 北谷
隆二 石黒
義知 大澤
智之 浅野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to JP2000179694A priority Critical patent/JP4120135B2/en
Application filed by Sony Corp filed Critical Sony Corp
Priority to KR1020027001922A priority patent/KR100840823B1/en
Priority to CA002379476A priority patent/CA2379476C/en
Priority to PCT/JP2001/005146 priority patent/WO2001099331A1/en
Priority to EP01938704A priority patent/EP1204236A4/en
Priority to CNB018024114A priority patent/CN100490369C/en
Priority to MXPA02001533A priority patent/MXPA02001533A/en
Priority to CN2006100050472A priority patent/CN1901446B/en
Publication of JP2001358705A publication Critical patent/JP2001358705A/en
Priority to HK03104427.2A priority patent/HK1053556B/en
Priority to US11/879,639 priority patent/US7957537B2/en
Application granted granted Critical
Publication of JP4120135B2 publication Critical patent/JP4120135B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Storage Device Security (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、暗号鍵ブロックを用いた情報処理システムおよび情報処理方法、並びにプログラム提供媒体に関し、特に、暗号処理を伴うシステムにおける暗号処理鍵を配信するシステムおよび方法に関する。特に、木構造の階層的鍵配信方式を用いることにより、メッセージ量を小さく押さえて、例えばコンテンツキー配信、あるいは各種鍵の更新の際のデータ配信の負荷を軽減し、かつデータの安全性を保持することを可能とするとともに、階層的鍵配信ツリーを共通要素を持つ部分集合としてのエンティテイで管理する構成として効率的な鍵配信および管理構成を実現した暗号鍵ブロックを用いた情報処理システムおよび情報処理方法、並びにプログラム提供媒体に関する。
【0002】
【従来の技術】
昨今、ゲームプログラム、音声データ、画像データ等、様々なソフトウエアデータ(以下、これらをコンテンツ(Content)と呼ぶ)を、インターネット等のネットワーク、あるいはDVD、CD等の流通可能な記憶媒体を介しての流通が盛んになってきている。これらの流通コンテンツは、ユーザの所有するPC(Personal Computer)、ゲーム機器によってデータ受信、あるいは記憶媒体の装着がなされて再生されたり、あるいは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】
【発明が解決しようとする課題】
上記のようなコンテンツ配信システムでは、コンテンツを暗号化してユーザにネットワーク、あるいはDVD、CD等の記録媒体に格納して提供し、暗号化コンテンツを復号するコンテンツキーを正当なユーザにのみ提供する構成が多く採用されている。コンテンツキー自体の不正なコピー等を防ぐためのコンテンツキーを暗号化して正当なユーザに提供し、正当なユーザのみが有する復号キーを用いて暗号化コンテンツキーを復号してコンテンツキーを使用可能とする構成が提案されている。
【0012】
正当なユーザであるか否かの判定は、一般には、例えばコンテンツの送信者であるコンテンツプロバイダとユーザデバイス間において、コンテンツ、あるいはコンテンツキーの配信前に認証処理を実行することによって行なう。一般的な認証処理においては、相手の確認を行なうとともに、その通信でのみ有効なセッションキーを生成して、認証が成立した場合に、生成したセッションキーを用いてデータ、例えばコンテンツあるいはコンテンツキーを暗号化して通信を行なう。認証方式には、共通鍵暗号方式を用いた相互認証と、公開鍵方式を使用した認証方式があるが、共通鍵を使った認証においては、システムワイドで共通な鍵が必要になり、更新処理等の際に不便である。また、公開鍵方式においては、計算負荷が大きくまた必要なメモリ量も大きくなり、各デバイスにこのような処理手段を設けることは望ましい構成とはいえない。
【0013】
本発明では、上述のようなデータの送信者、受信者間の相互認証処理に頼ることなく、正当なユーザに対してのみ、安全にデータを送信することを可能とするとともに、階層的鍵配信ツリーを共通要素を持つ部分集合としてのエンティテイで管理する構成として効率的な鍵配信および管理構成を実現した暗号鍵ブロックを用いた情報処理システムおよび情報処理方法、並びにプログラム提供媒体を提供することを目的とする。
【0014】
【課題を解決するための手段】
本発明の第1の側面は、
複数のデバイスをリーフとして構成したツリーのルートからリーフまでのパス上のルート、ノード、およびリーフに各々キーを対応付けたキーツリーを構成し、該キーツリーを構成するパスを選択して選択パス上のキー更新、および下位キーによる上位キーの暗号化処理を実行して特定デバイスにおいてのみ復号可能な有効化キーブロック(EKB)を生成してデバイスに提供する暗号鍵ブロックを用いた情報処理システムにおいて、
前記キーツリーを構成する部分ツリーとしてのサブツリーをエンティテイとし、該エンティテイに属するノードまたはリーフに対応して設定されるキーのみに基づくサブ有効化キーブロック(サブEKB)の生成をエンティテイ管理処理として実行するサブ有効化キーブロック生成手段と、
前記サブ有効化キーブロック生成手段により生成されたサブ有効化キーブロック(サブEKB)を用いて、前記キーツリーにおける最下段のエンティテイのリーフに対応する選択されたデバイスにおいてのみ復号可能な有効化キーブロック(EKB)を生成する有効化キーブロック生成手段と、
を有することを特徴とする暗号鍵ブロックを用いた情報処理システムにある。
【0015】
さらに、本発明の情報処理システムの一実施態様において、前記エンティテイは、1つのエンティテイの最下段の末端ノードを他のエンティテイの頂点ノード(サブルート)として構成した上位エンティテイおよび下位エンティテイの階層化構造を有することを特徴とする。
【0016】
さらに、本発明の情報処理システムの一実施態様において、前記サブ有効化キーブロック生成手段は、自己の管理エンティテイに属するサブツリーを構成するノードまたはリーフに対応するキーの設定、更新処理権限を有する構成であることを特徴とする。
【0017】
さらに、本発明の情報処理システムの一実施態様において、前記エンティテイ中、エンティテイ内の最下段リーフを個々のデバイスに対応するリーフとした最下層のエンティテイに属するデバイスの各々は、自己の属するエンティテイの頂点ノード(サブルート)から自己のデバイスに対応するリーフに至るパス上のノード、リーフに設定されたノードキーおよびリーフキーを格納した構成を有することを特徴とする。
【0018】
さらに、本発明の情報処理システムの一実施態様において、前記サブ有効化キーブロック生成手段は、自己の管理エンティテイの下位に、さらに自己管理エンティテイを追加するため、自己のエンティテイ内の最下段のノードまたはリーフ中の1以上のノードまたはリーフをリザーブノードとして保留して設定した構成を有することを特徴とする。
【0019】
さらに、本発明の情報処理システムの一実施態様において、新規エンティテイを末端ノードに追加する上位エンティテイを管理するサブ有効化キーブロック生成手段は、新規エンティテイのサブツリーを設定するノードである上位エンティテイ末端ノードに対応するキーを、前記新規エンティテイの頂点ノード(サブルート)キーとして設定する構成であることを特徴とする。
【0020】
さらに、本発明の情報処理システムの一実施態様において、新規追加エンティテイを管理するサブ有効化キーブロック生成手段は、該新規エンティテイ内のサブツリー内のノードまたはリーフに対応して設定されるキーのみに基づくサブ有効化キーブロック(サブEKB)を生成し、前記有効化キーブロック生成手段に対するサブEKBの提供処理を実行する構成であることを特徴とする。
【0021】
さらに、本発明の情報処理システムの一実施態様において、デバイスのリボーク処理を実行するサブ有効化キーブロック生成手段は、管理エンティテイ内の頂点ノード(サブルート)からリボークデバイスに対応するリーフに至るパス上のノードに設定されたノードキーを更新し、更新ノードキーをリボークデバイス以外のリーフデバイスにおいてのみ復号可能な暗号化キーとして構成した更新サブEKBを生成して上位エンティテイに送信し、上位エンティテイは更新サブEKBを提供した末端ノードから自己のサブルートに至るパス上のノードキーを更新した更新サブEKBを生成してさらに上位エンティテイを管理するサブ有効化キーブロック生成手段に送信し、最上位エンティテイを管理するサブ有効化キーブロック生成手段まで、エンティテ単位での更新サブEKB生成および送信処理を順次実行して、リボークデバイスからルートに至るパス上のノードキー更新を行ない、キー更新により生成された更新サブEKBの前記有効化キーブロック生成手段への提供処理を行なうことにより、デバイスのリボーク処理を実行する構成を有することを特徴とする。
【0022】
さらに、本発明の情報処理システムの一実施態様において、下位エンティテイのリボーク処理を実行するサブ有効化キーブロック生成手段は、管理エンティテイ内の頂点ノード(サブルート)からリボーク・エンティテイに対応する末端ノードに至るパス上のノードに設定されたノードキーを更新した更新サブEKBを生成して上位エンティテイに送信し、上位エンティテイは更新サブEKBを提供した末端ノードから自己のサブルートに至るパス上のノードキーを更新した更新サブEKBを生成してさらに上位エンティテイを管理するサブ有効化キーブロック生成手段に送信し、最上位エンティテイを管理するサブ有効化キーブロック生成手段まで、エンティテ単位での更新サブEKB生成および送信処理を順次実行して、リボーク・エンティテイからルートに至るパス上のノードキー更新を行ない、キー更新により生成された更新サブEKBの前記有効化キーブロック生成手段への提供処理を行なうことにより、エンティテイ単位のリボーク処理を実行する構成を有することを特徴とする。
【0023】
さらに、本発明の情報処理システムの一実施態様において、下位エンティテイのリボーク処理を実行するサブ有効化キーブロック生成手段は、管理エンティテイ内の頂点ノード(サブルート)からリボーク・エンティテイに対応する末端ノードに至るパス上の、該末端ノードを除くノードに設定されたノードキーを更新した更新サブEKBを生成して上位エンティテイを管理するサブ有効化キーブロック生成手段に送信し、上位エンティテイを管理するサブ有効化キーブロック生成手段は更新サブEKBを提供した末端ノードから自己のサブルートに至るパス上のノードキーを更新した更新サブEKBを生成してさらに上位エンティテイを管理するサブ有効化キーブロック生成手段に送信し、最上位エンティテイを管理するサブ有効化キーブロック生成手段まで、エンティテ単位での更新サブEKB生成および送信処理を順次実行して、リボーク・エンティテイからルートに至るパス上のリボーク・エンティテイに対応する末端ノードを除くノードキー更新を行ない、キー更新により生成された更新サブEKBの前記有効化キーブロック生成手段への提供処理を行なうことにより、エンティテイ単位のリボーク処理を実行する構成を有することを特徴とする。
【0024】
さらに、本発明の情報処理システムの一実施態様において、前記サブ有効化キーブロック生成手段は、デバイス種類、サービス種類、管理手段種類等の共通のカテゴリに属するデバイスあるいはエンティテイの管理を行なう構成であることを特徴とする。
さらに、本発明の情報処理システムの一実施態様において、前記エンティテイは、前記キーツリーのリーフであるデバイスのデータ処理能力を表すケイパビリティ情報に基づき区分され、サブ有効化キーブロック生成手段は、管理エンティティに属する共通のケイパビリティを持つノード又はリーフに対応して設定されるキーのみに基づくサッブ有効化キーブロックを生成することを特徴とする。
さらに、本発明の情報処理システムの一実施態様において、前記有効化キーブロック生成手段は、複数のエンティテイ各々の識別子と、エンティテイ各々のケイパビリティ情報と、エンティテイ各々のサブ有効化キーブロック(サブEKB)情報とを対応付けたケイパビリティ管理テーブルを有し、該ケイパビリティ管理テーブルに基づいて、デバイスに対する配信データの処理可能なエンティテイを選択して、該選択エンティテイ配下のデバイスでのみ復号可能な有効化キーブロック(EKB)を生成する構成を有することを特徴とする。
さらに、本発明の情報処理システムの一実施態様において、前記キーツリーに対する新規追加エンティテイは、該新規エンティテイ内のサブツリー内のノードまたはリーフに対応して設定されるキーのみに基づくサブ有効化キーブロック(サブEKB)を生成し、前記有効化キーブロック生成手段に対する生成されたサブEKB及び自己のエンティテイのケイパビリティ情報の通知処理を実行する構成であることを特徴とする。
【0025】
さらに、本発明の第2の側面は、
複数のデバイスをリーフとして構成したツリーのルートからリーフまでのパス上のルート、ノード、およびリーフに各々キーを対応付けたキーツリーを構成し、該キーツリーを構成するパスを選択して選択パス上のキー更新、および下位キーによる上位キーの暗号化処理を実行して特定デバイスにおいてのみ復号可能な有効化キーブロック(EKB)を生成してデバイスに提供する情報処理システムにおける暗号鍵ブロックを用いた情報処理方法において、
サブ有効化キーブロック生成手段が、前記キーツリーを構成する部分ツリーとしてのサブツリーをエンティテイとし、エンティテイ管理処理として該エンティテイに属するノードまたはリーフに対応して設定されるキーのみに基づくサブ有効化キーブロック(サブEKB)を生成するステップと、
有効化キーブロック生成手段において、前記サブ有効化キーブロック生成手段の生成するサブ有効化キーブロック(サブEKB)を用いて、前記キーツリーにおける最下段のエンティテイのリーフに対応する選択されたデバイスにおいてのみ復号可能な有効化キーブロック(EKB)を生成するステップと、
を有することを特徴とする暗号鍵ブロックを用いた情報処理方法にある。
【0026】
さらに、本発明の情報処理方法の一実施態様において、前記情報処理方法において、さらに、前記サブ有効化キーブロック生成手段は、自己の管理エンティテイに属するサブツリーを構成するノードまたはリーフに対応するキーの設定、更新処理を実行することを特徴とする。
【0027】
さらに、本発明の情報処理方法の一実施態様において、新規エンティテイを末端ノードに追加する上位エンティテイを管理するサブ有効化キーブロック生成手段は、新規エンティテイのサブツリーを設定するノードである上位エンティテイ末端ノードに対応するキーを、前記新規エンティテイの頂点ノード(サブルート)キーとして設定することを特徴とする。
【0028】
さらに、本発明の情報処理方法の一実施態様において、新規追加エンティテイを管理するサブ有効化キーブロック生成手段は、該新規エンティテイ内のサブツリー内のノードまたはリーフに対応して設定されるキーのみに基づくサブ有効化キーブロック(サブEKB)を生成し、前記有効化キーブロック生成手段に対するサブEKBの提供処理を実行することを特徴とする。
【0029】
さらに、本発明の情報処理方法の一実施態様において、デバイスのリボーク処理を実行するサブ有効化キーブロック生成手段は、管理エンティテイ内の頂点ノード(サブルート)からリボークデバイスに対応するリーフに至るパス上のノードに設定されたノードキーを更新し、更新ノードキーをリボークデバイス以外のリーフデバイスにおいてのみ復号可能な暗号化キーとして構成した更新サブEKBを生成して上位エンティテイに送信し、上位エンティテイは更新サブEKBを提供した末端ノードから自己のサブルートに至るパス上のノードキーを更新した更新サブEKBを生成してさらに上位エンティテイを管理するサブ有効化キーブロック生成手段に送信し、最上位エンティテイを管理するサブ有効化キーブロック生成手段まで、エンティテ単位での更新サブEKB生成および送信処理を順次実行して、リボークデバイスからルートに至るパス上のノードキー更新を行ない、キー更新により生成された更新サブEKBの前記有効化キーブロック生成手段への提供処理を行なうことにより、デバイスのリボーク処理を実行することを特徴とする。
【0030】
さらに、本発明の情報処理方法の一実施態様において、下位エンティテイのリボーク処理を実行するサブ有効化キーブロック生成手段は、エンティテイ内の頂点ノード(サブルート)からリボーク・エンティテイに対応する末端ノードに至るパス上のノードに設定されたノードキーを更新した更新サブEKBを生成して上位エンティテイを管理するサブ有効化キーブロック生成手段に送信し、上位エンティテイを管理するサブ有効化キーブロック生成手段は更新サブEKBを提供した末端ノードから自己のサブルートに至るパス上のノードキーを更新した更新サブEKBを生成してさらに上位エンティテイを管理するサブ有効化キーブロック生成手段に送信し、最上位エンティテイを管理するサブ有効化キーブロック生成手段まで、エンティテ単位での更新サブEKB生成および送信処理を順次実行して、リボーク・エンティテイからルートに至るパス上のノードキー更新を行ない、キー更新により生成された更新サブEKBの前記有効化キーブロック生成手段への提供処理を行なうことにより、エンティテイ単位のリボーク処理を実行することを特徴とする。
【0031】
さらに、本発明の情報処理方法の一実施態様において、下位エンティテイのリボーク処理を実行するサブ有効化キーブロック生成手段は、管理エンティテイ内の頂点ノード(サブルート)からリボーク・エンティテイに対応する末端ノードに至るパス上の、該末端ノードを除くノードに設定されたノードキーを更新した更新サブEKBを生成して上位エンティテイを管理するサブ有効化キーブロック生成手段に送信し、上位エンティテイを管理するサブ有効化キーブロック生成手段は更新サブEKBを提供した末端ノードから自己のサブルートに至るパス上のノードキーを更新した更新サブEKBを生成してさらに上位エンティテイを管理するサブ有効化キーブロック生成手段に送信し、最上位エンティテイを管理するサブ有効化キーブロック生成手段まで、エンティテ単位での更新サブEKB生成および送信処理を順次実行して、リボーク・エンティテイからルートに至るパス上のリボーク・エンティテイに対応する末端ノードを除くノードキー更新を行ない、キー更新により生成された更新サブEKBの前記有効化キーブロック生成手段への提供処理を行なうことにより、エンティテイ単位のリボーク処理を実行することを特徴とする。
さらに、本発明の情報処理方法の一実施態様において、前記エンティテイは、前記キーツリーのリーフであるデバイスのデータ処理能力を表すケイパビリティ情報に基づき区分され、サブ有効化キーブロック生成手段は、管理エンティティに属する共通のケイパビリティを持つノード又はリーフに対応して設定されるキーのみに基づくサッブ有効化キーブロックを生成することを特徴とする。
さらに、本発明の情報処理方法の一実施態様において、前記有効化キーブロック生成手段は、複数のエンティテイ各々の識別子と、エンティテイ各々のケイパビリティ情報と、エンティテイ各々のサブ有効化キーブロック(サブEKB)情報とを対応付けたケイパビリティ管理テーブルを有し、該ケイパビリティ管理テーブルに基づいて、デバイスに対する配信データの処理可能なエンティテイを選択して、該選択エンティテイ配下のデバイスでのみ復号可能な有効化キーブロック(EKB)を生成することを特徴とする。
さらに、本発明の情報処理方法の一実施態様において、前記キーツリーに対する新規追加エンティテイは、該新規エンティテイ内のサブツリー内のノードまたはリーフに対応して設定されるキーのみに基づくサブ有効化キーブロック(サブEKB)を生成し、前記有効化キーブロック生成手段に対する生成されたサブEKB及び自己のエンティテイのケイパビリティ情報の通知処理を実行することを特徴とする。
【0032】
さらに、本発明の第3の側面は、
複数のデバイスをリーフとして構成したツリーのルートからリーフまでのパス上のルート、ノード、およびリーフに各々キーを対応付けたキーツリーを構成し、該キーツリーを構成するパスを選択して選択パス上のキー更新、および下位キーによる上位キーの暗号化処理を実行して特定デバイスにおいてのみ復号可能な有効化キーブロック(EKB)を生成してデバイスに提供する情報処理システムにおける有効化キーブロック(EKB)生成処理をコンピュータ・システム上で実行せしめるコンピュータ・プログラムを記録したプログラム記録媒体であって、前記コンピュータ・プログラムは、
サブ有効化キーブロック生成手段に、前記キーツリーを構成する部分ツリーとしてのサブツリーをエンティテイとし、エンティテイ管理処理として該エンティテイに属するノードまたはリーフに対応して設定されるキーのみに基づくサブ有効化キーブロック(サブEKB)を生成させるステップと、
有効化キーブロック生成手段において、前記サブ有効化キーブロック生成手段の生成するサブ有効化キーブロック(サブEKB)を用いて、前記キーツリーにおける最下段のエンティテイのリーフに対応する選択されたデバイスにおいてのみ復号可能な有効化キーブロック(EKB)を生成させるステップと、
を含むことを特徴とするプログラム記録媒体にある。
【0033】
【作用】
本発明の構成においては、ツリー(木)構造の階層的構造の暗号化鍵配信構成を用いることにより、キー更新に必要な配信メッセージ量を小さく押さえている。すなわち、各機器をn分木の各葉(リーフ)に配置した構成の鍵配信方法を用い、記録媒体もしくは通信回線を介して、例えばコンテンツデータの暗号鍵であるコンテンツキーもしくは認証処理に用いる認証キー、あるいはプログラムコード等を有効化キーブロックとともに配信する構成としている。このようにすることにより、正当なデバイスのみが復号可能なデータを安全に配信することが可能となる。
【0034】
さらに、本発明の構成においては、階層的鍵配信ツリーを共通要素を持つ部分集合としてのエンティテイで管理する構成として効率的な鍵配信および管理構成を実現している。
【0035】
なお、本発明の第3の側面に係るプログラム提供媒体は、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ・プログラムをコンピュータ可読な形式で提供する媒体である。媒体は、CDやFD、MOなどの記録媒体、あるいは、ネットワークなどの伝送媒体など、その形態は特に限定されない。
【0036】
このようなプログラム提供媒体は、コンピュータ・システム上で所定のコンピュータ・プログラムの機能を実現するための、コンピュータ・プログラムと提供媒体との構造上又は機能上の協働的関係を定義したものである。換言すれば、該提供媒体を介してコンピュータ・プログラムをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の他の側面と同様の作用効果を得ることができるのである。
【0037】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【0038】
【発明の実施の形態】
[システム概要]
図1に本発明のデータ処理システムが適用可能なコンテンツ配信システム例を示す。コンテンツの配信側10は、コンテンツ受信側20の有する様々なコンテンツ再生可能な機器に対してコンテンツ、あるいはコンテンツキーを暗号化して送信する。受信側20における機器では、受信した暗号化コンテンツ、あるいは暗号化コンテンツキー等を復号してコンテンツあるいはコンテンツキーを取得して、画像データ、音声データの再生、あるいは各種プログラムの実行等を行なう。コンテンツの配信側10とコンテンツ受信側20との間のデータ交換は、インターネット等のネットワークを介して、あるいはDVD、CD等の流通可能な記憶媒体を介して実行される。
【0039】
コンテンツの配信側10のデータ配信手段としては、インターネット11、衛星放送12、電話回線13、DVD、CD等のメディア14等があり、一方、コンテンツ受信側20のデバイスとしては、パーソナルコンピュータ(PC)21、ポータブルデバイス(PD)22、携帯電話、PDA(Personal Digital Assistants)等の携帯機器23、DVD、CDプレーヤ等の記録再生器24、ゲーム端末等の再生専用器25等がある。これらコンテンツ受信側20の各デバイスは、コンテンツ配信側10から提供されたコンテンツをネットワーク等の通信手段あるいは、あるいはメディア30から取得する。
【0040】
[デバイス構成]
図2に、図1に示すコンテンツ受信側20のデバイスの一例として、記録再生装置100の構成ブロック図を示す。記録再生装置100は、入出力I/F(Interface)120、MPEG(Moving Picture Experts Group)コーデック130、A/D,D/Aコンバータ141を備えた入出力I/F(Interface)140、暗号処理手段150、ROM(Read Only Memory)160、CPU(Central Processing Unit)170、メモリ180、記録媒体195のドライブ190を有し、これらはバス110によって相互に接続されている。
【0041】
入出力I/F120は、外部から供給される画像、音声、プログラム等の各種コンテンツを構成するディジタル信号を受信し、バス110上に出力するとともに、バス110上のディジタル信号を受信し、外部に出力する。MPEGコーデック130は、バス110を介して供給されるMPEG符号化されたデータを、MPEGデコードし、入出力I/F140に出力するとともに、入出力I/F140から供給されるディジタル信号をMPEGエンコードしてバス110上に出力する。入出力I/F140は、A/D,D/Aコンバータ141を内蔵している。入出力I/F140は、外部から供給されるコンテンツとしてのアナログ信号を受信し、A/D,D/Aコンバータ141でA/D(Analog Digital)変換することで、ディジタル信号として、MPEGコーデック130に出力するとともに、MPEGコーデック130からのディジタル信号を、A/D,D/Aコンバータ141でD/A(Digital Analog)変換することで、アナログ信号として、外部に出力する。
【0042】
暗号処理手段150は、例えば、1チップのLSI(Large Scale Integrated Curcuit)で構成され、バス110を介して供給されるコンテンツとしてのディジタル信号の暗号化、復号処理、あるいは認証処理を実行し、暗号データ、復号データ等をバス110上に出力する構成を持つ。なお、暗号処理手段150は1チップLSIに限らず、各種のソフトウェアまたはハードウェアを組み合わせた構成によって実現することも可能である。ソフトウェア構成による処理手段としての構成については後段で説明する。
【0043】
ROM160は、記録再生装置によって処理されるプログラムデータを格納する。CPU170は、ROM160、メモリ180に記憶されたプログラムを実行することで、MPEGコーデック130や暗号処理手段150等を制御する。メモリ180は、例えば、不揮発性メモリで、CPU170が実行するプログラムや、CPU170の動作上必要なデータ、さらにデバイスによって実行される暗号処理に使用されるキーセットを記憶する。キーセットについては後段で説明する。ドライブ190は、デジタルデータを記録再生可能な記録媒体195を駆動することにより、記録媒体195からディジタルデータを読み出し(再生し)、バス110上に出力するとともに、バス110を介して供給されるディジタルデータを、記録媒体195に供給して記録させる。
【0044】
記録媒体195は、例えば、DVD、CD等の光ディスク、光磁気ディスク、磁気ディスク、磁気テープ、あるいはRAM等の半導体メモリ等のディジタルデータの記憶可能な媒体であり、本実施の形態では、ドライブ190に対して着脱可能な構成であるとする。但し、記録媒体195は、記録再生装置100に内蔵する構成としてもよい。
【0045】
なお、図2に示す暗号処理手段150は、1つのワンチップLSIとして構成してもよく、また、ソフトウェア、ハードウェアを組み合わせた構成によって実現する構成としてもよい。
【0046】
[キー配信構成としてのツリー(木)構造について]
次に、図1に示すコンテンツ配信側10からコンテンツ受信側20の各デバイスに暗号データを配信する場合における各デバイスにおける暗号処理鍵の保有構成およびデータ配信構成を図3を用いて説明する。
【0047】
図3の最下段に示すナンバ0〜15がコンテンツ受信側20の個々のデバイスである。すなわち図3に示す階層ツリー(木)構造の各葉(リーフ:leaf)がそれぞれのデバイスに相当する。
【0048】
各デバイス0〜15は、製造時あるいは出荷時、あるいはその後において、図3に示す階層ツリー(木)構造における、自分のリーフからルートに至るまでのノードに割り当てられた鍵(ノードキー)および各リーフのリーフキーからなるキーセットをメモリに格納する。図3の最下段に示すK0000〜K1111が各デバイス0〜15にそれぞれ割り当てられたリーフキーであり、最上段のKR(ルートキー)から、最下段から2番目の節(ノード)に記載されたキー:KR〜K111をノードキーとする。
【0049】
図3に示すツリー構成において、例えばデバイス0はリーフキーK0000と、ノードキー:K000、K00、K0、KRを所有する。デバイス5はK0101、K010、K01、K0、KRを所有する。デバイス15は、K1111、K111、K11、K1、KRを所有する。なお、図3のツリーにはデバイスが0〜15の16個のみ記載され、ツリー構造も4段構成の均衡のとれた左右対称構成として示しているが、さらに多くのデバイスがツリー中に構成され、また、ツリーの各部において異なる段数構成を持つことが可能である。
【0050】
また、図3のツリー構造に含まれる各デバイスには、様々な記録媒体、例えば、デバイス埋め込み型あるいはデバイスに着脱自在に構成されたDVD、CD、MD、フラッシュメモリ等を使用する様々なタイプのデバイスが含まれている。さらに、様々なアプリケーションサービスが共存可能である。このような異なるデバイス、異なるアプリケーションの共存構成の上に図3に示すコンテンツあるいは鍵配布構成である階層ツリー構造が適用される。
【0051】
これらの様々なデバイス、アプリケーションが共存するシステムにおいて、例えば図3の点線で囲んだ部分、すなわちデバイス0,1,2,3を同一の記録媒体を用いる1つのグループとして設定する。例えば、この点線で囲んだグループ内に含まれるデバイスに対しては、まとめて、共通のコンテンツを暗号化してプロバイダから送付したり、各デバイス共通に使用するコンテンツキーを送付したり、あるいは各デバイスからプロバイダあるいは決済機関等にコンテンツ料金の支払データをやはり暗号化して出力するといった処理が実行される。コンテンツプロバイダ、あるいは決済処理機関等、各デバイスとのデータ送受信を行なう機関は、図3の点線で囲んだ部分、すなわちデバイス0,1,2,3を1つのグループとして一括してデータを送付する処理を実行する。このようなグループは、図3のツリー中に複数存在する。コンテンツプロバイダ、あるいは決済処理機関等、各デバイスとのデータ送受信を行なう機関は、メッセージデータ配信手段として機能する。
【0052】
なお、ノードキー、リーフキーは、ある1つの鍵管理センタによって統括して管理してもよいし、各グループに対する様々なデータ送受信を行なうプロバイダ、決済機関等のメッセージデータ配信手段によってグループごとに管理する構成としてもよい。これらのノードキー、リーフキーは例えばキーの漏洩等の場合に更新処理が実行され、この更新処理は鍵管理センタ、プロバイダ、決済機関等が実行する。
【0053】
このツリー構造において、図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によって暗号化したデータであることを示す。
【0054】
また、ある時点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の更新キーであることを示す。
【0055】
更新キーの配布処理ついて説明する。キーの更新は、例えば、図4(A)に示す有効化キーブロック(EKB:Enabling Key Block)と呼ばれるブロックデータによって構成されるテーブルをたとえばネットワーク、あるいは記録媒体に格納してデバイス0,1,2に供給することによって実行される。なお、有効化キーブロック(EKB)は、図3に示すようなツリー構造を構成する各リーフに対応するデバイスに新たに更新されたキーを配布するための暗号化キーによって構成される。有効化キーブロック(EKB)は、キー更新ブロック(KRB:Key Renewal Block)と呼ばれることもある。
【0056】
図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が必要である。
【0057】
図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)のインデックスは、復号キーとして使用するノードキー、リーフキーの絶対番地を示す。
【0058】
図3に示すツリー構造の上位段のノードキー:K(t)0,K(t)Rの更新が不要であり、ノードキーK00のみの更新処理が必要である場合には、図4(B)の有効化キーブロック(EKB)を用いることで、更新ノードキーK(t)00をデバイス0,1,2に配布することができる。
【0059】
図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など、その他のグループの機器においては復号されないデータとしての配布が可能となる。
【0060】
すなわち、デバイス0,1,2はEKBを処理して得たK(t)00を用いて上記暗号文を復号すれば、t時点でのコンテンツキーK(t)conを得ることが可能になる。
【0061】
[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とした例である。
【0062】
図5に示すように、デバイス0は、記録媒体に格納されている世代:t時点のEKBと自分があらかじめ格納しているノードキーK000を用いて上述したと同様のEKB処理により、ノードキーK(t)00を生成する。さらに、復号した更新ノードキーK(t)00を用いて更新コンテンツキーK(t)conを復号して、後にそれを使用するために自分だけが持つリーフキーK0000で暗号化して格納する。
【0063】
[EKBのフォーマット]
図6に有効化キーブロック(EKB)のフォーマット例を示す。バージョン601は、有効化キーブロック(EKB)のバージョンを示す識別子である。なお、バージョンは最新のEKBを識別する機能とコンテンツとの対応関係を示す機能を持つ。デプスは、有効化キーブロック(EKB)の配布先のデバイスに対する階層ツリーの階層数を示す。データポインタ603は、有効化キーブロック(EKB)中のデータ部の位置を示すポインタであり、タグポインタ604はタグ部の位置、署名ポインタ605は署名の位置を示すポインタである。
【0064】
データ部606は、例えば更新するノードキーを暗号化したデータを格納する。例えば図5に示すような更新されたノードキーに関する各暗号化キー等を格納する。
【0065】
タグ部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)に示すデータ列、およびタグ列が構成される。
【0066】
タグは、データ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)
...のようなデータ構成とすることも可能であるが、このようなインデックスを用いた構成とすると冗長なデータとなりデータ量が増大し、ネットワークを介する配信等においては好ましくない。これに対し、上述したタグをキー位置を示す索引データとして用いることにより、少ないデータ量でキー位置の判別が可能となる。
【0067】
図6に戻って、EKBフォーマットについてさらに説明する。署名(Signature)は、有効化キーブロック(EKB)を発行した例えば鍵管理センタ、コンテンツロバイダ、決済機関等が実行する電子署名である。EKBを受領したデバイスは署名検証によって正当な有効化キーブロック(EKB)発行者が発行した有効化キーブロック(EKB)であることを確認する。
【0068】
[EKBを使用したコンテンツキーおよびコンテンツの配信]
上述の例では、コンテンツキーのみをEKBとともに送付する例について説明したが、コンテンツキーで暗号化したコンテンツと、コンテンツキー暗号キーで暗号化したコンテンツキーと、EKBによって暗号化したコンテンツキー暗号鍵を併せて送付する構成について以下説明する。
【0069】
図8にこのデータ構成を示す。図8(a)に示す構成において、Enc(Kcon,content)801は、コンテンツ(Content)をコンテンツキー(Kcon)で暗号化したデータであり、Enc(KEK,Kcon)802は、コンテンツキー(Kcon)をコンテンツキー暗号キー(KEK:Key Encryption Key)で暗号化したデータであり、Enc(EKB,KEK)803は、コンテンツキー暗号キーKEKを有効化キーブロック(EKB)によって暗号化したデータであることを示す。
【0070】
ここで、コンテンツキー暗号キーKEKは、図3で示すノードキー(K000,K00…)、あるいはルートキー(KR)自体であってもよく、またノードキー(K000,K00…)、あるいはルートキー(KR)によって暗号化されたキーであってもよい。
【0071】
図8(b)は、複数のコンテンツがメディアに記録され、それぞれが同じEnc(EKB,KEK)805を利用している場合の構成例を示す、このような構成においては、各データに同じEnc(EKB,KEK)を付加することなく、Enc(EKB,KEK)にリンクするリンク先を示すデータを各データに付加する構成とすることができる。
【0072】
図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はコンテンツを得ることができる。
【0073】
図9の右側には、デバイス0における復号手順を示してある。デバイス0は、まず、受領した有効化キーブロックから自身の保有するリーフキーK000を用いた復号処理により、コンテンツキー暗号キー(KEK=K(t)00)を取得する。次に、K(t)00による復号によりコンテンツキーKconを取得し、さらにコンテンツキーKconによりコンテンツの復号を行なう。これらの処理により、デバイス0はコンテンツを利用可能となる。デバイス1,2においても各々異なる処理手順でEKBを処理することにより、コンテンツキー暗号キー(KEK=K(t)00)を取得することが可能となり、同様にコンテンツを利用することが可能となる。
【0074】
図3に示す他のグループのデバイス4,5,6…は、この同様のデータ(EKB)を受信したとしても、自身の保有するリーフキー、ノードキーを用いてコンテンツキー暗号キー(KEK=K(t)00)を取得することができない。同様にリボークされたデバイス3においても、自身の保有するリーフキー、ノードキーでは、コンテンツキー暗号キー(KEK=K(t)00)を取得することができず、正当な権利を有するデバイスのみがコンテンツを復号して利用することが可能となる。
【0075】
このように、EKBを利用したコンテンツキーの配送を用いれば、データ量を少なくして、かつ安全に正当権利者のみが復号可能とした暗号化コンテンツを配信することが可能となる。
【0076】
なお、有効化キーブロック(EKB)、コンテンツキー、暗号化コンテンツ等は、ネットワークを介して安全に配信することが可能な構成であるが、有効化キーブロック(EKB)、コンテンツキー、暗号化コンテンツをDVD、CD等の記録媒体に格納してユーザに提供することも可能である。この場合、記録媒体に格納された暗号化コンテンツの復号には、同一の記録媒体に格納された有効化キーブロック(EKB)の復号により得られるコンテンツキーを使用するように構成すれば、予め正当権利者のみが保有するリーフキー、ノードキーによってのみ利用可能な暗号化コンテンツの配布処理、すなわち利用可能なユーザデバイスを限定したコンテンツ配布が簡易な構成で実現可能となる。
【0077】
図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を取得することが必要となる。
【0078】
図11に、複数のデバイス間でコンテンツキーが流通する場合のEKBを利用したコンテンツキーの配信と、従来のコンテンツキー配信処理の比較例を示す。上段(a)従来構成であり、下段(b)が本発明の有効化キーブロック(EKB)を利用した例である。なお、図11においてKa(Kb)は、KbをKaで暗号化したデータであることを示す。
【0079】
(a)に示すように、従来は、データ送受信者の正当性を確認し、またデータ送信の暗号化処理に使用するセッションキーKsesを共有するために各デバイス間において、認証処理および鍵交換処理(AKE:Authentication and Key Exchange)を実行し、認証が成立したことを条件としてセッションキーKsesでコンテンツキーKconを暗号化して送信する処理を行なっていた。
【0080】
例えば図11(a)のPCにおいては、受信したセッションキーで暗号化したコンテンツキーKses(Kcon)をセッションキーで復号してKconを得ることが可能であり、さらに取得したKconをPC自体の保有する保存キーKstrで暗号化して自身のメモリに保存することが可能となる。
【0081】
図11(a)において、コンテンツプロバイダは、図11(a)の記録デバイス1101にのみデータを利用可能な形で配信したい場合でも、間にPC、再生装置が存在する場合は、図11(a)に示すように認証処理を実行し、それぞれのセッションキーでコンテンツキーを暗号化して配信するといった処理が必要となる。また、間に介在するPC、再生装置においても認証処理において生成し共有することになったセッションキーを用いることで暗号化コンテンツキーを復号してコンテンツキーを取得可能となる。
【0082】
一方、図11(b)の下段に示す有効化キーブロック(EKB)を利用した例においては、コンテンツプロバイダから有効化キーブロック(EKB)と、有効化キーブロック(EKB)の処理によって得られるノードキー、またはルートキーによってコンテンツキーKconを暗号化したデータ(図の例ではKroot(Kcon))を配信することにより、配信したEKBの処理が可能な機器においてのみコンテンツキーKconを復号して取得することが可能になる。
【0083】
従って、例えば図11(b)の右端にのみ利用可能な有効化キーブロック(EKB)を生成して、その有効化キーブロック(EKB)と、そのEKB処理によって得られるノードキー、またはルートキーによってコンテンツキーKconを暗号化したデータを併せて送ることにより、間に存在するPC、再生機器等は、自身の有するリーフキー、ノードキーによっては、EKBの処理を実行することができない。従って、データ送受信デバイス間での認証処理、セッションキーの生成、セッションキーによるコンテンツキーKconの暗号化処理といった処理を実行することなく、安全に正当なデバイスに対してのみ利用可能なコンテンツキーを配信することが可能となる。
【0084】
PC、記録再生器にも利用可能なコンテンツキーを配信したい場合は、それぞれにおいて処理可能な有効化キーブロック(EKB)を生成して、配信することにより、共通のコンテンツキーを取得することが可能となる。
【0085】
[有効化キーブロック(EKB)を使用した認証キーの配信(共通鍵方式)]
上述の有効化キーブロック(EKB)を使用したデータあるいはキーの配信において、デバイス間で転送される有効化キーブロック(EKB)およびコンテンツあるいはコンテンツキーは常に同じ暗号化形態を維持しているため、データ伝走路を盗み出して記録し、再度、後で転送する、いわゆるリプレイアタックにより、不正コピーが生成される可能性がある。これを防ぐ構成としては、データ転送デバイス間において、従来と同様の認証処理および鍵交換処理を実行することが有効な手段である。ここでは、この認証処理および鍵交換処理を実行する際に使用する認証キーKakeを上述の有効化キーブロック(EKB)を使用してデバイスに配信することにより、安全な秘密鍵として共有する認証キーを持ち、共通鍵方式に従った認証処理を実行する構成について説明する。すなわちEKBによる暗号化メッセージデータを認証キーとした例である。
【0086】
図12に、共通鍵暗号方式を用いた相互認証方法(ISO/IEC 9798-2)を示す。図12においては、共通鍵暗号方式としてDESを用いているが、共通鍵暗号方式であれば他の方式も可能である。図12において、まず、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)を生成する。
【0087】
これを受信したBは、受信データを、やはり共通の秘密鍵としてそれぞれの記録素子内に格納する鍵Kab(認証キー)で復号化する。受信データの復号化方法は、まず、暗号文E1を認証キーKabで復号化し、乱数Raを得る。次に、暗号文E2を認証キーKabで復号化し、その結果とE1を排他的論理和し、Rbを得る。最後に、暗号文E3を認証キーKabで復号化し、その結果とE2を排他的論理和し、ID(b)を得る。こうして得られたRa、Rb、ID(b)のうち、RbおよびID(b)が、Bが送信したものと一致するか検証する。この検証に通った場合、BはAを正当なものとして認証する。
【0088】
次にBは、認証後に使用するセッションキー(Kses)を生成する(生成方法は、乱数を用いる)。そして、Rb、Ra、Ksesの順に、DESのCBCモードで認証キーKabを用いて暗号化し、Aに返送する。
【0089】
これを受信したAは、受信データを認証キーKabで復号化する。受信データの復号化方法は、Bの復号化処理と同様であるので、ここでは詳細を省略する。こうして得られたRb、Ra、Ksesの内、RbおよびRaが、Aが送信したものと一致するか検証する。この検証に通った場合、AはBを正当なものとして認証する。互いに相手を認証した後には、セッションキーKsesは、認証後の秘密通信のための共通鍵として利用される。
【0090】
なお、受信データの検証の際に、不正、不一致が見つかった場合には、相互認証が失敗したものとして処理を中断する。
【0091】
上述の認証処理においては、A,Bは共通の認証キーKabを共有する。この共通鍵Kabを上述の有効化キーブロック(EKB)を使用してデバイスに配信する。
【0092】
例えば、図12の例では、A,またはBのいずれかが他方が復号可能な有効化キーブロック(EKB)を生成して生成した有効化キーブロック(EKB)によって認証キーKabを暗号化して、他方に送信する構成としてもよいし、あるいは第3者がデバイスA,Bに対して双方が利用可能な有効化キーブロック(EKB)を生成してデバイスA,Bに対して生成した有効化キーブロック(EKB)によって認証キーKabを暗号化して配信する構成としてもよい。
【0093】
図13および図14に複数のデバイスに共通の認証キーKakeを有効化キーブロック(EKB)によって配信する構成例を示す。図13はデバイス0,1,2,3に対して復号可能な認証キーKakeを配信する例、図14はデバイス0,1,2,3中のデバイス3をリボーク(排除)してデバイス0,1,2に対してのみ復号可能な認証キーを配信する例を示す。
【0094】
図13の例では、更新ノードキーK(t)00によって、認証キーKakeを暗号化したデータ(b)とともに、デバイス0,1,2,3においてそれぞれの有するノードキー、リーフキーを用いて更新されたノードキーK(t)00を復号可能な有効化キーブロック(EKB)を生成して配信する。それぞれのデバイスは、図13の右側に示すようにまず、EKBを処理(復号)することにより、更新されたノードキーK(t)00を取得し、次に、取得したノードキーK(t)00を用いて暗号化された認証キー:Enc(K(t)00,Kake)を復号して認証キーKakeを得ることが可能となる。
【0095】
その他のデバイス4,5,6,7…は同一の有効化キーブロック(EKB)を受信しても自身の保有するノードキー、リーフキーでは、EKBを処理して更新されたノードキーK(t)00を取得することができないので、安全に正当なデバイスに対してのみ認証キーを送付することができる。
【0096】
一方、図14の例は、図3の点線枠で囲んだグループにおいてデバイス3が、例えば鍵の漏洩によりリボーク(排除)されているとして、他のグループのメンバ、すなわち、デバイス0,1,2,に対してのみ復号可能な有効化キーブロック(EKB)を生成して配信した例である。図14に示す(a)有効化キーブロック(EKB)と、(b)認証キー(Kake)をノードキー(K(t)00)で暗号化したデータを配信する。
【0097】
図14の右側には、復号手順を示してある。デバイス0,1,2は、まず、受領した有効化キーブロックから自身の保有するリーフキーまたはノードキーを用いた復号処理により、更新ノードキー(K(t)00)を取得する。次に、K(t)00による復号により認証キーKakeを取得する。
【0098】
図3に示す他のグループのデバイス4,5,6…は、この同様のデータ(EKB)を受信したとしても、自身の保有するリーフキー、ノードキーを用いて更新ノードキー(K(t)00)を取得することができない。同様にリボークされたデバイス3においても、自身の保有するリーフキー、ノードキーでは、更新ノードキー(K(t)00)を取得することができず、正当な権利を有するデバイスのみが認証キーを復号して利用することが可能となる。
【0099】
このように、EKBを利用した認証キーの配送を用いれば、データ量を少なくして、かつ安全に正当権利者のみが復号可能とした認証キーを配信することが可能となる。
【0100】
[公開鍵認証と有効化キーブロック(EKB)を使用したコンテンツキーの配信]
次に、公開鍵認証と有効化キーブロック(EKB)を使用したコンテンツキーの配信処理について説明する。まず、公開鍵暗号方式である160ビット長の楕円曲線暗号を用いた相互認証方法を、図15を用いて説明する。図15において、公開鍵暗号方式としてECCを用いているが、同様な公開鍵暗号方式であればいずれでもよい。また、鍵サイズも160ビットでなくてもよい。図15において、まずBが、64ビットの乱数Rbを生成し、Aに送信する。これを受信したAは、新たに64ビットの乱数Raおよび素数pより小さい乱数Akを生成する。そして、ベースポイントGをAk倍した点Av=Ak×Gを求め、Ra、Rb、Av(X座標とY座標)に対する電子署名A.Sigを生成し、Aの公開鍵証明書とともにBに返送する。ここで、RaおよびRbはそれぞれ64ビット、AvのX座標とY座標がそれぞれ160ビットであるので、合計448ビットに対する電子署名を生成する。
【0101】
Aの公開鍵証明書、Ra、Rb、Av、電子署名A.Sigを受信したBは、Aが送信してきたRbが、Bが生成したものと一致するか検証する。その結果、一致していた場合には、Aの公開鍵証明書内の電子署名を認証局の公開鍵で検証し、Aの公開鍵を取り出す。そして、取り出したAの公開鍵を用い電子署名A.Sigを検証する。
【0102】
次に、Bは、素数pより小さい乱数Bkを生成する。そして、ベースポイントGをBk倍した点Bv=Bk×Gを求め、Rb、Ra、Bv(X座標とY座標)に対する電子署名B.Sigを生成し、Bの公開鍵証明書とともにAに返送する。
【0103】
Bの公開鍵証明書、Rb、Ra、Av、電子署名B.Sigを受信したAは、Bが送信してきたRaが、Aが生成したものと一致するか検証する。その結果、一致していた場合には、Bの公開鍵証明書内の電子署名を認証局の公開鍵で検証し、Bの公開鍵を取り出す。そして、取り出したBの公開鍵を用い電子署名B.Sigを検証する。電子署名の検証に成功した後、AはBを正当なものとして認証する。
【0104】
両者が認証に成功した場合には、BはBk×Av(Bkは乱数だが、Avは楕円曲線上の点であるため、楕円曲線上の点のスカラー倍計算が必要)を計算し、AはAk×Bvを計算し、これら点のX座標の下位64ビットをセッションキーとして以降の通信に使用する(共通鍵暗号を64ビット鍵長の共通鍵暗号とした場合)。もちろん、Y座標からセッション鍵を生成してもよいし、下位64ビットでなくてもよい。なお、相互認証後の秘密通信においては、送信データはセッションキーで暗号化されるだけでなく、電子署名も付されることがある。
【0105】
電子署名の検証や受信データの検証の際に、不正、不一致が見つかった場合には、相互認証が失敗したものとして処理を中断する。
【0106】
図16に公開鍵認証と有効化キーブロック(EKB)を使用したコンテンツキーの配信処理例を示す。まずコンテンツプロバイダとPC間において図15で説明した公開鍵方式による認証処理が実行される。コンテンツプロバイダは、コンテンツキー配信先である再生装置、記録媒体の有するノードキー、リーフキーによって復号可能なEKBを生成して、更新ノードキーによる暗号化を実行したコンテンツキーE(Kcon)と、有効化キーブロック(EKB)とをPC間の認証処理において生成したセッションキーKsesで暗号化してPCに送信する。
【0107】
PCはセッションキーで暗号化された[更新ノードキーによる暗号化を実行したコンテンツキーE(Kcon)と、有効化キーブロック(EKB)]をセッションキーで復号した後、再生装置、記録媒体に送信する。
【0108】
再生装置、記録媒体は、自身の保有するノードキーまたはリーフキーによって[更新ノードキーによる暗号化を実行したコンテンツキーE(Kcon)と、有効化キーブロック(EKB)]を復号することによってコンテンツキーKconを取得する。
【0109】
この構成によれば、コンテンツプロバイダとPC間での認証を条件として[更新ノードキーによる暗号化を実行したコンテンツキーE(Kcon)と、有効化キーブロック(EKB)]が送信されるので、例えば、ノードキーの漏洩があった場合でも、確実な相手に対するデータ送信が可能となる。
【0110】
[プログラムコードの有効化キーブロック(EKB)を使用した配信]
上述した例では、コンテンツキー、認証キー等を有効化キーブロック(EKB)を用いて暗号化して配信する方法を説明したが、様々なプログラムコードを有効化キーブロック(EKB)を用いて配信する構成も可能である。すなわちEKBによる暗号化メッセージデータをプログラムコードとした例である。以下、この構成について説明する。
【0111】
図17にプログラムコードを有効化キーブロック(EKB)の例えば更新ノードキーによって暗号化してデバイス間で送信する例を示す。デバイス1701は、デバイス1702の有するノードキー、リーフキーによって復号可能な有効化キーブロック(EKB)と、有効化キーブロック(EKB)に含まれる更新ノードキーで暗号処理したプログラムコードをデバイス1702に送信する。デバイス1702は受信したEKBを処理して更新ノードキーを取得して、さらに取得した更新ノードキーによってプログラムコードの復号を実行して、プログラムコードを得る。
【0112】
図17に示す例では、さらに、デバイス1702において取得したプログラムコードによる処理を実行して、その結果をデバイス1701に返して、デバイス1701がその結果に基づいて、さらに処理を続行する例を示している。
【0113】
このように有効化キーブロック(EKB)と、有効化キーブロック(EKB)に含まれる更新ノードキーで暗号処理したプログラムコードを配信することにより、特定のデバイスにおいて解読可能なプログラムコードを前述の図3で示した特定のデバイス、あるいはグループに対して配信することが可能となる。
【0114】
[送信コンテンツに対するチェック値(ICV:Integrity Check Value)を対応させる構成]
次に、コンテンツの改竄を防止するためにコンテンツのインテグリティ・チェック値(ICV)を生成して、コンテンツに対応付けて、ICVの計算により、コンテンツ改竄の有無を判定する処理構成について説明する。
【0115】
コンテンツのインテグリティ・チェック値(ICV)は、例えばコンテンツに対するハッシュ関数を用いて計算され、ICV=hash(Kicv,C1,C2,…)によって計算される。KicvはICV生成キーである。C1,C2はコンテンツの情報であり、コンテンツの重要情報のメッセージ認証符号(MAC:Message authentication Code)が使用される。
【0116】
DES暗号処理構成を用いたMAC値生成例を図18に示す。図18の構成に示すように対象となるメッセージを8バイト単位に分割し、(以下、分割されたメッセージをM1、M2、・・・、MNとする)、まず、初期値(Initial Value(以下、IVとする))とM1を排他的論理和する(その結果をI1とする)。次に、I1をDES暗号化部に入れ、鍵(以下、K1とする)を用いて暗号化する(出力をE1とする)。続けて、E1およびM2を排他的論理和し、その出力I2をDES暗号化部へ入れ、鍵K1を用いて暗号化する(出力E2)。以下、これを繰り返し、全てのメッセージに対して暗号化処理を施す。最後に出てきたENがメッセージ認証符号(MAC(Message Authentication Code))となる。
【0117】
このようなコンテンツのMAC値とICV生成キーにハッシュ関数を適用して用いてコンテンツのインテグリティ・チェック値(ICV)が生成される。改竄のないことが保証された例えばコンテンツ生成時に生成したICVと、新たにコンテンツに基づいて生成したICVとを比較して同一のICVが得られればコンテンツに改竄のないことが保証され、ICVが異なれば、改竄があったと判定される。
【0118】
[チェック値(ICV)の生成キーKicvをEKBによって配布する構成]
次に、コンテンツのインテグリティ・チェック値(ICV)生成キーであるKicvを上述の有効化キーブロックによって送付する構成について説明する。すなわちEKBによる暗号化メッセージデータをコンテンツのインテグリティ・チェック値(ICV)生成キーとした例である。
【0119】
図19および図20に複数のデバイスに共通のコンテンツを送付した場合、それらのコンテンツの改竄の有無を検証するためのインテグリティ・チェック値生成キーKicvを有効化キーブロック(EKB)によって配信する構成例を示す。図19はデバイス0,1,2,3に対して復号可能なチェック値生成キーKicvを配信する例、図20はデバイス0,1,2,3中のデバイス3をリボーク(排除)してデバイス0,1,2に対してのみ復号可能なチェック値生成キーKicvを配信する例を示す。
【0120】
図19の例では、更新ノードキーK(t)00によって、チェック値生成キーKicvを暗号化したデータ(b)とともに、デバイス0,1,2,3においてそれぞれの有するノードキー、リーフキーを用いて更新されたノードキーK(t)00を復号可能な有効化キーブロック(EKB)を生成して配信する。それぞれのデバイスは、図19の右側に示すようにまず、EKBを処理(復号)することにより、更新されたノードキーK(t)00を取得し、次に、取得したノードキーK(t)00を用いて暗号化されたチェック値生成キー:Enc(K(t)00,Kicv)を復号してチェック値生成キーKicvを得ることが可能となる。
【0121】
その他のデバイス4,5,6,7…は同一の有効化キーブロック(EKB)を受信しても自身の保有するノードキー、リーフキーでは、EKBを処理して更新されたノードキーK(t)00を取得することができないので、安全に正当なデバイスに対してのみチェック値生成キーを送付することができる。
【0122】
一方、図20の例は、図3の点線枠で囲んだグループにおいてデバイス3が、例えば鍵の漏洩によりリボーク(排除)されているとして、他のグループのメンバ、すなわち、デバイス0,1,2,に対してのみ復号可能な有効化キーブロック(EKB)を生成して配信した例である。図20に示す(a)有効化キーブロック(EKB)と、(b)チェック値生成キー(Kicv)をノードキー(K(t)00)で暗号化したデータを配信する。
【0123】
図20の右側には、復号手順を示してある。デバイス0,1,2は、まず、受領した有効化キーブロックから自身の保有するリーフキーまたはノードキーを用いた復号処理により、更新ノードキー(K(t)00)を取得する。次に、K(t)00による復号によりチェック値生成キーKicvを取得する。
【0124】
図3に示す他のグループのデバイス4,5,6…は、この同様のデータ(EKB)を受信したとしても、自身の保有するリーフキー、ノードキーを用いて更新ノードキー(K(t)00)を取得することができない。同様にリボークされたデバイス3においても、自身の保有するリーフキー、ノードキーでは、更新ノードキー(K(t)00)を取得することができず、正当な権利を有するデバイスのみがチェック値生成キーを復号して利用することが可能となる。
【0125】
このように、EKBを利用したチェック値生成キーの配送を用いれば、データ量を少なくして、かつ安全に正当権利者のみが復号可能としたチェック値生成キーを配信することが可能となる。
【0126】
このようなコンテンツのインテグリティ・チェック値(ICV)を用いることにより、EKBと暗号化コンテンツの不正コピーを排除することができる。例えば図21に示すように、コンテンツC1とコンテンツC2とをそれぞれのコンテンツキーを取得可能な有効化キーブロック(EKB)とともに格納したメディア1があり、これをそのままメディア2にコピーした場合を想定する。EKBと暗号化コンテンツのコピーは可能であり、これをEKBを復号可能なデバイスでは利用できることになる。
【0127】
図21の(b)に示すように各メディアに正当に格納されたコンテンツに対応付けてインテグリティ・チェック値(ICV(C1,C2))を格納する構成とする。なお、(ICV(C1,C2))は、コンテンツC1とコンテンツC2にハッシュ関数を用いて計算されるコンテンツのインテグリティ・チェック値であるICV=hash(Kicv,C1,C2)を示している。図21の(b)の構成において、メディア1には正当にコンテンツ1とコンテンツ2が格納され、コンテンツC1とコンテンツC2に基づいて生成されたインテグリティ・チェック値(ICV(C1,C2))が格納される。また、メディア2には正当にコンテンツ1が格納され、コンテンツC1に基づいて生成されたインテグリティ・チェック値(ICV(C1))が格納される。この構成において、メディア1に格納された{EKB,コンテンツ2}をメディア2にコピーしたとすると、メディア2で、コンテンツチェック値を新たに生成するとICV(C1,C2)が生成されることになり、メディアに格納されているKicv(C1)と異なり、コンテンツの改竄あるいは不正なコピーによる新たなコンテンツの格納が実行されたことが明らかになる。メディアを再生するデバイスにおいて、再生ステップの前ステップにICVチェックを実行して、生成ICVと格納ICVの一致を判別し、一致しない場合は、再生を実行しない構成とすることにより、不正コピーのコンテンツの再生を防止することが可能となる。
【0128】
また、さらに、安全性を高めるため、コンテンツのインテグリティ・チェック値(ICV)を書き換えカウンタを含めたデータに基づいて生成する構成としてもよい。すなわちICV=hash(Kicv,counter+1,C1,C2,…)によって計算する構成とする。ここで、カウンタ(counter+1)は、ICVの書き換えごとに1つインクリメントされる値として設定する。なお、カウンタ値はセキュアなメモリに格納する構成とすることが必要である。
【0129】
さらに、コンテンツのインテグリティ・チェック値(ICV)をコンテンツと同一メディアに格納することができない構成においては、コンテンツのインテグリティ・チェック値(ICV)をコンテンツとは別のメディア上に格納する構成としてもよい。
【0130】
例えば、読み込み専用メディアや通常のMO等のコピー防止策のとられていないメディアにコンテンツを格納する場合、同一メディアにインテグリティ・チェック値(ICV)を格納するとICVの書き換えが不正なユーザによりなされる可能性があり、ICVの安全性が保てないおそれがある。この様な場合、ホストマシン上の安全なメディアにICVを格納して、コンテンツのコピーコントロール(例えばcheck-in/check-out、move)にICVを使用する構成とすることにより、ICVの安全な管理およびコンテンツの改竄チェックが可能となる。
【0131】
この構成例を図22に示す。図22では読み込み専用メディアや通常のMO等のコピー防止策のとられていないメディア2201にコンテンツが格納され、これらのコンテンツに関するインテグリティ・チェック値(ICV)を、ユーザが自由にアクセスすることの許可されないホストマシン上の安全なメディア2202に格納し、ユーザによる不正なインテグリティ・チェック値(ICV)の書き換えを防止した例である。このような構成として、例えばメディア2201を装着したデバイスがメディア2201の再生を実行する際にホストマシンであるPC、サーバにおいてICVのチェックを実行して再生の可否を判定する構成とすれば、不正なコピーコンテンツあるいは改竄コンテンツの再生を防止できる。
【0132】
[階層ツリー構造のカテゴリー分類]
暗号鍵をルートキー、ノードキー、リーフキー等、図3の階層ツリー構造として構成し、コンテンツキー、認証キー、ICV生成キー、あるいはプログラムコード、データ等を有効化キーブロック(EKB)とともに暗号化して配信する構成について説明してきたが、ノードキー等を定義している階層ツリー構造を各デバイスのカテゴリー毎に分類して効率的なキー更新処理、暗号化キー配信、データ配信を実行する構成について、以下説明する。
【0133】
図23に階層ツリー構造のカテゴリーの分類の一例を示す。図23において、階層ツリー構造の最上段には、ルートキーKroot2301が設定され、以下の中間段にはノードキー2302が設定され、最下段には、リーフキー2303が設定される。各デバイスは個々のリーフキーと、リーフキーからルートキーに至る一連のノードキー、ルートキーを保有する。
【0134】
ここで、一例として最上段から第M段目のあるノードをカテゴリノード2304として設定する。すなわち第M段目のノードの各々を特定カテゴリのデバイス設定ノードとする。第M段の1つのノードを頂点として以下、M+1段以下のノード、リーフは、そのカテゴリに含まれるデバイスに関するノードおよびリーフとする。
【0135】
例えば図23の第M段目の1つのノード2305にはカテゴリ[メモリステッイク(商標)]が設定され、このノード以下に連なるノード、リーフはメモリステッイクを使用した様々なデバイスを含むカテゴリ専用のノードまたはリーフとして設定される。すなわち、ノード2305以下を、メモリスティックのカテゴリに定義されるデバイスの関連ノード、およびリーフの集合として定義する。
【0136】
さらに、M段から数段分下位の段をサブカテゴリノード2306として設定することができる。例えば図に示すようにカテゴリ[メモリスティック]ノード2305の2段下のノードに、メモリスティックを使用したデバイスのカテゴリに含まれるサブカテゴリノードとして、[再生専用器]のノードを設定する。さらに、サブカテゴリノードである再生専用器のノード2306以下に、再生専用器のカテゴリに含まれる音楽再生機能付き電話のノード2307が設定され、さらにその下位に、音楽再生機能付き電話のカテゴリに含まれる[PHS]ノード2308と[携帯電話]ノード2309を設定することができる。
【0137】
さらに、カテゴリ、サブカテゴリは、デバイスの種類のみならず、例えばあるメーカー、コンテンツプロバイダ、決済機関等が独自に管理するノード、すなわち処理単位、管轄単位、あるいは提供サービス単位等、任意の単位(これらを総称して以下、エンティティと呼ぶ)で設定することが可能である。例えば1つのカテゴリノードをゲーム機器メーカーの販売するゲーム機器XYZ専用の頂点ノードとして設定すれば、メーカーの販売するゲーム機器XYZにその頂点ノード以下の下段のノードキー、リーフキーを格納して販売することが可能となり、その後、暗号化コンテンツの配信、あるいは各種キーの配信、更新処理を、その頂点ノードキー以下のノードキー、リーフキーによって構成される有効化キーブロック(EKB)を生成して配信し、頂点ノード以下のデバイスに対してのみ利用可能なデータが配信可能となる。
【0138】
このように、1つのノードを頂点としして、以下のノードをその頂点ノードに定義されたカテゴリ、あるいはサブカテゴリの関連ノードとして設定する構成とすることにより、カテゴリ段、あるいはサブカテゴリ段の1つの頂点ノードを管理するメーカー、コンテンツプロバイダ等がそのノードを頂点とする有効化キーブロック(EKB)を独自に生成して、頂点ノード以下に属するデバイスに配信する構成が可能となり、頂点ノードに属さない他のカテゴリのノードに属するデバイスには全く影響を及ぼさずにキー更新を実行することができる。
【0139】
[簡略EKBによるキー配信構成]
先に説明した例えば図3のツリー構成において、キー、例えばコンテンツキーを所定デバイス(リーフ)宛に送付する場合、キー配布先デバイスの所有しているリーフキー、ノードキーを用いて復号可能な有効化キーブロック(EKB)を生成して提供する。例えば図24(a)に示すツリー構成において、リーフを構成するデバイスa,g,jに対してキー、例えばコンテンツキーを送信する場合、a,g,jの各ノードにおいて復号可能な有効化キーブロック(EKB)を生成して配信する。
【0140】
例えば更新ルートキーK(t)rootでコンテンツキーK(t)conを暗号化処理し、EKBとともに配信する場合を考える。この場合、デバイスa,g,jは、それぞれが図24(b)に示すリーフおよびノードキーを用いて、EKBの処理を実行してK(t)rootを取得し、取得した更新ルートキーK(t)rootによってコンテンツキーK(t)conの復号処理を実行してコンテンツキーを得る。
【0141】
この場合に提供される有効化キーブロック(EKB)の構成は、図25に示すようになる。図25に示す有効化キーブロック(EKB)は、先の図6で説明した有効化キーブロック(EKB)のフォーマットにしたがって構成されたものであり、データ(暗号化キー)と対応するタグとを持つ。タグは、先に図7を用いて説明したように左(L)、右(R)、それぞれの方向にデータがあれば0、無ければ1を示している。
【0142】
有効化キーブロック(EKB)を受領したデバイスは、有効化キーブロック(EKB)の暗号化キーとタグに基づいて、順次暗号化キーの復号処理を実行して上位ノードの更新キーを取得していく。図25に示すように、有効化キーブロック(EKB)は、ルートからリーフまでの段数(デプス)が多いほど、そのデータ量は増加していく。段数(デプス)は、デバイス(リーフ)数に応じて増大するものであり、キーの配信先となるデバイス数が多い場合は、EKBのデータ量がさらに増大することになる。
【0143】
このような有効化キーブロック(EKB)のデータ量の削減を可能とした構成について説明する。図26は、有効化キーブロック(EKB)をキー配信デバイスに応じて簡略化して構成した例を示すものである。
【0144】
図25と同様、リーフを構成するデバイスa,g,jに対してキー、例えばコンテンツキーを送信する場合を想定する。図26の(a)に示すように、キー配信デバイスによってのみ構成されるツリーを構築する。この場合、図24(b)に示す構成に基づいて新たなツリー構成として図26(b)のツリー構成が構築される。KrootからKjまでは全く分岐がなく1つの枝のみが存在すればよく、KrootからKaおよびKgに至るためには、K0に分岐点を構成するのみで、2分岐構成の図26(a)のツリーが構築される。
【0145】
図26(a)に示すように、ノードとしてK0のみを持つ簡略化したツリーが生成される。更新キー配信のための有効化キーブロック(EKB)は、これらの簡略ツリーに基づいて生成する。図26(a)に示すツリーは、有効化キーブロック(EKB)を復号可能な末端ノードまたはリーフを最下段とした2分岐型ツリーを構成するパスを選択して不要ノードを省略することにより再構築される再構築階層ツリーである。更新キー配信のための有効化キーブロック(EKB)は、この再構築階層ツリーのノードまたはリーフに対応するキーのみに基づいて構成される。
【0146】
先の図25で説明した有効化キーブロック(EKB)は、各リーフa,g,jからKrootに至るまでのすべてのキーを暗号化したデータを格納していたが、簡略化EKBは、簡略化したツリーを構成するノードについてのみの暗号化データを格納する。図26(b)に示すようにタグは3ビット構成を有する。第1および第2ビットは、図25の例と、同様の意味を持ち、左(L)、右(R)、それぞれの方向にデータがあれば0、無ければ1を示す。第3番目のビットは、EKB内に暗号化キーが格納されているか否かを示すためのビットであり、データが格納されている場合は1、データが無い場合は、0として設定される。
【0147】
データ通信網、あるいは記憶媒体に格納されてデバイス(リーフ)に提供される有効化キーブロック(EKB)は、図26(b)に示すように、図25に示す構成に比較すると、データ量が大幅に削減されたものとなる。図26に示す有効化キーブロック(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を取得する。
【0148】
このように、配信先のデバイスによってのみ構成される簡略化した新たなツリー構成を構築して、構築されたツリーを構成するリーフおよびノードのキーのみを用いて有効化キーブロック(EKB)を生成することにより、少ないデータ量の有効化キーブロック(EKB)を生成することが可能となり、有効化キーブロック(EKB)のデータ配信が効率的に実行可能となる。
【0149】
なお、簡略化した階層ツリー構成は、後段で説明するエンティテイ単位のEKB管理構成において特に有効に活用可能である。エンティテイは、キー配信構成としてのツリー構成を構成するノードあるいはリーフから選択した複数のノードあるいはリーフの集合体ブロックである。エンティテイは、デバイスの種類に応じて設定される集合であったり、あるいはデバイス提供メーカー、コンテンツプロバイダ、決済機関等の管理単位等、ある共通点を持った処理単位、管轄単位、あるいは提供サービス単位等、様々な態様の集合として設定される。1つのエンティテイには、ある共通のカテゴリに分類されるデバイスが集まっており、例えば複数のエンティテイの頂点ノード(サブルート)によって上述したと同様の簡略化したツリーを再構築してEKBを生成することにより、選択されたエンティテイに属するデバイスにおいて復号可能な簡略化された有効化キーブロック(EKB)の生成、配信が可能となる。エンティテイ単位の管理構成については後段で詳細に説明する。
【0150】
なお、このような有効化キーブロック(EKB)は、光ディスク、DVD等の情報記録媒体に格納した構成とすることが可能である。例えば、上述の暗号化キーデータによって構成されるデータ部と、暗号化キーデータの階層ツリー構造における位置識別データとしてのタグ部とを含む有効化キーブロック(EKB)にさらに、更新ノードキーによって暗号化したコンテンツ等のメッセージデータとを格納した情報記録媒体を各デバイスに提供する構成が可能である。デバイスは有効化キーブロック(EKB)に含まれる暗号化キーデータをタグ部の識別データにしたがって順次抽出して復号し、コンテンツの復号に必要なキーを取得してコンテンツの利用を行なうことが可能となる。もちろん、有効化キーブロック(EKB)をインターネット等のネットワークを介して配信する構成としてもよい。
【0151】
[エンティテイ単位のEKB管理構成]
次に、キー配信構成としてのツリー構成を構成するノードあるいはリーフを、複数のノードあるいはリーフの集合としてのブロックで管理する構成について説明する。なお、複数のノードあるいはリーフの集合としてのブロックを以下エンティテイと呼ぶ。エンティテイは、デバイスの種類に応じて設定される集合であったり、あるいはデバイス提供メーカー、コンテンツプロバイダ、決済機関等の管理単位等、ある共通点を持った処理単位、管轄単位、あるいは提供サービス単位等、様々な態様の集合として設定される。すなわち、エンティテイは、デバイス種類、サービス種類、管理手段種類等の共通のカテゴリに属するデバイスあるいはエンティテイの管理主体として定義される。
【0152】
エンティテイについて、図27を用いて説明する。図27(a)はツリーのエンティテイ単位での管理構成を説明する図である。1つのエンティテイは図では、三角形として示し、例えば1エンティテイ2701内には、複数のノードが含まれる。1エンティテイ内のノード構成を示すのが(b)である。1つのエンティテイは、1つのノードを頂点とした複数段の2分岐形ツリーによって構成される。以下、エンティテイの頂点ノード2702をサブルートと呼ぶ。
【0153】
ツリーの末端は、(c)に示すようにリーフ、すなわちデバイスによって構成される。デバイスは、複数デバイスをリーフとし、サブルートである頂点ノード2702を持つツリーによって構成されるいずれかのエンティテイに属する。
【0154】
図27(a)から理解されるように、エンティテイは、階層構造を持つ。この階層構造について、図28を用いて説明する。
【0155】
図28(a)は、階層構造を簡略化して説明するための図であり、Krootから数段下の段にエンティテイA01〜Annが構成され、エンティテイA1〜Anの下位には、さらに、エンティテイB01〜Bnk、さらに、その下位にエンティテイC1〜Cnqが設定されている。各エンティテイは、図28(b),(c)に示す如く、複数段のノード、リーフによって構成されるツリー形状を持つ。
【0156】
例えばエンティテイBnkの構成は、(b)に示すように、サブルート2811を頂点ノードとして、末端ノード2812に至るまでの複数ノードを有する。このエンティテイは識別子Bnkを持ち、エンティテイBnk内のノードに対応するノードキー管理をエンティテイBnk独自に実行することにより、末端ノード2812を頂点として設定される下位(子)エンティテイの管理を実行する。また、一方、エンティテイBnkは、サブルート2811を末端ノードとして持つ上位(親)エンティテイAnnの管理下にある。
【0157】
エンティテイCn3の構成は、(c)に示すように、サブルート2851を頂点ノードとして、各デバイスである末端ノード2852、この場合はリーフに至るまで複数ノード、リーフを有する。このエンティテイは識別子Cn3を持ち、エンティテイCn3内のノード、リーフに対応するノードキー、リーフキー管理をエンティテイCn3独自に実行することにより、末端ノード2852に対応するリーフ(デバイス)の管理を実行する。また、一方、エンティテイCn3は、サブルート2851を末端ノードとして持つ上位(親)エンティテイBn2の管理下にある。各エンティテイにおけるキー管理とは、例えばキー更新処理、リボーク処理等であるが、これらは後段で詳細に説明する。
【0158】
最下段エンティテイのリーフであるデバイスには、デバイスの属するエンティテイのリーフキーから、自己の属するエンティテイの頂点ノードであるサブルートノードに至るパスに位置する各ノードのノードキーおよびリーフキーが格納される。例えば末端ノード2852のデバイスは、末端ノード(リーフ)2852から、サブルートノード2851までの各キーを格納する。
【0159】
図29を用いて、さらにエンティテイの構成について説明する。エンティテイは様々な段数によって構成されるツリー構造を持つことが可能である。段数、すなわちデプス(depth)は、エンティテイで管理する末端ノードに対応する下位(子)エンティテイの数、あるいはリーフとしてのデバイス数に応じて設定可能である。
【0160】
図29の(a)に示すような上下エンティテイ構成を具体化すると、(b)に示す態様となる。ルートエンティテイは、ルートキーを持つ最上段のエンティテイである。ルートエンティテイの末端ノードに複数の下位エンティテイとしてエンティテイA,B,Cが設定され、さらに、エンティテイCの下位エンティテイとしてエンティテイDが設定される。エンティテイCは2901は、その末端ノードの1つ以上のノードをリザーブノード2950として保持し、自己の管理するエンティテイを増加させる場合、さらに複数段のツリー構成を持つエンティテイC’2902をリザーブノード2950を頂点ノードとして新設することにより、管理末端ノード2970を増加させて、管理末端ノードに増加した下位エンティテイを追加することができる。
【0161】
リザーブノードについて、さらに図30を用いて説明する。エンティテイA,3011は、管理する下位エンティテイB,C,D…を持ち、1つのリザーブノード3021を持つ。エンティテイは管理対象の下位エンティテイをさらに増加させたい場合、リザーブノード3021に、自己管理の下位エンティテイA’,3012を設定し、下位エンティテイA’,3012の末端ノードにさらに管理対象の下位エンティテイF,Gを設定することができる。自己管理の下位エンティテイA’,3012も、その末端ノードの少なくとも1つをリザーブノード3022として設定することにより、さらに下位エンティテイA’’3013を設定して、さらに管理エンティテイを増加させることができる。下位エンティテイA’’3013の末端ノードにも1以上のリザーブノードを確保する。このようなリザーブノード保有構成をとることにより、あるエンティテイの管理する下位エンティテイは、際限なく増加させることが可能となる。なお、リザーブエンティテイは、末端ノードの1つのみではなく、複数個設定する構成としてもよい。
【0162】
それぞれのエンティテイでは、エンティテイ単位で有効化キーブロック(EKB)が構成され、エンティテイ単位でのキー更新、リボーク処理を実行することになる。図30のように複数のエンティテイA,A’,A’’には各エンティテイ個々の有効化キーブロック(EKB)が設定されることになるが、これらは、エンティテイA,A’,A’’を共通に管理する例えばあるデバイスメーカーが一括して管理することが可能である。
【0163】
[新規エンティテイの登録処理]
次に、新規エンティテイの登録処理について説明する。登録処理シーケンスを図31に示す。図31のシーケンスにしたがって説明する。新たにツリー構成中に追加される新規(子)エンティテイ(N−En)は、上位(親)エンティテイ(P−En)に対して新規登録要求を実行する。なお、各エンティテイは、公開鍵暗号方式に従った公開鍵を保有し、新規エンティテイは自己の公開鍵を登録要求に際して上位エンティテイ(P−En)に送付する。
【0164】
登録要求を受領した上位エンティテイ(P−En)は、受領した新規(子)エンティテイ(N−En)の公開鍵を証明書発行局(CA:Certificate Authority)に転送し、CAの署名を付加した新規(子)エンティテイ(N−En)の公開鍵を受領する。これらの手続きは、上位エンティテイ(P−En)と新規(子)エンティテイ(N−En)との相互認証の手続きとして行われる。
【0165】
これらの処理により、新規登録要求エンティテイの認証が終了すると、上位エンティテイ(P−En)は、新規(子)エンティテイ(N−En)の登録を許可し、新規(子)エンティテイ(N−En)のノードキーを新規(子)エンティテイ(N−En)に送信する。このノードキーは、上位エンティテイ(P−En)の末端ノードの1つのノードキーであり、かつ、新規(子)エンティテイ(N−En)の頂点ノード、すなわちサブルートキーに対応する。
【0166】
このノードキー送信が終了すると、新規(子)エンティテイ(N−En)は、新規(子)エンティテイ(N−En)のツリー構成を構築し、構築したツリーの頂点に受信した頂点ノードのサブルートキーを設定し、各ノード、リーフのキーを設定して、エンティテイ内の有効化キーブロック(EKB)を生成する。1つのエンティテイ内の有効化キーブロック(EKB)をサブEKBと呼ぶ。
【0167】
一方、上位エンティテイ(P−En)は、新規(子)エンティテイ(N−En)の追加により、有効化する末端ノードを追加した上位エンティテイ(P−En)内のサブEKBを生成する。
【0168】
新規(子)エンティテイ(N−En)は、新規(子)エンティテイ(N−En)内のノードキー、リーフキーによって構成されるサブEKBを生成すると、これを上位エンティテイ(P−En)に送信する。
【0169】
新規(子)エンティテイ(N−En)からサブEKBを受信した上位エンティテイ(P−En)は、受信したサブEKBと、上位エンティテイ(P−En)の更新したサブEKBとをキー発行センター(KDC:Key Distribute Center)に送信する。
【0170】
キー発行センター(KDC)は、すべてのエンティテイのサブEKBに基づいて、様々な態様のEKB、すなわち特定のエンティテイあるいはデバイスのみが復号可能なEKBを生成することが可能となる。このように復号可能なエンティテイあるいはデバイスを設定したEKBを例えばコンテンツプロバイダに提供し、コンテンツプロバイダがEKBに基づいてコンテンツキーを暗号化して、ネットワークを介して、あるいは記録媒体に格納して提供することにより、特定のデバイスでのみ利用可能なコンテンツを提供することが可能となる。
【0171】
なお、新規エンティテイのサブEKBのキー発行センター(KDC)に対する登録処理は、サブEKBを上位エンティテイを介してを順次転送して実行する方法に限るものではなく、上位エンティテイを介さずに、新規登録エンティテイから直接、キー発行センター(KDC)に登録する処理を実行する構成としてもよい。
【0172】
上位エンティテイと、上位エンティテイに新規追加する下位エンティテイとの対応について図32を用いて説明する。上位エンティテイの末端ノードの1つ3201を新規追加エンティテイの頂点ノードとして、下位エンティテイに提供することによって下位エンティテイは、上位エンティテイの管理下のエンティテイとして追加される。上位エンティテイの管理下のエンティテイとは、後段で詳細に説明するが、下位エンティテイのリボーク(排除)処理を上位エンティテイが実行できる構成であるという意味を含むものである。
【0173】
図32に示すように、上位エンティテイに新規エンティテイが設定されると、上位エンティテイのリーフである末端ノードの1つのノード3201と新規追加エンティテイの頂点ノード3202とが等しいノードとして設定される。すなわち上位ノードの1つのリーフである1つの末端ノードが、新規追加エンティテイのサブルートとして設定される。このように設定されることにより、新規追加エンティテイが全体ツリー構成の下で有効化される。
【0174】
図33に新規追加エンティテイを設定した際に上位エンティテイが生成する更新EKBの例を示す。図33は、(a)に示す構成、すなわち既に有効に存在する末端ノード(node000)3301と末端ノード(node001)3302があり、ここに新規追加エンティテイに新規エンティテイ追加末端ノード(node100)3303を付与した際に上位エンティテイが生成するサブEKBの例を示したものである。
【0175】
サブEKBは、図33の(b)に示すようにな構成を持つ。それぞれ有効に存在する末端ノードキーにより暗号化された上位ノードキー、上位ノードキーで暗号化されたさらなる上位ノードキー、…さらに上位に進行してサブルートキーに至る構成となっている。この構成によりサブEKBが生成される。各エンティテイは図33(b)に示すと同様、有効な末端ノード、あるいはリーフキーにより暗号化された上位ノードキー、上位ノードキーでさらに上位のノードキーを暗号化し、順次上位に深厚してサブルートに至る暗号化データによって構成されるEKBを有し、これを管理する。
【0176】
[エンティテイ管理下におけるリボーク処理]
次に、キー配信ツリー構成をエンティテイ単位として管理する構成におけるデバイスあるいはエンティテイのリボーク(排除)処理について説明する。先の図3,4では、ツリー構成全体の中から特定のデバイスのみ復号可能で、リボークされたデバイスは復号不可能な有効化キーブロック(EKB)を配信する処理について説明した。図3,4で説明したリボーク処理は、ツリー全体の中から特定のリーフであるデバイスをリボークする処理であったが、ツリーのエンティテイ管理による構成では、エンティテイ毎にリボーク処理が実行可能となる。
【0177】
図34以下の図を用いてエンティテイ管理下のツリー構成におけるリボーク処理について説明する。図34は、ツリーを構成するエンティテイのうち、最下段のエンティテイ、すなわち個々のデバイスを管理しているエンティテイによるデバイスのリボーク処理を説明する図である。
【0178】
図34(a)は、エンティテイ管理によるキー配信ツリー構造を示している。ツリー最上位にはルートノードが設定され、その数段下にエンティテイA01〜Ann、さらにその下位段にB01〜Bnkのエンティテイ、さらにその下位段にC1〜cnのエンティテイが構成されている。最も下のエンティテイは、末端ノード(リーフ)が個々のデバイス、例えば記録再生器、再生専用器等であるとする。
【0179】
ここで、リボーク処理は、各エンティテイにおいて独自に実行される。例えば、最下段のエンティテイC1〜Cnでは、リーフのデバイスのリボーク処理が実行される。図34(b)には、最下段のエンティテイの1つであるエンティテイCn,3430のツリー構成を示している。エンティテイCn,3430は、頂点ノード3431を持ち、末端ノードであるリーフに複数のデバイスを持つ構成である。
【0180】
この末端ノードであるリーフ中に、リボーク対象となるデバイス、例えばデバイス3432があったとすると、エンティテイCn,3430は、独自に更新したエンティテイCn内のノードキー、リーフキーによって構成される有効化キーブロック(サブEKB)を生成する。この有効化キーブロックは、リボークデバイス3432においては復号できず、他のリーフを構成するデバイスにおいてのみ復号可能な暗号化キーにより構成されるキーブロックである。エンティテイCnの管理者は、これを更新されたサブEKBとして生成する。具体的には、サブルートからリボークデバイス3432に連なるパスを構成する各ノード3431,3434,3435のノードキーを更新して、この更新ノードキーをリボークデバイス3432以外のリーフデバイスにおいてのみ復号可能な暗号化キーとして構成したブロックを更新サブEKBとする。この処理は、先の図3,4において説明したリボーク処理構成において、ルートキーを、エンティテイの頂点キーであるサブルートキーに置き換えた処理に対応する。
【0181】
このようにエンティテイCn,3430がリボーク処理によって更新した有効化キーブロック(サブEKB)は、上位エンティテイに送信される。この場合、上位エンティテイはエンティテイBnk,3420であり、エンティテイCn,3430の頂点ノード3431を末端ノードとして有するエンティテイである。
【0182】
エンティテイBnk,3420は、下位エンティテイCn,3430から有効化キーブロック(サブEKB)を受領すると、そのキーブロックに含まれるエンティテイCnk,3430の頂点ノード3431に対応するエンティテイBnk,3420の末端ノード3431を、下位エンティテイCn,3430において更新されたキーに設定して、自身のエンティテイBnk,3420のサブEKBの更新処理を実行する。図34(c)にエンティテイBnk,3420のツリー構成を示す。エンティテイBnk,3420において、更新対象となるノードキーは、図34(c)のサブルート3421からリボークデバイスを含むエンティテイを構成する末端ノード3431に至るパス上のノードキーである。すなわち、更新サブEKBを送信してきたエンティテイのノード3431に連なるパスを構成する各ノード3421,3424,3425のノードキーが更新対象となる。これら各ノードのノードキーを更新してエンティテイBnk,3420の新たな更新サブEKBを生成する。
【0183】
あるいは、エンティテイBnk,3720は、下位エンティテイCn,3730のリボークを実行する場合、エンティテイCnk,3730の頂点ノード3731に対応するエンティテイBnk,3720の末端ノード3731は更新せず、そのリボークエンティテイ3730からエンティテイBnk,3720のサブルートまでのパス上の末端ノード3731を除くノードキーの更新を行ない有効化キーブロックを生成して更新サブEKBを生成してもよい。
【0184】
さらに、エンティテイBnk,3420が更新した有効化キーブロック(サブEKB)は、上位エンティテイに送信される。この場合、上位エンティテイはエンティテイAnn,3410であり、エンティテイBnk,3420の頂点ノード3421を末端ノードとして有するエンティテイである。
【0185】
エンティテイAnn,3410は、下位エンティテイBnk,3420から有効化キーブロック(サブEKB)を受領すると、そのキーブロックに含まれるエンティテイBnk,3420の頂点ノード3421に対応するエンティテイAnn,3410の末端ノード3421を、下位エンティテイBnk,3420において更新されたキーに設定して、自身のエンティテイAnn,3410のサブEKBの更新処理を実行する。図34(d)にエンティテイAnn,3410のツリー構成を示す。エンティテイAnn,3410において、更新対象となるノードキーは、図34(d)のサブルート3411から更新サブEKBを送信してきたエンティテイのノード3421に連なるパスを構成する各ノード3411,3414,3415のノードキーである。これら各ノードのノードキーを更新してエンティテイAnn,3410の新たな更新サブEKBを生成する。
【0186】
これらの処理を順次、上位のエンティテイにおいて実行し、図29(b)で説明したルートエンティテイまで実行する。この一連の処理により、デバイスのリボーク処理が完結する。なお、それぞれのエンティテイにおいて更新されたサブEKBは、最終的にキー発行センター(KDC)に送信され、保管される。キー発行センター(KDC)は、すべてのエンティテイの更新サブEKBに基づいて、様々なEKBを生成する。更新EKBは、リボークされたデバイスでの復号が不可能な暗号化キーブロックとなる。
【0187】
デバイスのリボーク処理のシーケンス図を図35に示す。処理手順を図35のシーケンス図に従って説明する。まず、ツリー構成の最下段にあるデバイス管理エンティテイ(D−En)は、デバイス管理エンティテイ(D−En)内のリボーク対象のリーフを排除するために必要なキー更新を行ない、デバイス管理エンティテイ(D−En)の新たなサブEKB(D)を生成する。更新サブEKB(D)は、上位エンティテイに送付される。更新サブEKB(D)を受領した上位(親)エンティテイ(P1−En)は、更新サブEKB(D)の更新頂点ノードに対応した末端ノードキーの更新および、その末端ノードからサブルートに至るパス上のノードキーを更新した更新サブEKB(P1)を生成する。これらの処理を順次、上位エンティテイにおいて実行して、最終的に更新されたすべてのサブEKBがキー発行センター(KDC)に格納され管理される。
【0188】
図36にデバイスのリボーク処理によって上位エンティテイが更新処理を行なって生成する有効化キーブロック(EKB)の例を示す。
【0189】
図36は、(a)に示す構成において、リボークデバイスを含む下位エンティテイから更新サブEKBを受信した上位エンティテイにおいて生成するEKBの例を説明する図である。リボークデバイスを含む下位エンティテイの頂点ノードは、上位エンティテイの末端ノード(node100)3601に対応する。
【0190】
上位エンティテイは、上位エンティテイのサブルートから末端ノード(node100)3601までのパスに存在するノードキーを更新して新たな更新サブEKBを生成する。更新サブEKBは、図36(b)のようになる。更新されたキーは、下線および[’]を付して示してある。このように更新された末端ノードからサブルートまでのパス上のノードキーを更新してそのエンティテイにおける更新サブEKBとする。
【0191】
次に、リボークする対象をエンティテイとした場合の処理、すなわちエンティテイのリボーク処理について説明する。
【0192】
図37(a)は、エンティテイ管理によるキー配信ツリー構造を示している。ツリー最上位にはルートノードが設定され、その数段下にエンティテイA01〜Ann、さらにその下位段にB01〜Bnkのエンティテイ、さらにその下位段にC1〜cnのエンティテイが構成されている。最も下のエンティテイは、末端ノード(リーフ)が個々のデバイス、例えば記録再生器、再生専用器等であるとする。
【0193】
ここで、リボーク処理を、エンティテイCn,3730に対して実行する場合について説明する。最下段のエンティテイCn,3730は、図37(b)に示すように頂点ノード3431を持ち、末端ノードであるリーフに複数のデバイスを持つ構成である。
【0194】
エンティテイCn,3730をリボークすることにより、エンティテイCn,3730に属するすべてのデバイスのツリー構造からの一括排除が可能となる。エンティテイCn,3730のリボーク処理は、エンティテイCn,3730の上位エンティテイであるエンティテイBnk,3720において実行される。エンティテイBnk,3720は、エンティテイCn,3730の頂点ノード3731を末端ノードとして有するエンティテイである。
【0195】
エンティテイBnk,3720は、下位エンティテイCn,3730のリボークを実行する場合、エンティテイCnk,3730の頂点ノード3731に対応するエンティテイBnk,3720の末端ノード3731を更新し、さらに、そのリボークエンティテイ3730からエンティテイBnk,3720のサブルートまでのパス上のノードキーの更新を行ない有効化キーブロックを生成して更新サブEKBを生成する。更新対象となるノードキーは、図37(c)のサブルート3721からリボークエンティテイの頂点ノードを構成する末端ノード3731に至るパス上のノードキーである。すなわち、ノード3721,3724,3725,3731のノードキーが更新対象となる。これら各ノードのノードキーを更新してエンティテイBnk,3720の新たな更新サブEKBを生成する。
【0196】
さらに、エンティテイBnk,3720が更新した有効化キーブロック(サブEKB)は、上位エンティテイに送信される。この場合、上位エンティテイはエンティテイAnn,3710であり、エンティテイBnk,3720の頂点ノード3721を末端ノードとして有するエンティテイである。
【0197】
エンティテイAnn,3710は、下位エンティテイBnk,3720から有効化キーブロック(サブEKB)を受領すると、そのキーブロックに含まれるエンティテイBnk,3720の頂点ノード3721に対応するエンティテイAnn,3710の末端ノード3721を、下位エンティテイBnk,3720において更新されたキーに設定して、自身のエンティテイAnn,3710のサブEKBの更新処理を実行する。図37(d)にエンティテイAnn,3710のツリー構成を示す。エンティテイAnn,3710において、更新対象となるノードキーは、図37(d)のサブルート3711から更新サブEKBを送信してきたエンティテイのノード3721に連なるパスを構成する各ノード3711,3714,3715のノードキーである。これら各ノードのノードキーを更新してエンティテイAnn,3710の新たな更新サブEKBを生成する。
【0198】
これらの処理を順次、上位のエンティテイにおいて実行し、図29(b)で説明したルートエンティテイまで実行する。この一連の処理により、エンティテイのリボーク処理が完結する。なお、それぞれのエンティテイにおいて更新されたサブEKBは、最終的にキー発行センター(KDC)に送信され、保管される。キー発行センター(KDC)は、すべてのエンティテイの更新サブEKBに基づいて、様々なEKBを生成する。更新EKBは、リボークされたエンティテイに属するデバイスでの復号が不可能な暗号化キーブロックとなる。
【0199】
エンティテイのリボーク処理のシーケンス図を図38に示す。処理手順を図38のシーケンス図に従って説明する。まず、エンティテイをリボークしようとするエンティテイ管理エンティテイ(E−En)は、エンティテイ管理エンティテイ(E−En)内のリボーク対象の末端ノードを排除するために必要なキー更新を行ない、エンティテイ管理エンティテイ(E−En)の新たなサブEKB(E)を生成する。更新サブEKB(E)は、上位エンティテイに送付される。更新サブEKB(E)を受領した上位(親)エンティテイ(P1−En)は、更新サブEKB(E)の更新頂点ノードに対応した末端ノードキーの更新および、その末端ノードからサブルートに至るパス上のノードキーを更新した更新サブEKB(P1)を生成する。これらの処理を順次、上位エンティテイにおいて実行して、最終的に更新されたすべてのサブEKBがキー発行センター(KDC)に格納され管理される。キー発行センター(KDC)は、すべてのエンティテイの更新サブEKBに基づいて、様々なEKBを生成する。更新EKBは、リボークされたエンティテイに属するデバイスでの復号が不可能な暗号化キーブロックとなる。
【0200】
図39にリボークされた下位エンティテイと、リボークを行なった上位エンティテイの対応を説明する図を示す。上位エンティテイの末端ノード3901は、エンティテイのリボークにより更新され、上位エンティテイのツリーにおける末端ノード3901からサブルートまでのパスに存在するノードキーの更新により、新たなサブEKBが生成される。その結果、リボークされた下位エンティテイの頂点ノード3902のノードキーと、上位エンティテイの末端ノード3901のノードキーは不一致となる。エンティテイのリボーク後にキー発行センター(KDC)によって生成されるEKBは、上位エンティテイにおいて更新された末端ノード3901のキーに基づいて生成されることになるので、その更新キーを保有しない下位エンティテイのリーフに対応するデバイスは、キー発行センター(KDC)によって生成されるEKBの復号ガ不可能になる。
【0201】
なお、上述の説明では、デバイスを管理する最下段のエンティテイのリボーク処理について説明したが、ツリーの中段にあるエンティテイ管理エンティテイをその上位エンティテイがリボークする処理も上記と同様のプロセスによって可能である。中段のエンティティ管理エンティテイをリボークすることにより、リボークされたエンティテイ管理エンティテイの下位に属するすべての複数エンティテイおよびデバイスを一括してリボーク可能となる。
【0202】
このように、エンティテイ単位でのリボークを実行することにより、1つ1つのデバイス単位で実行するリボーク処理に比較して簡易なプロセスでのリボーク処理が可能となる。
【0203】
[エンティテイのケイパビリティ管理]
次に、エンティテイ単位でのキー配信ツリー構成において、各エンティティの許容するケイパビリティ(Capability)を管理して、ケイパビリティに応じたコンテンツ配信を行なう処理構成について説明する。ここでケイパビリティとは、例えば特定の圧縮音声データの復号が可能であるとか、特定の音声再生方式を許容するとか、あるいは特定の画像処理プログラムを処理できる等、デバイスがどのようなコンテンツ、あるいはプログラム等を処理できるデバイスであるか、すなわちデバイスのデータ処理能力の定義情報である。
【0204】
図40にケイパビリティを定義したエンティテイ構成例を示す。キー配信ツリー構成の最頂点ににルートノードが位置し、下層に複数のエンティテイが接続されて各ノードが2分岐を持つツリー構成である。ここで、例えばエンティテイ4001は、音声再生方式A,B,Cのいずれかを許容するケイパビリティを持つエンティテイとして定義される。具体的には、例えばある音声圧縮プログラム−A、B、またはC方式で圧縮した音楽データを配信した場合に、エンティテイ4001以下に構成されたエンティテイに属するデバイスは圧縮データを伸長する処理が可能である。
【0205】
同様にエンティテイ4002は音声再生方式BまたはC、エンティテイ4003は音声再生方式AまたはB、エンティテイ4004は音声再生方式B、エンティテイ4005は音声再生方式Cを処理することが可能なケイパビリティを持つエンティテイとして定義される。
【0206】
一方、エンティテイ4021は、画像再生方式p,q,rを許容するエンティテイとして定義され、エンティテイ4022は方式p,qの画像再生方式、エンティテイ4023は方式pの画像再生が可能なケイパビリティを持つエンティテイとして定義される。
【0207】
このような各エンティテイのケイパビリティ情報は、キー発行センター(KDC)において管理される。キー発行センター(KDC)は、例えばあるコンテンツプロバイダが特定の圧縮プログラムで圧縮した音楽データを様々なデバイスに配信したい場合、その特定の圧縮プログラムを再生可能なデバイスに対してのみ復号可能な有効化キーブロック(EKB)を各エンティテイのケイパビリティ情報に基づいて生成することができる。コンテンツを提供するコンテンツプロバイダは、ケイパビリティ情報に基づいて生成した有効化キーブロック(EKB)によって暗号化したコンテンツキーを配信し、そのコンテンツキーで暗号化した圧縮音声データを各デバイスに提供する。この構成により、データの処理が可能なデバイスに対してのみ特定の処理プログラムを確実に提供することが可能となる。
【0208】
なお、図40では全てのエンティテイについてケイパビリティ情報を定義している構成であるが、図40の構成ようにすべてのエンティテイにケイパビリティ情報を定義することは必ずしも必要ではなく、例えば図41に示すようにデバイスが属する最下段のエンティテイについてのみケイパビリティを定義して、最下段のエンティテイに属するデバイスのケイパビリティをキー発行センター(KDC)において管理して、コンテンツプロバイダが望む処理の可能なデバイスにのみ復号可能な有効化キーブロック(EKB)を最下段のエンティテイに定義されたケイパビリティ情報に基づいて生成する構成としてもよい。図41では、末端ノードにデバイスが定義されたエンティテイ4101=4105におけるケイパビリテイが定義され、これらのエンティテイについてのケイパビリティをキー発行センター(KDC)において管理する構成である。例えばエンティテイ4101には音声再生については方式B、画像再生については方式rの処理が可能なデバイスが属している。エンティテイ4102には音声再生については方式A、画像再生については方式qの処理が可能なデバイスが属している等である。
【0209】
図42にキー発行センター(KDC)において管理するケイパビリティ管理テーブルの構成例を示す。ケイパビリティ管理テーブルは、図42(a)のようなデータ構成を持つ。すなわち、各エンティテイを識別する識別子としてのエンティテイID、そのエンティテイに定義されたケイパビリティを示すケイパビリティリスト、このケイパビリティリストは図42(b)に示すように、例えば音声データ再生処理方式(A)が処理可能であれば[1]、処理不可能であれは[0]、音声データ再生処理方式(B)が処理可能であれば[1]、処理不可能であれは[0]…等、様々な態様のデータ処理についての可否を1ビットづつ[1]または[0]を設定して構成されている。なお、このケイパビリティ情報の設定方法はこのような形式に限らず、エンティテイの管理デバイスについてのケイパビリティを識別可能であれば他の構成でもよい。
【0210】
ケイパビリティ管理テーブルには、さらに、各エンティテイのサブEKB、あるいはサブEKBが別のデータベースに格納されている場合は、サブEKBの識別情報が格納され、さらに、各エンティテイのサブルートノード識別データが格納される。
【0211】
キー発行センター(KDC)は、ケイパビリティ管理テーブルに基づいて、例えば特定のコンテンツの再生可能なデバイスのみが復号可能な有効化キーブロック(EKB)を生成する。図43を用いて、ケイパビリティ情報に基づく有効化キーブロックの生成処理について説明する。
【0212】
まず、ステップS4301において、キー発行センター(KDC)は、ケイパビリティ管理テーブルから、指定されたケイパビリティを持つエンティテイを選択する。具体的には、例えばコンテンツプロバイダが音声データ再生処理方式Aに基づく再生可能なデータを配信したい場合は、図42(a)のケイパビリティリストから、例えば音声データ再生処理(方式A)の項目が[1]に設定されたエンティテイを選択する。
【0213】
次に、ステップS4302において、選択されたエンティテイによって構成される選択エンティテイIDのリストを生成する。次に、ステップS4303で、選択エンティテイIDによって構成されるツリーに必要なパス(キー配信ツリー構成のパス)を選択する。ステップS4304では、選択エンティテイIDのリストに含まれる全てのパス選択が完了したか否かを判定し、完了するまで、ステップS4303においてパスを生成する。これは、複数のエンティテイが選択された場合に、それぞれのパスを順次選択する処理を意味している。
【0214】
選択エンティテイIDのリストに含まれる全てのパス選択が完了すると、ステップS4305に進み、選択したパスと、選択エンティテイによってのみ構成されるキー配信ツリー構造を構築する。
【0215】
次に、ステップS4306において、ステップS4305で生成したツリー構造のノードキーの更新処理を行ない、更新ノードキーを生成する。さらに、ツリーを構成する選択エンティテイのサブEKBをケイパビリティ管理テーブルから取り出し、サブEKBと、ステップS4306で生成した更新ノードキーとに基づいて選択エンティテイのデバイスにおいてのみ復号可能な有効化キーブロック(EKB)を生成する。このようにして生成した有効化キーブロック(EKB)は、特定のケイパビリティを持つデバイスにおいてのみ利用、すなわち復号可能な有効化キーブロック(EKB)となる。この有効化キーブロック(EKB)で例えばコンテンツキーを暗号化して、そのコンテンツキーで特定プログラムに基づいて圧縮したコンテンツを暗号化してデバイスに提供することで、キー発行センター(KDC)によって選択された特定の処理可能なデバイスにおいてのみコンテンツが利用される。
【0216】
このようにキー発行センター(KDC)は、ケイパビリティ管理テーブルに基づいて、例えば特定のコンテンツの再生可能なデバイスのみが復号可能な有効化キーブロック(EKB)を生成する。従って、新たなエンティテイが登録される場合には、その新規登録エンティテイのケイパビリティを予め取得することが必要となる。このエンティテイ新規登録に伴うケイパビリティ通知処理について図44を用いて説明する。
【0217】
図44は、新規エンティテイがキー配信ツリー構成に参加する場合のケイパビリティ通知処理シーケンスを示した図である。
【0218】
新たにツリー構成中に追加される新規(子)エンティテイ(N−En)は、上位(親)エンティテイ(P−En)に対して新規登録要求を実行する。なお、各エンティテイは、公開鍵暗号方式に従った公開鍵を保有し、新規エンティテイは自己の公開鍵を登録要求に際して上位エンティテイ(P−En)に送付する。
【0219】
登録要求を受領した上位エンティテイ(P−En)は、受領した新規(子)エンティテイ(N−En)の公開鍵を証明書発行局(CA:Certificate Authority)に転送し、CAの署名を付加した新規(子)エンティテイ(N−En)の公開鍵を受領する。これらの手続きは、上位エンティテイ(P−En)と新規(子)エンティテイ(N−En)との相互認証の手続きとして行われる。
【0220】
これらの処理により、新規登録要求エンティテイの認証が終了すると、上位エンティテイ(P−En)は、新規(子)エンティテイ(N−En)の登録を許可し、新規(子)エンティテイ(N−En)のノードキーを新規(子)エンティテイ(N−En)に送信する。このノードキーは、上位エンティテイ(P−En)の末端ノードの1つのノードキーであり、かつ、新規(子)エンティテイ(N−En)の頂点ノード、すなわちサブルートキーに対応する。
【0221】
このノードキー送信が終了すると、新規(子)エンティテイ(N−En)は、新規(子)エンティテイ(N−En)のツリー構成を構築し、構築したツリーの頂点に受信した頂点ノードのサブルートキーを設定し、各ノード、リーフのキーを設定して、エンティテイ内の有効化キーブロック(サブEKB)を生成する。一方、上位エンティテイ(P−En)も、新規(子)エンティテイ(N−En)の追加により、有効化する末端ノードを追加した上位エンティテイ(P−En)内のサブEKBを生成する。
【0222】
新規(子)エンティテイ(N−En)は、新規(子)エンティテイ(N−En)内のノードキー、リーフキーによって構成されるサブEKBを生成すると、これを上位エンティテイ(P−En)に送信し、さらに、自己のエンティテイで管理するデバイスについてのケイパビリティ情報を上位エンティテイに通知する。
【0223】
新規(子)エンティテイ(N−En)からサブEKBおよびケイパビリティ情報を受信した上位エンティテイ(P−En)は、受信したサブEKBとケイパビリティ情報と、上位エンティテイ(P−En)の更新したサブEKBとをキー発行センター(KDC:Key Distribute Center)に送信する。
【0224】
キー発行センター(KDC)は、受領したエンティテイのサブEKBおよびケイパビリティ情報とを図42で説明したケイパビリティ管理テーブルに登録し、ケイパビリティ管理テーブルを更新する。キー発行センター(KDC)は、更新したケイパビリティ管理テーブルに基づいて、様々な態様のEKB、すなわち特定のケイパビリティを持つエンティテイあるいはデバイスのみが復号可能なEKBを生成することが可能となる。
【0225】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【0226】
【発明の効果】
以上、説明したように、本発明の情報処理システムおよび方法によれば、複数のデバイスをリーフとして構成したツリーのルートからリーフまでのパス上のルート、ノード、およびリーフに各々キーを対応付けたキーツリーを構成する部分ツリーとしてのサブツリーを管理し、該サブツリーに属するノードまたはリーフに対応して設定されるキーのみに基づくサブ有効化キーブロック(サブEKB)を生成する複数のエンティテイを設定し、複数のエンテイテイの生成するサブ有効化キーブロック(サブEKB)を用いて、選択されたエンティテイにおいてのみ復号可能な有効化キーブロック(EKB)を生成して配送する構成としたので、階層構造のキーツリー構成を分割して管理することが可能となり、デバイスに応じた細かな処理が可能となる。
【0227】
さらに、本発明の情報処理システムおよび方法によれば、エンティテイでのデバイスあるいはエンティテイのリボーク処理が実行可能であり、一括したデバイス管理の場合のデバイス増大にともなう処理量の増加が防止される。
【0228】
さらに、本発明の情報処理システムおよび方法によれば、各エンティティの末端ノードにリザーブノードを設定する構成としたので、管理デバイスまたは管理エンティテイの増加にも対応可能となる。
【図面の簡単な説明】
【図1】本発明の情報処理システムの構成例を説明する図である。
【図2】本発明の情報処理システムにおいて適用可能な記録再生装置の構成例を示すブロック図である。
【図3】本発明の情報処理システムにおける各種キー、データの暗号化処理について説明するツリー構成図である。
【図4】本発明の情報処理システムにおける各種キー、データの配布に使用される有効化キーブロック(EKB)の例を示す図である。
【図5】本発明の情報処理システムにおけるコンテンツキーの有効化キーブロック(EKB)を使用した配布例と復号処理例を示す図である。
【図6】本発明の情報処理システムにおける有効化キーブロック(EKB)のフォーマット例を示す図である。
【図7】本発明の情報処理システムにおける有効化キーブロック(EKB)のタグの構成を説明する図である。
【図8】本発明の情報処理システムにおける有効化キーブロック(EKB)と、コンテンツキー、コンテンツを併せて配信するデータ構成例を示す図である。
【図9】本発明の情報処理システムにおける有効化キーブロック(EKB)と、コンテンツキー、コンテンツを併せて配信した場合のデバイスでの処理例を示す図である。
【図10】本発明の情報処理システムにおける有効化キーブロック(EKB)とコンテンツを記録媒体に格納した場合の対応について説明する図である。
【図11】本発明の情報処理システムにおける有効化キーブロック(EKB)と、コンテンツキーを送付する処理を従来の送付処理と比較した図である。
【図12】本発明の情報処理システムにおいて適用可能な共通鍵暗号方式による認証処理シーケンスを示す図である。
【図13】本発明の情報処理システムにおける有効化キーブロック(EKB)と、認証キーを併せて配信するデータ構成と、デバイスでの処理例を示す図(その1)である。
【図14】本発明の情報処理システムにおける有効化キーブロック(EKB)と、認証キーを併せて配信するデータ構成と、デバイスでの処理例を示す図(その2)である。
【図15】本発明の情報処理システムにおいて適用可能な公開鍵暗号方式による認証処理シーケンスを示す図である。
【図16】本発明の情報処理システムにおいて公開鍵暗号方式による認証処理を用いて有効化キーブロック(EKB)と、コンテンツキーを併せて配信する処理を示す図である。
【図17】本発明の情報処理システムにおいて有効化キーブロック(EKB)と、暗号化プログラムデータを併せて配信する処理を示す図である。
【図18】本発明の情報処理システムにおいて適用可能なコンテンツ・インテグリティ・チェック値(ICV)の生成に使用するMAC値生成例を示す図である。
【図19】本発明の情報処理システムにおける有効化キーブロック(EKB)と、ICV生成キーを併せて配信するデータ構成と、デバイスでの処理例を示す図(その1)である。
【図20】本発明の情報処理システムにおける有効化キーブロック(EKB)と、ICV生成キーを併せて配信するデータ構成と、デバイスでの処理例を示す図(その2)である。
【図21】本発明の情報処理システムにおいて適用可能なコンテンツ・インテグリティ・チェック値(ICV)をメディアに格納した場合のコピー防止機能を説明する図である。
【図22】本発明の情報処理システムにおいて適用可能なコンテンツ・インテグリティ・チェック値(ICV)をコンテンツ格納媒体と別に管理する構成を説明する図である。
【図23】本発明の情報処理システムにおける階層ツリー構造のカテゴリ分類の例を説明する図である。
【図24】本発明の情報処理システムにおける簡略化有効化キーブロック(EKB)の生成過程を説明する図である。
【図25】本発明の情報処理システムにおける有効化キーブロック(EKB)の生成過程を説明する図である。
【図26】本発明の情報処理システムにおける簡略化有効化キーブロック(EKB)を説明する図である。
【図27】本発明の情報処理システムにおける階層ツリー構造のエンティテイ管理構成について説明する図である。
【図28】本発明の情報処理システムにおける階層ツリー構造のエンティテイ管理構成の詳細について説明する図である。
【図29】本発明の情報処理システムにおける階層ツリー構造のエンティテイ管理構成について説明する図である。
【図30】本発明の情報処理システムにおける階層ツリー構造のエンティテイ管理構成でのリザーブノードについて説明する図である。
【図31】本発明の情報処理システムにおける階層ツリー構造のエンティテイ管理構成での新規エンティテイ登録処理シーケンスについて説明する図である。
【図32】本発明の情報処理システムにおける階層ツリー構造のエンティテイ管理構成での新規エンティテイと上位エンティテイの関係について説明する図である。
【図33】本発明の情報処理システムにおける階層ツリー構造のエンティテイ管理構成で用いるサブEKBについて説明する図である。
【図34】本発明の情報処理システムにおける階層ツリー構造のエンティテイ管理構成でのデバイスリボーク処理について説明する図である。
【図35】本発明の情報処理システムにおける階層ツリー構造のエンティテイ管理構成でのデバイスリボーク処理シーケンスについて説明する図である。
【図36】本発明の情報処理システムにおける階層ツリー構造のエンティテイ管理構成でのデバイスリボーク時の更新サブEKBについて説明する図である。
【図37】本発明の情報処理システムにおける階層ツリー構造のエンティテイ管理構成でのエンティテイリボーク処理について説明する図である。
【図38】本発明の情報処理システムにおける階層ツリー構造のエンティテイ管理構成でのエンティテイリボーク処理シーケンスについて説明する図である。
【図39】本発明の情報処理システムにおける階層ツリー構造のエンティテイ管理構成でのリボークエンティテイと上位エンティテイの関係について説明する図である。
【図40】本発明の情報処理システムにおける階層ツリー構造のエンティテイ管理構成でのケイパビリテイ設定について説明する図である。
【図41】本発明の情報処理システムにおける階層ツリー構造のエンティテイ管理構成でのケイパビリテイ設定について説明する図である。
【図42】本発明の情報処理システムにおけるキー発行センター(KDC)の管理するケイパビリティ管理テーブル構成を説明する図である。
【図43】本発明の情報処理システムにおけるキー発行センター(KDC)の管理するケイパビリティ管理テーブルに基づくEKB生成処理フロー図である。
【図44】本発明の情報処理システムにおける新規エンティテイ登録時のケイパビリティ通知処理を説明する図である。
【符号の説明】
10 コンテンツ配信側
11 インターネット
12 衛星放送
13 電話回線
14 メディア
20 コンテンツ受信側
21 パーソナルコンピュータ(PC)
22 ポータブルデバイス(PD)
23 携帯電話、PDA
24 記録再生器
25 再生専用器
30 メディア
100 記録再生装置
110 バス
120 入出力I/F
130 MPEGコーデック
140 入出力I/F
141 A/D,D/Aコンバータ
150 暗号処理手段
160 ROM
170 CPU
180 メモリ
190 ドライブ
195 記録媒体
601 バージョン
602 デプス
603 データポインタ
604 タグポインタ
605 署名ポインタ
606 データ部
607 タグ部
608 署名
1101 記録デバイス
2301 ルートキー
2302 ノードキー
2303 リーフキー
2304 カテゴリノード
2306 サブカテゴリノード
2701 エンティテイ
2702 サブルート
2811,2851 サブルート
2812,2852 エンティテイ末端ノード
2901,2902 エンティテイ
2950 リザーブノード
2970 管理末端ノード
3011,3012,3013 エンティテイ
3021,3022,3023 リザーブノード
3201 末端ノード
3202 頂点ノード
3301,3302 末端ノード
3303 新規エンティテイ追加末端ノード
3410,3420,3430 エンティテイ
3411,3421,3431 サブルート
3432 リボークデバイスノード
3601 末端ノード
3710,3720,3730 エンティテイ
3711,3721,3731 サブルート
3901 末端ノード
3902 頂点ノード(サブルートノード)
4001〜4005 エンティテイ
4021,4022,4023 エンティテイ
4101〜4105 エンティテイ
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an information processing system and information processing method using an encryption key block, and a program providing medium, and more particularly to a system and method for distributing an encryption processing key in a system involving encryption processing. In particular, by using a tree-structured hierarchical key distribution method, the amount of messages can be kept small, for example, the load of data distribution during content key distribution or various key updates can be reduced, and data security can be maintained. Information processing system and information using encryption key block that realizes efficient key distribution and management configuration as a configuration for managing hierarchical key distribution tree with entities as subsets having common elements The present invention relates to a processing method and a program providing medium.
[0002]
[Prior art]
Nowadays, various software data (hereinafter referred to as “Content”) such as game programs, audio data, image data, etc. are transmitted via a network such as the Internet or a storage medium such as a DVD or CD. The circulation of is becoming popular. These distribution contents are reproduced by receiving data by a user's own PC (Personal Computer) or game device, or by attaching a storage medium, or recording devices in a recording / reproduction device attached to the PC, for example, It is stored in a memory card, hard disk, etc., and used by new reproduction from the storage medium.
[0003]
Information devices such as video game machines and PCs have interfaces for receiving distribution content from the network or accessing DVDs, CDs, etc., and further, control means, programs, data required for content playback RAM, ROM, etc. used as the memory area.
[0004]
Various contents such as music data, image data, or programs are stored in accordance with a user instruction from a game device used as a playback device, an information device main body such as a PC, or a user instruction via a connected input means. And is played through the information device main body or a connected display, speaker, or the like.
[0005]
Many software contents such as game programs, music data, and image data generally have distribution rights and the like for their creators and sellers. Therefore, when distributing these contents, certain usage restrictions, that is, license the use of software only to authorized users and prevent unauthorized copying, etc. It is common to take this configuration.
[0006]
One technique for realizing usage restrictions on users is encryption processing of distributed content. That is, for example, various contents such as encrypted audio data, image data, and game programs are distributed via the Internet, etc., and the encrypted contents distributed only to those who are confirmed to be authorized users. The decryption means, that is, a decryption key is assigned.
[0007]
The encrypted data can be returned to the decrypted data (plain text) that can be used by the decryption process according to a predetermined procedure. Data encryption and decryption methods that use an encryption key for such information encryption processing and a decryption key for decryption processing are well known.
[0008]
There are various types of data encryption / decryption methods using an encryption key and a decryption key. One example is a so-called common key encryption method. In the common key encryption method, the encryption key used for the data encryption process and the decryption key used for the data decryption are made common, and the common key used for the encryption process and the decryption is given to an authorized user. Thus, data access by an unauthorized user who does not have a key is eliminated. A typical method of this method is DES (Data Encryption Standard).
[0009]
The encryption key and decryption key used for the above-described encryption processing and decryption can be obtained by applying a one-way function such as a hash function based on a certain password, for example. A one-way function is a function that makes it very difficult to obtain an input from its output. For example, a one-way function is applied using a password determined by the user as an input, and an encryption key and a decryption key are generated based on the output. From the encryption key and the decryption key obtained in this way, it is virtually impossible to obtain the password that is the original data.
[0010]
In addition, a method in which processing using an encryption key used for encryption and processing of a decryption key used for decryption are different algorithms is a so-called public key encryption method. The public key encryption method uses a public key that can be used by an unspecified user, and encrypts an encrypted document for a specific individual using the public key issued by the specific individual. A document encrypted with a public key can be decrypted only with a secret key corresponding to the public key used for the encryption process. Since the private key is owned only by the individual who issued the public key, a document encrypted with the public key can be decrypted only by the individual who has the private key. A typical public key encryption method is RSA (Rivest-Shamir-Adleman) encryption. By using such an encryption method, a system that enables decryption of encrypted content only for authorized users is possible.
[0011]
[Problems to be solved by the invention]
In the content distribution system as described above, the content is encrypted and stored for a user on a network or a recording medium such as a DVD or CD, and the content key for decrypting the encrypted content is provided only to a legitimate user. Is often adopted. The content key for preventing unauthorized copying of the content key itself is encrypted and provided to a legitimate user, and the content key can be used by decrypting the encrypted content key using the decryption key possessed only by the legitimate user A configuration has been proposed.
[0012]
In general, the determination as to whether or not the user is a valid user is performed, for example, by executing an authentication process between the content provider, which is the content sender, and the user device before distributing the content or the content key. In general authentication processing, the other party is confirmed and a session key that is valid only for the communication is generated. When authentication is established, data such as content or content key is generated using the generated session key. Encrypt communication. There are two authentication methods: mutual authentication using a common key encryption method and an authentication method using a public key method. However, authentication using a common key requires a system-wide common key, and update processing It is inconvenient in the case of. Further, in the public key method, the calculation load is large and the required memory amount is large, and it is not desirable to provide such processing means in each device.
[0013]
In the present invention, it is possible to securely transmit data only to legitimate users without relying on the mutual authentication process between the data sender and receiver as described above, and hierarchical key distribution. To provide an information processing system, an information processing method, and a program providing medium using an encryption key block that realizes an efficient key distribution and management configuration as a configuration for managing a tree with an entity as a subset having a common element Objective.
[0014]
[Means for Solving the Problems]
  The first aspect of the present invention is:
  Configure a key tree by associating keys with the root, nodes, and leaves on the path from the root of the tree that configures multiple devices as leaves to the leaf, and select the path that configures the key tree and select it An information processing system using an encryption key block that generates an enabling key block (EKB) that can be decrypted only by a specific device by executing upper key update processing and upper key encryption processing using a lower key In
  A subtree as a partial tree constituting the key treeAs an entity,Sub-enabling key block (sub-EKB) generation based only on the key set corresponding to the node or leaf to which it belongsSub-enabling key block generation means for executing as entity management processingWhen,
  SaidBy means of sub-activation key block generationUsing the generated sub-validation key block (sub-EKB),Selected device corresponding to the leaf of the lowest entity in the key treeAn enabling key block (EKB) that can be decrypted only inActivation key block generation meansWhen,
  There is an information processing system using an encryption key block.
[0015]
  Furthermore, in one embodiment of the information processing system of the present invention,RecordingThe entity is characterized by having a hierarchical structure of upper and lower entities in which the lowest end node of one entity is configured as a vertex node (sub-root) of another entity.
[0016]
  Furthermore, in one embodiment of the information processing system of the present invention,The sub-activation key block generation meansThe selfmanagementIt is characterized in that it has the authority to set and update keys corresponding to nodes or leaves constituting a subtree belonging to an entity.
[0017]
  Furthermore, in one embodiment of the information processing system of the present invention,RecordingDuring the entity, each of the devices belonging to the lowest entity in which the lowermost leaf in the entity is a leaf corresponding to each device reaches the leaf corresponding to the own device from the vertex node (sub-root) of the entity to which the entity belongs. It has a configuration in which a node key set on a leaf, a node key set on a leaf, and a leaf key are stored.
[0018]
  Furthermore, in one embodiment of the information processing system of the present invention,The sub-activation key block generation meansThe selfmanagementIn order to add a self-management entity further below the entity, it has a configuration in which one or more nodes or leaves in the lowermost node or leaf in the entity are reserved and set as reserve nodes. .
[0019]
  Furthermore, in one embodiment of the information processing system of the present invention, a higher entity that adds a new entity to a terminal nodeSub-enabling key block generation means for managingIs characterized in that a key corresponding to a higher entity end node which is a node for setting a new entity sub-tree is set as a vertex node (sub-root) key of the new entity.
[0020]
  Furthermore, in one embodiment of the information processing system of the present invention, a new additional entitySub-enabling key block generation means for managingGenerates a sub-enabling key block (sub-EKB) based only on keys set corresponding to nodes or leaves in the sub-tree in the new entity,Activation key block generation meansSub EKB againstOfferIt is the structure which performs a process.
[0021]
  Further, in one embodiment of the information processing system of the present invention, a device revocation process is executed.Sub-activation key block generation meansIsmanagementRevoked from a vertex node (subroot) in the entityKudeThe node key set in the node on the path to the leaf corresponding to the device is updated, and an updated sub-EKB configured with the updated node key as an encryption key that can be decrypted only by the leaf device other than the revoke device is generated and used as the upper entity. And the upper entity generates an updated sub-EKB in which the node key on the path from the terminal node that provided the updated sub-EKB to the sub-route of itself is updated, and further the upper entitySub-enabling key block generation means for managingTo the top-level entitySub-enabling key block generation means for managingUntil the entiteteIThe update sub-EKB generation and transmission processing in units is sequentially executed to update the node key on the path from the revoke device to the root, and the update sub-EKB generated by the key updateActivation key block generation meansToOfferIt is characterized by having a configuration for executing the revocation process of the device by performing the process.
[0022]
  Furthermore, in one embodiment of the information processing system of the present invention, the revocation process of the lower entity is executed.Sub-activation key block generation meansIsmanagementAn updated sub EKB in which the node key set in the node on the path from the vertex node (sub root) in the entity to the terminal node corresponding to the revocation entity is updated is generated and transmitted to the upper entity, and the upper entity is updated sub EKB. An updated sub-EKB is generated by updating the node key on the path from the terminal node that provides the sub-root to its own sub-root, and further higher entitySub-enabling key block generation means for managingTo the top-level entitySub-enabling key block generation means for managingUntil the entiteteIThe update sub-EKB generation and transmission process in units is sequentially executed to update the node key on the path from the revoke entity to the root, and the update sub-EKB generated by the key update is updated.Activation key block generation meansToOfferIt is characterized by having a configuration for executing revocation processing in units of entities by performing processing.
[0023]
  Furthermore, in one embodiment of the information processing system of the present invention, the revocation process of the lower entity is executed.Sub-activation key block generation meansIsmanagementA high-order entity is generated by generating an updated sub-EKB in which a node key set in a node other than the terminal node is updated on a path from the vertex node (sub-root) in the entity to the terminal node corresponding to the revocation entity.Sub-enabling key block generation means for managingTo the top entitySub-enabling key block generation means for managingGenerates an updated sub-EKB by updating the node key on the path from the terminal node that provided the updated sub-EKB to its own sub-root, and further adds a higher-level entity.Sub-enabling key block generation means for managingTo the top-level entitySub-enabling key block generation means for managingUntil the entiteteIThe update sub-EKB generated by the key update is performed by sequentially executing the update sub-EKB generation and transmission processing in units, and performing the node key update excluding the terminal node corresponding to the revocation entity on the path from the revocation entity to the route. Of the aboveActivation key block generation meansToOfferIt is characterized by having a configuration for executing revocation processing in units of entities by performing processing.
[0024]
  Furthermore, in one embodiment of the information processing system of the present invention,Sub-activation key block generation meansManagement of devices or entities belonging to a common category such as device type, service type, management method type, etc.It is the composition which performsIt is characterized by that.
Furthermore, in one embodiment of the information processing system of the present invention, the entity is classified based on capability information indicating a data processing capability of a device that is a leaf of the key tree, and the sub-validation key block generation means includes a management entity A sub enabling key block is generated based only on a key set corresponding to a node or leaf having a common capability belonging to.
Furthermore, in one embodiment of the information processing system of the present invention, the enabling key block generating means includes an identifier for each of a plurality of entities, capability information for each entity, and a sub-enabling key block (sub-EKB) for each entity. An enabling key block having a capability management table in which information is associated, selecting an entity that can process distribution data for a device based on the capability management table, and decrypting only by a device under the selected entity It has the structure which produces | generates (EKB).
Furthermore, in one embodiment of the information processing system of the present invention, the new additional entity for the key tree is a sub-validating key block based only on keys set corresponding to nodes or leaves in the sub-tree in the new entity. (Sub EKB) is generated, and the notification processing of the capability information of the generated sub EKB and its own entity to the enabling key block generation means is executed.
[0025]
  Furthermore, the second aspect of the present invention provides
  Configure a key tree in which a key is associated with each root, node, and leaf on the path from the root of the tree that configures multiple devices as leaves to the leaf, and select the path that configures the key tree and select it Using the encryption key block in the information processing system that executes the above key update and the encryption process of the upper key by the lower key to generate an enabling key block (EKB) that can be decrypted only by a specific device and provides it to the device In the information processing method that was
  The sub-activation key block generation meansA subtree as a partial tree constituting the key treeAs an entity and as an entity management processGenerating a sub-enabling key block (sub-EKB) based only on keys set corresponding to the node or leaf to which it belongs;
  Activation key block generation meansIn the aboveSub-activation key block generation meansUsing the sub-activation key block (sub-EKB) generated bySelected device corresponding to the leaf of the lowest entity in the key treeGenerating an enabling key block (EKB) decipherable only in
  There is an information processing method using an encryption key block.
[0026]
  Furthermore, in one embodiment of the information processing method of the present invention, in the information processing method,The sub-activation key block generation meansThe selfmanagementA key setting / updating process corresponding to a node or leaf constituting a subtree belonging to the entity is executed.
[0027]
  Furthermore, in one embodiment of the information processing method of the present invention, a higher entity that adds a new entity to a terminal nodeSub-enabling key block generation means for managingIs characterized in that a key corresponding to a higher entity end node, which is a node for setting a new entity sub-tree, is set as a vertex node (sub-root) key of the new entity.
[0028]
  Furthermore, in one embodiment of the information processing method of the present invention, a new additional entitySub-enabling key block generation means for managingGenerates a sub-enabling key block (sub-EKB) based only on keys set corresponding to nodes or leaves in the sub-tree in the new entity,Activation key block generation meansSub EKB againstOfferA process is executed.
[0029]
  Furthermore, in one embodiment of the information processing method of the present invention, a device revocation process is executed.Sub-activation key block generation meansIsmanagementRevoked from a vertex node (subroot) in the entityKudeThe node key set in the node on the path to the leaf corresponding to the device is updated, and an updated sub-EKB configured with the updated node key as an encryption key that can be decrypted only by the leaf device other than the revoke device is generated and used as the upper entity. And the upper entity generates an updated sub-EKB in which the node key on the path from the terminal node that provided the updated sub-EKB to the sub-route of itself is updated, and further the upper entitySub-enabling key block generation means for managingTo the top-level entitySub-enabling key block generation means for managingUntil the entiteteIThe update sub-EKB generation and transmission processing in units is sequentially executed to update the node key on the path from the revoke device to the root, and the update sub-EKB generated by the key updateActivation key block generation meansToOfferBy performing the process, a device revocation process is executed.
[0030]
  Furthermore, in one embodiment of the information processing method of the present invention, the revocation process of the lower entity is executed.Sub-activation key block generation meansGenerates an updated sub-EKB by updating the node key set in the node on the path from the vertex node (sub-root) in the entity to the terminal node corresponding to the revoke entity.Sub-enabling key block generation means for managingTo the top entitySub-enabling key block generation means for managingGenerates an updated sub-EKB by updating the node key on the path from the terminal node that provided the updated sub-EKB to its own sub-root, and further adds a higher-level entity.Sub-enabling key block generation means for managingTo the top-level entitySub-enabling key block generation means for managingUntil the entiteteIThe update sub-EKB generation and transmission process in units is sequentially executed to update the node key on the path from the revoke entity to the root, and the update sub-EKB generated by the key update is updated.Activation key block generation meansToOfferBy performing the process, the entity-based revocation process is executed.
[0031]
  Furthermore, in one embodiment of the information processing method of the present invention, the revocation process of the lower entity is executed.Sub-activation key block generation meansIsmanagementA high-order entity is generated by generating an updated sub-EKB in which a node key set in a node other than the terminal node is updated on a path from the vertex node (sub-root) in the entity to the terminal node corresponding to the revocation entity.Sub-enabling key block generation means for managingTo the top entitySub-enabling key block generation means for managingGenerates an updated sub-EKB by updating the node key on the path from the terminal node that provided the updated sub-EKB to its own sub-root, and further adds a higher-level entity.Sub-enabling key block generation means for managingTo the top-level entitySub-enabling key block generation means for managingUntil the entiteteIThe update sub-EKB generated by the key update is performed by sequentially executing the update sub-EKB generation and transmission processing in units, and performing the node key update excluding the terminal node corresponding to the revocation entity on the path from the revocation entity to the route. Of the aboveActivation key block generation meansToOfferBy performing the process, the entity-based revocation process is executed.
Furthermore, in one embodiment of the information processing method of the present invention, the entity is classified based on capability information indicating a data processing capability of a device that is a leaf of the key tree, and the sub-validation key block generation means includes a management entity A sub enabling key block is generated based only on a key set corresponding to a node or leaf having a common capability belonging to.
Furthermore, in an embodiment of the information processing method of the present invention, the enabling key block generating means includes an identifier for each of a plurality of entities, capability information for each entity, and a sub-enabling key block (sub-EKB) for each entity. An enabling key block having a capability management table in which information is associated, selecting an entity that can process distribution data for a device based on the capability management table, and decrypting only by a device under the selected entity (EKB) is generated.
Further, in an embodiment of the information processing method of the present invention, the new additional entity for the key tree is a sub-validating key block based only on keys set corresponding to nodes or leaves in the sub-tree in the new entity. (Sub-EKB) is generated, and notification processing of capability information of the generated sub-EKB and its own entity is executed with respect to the enabling key block generating means.
[0032]
  Furthermore, the third aspect of the present invention provides
  Configure a key tree in which a key is associated with each root, node, and leaf on the path from the root of the tree that configures multiple devices as leaves to the leaf, and select the path that configures the key tree and select it An activation key block in an information processing system that executes the above key update and the encryption process of the upper key by the lower key to generate an activation key block (EKB) that can be decrypted only by a specific device and provides the device to the device EKB) A computer program for executing generation processing on a computer systemRecordedprogramRecordA computer program comprising:
  In the sub-activation key block generation means,A subtree as a partial tree constituting the key treeAs an entity and as an entity management processGenerates a sub-activation key block (sub-EKB) based only on the key set corresponding to the node or leaf to which it belongsLetAnd steps
  Activation key block generation meansIn the aboveSub-activation key block generation meansUsing the sub-activation key block (sub-EKB) generated bySelected device corresponding to the leaf of the lowest entity in the key treeAn enabling key block (EKB) that can only be decrypted inLetAnd steps
  A program characterized by includingRecordIn the medium.
[0033]
[Action]
In the configuration of the present invention, the amount of distribution messages necessary for key update is kept small by using an encryption key distribution configuration having a hierarchical structure of a tree structure. That is, using a key distribution method in which each device is arranged on each leaf of the n-ary tree, for example, a content key that is an encryption key of content data or authentication used for authentication processing via a recording medium or a communication line A key, a program code, or the like is distributed together with an activation key block. In this way, data that can be decrypted only by a legitimate device can be delivered safely.
[0034]
Furthermore, in the configuration of the present invention, an efficient key distribution and management configuration is realized as a configuration in which a hierarchical key distribution tree is managed by an entity as a subset having common elements.
[0035]
The program providing medium according to the third aspect of the present invention is a medium that provides a computer program in a computer-readable format to, for example, a general-purpose computer system that can execute various program codes. The form of the medium is not particularly limited, such as a recording medium such as CD, FD, or MO, or a transmission medium such as a network.
[0036]
Such a program providing medium defines a structural or functional cooperative relationship between a computer program and a providing medium for realizing a function of a predetermined computer program on a computer system. . In other words, by installing a computer program in the computer system via the provided medium, a cooperative action is exhibited on the computer system, and the same effects as the other aspects of the present invention are obtained. Can do it.
[0037]
Other objects, features, and advantages of the present invention will become apparent from a more detailed description based on embodiments of the present invention described later and the accompanying drawings.
[0038]
DETAILED DESCRIPTION OF THE INVENTION
[System Overview]
FIG. 1 shows an example of a content distribution system to which the data processing system of the present invention can be applied. The content distribution side 10 encrypts and transmits the content or content key to various content reproducible devices of the content reception side 20. The device on the receiving side 20 decrypts the received encrypted content or the encrypted content key to acquire the content or content key, and reproduces image data, audio data, or executes various programs. Data exchange between the content distribution side 10 and the content reception side 20 is performed via a network such as the Internet or via a distributable storage medium such as a DVD or CD.
[0039]
The data distribution means on the content distribution side 10 includes the Internet 11, satellite broadcast 12, telephone line 13, media 14 such as DVD, CD, etc., while the device on the content reception side 20 is a personal computer (PC). 21, a portable device (PD) 22, a portable device 23 such as a mobile phone and a PDA (Personal Digital Assistants), a recording / reproducing device 24 such as a DVD or CD player, a dedicated reproduction device 25 such as a game terminal, and the like. Each device on the content receiving side 20 acquires the content provided from the content distribution side 10 from a communication means such as a network or the media 30.
[0040]
[Device configuration]
FIG. 2 shows a configuration block diagram of a recording / reproducing apparatus 100 as an example of a device on the content receiving side 20 shown in FIG. The recording / reproducing apparatus 100 includes an input / output I / F (Interface) 120, an MPEG (Moving Picture Experts Group) codec 130, an input / output I / F (Interface) 140 including an A / D and D / A converter 141, and encryption processing. Means 150, a ROM (Read Only Memory) 160, a CPU (Central Processing Unit) 170, a memory 180, and a drive 190 of a recording medium 195 are connected to each other by a bus 110.
[0041]
The input / output I / F 120 receives digital signals constituting various contents such as images, sounds, and programs supplied from the outside, outputs the digital signals to the bus 110, receives the digital signals on the bus 110, and externally receives them. Output. The MPEG codec 130 MPEG-decodes MPEG-encoded data supplied via the bus 110 and outputs it to the input / output I / F 140 and MPEG-encodes a digital signal supplied from the input / output I / F 140. Output on the bus 110. The input / output I / F 140 includes an A / D and D / A converter 141. The input / output I / F 140 receives an analog signal as content supplied from the outside and performs A / D (Analog Digital) conversion by the A / D and D / A converter 141, thereby converting the MPEG codec 130 as a digital signal. In addition, the digital signal from the MPEG codec 130 is D / A (Digital Analog) converted by the A / D and D / A converter 141 to be output to the outside as an analog signal.
[0042]
The cryptographic processing means 150 is composed of, for example, a one-chip LSI (Large Scale Integrated Circuit), executes encryption, decryption processing, or authentication processing of a digital signal as content supplied via the bus 110, and performs encryption processing. Data, decoded data, etc. are output on the bus 110. The cryptographic processing means 150 is not limited to a one-chip LSI, and can be realized by a configuration combining various types of software or hardware. The configuration as the processing means by the software configuration will be described later.
[0043]
The ROM 160 stores program data processed by the recording / reproducing apparatus. The CPU 170 controls the MPEG codec 130, the encryption processing means 150, and the like by executing programs stored in the ROM 160 and the memory 180. The memory 180 is, for example, a non-volatile memory, and stores a program executed by the CPU 170, data necessary for the operation of the CPU 170, and a key set used for encryption processing executed by the device. The key set will be described later. The drive 190 drives a recording medium 195 capable of recording / reproducing digital data, thereby reading (reproducing) the digital data from the recording medium 195, outputting it on the bus 110, and supplying the digital data via the bus 110. Data is supplied to the recording medium 195 and recorded.
[0044]
The recording medium 195 is a medium capable of storing digital data, such as an optical disk such as a DVD or CD, a magneto-optical disk, a magnetic disk, a magnetic tape, or a semiconductor memory such as a RAM. In this embodiment, the recording medium 195 is a drive 190. Suppose that it is the structure which can be attached or detached with respect to. However, the recording medium 195 may be built in the recording / reproducing apparatus 100.
[0045]
Note that the cryptographic processing means 150 shown in FIG. 2 may be configured as a single one-chip LSI, or may be configured by a combination of software and hardware.
[0046]
[About tree structure as key distribution configuration]
Next, an encryption processing key holding configuration and a data distribution configuration in each device when distributing encrypted data from the content distribution side 10 to each device on the content reception side 20 shown in FIG. 1 will be described with reference to FIG.
[0047]
Numbers 0 to 15 shown at the bottom of FIG. 3 are individual devices on the content receiving side 20. That is, each leaf (leaf) of the hierarchical tree (tree) structure shown in FIG. 3 corresponds to each device.
[0048]
Each device 0 to 15 is a key (node key) assigned to a node from its own leaf to the root in the hierarchical tree (tree) structure shown in FIG. The key set consisting of the leaf keys is stored in the memory. K0000 to K1111 shown at the bottom in FIG. 3 are leaf keys assigned to the devices 0 to 15, respectively, and the keys described in the second clause (node) from the bottom to the top KR (root key). : KR to K111 are used as node keys.
[0049]
In the tree configuration shown in FIG. 3, for example, the device 0 has a leaf key K0000 and node keys: K000, K00, K0, and KR. The device 5 owns K0101, K010, K01, K0, and KR. The device 15 owns K1111, K111, K11, K1, and KR. In the tree of FIG. 3, only 16 devices of 0 to 15 are described, and the tree structure is shown as a balanced configuration with a four-stage configuration, but more devices are configured in the tree. In addition, it is possible to have a different number of stages in each part of the tree.
[0050]
In addition, each device included in the tree structure of FIG. 3 includes various types of recording media, such as various types using a device embedded type or a DVD, CD, MD, flash memory, etc. that are configured to be detachable from the device. The device is included. Furthermore, various application services can coexist. The hierarchical tree structure as the content or key distribution configuration shown in FIG. 3 is applied on the coexistence configuration of different devices and different applications.
[0051]
In a system in which these various devices and applications coexist, for example, the portion surrounded by a dotted line in FIG. 3, that is, devices 0, 1, 2, and 3 are set as one group using the same recording medium. For example, for devices included in the group surrounded by the dotted line, the common content is encrypted and sent from the provider, the content key used in common for each device is sent, or each device is sent. Then, the process of encrypting and outputting the content fee payment data to the provider or the settlement institution is executed. An institution that performs data transmission / reception with each device, such as a content provider or a payment processing institution, sends data collectively as a group of the parts surrounded by the dotted lines in FIG. 3, that is, devices 0, 1, 2, and 3. Execute the process. There are a plurality of such groups in the tree of FIG. An organization that transmits / receives data to / from each device, such as a content provider or a payment processing organization, functions as message data distribution means.
[0052]
The node key and leaf key may be managed by a single key management center, or may be managed for each group by a message data distribution means such as a provider or a settlement organization that performs various data transmission / reception for each group. It is good. These node keys and leaf keys are updated when, for example, a key is leaked, and this updating process is executed by a key management center, a provider, a settlement organization, or the like.
[0053]
In this tree structure, as is apparent from FIG. 3, the three devices 0, 1, 2, 3 included in one group have common keys K00, K0, KR as node keys. By using this node key sharing configuration, for example, a common content key can be provided only to the devices 0, 1, 2, and 3. For example, if the common node key K00 itself is set as the content key, only the devices 0, 1, 2, and 3 can set the common content key without executing new key transmission. Further, if the value Enc (K00, Kcon) obtained by encrypting the new content key Kcon with the node key K00 is stored in a recording medium via a network or distributed to the devices 0, 1, 2, 3, the device 0, Only 1, 2, 3 can use the shared node key K00 possessed by each device to break the encryption Enc (K00, Kcon) and obtain the content key: Kcon. Enc (Ka, Kb) indicates data obtained by encrypting Kb with Ka.
[0054]
Further, at a certain time t, when it is discovered that the keys possessed by the device 3: K0011, K001, K00, K0, KR are analyzed and exposed by an attacker (hacker), thereafter, the system (devices 0, 1) is detected. , 2 and 3), the device 3 needs to be disconnected from the system. For this purpose, the node keys: K001, K00, K0, KR are updated to new keys K (t) 001, K (t) 00, K (t) 0, K (t) R, respectively, and devices 0, 1, 2 must be notified of the update key. Here, K (t) aaa indicates that the key is a renewal key of Generation: t.
[0055]
The update key distribution process will be described. The key is updated by, for example, storing a table composed of block data called an enabling key block (EKB) shown in FIG. 2 is executed. The enabling key block (EKB) is composed of an encryption key for distributing a newly updated key to devices corresponding to each leaf constituting the tree structure as shown in FIG. The enabling key block (EKB) is sometimes called a key renewal block (KRB).
[0056]
The enabling key block (EKB) shown in FIG. 4A is configured as block data having a data configuration that can be updated only by a device that requires updating of the node key. The example of FIG. 4 is block data formed for the purpose of distributing generation t update node keys in the devices 0, 1, and 2 in the tree structure shown in FIG. As is apparent from FIG. 3, device 0 and device 1 require K (t) 00, K (t) 0, and K (t) R as update node keys, and device 2 uses K (t) as an update node key. ) 001, K (t) 00, K (t) 0, K (t) R are required.
[0057]
As shown in the EKB in FIG. 4A, the EKB includes a plurality of encryption keys. The lowest encryption key is Enc (K0010, K (t) 001). This is an update node key K (t) 001 encrypted with the leaf key K0010 of the device 2, and the device 2 can decrypt this encryption key with the leaf key of itself and obtain K (t) 001. . In addition, by using K (t) 001 obtained by decryption, the encryption key Enc (K (t) 001, K (t) 00) in the second stage from the bottom of FIG. 4A can be decrypted and updated. The node key K (t) 00 can be obtained. Subsequently, the encryption key Enc (K (t) 00, K (t) 0) in the second stage from the top in FIG. 4A is sequentially decrypted, and the update node key K (t) 0, as shown in FIG. The first-stage encryption key Enc (K (t) 0, K (t) R) is decrypted to obtain K (t) R. On the other hand, the device K0000. K0001 is not included in the node key K000 to be updated, and K (t) 00, K (t) 0, and K (t) R are required as update node keys. Device K0000. K0001 decrypts the third-stage encryption key Enc (K000, K (t) 00) from the top of FIG. 4A to obtain K (t) 00. The second-stage encryption key Enc (K (t) 00, K (t) 0) is decrypted from the update node key K (t) 0, and the first-stage encryption key Enc from the top in FIG. (K (t) 0, K (t) R) is decoded to obtain K (t) R. In this way, the devices 0, 1, and 2 can obtain updated keys K (t) 001, K (t) 00, K (t) 0, and K (t) R. The index in FIG. 4A indicates the absolute address of the node key and leaf key used as the decryption key.
[0058]
When it is not necessary to update the node keys: K (t) 0, K (t) R in the upper level of the tree structure shown in FIG. 3, and only the node key K00 needs to be updated, the processing shown in FIG. By using the enabling key block (EKB), the updated node key K (t) 00 can be distributed to the devices 0, 1, and 2.
[0059]
The EKB shown in FIG. 4B can be used, for example, when distributing a new content key shared in a specific group. As a specific example, it is assumed that a recording medium having devices 0, 1, 2, and 3 in a group indicated by a dotted line in FIG. 3 is used and a new common content key K (t) con is required. At this time, the data Enc (K (t (K)) is obtained by encrypting a new common updated content key: K (t) con using K (t) 00 that has updated the common node key K00 of the devices 0, 1, 2, and 3. ), K (t) con) is distributed together with the EKB shown in FIG. This distribution enables distribution as data that is not decrypted in other groups of devices such as the device 4.
[0060]
That is, the devices 0, 1, and 2 can obtain the content key K (t) con at time point t by decrypting the ciphertext using K (t) 00 obtained by processing the EKB. .
[0061]
[Distribution of content key using EKB]
In FIG. 5, as an example of processing for obtaining the content key K (t) con at time t, data Enc (K (t (t)) obtained by encrypting a new common content key K (t) con using K (t) 00 ) 00, K (t) con) and the EKB shown in FIG. 4B via the recording medium. That is, this is an example in which the encrypted message data by EKB is used as the content key K (t) con.
[0062]
As shown in FIG. 5, the device 0 uses the EKB at the time of generation: t stored in the recording medium and the node key K000 stored in advance by the EKB process similar to the above to perform the node key K (t ) 00 is generated. Further, the update content key K (t) con is decrypted using the decrypted update node key K (t) 00, and is encrypted and stored with the leaf key K0000 that only the user has in order to use it later.
[0063]
[EKB format]
FIG. 6 shows a format example of the enabling key block (EKB). The version 601 is an identifier indicating the version of the enabling key block (EKB). Note that the version has a function for identifying the latest EKB and a function for indicating a correspondence relationship between contents. The depth indicates the number of hierarchies of the hierarchical tree for the device to which the enabling key block (EKB) is distributed. The data pointer 603 is a pointer indicating the position of the data part in the enabling key block (EKB), the tag pointer 604 is the position of the tag part, and the signature pointer 605 is a pointer indicating the position of the signature.
[0064]
The data unit 606 stores, for example, data obtained by encrypting the node key to be updated. For example, each encryption key related to the updated node key as shown in FIG. 5 is stored.
[0065]
The tag part 607 is a tag indicating the positional relationship between the encrypted node key and leaf key stored in the data part. The tag assignment rule will be described with reference to FIG. FIG. 7 shows an example in which the enabling key block (EKB) described above with reference to FIG. 4A is sent as data. The data at this time is as shown in the table (b) of FIG. The top node address included in the encryption key at this time is set as the top node address. In this case, since the update key K (t) R of the root key is included, the top node address is KR. At this time, for example, the uppermost data Enc (K (t) 0, K (t) R) is at the position shown in the hierarchical tree shown in FIG. Here, the next data is Enc (K (t) 00, K (t) 0), and is in the lower left position of the previous data on the tree. When there is data, the tag is set to 0, and when there is no data, 1 is set. The tags are set as {left (L) tag, right (R) tag}. Since there is data on the left of the uppermost data Enc (K (t) 0, K (t) R), L tag = 0, and there is no data on the right, so R tag = 1. Hereinafter, tags are set for all data, and the data string and tag string shown in FIG. 7C are configured.
[0066]
The tag is set to indicate where the data Enc (Kxxx, Kyyy) is located in the tree structure. Key data Enc (Kxxx, Kyyy) stored in the data part. . . Is merely enumerated data of encrypted keys, so that the position of the encryption key stored as data on the tree can be determined by the above-described tag. Without using the above-described tag, using a node index corresponding to encrypted data as in the configuration described in FIG. 4, for example,
0: Enc (K (t) 0, K (t) root)
00: Enc (K (t) 00, K (t) 0)
000: Enc (K ((t) 000, K (T) 00)
. . . However, if such a configuration using an index is used, redundant data is generated and the amount of data increases, which is not preferable for distribution via a network. On the other hand, by using the above-described tag as index data indicating the key position, the key position can be determined with a small amount of data.
[0067]
Returning to FIG. 6, the EKB format will be further described. The signature (Signature) is an electronic signature executed by, for example, a key management center, a content provider, a settlement organization, or the like that has issued an enabling key block (EKB). The device that has received the EKB confirms by the signature verification that it is an activation key block (EKB) issued by a valid activation key block (EKB) issuer.
[0068]
[Content key and content distribution using EKB]
In the above-described example, the example in which only the content key is sent together with the EKB has been described. However, the content key encrypted with the content key, the content key encrypted with the content key encryption key, and the content key encryption key encrypted with the EKB are described. The configuration to be sent together will be described below.
[0069]
FIG. 8 shows this data structure. In the configuration shown in FIG. 8A, Enc (Kcon, content) 801 is data obtained by encrypting content with a content key (Kcon), and Enc (KEK, Kcon) 802 is content key (Kcon). ) Is encrypted with a content key encryption key (KEK), and Enc (EKB, KEK) 803 is data obtained by encrypting the content key encryption key KEK with an enabling key block (EKB). It shows that.
[0070]
Here, the content key encryption key KEK may be the node key (K000, K00...) Or the root key (KR) itself shown in FIG. 3, or the node key (K000, K00...) Or the root key (KR). It may be a key encrypted by.
[0071]
FIG. 8B shows a configuration example in which a plurality of contents are recorded on a medium and each uses the same Enc (EKB, KEK) 805. In such a configuration, the same Enc is used for each data. Without adding (EKB, KEK), data indicating a link destination linked to Enc (EKB, KEK) can be added to each data.
[0072]
FIG. 9 shows an example in which the content key encryption key KEK is configured as an updated node key K (t) 00 obtained by updating the node key K00 shown in FIG. In this case, assuming that the device 3 is revoked (excluded) due to key leakage in the group surrounded by the dotted frame in FIG. (A) an enabling key block (EKB), (b) data obtained by encrypting a content key (Kcon) with a content key encryption key (KEK = K (t) 00), and (c) content (content) By distributing the data encrypted with the content key (Kcon), the devices 0, 1, and 2 can obtain the content.
[0073]
The right side of FIG. 9 shows a decoding procedure in the device 0. The device 0 first obtains the content key encryption key (KEK = K (t) 00) from the received activation key block by the decryption process using the leaf key K000 held by the device 0. Next, the content key Kcon is obtained by decryption with K (t) 00, and the content is decrypted with the content key Kcon. With these processes, the device 0 can use the content. The devices 1 and 2 can acquire the content key encryption key (KEK = K (t) 00) by processing the EKB according to different processing procedures, and can use the content in the same manner. .
[0074]
Even if the devices 4, 5, 6... Shown in FIG. 3 receive this similar data (EKB), the content key encryption key (KEK = K (t ) 00) cannot be obtained. Similarly, even in the revoked device 3, the content key encryption key (KEK = K (t) 00) cannot be obtained with the leaf key and node key held by itself, and only the device having a legitimate right can obtain the content. It can be used after being decrypted.
[0075]
In this way, if content key delivery using EKB is used, it is possible to distribute encrypted content that can be decrypted only by the rightful owner safely while reducing the amount of data.
[0076]
The enabling key block (EKB), the content key, the encrypted content, etc. can be safely distributed via the network. However, the enabling key block (EKB), the content key, the encrypted content, etc. Can be stored in a recording medium such as a DVD or CD and provided to the user. In this case, if the content key obtained by decrypting the enabling key block (EKB) stored in the same recording medium is used for decryption of the encrypted content stored in the recording medium, it is valid in advance. Distribution processing of encrypted content that can be used only by the leaf key and node key held only by the right holder, that is, content distribution limited to available user devices can be realized with a simple configuration.
[0077]
FIG. 10 shows a configuration example in which an enabling key block (EKB) is stored in the recording medium together with the encrypted content. In the example shown in FIG. 10, the contents C1 to C4 are stored in the recording medium, the data in which the activation key block (EKB) corresponding to each stored content is associated, and the version M activation key is further stored. A block (EKB_M) is stored. For example, EKB_1 is used to generate a content key Kcon1 obtained by encrypting the content C1, and for example, EKB_2 is used to generate a content key Kcon2 obtained by encrypting the content C2. In this example, the activation key block (EKB_M) of version M is stored in the recording medium, and the contents C3 and C4 are associated with the activation key block (EKB_M), so the activation key block (EKB_M) Thus, the content keys of the contents C3 and C4 can be acquired. Since EKB_1 and EKB_2 are not stored on the disc, it is necessary to acquire EKB_1 and EKB_2 necessary for decrypting the respective content keys by new providing means, for example, network distribution or distribution by a recording medium.
[0078]
FIG. 11 shows a comparative example of content key distribution using EKB and conventional content key distribution processing when content keys are distributed among a plurality of devices. The upper stage (a) is a conventional configuration, and the lower stage (b) is an example using the enabling key block (EKB) of the present invention. In FIG. 11, Ka (Kb) indicates data obtained by encrypting Kb with Ka.
[0079]
Conventionally, as shown in (a), authentication processing and key exchange processing are performed between devices in order to confirm the legitimacy of a data sender and to share a session key Kses used for data transmission encryption processing. (AKE: Authentication and Key Exchange) is executed, and the content key Kcon is encrypted and transmitted with the session key Kses under the condition that the authentication is established.
[0080]
For example, in the PC of FIG. 11A, the content key Kses (Kcon) encrypted with the received session key can be decrypted with the session key to obtain Kcon, and the acquired Kcon is held by the PC itself. It is possible to encrypt the data with the storage key Kstr and store it in its own memory.
[0081]
In FIG. 11 (a), even if the content provider wants to distribute data only to the recording device 1101 in FIG. 11 (a) in a form that can be used, ), An authentication process is executed, and a process of encrypting and distributing the content key with each session key is required. In addition, the content key can be acquired by decrypting the encrypted content key by using the session key generated and shared in the authentication process also in the intervening PC and playback device.
[0082]
On the other hand, in the example using the enabling key block (EKB) shown in the lower part of FIG. 11B, the enabling key block (EKB) and the node key obtained by the processing of the enabling key block (EKB) from the content provider. Or by decrypting and acquiring the content key Kcon only in a device capable of processing the distributed EKB by distributing data (Kroot (Kcon) in the example of the figure) obtained by encrypting the content key Kcon with the root key Is possible.
[0083]
Therefore, for example, an enabling key block (EKB) that can be used only at the right end of FIG. 11B is generated, and the contents are obtained by the enabling key block (EKB) and the node key or root key obtained by the EKB processing. By sending together the encrypted data of the key Kcon, PCs, playback devices, etc. existing between them cannot execute EKB processing depending on their own leaf keys and node keys. Therefore, a content key that can be safely used only for legitimate devices can be distributed without executing processing such as authentication processing between data transmitting / receiving devices, session key generation, and content key Kcon encryption processing using the session key. It becomes possible to do.
[0084]
If you want to distribute content keys that can also be used for PCs and recording / reproducing devices, you can acquire a common content key by generating and distributing an enabling key block (EKB) that can be processed by each. It becomes.
[0085]
[Distribution of authentication key using activation key block (EKB) (common key method)]
In the distribution of data or key using the above-described enabling key block (EKB), the enabling key block (EKB) and the content or content key transferred between devices always maintain the same encryption form. An illegal copy may be generated by a so-called replay attack in which the data transmission path is stolen and recorded, and then transferred again later. In order to prevent this, it is an effective means to execute authentication processing and key exchange processing similar to those in the past between data transfer devices. Here, the authentication key Kake used when executing the authentication process and the key exchange process is distributed to the device using the above-described activation key block (EKB), thereby sharing the authentication key as a secure secret key. A configuration for performing authentication processing in accordance with the common key method will be described. In other words, this is an example in which encrypted message data by EKB is used as an authentication key.
[0086]
FIG. 12 shows a mutual authentication method (ISO / IEC 9798-2) using a common key cryptosystem. In FIG. 12, DES is used as the common key encryption method, but other methods are possible as long as the common key encryption method is used. In FIG. 12, first, B generates a 64-bit random number Rb, and transmits Rb and its own ID (b) to A. Upon receiving this, A newly generates a 64-bit random number Ra, encrypts the data using the key Kab in the DES CBC mode in the order of Ra, Rb, and ID (b), and returns it to B. The key Kab is a key stored in each recording element as a secret key common to A and B. In the encryption process using the key Kab using the DES CBC mode, for example, in the process using the DES, the initial value and Ra are exclusive-ORed, and the DES encryption unit encrypts using the key Kab, A ciphertext E1 is generated, and the ciphertexts E1 and Rb are exclusive ORed together, and the DES encryption unit encrypts the ciphertext E2 using the key Kab, and further generates the ciphertext E2 and the ID. The transmission data (Token-AB) is generated from the ciphertext E3 generated by performing an exclusive OR with (b) and encrypting with the key Kab in the DES encryption unit.
[0087]
Upon receiving this, B decrypts the received data with a key Kab (authentication key) that is also stored in each recording element as a common secret key. As a method for decrypting received data, first, the ciphertext E1 is decrypted with the authentication key Kab to obtain the random number Ra. Next, the ciphertext E2 is decrypted with the authentication key Kab, and the result is exclusive-ORed with E1 to obtain Rb. Finally, the ciphertext E3 is decrypted with the authentication key Kab, and the result and E2 are exclusive ORed to obtain ID (b). Of Ra, Rb, and ID (b) obtained in this way, it is verified whether Rb and ID (b) match those transmitted by B. If this verification is passed, B authenticates A as valid.
[0088]
Next, B generates a session key (Kses) to be used after authentication (a random number is used as a generation method). Then, the data is encrypted using the authentication key Kab in the DES CBC mode in the order of Rb, Ra, and Kses, and returned to A.
[0089]
Upon receiving this, A decrypts the received data with the authentication key Kab. The method for decoding the received data is the same as the decoding process for B, so the details are omitted here. Of Rb, Ra, and Kses obtained in this way, it is verified whether Rb and Ra match those transmitted by A. If this verification is passed, A authenticates B as valid. After authenticating each other, the session key Kses is used as a common key for secret communication after authentication.
[0090]
In addition, when an illegality or a mismatch is found during the verification of the received data, the processing is interrupted on the assumption that mutual authentication has failed.
[0091]
In the above authentication process, A and B share a common authentication key Kab. This common key Kab is distributed to the device using the above-described enabling key block (EKB).
[0092]
For example, in the example of FIG. 12, the authentication key Kab is encrypted with the enabling key block (EKB) generated by generating the enabling key block (EKB) that either A or B can decrypt. It is good also as a structure which transmits to the other, or the 3rd party produces | generates the enabling key block (EKB) which both can use with respect to devices A and B, and the enabling key produced | generated with respect to devices A and B The authentication key Kab may be encrypted by a block (EKB) and distributed.
[0093]
FIG. 13 and FIG. 14 show configuration examples in which an authentication key Kake common to a plurality of devices is distributed by an enabling key block (EKB). FIG. 13 shows an example in which a decodable authentication key Kake is distributed to the devices 0, 1, 2, and 3. FIG. 14 shows a revocation (exclusion) of the device 3 in the devices 0, 1, 2, and 3, and the device 0, An example in which an authentication key that can be decrypted only for 1 and 2 is distributed will be shown.
[0094]
In the example of FIG. 13, the node key updated using the node key and leaf key of each of the devices 0, 1, 2, and 3 together with the data (b) obtained by encrypting the authentication key Kake with the updated node key K (t) 00. An enabling key block (EKB) that can decrypt K (t) 00 is generated and distributed. As shown on the right side of FIG. 13, each device first processes (decrypts) the EKB to obtain an updated node key K (t) 00, and then obtains the obtained node key K (t) 00. It becomes possible to obtain the authentication key Kake by decrypting the authentication key Enc (K (t) 00, Kake) encrypted by using the encrypted key.
[0095]
Even if the other devices 4, 5, 6, 7... Receive the same enabling key block (EKB), the node keys and leaf keys held by the other devices 4, EKB are processed and the updated node key K (t) 00 is used. Since the authentication key cannot be acquired, the authentication key can be sent only to a safe and legitimate device.
[0096]
On the other hand, in the example of FIG. 14, assuming that the device 3 is revoked (excluded) due to key leakage, for example, in the group surrounded by the dotted frame in FIG. , An enabling key block (EKB) that can be decrypted only is generated and distributed. The data obtained by encrypting (a) the enabling key block (EKB) and (b) the authentication key (Kake) with the node key (K (t) 00) shown in FIG. 14 is distributed.
[0097]
The decoding procedure is shown on the right side of FIG. The devices 0, 1, and 2 first obtain an updated node key (K (t) 00) from the received validation key block by a decryption process using the leaf key or node key held by the device. Next, an authentication key Kake is obtained by decryption with K (t) 00.
[0098]
Even if the devices 4, 5, 6,... Shown in FIG. 3 receive this similar data (EKB), the updated node key (K (t) 00) is obtained using the leaf key and node key held by itself. I can't get it. Similarly, the revoked device 3 cannot obtain the updated node key (K (t) 00) with its own leaf key and node key, and only a device having a legitimate right decrypts the authentication key. It can be used.
[0099]
As described above, if the authentication key delivery using the EKB is used, it is possible to reduce the amount of data and distribute the authentication key that can be safely decrypted only by the right holder.
[0100]
[Content key distribution using public key authentication and validation key block (EKB)]
Next, content key distribution processing using public key authentication and an enabling key block (EKB) will be described. First, a mutual authentication method using 160-bit elliptic curve cryptography, which is a public key cryptosystem, will be described with reference to FIG. In FIG. 15, ECC is used as the public key cryptosystem, but any public key cryptosystem may be used. Also, the key size need not be 160 bits. In FIG. 15, first, B generates a 64-bit random number Rb and transmits it to A. Upon receiving this, A newly generates a 64-bit random number Ra and a random number Ak smaller than the prime number p. Then, a point Av = Ak × G obtained by multiplying the base point G by Ak is obtained, and an electronic signature A.R. for Ra, Rb, Av (X coordinate and Y coordinate) is obtained. Sig is generated and returned to B along with A's public key certificate. Here, Ra and Rb are 64 bits each, and the X coordinate and Y coordinate of Av are 160 bits each, so that an electronic signature for a total of 448 bits is generated.
[0101]
A's public key certificate, Ra, Rb, Av, electronic signature B that received Sig verifies whether Rb transmitted by A matches that generated by B. As a result, if they match, the electronic signature in A's public key certificate is verified with the public key of the certificate authority, and A's public key is extracted. Then, the electronic signature A.A. Verify Sig.
[0102]
Next, B generates a random number Bk smaller than the prime number p. Then, a point Bv = Bk × G obtained by multiplying the base point G by Bk is obtained, and the electronic signature B.Rb, Ra, Bv (X coordinate and Y coordinate) is obtained. Sig is generated and returned to A along with B's public key certificate.
[0103]
B's public key certificate, Rb, Ra, Av, digital signature A who receives Sig verifies whether Ra transmitted by B matches the one generated by A. As a result, if they match, the electronic signature in B's public key certificate is verified with the public key of the certificate authority, and B's public key is extracted. Then, using the B public key extracted, the electronic signature B.B. Verify Sig. After successfully verifying the electronic signature, A authenticates B as legitimate.
[0104]
If both are successfully authenticated, B is calculated as Bk × Av (Bk is a random number, but Av is a point on the elliptic curve, so a scalar multiplication of the points on the elliptic curve is required) and A is Ak × Bv is calculated, and the lower 64 bits of the X coordinate of these points are used as a session key for subsequent communications (when the common key encryption is a 64-bit key length common key encryption). Of course, the session key may be generated from the Y coordinate, or may not be the lower 64 bits. In secret communication after mutual authentication, transmission data is not only encrypted with a session key, but an electronic signature may be attached.
[0105]
If invalidity or inconsistency is found during verification of the electronic signature or verification of the received data, the processing is interrupted assuming that mutual authentication has failed.
[0106]
FIG. 16 shows an example of content key distribution processing using public key authentication and an enabling key block (EKB). First, authentication processing by the public key method described with reference to FIG. 15 is executed between the content provider and the PC. The content provider generates a content key E (Kcon) that is decrypted with the updated node key by generating the EKB that can be decrypted with the playback device that is the content key distribution destination, the node key and the leaf key of the recording medium, and the activation key block (EKB) is encrypted with the session key Kses generated in the authentication process between the PCs and transmitted to the PC.
[0107]
The PC decrypts the content key E (Kcon) encrypted with the updated node key and the enabling key block (EKB) encrypted with the session key with the session key, and then transmits it to the playback device and recording medium .
[0108]
The playback device and the recording medium acquire the content key Kcon by decrypting [the content key E (Kcon) encrypted with the updated node key and the enabling key block (EKB)] using the node key or leaf key held by itself. To do.
[0109]
According to this configuration, since [content key E (Kcon) and encryption key block (EKB) that has been encrypted with an updated node key] is transmitted on the condition of authentication between the content provider and the PC, for example, Even if the node key is leaked, it is possible to transmit data to a reliable partner.
[0110]
[Delivery using program code validation key block (EKB)]
In the above-described example, the method of encrypting and distributing the content key, the authentication key, and the like using the enabling key block (EKB) has been described. However, various program codes are distributed using the enabling key block (EKB). Configuration is also possible. That is, this is an example in which encrypted message data by EKB is used as a program code. Hereinafter, this configuration will be described.
[0111]
FIG. 17 shows an example in which a program code is encrypted between, for example, an update node key in an enabling key block (EKB) and transmitted between devices. The device 1701 transmits to the device 1702 the activation key block (EKB) that can be decrypted with the node key and leaf key of the device 1702, and the program code encrypted with the updated node key included in the activation key block (EKB). The device 1702 processes the received EKB to obtain an update node key, and further decrypts the program code using the obtained update node key to obtain a program code.
[0112]
In the example shown in FIG. 17, further, processing by the program code acquired in the device 1702 is executed, the result is returned to the device 1701, and the device 1701 further continues processing based on the result. Yes.
[0113]
By distributing the program code encrypted with the activation key block (EKB) and the update node key included in the activation key block (EKB) in this way, the program code that can be decrypted by a specific device is converted into the above-described FIG. It is possible to distribute to a specific device or group indicated by.
[0114]
[Configuration to correspond to the check value (ICV: Integrity Check Value) for transmitted content]
Next, a description will be given of a processing configuration for generating an integrity check value (ICV) of content in order to prevent content falsification, determining the presence / absence of content falsification by calculating the ICV in association with the content.
[0115]
The integrity check value (ICV) of the content is calculated using a hash function for the content, for example, and is calculated by ICV = hash (Kicv, C1, C2,...). Kicv is an ICV generation key. C1 and C2 are content information, and a message authentication code (MAC) of content important information is used.
[0116]
FIG. 18 shows an example of MAC value generation using the DES encryption processing configuration. As shown in the configuration of FIG. 18, the target message is divided into units of 8 bytes (hereinafter, the divided messages are referred to as M1, M2,..., MN). , IV)) and M1 are XORed (the result is I1). Next, I1 is put into the DES encryption unit and encrypted using a key (hereinafter referred to as K1) (the output is assumed to be E1). Subsequently, E1 and M2 are exclusively ORed, and the output I2 is input to the DES encryption unit and encrypted using the key K1 (output E2). Thereafter, this is repeated, and encryption processing is performed on all messages. The EN that comes out last is a message authentication code (MAC).
[0117]
A content integrity check value (ICV) is generated using a hash function applied to the MAC value and ICV generation key of the content. For example, if the same ICV is obtained by comparing an ICV generated at the time of content generation, which is guaranteed not to be falsified, with an ICV newly generated based on the content, it is guaranteed that the content will not be falsified. If they are different, it is determined that tampering has occurred.
[0118]
[Configuration for Distributing Check Value (ICV) Key Kicv via EKB]
Next, a configuration for sending Kicv, which is a content integrity check value (ICV) generation key, using the above-described activation key block will be described. That is, this is an example in which encrypted message data by EKB is used as a content integrity check value (ICV) generation key.
[0119]
19 and 20, when common contents are sent to a plurality of devices, an integrity check value generation key Kicv for verifying the presence / absence of falsification of these contents is delivered by an enabling key block (EKB). Indicates. FIG. 19 shows an example in which a decodable check value generation key Kicv is distributed to devices 0, 1, 2, and 3. FIG. 20 shows a device in which devices 3 in devices 0, 1, 2, and 3 are revoked (removed). An example is shown in which a check value generation key Kicv that can be decrypted only for 0, 1, and 2 is distributed.
[0120]
In the example of FIG. 19, the updated node key K (t) 00 is updated using the node key and leaf key of the devices 0, 1, 2, and 3 together with the data (b) obtained by encrypting the check value generation key Kicv. An enabling key block (EKB) that can decrypt the node key K (t) 00 is generated and distributed. As shown on the right side of FIG. 19, each device first processes (decrypts) the EKB to obtain an updated node key K (t) 00, and then obtains the obtained node key K (t) 00. The check value generation key Kicv can be obtained by decrypting the encrypted check value generation key: Enc (K (t) 00, Kicv).
[0121]
Even if the other devices 4, 5, 6, 7... Receive the same enabling key block (EKB), the node keys and leaf keys held by the other devices 4, EKB are processed and the updated node key K (t) 00 is used. Since it cannot be obtained, the check value generation key can be sent only to a safe and valid device.
[0122]
On the other hand, in the example of FIG. 20, it is assumed that the device 3 is revoked (excluded) due to key leakage, for example, in the group surrounded by the dotted frame in FIG. , An enabling key block (EKB) that can be decrypted only is generated and distributed. The data obtained by encrypting (a) the enabling key block (EKB) and (b) the check value generation key (Kicv) with the node key (K (t) 00) shown in FIG. 20 is distributed.
[0123]
The decoding procedure is shown on the right side of FIG. The devices 0, 1, and 2 first obtain an updated node key (K (t) 00) from the received validation key block by a decryption process using the leaf key or node key held by the device. Next, a check value generation key Kicv is obtained by decryption with K (t) 00.
[0124]
Even if the devices 4, 5, 6,... Shown in FIG. 3 receive this similar data (EKB), the updated node key (K (t) 00) is obtained using the leaf key and node key held by itself. I can't get it. Similarly, the revoked device 3 cannot acquire the updated node key (K (t) 00) with its own leaf key and node key, and only the device having a legitimate right decrypts the check value generation key. Can be used.
[0125]
As described above, if the delivery of the check value generation key using the EKB is used, it is possible to distribute the check value generation key that can be decrypted only by the rightful owner safely while reducing the data amount.
[0126]
By using such an integrity check value (ICV) of content, unauthorized copying of EKB and encrypted content can be eliminated. For example, as shown in FIG. 21, it is assumed that there is a medium 1 that stores content C1 and content C2 together with an enabling key block (EKB) that can acquire the respective content keys, and this is copied to the medium 2 as it is. . Copying of EKB and encrypted content is possible, and this can be used in a device capable of decrypting EKB.
[0127]
As shown in FIG. 21 (b), the integrity check value (ICV (C1, C2)) is stored in association with the content properly stored in each medium. Note that (ICV (C1, C2)) indicates ICV = hash (Kicv, C1, C2), which is a content integrity check value calculated using a hash function for the contents C1 and C2. In the configuration of FIG. 21 (b), the contents 1 and 2 are properly stored in the medium 1, and the integrity check value (ICV (C1, C2)) generated based on the contents C1 and C2 is stored. Is done. Further, the content 2 is legitimately stored in the medium 2, and the integrity check value (ICV (C1)) generated based on the content C1 is stored. In this configuration, if {EKB, content 2} stored in the medium 1 is copied to the medium 2, when a content check value is newly generated in the medium 2, ICV (C1, C2) is generated. Unlike the Kicv (C1) stored in the media, it becomes clear that new content is stored by falsification or illegal copy of the content. In the device for reproducing media, an ICV check is executed before the reproduction step to determine whether the generated ICV and the stored ICV match, and if they do not match, the reproduction is not executed. Can be prevented from being reproduced.
[0128]
Further, in order to further enhance safety, the content integrity check value (ICV) may be generated based on data including a rewrite counter. That is, the calculation is performed by ICV = hash (Kicv, counter + 1, C1, C2,...). Here, the counter (counter + 1) is set as a value that is incremented by one every time the ICV is rewritten. The counter value needs to be stored in a secure memory.
[0129]
Further, in a configuration in which the content integrity check value (ICV) cannot be stored on the same medium as the content, the content integrity check value (ICV) may be stored on a medium different from the content. .
[0130]
For example, when content is stored in a read-only medium or a medium that is not subjected to copy prevention measures such as ordinary MO, if an integrity check value (ICV) is stored in the same medium, the ICV is rewritten by an unauthorized user. There is a possibility that ICV safety cannot be maintained. In such a case, the ICV is stored in a secure medium on the host machine, and the ICV is used for content copy control (for example, check-in / check-out, move). Management and content tampering can be checked.
[0131]
An example of this configuration is shown in FIG. In FIG. 22, contents are stored in a read-only medium or a medium 2201 that is not subjected to copy prevention measures such as a normal MO, and the user is allowed to freely access the integrity check value (ICV) regarding these contents. This is an example in which it is stored in a secure medium 2202 on the host machine that is not used, and unauthorized rewriting of the integrity check value (ICV) by the user is prevented. As such a configuration, for example, when a device equipped with the media 2201 executes playback of the media 2201, it is illegal if the PC or server that is the host machine performs an ICV check to determine whether playback is possible. Reproduction of copy content or altered content can be prevented.
[0132]
[Categorization of hierarchical tree structure]
The encryption key is configured as the root tree, node key, leaf key, etc., in the hierarchical tree structure shown in FIG. 3, and the content key, authentication key, ICV generation key, program code, data, etc. are encrypted and delivered together with the activation key block (EKB). The configuration that performs efficient key update processing, encryption key distribution, and data distribution by classifying the hierarchical tree structure defining node keys and the like into categories for each device has been described below. To do.
[0133]
FIG. 23 shows an example of category classification of a hierarchical tree structure. In FIG. 23, a root key Kroot 2301 is set at the top level of the hierarchical tree structure, a node key 2302 is set at the intermediate level below, and a leaf key 2303 is set at the bottom level. Each device has an individual leaf key and a series of node keys and root keys from the leaf key to the root key.
[0134]
Here, as an example, a node at the M-th stage from the top is set as the category node 2304. That is, each of the M-th level nodes is set as a device setting node of a specific category. The nodes and leaves of the Mth stage below are assumed to be nodes and leaves related to devices included in the category, with one node at the Mth stage as a vertex.
[0135]
For example, a category [memory stick (trademark)] is set in one node 2305 in the M-th stage in FIG. 23, and nodes and leaves connected to this node are dedicated to the category including various devices using the memory stick. Set as a node or leaf. That is, nodes 2305 and below are defined as a set of related nodes and leaves of devices defined in the category of the memory stick.
[0136]
Furthermore, a stage that is several stages lower than the M stage can be set as the subcategory node 2306. For example, as shown in the figure, a node of “playback device” is set as a subcategory node included in the category of the device using the memory stick in a node two stages below the category [memory stick] node 2305. Further, a node 2307 of a telephone with a music playback function included in the category of the playback-only device is set below the node 2306 of the playback-only device that is a subcategory node, and further below that is included in the category of the telephone with a music playback function. [PHS] node 2308 and [mobile phone] node 2309 can be set.
[0137]
Furthermore, categories and subcategories are not limited to device types, for example, nodes managed independently by a certain manufacturer, content provider, payment institution, etc., that is, arbitrary units such as processing units, jurisdiction units, or service units provided (these are (Hereinafter collectively referred to as an entity). For example, if one category node is set as a vertex node dedicated to the game device XYZ sold by the game device manufacturer, the node key and leaf key below the vertex node can be stored and sold in the game device XYZ sold by the manufacturer. After that, distribution of encrypted contents or distribution and update of various keys is performed by generating and distributing an activation key block (EKB) composed of node keys and leaf keys below the vertex node key, and below the vertex nodes. Data that can be used only for these devices can be distributed.
[0138]
In this way, by setting one node as a vertex and setting the following node as a related node of the category or subcategory defined in the vertex node, one vertex in the category stage or subcategory stage It is possible for a manufacturer, content provider, etc. that manages a node to generate an enabling key block (EKB) that has that node as its vertex and distribute it to devices belonging to the node below the vertex node. The key update can be executed without affecting the devices belonging to the nodes in this category.
[0139]
[Key distribution configuration by simplified EKB]
In the tree structure shown in FIG. 3, for example, when a key, for example, a content key is sent to a predetermined device (leaf), an activation key that can be decrypted using the leaf key and node key owned by the key distribution destination device A block (EKB) is generated and provided. For example, in the tree configuration shown in FIG. 24A, when a key, for example, a content key is transmitted to devices a, g, and j constituting a leaf, an enabling key that can be decrypted at each node of a, g, and j A block (EKB) is generated and distributed.
[0140]
For example, consider a case where the content key K (t) con is encrypted with the updated root key K (t) root and distributed together with the EKB. In this case, each of the devices a, g, and j performs EKB processing using the leaf and node key shown in FIG. 24B to obtain K (t) root, and the obtained update root key K ( t) The content key K (t) con is decrypted by root to obtain the content key.
[0141]
The configuration of the enabling key block (EKB) provided in this case is as shown in FIG. The enabling key block (EKB) shown in FIG. 25 is configured in accordance with the format of the enabling key block (EKB) described in FIG. 6, and data (encryption key) and a corresponding tag are included. Have. As described above with reference to FIG. 7, the tag indicates 0 if there is data in the left (L) and right (R) directions, and 1 if there is no data.
[0142]
The device that has received the enabling key block (EKB) sequentially executes the decryption process of the encryption key based on the encryption key and tag of the enabling key block (EKB), and acquires the update key of the upper node. Go. As shown in FIG. 25, the data amount of the enabling key block (EKB) increases as the number of steps (depth) from the root to the leaf increases. The number of stages (depth) increases according to the number of devices (leafs), and when the number of devices to which keys are distributed is large, the amount of EKB data further increases.
[0143]
A configuration that can reduce the data amount of the enabling key block (EKB) will be described. FIG. 26 shows an example in which the enabling key block (EKB) is simplified according to the key distribution device.
[0144]
As in FIG. 25, it is assumed that a key, for example, a content key is transmitted to the devices a, g, and j constituting the leaf. As shown in FIG. 26A, a tree constructed only by the key distribution device is constructed. In this case, the tree configuration shown in FIG. 26B is constructed as a new tree configuration based on the configuration shown in FIG. There is no branch from Kroot to Kj, and only one branch needs to exist. To reach from Kroot to Ka and Kg, only a branch point is formed at K0, and the two-branch configuration shown in FIG. A tree is built.
[0145]
As shown in FIG. 26A, a simplified tree having only K0 as a node is generated. An enabling key block (EKB) for renewal key distribution is generated based on these simplified trees. The tree shown in FIG. 26 (a) is regenerated by selecting a path constituting a two-branch tree with the end node or leaf being the lowest stage capable of decrypting the enabling key block (EKB) and omitting unnecessary nodes. It is a reconstructed hierarchical tree that is constructed. An enabling key block (EKB) for update key distribution is configured based only on keys corresponding to nodes or leaves of this reconstructed hierarchical tree.
[0146]
The enabling key block (EKB) described with reference to FIG. 25 stores data obtained by encrypting all keys from each leaf a, g, j to Kroot, but the simplified EKB is simplified. Encrypted data is stored only for the nodes that make up the tree. As shown in FIG. 26B, the tag has a 3-bit configuration. The first and second bits have the same meaning as in the example of FIG. 25, and indicate 0 if there is data in the left (L) and right (R) directions, and 1 if there is no data. The third bit is a bit for indicating whether or not the encryption key is stored in the EKB, and is set as 1 when data is stored and 0 when there is no data.
[0147]
As shown in FIG. 26 (b), the enabling key block (EKB) stored in the data communication network or storage medium and provided to the device (leaf) has a data amount as compared with the configuration shown in FIG. It will be greatly reduced. Each device that has received the enabling key block (EKB) shown in FIG. 26 realizes decryption of a predetermined encryption key by sequentially decrypting only the data in the portion where 1 is stored in the third bit of the tag. be able to. For example, the device a decrypts the encrypted data Enc (Ka, K (t) 0) with the leaf key Ka, obtains the node key K (t) 0, and uses the node key K (t) 0 to encrypt the encrypted data Enc (K (T) 0, K (t) root) is decoded to obtain K (t) root. The device j decrypts the encrypted data Enc (Kj, K (t) root) with the leaf key Kj, and acquires K (t) root.
[0148]
In this way, a simplified new tree configuration configured only by the delivery destination device is constructed, and an enabling key block (EKB) is generated using only the leaf and node keys that make up the constructed tree. By doing so, it becomes possible to generate an enabling key block (EKB) with a small amount of data, and data distribution of the enabling key block (EKB) can be executed efficiently.
[0149]
It should be noted that the simplified hierarchical tree configuration can be used particularly effectively in the entity-by-entity EKB management configuration described later. An entity is an aggregate block of a plurality of nodes or leaves selected from nodes or leaves constituting a tree structure as a key distribution structure. An entity is a set that is set according to the type of device, or a processing unit, jurisdiction unit, or service unit that has a common point, such as a management unit such as a device provider, content provider, or payment institution. Are set as a set of various modes. One entity is a collection of devices that fall into a common category. For example, the EKB is generated by reconstructing a simplified tree similar to that described above with vertex nodes (sub-roots) of a plurality of entities. Thus, it becomes possible to generate and distribute a simplified enabling key block (EKB) that can be decrypted by devices belonging to the selected entity. The management configuration of entity units will be described in detail later.
[0150]
Such an enabling key block (EKB) can be stored in an information recording medium such as an optical disk or a DVD. For example, an enabling key block (EKB) including a data part constituted by the above-described encryption key data and a tag part as position identification data in the hierarchical tree structure of the encryption key data is further encrypted by an update node key. It is possible to provide an information recording medium storing message data such as content to each device. The device can extract and decrypt the encryption key data contained in the enabling key block (EKB) sequentially according to the identification data of the tag part, obtain the key necessary for decrypting the content, and use the content It becomes. Of course, the enabling key block (EKB) may be distributed via a network such as the Internet.
[0151]
[Entity-based EKB management configuration]
Next, a configuration in which nodes or leaves constituting a tree configuration as a key distribution configuration are managed by blocks as a set of a plurality of nodes or leaves will be described. A block as a set of a plurality of nodes or leaves is hereinafter referred to as an entity. An entity is a set that is set according to the type of device, or a processing unit, jurisdiction unit, or service unit that has a common point, such as a management unit such as a device provider, content provider, or payment institution. Are set as a set of various modes. That is, an entity is defined as a device or entity management entity that belongs to a common category such as a device type, a service type, or a management means type.
[0152]
The entity will be described with reference to FIG. FIG. 27A is a diagram illustrating a management configuration in units of tree entities. In the figure, one entity is shown as a triangle. For example, one entity 2701 includes a plurality of nodes. (B) shows a node configuration within one entity. One entity is constituted by a two-stage bifurcated tree having one node as a vertex. Hereinafter, the vertex node 2702 of the entity is called a sub-root.
[0153]
The end of the tree is constituted by leaves, ie devices, as shown in (c). A device belongs to any entity constituted by a tree having a plurality of devices as leaves and having a vertex node 2702 as a sub-root.
[0154]
As understood from FIG. 27A, the entity has a hierarchical structure. This hierarchical structure will be described with reference to FIG.
[0155]
FIG. 28 (a) is a diagram for explaining the hierarchical structure in a simplified manner. Entities A01 to Ann are configured a few steps below Kroot, and an entity B01 is further subordinate to the entities A1 to An. ~ Bnk, and further, entities C1 to Cnq are set in the lower order. Each entity has a tree shape composed of a plurality of stages of nodes and leaves, as shown in FIGS.
[0156]
For example, the configuration of the entity Bnk has a plurality of nodes from the sub route 2811 to the end node 2812 as shown in FIG. This entity has an identifier Bnk, and by managing the node key corresponding to the node in the entity Bnk independently of the entity Bnk, the management of the lower (child) entity set with the end node 2812 as the vertex is executed. On the other hand, the entity Bnk is under the management of a higher-level (parent) entity Ann having the sub-route 2811 as a terminal node.
[0157]
As shown in (c), the configuration of the entity Cn3 has a sub-root 2851 as a vertex node, a terminal node 2852 that is each device, in this case, a plurality of nodes and leaves up to the leaf. This entity has an identifier Cn3 and executes management of a leaf (device) corresponding to the end node 2852 by executing the node key and leaf key management corresponding to the node and leaf in the entity Cn3 independently of the entity Cn3. On the other hand, the entity Cn3 is under the management of the upper (parent) entity Bn2 having the sub-route 2851 as a terminal node. Key management in each entity is, for example, key update processing, revoke processing, etc., which will be described in detail later.
[0158]
The device which is the leaf of the lowest entity stores the node key and leaf key of each node located in the path from the leaf key of the entity to which the device belongs to the sub-root node which is the vertex node of the entity to which the device belongs. For example, the device of the end node 2852 stores each key from the end node (leaf) 2852 to the sub-root node 2851.
[0159]
The configuration of the entity will be further described with reference to FIG. An entity can have a tree structure composed of various levels. The number of stages, that is, the depth, can be set according to the number of lower (child) entities corresponding to the terminal nodes managed by the entities, or the number of devices as leaves.
[0160]
When the vertical entity configuration as shown in FIG. 29A is embodied, the mode shown in FIG. 29B is obtained. The root entity is an uppermost entity having a root key. Entities A, B, and C are set as a plurality of lower entities at the end node of the root entity, and entity D is set as a lower entity of entity C. When entity C 2901 holds one or more of its end nodes as reserve nodes 2950 and increases the entity managed by itself, entity C '2902 having a multi-stage tree structure is further set as reserve node 2950. By newly providing a vertex node, it is possible to increase the management end node 2970 and add the increased lower-level entity to the management end node.
[0161]
The reserve node will be further described with reference to FIG. The entity A, 3011 has lower-level entities B, C, D... To be managed, and has one reserve node 3021. If the entity wants to further increase the lower-level entity to be managed, the self-managed lower-level entity A ′, 3012 is set in the reserve node 3021, and the lower-level entity F, to be managed is further set at the end node of the lower-level entity A ′, 3012. G can be set. The self-managed lower entity A ′, 3012 can further increase the management entity by setting the lower entity A ″ 3013 by setting at least one of its end nodes as the reserve node 3022. One or more reserve nodes are also secured at the terminal node of the lower entity A ″ 3013. By adopting such a reserve node possession configuration, the lower-level entities managed by a certain entity can be increased without limit. In addition, it is good also as a structure which sets multiple reserve entities instead of only one of the terminal nodes.
[0162]
In each entity, an enabling key block (EKB) is configured in units of entities, and key updating and revoke processing are performed in units of entities. As shown in FIG. 30, the plurality of entities A, A ′, A ″ are set with the individual enabling key blocks (EKB) of the entities, and these are the entities A, A ′, A ″. For example, a certain device manufacturer can manage all of them in a batch.
[0163]
[New entity registration process]
Next, a new entity registration process will be described. FIG. 31 shows the registration processing sequence. This will be described according to the sequence of FIG. The new (child) entity (N-En) newly added in the tree structure executes a new registration request to the upper (parent) entity (P-En). Each entity has a public key in accordance with the public key cryptosystem, and the new entity sends its public key to the higher-level entity (P-En) upon requesting registration.
[0164]
Upon receiving the registration request, the upper entity (P-En) transfers the received public key of the new (child) entity (N-En) to a certificate authority (CA) and adds the CA signature. A new (child) entity (N-En) public key is received. These procedures are performed as a mutual authentication procedure between the upper entity (P-En) and the new (child) entity (N-En).
[0165]
When the authentication of the new registration request entity is completed by these processes, the upper entity (P-En) permits the registration of the new (child) entity (N-En), and the new (child) entity (N-En). Are transmitted to the new (child) entity (N-En). This node key is one node key of the terminal node of the upper entity (P-En) and corresponds to the vertex node of the new (child) entity (N-En), that is, the sub-root key.
[0166]
When this node key transmission is completed, the new (child) entity (N-En) constructs a tree structure of the new (child) entity (N-En), and sets the received sub-root key of the vertex node at the vertex of the constructed tree. Set and set keys for each node and leaf to generate an enabling key block (EKB) in the entity. An enabling key block (EKB) in one entity is called a sub-EKB.
[0167]
On the other hand, the upper entity (P-En) generates a sub-EKB in the upper entity (P-En) to which the terminal node to be activated is added by adding a new (child) entity (N-En).
[0168]
When the new (child) entity (N-En) generates a sub-EKB composed of the node key and leaf key in the new (child) entity (N-En), the new (child) entity (N-En) transmits this to the higher-level entity (P-En).
[0169]
The upper entity (P-En) that has received the sub-EKB from the new (child) entity (N-En) receives the received sub-EKB and the updated sub-EKB of the upper entity (P-En) as the key issuing center (KDC). : Key Distribute Center).
[0170]
Based on the sub-EKB of all entities, the key distribution center (KDC) can generate various modes of EKB, that is, EKB that can be decrypted only by a specific entity or device. Providing an EKB in which an entity or device that can be decrypted in this way is set to, for example, a content provider, the content provider encrypts the content key based on the EKB, and stores the encrypted content key via a network or a recording medium. Thus, it is possible to provide content that can be used only on a specific device.
[0171]
The registration process of the new entity sub-EKB to the key issuing center (KDC) is not limited to the method of sequentially transferring the sub-EKB through the upper entity and executing it, and the new entity is registered without going through the upper entity. It may be configured to execute a process of registering with the key issuing center (KDC) directly from the entity.
[0172]
The correspondence between the upper entity and the lower entity newly added to the upper entity will be described with reference to FIG. The lower entity is added as an entity under the management of the higher entity by providing one of the higher entity end nodes 3201 as the apex node of the newly added entity to the lower entity. The entity under the management of the upper entity, which will be described in detail later, includes the meaning that the upper entity can execute the revocation (exclusion) processing of the lower entity.
[0173]
As shown in FIG. 32, when a new entity is set in the higher entity, one node 3201 of the end node that is the leaf of the higher entity and the vertex node 3202 of the new additional entity are set as equal nodes. That is, one terminal node, which is one leaf of the upper node, is set as a sub-root of the newly added entity. With this setting, the newly added entity is validated under the entire tree structure.
[0174]
FIG. 33 shows an example of an update EKB generated by a higher entity when a new additional entity is set. FIG. 33 shows the configuration shown in (a), that is, there are a terminal node (node000) 3301 and a terminal node (node001) 3302 that are already valid, and a new entity additional terminal node (node100) 3303 is assigned to the new additional entity. This is an example of a sub-EKB generated by a higher-order entity when it is performed.
[0175]
The sub EKB has a configuration as shown in FIG. Each of the nodes has an upper node key encrypted with a terminal node key that exists effectively, a further upper node key encrypted with the upper node key,... With this configuration, a sub-EKB is generated. As shown in FIG. 33 (b), each entity is a valid end node, or a higher node key encrypted with a leaf key, and a higher node key is encrypted with the upper node key, and the higher node key is sequentially encrypted deeper to the sub-root. It has an EKB composed of data and manages it.
[0176]
[Revocation processing under entity management]
Next, device or entity revocation (exclusion) processing in a configuration in which the key distribution tree configuration is managed as entity units will be described. 3 and 4 described the processing for distributing an enabling key block (EKB) in which only a specific device can be decrypted from the entire tree structure and the revoked device cannot decrypt. The revocation process described with reference to FIGS. 3 and 4 is a process for revoking a device that is a specific leaf from the entire tree. However, in the configuration based on the entity management of the tree, the revocation process can be executed for each entity.
[0177]
The revoke process in the tree structure under entity management will be described with reference to FIG. 34 and subsequent figures. FIG. 34 is a diagram for explaining device revocation processing by the lowest entity among the entities constituting the tree, that is, the entity that manages each device.
[0178]
FIG. 34A shows a key distribution tree structure based on entity management. A root node is set at the top of the tree, and entities A01 to Ann are arranged several stages below, entities B01 to Bnk are further arranged at the lower stages thereof, and entities C1 to cn are arranged at the lower stages thereof. In the lowest entity, it is assumed that the end node (leaf) is an individual device, for example, a recording / reproducing device, a reproducing-only device, or the like.
[0179]
Here, the revoke process is independently executed in each entity. For example, in the lowest entity C1 to Cn, the revocation processing of the leaf device is executed. FIG. 34B shows a tree configuration of entities Cn, 3430, which is one of the lowest-level entities. The entity Cn, 3430 has a vertex node 3431 and a plurality of devices in a leaf that is a terminal node.
[0180]
If there is a device to be revoked, for example, a device 3432, in the leaf that is the terminal node, the entities Cn and 3430 have an activation key block (sub-key) composed of the node key and leaf key in the entity Cn that has been independently updated. EKB). This activation key block is a key block constituted by an encryption key that cannot be decrypted by the revoke device 3432 but can be decrypted only by devices constituting other leaves. The administrator of entity Cn generates this as an updated sub-EKB. Specifically, the node key of each of the nodes 3431, 3434, and 3435 constituting the path connected from the sub-root to the revocation device 3432 is updated, and this updated node key is used as an encryption key that can be decrypted only by leaf devices other than the revocation device 3432. The constructed block is set as an update sub-EKB. This processing corresponds to the processing in which the root key is replaced with the sub-root key which is the vertex key of the entity in the revocation processing configuration described with reference to FIGS.
[0181]
Thus, the validation key block (sub EKB) updated by the entity Cn, 3430 by the revoke process is transmitted to the upper entity. In this case, the upper entity is entity Bnk, 3420, and is an entity having vertex node 3431 of entity Cn, 3430 as a terminal node.
[0182]
When entity Bnk, 3420 receives the enabling key block (sub-EKB) from lower entity Cn, 3430, entity Bnk, 3420 changes end node 3431 of entity Bnk, 3420 corresponding to vertex node 3431 of entity Cnk, 3430 included in the key block. Then, the key updated in the lower entity Cn, 3430 is set and the sub-EKB of the entity Bnk, 3420 is updated. FIG. 34C shows the tree structure of the entities Bnk and 3420. In the entity Bnk, 3420, the node key to be updated is a node key on the path from the sub-route 3421 in FIG. 34C to the terminal node 3431 constituting the entity including the revocation device. That is, the node key of each of the nodes 3421, 3424, 3425 constituting the path connected to the entity node 3431 that has transmitted the update sub-EKB is to be updated. The node key of each node is updated to generate a new update sub-EKB of the entity Bnk, 3420.
[0183]
Alternatively, when the entity Bnk, 3720 executes the revocation of the lower entity Cn, 3730, the terminal node 3731 of the entity Bnk, 3720 corresponding to the vertex node 3731 of the entity Cnk, 3730 is not updated, and from the revocency 3730 An updated sub-EKB may be generated by updating the node keys excluding the terminal node 3731 on the path to the sub-root of the entity Bnk, 3720 to generate an enabling key block.
[0184]
Further, the enabling key block (sub EKB) updated by the entity Bnk, 3420 is transmitted to the upper entity. In this case, the superior entity is the entity Ann, 3410, and is an entity having the vertex node 3421 of the entity Bnk, 3420 as a terminal node.
[0185]
When the entity Ann, 3410 receives the activation key block (sub EKB) from the lower entity Bnk, 3420, the entity Ann, 3410 sets the end node 3421 of the entity Ann, 3410 corresponding to the vertex node 3421 of the entity Bnk, 3420 included in the key block. Then, the key updated in the lower entity Bnk, 3420 is set, and the sub-EKB update process of its own entity Ann, 3410 is executed. FIG. 34D shows a tree structure of the entity Ann, 3410. In the entity Ann, 3410, the node key to be updated is the node key of each of the nodes 3411, 3414, 3415 constituting the path connected to the entity node 3421 that has transmitted the updated sub-EKB from the sub-route 3411 in FIG. . The node key of each node is updated to generate a new update sub-EKB of the entity Ann, 3410.
[0186]
These processes are sequentially executed in the upper entity and executed up to the root entity described with reference to FIG. This series of processing completes the device revocation process. The sub-EKB updated in each entity is finally transmitted to the key issuing center (KDC) and stored. The key distribution center (KDC) generates various EKBs based on all entity update sub-EKBs. The update EKB becomes an encryption key block that cannot be decrypted by the revoked device.
[0187]
FIG. 35 shows a sequence diagram of the device revocation process. The processing procedure will be described with reference to the sequence diagram of FIG. First, the device management entity (D-En) at the bottom of the tree configuration performs key update necessary to eliminate the revoked leaf in the device management entity (D-En), and the device management entity (D -New sub-EKB (D) of (En) is generated. The updated sub EKB (D) is sent to the upper entity. The upper (parent) entity (P1-En) that has received the updated sub-EKB (D) updates the terminal node key corresponding to the updated vertex node of the updated sub-EKB (D) and is on the path from the terminal node to the sub-root. An updated sub EKB (P1) with the updated node key is generated. These processes are sequentially executed in the upper entity, and all the sub-EKBs finally updated are stored and managed in the key issuing center (KDC).
[0188]
FIG. 36 shows an example of an enabling key block (EKB) generated by a higher entity performing an update process by a device revocation process.
[0189]
FIG. 36 is a diagram for explaining an example of EKB generated in the upper entity that has received the updated sub-EKB from the lower entity including the revocation device in the configuration illustrated in FIG. The vertex node of the lower entity including the revocation device corresponds to the terminal node (node 100) 3601 of the upper entity.
[0190]
The upper entity updates a node key existing in the path from the sub-root of the upper entity to the terminal node (node 100) 3601, and generates a new update sub-EKB. The update sub EKB is as shown in FIG. The updated key is shown with an underline and [']. The node key on the path from the terminal node thus updated to the sub-root is updated to be an updated sub-EKB in that entity.
[0191]
Next, processing when an object to be revoked is an entity, that is, an entity revoking process will be described.
[0192]
FIG. 37 (a) shows a key distribution tree structure based on entity management. A root node is set at the top of the tree, and entities A01 to Ann are arranged several stages below, entities B01 to Bnk are further arranged at the lower stages thereof, and entities C1 to cn are arranged at the lower stages thereof. In the lowest entity, it is assumed that the end node (leaf) is an individual device, for example, a recording / reproducing device, a reproducing-only device, or the like.
[0193]
Here, a case where the revoke process is executed for the entities Cn and 3730 will be described. The lowest entity Cn, 3730 has a vertex node 3431 as shown in FIG. 37 (b) and a plurality of devices in a leaf which is a terminal node.
[0194]
By revoking the entity Cn, 3730, it becomes possible to eliminate all devices belonging to the entity Cn, 3730 from the tree structure. The revoke process of the entity Cn, 3730 is executed in the entity Bnk, 3720, which is the higher entity of the entity Cn, 3730. The entity Bnk, 3720 is an entity having the vertex node 3731 of the entity Cn, 3730 as a terminal node.
[0195]
When the entity Bnk, 3720 executes the revocation of the lower entity Cn, 3730, the entity Bnk, 3720 updates the terminal node 3731 of the entity Bnk, 3720 corresponding to the vertex node 3731 of the entity Cnk, 3730, and further updates the entity Bnk, 3720 from the entity 3730. The node key on the path up to the sub-root of Bnk, 3720 is updated to generate an enabling key block to generate an updated sub-EKB. The node key to be updated is a node key on the path from the sub-root 3721 in FIG. 37C to the terminal node 3731 constituting the vertex node of the revouncity. That is, the node keys of the nodes 3721, 3724, 3725, and 3731 are to be updated. The node key of each node is updated to generate a new update sub-EKB of the entity Bnk, 3720.
[0196]
Further, the enabling key block (sub EKB) updated by the entity Bnk, 3720 is transmitted to the upper entity. In this case, the upper entity is the entity Ann, 3710, and is an entity having the vertex node 3721 of the entity Bnk, 3720 as a terminal node.
[0197]
When entity Ann, 3710 receives the enabling key block (sub-EKB) from lower entity Bnk, 3720, entity Ann, 3710 receives end node 3721 of entity Ann, 3710 corresponding to vertex node 3721 of entity Bnk, 3720 included in the key block. Then, the key updated in the lower entity Bnk, 3720 is set, and the sub-EKB update process of its own entity Ann, 3710 is executed. FIG. 37 (d) shows the tree structure of the entity Ann 3710. In the entity Ann, 3710, the node key to be updated is the node key of each of the nodes 3711, 3714, 3715 constituting the path connected to the entity node 3721 that has transmitted the updated sub-EKB from the sub-route 3711 in FIG. . The node key of each of these nodes is updated to generate a new update sub-EKB of the entity Ann, 3710.
[0198]
These processes are sequentially executed in the upper entity and executed up to the root entity described with reference to FIG. Through this series of processes, the entity revocation process is completed. The sub-EKB updated in each entity is finally transmitted to the key issuing center (KDC) and stored. The key distribution center (KDC) generates various EKBs based on all entity update sub-EKBs. The update EKB becomes an encryption key block that cannot be decrypted by a device belonging to the revoked entity.
[0199]
FIG. 38 shows a sequence diagram of the entity revocation process. The processing procedure will be described with reference to the sequence diagram of FIG. First, the entity management entity (E-En) that intends to revoke the entity performs key update necessary to eliminate the terminal node to be revoked in the entity management entity (E-En), and the entity management entity (E -New sub-EKB (E) of (En) is generated. The updated sub-EKB (E) is sent to the upper entity. The upper (parent) entity (P1-En) that has received the updated sub-EKB (E) updates the terminal node key corresponding to the updated vertex node of the updated sub-EKB (E) and is on the path from the terminal node to the sub-root. An updated sub EKB (P1) with the updated node key is generated. These processes are sequentially executed in the upper entity, and all the sub-EKBs finally updated are stored and managed in the key issuing center (KDC). The key distribution center (KDC) generates various EKBs based on all entity update sub-EKBs. The update EKB becomes an encryption key block that cannot be decrypted by a device belonging to the revoked entity.
[0200]
FIG. 39 is a diagram for explaining the correspondence between the revoked lower entity and the higher entity that has been revoked. The upper entity end node 3901 is updated by the entity revocation, and a new sub-EKB is generated by updating the node key existing in the path from the end node 3901 to the sub-root in the upper entity tree. As a result, the node key of the vertex node 3902 of the revoked lower entity and the node key of the end node 3901 of the higher entity do not match. Since the EKB generated by the key distribution center (KDC) after the entity revocation is generated based on the key of the terminal node 3901 updated in the upper entity, the leaf of the lower entity that does not hold the updated key is generated. The corresponding device will be unable to decrypt the EKB generated by the key distribution center (KDC).
[0201]
In the above description, the revoking process of the lowest entity that manages the device has been described. However, the process of revoking the entity management entity in the middle of the tree by the higher entity is also possible by the same process as described above. By revoking the middle-stage entity management entity, all of the plurality of entities and devices belonging to the subordinates of the revoked entity management entity can be revoked at once.
[0202]
In this way, by executing revocation in units of entities, it is possible to perform revocation processing in a simple process compared to revocation processing executed in units of devices.
[0203]
[Management of entity capabilities]
Next, in the key distribution tree configuration in units of entities, a processing configuration for managing the capability (Capability) allowed by each entity and performing content distribution according to the capability will be described. Here, the capability means what kind of content or program the device has such as being capable of decoding specific compressed audio data, allowing a specific audio reproduction method, or processing a specific image processing program. It is the definition information of the data processing capability of the device.
[0204]
FIG. 40 shows an example of an entity configuration in which capabilities are defined. In this tree configuration, a root node is located at the top of the key distribution tree configuration, a plurality of entities are connected to the lower layer, and each node has two branches. Here, for example, the entity 4001 is defined as an entity having a capability that allows any one of the audio reproduction modes A, B, and C. Specifically, for example, when music data compressed by an audio compression program-A, B, or C method is distributed, a device belonging to an entity configured under the entity 4001 can perform a process of decompressing the compressed data. is there.
[0205]
Similarly, the entity 4002 is defined as an entity having a capability capable of processing the audio reproduction method B or C, the entity 4003 is an audio reproduction method A or B, the entity 4004 is an audio reproduction method B, and the entity 4005 is an audio reproduction method C. Is done.
[0206]
On the other hand, the entity 4021 is defined as an entity that allows the image reproduction methods p, q, and r, the entity 4022 is an image reproduction method of the methods p and q, and the entity 4023 is an entity having a capability capable of image reproduction of the method p. Defined.
[0207]
Such capability information of each entity is managed in a key issuing center (KDC). For example, when a content provider wants to distribute music data compressed by a specific compression program to various devices, the key distribution center (KDC) enables the specific compression program to be decrypted only to a device that can play the specific compression program. A key block (EKB) can be generated based on capability information of each entity. The content provider that provides the content distributes the content key encrypted with the enabling key block (EKB) generated based on the capability information, and provides the compressed audio data encrypted with the content key to each device. With this configuration, it is possible to reliably provide a specific processing program only to a device that can process data.
[0208]
In FIG. 40, the capability information is defined for all entities. However, it is not always necessary to define the capability information for all entities as shown in FIG. 40. For example, as shown in FIG. Capabilities can be defined only for the lowest entity to which the device belongs, and the capabilities of the devices belonging to the lowest entity can be managed in the key distribution center (KDC) so that only the devices that can be processed by the content provider can be decrypted The enabling key block (EKB) may be generated based on capability information defined in the lowest entity. In FIG. 41, capabilities in entities 4101 = 4105 in which devices are defined in the end nodes are defined, and the capabilities for these entities are managed in the key issuing center (KDC). For example, the entity 4101 belongs to a device capable of processing method B for sound reproduction and method r for image reproduction. The entity 4102 includes a device capable of processing method A for sound reproduction and method q for image reproduction.
[0209]
FIG. 42 shows a configuration example of a capability management table managed in the key issuing center (KDC). The capability management table has a data structure as shown in FIG. That is, an entity ID as an identifier for identifying each entity, a capability list indicating the capabilities defined for the entity, and this capability list is processed by, for example, the audio data reproduction processing method (A) as shown in FIG. [1] if it is possible, [0] if it cannot be processed, [1] if the audio data reproduction processing method (B) can be processed, [0] if it cannot be processed, etc. Whether or not the data processing of the mode is possible is configured by setting [1] or [0] bit by bit. Note that the capability information setting method is not limited to such a format, and any other configuration may be used as long as the capability of the entity management device can be identified.
[0210]
The capability management table further stores the sub-EKB of each entity or, if the sub-EKB is stored in another database, the sub-EKB identification information, and further stores the sub-root node identification data of each entity. The
[0211]
Based on the capability management table, for example, the key issuing center (KDC) generates an enabling key block (EKB) that can be decrypted only by a device capable of reproducing specific content. With reference to FIG. 43, a process for generating an enabling key block based on capability information will be described.
[0212]
First, in step S4301, the key issuing center (KDC) selects an entity having a specified capability from the capability management table. Specifically, for example, when a content provider wants to distribute reproducible data based on the audio data reproduction processing method A, for example, the item of the audio data reproduction processing (method A) is [from the capability list of FIG. 1] Select the entity set in [1].
[0213]
Next, in step S4302, a list of selected entity IDs constituted by the selected entities is generated. Next, in step S4303, a path required for the tree configured by the selected entity ID (a path having a key distribution tree configuration) is selected. In step S4304, it is determined whether or not all paths included in the list of selected entity IDs have been completed, and paths are generated in step S4303 until completion. This means a process of sequentially selecting each path when a plurality of entities are selected.
[0214]
When all the paths included in the list of selected entity IDs have been selected, the process advances to step S4305 to construct a key distribution tree structure configured only by the selected path and the selected entity.
[0215]
In step S4306, the node key having the tree structure generated in step S4305 is updated to generate an updated node key. Further, the sub-EKB of the selected entity constituting the tree is extracted from the capability management table, and an enabling key block (EKB) that can be decrypted only by the device of the selected entity based on the sub-EKB and the updated node key generated in step S4306 is obtained. Generate. The enabling key block (EKB) generated in this way becomes an enabling key block (EKB) that can be used, that is, decrypted only in a device having a specific capability. Selected by the key distribution center (KDC) by, for example, encrypting the content key with this enabling key block (EKB) and encrypting the content compressed based on the specific program with the content key and providing it to the device The content is used only on a specific processable device.
[0216]
In this way, the key issuing center (KDC) generates an enabling key block (EKB) that can be decrypted only by, for example, a device capable of reproducing specific content, based on the capability management table. Therefore, when a new entity is registered, it is necessary to acquire the capability of the newly registered entity in advance. The capability notification process accompanying this new entity registration will be described with reference to FIG.
[0217]
FIG. 44 is a diagram showing a capability notification processing sequence when a new entity participates in the key distribution tree configuration.
[0218]
The new (child) entity (N-En) newly added in the tree structure executes a new registration request to the upper (parent) entity (P-En). Each entity has a public key in accordance with the public key cryptosystem, and the new entity sends its public key to the higher-level entity (P-En) upon requesting registration.
[0219]
Upon receiving the registration request, the upper entity (P-En) transfers the received public key of the new (child) entity (N-En) to a certificate authority (CA) and adds the CA signature. A new (child) entity (N-En) public key is received. These procedures are performed as a mutual authentication procedure between the upper entity (P-En) and the new (child) entity (N-En).
[0220]
When the authentication of the new registration request entity is completed by these processes, the upper entity (P-En) permits the registration of the new (child) entity (N-En), and the new (child) entity (N-En). Are transmitted to the new (child) entity (N-En). This node key is one node key of the terminal node of the upper entity (P-En) and corresponds to the vertex node of the new (child) entity (N-En), that is, the sub-root key.
[0221]
When this node key transmission is completed, the new (child) entity (N-En) constructs a tree structure of the new (child) entity (N-En), and sets the received sub-root key of the vertex node at the vertex of the constructed tree. Set, and set keys for each node and leaf to generate an enabling key block (sub-EKB) in the entity. On the other hand, the upper entity (P-En) also generates a sub-EKB in the upper entity (P-En) to which the terminal node to be activated is added by adding a new (child) entity (N-En).
[0222]
When the new (child) entity (N-En) generates a sub-EKB composed of the node key and leaf key in the new (child) entity (N-En), it transmits this to the higher-order entity (P-En). Furthermore, the capability information about the device managed by its own entity is notified to the upper entity.
[0223]
The upper entity (P-En) that has received the sub-EKB and capability information from the new (child) entity (N-En) is the received sub-EKB and capability information, and the updated sub-EKB of the upper entity (P-En). To the Key Distribute Center (KDC).
[0224]
The key issuing center (KDC) registers the received sub EKB and capability information of the entity in the capability management table described with reference to FIG. 42, and updates the capability management table. Based on the updated capability management table, the key issuing center (KDC) can generate various types of EKB, that is, an EKB that can be decrypted only by an entity or a device having a specific capability.
[0225]
The present invention has been described in detail above with reference to specific embodiments. However, it is obvious that those skilled in the art can make modifications and substitutions of the embodiments without departing from the gist of the present invention. In other words, the present invention has been disclosed in the form of exemplification, and should not be interpreted in a limited manner. In order to determine the gist of the present invention, the claims section described at the beginning should be considered.
[0226]
【The invention's effect】
As described above, according to the information processing system and method of the present invention, each key is associated with a route, a node, and a leaf on a path from a tree root to a leaf in which a plurality of devices are configured as leaves. A plurality of entities for managing a subtree as a partial tree constituting a key tree and generating a sub-validating key block (sub-EKB) based only on keys set corresponding to nodes or leaves belonging to the sub-tree are set. Since the sub-validation key block (sub-EKB) generated by a plurality of entities is used to generate and deliver the enabling key block (EKB) that can be decrypted only in the selected entity, the hierarchical structure The key tree configuration can be divided and managed, and detailed processing according to the device is possible To become.
[0227]
Furthermore, according to the information processing system and method of the present invention, a device or entity revocation process can be executed at the entity, and an increase in processing amount due to an increase in devices in the case of batch device management is prevented.
[0228]
Furthermore, according to the information processing system and method of the present invention, since the reserve node is set to the end node of each entity, it is possible to cope with an increase in management devices or management entities.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating a configuration example of an information processing system according to the present invention.
FIG. 2 is a block diagram showing a configuration example of a recording / reproducing apparatus applicable in the information processing system of the present invention.
FIG. 3 is a tree configuration diagram illustrating encryption processing of various keys and data in the information processing system of the present invention.
FIG. 4 is a diagram showing an example of an enabling key block (EKB) used for distributing various keys and data in the information processing system of the present invention.
FIG. 5 is a diagram showing a distribution example and a decryption processing example using a content key validation key block (EKB) in the information processing system of the present invention.
FIG. 6 is a diagram showing a format example of an enabling key block (EKB) in the information processing system of the present invention.
FIG. 7 is a diagram illustrating a configuration of a tag of an enabling key block (EKB) in the information processing system of the present invention.
FIG. 8 is a diagram showing a data configuration example in which an enabling key block (EKB), a content key, and content are distributed together in the information processing system of the present invention.
FIG. 9 is a diagram showing an example of processing in a device when an enabling key block (EKB), a content key, and content are distributed together in the information processing system of the present invention.
FIG. 10 is a diagram for explaining the correspondence when an enabling key block (EKB) and content are stored in a recording medium in the information processing system of the present invention.
FIG. 11 is a diagram comparing processing for sending an enabling key block (EKB) and a content key in the information processing system of the present invention with conventional sending processing.
FIG. 12 is a diagram showing an authentication processing sequence by a common key cryptosystem applicable in the information processing system of the present invention.
FIG. 13 is a diagram (No. 1) showing a data configuration for delivering an enabling key block (EKB) and an authentication key together in the information processing system of the present invention, and a processing example in the device;
FIG. 14 is a diagram (part 2) illustrating an example of processing performed by a device and a data configuration in which an enabling key block (EKB) and an authentication key are delivered together in the information processing system of the present invention;
FIG. 15 is a diagram showing an authentication processing sequence by a public key cryptosystem applicable in the information processing system of the present invention.
FIG. 16 is a diagram showing processing for distributing an enabling key block (EKB) and a content key together using authentication processing by a public key cryptosystem in the information processing system of the present invention.
FIG. 17 is a diagram showing processing for distributing an enabling key block (EKB) and encrypted program data in the information processing system of the present invention.
FIG. 18 is a diagram showing an example of generating a MAC value used for generating a content integrity check value (ICV) applicable in the information processing system of the present invention.
FIG. 19 is a diagram (No. 1) illustrating a data configuration in which an enabling key block (EKB) and an ICV generation key are distributed together in the information processing system of the present invention, and a processing example in the device;
FIG. 20 is a diagram (part 2) illustrating a data configuration in which an enabling key block (EKB) and an ICV generation key are distributed together in the information processing system of the present invention, and a processing example in the device;
FIG. 21 is a diagram illustrating a copy prevention function when a content integrity check value (ICV) applicable in the information processing system of the present invention is stored in a medium.
FIG. 22 is a diagram for explaining a configuration for managing a content integrity check value (ICV) applicable to the information processing system of the present invention separately from the content storage medium.
FIG. 23 is a diagram illustrating an example of category classification of a hierarchical tree structure in the information processing system of the present invention.
FIG. 24 is a diagram for explaining a generation process of a simplified validation key block (EKB) in the information processing system of the present invention.
FIG. 25 is a diagram for explaining an enabling key block (EKB) generation process in the information processing system of the present invention;
FIG. 26 is a diagram for explaining a simplified enabling key block (EKB) in the information processing system of the present invention.
FIG. 27 is a diagram illustrating an entity management configuration of a hierarchical tree structure in the information processing system of the present invention.
FIG. 28 is a diagram illustrating details of an entity management configuration having a hierarchical tree structure in the information processing system of the present invention.
FIG. 29 is a diagram illustrating an entity management configuration of a hierarchical tree structure in the information processing system of the present invention.
FIG. 30 is a diagram illustrating a reserve node in the hierarchical tree structure entity management configuration in the information processing system of the present invention;
FIG. 31 is a diagram illustrating a new entity registration processing sequence in an entity management configuration with a hierarchical tree structure in the information processing system of the present invention.
FIG. 32 is a diagram illustrating a relationship between a new entity and a higher entity in an entity management configuration with a hierarchical tree structure in the information processing system of the present invention.
FIG. 33 is a diagram for explaining a sub-EKB used in an entity management configuration with a hierarchical tree structure in the information processing system of the present invention.
FIG. 34 is a diagram for explaining device revocation processing in the hierarchical tree structure entity management configuration in the information processing system of the present invention;
FIG. 35 is a diagram illustrating a device revocation process sequence in the hierarchical tree structure entity management configuration in the information processing system of the present invention.
FIG. 36 is a diagram for explaining an update sub EKB at the time of device revocation in the hierarchical tree structure entity management configuration in the information processing system of the present invention;
FIG. 37 is a diagram illustrating an entity revocation process in an entity management configuration with a hierarchical tree structure in the information processing system of the present invention.
FIG. 38 is a diagram for explaining an entity revocation processing sequence in the hierarchical tree structure entity management configuration in the information processing system of the present invention;
FIG. 39 is a diagram for explaining a relationship between revotionality and higher entity in the hierarchical tree structure entity management configuration in the information processing system of the present invention;
FIG. 40 is a diagram illustrating capability setting in an entity management configuration with a hierarchical tree structure in the information processing system of the present invention.
FIG. 41 is a diagram for describing capability setting in the hierarchical tree structure entity management configuration in the information processing system of the present invention;
FIG. 42 is a diagram for explaining a configuration of a capability management table managed by a key issuing center (KDC) in the information processing system of the present invention.
FIG. 43 is an EKB generation processing flowchart based on a capability management table managed by a key issuing center (KDC) in the information processing system of the present invention.
FIG. 44 is a diagram for explaining capability notification processing at the time of new entity registration in the information processing system of the present invention;
[Explanation of symbols]
10 Content distribution side
11 Internet
12 Satellite broadcasting
13 Telephone line
14 Media
20 Content receiver
21 Personal computer (PC)
22 Portable Device (PD)
23 Mobile phones, PDAs
24 Recording / playback device
25 Reproduction-only device
30 media
100 Recording / reproducing apparatus
110 bus
120 Input / output I / F
130 MPEG codec
140 I / O I / F
141 A / D, D / A converter
150 Cryptographic processing means
160 ROM
170 CPU
180 memory
190 drive
195 Recording medium
601 version
602 depth
603 Data pointer
604 Tag pointer
605 Signature pointer
606 Data section
607 Tag part
608 Signature
1101 Recording device
2301 Root key
2302 Node key
2303 Leaf Key
2304 Category node
2306 Subcategory node
2701 Entity
2702 Subroute
2811,2851 Subroute
2812,2852 Entity end node
2901, 2902 Entity
2950 Reserve Node
2970 Management end node
3011, 3012, 3013 Entity
3021, 3022, 3023 Reserve node
3201 Terminal node
3202 Vertex node
3301, 3302 Terminal node
3303 New entity added end node
3410, 3420, 3430 Entity
3411, 3421, 3431 Subroute
3432 Revocation Device Node
3601 Terminal node
3710, 3720, 3730 Entity
3711, 3721, 3731 Subroute
3901 Terminal node
3902 Vertex node (sub-root node)
4001 to 4005 Entity
4021, 4022, 4023 Entity
4101-4105 Entity

Claims (25)

複数のデバイスをリーフとして構成したツリーのルートからリーフまでのパス上のルート、ノード、およびリーフに各々キーを対応付けたキーツリーを構成し、該キーツリーを構成するパスを選択して選択パス上のキー更新、および下位キーによる上位キーの暗号化処理を実行して特定デバイスにおいてのみ復号可能な有効化キーブロック(EKB)を生成してデバイスに提供する暗号鍵ブロックを用いた情報処理システムにおいて、
前記キーツリーを構成する所定のノードをサブルートとする部分ツリーのノードおよびリーフの集合からなるサブツリーに属するノードまたはリーフに対応して設定されるキーのみに基づくサブ有効化キーブロック(サブEKB)の生成を実行するサブツリー管理エンティテイのサブ有効化キーブロック生成手段と、
前記サブ有効化キーブロック生成手段により生成されたサブ有効化キーブロック(サブEKB)を用いて、前記キーツリーにおける最下段のリーフに対応する選択されたデバイスにおいてのみ復号可能な有効化キーブロック(EKB)を生成する有効化キーブロック生成手段と、
を有することを特徴とする暗号鍵ブロックを用いた情報処理システム。
Configure a key tree by associating keys with the root, nodes, and leaves on the path from the root of the tree that configures multiple devices as leaves to the leaf, and select the path that configures the key tree and select it An information processing system using an encryption key block that generates an enabling key block (EKB) that can be decrypted only by a specific device by executing upper key update processing and upper key encryption processing using a lower key In
Said key a predetermined node constituting a tree of subtrees to the sub-root node and the leaf nodes belonging to subtree which consists of a set or leaf corresponding to set the key based only on the sub-enabling key block (sub-EKB) A sub-enabling key block generating means of the sub- tree management entity for executing generation of
Using said sub enabling key block sub enabling key block generated by the generating means (sub EKB), an enabling key decodable only in the selected device corresponding to the lowermost Li-safe in the key tree An enabling key block generating means for generating a block (EKB);
An information processing system using an encryption key block characterized by comprising:
前記サブツリーは、
1つのサブツリーの最下段の末端ノードを他のサブツリーの頂点ノード(サブルート)として構成した上位サブツリーおよび下位サブツリーの階層化構造を有することを特徴とする請求項1に記載の暗号鍵ブロックを用いた情報処理システム。
The subtree is
Using an encryption key block according to the lowermost end node of one subtree to claim 1, characterized in that it has a layered structure of upper subtrees and subtree constructed as another subtree top node (sub-root) Information processing system.
前記サブ有効化キーブロック生成手段は、
自己の管理サブツリーに属するノードまたはリーフに対応するキーの設定、更新処理権限を有する構成であることを特徴とする請求項1に記載の暗号鍵ブロックを用いた情報処理システム。
The sub-validating key block generating means
2. The information processing system using an encryption key block according to claim 1, wherein the information processing system has an authority to set and update a key corresponding to a node or leaf belonging to its own management subtree .
前記サブツリー中、サブツリー内の最下段リーフを個々のデバイスに対応するリーフとした最下層のサブツリーに属するデバイスの各々は、自己の属するサブツリーの頂点ノード(サブルート)から自己のデバイスに対応するリーフに至るパス上のノード、リーフに設定されたノードキーおよびリーフキーを格納した構成を有することを特徴とする請求項1に記載の暗号鍵ブロックを用いた情報処理システム。During the subtree, each device belonging to the lowest layer of the subtree the lowermost leaf was a leaf corresponding to individual devices within a subtree, the leaves corresponding from the top node of the subtree that self belongs (sub-root) in the self-device 2. The information processing system using an encryption key block according to claim 1, wherein a node key and a leaf key set in a node, a leaf on a path to reach, and a leaf key are stored. 前記サブ有効化キーブロック生成手段は、
自己の管理サブツリーの下位に、さらに自己管理サブツリーを追加するため、自己の管理サブツリー内の最下段のノードまたはリーフ中の1以上のノードまたはリーフをリザーブノードとして保留して設定することを特徴とする請求項1に記載の暗号鍵ブロックを用いた情報処理システム。
The sub-validating key block generating means
The lower of its own management subtree, further to add the self-management subtree, and characterized in that setting pending one or more nodes or leaves of the lowermost node or in a leaf in the management subtree of the self as reserve nodes An information processing system using the encryption key block according to claim 1.
新規サブツリーを末端ノードに追加する上位サブツリーを管理するサブ有効化キーブロック生成手段は、
新規サブツリーを設定するノードである上位サブツリーの末端ノードに対応するキーを、前記新規サブツリーの頂点ノード(サブルート)キーとして設定する構成であることを特徴とする請求項1に記載の暗号鍵ブロックを用いた情報処理システム。
The sub-activation key block generating means for managing the upper sub-tree that adds the new sub-tree to the end node is:
2. The encryption key block according to claim 1, wherein a key corresponding to a terminal node of an upper subtree which is a node for setting a new subtree is set as a vertex node (subroot) key of the new subtree. Information processing system used.
新規追加サブツリーを管理するサブ有効化キーブロック生成手段は、
該新規サブツリー内のノードまたはリーフに対応して設定されるキーのみに基づくサブ有効化キーブロック(サブEKB)を生成し、前記有効化キーブロック生成手段に対するサブEKBの提供処理を実行する構成であることを特徴とする請求項1に記載の暗号鍵ブロックを用いた情報処理システム。
The sub-activation key block generation means for managing the newly added sub-tree is as follows:
A sub-enabling key block (sub-EKB) based only on a key set corresponding to a node or leaf in the new sub-tree is generated, and a sub-EKB providing process for the enabling key block generating means is executed. The information processing system using the encryption key block according to claim 1.
デバイスのリボーク処理を実行するサブ有効化キーブロック生成手段は、管理サブツリー内の頂点ノード(サブルート)からリボークデバイスに対応するリーフに至るパス上のノードに設定されたノードキーを更新し、更新ノードキーをリボークデバイス以外のリーフデバイスにおいてのみ復号可能な暗号化キーとして構成した更新サブEKBを生成して上位サブツリーの管理エンティテイに送信し、上位サブツリー管理エンティテイのサブ有効化キーブロック生成手段は更新サブEKBを提供した末端ノードから自己のサブルートに至るパス上のノードキーを更新した更新サブEKBを生成してさらに上位サブツリーの管理エンティテイのサブ有効化キーブロック生成手段に送信し、最上位サブツリーの管理エンティテイのサブ有効化キーブロック生成手段まで、サブツリーの管理エンティテイのサブ有効化キーブロック生成手段単位での更新サブEKB生成および送信処理を順次実行して、リボークデバイスからルートに至るパス上のノードキー更新を行ない、キー更新により生成された更新サブEKBの前記有効化キーブロック生成手段への提供処理を行なうことにより、デバイスのリボーク処理を実行する構成を有することを特徴とする請求項1に記載の暗号鍵ブロックを用いた情報処理システム。Sub enabling key block generating means for executing a revoke processing of the device, updates the node key set in nodes on a path leading to the leaf corresponding to the revoked device from the top node in the management subtree (sub-root), the renewed node key An updated sub-EKB configured as an encryption key that can be decrypted only by leaf devices other than the revoked device is generated and transmitted to the management entity of the upper subtree , and the sub-validation key block generating means of the upper subtree management entity generates the updated sub-EKB. send the sub enabling key block generation unit of the management Entite Lee further upper subtree generates a renewed sub-EKB updating the node key on the path from the provided terminal node in its own sub-route, the management of the uppermost subtree Entite sub-enabling key Lee Until the lock generating means executes the update sub-EKB generation and sending processing on the sub-enabling key block generating means units of subtrees of the management entity sequentially performs node key update on the path from the revoked device to the root, the rekeying The encryption key block according to claim 1, wherein the revoked process of the device is executed by performing a process of providing the generated updated sub-EKB to the validation key block generating means. Information processing system. 下位サブツリー単位でのリボーク処理を実行するサブ有効化キーブロック生成手段は、管理対象のサブツリー内の頂点ノード(サブルート)からリボークサブツリーに対応する末端ノードに至るパス上のノードに設定されたノードキーを更新した更新サブEKBを生成して上位サブツリーの管理エンティテイのサブ有効化キーブロック生成手段に送信し、上位サブツリーの管理エンティテイのサブ有効化キーブロック生成手段は更新サブEKBを提供した末端ノードから自己のサブルートに至るパス上のノードキーを更新した更新サブEKBを生成してさらに上位サブツリーの管理エンティテイのサブ有効化キーブロック生成手段に送信し、最上位エンティテイを管理するサブ有効化キーブロック生成手段まで、エンティテイ単位での更新サブEKB生成および送信処理を順次実行して、リボークサブツリーからルートに至るパス上のノードキー更新を行ない、キー更新により生成された更新サブEKBの前記有効化キーブロック生成手段への提供処理を行なうことにより、サブツリー単位のリボーク処理を実行する構成を有することを特徴とする請求項1に記載の暗号鍵ブロックを用いた情報処理システム。Sub enabling key block generating means for executing a revoke processing in the subtree units, a set from the top node in the subtree managed (sub-root) in the nodes on the path to the terminal node corresponding to the revoked subtree node key The updated update sub-EKB is generated and transmitted to the sub-validation key block generation means for the management entity of the upper subtree. The sub-validation key block generation means for the management entity of the upper subtree is self- generated from the terminal node that provided the update sub-EKB. of sending the sub-enabling key block generation unit of the management Entite Lee further upper subtree generates a renewed sub-EKB updating the node key on a path leading to the sub-route, the sub-enabling key block generated to manage the top-level entity Update means for each entity. EKB to generate and execute a transmission process sequentially performs node key update on the path from the revoke subtree root, by performing providing processing to the enabling key block generation means updating sub-EKB produced by the key update The information processing system using an encryption key block according to claim 1, wherein the information processing system has a configuration for executing a revoke process in units of subtrees . 下位サブツリー単位でのリボーク処理を実行するサブ有効化キーブロック生成手段は、管理サブツリー内の頂点ノード(サブルート)からリボークサブツリーに対応する末端ノードに至るパス上の、該末端ノードを除くノードに設定されたノードキーを更新した更新サブEKBを生成して上位サブツリーの管理エンティテイのサブ有効化キーブロック生成手段に送信し、上位サブツリーの管理エンティテイのサブ有効化キーブロック生成手段は更新サブEKBを提供した末端ノードから自己のサブルートに至るパス上のノードキーを更新した更新サブEKBを生成してさらに上位サブツリーの管理エンティテイのサブ有効化キーブロック生成手段に送信し、最上位サブツリーの管理エンティテイのサブ有効化キーブロック生成手段まで、エンティテイ単位での更新サブEKB生成および送信処理を順次実行して、リボークサブツリーからルートに至るパス上のリボークサブツリーに対応する末端ノードを除くノードキー更新を行ない、キー更新により生成された更新サブEKBの前記有効化キーブロック生成手段への提供処理を行なうことにより、サブツリー単位のリボーク処理を実行する構成を有することを特徴とする請求項1に記載の暗号鍵ブロックを用いた情報処理システム。The sub-validation key block generation means for executing revocation processing in units of lower subtrees is set to nodes other than the end node on the path from the vertex node (subroot) in the management subtree to the end node corresponding to the revocation subtree. is generated the updated update sub-EKB node keys sent to sub enabling key block generation unit of the management Entite Lee upper subtree, the sub enabling key block generation unit of the management Entite Lee upper subtree renewed sub EKB from providing the end node sends a sub-enabling key block generation unit of the management Entite Lee further upper subtree generates a renewed sub-EKB updating the node key on a path leading to its sub-route, the uppermost subtree until sub-enabling key block generating unit of the management Entite Lee, en Sequentially executes the update sub-EKB generation and sending processing in Itei unit performs node key update, except for the terminal node corresponding to the revoked subtrees on the path from the revoke subtree root key updating of the update sub-EKB produced by 2. The information processing system using an encryption key block according to claim 1, wherein a revoking process is performed in units of subtrees by performing a provision process to the validation key block generation unit. 前記サブ有効化キーブロック生成手段は、デバイス種類、サービス種類、管理手段種類等の共通のカテゴリに属するデバイスの管理を行なう構成であることを特徴とする請求項1に記載の暗号鍵ブロックを用いた情報処理システム。Said sub enabling key block generating means, device type, service type, encryption key block according to claim 1, characterized in that configured to perform the device of the management belonging to a common category such as the management unit type Information processing system using 前記サブツリーの管理エンティテイは、前記キーツリーのリーフであるデバイスのデータ処理能力を表すケイパビリティ情報に基づき区分され、
サブ有効化キーブロック生成手段は、管理対象のサブツリーに属する共通のケイパビリティを持つノード又はリーフに対応して設定されるキーのみに基づくサッブ有効化キーブロックを生成することを特徴とする請求項1に記載の暗号化鍵ブロックを用いた情報処理システム。
The management entity of the sub- tree is classified based on capability information indicating a data processing capability of a device that is a leaf of the key tree,
The sub-validation key block generation unit generates a sub-activation key block based only on a key set corresponding to a node or leaf having a common capability belonging to a managed sub-tree. An information processing system using the encryption key block described in 1.
前記有効化キーブロック生成手段は、複数のサブツリーの管理エンティテイ各々の識別子と、サブツリーに属するデバイス各々のケイパビリティ情報と、サブツリー各々に対応して設定されるサブ有効化キーブロック(サブEKB)情報とを対応付けたケイパビリティ管理テーブルを有し、該ケイパビリティ管理テーブルに基づいて、デバイスに対する配信データの処理可能なデバイスを含むサブツリーを選択して、該選択サブツリーに属するリーフ対応のデバイスでのみ復号可能な有効化キーブロック(EKB)を生成する構成を有することを特徴とする請求項1に記載の暗号鍵ブロックを用いた情報処理システム。The enabling key block generating means includes an identifier of each management entity of a plurality of subtrees, capability information of each device belonging to the subtree, and sub-enabling key block (sub-EKB) information set corresponding to each subtree. And a capability management table that associates with each other. Based on the capability management table, a subtree including devices that can process distribution data for a device is selected , and can be decoded only by leaf-compatible devices belonging to the selected subtree. The information processing system using an encryption key block according to claim 1, wherein the information processing system has a configuration for generating an enabling key block (EKB). 前記キーツリーに対する新規追加サブツリーの管理エンティテイのサブ有効化キーブロック生成手段は、該新規追加サブツリー内のノードまたはリーフに対応して設定されるキーのみに基づくサブ有効化キーブロック(サブEKB)を生成し、前記有効化キーブロック生成手段に対する生成されたサブEKB及び自己のエンティテイのケイパビリティ情報の通知処理を実行する構成であることを特徴とする請求項1に記載の暗号鍵ブロックを用いた情報処理システム。 Sub enabling key block generation unit of the management entity of the newly added sub-tree for said key tree,該新regulations adds subtrees in nodes or sub-enabling key block (sub-EKB based only on a key set corresponding to the leaf The encryption key block according to claim 1 is used to execute a notification process of capability information of the generated sub-EKB and its own entity to the validation key block generation unit. Information processing system. 複数のデバイスをリーフとして構成したツリーのルートからリーフまでのパス上のルート、ノード、およびリーフに各々キーを対応付けたキーツリーを構成し、該キーツリーを構成するパスを選択して選択パス上のキー更新、および下位キーによる上位キーの暗号化処理を実行して特定デバイスにおいてのみ復号可能な有効化キーブロック(EKB)を生成してデバイスに提供する情報処理システムにおける暗号鍵ブロックを用いた情報処理方法において、
サブツリー管理エンティテイのサブ有効化キーブロック生成手段が、前記キーツリーを構成する所定のノードをサブルートとする部分ツリーのノードおよびリーフの集合からなるサブツリーに属するノードまたはリーフに対応して設定されるキーのみに基づくサブ有効化キーブロック(サブEKB)を生成するステップと、
有効化キーブロック生成手段において、前記サブ有効化キーブロック生成手段の生成するサブ有効化キーブロック(サブEKB)を用いて、前記キーツリーにおける最下段のリーフに対応する選択されたデバイスにおいてのみ復号可能な有効化キーブロック(EKB)を生成するステップと、
を有することを特徴とする暗号鍵ブロックを用いた情報処理方法。
Configure a key tree in which a key is associated with each root, node, and leaf on the path from the root of the tree that configures multiple devices as leaves to the leaf, and select the path that configures the key tree and select it Using the encryption key block in the information processing system that executes the above key update and the encryption process of the upper key by the lower key to generate an enabling key block (EKB) that can be decrypted only by a specific device and provides it to the device In the information processing method that was
Sub enabling key block generating means subtrees management entity is set corresponding to the belonging nodes or leaves the subtree which consists of a set node and leaf of the subtree to sub-route a predetermined node constituting the key tree Generating a sub-activation key block (sub-EKB) based only on the key;
In the enabling key block generating means, using said sub enabling key block generation sub enabling key block generating means (sub EKB), the selected device corresponding to the lowermost Li-safe in the key tree Generating an enabling key block (EKB) that can only be decrypted;
An information processing method using an encryption key block characterized by comprising:
前記情報処理方法において、さらに、
前記サブ有効化キーブロック生成手段は、
自己の管理サブツリーに属するノードまたはリーフに対応するキーの設定、更新処理を実行することを特徴とする請求項15に記載の暗号鍵ブロックを用いた情報処理方法。
In the information processing method,
The sub-validating key block generating means
16. The information processing method using an encryption key block according to claim 15, wherein key setting / updating processing corresponding to a node or leaf belonging to its own management subtree is executed.
新規サブツリーを末端ノードに追加する上位サブツリーを管理するサブ有効化キーブロック生成手段は、
新規サブツリーを設定するノードである上位サブツリーの末端ノードに対応するキーを、前記新規サブツリーの頂点ノード(サブルート)キーとして設定することを特徴とする請求項15に記載の暗号鍵ブロックを用いた情報処理方法。
The sub-activation key block generating means for managing the upper sub-tree that adds the new sub-tree to the end node is:
16. The information using the encryption key block according to claim 15, wherein a key corresponding to a terminal node of an upper subtree which is a node for setting a new subtree is set as a vertex node (subroot) key of the new subtree. Processing method.
新規追加サブツリーを管理するサブ有効化キーブロック生成手段は、
該新規サブツリー内のノードまたはリーフに対応して設定されるキーのみに基づくサブ有効化キーブロック(サブEKB)を生成し、前記有効化キーブロック生成手段に対するサブEKBの提供処理を実行することを特徴とする請求項15に記載の暗号鍵ブロックを用いた情報処理方法。
The sub-activation key block generation means for managing the newly added sub-tree is as follows:
The generate a new subtree of nodes or leaves in correspondingly sub enabling key block based only on a key set (sub-EKB), to perform the process of providing the sub-EKB to said enabling key block generating means An information processing method using the encryption key block according to claim 15.
デバイスのリボーク処理を実行するサブ有効化キーブロック生成手段は、管理サブツリー内の頂点ノード(サブルート)からリボークデバイスに対応するリーフに至るパス上のノードに設定されたノードキーを更新し、更新ノードキーをリボークデバイス以外のリーフデバイスにおいてのみ復号可能な暗号化キーとして構成した更新サブEKBを生成して上位サブツリーの管理エンティテイに送信し、上位サブツリー管理エンティテイのサブ有効化キーブロック生成手段は更新サブEKBを提供した末端ノードから自己のサブルートに至るパス上のノードキーを更新した更新サブEKBを生成してさらに上位サブツリーの管理エンティテイのサブ有効化キーブロック生成手段に送信し、最上位サブツリーの管理エンティテイのサブ有効化キーブロック生成手段まで、サブツリーの管理エンティテイのサブ有効化キーブロック生成手段単位での更新サブEKB生成および送信処理を順次実行して、リボークデバイスからルートに至るパス上のノードキー更新を行ない、キー更新により生成された更新サブEKBの前記有効化キーブロック生成手段への提供処理を行なうことにより、デバイスのリボーク処理を実行することを特徴とする請求項15に記載の暗号鍵ブロックを用いた情報処理方法。Sub enabling key block generating means for executing a revoke processing of the device, updates the node key set in nodes on a path leading to the leaf corresponding to the revoked device from the top node in the management subtree (sub-root), the renewed node key An updated sub-EKB configured as an encryption key that can be decrypted only by leaf devices other than the revoked device is generated and transmitted to the management entity of the upper subtree , and the sub-validation key block generating means of the upper subtree management entity generates the updated sub-EKB. send the sub enabling key block generation unit of the management Entite Lee further upper subtree generates a renewed sub-EKB updating the node key on the path from the provided terminal node in its own sub-route, the management of the uppermost subtree Entite sub-enabling key Lee Until the lock generating means executes the update sub-EKB generation and sending processing on the sub-enabling key block generating means units of subtrees of the management entity sequentially performs node key update on the path from the revoked device to the root, the rekeying 16. The information processing method using an encryption key block according to claim 15, wherein the revoking process of the device is executed by performing a process of providing the generated updated sub-EKB to the validation key block generating unit. . 下位サブツリー単位でのリボーク処理を実行するサブ有効化キーブロック生成手段は、管理対象のサブツリー内の頂点ノード(サブルート)からリボークサブツリーに対応する末端ノードに至るパス上のノードに設定されたノードキーを更新した更新サブEKBを生成して上位サブツリーの管理エンティテイのサブ有効化キーブロック生成手段に送信し、上位サブツリーの管理エンティテイのサブ有効化キーブロック生成手段は更新サブEKBを提供した末端ノードから自己のサブルートに至るパス上のノードキーを更新した更新サブEKBを生成してさらに上位サブツリーの管理エンティテイのサブ有効化キーブロック生成手段に送信し、最上位エンティテイを管理するサブ有効化キーブロック生成手段まで、エンティテイ単位での更新サブEKB生成および送信処理を順次実行して、リボークサブツリーからルートに至るパス上のノードキー更新を行ない、キー更新により生成された更新サブEKBの前記有効化キーブロック生成手段への提供処理を行なうことにより、サブツリー単位のリボーク処理を実行することを特徴とする請求項15に記載の暗号鍵ブロックを用いた情報処理方法。The sub-validation key block generation means for executing the revocation processing in units of lower subtrees uses the node key set in the node on the path from the vertex node (subroot) in the managed subtree to the terminal node corresponding to the revocation subtree. and generates the updated update sub-EKB is sent to the sub-enabling key block generation unit of the management Entite Lee upper subtree, sub enabling key block generation unit of the management Entite Lee upper subtree provided a renewed sub-EKB transmitted from the terminal node to the sub enabling key block generation unit of the management Entite Lee further upper subtree generates a renewed sub-EKB updating the node key on a path leading to its own sub-route, effective sub to manage the top-level entity Update support in entity units up to EKB to generate and execute a transmission process sequentially performs node key update on the path from the revoke subtree root, by performing providing processing to the enabling key block generation means updating sub-EKB produced by the key update The information processing method using an encryption key block according to claim 15, wherein revocation processing is performed in units of subtrees . 下位サブツリー単位でのリボーク処理を実行するサブ有効化キーブロック生成手段は、管理サブツリー内の頂点ノード(サブルート)からリボークサブツリーに対応する末端ノードに至るパス上の、該末端ノードを除くノードに設定されたノードキーを更新した更新サブEKBを生成して上位サブツリーの管理エンティテイのサブ有効化キーブロック生成手段に送信し、上位サブツリーの管理エンティテイのサブ有効化キーブロック生成手段は更新サブEKBを提供した末端ノードから自己のサブルートに至るパス上のノードキーを更新した更新サブEKBを生成してさらに上位サブツリーの管理エンティテイのサブ有効化キーブロック生成手段に送信し、最上位ブツリーの管理エンティテイのサブ有効化キーブロック生成手段まで、エンティテイ単位での更新サブEKB生成および送信処理を順次実行して、リボークサブツリーからルートに至るパス上のリボークサブツリーに対応する末端ノードを除くノードキー更新を行ない、キー更新により生成された更新サブEKBの前記有効化キーブロック生成手段への提供処理を行なうことにより、サブツリー単位のリボーク処理を実行することを特徴とする請求項15に記載の暗号鍵ブロックを用いた情報処理方法。The sub-validation key block generation means for executing revocation processing in units of lower subtrees is set to nodes other than the end node on the path from the vertex node (subroot) in the management subtree to the end node corresponding to the revocation subtree. is generated the updated update sub-EKB node keys sent to sub enabling key block generation unit of the management Entite Lee upper subtree, the sub enabling key block generation unit of the management Entite Lee upper subtree renewed sub EKB from providing the end node sends a sub-enabling key block generation unit of the management Entite Lee further upper subtree generates a renewed sub-EKB updating the node key on a path leading to its sub-route, the uppermost Butsuri until the sub-enabling key block generating unit of the management Entite Lee, Ente Sequentially executes the update sub-EKB generation and sending processing in Tay unit performs node key update, except for the terminal node corresponding to the revoked subtrees on the path from the revoke subtree root key updating of the update sub-EKB produced by 16. The information processing method using an encryption key block according to claim 15, wherein a revocation process in units of subtrees is executed by performing a provision process to the validation key block generation unit. 前記サブツリーの管理エンティテイは、前記キーツリーのリーフであるデバイスのデータ処理能力を表すケイパビリティ情報に基づき区分され、
サブ有効化キーブロック生成手段は、管理対象のサブツリーに属する共通のケイパビリティを持つノード又はリーフに対応して設定されるキーのみに基づくサッブ有効化キーブロックを生成することを特徴とする請求項15に記載の暗号化鍵ブロックを用いた情報処理方法。
The management entity of the sub- tree is classified based on capability information indicating a data processing capability of a device that is a leaf of the key tree,
16. The sub-activation key block generation unit generates a sub-activation key block based only on a key set corresponding to a node or leaf having a common capability belonging to a managed sub-tree. An information processing method using the encryption key block described in 1.
前記有効化キーブロック生成手段は、複数のサブツリーの管理エンティテイ各々の識別子と、サブツリーに属するデバイス各々のケイパビリティ情報と、サブツリー各々に対応して設定されるサブ有効化キーブロック(サブEKB)情報とを対応付けたケイパビリティ管理テーブルを有し、該ケイパビリティ管理テーブルに基づいて、デバイスに対する配信データの処理可能なデバイスを含むサブツリーを選択して、該選択サブツリーに属するリーフ対応のデバイスでのみ復号可能な有効化キーブロック(EKB)を生成することを特徴とする請求項15に記載の暗号鍵ブロックを用いた情報処理方法。The enabling key block generating means includes an identifier of each management entity of a plurality of subtrees, capability information of each device belonging to the subtree, and sub-enabling key block (sub-EKB) information set corresponding to each subtree. And a capability management table that associates with each other. Based on the capability management table, a subtree including a device capable of processing distribution data for a device is selected , and can be decoded only by a leaf-compatible device belonging to the selected subtree. 16. The information processing method using an encryption key block according to claim 15, wherein an enabling key block (EKB) is generated. 前記キーツリーに対する新規追加サブツリーの管理エンティテイのサブ有効化キーブロック生成手段は、該新規追加サブツリー内のノードまたはリーフに対応して設定されるキーのみに基づくサブ有効化キーブロック(サブEKB)を生成し、前記有効化キーブロック生成手段に対する生成されたサブEKB及び自己のエンティテイのケイパビリティ情報の通知処理を実行することを特徴とする請求項15に記載の暗号鍵ブロックを用いた情報処理方法。 Sub enabling key block generation unit of the management entity of the newly added sub-tree for said key tree,該新regulations adds subtrees in nodes or sub-enabling key block (sub-EKB based only on a key set corresponding to the leaf 16. The information processing using the encryption key block according to claim 15, wherein notification processing of capability information of the generated sub-EKB and its own entity is executed with respect to the validation key block generation means. Method. 複数のデバイスをリーフとして構成したツリーのルートからリーフまでのパス上のルート、ノード、およびリーフに各々キーを対応付けたキーツリーを構成し、該キーツリーを構成するパスを選択して選択パス上のキー更新、および下位キーによる上位キーの暗号化処理を実行して特定デバイスにおいてのみ復号可能な有効化キーブロック(EKB)を生成してデバイスに提供する情報処理システムにおける有効化キーブロック(EKB)生成処理をコンピュータ・システム上で実行せしめるコンピュータ・プログラムを記録したプログラム記録媒体であって、前記コンピュータ・プログラムは、
サブツリー管理エンティテイのサブ有効化キーブロック生成手段に、前記キーツリーを構成する所定のノードをサブルートとする部分ツリーのノードおよびリーフの集合からなるサブツリーに属するノードまたはリーフに対応して設定されるキーのみに基づくサブ有効化キーブロック(サブEKB)を生成させるステップと、
有効化キーブロック生成手段において、前記サブ有効化キーブロック生成手段の生成するサブ有効化キーブロック(サブEKB)を用いて、前記キーツリーにおける最下段のリーフに対応する選択されたデバイスにおいてのみ復号可能な有効化キーブロック(EKB)を生成させるステップと、
を含むことを特徴とするプログラム記録媒体。
Configure a key tree by associating keys with the root, nodes, and leaves on the path from the root of the tree that configures multiple devices as leaves to the leaf, and select the path that configures the key tree and select it An activation key block in an information processing system that executes the above key update and the encryption process of the upper key with the lower key to generate an activation key block (EKB) that can be decrypted only by a specific device and provides it to the device ( EKB) A program recording medium recording a computer program that causes a generation process to be executed on a computer system, the computer program comprising:
The sub enabling key block generating means subtrees management entity, is set corresponding to the belonging nodes or leaves the subtree which consists of a set node and leaf of the subtree to sub-route a predetermined node constituting the key tree Generating a sub-validation key block (sub-EKB) based only on the key;
In the enabling key block generating means, using said sub enabling key block generation sub enabling key block generating means (sub EKB), the selected device corresponding to the lowermost Li-safe in the key tree Generating an enabling key block (EKB) that can only be decrypted;
A program recording medium comprising:
JP2000179694A 2000-06-15 2000-06-15 Information processing system and information processing method using encryption key block, and program providing medium Expired - Fee Related JP4120135B2 (en)

Priority Applications (10)

Application Number Priority Date Filing Date Title
JP2000179694A JP4120135B2 (en) 2000-06-15 2000-06-15 Information processing system and information processing method using encryption key block, and program providing medium
CN2006100050472A CN1901446B (en) 2000-06-15 2001-06-15 System and method for processing information using encryption key block
PCT/JP2001/005146 WO2001099331A1 (en) 2000-06-15 2001-06-15 System and method for processing information using encryption key block
EP01938704A EP1204236A4 (en) 2000-06-15 2001-06-15 System and method for processing information using encryption key block
CNB018024114A CN100490369C (en) 2000-06-15 2001-06-15 System and mehtod for processing information using encryption key block
MXPA02001533A MXPA02001533A (en) 2000-06-15 2001-06-15 System and method for processing information using encryption key block.
KR1020027001922A KR100840823B1 (en) 2000-06-15 2001-06-15 System and method for processing information using encryption key block
CA002379476A CA2379476C (en) 2000-06-15 2001-06-15 System and method for processing information using encryption key block
HK03104427.2A HK1053556B (en) 2000-06-15 2003-06-19 System and method for processing information using encryption key block
US11/879,639 US7957537B2 (en) 2000-06-15 2007-07-18 Information processing system and method using encryption key block

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000179694A JP4120135B2 (en) 2000-06-15 2000-06-15 Information processing system and information processing method using encryption key block, and program providing medium

Publications (2)

Publication Number Publication Date
JP2001358705A JP2001358705A (en) 2001-12-26
JP4120135B2 true JP4120135B2 (en) 2008-07-16

Family

ID=18680920

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000179694A Expired - Fee Related JP4120135B2 (en) 2000-06-15 2000-06-15 Information processing system and information processing method using encryption key block, and program providing medium

Country Status (1)

Country Link
JP (1) JP4120135B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106170944A (en) * 2014-01-31 2016-11-30 快普特奥姆特里有限公司 For performing the system and method for secure communication

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004104602A (en) * 2002-09-11 2004-04-02 Pioneer Electronic Corp Information recording medium, recorder, reproducer, distributer, method therefor, program therefor, and recording medium having the same program recorded therein
US10339336B2 (en) * 2003-06-11 2019-07-02 Oracle International Corporation Method and apparatus for encrypting database columns
JP4837463B2 (en) * 2006-07-11 2011-12-14 Kddi株式会社 Key management system, key management method and program
JP5992295B2 (en) 2012-11-02 2016-09-14 株式会社東芝 COMMUNICATION CONTROL DEVICE, COMMUNICATION DEVICE, AND PROGRAM
JP6029936B2 (en) 2012-11-02 2016-11-24 株式会社東芝 COMMUNICATION CONTROL DEVICE, COMMUNICATION DEVICE, AND PROGRAM
JP6178472B2 (en) * 2016-08-10 2017-08-09 株式会社東芝 COMMUNICATION CONTROL DEVICE, COMMUNICATION DEVICE, AND PROGRAM
JP6162873B2 (en) * 2016-10-18 2017-07-12 株式会社東芝 COMMUNICATION CONTROL DEVICE, COMMUNICATION DEVICE, AND PROGRAM
CN111311258B (en) * 2020-01-20 2023-07-21 布比(北京)网络技术有限公司 Block chain-based trusted transaction method, device, system, equipment and medium

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106170944A (en) * 2014-01-31 2016-11-30 快普特奥姆特里有限公司 For performing the system and method for secure communication
CN106170944B (en) * 2014-01-31 2019-11-26 快普特奥姆特里有限公司 Ensure method, the safety communications equipment, public key server of system communication safety
US10715328B2 (en) 2014-01-31 2020-07-14 Cryptometry Limited System and method for performing secure communications
US10862685B2 (en) 2014-01-31 2020-12-08 Cryptometry Limited System and method for performing secure communications

Also Published As

Publication number Publication date
JP2001358705A (en) 2001-12-26

Similar Documents

Publication Publication Date Title
JP4581246B2 (en) Information processing system, information processing method, and program recording medium
JP4710132B2 (en) Information processing system, information processing method, and program recording medium
JP4078802B2 (en) Information processing system, information processing method, information processing apparatus, information recording medium, and program recording medium
JP4023083B2 (en) Information processing system, information processing method, information recording medium, and program providing medium
KR100840823B1 (en) System and method for processing information using encryption key block
JP4622087B2 (en) Information processing apparatus, information processing method, and program storage medium
KR100746880B1 (en) Information processing system and method, recording medium, and program providing medium
JP2001358707A (en) Information processing system and method using cryptographic key block and program providing medium
JP4120135B2 (en) Information processing system and information processing method using encryption key block, and program providing medium
JP4806847B2 (en) Information processing system, information processing method, information recording medium, and program recording medium
JP3988385B2 (en) Information processing system, information processing method, information recording medium, and program recording medium
JP2010288291A (en) Information processing system, information processing method and program recording medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070123

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070323

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070626

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070817

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070911

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071107

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20071116

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080401

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080414

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110509

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110509

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120509

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130509

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees