JP2005252916A - 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム - Google Patents
情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム Download PDFInfo
- Publication number
- JP2005252916A JP2005252916A JP2004063477A JP2004063477A JP2005252916A JP 2005252916 A JP2005252916 A JP 2005252916A JP 2004063477 A JP2004063477 A JP 2004063477A JP 2004063477 A JP2004063477 A JP 2004063477A JP 2005252916 A JP2005252916 A JP 2005252916A
- Authority
- JP
- Japan
- Prior art keywords
- node
- node key
- key
- ciphertext
- tree
- 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
Links
Images
Abstract
【課題】 木構造を適用した暗号文提供構成において、暗号文復号を行なう機器に格納すべき情報量を削減可能とした構成を提供する。
【解決手段】 階層木を構成する各ノードに対応するノードキーの設定において、上位ノードキーの値を、下位ノードキーの値に一方向性関数Fを適用して算出可能な値とした。階層木の末端ノード対応の受信機には、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノードキー中、一方向性関数Fに基づいて算出可能なノードキーを除く最小限のノードキーを提供する。受信機は、処理対象の暗号文の適用ノードキーが、保持ノードキーでない場合、保持ノードキーに対して一方向性関数Fを適用し、暗号文の適用ノードキーを算出することが可能となる。本構成により、各受信機が安全に保持すべき情報量(ノードキー)の減少が実現される。
【選択図】 図10
【解決手段】 階層木を構成する各ノードに対応するノードキーの設定において、上位ノードキーの値を、下位ノードキーの値に一方向性関数Fを適用して算出可能な値とした。階層木の末端ノード対応の受信機には、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノードキー中、一方向性関数Fに基づいて算出可能なノードキーを除く最小限のノードキーを提供する。受信機は、処理対象の暗号文の適用ノードキーが、保持ノードキーでない場合、保持ノードキーに対して一方向性関数Fを適用し、暗号文の適用ノードキーを算出することが可能となる。本構成により、各受信機が安全に保持すべき情報量(ノードキー)の減少が実現される。
【選択図】 図10
Description
本発明は、情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラムに関する。さらに、詳細には、階層木構造を適用したブロードキャストエンクリプション方式において現在知られているComplete Subtree方式(CS方式)に対して下位ノードキーから上位ノードキーを一方向性関数によって算出可能な構成とした一方向木を適用することにより、受信機の格納鍵情報量を削減し効率的でセキュアな情報配信を実現する情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラムに関する。
昨今、音楽等のオーディオデータ、映画等の画像データ、ゲームプログラム、各種アプリケーションプログラム等、様々なソフトウエアデータ(以下、これらをコンテンツ(Content)と呼ぶ)が、インターネット等のネットワークを介して、あるいはCD(Compact Disc)、DVD(Digital Versatile Disk)、MD(Mini Disk)等の情報記録媒体(メディア)を介して流通している。これらの流通コンテンツは、ユーザの所有するPC(Personal Computer)やプレーヤ、あるいはゲーム機器等、様々な情報処理装置において再生され利用される。
音楽データ、画像データ等、多くのコンテンツは、一般的にその作成者あるいは販売者に頒布権等が保有されている。従って、これらのコンテンツの配布に際しては、一定の利用制限、すなわち、正規なユーザに対してのみ、コンテンツの利用を許諾し、許可のない複製等が行われないようにする構成をとるのが一般的となっている。
特に、近年においては、情報をデジタル的に記録する記録装置や記憶媒体が普及しつつある。このようなデジタル記録装置および記憶媒体によれば、例えば画像や音声を劣化させることなく記録、再生を繰り返すことが可能であり、不正コピーコンテンツのインターネットを介した配信や、CD−R等の記録媒体に対する不正コピーという問題が発生している。
このようなコンテンツの不正利用を防止する1つの方式として、コンテンツあるいは暗号化コンテンツを復号するための鍵を暗号化して配布し、特定の正規ユーザまたは正規デバイスにおいてのみ配布データの復号を可能としたシステムがある。例えばブロードキャストエンクリプション(Broadcast Encryption)方式の一態様である階層型木構造を適用した構成が知られている。
階層型木構造を適用した暗号鍵等の暗号データ提供処理について、図を参照して説明する。
図1に示す階層型木構造は2分木構造を用いており、その最下層がリーフ(葉)と呼ばれ、頂点、各分岐部およびリーフを含む部分をノードと称する。なお、頂点をルート、あるいはルートノードと呼ぶ。図1に示す2分木階層型木構造において、リーフは8〜15、ノードは1〜15、ルートは1である。
この2分木階層型木構造におけるリーフ8〜15にコンテンツの利用機器としての再生機、受信機等の情報処理装置を1つずつ割り当てる。
また、木の各ノード(リーフを含む)1〜15にそれぞれノードキーを1つずつ割り当てる。リーフ8〜15に割り当てるノードキーはリーフキーと呼ばれる場合もある。
リーフに対応する各情報処理装置には、対応するリーフからルートまでの経路にあるノードに割り当てられたノードキーが与えられる。図1の構成では、リーフ8から15までに割り当てられた8台の情報処理装置があり、ノード1から15までにそれぞれノードキーが割り当てられており、リーフ8に対応する情報処理装置101には、ノード1,2,4,8に割り当てられた4個のノードキーが与えられる。また、リーフ12に対応する情報処理装置102には、ノード1,3,6,12に割り当てられた4個のノードキーが与えられる。各情報処理装置は、これらのノードキーを安全に保管する。
このノードキーの配布処理を伴うセッティングを用いて、選択した情報処理装置のみが取得可能な情報を送信する方法を図2を参照して説明する。たとえば、特定の音楽、画像データ等のコンテンツを暗号化した暗号化コンテンツをブロードキャスト配信、あるいはDVD等の記録媒体に格納して誰でも取得可能な状態で流通させ、その暗号化コンテンツを復号するための鍵(コンテンツキーKc)を特定のユーザ、すなわち正規なコンテンツ利用権を持つユーザまたは情報処理装置にのみ提供する構成を想定する。
図2に示すリーフ14に割り当てられた情報処理装置を不正な機器として、排除(リボーク)し、それ以外の情報処理装置が正規な情報処理装置であるとする。この場合、リーフ14に割り当てられた情報処理装置ではコンテンツキーKcを取得できないが、他の情報処理装置ではコンテンツキーKcを取得できる暗号文を生成して、その暗号文をネットワークを介してあるいは記録媒体に格納して配布する。
この場合、リボーク(排除)される情報処理装置が持つノードキー(図2では×印で表現)以外のノードキーのうち、できるだけ多数の情報処理装置に共有されているもの、すなわち木の上部にあるものをいくつか用いて、コンテンツキーを暗号化して送信すればよい。
図2に示す例では、ノード2,6,15のノードキーを用いて、コンテンツキーKcを暗号化した暗号文のセットを生成して提供する。すなわち、
E(NK2,Kc),E(NK6,Kc),E(NK15,Kc)
の暗号文を生成して、ネットワーク配信あるいは記録媒体に格納して提供する。なお、E(A,B)はデータBを鍵Aで暗号化したデータを意味する。またNKnは、図に示す第n番のノードキーを意味する。従って、上記式は、
コンテンツキーKcをノードキーNK2で暗号化した暗号化データE(NK2,Kc)と、コンテンツキーKcをノードキーNK6で暗号化した暗号化データE(NK6,Kc)と、コンテンツキーKcをノードキーNK15で暗号化した暗号化データE(NK15,Kc)と、を含む3つの暗号文のセットであることを意味している。
E(NK2,Kc),E(NK6,Kc),E(NK15,Kc)
の暗号文を生成して、ネットワーク配信あるいは記録媒体に格納して提供する。なお、E(A,B)はデータBを鍵Aで暗号化したデータを意味する。またNKnは、図に示す第n番のノードキーを意味する。従って、上記式は、
コンテンツキーKcをノードキーNK2で暗号化した暗号化データE(NK2,Kc)と、コンテンツキーKcをノードキーNK6で暗号化した暗号化データE(NK6,Kc)と、コンテンツキーKcをノードキーNK15で暗号化した暗号化データE(NK15,Kc)と、を含む3つの暗号文のセットであることを意味している。
上記3つの暗号文を作り、例えば同報通信路を用いて全情報処理装置に送信すれば、リボーク対象でない情報処理装置(図2示すリーフ8〜13および15に対応する情報処理装置)はいずれかの暗号文を自分が持つノードキーで復号することが可能であり、コンテンツキーKcを得ることができる。しかし、リボーク(排除)されたリーフ14に対応する情報処理装置は、上記の3つの暗号文に適用された3つのノードキーNK2、NK6、NK15のいずれも保有していないので、この暗号文を受領しても、復号処理を行うことができずコンテンツキーKcを得ることはできない。
これまでに学会等で公開されているブロードキャストエンクリプション(Broadcast Encryption)方式としては例えば非特許文献1に記載の方式がある。上述のブロードキャストエンクリプション(Broadcast Encryption)方式は、非特許文献1に記載されている名称によれば、Complete Subtree方式(CS方式)と呼ばれる。
しかし、このような木構造を用いて情報配信を行なう場合、リーフに対応する情報処理装置(ユーザ機器)が増大すると同報送信すべきメッセージが増大し、また各情報処理装置(ユーザ機器)において安全に格納すべきノードキーなどの鍵情報も増大してしまうという問題がある。
例えば、上述のCS方式では、システムの全受信機(受信者)数をNとし、そのうち排除(リボーク)される、即ち、同報通信される秘密情報を受け取ることができない受信機の数をrとしたときに、同報通信すべきメッセージ(暗号文)の数がrlog(N/r)であり、各受信機が安全なメモリに保持すべき鍵の数が、logN+1となる。なお、本明細書においては、特に断りのない限りlogの底は2である。
このように、木構造を用いた情報配信構成では、リーフに対応する情報処理装置(ユーザ機器)の増大に伴う配信メッセージの増大や、各情報処理装置(ユーザ機器)において安全に格納すべきノードキーなどの鍵情報の増大という問題が存在する。例えば、受信機において格納すべきノードキーを増大させると、各機器においてセキュアに管理すべき情報量の増大を招き、ユーザ機器のセキュアメモリ領域の増加などの処置が必要となりユーザ機器の製造コスト増大などの問題が発生する。
Advances in Cryptography−Crypto 2001, Lecture Notes in Computer Science 2139,Springer,2001 pp.41−62「D.Naor,M.Naor and J.Lotspiech著"Revocation and Tracing Schemes for Stateless Receivers"」
Advances in Cryptography−Crypto 2001, Lecture Notes in Computer Science 2139,Springer,2001 pp.41−62「D.Naor,M.Naor and J.Lotspiech著"Revocation and Tracing Schemes for Stateless Receivers"」
本発明は、このような状況に鑑みてなされたものであり、ブロードキャストエンクリプション(Broadcast Encryption)方式の基本的な方式として知られるComplete Subtree方式(CS方式)に対して、下位ノードキーから上位ノードキーを一方向性関数によって算出可能な構成とした一方向木を適用することにより、各受信機が安全に保持すべき鍵の数を減少させることを可能とした情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラムを提供することを目的とする。
本発明の第1の側面は、
階層木構成に基づくブロードキャストエンクリプション方式を適用し、排除(リボーク)機器を除く特定の選択機器にのみ復号可能とした暗号文の提供処理に適用する階層木を生成する情報処理方法であり、
階層木を構成する各ノードに対応するノードキーの値を、少なくとも1つの下位ノードキーの値に対する一方向性関数Fの適用によって上位ノードキーを算出可能な値に設定した一方向木を生成する一方向木生成ステップと、
前記階層木の末端ノード対応の受信機に提供するノードキーとして、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノードキー中、前記一方向性関数Fに基づいて算出可能なノードキーを除く最小限のノードキーを選択する提供ノードキー決定ステップと、
を有することを特徴とする情報処理方法にある。
階層木構成に基づくブロードキャストエンクリプション方式を適用し、排除(リボーク)機器を除く特定の選択機器にのみ復号可能とした暗号文の提供処理に適用する階層木を生成する情報処理方法であり、
階層木を構成する各ノードに対応するノードキーの値を、少なくとも1つの下位ノードキーの値に対する一方向性関数Fの適用によって上位ノードキーを算出可能な値に設定した一方向木を生成する一方向木生成ステップと、
前記階層木の末端ノード対応の受信機に提供するノードキーとして、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノードキー中、前記一方向性関数Fに基づいて算出可能なノードキーを除く最小限のノードキーを選択する提供ノードキー決定ステップと、
を有することを特徴とする情報処理方法にある。
さらに、本発明の情報処理方法の一実施態様において、前記情報処理方法は、さらに、前記一方向木の各ノードに対応付けられたノードキーを選択的に適用して暗号化処理を実行して暗号文を生成する暗号文生成ステップを有することを特徴とする。
さらに、本発明の情報処理方法の一実施態様において、前記一方向木生成ステップは、2分木構成を持つ階層木を構成する各ノードに対応するノードキー中、上位ノードのノードキーの値を、直下の2つの下位ノードキーの一方の下位ノードキーの値に対する一方向性関数Fの適用によって算出可能に設定した一方向木を生成するステップであることを特徴とする。
さらに、本発明の情報処理方法の一実施態様において、前記一方向木生成ステップは、末端ノード数Nの2分木構成を持つ階層木においてN個の値:xN〜x2N−1を決定するステップと、i=2N−1とする初期設定ステップと、i=(2N−1)〜1において、i=偶数の場合に、一方向性関数Fを適用しF(xi)を計算し、これをxi/2とセットするステップと、を有し、上記各ステップの処理によって、末端ノード数Nの2分木構成の全ノード数2N−1に対応するノードキーx1〜x2N−1を決定するステップを含むことを特徴とする。
さらに、本発明の情報処理方法の一実施態様において、前記提供ノードキー決定ステップは、階層木の最上位ノードとしてのルートを1とし、幅優先(breadth first order)で各ノードにノード番号(i)を付与した階層木において、末端ノードに対応する受信機に対して、受信機の対応ノードからルートに至るパス上のノード中、ノードiが含まれノード2iが含まれないノードに対応するノードキーのみを提供するステップであることを特徴とする。
さらに、本発明の情報処理方法の一実施態様において、前記一方向性関数Fは、MD4またはMD5またはSHA−1であることを特徴とする。
さらに、本発明の第2の側面は、
階層木構成に基づくブロードキャストエンクリプション方式を適用し、階層木構成ノード対応のノードキーによって暗号化された暗号文の復号処理を実行する復号処理方法であり、
前記暗号文から、自己の保持するノードキーまたは保持ノードキーから算出可能な上位ノードキーを適用して生成した暗号文を選択する暗号文選択ステップと、
暗号文の適用ノードキーが、保持ノードキーでない場合に保持ノードキーに対して一方向性関数Fを適用し、暗号文の適用ノードキーを算出するノードキー算出ステップと、
保持ノードキーまたは算出ノードキーに基づいて、暗号文の復号処理を実行する復号ステップと、
を有することを特徴とする復号処理方法にある。
階層木構成に基づくブロードキャストエンクリプション方式を適用し、階層木構成ノード対応のノードキーによって暗号化された暗号文の復号処理を実行する復号処理方法であり、
前記暗号文から、自己の保持するノードキーまたは保持ノードキーから算出可能な上位ノードキーを適用して生成した暗号文を選択する暗号文選択ステップと、
暗号文の適用ノードキーが、保持ノードキーでない場合に保持ノードキーに対して一方向性関数Fを適用し、暗号文の適用ノードキーを算出するノードキー算出ステップと、
保持ノードキーまたは算出ノードキーに基づいて、暗号文の復号処理を実行する復号ステップと、
を有することを特徴とする復号処理方法にある。
さらに、本発明の復号処理方法の一実施態様において、前記暗号文選択ステップは、階層木の最上位ノードとしてのルートを1とし、幅優先(breadth first order)で各ノードにノード番号(i)を付与した階層木において、暗号化に使われたノードキーのノード番号の中から、受信機からルートに至るパス上のノードに含まれるノード番号iと一致するものを見つけるステップであることを特徴とする。
さらに、本発明の復号処理方法の一実施態様において、前記ノードキー算出ステップは、階層木の最上位ノードとしてのルートを1とし、幅優先(breadth first order)で各ノードにノード番号(i)を付与した階層木において、受信機からルートに至るパス上のノードにノード番号2kiが含まれるが、2k+1iは含まれない最小のkを見つけるステップと、自己の保持するノードキーNK2kiの値に対してk回の一方向性関数Fを適用した演算を実行し、暗号化に使われたノードキーを算出するステップとを含むことを有することを特徴とする。
さらに、本発明の復号処理方法の一実施態様において、記一方向性関数Fは、MD4またはMD5またはSHA−1であることを特徴とする。
さらに、本発明の第3の側面は、
階層木構成に基づくブロードキャストエンクリプション方式を適用し、排除(リボーク)機器を除く特定の選択機器にのみ復号可能とした暗号文の提供処理に適用する階層木を生成する情報処理装置であり、
階層木を構成する各ノードに対応するノードキーの値を、少なくとも1つの下位ノードキーの値に対する一方向性関数Fの適用によって上位ノードキーを算出可能な値に設定した一方向木を生成する一方向木生成手段と、
前記階層木の末端ノード対応の受信機に提供するノードキーとして、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノードキー中、前記一方向性関数Fに基づいて算出可能なノードキーを除く最小限のノードキーを選択する提供ノードキー決定手段と、
を有することを特徴とする情報処理装置にある。
階層木構成に基づくブロードキャストエンクリプション方式を適用し、排除(リボーク)機器を除く特定の選択機器にのみ復号可能とした暗号文の提供処理に適用する階層木を生成する情報処理装置であり、
階層木を構成する各ノードに対応するノードキーの値を、少なくとも1つの下位ノードキーの値に対する一方向性関数Fの適用によって上位ノードキーを算出可能な値に設定した一方向木を生成する一方向木生成手段と、
前記階層木の末端ノード対応の受信機に提供するノードキーとして、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノードキー中、前記一方向性関数Fに基づいて算出可能なノードキーを除く最小限のノードキーを選択する提供ノードキー決定手段と、
を有することを特徴とする情報処理装置にある。
さらに、本発明の情報処理装置の一実施態様において、前記情報処理装置は、さらに、前記一方向木の各ノードに対応付けられたノードキーを選択的に適用して暗号化処理を実行して暗号文を生成する暗号文生成手段と、前記暗号文を前記受信機に提供する暗号文提供手段と、を有することを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記一方向木生成手段は、2分木構成を持つ階層木を構成する各ノードに対応するノードキー中、上位ノードのノードキーの値を、直下の2つの下位ノードキーの一方の下位ノードキーの値に対する一方向性関数Fの適用によって算出可能に設定した一方向木を生成する構成を有することを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記一方向木生成手段は、末端ノード数Nの2分木構成を持つ階層木においてN個の値:xN〜x2N−1を決定し、i=2N−1とする初期設定を実行し、i=(2N−1)〜1において、i=偶数の場合に、一方向性関数Fを適用しF(xi)を計算し、これをxi/2とセットする処理によって、末端ノード数Nの2分木構成の全ノード数2N−1に対応するノードキーx1〜x2N−1を決定する構成であることを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記提供ノードキー決定手段は、階層木の最上位ノードとしてのルートを1とし、幅優先(breadth first order)で各ノードにノード番号(i)を付与した階層木において、末端ノードに対応する受信機に対して、受信機の対応ノードからルートに至るパス上のノード中、ノードiが含まれノード2iが含まれないノードに対応するノードキーのみを提供する構成であることを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記一方向性関数Fは、MD4またはMD5またはSHA−1であることを特徴とする。
さらに、本発明の第4の側面は、
階層木構成に基づくブロードキャストエンクリプション方式を適用し、階層木構成ノード対応のノードキーによって暗号化された暗号文の復号処理を実行する情報処理装置であり、
前記暗号文から、自己の保持するノードキーまたは保持ノードキーから算出可能な上位ノードキーを適用して生成した暗号文を選択する暗号文選択手段と、
暗号文の適用ノードキーが、保持ノードキーでない場合に保持ノードキーに対して一方向性関数Fを適用し、暗号文の適用ノードキーを算出するノードキー算出手段と、
保持ノードキーまたは算出ノードキーに基づいて、暗号文の復号処理を実行する復号手段と、
を有することを特徴とする情報処理装置にある。
階層木構成に基づくブロードキャストエンクリプション方式を適用し、階層木構成ノード対応のノードキーによって暗号化された暗号文の復号処理を実行する情報処理装置であり、
前記暗号文から、自己の保持するノードキーまたは保持ノードキーから算出可能な上位ノードキーを適用して生成した暗号文を選択する暗号文選択手段と、
暗号文の適用ノードキーが、保持ノードキーでない場合に保持ノードキーに対して一方向性関数Fを適用し、暗号文の適用ノードキーを算出するノードキー算出手段と、
保持ノードキーまたは算出ノードキーに基づいて、暗号文の復号処理を実行する復号手段と、
を有することを特徴とする情報処理装置にある。
さらに、本発明の情報処理装置の一実施態様において、前記暗号文選択手段は、階層木の最上位ノードとしてのルートを1とし、幅優先(breadth first order)で各ノードにノード番号(i)を付与した階層木において、暗号化に使われたノードキーのノード番号の中から、受信機からルートに至るパス上のノードに含まれるノード番号iと一致するものを見つける処理を実行する構成であることを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記ノードキー算出手段は、階層木の最上位ノードとしてのルートを1とし、幅優先(breadth first order)で各ノードにノード番号(i)を付与した階層木において、受信機からルートに至るパス上のノードにノード番号2kiが含まれるが、2k+1iは含まれない最小のkを見つける処理を実行し、自己の保持するノードキーNK2kiの値に対してk回の一方向性関数Fを適用した演算を実行し、暗号化に使われたノードキーを算出する処理を実行する構成であることを有することを特徴とする。
さらに、本発明の情報処理装置の一実施態様において、前記一方向性関数Fは、MD4またはMD5またはSHA−1であることを特徴とする。
さらに、本発明の第5の側面は、
階層木構成に基づくブロードキャストエンクリプション方式を適用し、排除(リボーク)機器を除く特定の選択機器にのみ復号可能とした暗号文の提供処理に適用する階層木を生成するコンピュータ・プログラムであり、
階層木を構成する各ノードに対応するノードキーの値を、少なくとも1つの下位ノードキーの値に対する一方向性関数Fの適用によって上位ノードキーを算出可能な値に設定した一方向木を生成する一方向木生成ステップと、
前記階層木の末端ノード対応の受信機に提供するノードキーとして、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノードキー中、前記一方向性関数Fに基づいて算出可能なノードキーを除く最小限のノードキーを選択する提供ノードキー決定ステップと、
を有することを特徴とするコンピュータ・プログラムにある。
階層木構成に基づくブロードキャストエンクリプション方式を適用し、排除(リボーク)機器を除く特定の選択機器にのみ復号可能とした暗号文の提供処理に適用する階層木を生成するコンピュータ・プログラムであり、
階層木を構成する各ノードに対応するノードキーの値を、少なくとも1つの下位ノードキーの値に対する一方向性関数Fの適用によって上位ノードキーを算出可能な値に設定した一方向木を生成する一方向木生成ステップと、
前記階層木の末端ノード対応の受信機に提供するノードキーとして、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノードキー中、前記一方向性関数Fに基づいて算出可能なノードキーを除く最小限のノードキーを選択する提供ノードキー決定ステップと、
を有することを特徴とするコンピュータ・プログラムにある。
さらに、本発明のコンピュータ・プログラムの一実施態様において、前記コンピュータ・プログラムは、さらに、前記一方向木の各ノードに対応付けられたノードキーを選択的に適用して暗号化処理を実行して暗号文を生成する暗号文生成ステップを有することを特徴とする。
さらに、本発明の第6の側面は、
階層木構成に基づくブロードキャストエンクリプション方式を適用し、階層木構成ノード対応のノードキーによって暗号化された暗号文の復号処理を実行するコンピュータ・プログラムであり、
前記暗号文から、自己の保持するノードキーまたは保持ノードキーから算出可能な上位ノードキーを適用して生成した暗号文を選択する暗号文選択ステップと、
暗号文の適用ノードキーが、保持ノードキーでない場合に保持ノードキーに対して一方向性関数Fを適用し、暗号文の適用ノードキーを算出するノードキー算出ステップと、
保持ノードキーまたは算出ノードキーに基づいて、暗号文の復号処理を実行する復号ステップと、
を有することを特徴とするコンピュータ・プログラムにある。
階層木構成に基づくブロードキャストエンクリプション方式を適用し、階層木構成ノード対応のノードキーによって暗号化された暗号文の復号処理を実行するコンピュータ・プログラムであり、
前記暗号文から、自己の保持するノードキーまたは保持ノードキーから算出可能な上位ノードキーを適用して生成した暗号文を選択する暗号文選択ステップと、
暗号文の適用ノードキーが、保持ノードキーでない場合に保持ノードキーに対して一方向性関数Fを適用し、暗号文の適用ノードキーを算出するノードキー算出ステップと、
保持ノードキーまたは算出ノードキーに基づいて、暗号文の復号処理を実行する復号ステップと、
を有することを特徴とするコンピュータ・プログラムにある。
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能なコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、CDやFD、MOなどの記録媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
本発明の構成では、ブロードキャストエンクリプション(Broadcast Encryption)方式の一態様である階層型木構造を適用した情報配信構成において、階層木を構成する各ノードに対応するノードキーを特定の関係を持つ値に設定した一方向木を生成し、この一方向木を適用して暗号文の生成および提供を行なう。すなわち、上位ノードキーの値を、下位ノードキーの値に一方向性関数Fを適用して算出可能な値に設定した一方向木を生成した。階層木の末端ノード対応の受信機には、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノードキー中、一方向性関数Fに基づいて算出可能なノードキーを除く最小限のノードキーを提供する構成とした。受信機は、受領した処理対象の暗号文の適用ノードキーが、保持ノードキーでない場合に保持ノードキーに対して一方向性関数Fを適用し、暗号文の適用ノードキーを算出することが可能となる。このように本発明の構成を適用することにより、各受信機が安全に保持すべき情報量(ノードキー)の削減が実現する。
以下、図面を参照しながら本発明の情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラムの詳細について説明する。
なお、説明は、以下の項目に従って行なう。
1.Complete Subtree(CS)方式の概要
2.CS方式に対して一方向木を適用することによる鍵(ノードキー)数の削減構成の概要
3.一方向木を適用した暗号文の配信処理
1.Complete Subtree(CS)方式の概要
2.CS方式に対して一方向木を適用することによる鍵(ノードキー)数の削減構成の概要
3.一方向木を適用した暗号文の配信処理
[1.Complete Subtree(CS)方式の概要]
まず既存の階層型木構造を適用したブロードキャストエンクリプション(Broadcast Encryption)方式の基本的な方式として知られているComplete Subtree(CS)方式の概要について説明する。
まず既存の階層型木構造を適用したブロードキャストエンクリプション(Broadcast Encryption)方式の基本的な方式として知られているComplete Subtree(CS)方式の概要について説明する。
なお、以下の説明においては、簡単のために、階層型木構造のリーフに対応して設定される情報処理装置(受信機)の総数Nは2のべき乗の数であるとする。また、以下の説明において、関数logの底はすべて2である。なお、階層型木構造のリーフに対応する機器は、以下に説明する秘密情報の復号処理を実行可能であれば、様々な機器、例えばPC、携帯端末など、様々な情報処理装置の設定が可能である。ここでは、これらを総称して受信機として説明する。また、本発明における暗号文配信処理とは、通信ネットワークを介した通信による提供処理のみならず、記録媒体に格納した暗号文の提供処理も含むものである。
図3以下を参照して、Complete Subtree(CS)方式の概要について説明する。
前述の非特許文献1[ Advances in Cryptography−Crypto 2001, Lecture Notes in Computer Science 2139,Springer,2001 pp.41−62「D.Naor,M.Naor and J.Lotspiech著"Revocation and Tracing Schemes for Stateless Receivers"」]に記載されたComplete Subtree(CS)方式では、図3に示すように、階層型木構造として各ノードが2つに分岐する形を持つ2分木を用いる。図3は、受信機数N=16の例である。この2分木の各リーフ(葉)に各受信機を割り当てる(図3におけるu1〜u16)。また、木の各ノード(節)を用いて、「そのノードを頂点とする部分木のリーフ(葉)に割り当てられた受信機からなる集合」を表す。図3におけるノードi201は、受信機u5とu6からなる集合を表す。
そして、図3に示す2分木の各構成ノードに鍵(ノードキー)が定義される。各受信機には、各受信機が割り当てられているリーフ(葉)から木のルート(頂点)に至るパス上のノードに割り当てられたノードキーが与えられ、受信機はこれらのノードキーを安全なメモリに保持する。木の定義やノードキーの定義、受信機の割り当てやノードキーの配布などは、Trusted Center(TC)と呼ばれる信頼される管理センタが行なう。
図4に示すように、階層木には16台の受信機u1〜u16が割り当てられ、ノードは1〜31の31個、存在する。受信機u4には、ノード1,2,4,9,19に割り当てられた5個のノードキーが与えられる。すなわち、全受信機数をNとした場合には、各受信機はlogN+1個のノードキーを保持することになる。
図5を用いて、このセッティングを用いて秘密情報(たとえば、暗号化されたコンテンツを復号するためのコンテンツキー)をどのようにリボークされない受信機に送信するかについて説明する。ここでは、管理センタ(TC)が秘密情報の送信者になるとする。いま、受信機u2,u11,u12がリボークされる受信機とする。すなわち、受信機u2,u11,u12を不正な機器として排除(リボーク)し、それ以外の受信機においてのみ安全に情報を受領、すなわち同報配信される暗号文に基づく復号を行なうことを可能とする。
管理センタ(TC)が秘密情報の送信を行なう場合、リボーク受信機u2,u11,u12が割り当てられているリーフ(葉)から木のルートに至るパス上のノードに割り当てられたノードキーを暗号鍵として使用せず、暗号文のセットを生成して同報送信する。
リボーク受信機u2,u11,u12が割り当てられているリーフ(葉)から木のルートに至るパス上のリーフまたはノードに割り当てられたノードキーを使用すると、これらは、リボークすべき受信機が持つキーであるため、リボーク機器において秘密情報を入手できてしまう。従って、これらのキーを用いずに暗号文のセットを生成して同報送信する。
リボーク受信機u2,u11,u12が割り当てられているリーフ(葉)から木のルートに至るパス上のノードおよびパスを木から除外すると、1つ以上の部分木が残る。例えば、ノード5を頂点とする部分木、あるいはノード12を頂点とする部分木などである。
秘密情報の送信者は、それぞれの部分木の頂点に最も近いノード、すなわち、図5に示す例では、ノード5,7,9,12,16に割り当てられたノードキーを用いて秘密情報を暗号化した暗号文のセットを送信する。例えば送信秘密情報を暗号化コンテンツの復号に適用するコンテンツキーKcであるとし、ノード5,7,9,12,16に割り当てられたノードキーをNK5,NK7,NK9,NK12,NK16とすると、秘密情報の送信者は、
E(NK5,Kc),E(NK7,Kc),E(NK9,Kc),E(NK12,Kc),E(NK16,Kc)
の暗号文セットを生成して、ネットワーク配信あるいは記録媒体に格納して提供する。なお、E(A,B)はデータBを鍵Aで暗号化したデータを意味する。
E(NK5,Kc),E(NK7,Kc),E(NK9,Kc),E(NK12,Kc),E(NK16,Kc)
の暗号文セットを生成して、ネットワーク配信あるいは記録媒体に格納して提供する。なお、E(A,B)はデータBを鍵Aで暗号化したデータを意味する。
上記暗号文セットは、リボーク受信機u2,u11,u12のみが復号することができず、その他の受信機では復号可能である。このような暗号文セットを生成し送信することで、効率的で安全な秘密情報の伝送が行える。
受信機は、伝送された暗号文のうち、自分が復号できるもの、すなわち、自身が割り当てられたリーフ(葉)からルートに至るまでのパス上のノードに対応するノードキーを用いて暗号化されたものを復号して秘密情報を得ることができる。上記の例では、受信機u4はノード9のノードキーを保持しているので、これを用いて暗号化された暗号文E(NK9,Kc)を復号することができる。このように、リボークされていない受信機が復号できる暗号文は受信した暗号文セット中に必ずひとつ存在する。
[2.CS方式に対して一方向木を適用することによる鍵(ノードキー)数の削減構成の概要]
上述したCS方式を観察すると、以下のことがわかる。すなわち、CS方式において、あるノードを頂点とする部分木の葉(リーフ)は、そのノードの先祖ノードを頂点とする部分木の葉でもある。
上述したCS方式を観察すると、以下のことがわかる。すなわち、CS方式において、あるノードを頂点とする部分木の葉(リーフ)は、そのノードの先祖ノードを頂点とする部分木の葉でもある。
例えば、図6に示すように、ノードj232を頂点とする部分木P235の葉(リーフ)としてのu5,u6は、そのノードj232の先祖ノード、例えばノードiを頂点とする部分木A230の葉でもある。
このため、あるノードのノードキーを保持している受信機は、その先祖ノードのノードキーも保持する。たとえば図6に示すように、ノードi231がノードj232の先祖であるとき、ノードj232のノードキーを持つ受信機(u5,u6)は必ずノードi231のノードキーも持つ。ただし、この逆は必ずしも成り立たない。
このような特性を有しているため、例えば、木の各ノードに設定するノードキーからその先祖のノードのノードキーを計算で導出できるように各ノードキーを設定すれば、独立に複数のノードキーを持つよりも鍵数、すなわち受信機のメモリを削減することが可能となる。
ただし、上位のノードのノードキーからその子孫ノードのノードキーを導出できないようにする必要がある。これは、例えば図6において、ノードi231がノードj232の先祖であるとき、ノードj232のノードキーを持つ受信機(u5,u6)は必ずノードi231のノードキーも持つが、一方、ノードi231のノードキーを持つ受信機(u1〜u8)が必ずノードj232のノードキーも持つとは限らないからである。図6の構成において、受信機:u1〜u8中、ノードj232のノードキーを持つことが許容されている受信機はu5,u6のみであり、他の受信機u1〜u4,u7〜u8は、ノードj232のノードキーを持つことが許容されていないノードであり、これらの受信機において、ノードi231のノードキーからノードj232のノードキーを導出できるようにすることは許容できないからである。
このため本発明では、xからyを計算するのは簡単だが、その逆計算は困難であるような関数、すなわち一方向性関数:y=F(x)を用いて各ノードのノードキーを設定した木構造を構成する。
このように、本発明では、一方向木を用いる。なお、「一方向木」とは、一般的な用語ではなく、本発明の説明のために用いる木構造の1つの特性を定義した言葉である。
「一方向木」の定義について説明する。
N個の葉を持つ完全2分木が一方向木であるとは、図7に示すように、最上位のノードであるルートを1、それ以降のノードを上位の左から順に2,3,...,2N−1と幅優先(breadth first order)で各ノードにノード番号を設定した場合に、ノードiに対応する値、すなわちノード対応値としてそれぞれCビット(たとえば128ビット)の値xi(i=1,2,...,2N−1)を設定し、i=1,2,...,N−1について、xi=F(x2i)が成り立つ木構造をいうものとする。このノード対応値xi(i=1,2,...,2N−1)をノードiのノードキーとして設定する。
N個の葉を持つ完全2分木が一方向木であるとは、図7に示すように、最上位のノードであるルートを1、それ以降のノードを上位の左から順に2,3,...,2N−1と幅優先(breadth first order)で各ノードにノード番号を設定した場合に、ノードiに対応する値、すなわちノード対応値としてそれぞれCビット(たとえば128ビット)の値xi(i=1,2,...,2N−1)を設定し、i=1,2,...,N−1について、xi=F(x2i)が成り立つ木構造をいうものとする。このノード対応値xi(i=1,2,...,2N−1)をノードiのノードキーとして設定する。
ここで、関数Fは、Cビットの入力に対して、Cビットの出力を出す一方向性関数である。
このような関数の例として、任意の長さの入力に対し128ビットの出力を出すMD4,MD5や、160ビットの出力を出すSHA−1などがあり、これらの関数を適用することができる。なお、これらの関数については、たとえば、A.J.Menezes,P.C.van Oorschot and S.A.Vanstone著,"Handbook ofApplied Cryptography",CRC Pres,1966に紹介されている。なお、これらの関数は一方向性関数、あるいはハッシュ関数と呼ばれる。
一方向木を構成する各ノードiに対応して設定される関数Fとノード対応値xiの関係を図で表すと、図7のようになる。この一方向木を構成する木構造は、xi=F(x2i)が成り立つ木構造である。
例えば、
x8=F(x16)
x4=F(x8)
x2=F(x4)
x1=F(x2)
のように、2分木の構成ノードiに対応して設定されるノード対応値xiは、xi=F(x2i)が成り立つように設定される。
例えば、
x8=F(x16)
x4=F(x8)
x2=F(x4)
x1=F(x2)
のように、2分木の構成ノードiに対応して設定されるノード対応値xiは、xi=F(x2i)が成り立つように設定される。
葉(リーフ)がN個である2分木において、一方向木を構成するアルゴリズムの例を下記に示す。このアルゴリズムにおいて、入力と出力は、以下のように設定される。
[入力]
2分木を構成する葉(リーフ)の数N、
Cビット出力の一方向性関数F、
[出力]
2分木を構成する全ノード(葉(リーフ)を含む)数:2N−1に対応する2N−1個のCビットの数x1,x2,...,x2N−1
である。
[入力]
2分木を構成する葉(リーフ)の数N、
Cビット出力の一方向性関数F、
[出力]
2分木を構成する全ノード(葉(リーフ)を含む)数:2N−1に対応する2N−1個のCビットの数x1,x2,...,x2N−1
である。
上記の[入力]に基づいて、上記の[出力]を得るアルゴリズムは以下のようになる。
1.N個のCビットの数xN,xN+1,...,x2N−1を独立に選択する。
2.iをカウンタとして2N−1から1まで1ずつ減少させながら下記の処理を行う。
(2−1)もしiが偶数なら、関数Fを適用しF(xi)を計算し、これをxi/2とセットする。
3.2N−1個のCビットの数x1,x2,...,x2N−1を出力して終了する。値xiが一方向木のノードiに対応する値、すなわちノード対応値となる。ここで、葉の数がNである完全2分木のノードの総数は2N−1である点に注意されたい。
1.N個のCビットの数xN,xN+1,...,x2N−1を独立に選択する。
2.iをカウンタとして2N−1から1まで1ずつ減少させながら下記の処理を行う。
(2−1)もしiが偶数なら、関数Fを適用しF(xi)を計算し、これをxi/2とセットする。
3.2N−1個のCビットの数x1,x2,...,x2N−1を出力して終了する。値xiが一方向木のノードiに対応する値、すなわちノード対応値となる。ここで、葉の数がNである完全2分木のノードの総数は2N−1である点に注意されたい。
図8に、上記アルゴリズムのフローを示す。フローの各ステップについて説明する。ステップS101において、2分木を構成する葉(リーフ)の数Nと、Cビット出力の一方向性関数Fを入力する。
ステップS102において、N個のCビットの数xN,xN+1,...,x2N−1を独立に選択する。ステップS103において、値:iの初期設定として、i=2N−1とする設定を行なう。
ステップS104において、iは偶数か否かを判定する。iが偶数の場合はステップS105に進み、iが奇数の場合はステップS106に進む。
iが偶数の場合は、ステップS105において、関数Fを適用しF(xi)を計算し、これをxi/2とセットする。
ステップS106では、i=1であるか否かを判定し、i=1でない場合は、ステップS107に進み、値iをi=i−1とする更新処理を実行し、ステップS104以下の処理を繰り返し実行する。
ステップS106でi=1であると判定すると、ステップS108に進み、2N−1個のCビットの数x1,x2,...,x2N−1を各ノードiに対応するノード対応値xiとして出力する。
この2N−1個のCビットの数x1,x2,...,x2N−1が、2N−1個のノード(リーフを含む)の各ノードi(i=1〜2N−1)各々に対応するノードキーとして設定される。
この処理によって、一方向木を構成する各ノードiに対応するノード対応値xiが決定され、これをノードキーとして設定することで、図7のような木構造、すなわち、各ノードiに対応するノードキーが、xi=F(x2i)が満足する木構造が完成する。
なお、上述の一方向木の設定処理例では、図7に示すように、下位ノードから右上がりの上位ノードを一方向性関数Fを適用して算出可能な構成としたが、下位ノードから左上がりの上位ノードを一方向性関数Fを適用して算出可能な構成としてもよい。
[3.一方向木を適用した暗号文の配信処理]
次に、上述した処理によって2分木の各ノードiに対応するノードキーxiを設定した木構造を用いて、暗号文を配信する処理について、説明する。なお、説明は、
(1)セットアップ処理
(2)情報配信処理
(3)情報受信および復号処理
の各処理毎に説明する。
次に、上述した処理によって2分木の各ノードiに対応するノードキーxiを設定した木構造を用いて、暗号文を配信する処理について、説明する。なお、説明は、
(1)セットアップ処理
(2)情報配信処理
(3)情報受信および復号処理
の各処理毎に説明する。
(1)セットアップ処理
セットアップ処理は、システムの立ち上げ時に1度だけ行う。これ以降の情報配信および受信と復号の処理は、送信すべき情報が生じるたびに行なわれる。例えば、新しいコンテンツを格納したDVDなどの情報記録媒体が配布される場合、あるいはネットワークを介して新しい情報が配信される場合など毎に実行される。なお、セットアップ処理は、実際に暗号文配信を実行するエンティテイとは独立した管理センタ(TC)によって実行してもよいし、また、暗号文配信を実行するエンティテイが実行してもよい。ここでは一例として、セットアップ処理を管理センタ(TC)が実行する例として説明する。
セットアップ処理は、システムの立ち上げ時に1度だけ行う。これ以降の情報配信および受信と復号の処理は、送信すべき情報が生じるたびに行なわれる。例えば、新しいコンテンツを格納したDVDなどの情報記録媒体が配布される場合、あるいはネットワークを介して新しい情報が配信される場合など毎に実行される。なお、セットアップ処理は、実際に暗号文配信を実行するエンティテイとは独立した管理センタ(TC)によって実行してもよいし、また、暗号文配信を実行するエンティテイが実行してもよい。ここでは一例として、セットアップ処理を管理センタ(TC)が実行する例として説明する。
(1−1)ステップ1
管理センタ(TC)は、2分木でありN個の葉を持つ木を定義する。木中の各ノードについてk(k=1,2,...,2N−1)と、ノード対応の番号を設定する。ただし2分木における最上位ノードであるルートを1とし、以降を幅優先(breadth first order)で番号設定を行う。すなわち、図9に示すようなノード対応番号の設定を行なう。この処理により2分木中の各ノードに1〜2N−1のノード番号が設定される。
管理センタ(TC)は、2分木でありN個の葉を持つ木を定義する。木中の各ノードについてk(k=1,2,...,2N−1)と、ノード対応の番号を設定する。ただし2分木における最上位ノードであるルートを1とし、以降を幅優先(breadth first order)で番号設定を行う。すなわち、図9に示すようなノード対応番号の設定を行なう。この処理により2分木中の各ノードに1〜2N−1のノード番号が設定される。
受信機um(m=1,2,...,N)を木の各葉(リーフ)に割り当てる。また、Cビット出力の一方向関数Fを選択して公開する。Cは任意の数であり、一方向性関数は、例えばMD4、MD5、SHA−1など既存の一方向性関数(ハッシュ関数)の適用が可能である。
(1−2)ステップ2
管理センタ(TC)は、先に図8のフローを参照して説明したアルゴリズムに従って、葉がN個である2分木における各ノードiの対応値xiを算出し、これを各ノードのノードキーとした一方向木を構成する。すなわち、
(a)2分木を構成する葉(リーフ)の数N、
(b)Cビット出力の一方向性関数F、
を入力として、2分木を構成する全ノード(葉(リーフ)を含む)数:2N−1に対応する2N−1個のCビットの数x1,x2,...,x2N−1
を決定する。
管理センタ(TC)は、先に図8のフローを参照して説明したアルゴリズムに従って、葉がN個である2分木における各ノードiの対応値xiを算出し、これを各ノードのノードキーとした一方向木を構成する。すなわち、
(a)2分木を構成する葉(リーフ)の数N、
(b)Cビット出力の一方向性関数F、
を入力として、2分木を構成する全ノード(葉(リーフ)を含む)数:2N−1に対応する2N−1個のCビットの数x1,x2,...,x2N−1
を決定する。
管理センタ(TC)は、図8を参照して説明したアルゴリズムに従って決定した2N−1個のCビットの数x1,x2,...,x2N−1を、ステップ1で作成した木の各ノードiに対応する鍵、すなわちノードキーNKiとする。
図9において、関数Fに沿って示されている直線矢印は、下位ノードのノード対応値xi(ノードキー)を入力として一方向性関数Fを適用することで、上位ノードのノード対応値x(1/2)i(ノードキー)が求められることを示している。
例えば、
x8=F(x16)
x4=F(x8)
x2=F(x4)
x1=F(x2)
となる。
例えば、
x8=F(x16)
x4=F(x8)
x2=F(x4)
x1=F(x2)
となる。
(1−3)ステップ3
管理センタ(TC)は、木の末端ノードとしての葉(リーフ)に対応して設定される受信機um(m=1,2,...,N)に対し、以下のルールに基づいてノードキーを与える。受信機は図9に示すように木の葉(リーフ)、すなわちノード番号16〜31に割り当てられている。図9に示す例では、受信機は、ノード番号16〜31に割り当てられたu1〜u16の16個設定される。
管理センタ(TC)は、木の末端ノードとしての葉(リーフ)に対応して設定される受信機um(m=1,2,...,N)に対し、以下のルールに基づいてノードキーを与える。受信機は図9に示すように木の葉(リーフ)、すなわちノード番号16〜31に割り当てられている。図9に示す例では、受信機は、ノード番号16〜31に割り当てられたu1〜u16の16個設定される。
なお、受信機umが割り当てられた葉からルートへのパスをパスm[path−m]と表す。また、パスm[path−m]上のノードの集合をパスノードm[PathNodes−m]と表す。
図9の例では、
PathNodes−1={1,2,4,8,16}
PathNodes−4={1,2,4,9,19}
PathNodes−11={1,3,6,13,26}
となる。
PathNodes−1={1,2,4,8,16}
PathNodes−4={1,2,4,9,19}
PathNodes−11={1,3,6,13,26}
となる。
図9に示す実線ライン301が、受信機u1のパス1[path−1]301であり、PathNodes−1={1,2,4,8,16}によって構成される。点線ライン302が、受信機u4のパス4[path−4]302であり、PathNodes−4={1,2,4,9,19}によって構成される。破線ライン303が、受信機u11のパス11[path−11]303であり、PathNodes−11={1,3,6,13,26}によって構成される。
管理センタ(TC)は、各受信機umに対し、
(a)ノードiがPathNodes−mに含まれ、かつ、
(b)ノード2iが含まれていないノード
これらの条件(a),(b)を満足するノードiのノードキーNKiを与える。受信機は与えられたノードキーを安全に保持する。
(a)ノードiがPathNodes−mに含まれ、かつ、
(b)ノード2iが含まれていないノード
これらの条件(a),(b)を満足するノードiのノードキーNKiを与える。受信機は与えられたノードキーを安全に保持する。
図10(b)に示すように、上記の例では、
受信機u1にはNK16が、
受信機u4にはNK4,NK9,NK19が、
受信機u11にはNK1,NK6,NK26が、
受信機u16にはNK1,NK3,NK7,NK15,NK31が
それぞれ与えられる。
受信機u1にはNK16が、
受信機u4にはNK4,NK9,NK19が、
受信機u11にはNK1,NK6,NK26が、
受信機u16にはNK1,NK3,NK7,NK15,NK31が
それぞれ与えられる。
例えば、受信機u4において、
(a)ノードiがPathNodes−mに含まれ、
の条件を満足するノードは、PathNodes−4={1,2,4,9,19}の各ノードである。
この中で、
(b)ノード2iが含まれていないノード
は、ノード4,9,19となる。ノード1,2については、
ノード1は、ノード2×1に対応するノード2が、PathNodes−4={1,2,4,9,19}中に含まれ、また、
ノード2は、ノード2×2に対応するノード4が、PathNodes−4={1,2,4,9,19}中に含まれる。
(a)ノードiがPathNodes−mに含まれ、
の条件を満足するノードは、PathNodes−4={1,2,4,9,19}の各ノードである。
この中で、
(b)ノード2iが含まれていないノード
は、ノード4,9,19となる。ノード1,2については、
ノード1は、ノード2×1に対応するノード2が、PathNodes−4={1,2,4,9,19}中に含まれ、また、
ノード2は、ノード2×2に対応するノード4が、PathNodes−4={1,2,4,9,19}中に含まれる。
従って、受信機u4において、
(a)ノードiがPathNodes−mに含まれ、かつ、
(b)ノード2iが含まれていないノード
これらの条件(a),(b)を満足するノードのノードキーは、NK4,NK9,NK19となり、受信機u4には、ノードキーNK4,NK9,NK19が与えられる。
(a)ノードiがPathNodes−mに含まれ、かつ、
(b)ノード2iが含まれていないノード
これらの条件(a),(b)を満足するノードのノードキーは、NK4,NK9,NK19となり、受信機u4には、ノードキーNK4,NK9,NK19が与えられる。
また、受信機u1において、
(a)ノードiがPathNodes−mに含まれ、
の条件を満足するノードは、PathNodes−1={1,2,4,8,16}の各ノードである。
この中で、
(b)ノード2iが含まれていないノード
は、ノード16のみ、すなわち、受信機u1が設定されたノード(リーフ)16のみとなる。ノード1,2,4,8,については、
ノード1は、ノード2×1に対応するノード2が、PathNodes−1={1,2,4,8,16}中に含まれ、また、
ノード2は、ノード2×2に対応するノード4が、PathNodes−1={1,2,4,8,16}中に含まれ、また、
ノード4は、ノード2×4に対応するノード8が、PathNodes−1={1,2,4,8,16}中に含まれ、また、
ノード8は、ノード2×8に対応するノード16が、PathNodes−1={1,2,4,8,16}中に含まれる。
(a)ノードiがPathNodes−mに含まれ、
の条件を満足するノードは、PathNodes−1={1,2,4,8,16}の各ノードである。
この中で、
(b)ノード2iが含まれていないノード
は、ノード16のみ、すなわち、受信機u1が設定されたノード(リーフ)16のみとなる。ノード1,2,4,8,については、
ノード1は、ノード2×1に対応するノード2が、PathNodes−1={1,2,4,8,16}中に含まれ、また、
ノード2は、ノード2×2に対応するノード4が、PathNodes−1={1,2,4,8,16}中に含まれ、また、
ノード4は、ノード2×4に対応するノード8が、PathNodes−1={1,2,4,8,16}中に含まれ、また、
ノード8は、ノード2×8に対応するノード16が、PathNodes−1={1,2,4,8,16}中に含まれる。
従って、受信機u1において、
(a)ノードiがPathNodes−mに含まれ、かつ、
(b)ノード2iが含まれていないノード
これらの条件(a),(b)を満足するノードのノードキーは、NK16となり、受信機u1には、ノードキーNK16のみが与えられる。
(a)ノードiがPathNodes−mに含まれ、かつ、
(b)ノード2iが含まれていないノード
これらの条件(a),(b)を満足するノードのノードキーは、NK16となり、受信機u1には、ノードキーNK16のみが与えられる。
以下、同様に各葉(リーフ)対応の受信機umに対して、
(a)ノードiがPathNodes−mに含まれ、かつ、
(b)ノード2iが含まれていないノード
これらの条件(a),(b)を満足するノードのノードキーを与える。
(a)ノードiがPathNodes−mに含まれ、かつ、
(b)ノード2iが含まれていないノード
これらの条件(a),(b)を満足するノードのノードキーを与える。
図10(a)に示す2分木を参照して説明すると、受信機umが割り当てられた末端ノードとしての葉(リーフ)に対応するノードキーは必ず与えられ、この葉からルートへのパスを、1段ずつ左に上がるか右に上がるかと表したときに、左に上がった先のノードに対応するノードキーが葉(リーフ)としての受信機umに与えられることになる。
図10(a)において、受信機u1のパス1[path−1]は、すべて右上がりのみでルート(ノード1)に到達するので、受信機u1のノード対応のノードキーNK16のみが与えられる。
また、受信機u11(ノード26)のパス11[path−11]は、
ノード26→ノード13(右上がり)
ノード13→ノード6(左上がり)
ノード6→ノード3(右上がり)
ノード3→ノード1(左上がり)
であるので、
左に上がった先のノードに対応するノードキーは、ノード6のノードキーNK6と、ノード1のノードキーNK1であり、受信機u11には、自己ノード26のノードキーNK26と、ノードキーNK6と、ノードキーNK1が与えられる。ただし、ここで受信機が割り当てられた葉を「自己ノード」と呼んでいる。
また、受信機u11(ノード26)のパス11[path−11]は、
ノード26→ノード13(右上がり)
ノード13→ノード6(左上がり)
ノード6→ノード3(右上がり)
ノード3→ノード1(左上がり)
であるので、
左に上がった先のノードに対応するノードキーは、ノード6のノードキーNK6と、ノード1のノードキーNK1であり、受信機u11には、自己ノード26のノードキーNK26と、ノードキーNK6と、ノードキーNK1が与えられる。ただし、ここで受信機が割り当てられた葉を「自己ノード」と呼んでいる。
このように、各受信機umに対応するパスm(path−m)にいくつの左上がりのパスが含まれるかによって、受信機umに与えられるノードキーの個数が変化する。この木が、葉の数Nの完全2分木であるため、すべての受信機のパスm(path−m)を考えると、左上がりのパスを1、右上がりのパスを0と表したときに、logN桁(ビット)の数が00...0から11...1まで1つずつ現れる。すなわち、パスm(path−m)のビット表現は、
{0,1}logN
で表せる。
{0,1}logN
で表せる。
例として、図10に示す16個の受信機u1〜u16に対応するパスm(path−m)のビット表現を図11に示す。
例えば、受信機u1からルートへのパス1(path−1)は、[0000]となる。図10を参照して説明すると、受信機u1からルートへのパス1(path−1)は、すべて右上がりのパス4個(16→8,8→4,4→2,2→1)によって設定されるので、右上がりのパスを0と表した設定では、受信機u1からルートへのパス1(path−1)は、[0000]となる。
受信機u2からルートへのパス2(path−2)は、[1000]となる。図10(a)を参照して説明すると、受信機u2からルートへのパス2(path−2)は、最初のみが、左上がりのパス(17→8)であり、残りは、すべて右上がりのパス3個(8→4,4→2,2→1)によって設定されるので、受信機u2からルートへのパス2(path−2)は、[1000]となる。
以下、同様に、図10に示す16個の受信機u1〜u16に対応するパスm(path−m)のビット表現が決定される。
図11は、図10に示す16個の受信機u1〜u16に対応するパスm(path−m)のビット表現と、受信機u1〜u16が保持するノードキーの対応を示す図である。図11に示すように、受信機u1〜u16に対応するパスm(path−m)のビット表現は、受信機毎に異なる[0000]〜[1111]の16種類のビット表現となる。
パスm(path−m)のビット表現におけるビット値[1]の数をパスm(path−m)の[重み]と定義する。
本発明の構成では、葉に割り当てられた1つのノードキー(リーフキーとも呼ばれる)に加え、各葉対応の受信機umに対応するパスm(path−m)のビット表現における重みの数(1の数)のノードキーが受信機に与えられる。
例えば、図10(a)に示す2分木構成とし、図11に示すような各受信機umに対応するパスm(path−m)のビット表現が設定される構成において、パスm(path−m)のビット表現がオール0である受信機u1には、受信機u1に対応する葉(16)に割り当てられた1つのノードキー(リーフキー)のみが与えられ、その他のノードキーは与えられない。
ビット表現に含まれる1が1つだけ含むlogN個の受信機(u2,u3,u5,u9)には、自己ノードのノードキーに加えて1つの上位ノードのノードキーが与えられる。例えばu2には、受信機u2に対応するノード17に割り当てられたノードキーNK17と、1つの上位ノードキーNK8が与えられる。
以下同様であり、自己ノード(リーフ)のノードキーに加えて上位のノードキーをj個(j=0,1,...,logN)与えられる受信機の数は、下式
で表される。
なお、上記式は、logN個からj個を選択する場合の数を示す式である。
なお、上記式は、logN個からj個を選択する場合の数を示す式である。
具体的には、図10(a)に示す2分木構成(N=16)において、
log16=4であり、
j=1である上位ノードキーを1個のみ与えられる受信機は、(u2,u3,u5,u9)の4つとなる。
j=2である上位ノードキーを2個与えられる受信機は、(u4,u6,u7,u10,u11,u13)の6つとなる。
j=3である上位ノードキーを3個与えられる受信機は、(u8,u12,u14,u15)の4つとなる。
j=4である上位ノードキーを4個与えられる受信機は、(u16)の1つとなる。
なお、上位ノードキーを1つも与えられないノードu1は自己のノードキーのみを保有すればよい。
log16=4であり、
j=1である上位ノードキーを1個のみ与えられる受信機は、(u2,u3,u5,u9)の4つとなる。
j=2である上位ノードキーを2個与えられる受信機は、(u4,u6,u7,u10,u11,u13)の6つとなる。
j=3である上位ノードキーを3個与えられる受信機は、(u8,u12,u14,u15)の4つとなる。
j=4である上位ノードキーを4個与えられる受信機は、(u16)の1つとなる。
なお、上位ノードキーを1つも与えられないノードu1は自己のノードキーのみを保有すればよい。
このように、本発明のノードキー設定処理を行なった構成では、各葉(リーフ)に対応付けられた受信機は、自己ノード(リーフ)のノードキーに加えてj個、つまりトータルでj+1個の鍵を保持すればよい。ただし、jは前述の条件(a)(b)を共に満たすリーフ以外のノードiの個数であり、パスm(path−m)に含まれるリーフ以外のノードの数はlogNであるため、jは0以上logN以下の数となる。
前述したように、Complete Subtree方式(CS方式)では、各受信機に与えられるノードキーは、受信機数をNとした場合、
logN+1個
である。
一方、本方式では、受信機数をNとした場合、各受信機に与えられるノードキーは、
j+1個
である。
logN+1個
である。
一方、本方式では、受信機数をNとした場合、各受信機に与えられるノードキーは、
j+1個
である。
本方式によって、各受信機の保持ノードキーは、
(logN+1)−(j+1)
=logN−j個
の削減が可能となる。
(logN+1)−(j+1)
=logN−j個
の削減が可能となる。
この削減された分のノードキーは、各受信機が保持するノードキーに対して一方向性関数Fを適用することによって取得することができる。
上述したセットアップ処理のフローを図12に示す。図12のフローの各ステップについて説明する。
まず、ステップS201において、管理センタ(TC)は、N個の葉を持つ2分木を定義する。2分木における最上位ノードであるルートを1とし、以降を幅優先(breadth first order)で番号設定を行う。すなわち、図10(a)に示すようなノード対応番号の設定を行なう。
さらに、受信機um(m=1,2,...,N)を木の各葉(リーフ)に割り当てる。また、Cビット出力の一方向関数Fを選択して公開する。Cは任意の数であり、一方向性関数は、例えばMD4、MD5、SHA−1など既存の一方向性関数(ハッシュ関数)の適用が可能である。
次にステップS202において、管理センタ(TC)は、先に図8のフローを参照して説明したアルゴリズムに従って、葉がN個である2分木における各ノードiの対応値xiを算出し、これを各ノードのノードキーとした一方向木を構成する。すなわち、
(a)2分木を構成する葉(リーフ)の数N、
(b)Cビット出力の一方向性関数F、
を入力として、2分木を構成する全ノード(葉(リーフ)を含む)数:2N−1に対応する2N−1個のCビットの数x1,x2,...,x2N−1
を決定する。
(a)2分木を構成する葉(リーフ)の数N、
(b)Cビット出力の一方向性関数F、
を入力として、2分木を構成する全ノード(葉(リーフ)を含む)数:2N−1に対応する2N−1個のCビットの数x1,x2,...,x2N−1
を決定する。
管理センタ(TC)は、決定した2N−1個のCビットの数x1,x2,...,x2N−1を、ステップS201で作成した木の各ノードiに対応する鍵、すなわちノードキーNKiとする。
ステップS203において、管理センタ(TC)は、木の末端ノードとしての葉(リーフ)に対応して設定される受信機um(m=1,2,...,N)に対し、前述したルール、すなわち、
(a)ノードiがPathNodes−mに含まれ、かつ、
(b)ノード2iが含まれていないノード
これらの条件(a),(b)を満足するノードのノードキーを各受信機umに与える。
(a)ノードiがPathNodes−mに含まれ、かつ、
(b)ノード2iが含まれていないノード
これらの条件(a),(b)を満足するノードのノードキーを各受信機umに与える。
以上の処理によって、受信機数をNとした場合、各受信機には、
j+1個
のノードキーが付与される。
j+1個
のノードキーが付与される。
(2)情報配信処理
情報配信、すなわち秘密情報の送信は、管理センタ(TC)が1つ以上の暗号文を同報送信することによってなされる。それぞれの暗号文は、秘密情報をノードキーの1つを用いて暗号化したものである。暗号化に使用するノードキーの選択方法は、Complete Subtree方式(CS方式)と同様である。
情報配信、すなわち秘密情報の送信は、管理センタ(TC)が1つ以上の暗号文を同報送信することによってなされる。それぞれの暗号文は、秘密情報をノードキーの1つを用いて暗号化したものである。暗号化に使用するノードキーの選択方法は、Complete Subtree方式(CS方式)と同様である。
たとえば図5に示した例では、5つの暗号文が送信される。図5に示す例では受信機u2,u11,u12がリボークされる受信機である。すなわち、受信機u2,u11,u12を不正な機器として排除(リボーク)し、それ以外の受信機においてのみ安全に情報を受領、すなわち同報配信される暗号文に基づく復号を行なうことを可能とする。
情報の送信を行なう場合、リボーク受信機u2,u11,u12が割り当てられているリーフ(葉)から木のルートに至るパス上のノードに割り当てられたノードキーを暗号鍵として使用せず、暗号文セットを生成して同報送信する。リボーク受信機u2,u11,u12が割り当てられているリーフ(葉)から木のルートに至るパス上のノードおよびパスを木から除外すると、1つ以上の部分木が残る。例えば、ノード5を頂点とする部分木、あるいはノード12を頂点とする部分木などである。
秘密情報の送信者は、それぞれの部分木の頂点に最も近いノード、すなわち、図5に示す例では、ノード5,7,9,12,16に割り当てられたノードキーを用いて秘密情報を暗号化した暗号文のセットを送信する。例えば送信秘密情報を暗号化コンテンツの復号に適用するコンテンツキーKcであるとし、ノード5,7,9,12,16に割り当てられたノードキーをNK5,NK7,NK9,NK12,NK16とすると、秘密情報の送信者は、
E(NK5,Kc),E(NK7,Kc),E(NK9,Kc),E(NK12,Kc),E(NK16,Kc)
の5つの暗号文セットを生成して、ネットワーク配信あるいは記録媒体に格納して提供する。なお、E(A,B)はデータBを鍵Aで暗号化したデータを意味する。
E(NK5,Kc),E(NK7,Kc),E(NK9,Kc),E(NK12,Kc),E(NK16,Kc)
の5つの暗号文セットを生成して、ネットワーク配信あるいは記録媒体に格納して提供する。なお、E(A,B)はデータBを鍵Aで暗号化したデータを意味する。
上記暗号文セットは、リボーク受信機u2,u11,u12のみが復号することができず、その他の受信機では復号可能である。このような暗号文セットを生成し送信することで、効率的で安全な秘密情報の伝送が行える。
この暗号化に使用するノードキーを見つけるための手法としては、Complete Subtree方式(CS方式)と同様の手法、あるいは、表現木を適用した方法などが適用可能である。
情報配信処理の手順について、図13のフローを参照して説明する。管理センタ(TC)は、ステップS301において、まずその情報配信においてリボーク(排除)する受信機を選択する。
さらに、ステップS302において、暗号文の生成、すなわち送信秘密情報の暗号化に適用するノードキーを選択し、ステップS303において、暗号文を受信する受信機において、復号可能な暗号文を選択するための索引データとしての使用ノードキー指定情報を生成する。これは、どのノードキーを選択したかを表すタグ情報や表現コードなどである。
ステップS304において、選択したノードキーで送信する秘密情報を暗号化し、ステップS305において、ノードキー指定情報とともに同報通信路を用いて送信する。あるいは情報記録媒体に格納して配布する。なお、上記の処理は、必ずしもこの順番である必要はない。
なお、暗号化に利用するノードキーは、管理センタ(TC)がセットアップフェイズにおいて作成して保管しておいたものを使用するようにしてもよいし、セットアップフェイズにおいては葉のノードキーのみを保管しておき、それから一方向性関数Fを用いて導出してもよい。
なお、リボークする受信機がない場合には、ルートのノードキーNK1を秘密情報の暗号化に用いる。この場合は、すべての受信機において送信情報の復号が可能となる。
(3)情報受信および復号処理
次に、上述の暗号文の受信および復号処理について説明する。上述の暗号文は同報配信により受信機に提供される。あるいは情報記録媒体に格納されて受信機に提供される。こり暗号文は、リボークの有無に関わらず、すべての受信機が受領可能であるが、リボークされた受信機は暗号文の復号に適用するノードキーを得ることができないので受信情報の復号を行なうことができない。
次に、上述の暗号文の受信および復号処理について説明する。上述の暗号文は同報配信により受信機に提供される。あるいは情報記録媒体に格納されて受信機に提供される。こり暗号文は、リボークの有無に関わらず、すべての受信機が受領可能であるが、リボークされた受信機は暗号文の復号に適用するノードキーを得ることができないので受信情報の復号を行なうことができない。
リボークされていない受信機は、受領した暗号文のセットから自己が復号できる暗号文を選択する。受領した暗号文のセットに含まれる暗号文の暗号化に用いられているノードキーの中には、自身が直接保持しているノードキー、または自身が保持するノードキーから一方向性関数Fを用いて導出できるノードキーが含まれる。
リボークされていない受信機は、このノードキーを用いて暗号文を復号すれば秘密情報を得ることができる。受信機が復号すべき暗号文を見つけるためには、前述のノードキー指定情報を用いればよい。
この暗号文抽出処理において、受信機umは、暗号化に使われたノードキーのノード番号iを抽出し、受信機umに対応するパスノードm[PathNodes−m]に含まれるノード番号iと一致するものを見つける。
さらに、受信機umは、暗号化に使われたノードキーのノード番号iの中から、2kiはパスノードm[PathNodes−m]に含まれるが2k+1iは含まれない最小のkを見つける。この場合、受信機umは、パスノードm[PathNodes−m]に含まれるノードのノードキーNK2kiを保持している。このノードキーNK2kiに対して一方向性関数Fをk回適用することで、暗号文の暗号化キー(=復号キー)として適用されたノードキーNKiを算出することができる。なお、k=0ならば受信機umはノードキーNKiを直接保持している。
具体的な例について図14を参照して説明する。今、リボークされた受信機が図14に示すように、u3,u4,u9〜u16である場合、送信される暗号文は、受信機u1,u2とu5〜u8によってのみ復号可能な暗号文であり、ノードキーNK8とノードキーNK5を適用した暗号文からなる暗号文セットとなる。秘密情報を[Kc]とすると、
E(NK5,Kc),E(NK8,Kc)が、ネットワーク配信あるいは記録媒体に格納されて提供される。なお、E(A,B)はデータBを鍵Aで暗号化したデータを意味する。
E(NK5,Kc),E(NK8,Kc)が、ネットワーク配信あるいは記録媒体に格納されて提供される。なお、E(A,B)はデータBを鍵Aで暗号化したデータを意味する。
例えば、受信機u5(ノード番号=20)は、まず、暗号化に使われたノードキーのノード番号i(i=5,8)の中から、受信機u5に対応するパスノード5[PathNodes−5]={1,2,5,10,20}に含まれるノード番号iと一致するものを見つける。この場合、i=5が検出される。
次に、受信機u5は、2ki、すなわち(2k×5)はパスノード5[PathNodes−5]={1,2,5,10,20}に含まれるが、2k+1i、すなわち、(2k+1×5)は含まれない最小のkを見つける。
k=0→2ki=(20×5)=5、2k+1i=(20+1×5)=10
k=1→2ki=(21×5)=10、2k+1i=(21+1×5)=20
k=2→2ki=(22×5)=20、2k+1i=(22+1×5)=40
40は、パスノード5[PathNodes−5]={1,2,5,10,20}に含まれない。
k=0→2ki=(20×5)=5、2k+1i=(20+1×5)=10
k=1→2ki=(21×5)=10、2k+1i=(21+1×5)=20
k=2→2ki=(22×5)=20、2k+1i=(22+1×5)=40
40は、パスノード5[PathNodes−5]={1,2,5,10,20}に含まれない。
従って、受信機u5にとって、パスノード5[PathNodes−5]={1,2,5,10,20}に含まれるが、2k+1i、すなわち、(2k+1×5)は含まれない最小のkは、k=2となる。この場合、受信機u5は自己の保有するノードキーNK2ki、すなわちノードキーNK22×5=NK20に対して一方向性関数Fを2回適用することで、暗号文に適用されたノードキーNK5を取得することができる。すなわち、
F(NK20)=NK10
F(NK10)=NK5
として暗号文に適用されたノードキーNK5を取得することができる。受信機u5は、この取得ノードキーNK5を適用して、
暗号文セット:E(NK5,Kc),E(NK8,Kc)
中の暗号文:E(NK5,Kc)を復号して秘密情報[Kc]を得ることができる。
F(NK20)=NK10
F(NK10)=NK5
として暗号文に適用されたノードキーNK5を取得することができる。受信機u5は、この取得ノードキーNK5を適用して、
暗号文セット:E(NK5,Kc),E(NK8,Kc)
中の暗号文:E(NK5,Kc)を復号して秘密情報[Kc]を得ることができる。
また、受信機u6(ノード番号=21)は、まず、暗号化に使われたノードキーのノード番号i(i=5,8)の中から、受信機u6に対応するパスノード6[PathNodes−6]={1,2,5,10,21}に含まれるノード番号iと一致するものを見つける。この場合、i=5が検出される。
次に、受信機u6は、2ki、すなわち(2k×5)はパスノード6[PathNodes−6]={1,2,5,10,21}に含まれるが、2k+1i、すなわち、(2k+1×5)は含まれない最小のkを見つける。
k=0→2ki=(20×5)=5、2k+1i=(20+1×5)=10
k=1→2ki=(21×5)=10、2k+1i=(21+1×5)=20
20は、パスノード6[PathNodes−6]={1,2,5,10,21}に含まれない。
k=0→2ki=(20×5)=5、2k+1i=(20+1×5)=10
k=1→2ki=(21×5)=10、2k+1i=(21+1×5)=20
20は、パスノード6[PathNodes−6]={1,2,5,10,21}に含まれない。
従って、受信機u6にとって、パスノード6[PathNodes−6]={1,2,5,10,21}に含まれるが、2k+1i、すなわち、(2k+1×5)は含まれない最小のkは、k=1となる。この場合、受信機u6は自己の保有するノードキーNK2ki、すなわちノードキーNK21×5=NK10に対して一方向性関数Fを1回適用することで、暗号文に適用されたノードキーNK5を取得することができる。すなわち、
F(NK10)=NK5
として暗号文に適用されたノードキーNK5を取得することができる。受信機u6は、この取得ノードキーNK5を適用して、
暗号文セット:E(NK5,Kc),E(NK8,Kc)
中の暗号文:E(NK5,Kc)を復号して秘密情報[Kc]を得ることができる。
F(NK10)=NK5
として暗号文に適用されたノードキーNK5を取得することができる。受信機u6は、この取得ノードキーNK5を適用して、
暗号文セット:E(NK5,Kc),E(NK8,Kc)
中の暗号文:E(NK5,Kc)を復号して秘密情報[Kc]を得ることができる。
また、受信機u7(ノード番号=22)は、まず、暗号化に使われたノードキーのノード番号i(i=5,8)の中から、受信機u7に対応するパスノード7[PathNodes−7]={1,2,5,11,22}に含まれるノード番号iと一致するものを見つける。この場合、i=5が検出される。
次に、受信機u7は、2ki、すなわち(2k×5)はパスノード7[PathNodes−7]={1,2,5,11,22}に含まれるが、2k+1i、すなわち、(2k+1×5)は含まれない最小のkを見つける。
k=0→2ki=(20×5)=5、2k+1i=(20+1×5)=10
10は、パスノード7[PathNodes−7]={1,2,5,11,22}に含まれない。
k=0→2ki=(20×5)=5、2k+1i=(20+1×5)=10
10は、パスノード7[PathNodes−7]={1,2,5,11,22}に含まれない。
従って、受信機u7にとって、パスノード7[PathNodes−7]={1,2,5,11,22}に含まれるが、2k+1i、すなわち、(2k+1×5)は含まれない最小のkは、k=0となる。この場合、受信機u7は、ノードキーNK20×5=NK5を直接保持しており、このノードキーNK5を適用して、
暗号文セット:E(NK5,Kc),E(NK8,Kc)
中の暗号文:E(NK5,Kc)を復号して秘密情報[Kc]を得ることができる。
暗号文セット:E(NK5,Kc),E(NK8,Kc)
中の暗号文:E(NK5,Kc)を復号して秘密情報[Kc]を得ることができる。
受信機umの処理について、図15のフローを参照して説明する。まず、ステップS401において、暗号文セットを受領する。この暗号文は、ネットワークを介してあるいは情報記録媒体を介して受領する。
ステップS402において、受領した暗号文のセットに含まれる暗号文の暗号化に用いられているノードキーの中から、自身が直接保持しているノードキー、または自身が保持するノードキーから一方向性関数Fを用いて導出できるノードキーによって暗号化された暗号文を抽出する。なお、ここで、受信機が復号すべき暗号を決定できないということは、その受信機がリボークされていることを意味している。
さらに、ステップS403において、暗号化に使用されたノードキーを受信機自身が保持しているか否かを判定し、保持している場合には、ステップS405に進み、保持しているノードキーを適用して暗号文を復号し、秘密情報を取得する。
一方、ステップS403において、暗号化に使用されたノードキーを受信機自身が保持していないと判定した場合は、ステップS404に進み、暗号化に使われたノードキー
を保持ノードキーに一方向性関数Fを適用した演算処理により算出し、そののち、ステップS405に進み、算出したノードキーを適用して暗号文を復号し、秘密情報を取得する。
を保持ノードキーに一方向性関数Fを適用した演算処理により算出し、そののち、ステップS405に進み、算出したノードキーを適用して暗号文を復号し、秘密情報を取得する。
なお、ステップS402〜S405の処理においては、前述したように、各受信機は、以下の処理を実行することになる。すなわち、
(a)受信機umは、まず、暗号化に使われたノードキーのノード番号iの中から、受信機umに対応するパスノードm[PathNodes−m]に含まれるノード番号iと一致するものを見つける。
(b)次に、受信機umは、2ki、すなわち(2k×i)はパスノードm[PathNodes−m]に含まれるが、2k+1i、すなわち、(2k+1×i)は含まれない最小のkを見つける。
(c)自己の保持するノードキーNK2ki、すなわちノードキーNK2k×iに対してk回の一方向性関数Fを適用した演算を実行し、暗号化に使われたノードキーを算出する。k=0の場合は、一方向性関数Fを適用した演算は不要である。
(a)受信機umは、まず、暗号化に使われたノードキーのノード番号iの中から、受信機umに対応するパスノードm[PathNodes−m]に含まれるノード番号iと一致するものを見つける。
(b)次に、受信機umは、2ki、すなわち(2k×i)はパスノードm[PathNodes−m]に含まれるが、2k+1i、すなわち、(2k+1×i)は含まれない最小のkを見つける。
(c)自己の保持するノードキーNK2ki、すなわちノードキーNK2k×iに対してk回の一方向性関数Fを適用した演算を実行し、暗号化に使われたノードキーを算出する。k=0の場合は、一方向性関数Fを適用した演算は不要である。
このように、本発明の構成によれば、各受信機は、必要に応じて保持するノードキーから一方向性関数Fを適用して上位のノードキーを算出可能な設定としたので、各受信機の保持すべきノードキーの数が削減される。
図16に一例として、図10(a)の2分木における受信機u1〜u4の保持ノードキーと、保持ノードキーから算出可能な上位ノードキーを示した。この図には、受信機u1〜u4のみをサンプルとして示してあるが、すべての受信機umは、自己のパスm(path−m)にあるパスノードm[PathNodes−m]に対応するすべてのノードキーを算出可能な最低限のノードキーのみを保持するように設定される。
次に、図17、図18を参照してノードキーの決定処理、暗号文の生成処理を実行する情報処理装置、および暗号文の復号処理を実行する受信機としての情報処理装置の機能構成について説明する。
まず、図17を参照してノードキーの決定処理、暗号文の生成処理を実行する情報処理装置の構成について説明する。情報処理装置410は、一方向木生成手段411、提供ノードキー決定手段412、暗号文生成手段413、暗号文提供手段414を有する。
情報処理装置410は、階層木構成に基づくブロードキャストエンクリプション方式を適用し、排除(リボーク)機器を除く特定の選択機器にのみ復号可能な暗号文を提供する処理を実行する情報処理装置であり、一方向木生成手段411は、階層木を構成する各ノードに対応するノードキーの値を、少なくとも1つの下位ノードキーの値に対する一方向性関数Fの適用によって上位ノードキーを算出可能な値に設定した一方向木を生成する。
一方向木生成手段411は、2分木構成を持つ階層木を構成する各ノードに対応するノードキー中、上位ノードのノードキーの値を、直下の2つの下位ノードキーの一方の下位ノードキーの値に対する一方向性関数Fの適用によって算出可能に設定した一方向木を生成する。一方向性関数Fは、例えばMD4またはMD5またはSHA−1である。一方向木生成手段411は、例えば、末端ノード数Nの2分木構成を持つ階層木においてN個の値:xN〜x2N−1を決定し、i=2N−1とする初期設定を実行し、i=(2N−1)〜1において、i=偶数の場合に、一方向性関数Fを適用しF(xi)を計算し、これをxi/2とセットする処理によって、末端ノード数Nの2分木構成の全ノード数2N−1に対応するノードキーx1〜x2N−1を決定する処理を実行する。
提供ノードキー決定手段412は、階層木の末端ノード対応の受信機に、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノードキー中、一方向性関数Fに基づいて算出可能なノードキーを除く最小限のノードキーを提供する。提供ノードキー決定手段412は、階層木の最上位ノードとしてのルートを1とし、幅優先(breadth first order)で各ノードにノード番号(i)を付与した階層木において、末端ノードに対応する受信機に対して、受信機の対応ノードからルートに至るパス上のノード中、ノードiが含まれノード2iが含まれないノードに対応するノードキーのみを受信機に対して提供する処理を実行する。
暗号文生成手段413は、一方向木生成手段411の生成した一方向木の各ノードに対応付けられたノードキーを選択的に適用して暗号化処理を実行して暗号文を生成する。暗号文提供手段414は、このようにして生成された暗号文をネットワークまたは媒体に格納して提供する。
次に、図18を参照して暗号文の復号処理を実行する受信機としての情報処理装置の機能構成について説明する。
暗号文の復号処理を実行する受信機としての情報処理装置420は、暗号文選択手段421、ノードキー算出手段422、復号手段423、ノードキーメモリ424を有する。
暗号文選択手段421は、処理対象とする暗号文から、自己の保持するノードキーまたは保持ノードキーから算出可能な上位ノードキーを適用して生成した暗号文を選択する処理を実行する。具体的には、上述したように、階層木の最上位ノードとしてのルートを1とし、幅優先(breadth first order)で各ノードにノード番号(i)を付与した階層木において、暗号化に使われたノードキーのノード番号の中から、受信機からルートに至るパス上のノードに含まれるノード番号iと一致するものを見つける処理を実行する。
ノードキー算出手段422は、暗号文の適用ノードキーが、保持ノードキーでない場合に保持ノードキーに対して一方向性関数Fを適用し、暗号文の適用ノードキーを算出する。一方向性関数Fは、例えばMD4またはMD5またはSHA−1である。
ノードキー算出手段422は、上述したノードキー算出処理、すなわち、階層木の最上位ノードとしてのルートを1とし、幅優先(breadth first order)で各ノードにノード番号(i)を付与した階層木において、受信機からルートに至るパス上のノードにノード番号2kiが含まれるが、2k+1iは含まれない最小のkを見つける処理を実行し、ノードキーメモリ424に保持するノードキーNK2kiの値に対してk回の一方向性関数Fを適用した演算を実行し、暗号化に使われたノードキーを算出する処理を実行する構成である。
復号手段423は、ノードキーメモリ424に保持するノードキーまたはノードキーメモリ424に保持するノードキーに対してノードキー算出手段422において一方向性関数を適用して算出した算出ノードキーに基づいて、暗号文の復号処理を実行する。
図19に、ノードキーの設定処理、暗号文生成処理を実行する情報処理装置、および暗号文復号処理を実行する受信機としての情報処理装置のハードウェア構成例図を示す。図中で点線で囲われたブロックは必ずしも備わっているわけではない。たとえばメディアインタフェース507は、受信機としての情報処理装置が光ディスクプレーヤ等である場合に装備する。入出力インタフェース503は、他の機器と情報のやりとりをしたり、アンテナからの信号を受信したりする場合に装備される。
情報処理装置500が受信機としての情報処理装置である場合、重要なのは、セキュア記憶部504であり、セットアップフェイズにおいて、管理センタ(TC)から与えられるノードキーが安全に保管される。なお、一方向性関数Fは、セキュア記憶部504またはメイン記憶部505に記憶する。
暗号文生成処理を実行する情報処理装置、または暗号文復号処理を実行する受信機としての情報処理装置500は図19に示すように、コントローラ501、演算ユニット502、入出力インタフェース503、セキュア記憶部504、メイン記憶部505、ディスプレイ装置506、メディアインタフェース507を備える。
コントローラ501は、例えばコンピュータ・プログラムに従ったデータ処理を実行する制御部としての機能を有するCPUによって構成される。演算ユニット502は、例えば暗号鍵の生成、乱数生成、及び暗号処理のための専用の演算部および暗号処理部として機能する。前述した一方向性関数Fに基づく上位ノードキーの算出処理についても実行する。
入出力インタフェース503は、キーボード、マウス等の入力手段からのデータ入力や、外部出力装置に対するデータ出力、ネットワークを介したデータ送受信処理に対応するインタフェースである。
セキュア記憶部504は、例えばセットアップフェイズにおいて生成するノードキー、各種IDなど、安全にまたは秘密に保持すべきデータを保存する記憶部である。
なお、情報処理装置500が受信機としての情報処理装置である場合、セキュア記憶部504に格納されるノードキーは、受信機umに対応するパスノードm[PathNodes−m]に含まれるノードのノードキー中、一方向性関数Fに基づいて、保持するノードキーから算出できないノードキーのみとなる。
メイン記憶部505は、例えばコントローラ501において実行するデータ処理プログラム、その他、一時記憶処理パラメータ、プログラム実行のためのワーク領域等に使用されるメモリ領域である。前述の一方向性関数F情報も格納される。
セキュア記憶部504及びメイン記憶部505は、例えばRAM、ROM等によって構成されるメモリである。ディスプレイ装置506は復号コンテンツの出力等に利用される。メディアインタフェース507は、CD、DVD、MD等のメディアに対する読出/書込機能を提供する。
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
例えば、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
以上、説明したように、本発明の構成では、ブロードキャストエンクリプション(Broadcast Encryption)方式の一態様である階層型木構造を適用した情報配信構成において、階層木を構成する各ノードに対応するノードキーを特定の関係を持つ値に設定した一方向木を生成して適用した。すなわち、上位ノードキーの値を、下位ノードキーの値に一方向性関数Fを適用して算出可能な値に設定した一方向木を適用して暗号文の生成、および提供を行なう。階層木の末端ノード対応の受信機には、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノードキー中、一方向性関数Fに基づいて算出可能なノードキーを除く最小限のノードキーを提供する構成とした。受信機は、受領した処理対象の暗号文の適用ノードキーが、保持ノードキーでない場合に保持ノードキーに対して一方向性関数Fを適用し、暗号文の適用ノードキーを算出することが可能となる。このように本発明の構成を適用することにより、各受信機が安全に保持すべき情報量(ノードキー)の減少が実現される。
101 情報処理装置
201 ノード
230,235 部分木
231,232 ノード
301,302,303 各受信機um対応のパスm
410 情報処理装置
411 一方向木生成手段
412 提供ノードキー決定手段
413 暗号文生成手段
414 暗号文提供手段
420 情報処理装置
421 暗号文選択手段
422 ノードキー算出手段
423 復号手段
424 ノードキーメモリ
500 情報処理装置
501 コントローラ
502 演算ユニット
503 入出力インタフェース
504 セキュア記憶部
505 メイン記憶部
506 ディスプレイ装置
507 メディアインタフェース
201 ノード
230,235 部分木
231,232 ノード
301,302,303 各受信機um対応のパスm
410 情報処理装置
411 一方向木生成手段
412 提供ノードキー決定手段
413 暗号文生成手段
414 暗号文提供手段
420 情報処理装置
421 暗号文選択手段
422 ノードキー算出手段
423 復号手段
424 ノードキーメモリ
500 情報処理装置
501 コントローラ
502 演算ユニット
503 入出力インタフェース
504 セキュア記憶部
505 メイン記憶部
506 ディスプレイ装置
507 メディアインタフェース
Claims (23)
- 階層木構成に基づくブロードキャストエンクリプション方式を適用し、排除(リボーク)機器を除く特定の選択機器にのみ復号可能とした暗号文の提供処理に適用する階層木を生成する情報処理方法であり、
階層木を構成する各ノードに対応するノードキーの値を、少なくとも1つの下位ノードキーの値に対する一方向性関数Fの適用によって上位ノードキーを算出可能な値に設定した一方向木を生成する一方向木生成ステップと、
前記階層木の末端ノード対応の受信機に提供するノードキーとして、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノードキー中、前記一方向性関数Fに基づいて算出可能なノードキーを除く最小限のノードキーを選択する提供ノードキー決定ステップと、
を有することを特徴とする情報処理方法。 - 前記情報処理方法は、さらに、
前記一方向木の各ノードに対応付けられたノードキーを選択的に適用して暗号化処理を実行して暗号文を生成する暗号文生成ステップを有することを特徴とする請求項1に記載の情報処理方法。 - 前記一方向木生成ステップは、
2分木構成を持つ階層木を構成する各ノードに対応するノードキー中、上位ノードのノードキーの値を、直下の2つの下位ノードキーの一方の下位ノードキーの値に対する一方向性関数Fの適用によって算出可能に設定した一方向木を生成するステップであることを特徴とする請求項1に記載の情報処理方法。 - 前記一方向木生成ステップは、
末端ノード数Nの2分木構成を持つ階層木においてN個の値:xN〜x2N−1を決定するステップと、
i=2N−1とする初期設定ステップと、
i=(2N−1)〜1において、i=偶数の場合に、一方向性関数Fを適用しF(xi)を計算し、これをxi/2とセットするステップと、
を有し、上記各ステップの処理によって、末端ノード数Nの2分木構成の全ノード数2N−1に対応するノードキーx1〜x2N−1を決定するステップを含むことを特徴とする請求項1に記載の情報処理方法。 - 前記提供ノードキー決定ステップは、
階層木の最上位ノードとしてのルートを1とし、幅優先(breadth first order)で各ノードにノード番号(i)を付与した階層木において、
末端ノードに対応する受信機に対して、受信機の対応ノードからルートに至るパス上のノード中、ノードiが含まれノード2iが含まれないノードに対応するノードキーのみを提供するステップであることを特徴とする請求項1に記載の情報処理方法。 - 前記一方向性関数Fは、
MD4またはMD5またはSHA−1であることを特徴とする請求項1に記載の情報処理方法。 - 階層木構成に基づくブロードキャストエンクリプション方式を適用し、階層木構成ノード対応のノードキーによって暗号化された暗号文の復号処理を実行する復号処理方法であり、
前記暗号文から、自己の保持するノードキーまたは保持ノードキーから算出可能な上位ノードキーを適用して生成した暗号文を選択する暗号文選択ステップと、
暗号文の適用ノードキーが、保持ノードキーでない場合に保持ノードキーに対して一方向性関数Fを適用し、暗号文の適用ノードキーを算出するノードキー算出ステップと、
保持ノードキーまたは算出ノードキーに基づいて、暗号文の復号処理を実行する復号ステップと、
を有することを特徴とする復号処理方法。 - 前記暗号文選択ステップは、
階層木の最上位ノードとしてのルートを1とし、幅優先(breadth first order)で各ノードにノード番号(i)を付与した階層木において、暗号化に使われたノードキーのノード番号の中から、受信機からルートに至るパス上のノードに含まれるノード番号iと一致するものを見つけるステップであることを特徴とする請求項7に記載の復号処理方法。 - 前記ノードキー算出ステップは、
階層木の最上位ノードとしてのルートを1とし、幅優先(breadth first order)で各ノードにノード番号(i)を付与した階層木において、受信機からルートに至るパス上のノードにノード番号2kiが含まれるが、2k+1iは含まれない最小のkを見つけるステップと、
自己の保持するノードキーNK2kiの値に対してk回の一方向性関数Fを適用した演算を実行し、暗号化に使われたノードキーを算出するステップと、
を含むことを有することを特徴とする請求項7に記載の復号処理方法。 - 前記一方向性関数Fは、
MD4またはMD5またはSHA−1であることを特徴とする請求項7に記載の復号処理方法。 - 階層木構成に基づくブロードキャストエンクリプション方式を適用し、排除(リボーク)機器を除く特定の選択機器にのみ復号可能とした暗号文の提供処理に適用する階層木を生成する情報処理装置であり、
階層木を構成する各ノードに対応するノードキーの値を、少なくとも1つの下位ノードキーの値に対する一方向性関数Fの適用によって上位ノードキーを算出可能な値に設定した一方向木を生成する一方向木生成手段と、
前記階層木の末端ノード対応の受信機に提供するノードキーとして、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノードキー中、前記一方向性関数Fに基づいて算出可能なノードキーを除く最小限のノードキーを選択する提供ノードキー決定手段と、
を有することを特徴とする情報処理装置。 - 前記情報処理装置は、さらに、
前記一方向木の各ノードに対応付けられたノードキーを選択的に適用して暗号化処理を実行して暗号文を生成する暗号文生成手段と、
前記暗号文を前記受信機に提供する暗号文提供手段と、
を有することを特徴とする請求項11に記載の情報処理装置。 - 前記一方向木生成手段は、
2分木構成を持つ階層木を構成する各ノードに対応するノードキー中、上位ノードのノードキーの値を、直下の2つの下位ノードキーの一方の下位ノードキーの値に対する一方向性関数Fの適用によって算出可能に設定した一方向木を生成する構成を有することを特徴とする請求項11に記載の情報処理装置。 - 前記一方向木生成手段は、
末端ノード数Nの2分木構成を持つ階層木においてN個の値:xN〜x2N−1を決定し、i=2N−1とする初期設定を実行し、i=(2N−1)〜1において、i=偶数の場合に、一方向性関数Fを適用しF(xi)を計算し、これをxi/2とセットする処理によって、末端ノード数Nの2分木構成の全ノード数2N−1に対応するノードキーx1〜x2N−1を決定する構成であることを特徴とする請求項11に記載の情報処理装置。 - 前記提供ノードキー決定手段は、
階層木の最上位ノードとしてのルートを1とし、幅優先(breadth first order)で各ノードにノード番号(i)を付与した階層木において、
末端ノードに対応する受信機に対して、受信機の対応ノードからルートに至るパス上のノード中、ノードiが含まれノード2iが含まれないノードに対応するノードキーのみを提供する構成であることを特徴とする請求項11に記載の情報処理装置。 - 前記一方向性関数Fは、
MD4またはMD5またはSHA−1であることを特徴とする請求項11に記載の情報処理装置。 - 階層木構成に基づくブロードキャストエンクリプション方式を適用し、階層木構成ノード対応のノードキーによって暗号化された暗号文の復号処理を実行する情報処理装置であり、
前記暗号文から、自己の保持するノードキーまたは保持ノードキーから算出可能な上位ノードキーを適用して生成した暗号文を選択する暗号文選択手段と、
暗号文の適用ノードキーが、保持ノードキーでない場合に保持ノードキーに対して一方向性関数Fを適用し、暗号文の適用ノードキーを算出するノードキー算出手段と、
保持ノードキーまたは算出ノードキーに基づいて、暗号文の復号処理を実行する復号手段と、
を有することを特徴とする情報処理装置。 - 前記暗号文選択手段は、
階層木の最上位ノードとしてのルートを1とし、幅優先(breadth first order)で各ノードにノード番号(i)を付与した階層木において、暗号化に使われたノードキーのノード番号の中から、受信機からルートに至るパス上のノードに含まれるノード番号iと一致するものを見つける処理を実行する構成であることを特徴とする請求項17に記載の情報処理装置。 - 前記ノードキー算出手段は、
階層木の最上位ノードとしてのルートを1とし、幅優先(breadth first order)で各ノードにノード番号(i)を付与した階層木において、受信機からルートに至るパス上のノードにノード番号2kiが含まれるが、2k+1iは含まれない最小のkを見つける処理を実行し、自己の保持するノードキーNK2kiの値に対してk回の一方向性関数Fを適用した演算を実行し、暗号化に使われたノードキーを算出する処理を実行する構成であることを有することを特徴とする請求項17に記載の情報処理装置。 - 前記一方向性関数Fは、
MD4またはMD5またはSHA−1であることを特徴とする請求項17に記載の情報処理装置。 - 階層木構成に基づくブロードキャストエンクリプション方式を適用し、排除(リボーク)機器を除く特定の選択機器にのみ復号可能とした暗号文の提供処理に適用する階層木を生成するコンピュータ・プログラムであり、
階層木を構成する各ノードに対応するノードキーの値を、少なくとも1つの下位ノードキーの値に対する一方向性関数Fの適用によって上位ノードキーを算出可能な値に設定した一方向木を生成する一方向木生成ステップと、
前記階層木の末端ノード対応の受信機に提供するノードキーとして、受信機対応ノードから最上位ノードとしてのルートに至るパスに含まれるノードのノードキー中、前記一方向性関数Fに基づいて算出可能なノードキーを除く最小限のノードキーを選択する提供ノードキー決定ステップと、
を有することを特徴とするコンピュータ・プログラム。 - 前記コンピュータ・プログラムは、さらに、
前記一方向木の各ノードに対応付けられたノードキーを選択的に適用して暗号化処理を実行して暗号文を生成する暗号文生成ステップを有することを特徴とする請求項21に記載のコンピュータ・プログラム。 - 階層木構成に基づくブロードキャストエンクリプション方式を適用し、階層木構成ノード対応のノードキーによって暗号化された暗号文の復号処理を実行するコンピュータ・プログラムであり、
前記暗号文から、自己の保持するノードキーまたは保持ノードキーから算出可能な上位ノードキーを適用して生成した暗号文を選択する暗号文選択ステップと、
暗号文の適用ノードキーが、保持ノードキーでない場合に保持ノードキーに対して一方向性関数Fを適用し、暗号文の適用ノードキーを算出するノードキー算出ステップと、
保持ノードキーまたは算出ノードキーに基づいて、暗号文の復号処理を実行する復号ステップと、
を有することを特徴とするコンピュータ・プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004063477A JP2005252916A (ja) | 2004-03-08 | 2004-03-08 | 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム |
US11/072,596 US20050210014A1 (en) | 2004-03-08 | 2005-03-07 | Information-processing method, decryption method, information-processing apparatus and computer program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004063477A JP2005252916A (ja) | 2004-03-08 | 2004-03-08 | 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005252916A true JP2005252916A (ja) | 2005-09-15 |
Family
ID=35032949
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004063477A Pending JP2005252916A (ja) | 2004-03-08 | 2004-03-08 | 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005252916A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010193226A (ja) * | 2009-02-19 | 2010-09-02 | Mitsubishi Electric Corp | 通信装置及び通信方法及び通信プログラム |
JP2018157246A (ja) * | 2017-03-15 | 2018-10-04 | 株式会社東芝 | 管理装置、および管理方法 |
JP2020129808A (ja) * | 2017-03-15 | 2020-08-27 | 株式会社東芝 | 管理装置、および管理方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003289297A (ja) * | 2002-01-25 | 2003-10-10 | Matsushita Electric Ind Co Ltd | データ配信システム |
-
2004
- 2004-03-08 JP JP2004063477A patent/JP2005252916A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003289297A (ja) * | 2002-01-25 | 2003-10-10 | Matsushita Electric Ind Co Ltd | データ配信システム |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010193226A (ja) * | 2009-02-19 | 2010-09-02 | Mitsubishi Electric Corp | 通信装置及び通信方法及び通信プログラム |
JP2018157246A (ja) * | 2017-03-15 | 2018-10-04 | 株式会社東芝 | 管理装置、および管理方法 |
JP2020129808A (ja) * | 2017-03-15 | 2020-08-27 | 株式会社東芝 | 管理装置、および管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7340054B2 (en) | Information processing method, decrypting method, information processing apparatus, and computer program | |
US20070133806A1 (en) | Information processing method, decryption method, information processing device, and computer program | |
US20050210014A1 (en) | Information-processing method, decryption method, information-processing apparatus and computer program | |
US20080152134A1 (en) | Efficient revocation of receivers | |
JP2002152187A (ja) | 情報処理装置、および情報処理方法、並びにプログラム記憶媒体 | |
JP2001352321A (ja) | 情報処理システム、情報処理方法、および情報記録媒体、並びにプログラム提供媒体 | |
JP2001358707A (ja) | 暗号鍵ブロックを用いた情報処理システムおよび情報処理方法、並びにプログラム提供媒体 | |
KR101485460B1 (ko) | 브로드캐스트 암호화에서 디바이스 키를 추적하는 방법 | |
WO2008059672A1 (fr) | Dispositif de traitement d'informations | |
JP2008131076A (ja) | 情報処理装置、端末装置、情報処理方法、鍵生成方法、及びプログラム | |
JP2006115464A (ja) | 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム | |
JP4561074B2 (ja) | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム | |
JP2008131072A (ja) | 情報処理装置、端末装置、情報処理方法、及び鍵生成方法 | |
JP2005333242A (ja) | 鍵管理システム、及び再生装置 | |
JP4161859B2 (ja) | 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム | |
Billet et al. | Traitors collaborating in public: Pirates 2.0 | |
JP2007189597A (ja) | 暗号化装置および暗号化方法、並びに復号化装置および復号化方法 | |
JP2001358705A (ja) | 暗号鍵ブロックを用いた情報処理システムおよび情報処理方法、並びにプログラム提供媒体 | |
JP4635459B2 (ja) | 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム | |
JP2005252916A (ja) | 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム | |
JP2004229128A (ja) | 暗号データ配信システム、および情報処理装置、情報処理方法、並びにコンピュータ・プログラム | |
JP2008092514A (ja) | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム | |
JP4576824B2 (ja) | 情報処理装置および情報処理方法 | |
JP2005191805A (ja) | 暗号文配信方法、情報処理装置、および情報処理方法、並びにコンピュータ・プログラム | |
JP2007020025A (ja) | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060904 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100126 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100319 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100420 |