JP2008092514A - 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム - Google Patents

情報処理装置、および情報処理方法、並びにコンピュータ・プログラム Download PDF

Info

Publication number
JP2008092514A
JP2008092514A JP2006273951A JP2006273951A JP2008092514A JP 2008092514 A JP2008092514 A JP 2008092514A JP 2006273951 A JP2006273951 A JP 2006273951A JP 2006273951 A JP2006273951 A JP 2006273951A JP 2008092514 A JP2008092514 A JP 2008092514A
Authority
JP
Japan
Prior art keywords
key
node
information
encryption
subset
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.)
Pending
Application number
JP2006273951A
Other languages
English (en)
Inventor
Katsuji Igarashi
勝治 五十嵐
Yoshiji Karimoto
誉司 加里本
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
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2006273951A priority Critical patent/JP2008092514A/ja
Publication of JP2008092514A publication Critical patent/JP2008092514A/ja
Pending legal-status Critical Current

Links

Abstract

【課題】MKBの生成に適用する暗号鍵としてのサブセットキーの決定処理を効率的に確実に行なう装置および方法を提供する。
【解決手段】特定のデバイスに配付されたデバイスキーを適用した場合にのみ秘密情報の取得を可能としたMKBの生成に適用する暗号化キーの決定処理において、階層木の上位ノードを処理開始点としてカレントノードを設定し、カレントノードの直下の左ノードと右ノードのそれぞれに属するリーフノードのリボーク状況を判定し、リボーク状況の判定結果に応じて予め規定した処理を実行する。この処理アルゴリズムの実行により、MKBの生成に適用する暗号鍵としてのサブセットキーの決定処理を効率的に確実に行なうことが可能となる。
【選択図】図16

Description

本発明は、情報処理装置、および情報処理方法、並びにコンピュータ・プログラムに関する。さらに、詳細には、階層木構造を適用した暗号データ提供方式であるSubset Difference(SD)方式を適用した暗号化コンテンツの提供構成、すなわち特定の許容されたユーザデバイスにおいてのみコンテンツを復号して利用可能としたシステムにおいて、暗号化に適用する鍵の決定を効率的に実行する情報処理装置、および情報処理方法、並びにコンピュータ・プログラムに関する。
音楽、映画等のコンテンツの記録媒体として、昨今は、DVD(Digital Versatile Disc)、Blu−ray Disc(登録商標)などが利用されている。これらの情報記録媒体には、予めデータが記録され、新たなデータ書き込みを許容しないROM型の媒体と、データ書き込み可能な媒体とがある。ユーザは、データ書き込み可能な情報記録媒体を利用することで、例えば、ネットワークや放送を介して受信したコンテンツなどを記録することなどが可能となる。
しかし、放送コンテンツ、その他、音楽データ、画像データ等、多くのコンテンツは、その作成者あるいは販売者に著作権、頒布権等が保有され、これらのコンテンツの配布に際しては、一定の利用制限、すなわち、正規なユーザに対してのみ、コンテンツの利用を許諾し、許可のない複製等が行われないようにする構成をとるのが一般的となっている。
コンテンツ利用制限の1つの手法がコンテンツを暗号化して配付し、正当なコンテンツ利用権を持つユーザや機器のみが復号を可能としたシステムである。なお、コンテンツの暗号化を行なうことで、コンテンツの利用制御を行なう構成については、例えば特許文献1に記載されている。
暗号化に基づくコンテンツ利用制御を実現するコンテンツの著作権保護技術に関する規格としてAACS(Advanced Access Content System)がある。AACSの規格では、コンテンツをユニットとして区分し、各ユニットに対応するユニット鍵を適用した暗号化コンテンツをディスクに記録する構成としている。ユニット鍵を格納したユニット鍵ファイルもまた暗号化ファイルとしてディスクに記録される。さらに、暗号鍵ブロックであるMKB(Media Key Block)もディスクに記録される。MKBは、ブロードキャストエンクリプション方式の一態様として知られる木構造の鍵配信方式に基づいて生成される暗号情報ブロックであり、有効なライセンスを持つユーザの情報処理装置に格納されたデバイスキー[Kd]に基づく処理(復号)によってのみメディアキー[Km]の取得が可能となる。
メディアキー[Km]を利用することで、ユニット鍵ファイルを復号してユニット鍵を取得して、ユニット鍵を用いて暗号化コンテンツの復号を行なうというシーケンスとなっている。
メディアキー[Km]は、木構造の鍵配信システムに基づいて生成される暗号鍵ブロックであるMKBに暗号化データとして格納され、有効なライセンスを持つユーザの情報処理装置に格納されたデバイスキー[Kd]に基づく処理(復号)によってのみメディアキー[Km]の取得が可能となる。
MKBは、適宜構成データの変更が可能である。すなわち、コンテンツ利用権を持つユーザデバイスの不正が発覚するなどした場合、そのユーザデバイスの有するデバイスキーではメディアキーの取得をできない構成としたMKBを更新MKBとして配付することが可能である。メディアキーの取得を不可能とされるデバイスは、リボークデバイス(排除デバイス)と呼ばれる。このようなデバイスをリボークする処理は、リボーク処理と呼ばれる。このリボーク処理を随時行なうことで、不正デバイスを効率的に排除可能としている。
このようなリボーク処理を実現する階層木構造を適用した暗号データ配信方式の1つであるSubset Difference(SD)方式は、階層木の中にサブセットを定義した構成であり、ユーザデバイスに保持するデバイスキーのデータ量の削減や処理を高速化した方式として知られている。Subset Difference(SD)方式については、例えば、特許文献1〜4に記載されている。なお、この方式の具体的構成については後述する。
このような階層木を用いたシステムでは、リボーク状態に応じたMKBを設定することが必要となる。階層木を用いたシステムでは、ユーザデバイスは階層木の末端ノード(リーフ)に設定される。ユーザデバイスの数が多数になると、リボークされるユーザデバイスの設定態様は非常に多くなり、各態様に応じた最適なMKBの構成を導くことが困難となるという問題がある。
Subset Difference(SD)方式では、リボーク状況に応じて、MKBに格納するメディアキーの暗号化に適用するサブセットキーを選択することが必要であり、適用するサブセットキーの選択を行なうことが必要となり、この処理もユーザデバイスの数の増加に伴い計算量が増大し、処理が困難となるという問題がある。
特開2006−86568号公報 特開2005−286959号公報 特開2005−260852号公報 特開2005−191805号公報
本発明は、このような状況に鑑みてなされたものであり、Subset Difference(SD)方式を適用したシステムにおいて、ユーザデバイスのリボーク状況に応じたMKBの設定、MKBに適用する暗号鍵としてのサブセットキーの選択を効率的に実行可能とした情報処理装置、および情報処理方法、並びにコンピュータ・プログラムを提供することを目的とする。
本発明の第1の側面は、
階層木構成に基づく暗号化秘密情報の提供構成を適用して特定の選択デバイスに配付されたデバイスキーを適用した場合にのみ秘密情報の取得を可能とし、排除デバイスであるリボークデバイスに配付されたデバイスキーを適用した場合には前記秘密情報の取得ができない設定とした暗号情報ブロックの生成に適用する暗号化キーの決定処理を実行する情報処理装置であり、
キー情報生成部において、
階層木の上位ノードを処理開始点としてカレントノードを設定し、該カレントノードの直下の左ノードと右ノードのそれぞれに属するリーフノードのリボーク状況を判定し、該リボーク状況の判定結果に応じて予め設定された処理を実行して、前記暗号情報ブロックの生成に適用する暗号化キーの決定処理を実行する構成を有することを特徴とする情報処理装置にある。
さらに、本発明の情報処理装置の一実施態様において、前記キー情報生成部は、リボーク状況の判定処理として、カレントノードの直下の左ノードと右ノードのそれぞれに属するリーフノードのリボーク状況が、
(a)リボークデバイスが存在しないゼロリボーク(zero revoked)
(b)全てのデバイスがリボークデバイスではないが1つ以上リボークデバイスがあるノンフルリボーク(non−full revoke)
(c)全てのデバイスがリボークデバイスであるフルリボーク(full revoke)
上記(a)〜(c)のいずれのリボーク状況であるかを判別し、
前記左ノードと右ノードそれぞれに属するリーフノードのリボーク状況の組み合わせに応じて、
(1)前記暗号情報ブロックの生成に適用する暗号化キーを決定するキー定義情報の出力処理、
(2)キーサーチ関数の更新処理、
上記(1)、(2)の少なくともいずれかの処理を実行して、最終的に前記暗号情報ブロックの生成に適用する暗号化キーの決定処理を実行する構成を有することを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記情報処理装置は、さらに、前記キー情報生成部の生成した暗号化キーを適用した暗号化データを格納した暗号情報ブロックを生成する暗号情報ブロック生成部と、検証対象デバイス対応のデバイスキーセットを生成するデバイスキーセット生成部と、前記暗号情報ブロック生成部の生成した暗号情報ブロック、および前記デバイスキーセット生成部の生成した検証対象デバイス対応のデバイスキーセットを入力し、入力デバイスキーセットに基づく暗号情報ブロックの処理を実行して秘密情報の取得の可否を検証するデータ検証処理部とを有することを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記暗号情報ブロックは、秘密情報としてメディアキーを前記暗号化キーによって暗号化したデータを格納したMKB(Media Key Block)であり、前記暗号情報ブロック生成部は、前記キー情報生成部の生成した暗号化キーを適用してメディアキーの暗号化キーデータを生成して、該暗号化キーデータを秘密情報として格納したMKBを生成する構成であることを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記階層木は、ESD(Explicit Subset Difference)方式の階層木であり、前記キー情報生成部は、前記ESD方式において規定されるサブセットキーから、前記暗号情報ブロックの生成に適用する暗号化キーに適用するサブセットキーを決定する処理を実行する構成であることを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記キー情報生成部は、前記ESD方式において規定されるサブセットキー:SKu−vを決定するパラメータであるサブセットルートの値:uと、リボークルートの値:vの各値を決定する処理を実行する構成であることを特徴とする。
さらに、本発明の第2の側面は、
情報処理装置において、階層木構成に基づく暗号化秘密情報の提供構成を適用して特定の選択デバイスに配付されたデバイスキーを適用した場合にのみ秘密情報の取得を可能とし、排除デバイスであるリボークデバイスに配付されたデバイスキーを適用した場合には前記秘密情報の取得ができない設定とした暗号情報ブロックの生成に適用する暗号化キーの決定処理を実行する情報処理方法であり、
キー情報生成部において、階層木の上位ノードを処理開始点としてカレントノードを設定し、該カレントノードの直下の左ノードと右ノードのそれぞれに属するリーフノードのリボーク状況を判定するリボーク状況判定ステップと、
前記キー情報生成部において、前記リボーク状況の判定結果に応じて予め設定された処理を実行して、前記暗号情報ブロックの生成に適用する暗号化キーの決定処理を実行するキー情報生成ステップと、
を実行することを特徴とする情報処理方法にある。
さらに、本発明の情報処理方法の一実施態様において、前記リボーク状況判定ステップは、リボーク状況の判定処理として、カレントノードの直下の左ノードと右ノードのそれぞれに属するリーフノードのリボーク状況が、
(a)リボークデバイスが存在しないゼロリボーク(zero revoked)
(b)全てのデバイスがリボークデバイスではないが1つ以上リボークデバイスがあるノンフルリボーク(non−full revoke)
(c)全てのデバイスがリボークデバイスであるフルリボーク(full revoke)
上記(a)〜(c)のいずれのリボーク状況であるかを判別するステップであり、
前記キー情報生成ステップは、
前記左ノードと右ノードそれぞれに属するリーフノードのリボーク状況の組み合わせに応じて、
(1)前記暗号情報ブロックの生成に適用する暗号化キーを決定するキー定義情報の出力処理、
(2)キーサーチ関数の更新処理、
上記(1)、(2)の少なくともいずれかの処理を実行して、最終的に前記暗号情報ブロックの生成に適用する暗号化キーの決定処理を実行するステップであることを特徴とする。
さらに、本発明の情報処理方法の一実施態様において、前記情報処理方法は、さらに、暗号情報ブロック生成部において、前記キー情報生成ステップにおいて生成された暗号化キーを適用した暗号化データを格納した暗号情報ブロックを生成する暗号情報ブロック生成ステップと、デバイスキーセット生成部において、検証対象デバイス対応のデバイスキーセットを生成するデバイスキーセット生成ステップと、データ検証処理部において、前記暗号情報ブロック、および前記デバイスキーセットを入力し、入力デバイスキーセットに基づく暗号情報ブロックの処理を実行して秘密情報の取得の可否を検証するデータ検証処理ステップとを実行することを特徴とする。
さらに、本発明の情報処理方法の一実施態様において、前記暗号情報ブロックは、秘密情報としてメディアキーを前記暗号化キーによって暗号化したデータを格納したMKB(Media Key Block)であり、前記暗号情報ブロック生成ステップは、前記キー情報生成部の生成した暗号化キーを適用してメディアキーの暗号化キーデータを生成して、該暗号化キーデータを秘密情報として格納したMKBを生成するステップであることを特徴とする。
さらに、本発明の情報処理方法の一実施態様において、前記階層木は、ESD(Explicit Subset Difference)方式の階層木であり、前記キー情報生成ステップは、前記ESD方式において規定されるサブセットキーから、前記暗号情報ブロックの生成に適用する暗号化キーに適用するサブセットキーを決定する処理を実行するステップであることを特徴とする。
さらに、本発明の情報処理方法の一実施態様において、前記キー情報生成ステップは、前記ESD方式において規定されるサブセットキー:SKu−vを決定するパラメータであるサブセットルートの値:uと、リボークルートの値:vの各値を決定する処理を実行するステップであることを特徴とする。
さらに、本発明の第3の側面は、
情報処理装置において、階層木構成に基づく暗号化秘密情報の提供構成を適用して特定の選択デバイスに配付されたデバイスキーを適用した場合にのみ秘密情報の取得を可能とし、排除デバイスであるリボークデバイスに配付されたデバイスキーを適用した場合には前記秘密情報の取得ができない設定とした暗号情報ブロックの生成に適用する暗号化キーの決定処理を実行させるコンピュータ・プログラムであり、
キー情報生成部に、階層木の上位ノードを処理開始点としてカレントノードを設定し、該カレントノードの直下の左ノードと右ノードのそれぞれに属するリーフノードのリボーク状況を判定させるリボーク状況判定ステップと、
前記キー情報生成部に、前記リボーク状況の判定結果に応じた予め定めた処理を実行して、前記暗号情報ブロックの生成に適用する暗号化キーの決定処理を実行させるキー情報生成ステップと、
を実行させることを特徴とするコンピュータ・プログラムにある。
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能なコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、DVD、CD、MOなどの記録媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
本発明の一実施例の構成によれば、階層木構成を適用して特定の選択デバイスに配付されたデバイスキーを適用した場合にのみ秘密情報の取得を可能とし、排除デバイスであるリボークデバイスに配付されたデバイスキーを適用した場合には秘密情報の取得ができない構成を持つ暗号情報ブロック、すなわちMKBの生成に適用する暗号化キーの決定処理を効率的にかつ確実に実行することが可能となる。すなわち、Subset Difference(SD)方式を適用したシステムにおいて、階層木の上位ノードを処理開始点としてカレントノードを設定し、カレントノードの直下の左ノードと右ノードのそれぞれに属するリーフノードのリボーク状況を判定し、リボーク状況の判定結果に応じて予め規定した処理を実行する。この処理アルゴリズムの実行によりMKBの生成に適用する暗号鍵としてのサブセットキーの決定処理を効率的に確実に行なうことが可能となる。
以下、図面を参照しながら本発明の情報処理装置、および情報処理方法、並びにコンピュータ・プログラムの詳細について説明する。なお、説明は以下の項目に従って行なう。
1.ディスク記録情報および再生シーケンス
(1−1)ディスク記録情報
(1−2)コンテンツ管理ユニット(CPSユニット)による管理構成
(1−3)コンテンツ利用シーケンス
2.階層木構成を適用した暗号化データ提供システムであるESD(Explicit Subset Difference)方式の概要
3.ESD(Explicit Subset Difference)方式におけるリボークデバイスに基づくMKB構成の決定処理
4.検証処理を実行する情報処理装置の構成および処理
[1.ディスク記録情報および再生シーケンス]
まず、AACS(Advanced Access Content System)に従った情報記録媒体(ディスク)に対する記録データの種類、およびコンテンツの再生処理シーケンスについて説明する。
(1−1)ディスク記録情報
最初に、図1を参照して情報記録媒体100の格納データについて説明する。情報記録媒体100は、例えば、Blu−ray Disc(登録商標)、DVDなどの情報記録媒体であり、著作権保護対象となるコンテンツを記録したディスクであり、AACS(Advanced Access Content System)に従ったコンテンツ利用を可能とした各種のデータが記録されている。
図1に示すように、情報記録媒体100には、暗号化処理および一部データの置き換え処理の施された暗号化コンテンツ101と、ブロードキャストエンクリプション方式の一態様として知られる木構造の鍵配信方式に基づいて生成される暗号情報(暗号鍵)ブロックとしてのMKB(Media Key Block)102、コンテンツ復号処理に適用するユニット鍵を暗号化したデータ(Encrypted CPS Unit Key)等から構成されるユニット鍵ファイル103、ユニット鍵ファイル103の暗号化に適用される鍵の生成情報となるバインディングナンス(Binding Nonce)104、コンテンツのコピー・再生制御情報としてのCCI(Copy Control Information)等を含む利用制御情報105が格納される。
なお、図に示す情報記録媒体格納データ例は一例であり、格納データは、ディスクの種類などによって多少異なる。以下、これらの各種情報の概要について説明する。
(1)暗号化コンテンツ101
情報記録媒体100には、様々なコンテンツが格納される。例えば高精細動画像データであるHD(High Definition)ムービーコンテンツなどの動画コンテンツのAV(Audio Visual)ストリームや特定の規格で規定された形式のゲームプログラム、画像ファイル、音声データ、テキストデータなどからなるコンテンツである。これらのコンテンツは、特定のAVフォーマット規格データであり、特定のAVデータフォーマットに従って格納される。
情報記録媒体に格納されるコンテンツは、区分コンテンツ毎の異なる利用制御を実現するため、区分コンテンツ毎に異なる鍵(CPSユニット鍵またはユニット鍵(あるいはタイトル鍵と呼ぶ場合もある))が割り当てられ暗号化されて格納される。1つのユニット鍵を割り当てる単位をコンテンツ管理ユニット(CPSユニット)と呼ぶ。
(2)MKB
MKB(Media Key Block)102は、ブロードキャストエンクリプション方式の一態様として知られる木構造の鍵配信方式に基づいて生成される暗号情報(暗号鍵)ブロックである。MKB102は有効なライセンスを持つユーザの情報処理装置に格納されたデバイスキー[Kd]に基づく処理(復号)によってのみ、コンテンツの復号に必要なキーであるメディアキー[Km]の取得を可能とした暗号情報ブロックである。すなわち、秘密情報として、メディアキーを格納している。
MKBはいわゆる階層型木構造に従った情報配信方式を適用したものであり、ユーザデバイス(情報処理装置)が有効なライセンスを持つ場合にのみ、メディアキー[Km]の取得を可能とし、無効化(リボーク処理)されたユーザデバイスにおいては、メディアキー[Km]の取得が不可能となる。すなわち、MKBは、階層木構成を適用したブロードキャストエンクリプション方式に基づいて、特定の選択デバイスに配付されたデバイスキーを適用した場合にのみ秘密情報の取得を可能とし、排除デバイスであるリボークデバイスに配付されたデバイスキーを適用した場合には前記秘密情報の取得ができない構成を持つ暗号情報ブロックである。
ライセンスエンティテイとしての管理センタはMKBに格納する鍵情報の暗号化に用いるデバイスキーの変更により、特定のユーザデバイスに格納されたデバイスキーでは復号できない、すなわちコンテンツ復号に必要なメディアキーを取得できない構成を持つMKBを生成することができる。従って、任意タイミングで不正デバイスを排除(リボーク)して、有効なライセンスを持つデバイスに対してのみ復号可能な暗号化コンテンツを提供することが可能となる。コンテンツの復号処理については後述する。
(3)ユニット鍵ファイル
前述したように各コンテンツまたは複数コンテンツの集合は、コンテンツの利用管理のため、各々、個別の暗号鍵(CPSユニット鍵)を適用した暗号化がなされて情報記録媒体100に格納される。すなわち、コンテンツを構成するAV(Audio Visual)ストリーム、音楽データ、動画、静止画等の画像データ、ゲームプログラム、WEBコンテンツなどは、コンテンツ利用の管理単位としてのユニットに区分され、区分されたユニット毎に異なるユニット鍵を生成して、復号処理を行なうことが必要となる。このユニット鍵を生成するための情報がCPSユニット鍵であり、CPSユニット鍵を格納したファイルがユニット鍵ファイルである。ユニット鍵ファイルに記録されるCPSユニット鍵は暗号化されたデータとして格納される。
すなわち、ユーザデバイス(情報処理装置)が有効なライセンスを持つ場合にのみ、上述のMKBから取得可能なメディアキー[Km]や、図1に示すバインディングナンス(Binding Nonce)104を適用して復号が可能となる。復号シーケンスについては、後述する。
(4)バインディングナンス(Binding Nonce)
バインディングナンス(Binding Nonce)は、上述したように、ユニット鍵ファイルに格納されるCPSユニット鍵の暗号化に適用される情報であり、暗号化CPSユニット鍵の復号に適用される。復号により、CPSユニット鍵が取得され、取得されたCPSユニット鍵を適用してコンテンツの復号が実行される。
バインディングナンスは固定データではなく、ユニット鍵ファイルに格納されるユニット鍵構成の変更に応じて、随時変更される。例えば、あるCPSユニット#1,の記録された情報記録媒体に対して、さらに、新たなコンテンツであるCPSユニット#2を記録するようなCPSユニットの追加記録を行なう場合、CPSユニット鍵ファイルは、CPSユニット鍵#1とCPSユニット鍵#2を含むファイルとして更新され、この更新処理に際して、バインディングナンスも更新する。
このように、ユニット鍵ファイルの構成に応じて、逐次バインディングナンスを変更することで、情報記録媒体に正規に格納されたCPSユニットと適用可能なCPSユニット鍵との対応を厳格に管理することが可能となる。
(5)利用制御情報
利用制御情報には、例えばコピー・再生制御情報(CCI)が含まれる。すなわち、情報記録媒体100に格納された暗号化コンテンツ101に対応する利用制御のためのコピー制限情報や、再生制限情報である。このコピー・再生制御情報(CCI)は、コンテンツ管理ユニットとして設定されるCPSユニット個別の情報として設定される場合や、複数のCPSユニットに対応して設定される場合など、様々な設定が可能である。
(1−2)コンテンツ管理ユニット(CPSユニット)による管理構成
次に、コンテンツ管理ユニット(CPSユニット)の設定に基づくコンテンツ管理構成について、図2を参照して説明する。情報記録媒体に格納されるコンテンツは、ユニット毎の異なる利用制御を実現するため、ユニット毎に異なる鍵が割り当てられ暗号化処理がなされて格納される。すなわち、コンテンツはコンテンツ管理ユニット(CPSユニット)に区分されて、個別の鍵(ユニット鍵(CPSユニット鍵))による暗号化処理がなされ、個別の利用管理がなされる。
コンテンツ利用に際しては、まず、各ユニットに割り当てられたCPSユニット鍵を取得することが必要であり、さらに、その他の必要な鍵、鍵生成情報等を適用して予め定められた復号処理シーケンスに基づくデータ処理を実行して再生を行う。
コンテンツ管理ユニット(CPSユニット)の設定態様は、様々な設定が可能である。図2を参照してコンテンツ管理ユニット(CPSユニット)の1つの設定態様について説明する。
図2に示す例では、動画コンテンツや静止画コンテンツなどの様々なコンテンツに対応するタイトル、アプリケーションなどに対応してコンテンツ管理ユニット(CPSユニット)を設定した例である。各CPSユニット設定単位毎に、コンテンツ管理ユニット識別子(CPSユニットID)が設定され、各CPSユニット毎に異なる暗号鍵としてのユニット鍵(CPSユニット鍵)が割り当てられ、各CPSユニットは、対応するCPSユニット鍵による暗号化がなされ、復号の際には、復号対象のコンテンツに対応するCPSユニット鍵をCPSユニット鍵ファイルから取得することが必要となる。
(1−3)コンテンツ再生シーケンス
次に、図3を参照して、情報記録媒体100に記録された情報を適用したコンテンツの利用(再生)シーケンスについて説明する。
まず、情報処理装置180は、メモリに格納しているデバイスキー[Kd]181を読み出す。デバイスキー181は、コンテンツ利用に関するライセンスを受けた情報処理装置に格納された秘密キーである。
次に、情報処理装置180は、ステップS11において、デバイスキー181を適用して情報記録媒体100に格納されたメディアキー[Km]を格納した暗号鍵ブロックであるMKB102の復号処理を実行して、メディアキー[Km]を取得する。MKB(Media Key Block)171は、前述したようにブロードキャストエンクリプション方式の一態様として知られる木構造の鍵配信方式に基づいて生成される暗号鍵ブロックである。MKB102は有効なライセンスを持つユーザの情報処理装置に格納されたデバイスキー[Kd]に基づく処理(復号)によってのみ、コンテンツの復号に必要なキーであるメディアキー[Km]の取得を可能とした鍵情報ブロックである。これはいわゆる階層型木構造に従った情報配信方式を適用したものであり、ユーザデバイス(情報処理装置)が有効なライセンスを持つ場合にのみ、メディアキー[Km]の取得を可能とし、無効化(リボーク処理)されたユーザデバイスにおいては、メディアキー[Km]の取得が不可能となる。
次に、ステップS12において、ステップS11におけるMKB処理で取得したメディアキーKmと、情報記録媒体100から読み取ったバインディングナンス(Binding Nonce)104とに基づく暗号処理によって、暗号鍵としてのバインド鍵[Kb]を生成する。この鍵生成処理は、例えば、AES暗号アルゴリズムに従った処理として実行される。
このように、CPSユニット鍵ファイルに記録されるユニット鍵の暗号化に直接的に適用される暗号鍵はバインド鍵[Kb]であり、このバインド鍵[Kb]に適用する暗号鍵生成情報がバインディングナンスである。
次に、ステップS13において、バインド鍵[Kb]によって、情報記録媒体100から読み取ったCPSユニット鍵ファイル103の復号処理を行なう。CPSユニット鍵ファイル103は、各CPSユニットに対応して設定されるユニット鍵[Kun]の暗号化データを格納したファイルである。ユニット鍵ファイルの具体的構成については後述する。例えば、[Enc(Kb,f(Ku_n,CCI))]のような暗号化データとしてユニット鍵を格納している。Enc(a,b)はデータbの鍵aによる暗号化データを示している。
ステップS13におけるCPSユニット鍵ファイル103の復号処理によって、
データ[Kt]=f(Ku_n,CCI)
を取得し、ステップS14において、
データ[Kt]=f(Ku_n,CCI)、
に対して、情報記録媒体100から読み取った利用制御情報(CCI)105を適用した演算処理を実行して、ユニット鍵[Ku_n]を得る。
例えば、データ[Kt]=f(Ku_n,CCI)が、ユニット鍵[Ku_n]と、利用制御情報[CCI]との排他論理和(XOR)結果データである場合、再度、この演算結果に対して、情報記録媒体から読み取った利用制御情報[CCI]の排他論理和(XOR)演算を実行することで、ユニット鍵[Ku_n]を取得することができる。
次に、ステップS15において、情報記録媒体100から読み取った暗号化コンテンツ101に対して、ユニット鍵[Ku_n]を適用した復号処理(例えばAES_D)を実行し、ステップS16において、例えばMPEGデコード、圧縮解除、スクランブル解除等、必要なデコード処理を実行して、コンテンツ182を取得する。
この処理によって、情報記録媒体100に格納されたCPSユニットとして管理される暗号化コンテンツが復号されて利用、すなわち再生することができる。
[2.階層木構成を適用した暗号化データ提供システムであるESD(Explicit Subset Difference)方式の概要]
次に、階層木構成を適用した暗号化データ提供システムであるESD(Explicit Subset Difference)方式の概要について説明する。上述した説明において理解されるように、コンテンツの復号に必要となるメディアキー[Km]は、MKB(メディアキーブロック)に暗号化されたデータとして格納され、コンテンツ利用の許容されたデバイスのみが自己の保持するデバイスキーを適用してMKBからメディアキーを取得することができる。
リボーク(排除)されたデバイスの有するデバイスキーを適用してもMKBからメディアキー[Km]を取得できないように、MKBは適宜更新される。すなわち、MKBは号化態様を変更した暗号鍵ブロックとして更新される。この構成を実現するために、階層木構造を適用した暗号データ配信方式が適用される。階層木構造を適用した暗号データ配信方式の1つがESD(Explicit Subset Difference)方式である。ESD(Explicit Subset Difference)方式は、階層木の中にサブセットを定義した構成であり、ユーザデバイスに保持するデバイスキーのデータ量の削減や処理を高速化した方式である。
ESD(Explicit Subset Difference)方式の説明の前に、基本的な階層木構造を適用した暗号データ提供処理構成について説明する。図4を参照して、階層木構造の基本構成について説明する。図4に示す階層木構造は2分木構造を用いており、その最下層がリーフ(葉)と呼ばれ、頂点、各分岐部およびリーフを含む部分をノードと称する。なお、頂点をルート、あるいはルートノードと呼ぶ。図4に示す2分木階層型木構造において、リーフは8〜15、ノードは1〜15、ルートは1である。これらのナンバーはノードナンバーと呼ばれる。ノードナンバーは、例えば上位から順に、かつ左から右に設定される。
この2分木階層型木構造におけるノードナンバー8〜15のリーフにコンテンツの利用機器としての再生機、受信機等の情報処理装置であるユーザデバイスが1つずつ割り当てられる。リーフに対応付けられたユーザデバイスは、それぞれのデバイスキーセットを保持する。コンテンツの復号に必要となるメディアキー[Km]は、MKB(メディアキーブロック)に暗号化されたデータとして格納され、コンテンツ利用の許容されたデバイスのみが自己の保持するデバイスキーセットを適用してMKBからメディアキーを取得することができる。
コンテンツ利用の許容されないデバイスは、リボークデバイスと呼ばれる。例えば図4においてノードナンバー11のリーフに対応するユーザデバイスをリボーク機器として設定する場合、メディアキー[Km]を格納したMKBは、ノードナンバー11のリーフに対応するユーザデバイスの保持するデバイスキーでは、メディアキー[Km]を取得できず、その他のリーフ(ノードナンバー=8〜10,12〜15)に対応するユーザデバイスの保持するデバイスキーを適用した場合には、メディアキー[Km]を取得できる暗号化メディアキーを保持した構成とされる。
このようにMKBの更新を適宜、実行することで、リボーク機器の変更に応じて、コンテンツの利用許容機器を随時変更することが可能となる。
階層木構成を適用した暗号データのシステムの1つとして、ESD(Explicit Subset Difference)方式がある。ESD(Explicit Subset Difference)方式は、階層木の中に部分木としてのサブセットを定義した構成であり、ユーザデバイスに保持するデバイスキーのデータ量の削減や処理を高速化した方式である。ESD(Explicit Subset Difference)方式について、図5以下を参照して説明する。ESD(Explicit Subset Difference)方式では、図5に示すように、階層木を構成する2つのノードu,v(ただしuはvの上位ノード)を用いて部分木としてのサブセットSu,vが定義される。
各サブセットSu,vに対応してサブセットキーSKu−vが定義される。図に示す例では、サブセットのルートはノードuであり、このノードuをサブセットルートと呼ぶ。また、サブセットルートuの下位に設定されるもう1つの頂点vを以下リボークルートと呼ぶ。すなわち、サブセットは、サブセットルートuとリボークルートvによって定義される。
サブセットSu,vは、サブセットルート(u)をルート(頂点)ノードとする集合に含まれるリーフから、リボークルートVを頂点ノードとする集合に含まれるリーフを排除することを目的として設定されるサブセットである。例えば図に示すサブセットSu,vは、サブセットルート(u)をルート(頂点)ノードとする集合に含まれるリーフ(U1〜U8)から、リボークルートvを頂点ノードとする集合に含まれるリーフ(U5,U6)を排除(リボーク)するサブセットである。
例えば、このサブセットSu,vに対応して設定されるサブセットキーSKu−vは、ユーザデバイスとしてのU1〜U8の集合については、U5,U6を除く、U1〜U4と、U7,U8にのみ配布される。もしくは、U1〜U4と、U7,U8に配布された他のサブセットキーから算出可能な設定とされる。U5,U6は、サブセットSu,vに対応して設定されるサブセットキーSKu−vを保持しておらず、保持する他のサブセットキーからもサブセットキーSKu−vを算出することができない。
このサブセットキーSKu−vを適用してメディアキー[Km]を暗号化して格納したMKBを生成して配布すれば、U1〜U4と、U7,U8は、自己のデバイスキーの構成要素としてのサブセットキーSKu−v、または他のサブセットキーから算出したサブセットキーSKu−vを用いてメディアキーを取得できるが、U5,U6は、サブセットキーSKu−vを保持して折らず算出することもできないので、MKBの処理によるメディアキーの取得が不可能となる。
ESD(Explicit Subset Difference)方式では、このように、部分木としてのサブセットSu,vおよびサブセットに対応するサブセットキーSKu,vを定義して特定のユーザデバイスのみに取得可能なデータ(上記例ではメディアキー[Km])を、MKBを用いて提供するものである。
なお、図5には、1つのサブセットのみを示しているが、階層木において設定可能なサブセットは多数ある。図6〜図10を参照して、1つのリーフに対応するユーザデバイスに注目して、そのリーフ対応の注目デバイスの保持するデバイスキーであるサブセットキーのセットと、各サブセットキーに対応して、階層木中に設定されるサブセットについて説明する。
図6〜図10は、いずれも注目ノードをノードナンバー36のリーフとして、
図6は、サブセットルート=ノードナンバー1の設定におけるノードナンバー36の保持するサブセットキーとそのサブセットキー対応のサブセット、
図7は、サブセットルート=ノードナンバー2の設定におけるノードナンバー36の保持するサブセットキーとそのサブセットキー対応のサブセット、
図8は、サブセットルート=ノードナンバー4の設定におけるノードナンバー36の保持するサブセットキーとそのサブセットキー対応のサブセット、
図9は、サブセットルート=ノードナンバー9の設定におけるノードナンバー36の保持するサブセットキーとそのサブセットキー対応のサブセット、
図10は、サブセットルート=ノードナンバー18の設定におけるノードナンバー36の保持するサブセットキーとそのサブセットキー対応のサブセット、
これらのサブセットについて説明する図である。
例えば、図6は、サブセットルート=ノードナンバー1の設定におけるノードナンバー36の保持するサブセットキーとそのサブセットキー対応のサブセットを説明する図である。この場合、図に示すように、定義されるサブセットは、
サブセットルート=1に対して、
(1)リボークルート=3としたサブセットS1,3
(2)リボークルート=5としたサブセットS1,5
(3)リボークルート=8としたサブセットS1,8
(4)リボークルート=19としたサブセットS1,19
(5)リボークルート=37としたサブセットS1,37
これらの5つであり、
リーフノード36におけるデバイスキーセットは、上記5つのサブセットに対応するサブセットキーとなり、
{SK1−3,SK1−5,SK1−8,SK1−19,SK1−37
これら5つのサブセットキーがリーフノード36に対応するデバイスのデバイスキーを構成するサブセットキーに含められる。
図7は、サブセットルート=ノードナンバー2の設定におけるノードナンバー36の保持するサブセットキーとそのサブセットキー対応のサブセットを説明する図である。この場合、図に示すように、定義されるサブセットは、
サブセットルート=2に対して、
(1)リボークルート=5としたサブセットS2,5
(2)リボークルート=8としたサブセットS2,8
(3)リボークルート=19としたサブセットS2,19
(4)リボークルート=37としたサブセットS2,37
これらの4つであり、
リーフノード36におけるデバイスキーセットは、上記4つのサブセットに対応するサブセットキーとなり、
{SK2−5,SK2−8,SK2−19,SK2−37
これら4つのサブセットキーがリーフノード36に対応するデバイスのデバイスキーを構成するサブセットキーに含められる。
図8は、サブセットルート=ノードナンバー4の設定におけるノードナンバー36の保持するサブセットキーとそのサブセットキー対応のサブセットを説明する図である。この場合、図に示すように、定義されるサブセットは、
サブセットルート=4に対して、
(1)リボークルート=8としたサブセットS4,8
(2)リボークルート=19としたサブセットS4,19
(3)リボークルート=37としたサブセットS4,37
これらの3つであり、
リーフノード36におけるデバイスキーセットは、上記3つのサブセットに対応するサブセットキーとなり、
{SK4−8,SK4−19,SK4−37
これら3つのサブセットキーがリーフノード36に対応するデバイスのデバイスキーを構成するサブセットキーに含められる。
図9は、サブセットルート=ノードナンバー9の設定におけるノードナンバー36の保持するサブセットキーとそのサブセットキー対応のサブセットを説明する図である。この場合、図に示すように、定義されるサブセットは、
サブセットルート=9に対して、
(1)リボークルート=19としたサブセットS9,19
(2)リボークルート=37としたサブセットS9,37
これらの2つであり、
リーフノード36におけるデバイスキーセットは、上記2つのサブセットに対応するサブセットキーとなり、
{SK9−19,SK9−37
これら2つのサブセットキーがリーフノード36に対応するデバイスのデバイスキーを構成するサブセットキーに含められる。
図10は、サブセットルート=ノードナンバー18の設定におけるノードナンバー36の保持するサブセットキーとそのサブセットキー対応のサブセットを説明する図である。この場合、図に示すように、定義されるサブセットは、
サブセットルート=18に対して、
(1)リボークルート=37としたサブセットS18,37
この1つであり、
リーフノード36におけるデバイスキーセットは、上記1つのサブセットに対応するサブセットキーとなり、
{SK18−37
このサブセットキーがリーフノード36に対応するデバイスのデバイスキーを構成するサブセットキーに含められる。
上述したサブセットおよびサブセットキーの組み合わせは、1つの注目リーフノード(36)に対応するものであり、それぞれのリーフノードについては、各リーフノードに対応するサブセットおよびサブセットキーが定義されることになる。なお、結果として、ノード36の保持するデバイスキーは、以下のサブセットキーの集合となる。
{SK1−3,SK1−5,SK1−8,SK1−19,SK1−37,SK2−5,SK2−8,SK2−19,SK2−37,SK4−8,SK4−19,SK4−37,SK9−19,SK9−37,SK18−37
このように、ある注目リーフノードに対応するサブセットは、自身が属することのないリーフ集合を上位ノードから順次設定したものに相当し、これらのサブセットに対応するサブセットキーが、その注目リーフノードに提供されることになる。
なお、サブセットキーの性質として、1つのサブセットキーSu−vのリボークノードv以下の下位のノードをリボークノードとしたサブセットキーSu−v'(ただし、v'>v)は、サブセットキーSu−vから算出可能であるという性質を持つ。たとえば、図6を参照して説明したサブセットSK1,3に対応するサブセットキーSK1−3からは、リボークノード3以下のノードをリボークノードとしたサブセットキー、例えば、サブセットキーS1−6,S1−7,S1−12,・・S1−15,S1−24,・・S1−31,S1−48,・・S1−63,を算出することができる。
このような構成において、ノードナンバー(リーフナンバー)32〜63のいずれかのリーフ対応のデバイスをリボーク(排除)する場合、そのリボークデバイスではメディアキー[Km]を取得できない設定としたMKBを設定して、各リーフノード対応のデバイスに提供することになる。例えば、先に図1を参照して説明したように、コンテンツを格納したディスクに更新されたMKBを記録して配付する。
図11以下を参照して、リボークデバイスを設定した場合におけるMKBにおけるメディアキー[Mk]の暗号化構成および、注目デバイス(36)におけるメディアキーの取得処理例について説明する。
図11は、先に図6を参照して説明したサブセットルート=1の場合のサブセットおよび、注目デバイス36の有するサブセットキーを示している。この設定において、図に示すノードナンバー=44のリーフノードに対応するデバイスをリボークするものとする。
このとき、MKBに格納されるメディアキー[Km]は、サブセットキーSk1−44で暗号化される。すなわち、メディアキーブロック(MKB)は、データとして
{eKm1−44
を有するMKBとして設定されて、配付されることになる。
なお、eKm1−44は、メディアキー[Km]をサブセットキーSk1−44で暗号化したデータであることを示す。
この構成において、例えばリーフノード(36)のデバイスは、
MKB={eKm1−44
この暗号化データを復号してメディアキー[Km]を取得する。この処理としては、まず、メディアキー[Km]の暗号化キーSk1−44を算出する。
前述した説明から明らかなように、サブセットキーの性質として、1つのサブセットキーSu−vのリボークノードv以下の下位のノードをリボークノードとしたサブセットキーSu−v'(ただし、v'>v)は、サブセットキーSu−vから算出可能であるという性質を持つ。
従って、サブセットキーSk1−44は、リーフノード(36)対応デバイスの保持するサブセットキーSk1−5から算出可能であり、まず、サブセットキーSk1−5からサブセットキーSk1−44を算出し、その後、算出したサブセットキーSk1−44を適用して、MKBに含まれる暗号化データ{eKm1−44}を復号してメディアキー[Km]を取得する。
リボークノード(44)以外の全てのリーフ対応のデバイスは、上述した処理と同様、自デバイスの保持するサブセットキーからサブセットキーSk1−44を算出し、その後、算出したサブセットキーSk1−44を適用して、MKBに含まれる暗号化データ{eKm1−44}を復号してメディアキー[Km]を取得することができる。なお、リーフノード45は、サブセットキーSk1−44を保持しており、算出処理は不要となる。一方、リボークノード(44)は、サブセットキーSk1−44を算出することができず、また保持もしていないので、MKBに含まれる暗号化データ{eKm1−44}を復号することができず、メディアキー[Km]の取得が不可能となる。
リボークノードをノードナンバー=44とした設定とした場合、図11に示すように、
MKB={eKm1−44
とした設定で、リーフノード44以外のリーフノードがメディアキーを取得することを可能とすることができるが、MKBの構成は、この他の構成とすることも可能である。
例えば、図12に示す例は、サブセットルートノード=2の設定となるサブセットを利用して、MKBの格納鍵の暗号化処理を実行した例である。
サブセットルートノード=2の設定となるサブセットを利用した場合、リボークノードをノードナンバー=44のケースにおいて、
図11を参照して説明した
(設定例1)MKB={eKm1−44
と異なる設定例、すなわち、
(設定例2)MKB={eKm2−44,eKm1−2
とする設定が可能となる。
設定例2のMKB={eKm2−44,eKm1−2}は、
メディアキー[Km]をサブセットキーSk2−44で暗号化したデータと、
メディアキー[Km]をサブセットキーSk1−1で暗号化したデータと、
これら2つの暗号化データを含むことを意味している。
このMKB設定とすることにより、図12に示す右側半分のリーフノード(48〜63)におけるメディアキー取得が効率的になる。すなわち、図12に示す右側半分のリーフノード(48〜63)は、デバイスキーとしてすべて、サブセットキーSk1−2を保持しており、このサブセットキーSk1−2を適用したMKBの格納データ{eKm1−2}の復号処理によって、メディアキーを直接取得することが可能となる。
リボークノード(44)を除く図12に示す左半分のリーフノード(32〜43,45〜47)は、自己の保持するサブセットキーに基づいてサブセットキーSk2−44を算出して、その後、算出したサブセットキーSk2−44を適用して、MKBに含まれる暗号化データ{eKm2−44}を復号してメディアキー[Km]を取得する。
このように、同じリボークノードの設定においても、MKBに格納する暗号化データを変更することで各デバイスにおける処理の効率化を実現することができる。
図13に示す例は、サブセットルートノード=4の設定としたサブセットを利用して、MKBの格納鍵の暗号化処理を実行した例である。
サブセットルートノード=4の設定としたサブセットを利用した場合、リボークノードをノードナンバー=44のケースにおいて、
図11を参照して説明した
(設定例1)MKB={eKm1−44
図12を参照して説明した設定例、
(設定例2)MKB={eKm2−44,eKm1−2
これらと異なる設定例、すなわち、
(設定例3)MKB={eKm4−8,eKm4−16,eKm4−17,eKm1−2,eKm5−11,eKm11−22,eKm22−45
とする設定が可能となる。
このMKB設定とすることにより、図13に示す右側半分のリーフノード(48〜63)におけるメディアキー取得が、図12に示す例と同様、サブセットキーSk1−2の直接適用が可能になる他、左側の各ノードについても、自己の保持するサブセットキーの直接適用、あるいはサブセットキー算出ステップを簡略化することが可能となる。例えば、サブセットキーSk4−8は、リーフノード36〜39が保持するサブセットキーであり、リーフノード36〜39は、MKBに含まれる暗号化データ{eKm4−8}を選択して、自己の保持するサブセットキーSk4−8を適用してメディアキーを取得可能となる。
この設定においてMKBに含まれる暗号化データ、すなわち、
MKB={eKm4−8,eKm4−16,eKm4−17,eKm1−2,eKm5−11,eKm11−22,eKm22−45
これらの各暗号化データは、リボークされていないノードの保持するサブセットキーを直接、または保持するサブセットキーから算出可能なサブセットキーによる暗号化データによって構成されており、リボークリード(44)のみがメディアキーを取得することができない構成である。
図11〜図13に示す例は、リボークノードを1つのリーフノードとした設定例であるが、リボークノードは複数存在することもある。複数のリボークノードが設定された場合の例を図14に示す。
図14は、リボークノード=44,45とした例である。
この場合のMKBは、
MKB={eKm1−22
として設定される。
すなわち、サブセットキーSk1−22によってメディアキー[Km]を暗号化したデータeKm1−22を含むMKBが設定されて提供される。
この場合、リボークされていないノード、例えばリーフノード(36)は、
サブセットルートノード=1の設定で、
{SK1−3,SK1−5,SK1−8,SK1−19,SK1−37
であり、自己の保持するサブセットキーSk1−5を適用してサブセットキーSk1−22を算出可能であり、算出したサブセットキーSk1−22を適用したMKB処理によってメディアキーを取得できる。
なお、リボークされているリーフノード(44)の保持しているサブセットキーは、
サブセットルートノード=1の設定で、
{SK1−3,SK1−4,SK1−10,SK1−23,SK1−45
であり、いずれのサブセットキーを用いても、サブセットキーSk1−22を算出することは不可能であり、MKBからのメディアキー取得は不可能となる。
例えば、この図14に示す例ではリボークノードはリーフノード44,45の2つのノードであるが、さらに、注目ノード[リーフノード36]自身がリボークされた場合のMKBの構成は、図15に示す設定とされる。すなわち、
MKB={eKm4−36,eKm5−22,eKm1−2
となる。
この設定としたMKBに含まれる暗号化データは、
サブセットキーSk4−36
サブセットキーSk5−22
サブセットキーSk1−2
これら3種類のサブセットキーで暗号化されたデータであるが、
リボークノード(36,44,45)のみが、これらのサブセットキーのいずれも算出不可能となり、メディアキーの取得ができないことになる。
[3.ESD(Explicit Subset Difference)方式におけるリボークデバイスに基づくMKB構成の決定処理]
次に、ESD(Explicit Subset Difference)方式におけるリボークデバイスに基づくMKB構成の決定処理について説明する。
上述した説明から理解されるように、ESD(Explicit Subset Difference)方式において定義されるサブセットは多数存在し、そのサブセット数に対応するサブセットキーが存在する。MKBに格納する暗号化メディアキー{eKmu−v}の構成は、リボークノードの設定に基づいて決定することが可能であるが、この決定処理は、複雑であり、リーフノードの数の増加に伴い処理量が飛躍的に増加することになる。
そこで、本発明では、このMKBに格納するメディアキーの暗号化に適用するサブセットキーの選択を効率的に実行するアルゴリズムを提案する。具体的には、
リボークされたリーフノードのナンバーリストである「リボークノードリスト」
を入力とし、
MKBの暗号化に適用するサブセットキーSku−vのu,v値、すなわち、サブセットルート(u)と、リボークルート(v)のナンバー(u,v)を決定するための情報を出力するアルゴリズムである。
すなわち、リボークデバイスの決定に基づいてMKBにおいて適用すべきサブセットキーを検索(サーチ)するキーを決定するキー検索アルゴリズムである。
本発明のキー検索アルゴリズムの概要について、図16を参照して説明する。まず、最上位のルートノードを、
初期ルートノード、
初期カレントノード、
とするスコープ301の初期設定を実行して、
以下に示すキーサーチ関数を実行する。
KeySearch(root_node,current_node)
キーサーチ関数の出力は、
MKBに格納する暗号化に適用すべきサブセットキーを定義する情報としてのuv値、uマスク値、ルートノードと、カレントノードとの更新情報となる。
キーサーチ関数は、カレントノードに接続された2つの下位ノードを含む領域を解析対象スコープとして設定し、カレントノードの左下の接続ノードを左ノード(left node)、カレントノードの右下の接続ノードを右ノード(right node)として、これらの左ノード(left node)と右ノード(right node)のそれぞれに属するリーフノードのリボーク状態に応じて出力値を決定する。
すなわち、MKBに格納する暗号化に適用すべきサブセットキーを定義する情報としてのuv値、uマスク値、ルートノードと、カレントノードとの更新情報を出力する。
キーサーチ関数の実行に基づいて、ルートノード、カレントノードが順次、更新される。更新は、順次下位の階層に進む方向で行われる。すなわち、スコープの設定が順次、下位に向かって進行することになる。最下位層を含むスコープの設定に基づくキーサーチ関数の処理によってアルゴリズムが終了する。なお、あるカレントノードの設定された先行スコープにおけるキーサーチ関数の実行後に更新される後続スコープのカレントノードは、先行スコープにおける左ノード(left node)または右ノード(right node)、またはこれらの両者のノードとなる。
リボーク状況の判定処理の具体例について、図16に示すスコープ302の設定時における判定処理を例として説明する。
図16に示すスコープ302では、
例えば、
ルートノード=ノード(1)
カレントノード=ノード(5)
左ノード(left node)=ノード(10)
右ノード(right node)=ノード(11)
として、
キーサーチ関数として、
KeySearch(root_node(1),current_node(5))
が実行される。
このキーサーチ関数の実行において、
左ノード(left node)=ノード(10)と、右ノード(right node)=(11)のそれぞれに属するリーフノードのリボーク状態の判別処理が行われる。
具体的には、
(a)リボークデバイスが存在しないゼロリボーク(zero revoked)
(b)全てのデバイス=リボークではないが1つ以上リボークがあるノンフルリボーク(non−full revoke)
(c)全てのデバイス=リボークであるフルリボーク(full revoke)
これらのいずれのリボーク状況であるかを判別する。
図に示す例では、
左ノード(left node)=ノード(10)に属するリーフノード(40,41,42,43)について、上記(a),(b),(c)のいずれの状態であるかが判別し、さらに、
右ノード(Right node)=ノード(11)に属するリーフノード(44,45,46,47)について、上記(a),(b),(c)のいずれの状態であるかが判別する。
この判別状況に応じて、
KeySearch(root_node(1),current_node(5))
の結果を出力する。
すなわち、MKBに格納する暗号化に適用すべきサブセットキーを定義する情報としてのuv値、uマスク値を出力し、カレントノードの更新を実行する。この処理関数であるキーサーチ関数の具体的な処理例について、図17を参照して説明する。
図17に示すように、
キーサーチ関数:KeySearch(root_node,current_node)
による処理は、
(A)サブセットキー(u,v)値の追加処理、
(B)キーサーチ関数の更新処理、
これらの2種類の処理となる。
上記(A),(B)の2種類の処理が、
カレントノードを頂点として設定されるスコープにおいて、カレントノードの左右の接続ノードである左ノード(left node)と、右ノード(right node)に属するリーフノードのリボーク状況、すなわち、
(a)リボークデバイスが存在しないゼロリボーク(zero revoked)
(b)全てのデバイス=リボークデバイスではないが1つ以上リボークデバイスがあるノンフルリボーク(non−full revoke)
(c)全てのデバイス=リボークデバイスであるフルリボーク(full revoke)
これらのいずれのリボーク状況であるかに応じて、処理が決定される。
図17を参照して具体的なリボーク状況の組み合わせ各々についての処理について説明する。
[左ノード=ゼロリボーク、右ノード=ゼロリボークの場合]
この場合は、サブセットキー(u,v値)の追加処理が実行される。すなわち、
(u−v)=(current−left)を追加
(u−v)=(current−right)を追加
このサブセットキーの追加処理が実行され、キーサーチ関数の更新は実行されず処理が終了する。
例えば、これは、たとえば、図16に示すスコープ302において、
左ノード(left node)=ノード(10)に属するリーフノード(40,41,42,43)にリボークノードが存在せず、
右ノード(Right node)=ノード(11)に属するリーフノード(44,45,46,47)についてもリボークノードが存在しない状況である。この場合、このスコープについての更なる下位階層についてのキーサーチ関数の実行は不要となり、処理が終了する。
また、このとき、サブセットキーとして、
(u−v)=(current−left)を追加
(u−v)=(current−right)を追加
これらの処理が実行されることになる。たとえば、図16に示すスコープ302において、この処理が実行された場合、
(u−v)=(current−left)=(5,10)
(u−v)=(current−right)=(5,11)
これらのu,v値によって定義されるサブセットキーが追加される。すなわち、MKBに格納する暗号化メディアキーの暗号化に適用するサブセットキーとして追加する処理が行なわれる。
具体的には、
サブセットキーSk5−10
サブセットキーSk5−11
これら2つをMKBに格納する暗号化メディアキーの暗号化に適用するサブセットキーとして追加する処理が行なわれる。
この処理によって、MKBには、
{eKm5−10,eKm5−11
これらの暗号化データの追加が行なわれることになる。この処理は、リボークされていないリーフノード(40,41,42,43)は、これらのリーフノードの所有するサブセットキーSk5−11を適用してメディアキーの取得を可能とし、リーフノード(44,45,46,47)は、これらのリーフノードの所有するサブセットキーSk5−10を適用してメディアキーの取得を可能とすることに相当する処理である。
[左ノード=ゼロリボーク、右ノード=ノンフルリボークの場合]
この場合には、サブセットキーの追加は実行されず、キーサーチ関数の更新処理のみが実行される。すなわち、
KeySearch(root_node,right_node)
とするキーサーチ更新が実行される。
例えば、図16に示すスコーブ302における処理の場合について説明する。スコープ302、すなわち、
ルートノード=ノード(1)
カレントノード=ノード(5)
左ノード(left node)=ノード(10)
右ノード(right node)=ノード(11)
の設定において、
キーサーチ関数として、
KeySearch(root_node(1),current_node(5))
が実行され、その実行結果が、[左ノード=ゼロリボーク、右ノード=ノンフルリボーク]であったとすると、
キーサーチ関数は、この更新処理によって、
KeySearch(root_node(1),current_node(11))
として更新される。
この更新されたキーサーチ関数を次に実行する。
[左ノード=ゼロリボーク、右ノード=フルリボークの場合]
この場合には、サブセットキーの追加が実行される。すなわち、
(u−v)=(root−right)を追加
このサブセットキーの追加処理が実行され、キーサーチ関数の更新は実行されず処理が終了する。
図16に示すスコープ302の設定例の場合について説明する。すなわち、
ルートノード=ノード(1)
カレントノード=ノード(5)
左ノード(left node)=ノード(10)
右ノード(right node)=ノード(11)
の設定において、
キーサーチ関数として、
KeySearch(root_node(1),current_node(5))
が実行され、その実行結果が、[左ノード=ゼロリボーク、右ノード=フルリボーク]であったとすると、
追加されるサブセットキーは、
(u−v)=(root−right)=(1−11)、
すなわち、
具体的には、
サブセットキーSk1−11
このサブセットキーをMKBに格納する暗号化メディアキーの暗号化に適用するサブセットキーとして追加する処理が行なわれる。
この処理によって、MKBには、
{eKm1−11
この暗号化データの追加が行なわれることになる。この処理は、フルリボークであるリーフノードの集合(44,45,46,47)をリボークするサブセットに対応するサブセットキーSk1−11を適用した暗号化データの追加に相当する処理となる。
[左ノード=ノンフルリボーク、右ノード=ゼロリボークの場合]
この場合には、サブセットキーの追加は実行されず、キーサーチ関数の更新処理のみが実行される。すなわち、
KeySearch(root_node,left_node)
とするキーサーチ更新が実行される。
[左ノード=ノンフルリボーク、右ノード=ノンフルリボークの場合]
この場合には、所定条件を満足する場合にサブセットキーの追加が行なわれ、さらにキーサーチ関数の更新処理が実行される。
サブセットキーの追加は、
実行したキーサーチ関数、
KeySearch(root_node,current_node)
上記関数において、ルートノード(root_node)と、カレントノード(current_node)が一致していない場合にのみ実行される。この場合、
(u−v)=(root−current)を追加
このサブセットキーの追加処理が実行される。
上記条件を満足しない場合、すなわち、ルートノード(root_node)と、カレントノード(current_node)が一致している場合は、サブセットキーの追加処理は実行されない。
さらに、キーサーチ関数の更新処理として、
KeySearch(left_node,left_node)
KeySearch(right_node,right_node)
これらの2つのキーサーチ関数を設定するキーサーチ更新が実行される。
次のステップとしては、これらの2つのキーサーチ関数を各々実行することになる。なお、関数の実行は、並列に実行してもシーケンシャルに実行してもよい。関数を実行する装置の能力に応じて処理態様を決定してよい。
[左ノード=ノンフルリボーク、右ノード=フルリボークの場合]
この場合には、所定条件を満足する場合にサブセットキーの追加が行なわれ、さらにキーサーチ関数の更新処理が実行される。
サブセットキーの追加は、
実行したキーサーチ関数、
KeySearch(root_node,current_node)
上記関数において、ルートノード(root_node)と、カレントノード(current_node)が一致していない場合にのみ実行される。この場合、
(u−v)=(root−current)を追加
このサブセットキーの追加処理が実行される。
上記条件を満足しない場合、すなわち、ルートノード(root_node)と、カレントノード(current_node)が一致している場合は、サブセットキーの追加処理は実行されない。
さらに、キーサーチ関数の更新処理として、
KeySearch(left_node,left_node)
このキーサーチ関数を設定するキーサーチ更新が実行される。
次のステップにおいて、このキーサーチ関数を実行する。
[左ノード=フルリボーク、右ノード=ゼロリボークの場合]
この場合には、サブセットキーの追加が実行される。すなわち、
(u−v)=(root−left)を追加
このサブセットキーの追加処理が実行され、キーサーチ関数の更新は実行されず処理が終了する。
[左ノード=フルリボーク、右ノード=ノンフルリボークの場合]
この場合には、所定条件を満足する場合にサブセットキーの追加が行なわれ、さらにキーサーチ関数の更新処理が実行される。
サブセットキーの追加は、
実行したキーサーチ関数、
KeySearch(root_node,current_node)
上記関数において、ルートノード(root_node)と、カレントノード(current_node)が一致していない場合にのみ実行される。この場合、
(u−v)=(root−current)を追加
このサブセットキーの追加処理が実行される。
上記条件を満足しない場合、すなわち、ルートノード(root_node)と、カレントノード(current_node)が一致している場合は、サブセットキーの追加処理は実行されない。
さらに、キーサーチ関数の更新処理として、
KeySearch(right_node,right_node)
このキーサーチ関数を設定するキーサーチ更新が実行される。
次のステップにおいて、このキーサーチ関数を実行する。
[左ノード=フルリボーク、右ノード=フルリボークの場合]
この場合には、サブセットキーの追加処理、キーサーチ関数の更新処理とも実行することなく処理を終了する。
このように、設定スコープ中の左ノードと、右ノードに属するリーフノードのリボーク状況に応じて、サブセットキーの追加処理や、キーサーチ関数の更新処理が実行され、全てのキーサーチ関数が終了した時点で処理が終了し、その時点で追加されたサブセットキー(u,v)を、MKBに格納されるメディアキー[Km]の暗号化に適用するサブセットキーとして決定する。このようにして決定したサブセットキーを用いてメディアキーを暗号化したデータを格納したMKBを提供MKBとして決定する。
具体的なリボークデバイスの設定に基づくキーサーチ関数の処理例について、図18以下を参照して説明する。図18には、
リボークリストを入力として、
キーサーチ関数:
KeySearch(root_node,current_node)
を実行して、先に図17を参照して説明したリーフノードのリボーク状況判定処理を実行して、MKBに適用する暗号化鍵としてのサブセットキーの情報(u,v)を出力するシーケンスを示している。
このキー算出アルゴリズムにおいて入力するリボークリストとして適用するノードナンバーの具体例について、図19を参照して説明する。図19には、階層数=6の階層木構成を示している。各ノードには、32ビットのノードナンバーが設定されるが、階層数に応じて、利用されないビットはマスクされる。図に示す[xxx]はビットマスクされたデータであり、この設定では利用されない。下位6ビットのみが利用される。すなわち、階層数=6に対応する下位ビット6ビットのみが利用される。
各ノードナンバーの最下位ビット(LSB側)から最初に出現するビット値[1]の位置が階層数を示している。例えば、
ルートノード(1)には、
ノードナンバー=[XX・・XX10 0000]
が設定されており、LSB側から最初に出現するビット値[1]は最下位から6ビット目であり、リーフノードの設定された階層から数えて6番目の階層にあることを示している。
ノード(2),(3)には、それぞれ、
ノードナンバー=[XX・・XX01 0000]
ノードナンバー=[XX・・XX11 0000]
が設定されており、LSB側から最初に出現するビット値[1]は最下位から5ビット目であり、リーフノードの設定された階層から数えて5番目の階層にあることを示している。
同一階層に複数ノードがある場合は、左からビット値を順次増加するようにノードナンバーが付与される。ただし、階層数を示すビット位置の値は[1]に固定した条件の下でビット値の増加がなされる。
以下、同様であり、最下層のリーフノード(32〜63)のノードナンバーは、
ノード(32):[XX・・XX00 0001]
ノード(33):[XX・・XX00 0011]
・・
ノード(62):[XX・・XX10 1101]
ノード(63):[XX・・XX10 1111]
このように、設定される。
例えば、この設定において、リボークデバイスがリーフノード(42)(43)(44)である場合、MKBに適用するサブセットキーの算出アルゴリズムに対する入力値は、これらの3つのノードナンバー、すなわち、
ノード(42):[XX・・XX01 0101]
ノード(43):[XX・・XX01 0111]
ノード(44):[XX・・XX01 1001]
これらの3つのノードナンバーが入力される。
図18に戻り、キーサーチ関数の実行シーケンスについて説明する。
入力された3つのリボークノード番号に基づいて、以下のシーケンスでキーサーチ関数が、順次、実行される。
ステップ1:KeySearch(1,1)
状態判定:Judge(2)nFUL,Judge(3)ZERO
ステップ2:KeySearch(1,2)
状態判定:Judge(4)ZERO,Judge(5)nFUL
ステップ3:KeySearch(1,5)
状態判定:Judge(10)nFUL,Judge(11)nFUL
キー出力:Output 1−5
ステップ4:KeySearch(10,10)
状態判定:Judge(20) ZERO,Judge(21)FULL
キー出力:Output 10−21
ステップ5:KeySearch(11,11)
状態判定:Judge(22)nFUL,Judge(23)ZERO
ステップ6:KeySearch(11,22)
状態判定:Judge(44)FULL,Judge(45)ZERO
キー出力:Output 11−44
まず、ステップ1において、図19に示す最上位ルート(1)を、
ルートノード、
カレントノード、
として、キーサーチ関数
KeySearch(root_node(1),current_node(1))
を実行する。図18、および上記アルゴリズムの説明中では、
KeySearch(1,1)
として示している。
このキーサーチ関数の実行において、
カレントノード(1)の左下の接続ノードである左ノード(2)、カレントノード(1)の右下の接続ノードである右ノード(3)それぞれに属するリーフノードのリボーク状態を判定する。
図19に示す階層木から理解されるように、リボークノード42〜44は、左ノード(2)に属する。従って、状態判定結果は、
左ノード(2):ノンフルリボーク
右ノード(3):ゼロリボーク
となる。
なお、図18、および上記アルゴリズムの説明中では、
ゼロリボークを[ZERO]
ノンフルリボークを[nFUL]
フルリボークを[FUL]
と表記している。
ステップ1のキーサーチ関数の実行における状態判定結果は、
状態判定:Judge(2)nFUL,Judge(3)ZERO
となり、この場合、先に図17を参照して説明したように、キーサーチ関数の更新が行なわれ、次のキーサーチを実行する。この処理がステップ2となる。
キーサーチ関数の更新は、図17を参照して説明したように、
KeySearch(root_node,left_node)
とする更新処理であり、
ルートノード(1)、
左ノード(2)、
であるので、
ステップ2におけるキーサーチ関数は、
KeySearch(root_node(1),current_node(2))
となる。
すなわち、ステップ2では、
ルートノード(1)
カレントノード(2)
左ノード(4)
右ノード(5)
の設定でキーサーチ関数:KeySearch(1,2)
を実行する。
このステップ2におけるリボーク状態判定処理は、カレントノード(2)の左下の接続ノードである左ノード(4)、カレントノード(2)の右下の接続ノードである右ノード(5)それぞれに属するリーフノードのリボーク状態の判定を行なう。
図19に示す階層木から理解されるように、リボークノード42〜44は、右ノード(5)に属する。従って、状態判定結果は、
左ノード(4):ゼロリボーク
右ノード(5):ノンフルリボーク
となる。
ステップ2のキーサーチ関数の実行における状態判定結果は、
状態判定:Judge(4)ZERO,Judge(5)nFUL
となり、この場合、先に図17を参照して説明したように、キーサーチ関数の更新が行なわれ、次のキーサーチを実行する。この処理がステップ3となる。
キーサーチ関数の更新は、図17を参照して説明したように、
KeySearch(root_node,right_node)
とする更新処理であり、この時点で、
ルートノード(1)、
右ノード(5)、
であるので、
ステップ3におけるキーサーチ関数は、
KeySearch(root_node(1),current_node(5))
となる。
すなわち、ステップ3では、
ルートノード(1)
カレントノード(5)
左ノード(10)
右ノード(11)
の設定でキーサーチ関数:KeySearch(1,5)
を実行する。
このステップ3におけるリボーク状態判定処理は、カレントノード(5)の左下の接続ノードである左ノード(10)、カレントノード(5)の右下の接続ノードである右ノード(11)それぞれに属するリーフノードのリボーク状態の判定を行なう。
図19に示す階層木から理解されるように、リボークノード42〜44は、左ノード(10)、右ノード(11)に含まれている。従って、状態判定結果は、
左ノード(10):ノンフルリボーク
右ノード(11):ノンフルリボーク
となる。
ステップ3のキーサーチ関数の実行における状態判定結果は、
状態判定:Judge(10)nFUL,Judge(11)nFUL
となり、この場合、先に図17を参照して説明したように、所定条件を満足する場合にサブセットキーの追加が行なわれ、さらにキーサーチ関数の更新処理が実行される。
サブセットキーの追加は、
実行したキーサーチ関数、
KeySearch(root_node,current_node)
上記関数において、ルートノード(root_node)と、カレントノード(current_node)が一致していない場合にのみ実行される。この場合、
キー情報として、
(u−v)=(root−current)
を出力する。
本ステップ3では、
ルートノード(1)≠カレントノード(5)
であるので、
(u−v)=(root(1)−current(5))=(1−5)
を出力する。
この出力は、MKBに格納するメディアキーの暗号化鍵としてサブセットキーSk1−5が選択されたことを意味する。
さらに、キーサーチ関数の更新処理として、
KeySearch(left_node,left_node)
KeySearch(right_node,right_node)
これらの2つのキーサーチ関数を設定するキーサーチ更新が実行される。
すなわち、
ステップ4のキーサーチ:KeySearch(10,10)
ステップ5のキーサーチ:KeySearch(11,11)
を設定し、実行する。
ステップ4のキーサーチ:KeySearch(10,10)
このキーサーチでは、
ルートノード(10)
カレントノード(10)
左ノード(20)
右ノード(21)
の設定でキーサーチ関数:KeySearch(10,10)
を実行する。
このステップ4におけるリボーク状態判定処理は、カレントノード(10)の左下の接続ノードである左ノード(20)、カレントノード(10)の右下の接続ノードである右ノード(21)それぞれに属するリーフノードのリボーク状態の判定を行なう。
図19に示す階層木から理解されるように、リボークノード42,43は、右ノード(21)に含まれている。従って、状態判定結果は、
左ノード(20):ゼロリボーク
右ノード(21):フルリボーク
となる。
ステップ4のキーサーチ関数の実行における状態判定結果は、
状態判定:Judge(20)ZERO,Judge(21)FUL
となり、この場合、先に図17を参照して説明したように、サブセットキーの追加が実行される。この場合、
キー情報として、
(u−v)=(root−right)
を出力する。
すなわち、
(u−v)=(root−right)=(10−21)
を出力する。
この出力は、MKBに格納するメディアキーの暗号化鍵としてサブセットキーSk10−21が選択されたことを意味する。
ステップ5のキーサーチ関数:KeySearch(11,11)は、以下の設定で実行される。
ルートノード(11)
カレントノード(11)
左ノード(22)
右ノード(23)
この結果、状態判定結果は、
状態判定:Judge(22)nFUL,Judge(23)ZERO
となり、この場合、先に図17を参照して説明したように、キーサーチ関数の更新が行なわれる。
キーサーチ関数の更新は、図17を参照して説明したように、
KeySearch(root_node,left_node)
とする更新処理であり、
KeySearch(root_node(11),left_node(22))
となる。
ステップ6では、この更新キーサーチ関数を実行する。
すなわち、
KeySearch(root_node(11),current_node(22))を以下の設定で実行する。
ルートノード(11)
カレントノード(22)
左ノード(44)
右ノード(45)
このステップ6におけるリボーク状態判定処理は、図19に示す階層木から理解されるように、リボークノード44は、左ノード(44)に含まれている。従って、状態判定結果は、
左ノード(44):フルリボーク
右ノード(45):ゼロリボーク
となる。
ステップ6のキーサーチ関数の実行における状態判定結果は、
状態判定:Judge(44)FUL,Judge(45)ZERO
となり、この場合、サブセットキーの追加が行なわれる。
サブセットキーの追加は、
(u−v)=(root−left)
を出力する。
本ステップ6では、
(u−v)=(root(11)−current(44))=(11−44)
を出力する。
この出力は、MKBに格納するメディアキーの暗号化鍵としてサブセットキーSk11−44が選択されたことを意味する。
このようにして、処理が終了し、
選択されたサブセットキー情報としての(u−v)の値は、
(u−v)=(1−5),(10−21),(11−44)
となり、MKBに格納するメディアキーの暗号化鍵として、
サブセットキー:Sk1−5
サブセットキー:Sk10−21
サブセットキー:Sk11−44
が決定される。
なお、実際のキーサーチ関数の実行アルゴリズムにおいては、サブセットキー情報としての(u−v)の値:(u−v)=(1−5),(10−21),(11−44)
これらの値が直接出力されるものではなく、
uの値を示す[uMask]
vの値を示す[uv value]
これらのデータの組が出力される。すなわち、先に図19を参照して説明したノードナンバーを適用したキー関数の実行処理に従った演算によって、サブセットキー情報としての(u−v)の値を導くことが可能な
uの値を示す[uMask]
vの値を示す[uv value]
これらの情報が出力される。
図20を参照して、
(u−v)=(1−5),
(u−v)=(10−21),
(u−v)=(11−44)
これらの各u,v値に対応する[uMask]、[uv value]の値について説明する。
例えば出力:(u−v)=(1−5),
に対応する[uMask]、[uv value]は、以下のようになる。
uMask :1111・・・11 1100 0000
uv value:xxxx・・・xx xx01 1000
各値は、ノードナンバーと同様、32ビットである。
[uMask]の値は、(u−v)の値のuの階層を示す。すなわち、LSB側からの0の数が木構造における最下層(リーフノード)からの階層数に相当する。この場合、
0の数=6
であり、
最下層から6番目の層が(u−v)のuの設定階層である。図19の木構造においては、ルートノード(1)が選択される。
また、[uv value]の値は、(u−v)の値のvのノードナンバーを示す。この例では、[uv value]の値は、
uv value:xxxx・・・xx xx01 1000
であり、これは、図19に示すノード(5)のノードナンバーである。
このように、
[uMask]:uの属する階層は、リーフノードから上位6番目、
[uv value]:vのノードナンバーはノード(5)に対応、
これらの情報が導かれ、結果として、
(u−v)=(1−5)
が算出される。
また、出力:(u−v)=(10−21),
に対応する[uMask]、[uv value]は、以下のようになる。
uMask :1111・・・11 1111 1000
uv value:xxxx・・・xx xx01 0110
[uMask]の値は、(u−v)の値のuの階層を示す。この場合、
0の数=3
であり、
最下層から3番目の層が(u−v)のuの設定階層である。図19の木構造においては、ノード(8〜15)が選択される。
また、[uv value]の値は、(u−v)の値のvのノードナンバーを示す。この例では、[uv value]の値は、
uv value:xxxx・・・xx xx01 0110
であり、これは、図19に示すノード(21)のノードナンバーである。
このように、
[uMask]:uの属する階層は、リーフノードから上位3番目、
[uv value]:vのノードナンバーはノード(21)に対応、
これらの情報が導かれ、ノード21に接続されるリーフノードから上位3番目のノードは、ノード(10)であるので、結果として、
(u−v)=(10−21)
が算出される。
また、出力:(u−v)=(11−44),
に対応する[uMask]、[uv value]は、以下のようになる。
uMask :1111・・・11 1111 1000
uv value:xxxx・・・xx xx01 1001
[uMask]の値は、(u−v)の値のuの階層を示す。この場合、
0の数=3
であり、
最下層から3番目の層が(u−v)のuの設定階層である。図19の木構造においては、ノード(8〜15)が選択される。
また、[uv value]の値は、(u−v)の値のvのノードナンバーを示す。この例では、[uv value]の値は、
uv value:xxxx・・・xx xx01 1001
であり、これは、図19に示すノード(44)のノードナンバーである。
このように、
[uMask]:uの属する階層は、リーフノードから上位3番目、
[uv value]:vのノードナンバーはノード(44)に対応、
これらの情報が導かれ、ノード44に接続されるリーフノードから上位3番目のノードは、ノード(11)であるので、結果として、
(u−v)=(11−44)
が算出される。
次に、図21に示すフローチャートを参照して、上述したサブセットキー情報の生成処理のシーケンスについて説明する。図21に示す処理は、例えばPC等の情報処理装置によって実行される。例えば、図21に示すフローに従った処理シーケンスを規定したプログラムをCPU等によって構成されるデータ処理部において実行することでサブセットキー情報を出力する。
サブセットキー情報は、特定のリボークデバイスにおいてMKBからメディアキー(Km)を取得不可能とするためのMKBに格納されるメディアキーの暗号化に適用するサブセットキーを指定する情報である。具体的には、上述した
MKBの暗号化に適用するサブセットキー:Sku−vの、
uの値を示す[uMask]
vの値を示す[uv value]
これらのデータを生成して出力する。
まず、ステップS101において、デバイスリスト、リボークデバイスリストを入力する。デバイスリストは、例えば図19に示すツリー構成情報を有するデバイスリストであり、最下段のリーフノードに個々のテバイスが対応付けられたリストである。さらにルートノードからリーフノードに至る各ノードには、ノードナンバー、例えば、図19を参照して説明した32ビットのノードナンバーが対応付けられている。リボークデバイスリストは、リボーク対象となるデバイスの情報であり、具体的には、各リボークデバイス対応のノードナンバー情報のリストである。
ステップS102以下において、前述したキーサーチ関数を実行する。すなわち、
KeySearch(root_node,current_node)
上記キーサーチ関数である。
まず、ステップS102において、最上位のルートノードを、
初期ルートノード、
初期カレントノード、
とする初期設定を実行して、以下のキーサーチ関数、
KeySearch(root_node,current_node)
を実行する。
ステップS103では、カレントノードに接続された2つの下位ノードを含む領域を解析対象スコープとして設定し、カレントノードの左下の接続ノードを左ノード(left node)、カレントノードの右下の接続ノードを右ノード(right node)として、これらの左ノード(left node)と右ノード(right node)のそれぞれに属するリーフノードのリボーク状態を判定する。
具体的には、カレントノードの左ノード(left node)と右ノード(right node)のそれぞれに属するリーフノードが、
(a)リボークデバイスが存在しないゼロリボーク(zero revoked)
(b)全てのデバイス=リボークではないが1つ以上リボークがあるノンフルリボーク(non−full revoke)
(c)全てのデバイス=リボークであるフルリボーク(full revoke)
これらのいずれのリボーク状況であるかを判別する。
ステップS104において、カレントノードの左ノード(left node)と右ノード(right node)のそれぞれに属するリーフノードのリボーク状況(a)〜(c)の組み合わせに応じて、先に図17を参照して説明した処理、すなわち、
(1)MKBに格納する暗号化に適用すべきサブセットキーを定義する情報としてのuv値、uマスク値を出力処理、
(2)キーサーチ関数の更新処理、
少なくともいずれかの処理を実行する。
ステップS105では、キーサーチ関数の更新処理が実行されたか否かを判定し、キーサーチ関数の更新が実行された場合は、ステップS103に戻り、更新されたキーサーチ関数を実行する。すなわち、更新されたカレントノードの左ノード(left node)と右ノード(right node)のそれぞれに属するリーフノードのリボーク状況の判定、さらに、ステップS104において、図17に示すリボーヘク滋養共の組み合わせに応じた処理、すなわち、
(1)MKBに格納する暗号化に適用すべきサブセットキーを定義する情報としてのuv値、uマスク値を出力、
(2)カレントノードの更新処理としてのキーサーチ関数の更新、
少なくともいずれかの処理を実行する。
なお、キーサーチ関数の更新においては、先に図17を参照して説明したように、複数のキーサーチ関数を実行するように設定される場合もある。例えば、図17に示すノンフルリボーク−ノンフルリボークの組み合わせなどである。この場合は、これらの複数のキーサーチ関数を順次、または並列に実行する。
ステップS105において、キーサーチ関数の更新が実行されなかったと判定された場合は、ステップS106に進み、これまでのキーサーチ関数の実行によって出力されたMKBに格納する暗号化に適用すべきサブセットキーを定義する情報としてのuv値、uマスク値をMKBに格納するメディアキー(Km)の暗号化に適用するサブセットキー情報として出力して処理を終了する。
[4.検証処理を実行する情報処理装置の構成および処理]
次に、上述したサブセットキー情報の生成処理を適用したMKBの生成処理を実行してシミュレーションとしての検証処理を実行する情報処理装置の構成について、図22を参照して説明する。
図22は、例えばPC等の情報処理装置によって構成可能であり、以下に説明する処理を実行させるプログラムを制御部(CPU)の制御の下に実行させ、所定の必要情報を入力することで検証処理を行なう。図22に示す構成によって実行する処理の概要は以下の通りである。
仮想的な複数のデバイスと、各デバイスに対応するデバイスキーセットを設定する。
設定デバイス中からランダムにリボークデバイスを選択する。
上述したサブセットキー情報の生成処理を適用したMKBの生成処理を実行する。
リボークデバイスのデバイスキーによるMKB処理を行い、メディアキーの取得可否を検証する。
ノンリボークデバイスのデバイスキーによるMKB処理を行い、メディアキーの取得可否を検証する。
リボークデバイスでは、MKBからのメディアキーの取得に失敗し、ノンリボークデバイスでは、MKBからのメディアキーの取得に成功すれば、正しいMKBの生成、すなわち正確なサブセットキーの選択が実行されたことが検証される。
図22の構成について説明する。サブセットキー情報生成部421は、デバイスリスト401、およびリボークデバイスリスト402を入力して、上述した処理、すなわち、図16〜図21を参照して説明したMKBに格納するメディアキーの暗号化に適用するサブセットキーの選択アルゴリズムを実行して、サブセットキー情報を生成する。サブセットキー情報生成部421の生成するサブセットキー情報は、上述した
サブセットキー:Sku−vの、
uの値を示す[uMask]
vの値を示す[uv value]
これらのデータの組を生成して出力する。
すなわち、デバイスリスト401に基づいて、各デバイスを最下段ノード(リーフ)として設定した2分岐ツリーを構成し、ランダムに選択したリボークデバイスからなるリボークデバイスリスト402のデバイス情報に基づいて、先に図17を参照してルールに従って、キーサーチ関数を実行し、MKBに格納する暗号化に適用すべきサブセットキーを定義する情報としてのuv値、uマスク値を出力する。これが、図22に示すサブセットキー情報(uMask,uv value)403である。
サブセットキー情報(uMask,uv value)403は、MKB生成部422に入力され、MKB生成部422においてMKBの生成が行われる。MKB生成部422には、MKBに格納するメディアキー(Km)と、署名鍵としての秘密鍵(Kpriv)を含む鍵情報405が入力される。
MKB生成部422は、鍵情報405に含まれるメディアキー(Km)に対して、サブセットキー情報(uMask,uv value)403によって決定されるサブセットキー:Sku−vを適用した暗号化処理を行なう。通常、サブセットキー情報(uMask,uv value)403には、複数のu,vの組データによって構成され、MKB生成部422は、各(u,v)の組に応じたサブセットキー:Sku−vを適用した暗号化処理を行って複数の暗号化キーデータ:Enk(Sku−v,Km)を生成する。Enk(Sku−v,Km)は、メディアキー(Km)をサブセットキー:Sku−vを適用して暗号化したデータを示す。
さらに、少なくとも1つ以上の暗号化キーデータ:Enk(Sku−v,Km)を含むデータに対して、鍵情報405に含まれる秘密鍵(Kpriv)を適用した電子署名を実行してMKB406を完成させ、データ検証処理部424に入力する。
また、サブセットキー情報生成部421は、検証処理対象とするノードをランダムに選択して、検証デバイスノードリスト404を生成する。検証デバイスノードリスト404は、デバイスキーセット生成部423に入力され、予め各デバイス対応のデバイスキーが記録されたデバイスキーファイル407から、検証デバイスに対応するデバイスキーを選択して、デバイスキーセット情報408を生成して、データ検証処理部424に入力する。なお、検証デバイスは、リボークデバイスと、ノンリボークデバイスを含む複数のデバイスとすることが好ましい。
データ検証処理部424は、
MKB406と、
検証デバイスに対応するデバイスキーセット408、
これらのデータを入力する。
データ検証処理部424では、
検証デバイスのデバイスキーを適用してMKBの処理を実行し、MKBに格納されたメディアキー(Km)の取得処理を実行する。
例えば、複数の検証デバイスa,b,cが設定された場合、
(1)検証デバイスaのデバイスキーセットを適用したMKB処理によるメディアキー(Km)の取得処理
(2)検証デバイスbのデバイスキーセットを適用したMKB処理によるメディアキー(Km)の取得処理
(3)検証デバイスcのデバイスキーセットを適用したMKB処理によるメディアキー(Km)の取得処理
これらの処理を順次実行する。
これらの処理によって、
リボークデバイスにおいては、デバイスキーセットを適用したMKB処理によるメディアキー(Km)の取得処理に失敗し、
ノンリボークデバイスにおいては、デバイスキーセットを適用したMKB処理によるメディアキー(Km)の取得処理に成功、
これらの検証結果410が取得されれば、正しいMKBの生成、すなわち、正確なサブセットキーの選択によるMKB生成が行われたことが確認される。
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
例えば、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
以上、説明したように、本発明の一実施例の構成によれば、階層木構成を適用して特定の選択デバイスに配付されたデバイスキーを適用した場合にのみ秘密情報の取得を可能とし、排除デバイスであるリボークデバイスに配付されたデバイスキーを適用した場合には秘密情報の取得ができない構成を持つ暗号情報ブロック、すなわちMKBの生成に適用する暗号化キーの決定処理を効率的にかつ確実に実行することが可能となる。すなわち、Subset Difference(SD)方式を適用したシステムにおいて、階層木の上位ノードを処理開始点としてカレントノードを設定し、カレントノードの直下の左ノードと右ノードのそれぞれに属するリーフノードのリボーク状況を判定し、リボーク状況の判定結果に応じて予め規定した処理を実行する。この処理アルゴリズムの実行によりMKBの生成に適用する暗号鍵としてのサブセットキーの決定処理を効率的に確実に行なうことが可能となる。
情報記録媒体の格納データの例について説明する図である。 コンテンツ管理ユニット(CPSユニット)の設定に基づくコンテンツ管理構成について説明する図である。 コンテンツ管理ユニット(CPSユニット)として記録されたコンテンツの再生シーケンスについて説明する図である。 基本的な階層木構造を適用した暗号データ提供処理構成について説明する図である。 階層木の中に部分木としてのサブセットを定義したESD(Explicit Subset Difference)方式について説明する図である。 階層木において設定可能なサブセットの例について説明する図である。 階層木において設定可能なサブセットの例について説明する図である。 階層木において設定可能なサブセットの例について説明する図である。 階層木において設定可能なサブセットの例について説明する図である。 階層木において設定可能なサブセットの例について説明する図である。 リボークデバイスを設定した場合におけるMKBにおけるメディアキー[Mk]の暗号化構成および、注目デバイス(36)におけるメディアキーの取得処理例について説明する図である。 サブセットルートノード=2の設定となるサブセットを利用して、MKBの格納鍵の暗号化処理を実行した例について説明する図である。 サブセットルートノード=4の設定としたサブセットを利用して、MKBの格納鍵の暗号化処理を実行した例について説明する図である。 リボークノード=44,45とした場合のMKBおよびデバイスキーセットについて説明する図である。 注目ノード[リーフノード36]自身がリボークされた場合のMKBの格納鍵の暗号化処理例について説明する図である。 本発明の一実施例に係る情報処理装置において実行するキー検索アルゴリズムの概要について説明する図である。 本発明の一実施例に係る情報処理装置において実行するキーサーチ関数の具体的な処理例について説明する図である。 具体的なリボークデバイスの設定に基づくキーサーチ関数の処理例について説明する図である。 本発明の一実施例に係る情報処理装置において実行するキー算出アルゴリズムにおいて入力するリボークリストとして適用するノードナンバーの具体例について説明する図である。 各u,v値に対応する[uMask]、[uv value]の値について説明する図である。 本発明の一実施例に係る情報処理装置において実行するサブセットキー情報の生成処理のシーケンスについて説明するフローチャートを示す図である。 サブセットキー情報の生成処理を適用したMKBの生成処理を実行してシミュレーションとしての検証処理を実行する情報処理装置の構成について説明する図である。
符号の説明
100 情報記録媒体
101 暗号化コンテンツ
102 MKB(Media Key Block)
103 ユニット鍵ファイル
104 バインディングナンス(Binding Nonce)
105 利用制御情報
181 デバイスキー
182 コンテンツ
301 スコープ
302 スコープ
401 デバイスリスト
402 リボークデバイスリスト
403 サブセットキー情報
404 検証デバイスリスト
405 鍵情報
406 MKB
407 デバイスキーファィル
408 デバイスキーセット情報
410 検証結果
421 サブセットキー情報生成部
422 MKB生成部
423 デバイスキーセット生成部
424 データ検証処理部

Claims (13)

  1. 階層木構成に基づく暗号化秘密情報の提供構成を適用して特定の選択デバイスに配付されたデバイスキーを適用した場合にのみ秘密情報の取得を可能とし、排除デバイスであるリボークデバイスに配付されたデバイスキーを適用した場合には前記秘密情報の取得ができない設定とした暗号情報ブロックの生成に適用する暗号化キーの決定処理を実行する情報処理装置であり、
    キー情報生成部において、
    階層木の上位ノードを処理開始点としてカレントノードを設定し、該カレントノードの直下の左ノードと右ノードのそれぞれに属するリーフノードのリボーク状況を判定し、該リボーク状況の判定結果に応じて予め設定された処理を実行して、前記暗号情報ブロックの生成に適用する暗号化キーの決定処理を実行する構成を有することを特徴とする情報処理装置。
  2. 前記キー情報生成部は、
    リボーク状況の判定処理として、カレントノードの直下の左ノードと右ノードのそれぞれに属するリーフノードのリボーク状況が、
    (a)リボークデバイスが存在しないゼロリボーク(zero revoked)
    (b)全てのデバイスがリボークデバイスではないが1つ以上リボークデバイスがあるノンフルリボーク(non−full revoke)
    (c)全てのデバイスがリボークデバイスであるフルリボーク(full revoke)
    上記(a)〜(c)のいずれのリボーク状況であるかを判別し、
    前記左ノードと右ノードそれぞれに属するリーフノードのリボーク状況の組み合わせに応じて、
    (1)前記暗号情報ブロックの生成に適用する暗号化キーを決定するキー定義情報の出力処理、
    (2)キーサーチ関数の更新処理、
    上記(1)、(2)の少なくともいずれかの処理を実行して、最終的に前記暗号情報ブロックの生成に適用する暗号化キーの決定処理を実行する構成を有することを特徴とする請求項1に記載の情報処理装置。
  3. 前記情報処理装置は、さらに、
    前記キー情報生成部の生成した暗号化キーを適用した暗号化データを格納した暗号情報ブロックを生成する暗号情報ブロック生成部と、
    検証対象デバイス対応のデバイスキーセットを生成するデバイスキーセット生成部と、
    前記暗号情報ブロック生成部の生成した暗号情報ブロック、および前記デバイスキーセット生成部の生成した検証対象デバイス対応のデバイスキーセットを入力し、入力デバイスキーセットに基づく暗号情報ブロックの処理を実行して秘密情報の取得の可否を検証するデータ検証処理部と、
    を有することを特徴とする請求項1に記載の情報処理装置。
  4. 前記暗号情報ブロックは、秘密情報としてメディアキーを前記暗号化キーによって暗号化したデータを格納したMKB(Media Key Block)であり、前記暗号情報ブロック生成部は、前記キー情報生成部の生成した暗号化キーを適用してメディアキーの暗号化キーデータを生成して、該暗号化キーデータを秘密情報として格納したMKBを生成する構成であることを特徴とする請求項3に記載の情報処理装置。
  5. 前記階層木は、ESD(Explicit Subset Difference)方式の階層木であり、
    前記キー情報生成部は、
    前記ESD方式において規定されるサブセットキーから、前記暗号情報ブロックの生成に適用する暗号化キーに適用するサブセットキーを決定する処理を実行する構成であることを特徴とする請求項1に記載の情報処理装置。
  6. 前記キー情報生成部は、
    前記ESD方式において規定されるサブセットキー:SKu−vを決定するパラメータであるサブセットルートの値:uと、リボークルートの値:vの各値を決定する処理を実行する構成であることを特徴とする請求項5に記載の情報処理装置。
  7. 情報処理装置において、階層木構成に基づく暗号化秘密情報の提供構成を適用して特定の選択デバイスに配付されたデバイスキーを適用した場合にのみ秘密情報の取得を可能とし、排除デバイスであるリボークデバイスに配付されたデバイスキーを適用した場合には前記秘密情報の取得ができない設定とした暗号情報ブロックの生成に適用する暗号化キーの決定処理を実行する情報処理方法であり、
    キー情報生成部において、階層木の上位ノードを処理開始点としてカレントノードを設定し、該カレントノードの直下の左ノードと右ノードのそれぞれに属するリーフノードのリボーク状況を判定するリボーク状況判定ステップと、
    前記キー情報生成部において、前記リボーク状況の判定結果に応じて予め設定された処理を実行して、前記暗号情報ブロックの生成に適用する暗号化キーの決定処理を実行するキー情報生成ステップと、
    を実行することを特徴とする情報処理方法。
  8. 前記リボーク状況判定ステップは、
    リボーク状況の判定処理として、カレントノードの直下の左ノードと右ノードのそれぞれに属するリーフノードのリボーク状況が、
    (a)リボークデバイスが存在しないゼロリボーク(zero revoked)
    (b)全てのデバイスがリボークデバイスではないが1つ以上リボークデバイスがあるノンフルリボーク(non−full revoke)
    (c)全てのデバイスがリボークデバイスであるフルリボーク(full revoke)
    上記(a)〜(c)のいずれのリボーク状況であるかを判別するステップであり、
    前記キー情報生成ステップは、
    前記左ノードと右ノードそれぞれに属するリーフノードのリボーク状況の組み合わせに応じて、
    (1)前記暗号情報ブロックの生成に適用する暗号化キーを決定するキー定義情報の出力処理、
    (2)キーサーチ関数の更新処理、
    上記(1)、(2)の少なくともいずれかの処理を実行して、最終的に前記暗号情報ブロックの生成に適用する暗号化キーの決定処理を実行するステップであることを特徴とする請求項7に記載の情報処理方法。
  9. 前記情報処理方法は、さらに、
    暗号情報ブロック生成部において、前記キー情報生成ステップにおいて生成された暗号化キーを適用した暗号化データを格納した暗号情報ブロックを生成する暗号情報ブロック生成ステップと、
    デバイスキーセット生成部において、検証対象デバイス対応のデバイスキーセットを生成するデバイスキーセット生成ステップと、
    データ検証処理部において、前記暗号情報ブロック、および前記デバイスキーセットを入力し、入力デバイスキーセットに基づく暗号情報ブロックの処理を実行して秘密情報の取得の可否を検証するデータ検証処理ステップと、
    を実行することを特徴とする請求項7に記載の情報処理方法。
  10. 前記暗号情報ブロックは、秘密情報としてメディアキーを前記暗号化キーによって暗号化したデータを格納したMKB(Media Key Block)であり、
    前記暗号情報ブロック生成ステップは、
    前記キー情報生成部の生成した暗号化キーを適用してメディアキーの暗号化キーデータを生成して、該暗号化キーデータを秘密情報として格納したMKBを生成するステップであることを特徴とする請求項9に記載の情報処理方法。
  11. 前記階層木は、ESD(Explicit Subset Difference)方式の階層木であり、
    前記キー情報生成ステップは、
    前記ESD方式において規定されるサブセットキーから、前記暗号情報ブロックの生成に適用する暗号化キーに適用するサブセットキーを決定する処理を実行するステップであることを特徴とする請求項7に記載の情報処理方法。
  12. 前記キー情報生成ステップは、
    前記ESD方式において規定されるサブセットキー:SKu−vを決定するパラメータであるサブセットルートの値:uと、リボークルートの値:vの各値を決定する処理を実行するステップであることを特徴とする請求項11に記載の情報処理方法。
  13. 情報処理装置において、階層木構成に基づく暗号化秘密情報の提供構成を適用して特定の選択デバイスに配付されたデバイスキーを適用した場合にのみ秘密情報の取得を可能とし、排除デバイスであるリボークデバイスに配付されたデバイスキーを適用した場合には前記秘密情報の取得ができない設定とした暗号情報ブロックの生成に適用する暗号化キーの決定処理を実行させるコンピュータ・プログラムであり、
    キー情報生成部に、階層木の上位ノードを処理開始点としてカレントノードを設定し、該カレントノードの直下の左ノードと右ノードのそれぞれに属するリーフノードのリボーク状況を判定させるリボーク状況判定ステップと、
    前記キー情報生成部に、前記リボーク状況の判定結果に応じた予め定めた処理を実行して、前記暗号情報ブロックの生成に適用する暗号化キーの決定処理を実行させるキー情報生成ステップと、
    を実行させることを特徴とするコンピュータ・プログラム。
JP2006273951A 2006-10-05 2006-10-05 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム Pending JP2008092514A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006273951A JP2008092514A (ja) 2006-10-05 2006-10-05 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006273951A JP2008092514A (ja) 2006-10-05 2006-10-05 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム

Publications (1)

Publication Number Publication Date
JP2008092514A true JP2008092514A (ja) 2008-04-17

Family

ID=39376134

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006273951A Pending JP2008092514A (ja) 2006-10-05 2006-10-05 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム

Country Status (1)

Country Link
JP (1) JP2008092514A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013026747A (ja) * 2011-07-19 2013-02-04 Toshiba Corp 情報処理装置、サーバ装置およびプログラム
JP2015084562A (ja) * 2014-12-11 2015-04-30 株式会社東芝 サーバ装置およびプログラム
JP2015122799A (ja) * 2015-02-19 2015-07-02 株式会社東芝 サーバ装置、通信方法、およびプログラム
US10467384B2 (en) 2016-05-18 2019-11-05 International Business Machines Corporation Subset-difference broadcast encryption with blacklisting

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013026747A (ja) * 2011-07-19 2013-02-04 Toshiba Corp 情報処理装置、サーバ装置およびプログラム
US8929541B2 (en) 2011-07-19 2015-01-06 Kabushiki Kaisha Toshiba Information processing apparatus, server apparatus, and computer program product
US9876640B2 (en) 2011-07-19 2018-01-23 Kabushiki Kaisha Toshiba Information processing apparatus, server apparatus, and computer program product
US10805076B2 (en) 2011-07-19 2020-10-13 Kabushiki Kaisha Toshiba Information processing apparatus, server apparatus, and computer program product
JP2015084562A (ja) * 2014-12-11 2015-04-30 株式会社東芝 サーバ装置およびプログラム
JP2015122799A (ja) * 2015-02-19 2015-07-02 株式会社東芝 サーバ装置、通信方法、およびプログラム
US10467384B2 (en) 2016-05-18 2019-11-05 International Business Machines Corporation Subset-difference broadcast encryption with blacklisting
US11526583B2 (en) 2016-05-18 2022-12-13 International Business Machines Corporation Subset-difference broadcast encryption with blacklisting

Similar Documents

Publication Publication Date Title
EP1841120B1 (en) Information processing apparatus, information recording medium manufacturing apparatus, and information recording medium
JP4882636B2 (ja) 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
JP4655951B2 (ja) 情報処理装置、情報記録媒体製造装置、情報記録媒体、および方法、並びにコンピュータ・プログラム
US7746738B2 (en) Data processing method, information recording medium manufacturing management system, recording data generation apparatus and method, and computer program
JP4979312B2 (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
CN102568518B (zh) 处理信息的方法和装置 、重放方法和装置以及在信息记录介质上进行记录的方法和装置
US20080152134A1 (en) Efficient revocation of receivers
WO2008138746A1 (en) System, method, and service for performing unified broadcast encryption
JP2004295373A (ja) 情報記録媒体、情報処理装置、情報記録媒体製造装置、および方法、並びにコンピュータ・プログラム
JP4140624B2 (ja) 情報処理装置、情報記録媒体製造装置、情報記録媒体、および方法、並びにコンピュータ・プログラム
JP2008092514A (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP4161859B2 (ja) 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
JP2004229128A (ja) 暗号データ配信システム、および情報処理装置、情報処理方法、並びにコンピュータ・プログラム
JP2007025913A (ja) 情報処理装置、情報記録媒体製造装置、情報記録媒体、および方法、並びにコンピュータ・プログラム
JP4635459B2 (ja) 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム
US20050234949A1 (en) Data processing method, program thereof, device thereof, and recording medium
JP5252060B2 (ja) 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
JP4941611B2 (ja) 情報処理装置、および方法、並びにコンピュータ・プログラム
US10713336B2 (en) Information processing device and information processing method
WO2017038493A1 (ja) 情報処理装置、および情報処理方法、並びにプログラム
JP2013146014A (ja) 情報処理装置、情報記憶装置、情報処理システム、および情報処理方法、並びにプログラム