JP2008131079A - Information processor, terminal device, information processing method, and key generation method - Google Patents

Information processor, terminal device, information processing method, and key generation method Download PDF

Info

Publication number
JP2008131079A
JP2008131079A JP2006310226A JP2006310226A JP2008131079A JP 2008131079 A JP2008131079 A JP 2008131079A JP 2006310226 A JP2006310226 A JP 2006310226A JP 2006310226 A JP2006310226 A JP 2006310226A JP 2008131079 A JP2008131079 A JP 2008131079A
Authority
JP
Japan
Prior art keywords
directional
key
directed graph
temporary
horizontal coordinate
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
JP2006310226A
Other languages
Japanese (ja)
Other versions
JP2008131079A5 (en
Inventor
Tomoyuki Asano
智之 浅野
Masafumi Kusakawa
雅文 草川
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 JP2006310226A priority Critical patent/JP2008131079A/en
Priority to KR1020097009871A priority patent/KR20090089313A/en
Priority to US12/515,298 priority patent/US8300816B2/en
Priority to EP07829126A priority patent/EP2086160A1/en
Priority to PCT/JP2007/069387 priority patent/WO2008059672A1/en
Priority to CN200780042720.2A priority patent/CN101536401B/en
Publication of JP2008131079A publication Critical patent/JP2008131079A/en
Publication of JP2008131079A5 publication Critical patent/JP2008131079A5/ja
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide an information processor in which the number of keys to be held by a user and the amount of computation required for the user to generate a key can be decreased, and to provide a terminal device, an information processing method, and a key generation method. <P>SOLUTION: The information processor can generate a directed graph representing an encryption key generation logic which derives a set key for encrypting the content or content key. The information processor divides a set of users (terminals) into a plurality of subsets, assigns a set key and an intermediate key to each subset, and outputs an intermediate key corresponding to a subset associated with a set key corresponding to that subset by a directed branch when the intermediate key corresponding to a subset is inputted. The information processor can reduce the amount of computation and the number of keys to be held by the user by constituting the directed branch included in a directed graph with a longer directed branch based on a predetermined rule and then replacing the directed branch with a shorter one. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明は、情報処理装置、端末装置、情報処理方法、及び鍵生成方法に関する。   The present invention relates to an information processing device, a terminal device, an information processing method, and a key generation method.

近年、ネットワーク等を介したコンテンツ配信に関する暗号化技術の発展には非常に大きな関心が寄せられている。その中でも、暗号化されたコンテンツを復号するための暗号鍵をより安全かつ効率的に配信する方法に関して特に注目が集まっている。通常、暗号化されたコンテンツを配信する1人の配信者に対して、正当な受信権を有するn(nは2以上の自然数)人の受信者が存在し、ネットワーク上に存在する無数の傍受者の中で、当該n人の受信者のみが、暗号化されたコンテンツを復号できる仕組みが必要となる。さらに、上記の正当な受信権を有する受信者数nが時間と共に変化するため、受信者を要素とする集合の変化に対してフレキシブルに対応できる仕組みが求められる。   In recent years, there has been a great interest in the development of encryption technology related to content distribution over a network or the like. Among them, a particular attention has been focused on a method for distributing an encryption key for decrypting encrypted content more safely and efficiently. Usually, for one distributor who distributes encrypted content, there are n (n is a natural number of 2 or more) receivers who have a valid reception right, and the infinite number of intercepts existing on the network Among them, a mechanism is required in which only the n recipients can decrypt the encrypted content. Furthermore, since the number n of receivers having the above-mentioned valid reception rights changes with time, a mechanism that can flexibly cope with changes in the set having receivers as elements is required.

また、当然の事ながら、こうした仕組みを実現するにあたって、配信者側には、暗号鍵の生成、保持、配信、及びコンテンツの暗号化等に関する処理負荷が発生し、受信者には、復号鍵の保持、受信、及びコンテンツの復号等に関する処理負荷が発生する。確かに、最近は、情報処理機器が有する演算処理能力及び記憶容量等の向上、情報伝送経路が有する通信速度の向上等の種々の技術的発展に支えられ、上記の暗号配信処理負荷に掛かる負荷が相対的に低減している。しかし、コンテンツ配信サービスの需要者が劇的に増加している上、熟達した悪意の傍受者に対抗できるだけの高い堅牢性を持った暗号化技術が要求されるため、弥が上にも暗号配信に伴う処理負荷が増加してしまう。   Of course, in order to realize such a mechanism, a processing load relating to generation, retention, distribution, and content encryption of an encryption key is generated on the distributor side, and a decryption key is transmitted to the receiver. Processing load related to retention, reception, content decryption, and the like occurs. Certainly, recently, the load on the above encryption distribution processing load is supported by various technological developments such as improvement of the arithmetic processing capability and storage capacity of information processing equipment, improvement of communication speed of information transmission path, etc. Is relatively reduced. However, as the demand for content distribution services has increased dramatically, and encryption technology with high robustness that can resist a malicious eavesdropper is required, the encryption distribution is also on the top. Will increase the processing load.

このような状況において、同報通信路を用いて、配信者が任意に選択した受信者のグループに情報を安全に送信する手法として、revocation schemeやbroadcast encryption scheme等の方式が提案されている。このうちbroadcast encryption schemeの一例として、以下の非特許文献1に開示されている暗号鍵配信方式があり、この方式の特徴は、従来の階層化木構造を用いた鍵配信方式から更に、鍵の導出経路を改良した点にある。つまり、この方式では、受信者の集合を複数の部分集合に分けて考えるが、ある部分集合に当該部分集合に含まれない受信者を加えて新たな部分集合を作り、これを繰り返すことにより部分集合の鎖を作り、それぞれの部分集合に対応する暗号鍵を鎖に沿って導出する。これにより、受信者が保持すべき鍵数、暗号鍵を生成するための計算量、及び鍵配信に係る通信量を低減することが可能である。   In such a situation, a scheme such as a revocation scheme or a broadcast encryption scheme has been proposed as a method for safely transmitting information to a group of recipients arbitrarily selected by a distributor using a broadcast channel. Among these, as an example of the broadcast encryption scheme, there is an encryption key distribution method disclosed in Non-Patent Document 1 below. The feature of this method is that the key distribution method is further improved from the conventional key distribution method using a hierarchical tree structure. The derivation route is improved. In other words, in this method, a set of recipients is divided into a plurality of subsets, but a receiver that is not included in the subset is added to a certain subset to create a new subset, and this is repeated. A chain of sets is created, and an encryption key corresponding to each subset is derived along the chain. Thereby, it is possible to reduce the number of keys to be held by the receiver, the calculation amount for generating the encryption key, and the communication amount related to key distribution.

Nuttapong Attrapadung and Hideki Imai,“Subset Incremental Chain Based Broadcast Encryption with Shorter Ciphertext”,The 28th Symposium on Information Theory and Its Applications(SITA2005)Nutapong Attrapadung and Hideki Imai, “Subset Incremental Chain Based Broadcast Encryption with the Short Cipher Text”, The 28th Symposium.

確かに、上記の非特許文献1の暗号鍵配信方式には、従来のCS方式(Complete Subtree scheme)やSD方式(Subset Difference scheme)等の鍵配信方式に比較すると大きなアドバンテージがあった。しかし、実施を想定した実際的な観点からすると、受信者数が多い場合には、受信者側の端末装置で保持すべき鍵数、及び、コンテンツ復号に要する計算量が、依然として大きいという問題を有していた。   Certainly, the encryption key distribution method of Non-Patent Document 1 described above has a great advantage compared to the conventional key distribution methods such as the CS method (Complete Subtree scheme) and the SD method (Subset Difference scheme). However, from a practical point of view assuming implementation, when the number of recipients is large, there is a problem that the number of keys to be held in the terminal device on the recipient side and the amount of calculation required for content decryption are still large. Had.

そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、受信者側の端末装置で保持すべき鍵数を低減しつつ、暗号鍵の導出に要する計算量を低減することが可能な、新規かつ改良された情報処理装置、端末装置、情報処理方法、鍵生成方法、及びプログラムを提供することにある。   Therefore, the present invention has been made in view of the above problems, and an object of the present invention is to perform calculation required for deriving an encryption key while reducing the number of keys to be held in the terminal device on the receiver side. It is an object of the present invention to provide a new and improved information processing device, terminal device, information processing method, key generation method, and program capable of reducing the amount.

上記課題を解決するために、本発明のある観点によれば、複数の有向枝により構成される仮有向グラフに対し、当該仮有向グラフを構成する複数の有向枝の中からより長い有向枝を残した上で、当該残した有向枝の中から少なくとも1つの有向枝をより短い有向枝に置換することにより生成された有向グラフを取得する有向グラフ取得部と、有向グラフ取得部により取得された有向グラフに基づいてコンテンツ又はコンテンツ鍵を暗号化又は復号するためのセット鍵を生成する鍵生成部と、を備えることを特徴とする、情報処理装置が提供される。   In order to solve the above-described problem, according to an aspect of the present invention, for a temporary directed graph composed of a plurality of directed edges, a longer directed edge from among a plurality of directed branches constituting the temporary directed graph. And a directed graph acquisition unit that acquires a directed graph generated by replacing at least one of the remaining directed branches with a shorter directed branch, and a directed graph acquisition unit. And a key generation unit for generating a set key for encrypting or decrypting the content or the content key based on the directed graph.

また、上記課題を解決するために、本発明のある観点によれば、番号1〜n(nは自然数)が対応付けられたn個の葉ノードと、根ノードと、根ノード及び葉ノード以外の複数の中間ノードと、から構成される2分木構造に対し、ある中間ノードv又は根ノードvの下位に配置された複数の葉ノードの中で左端に位置する葉ノードの番号がlv、そして右端に位置する葉ノードの番号がrvと定義されており,さらに,自然数i及びj(i≦j)に対して,集合(i→j)が{{i},{i,i+1},...,{i,i+1,...,j−1,j}}と表記され、集合(i←j)が{{j},{j,j−1},...,{j,j−1,...,i+1,i}}と表記されるものと仮定されており,集合(1→n)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に左から右に向かって包含関係が大きくなるように配列され、根ノードに対応付けられた第1水平座標軸が設定され,また,集合(2←n)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に右から左に向かって包含関係が大きくなるように配列され、根ノードに対応付けられた第2水平座標軸が設定されており,さらに,中間ノードの各々について、集合(lv→rv−1)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に左から右に向かって包含関係が大きくなるように配列され、ある中間ノードvに対応づけられた第3水平座標軸が設定され、また,集合(lv+1←rv)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に右から左に向かって包含関係が大きくなるように配列され、ある中間ノードvに対応付けられた第4水平座標軸が設定された上で、所定の整数kに対し,n(x−1)/k<(rv−lv+1)≦nx/kを満たす自然数xに応じて長さni/k(i=0,1,...x−1)を有する複数の有向枝を第1〜4水平座標軸上に配置して形成された仮有向グラフを処理する情報処理装置であって、仮有向グラフを取得する仮有向グラフ取得部と、仮有向グラフ取得部により取得された仮有向グラフを構成する複数の有向枝の中から、より長い有向枝を残して有向グラフを生成する有向グラフ生成部と、有向グラフを構成する複数の有向枝の中で,連続する有向枝の最大数を決定する最長有向パス決定部と、連続する有向枝の最大数を超えないように、有向グラフを構成する少なくとも1つの有向枝をより短い有向枝に置換して有向グラフを再構成する有向枝置換部と、有向枝置換部により再構成された有向グラフに基づいてコンテンツ又はコンテンツ鍵を暗号化するためのセット鍵を生成する鍵生成部と、を備えることを特徴とする、情報処理装置が提供される。 In order to solve the above problem, according to a certain aspect of the present invention, n leaf nodes associated with numbers 1 to n (n is a natural number), a root node, and a node other than a root node and a leaf node The number of the leaf node located at the left end among a plurality of leaf nodes arranged below a certain intermediate node v or root node v is lv, for a binary tree structure composed of a plurality of intermediate nodes And the number of the leaf node located at the right end is defined as rv. Furthermore, for natural numbers i and j (i ≦ j), the set (i → j) is {{i}, {i, i + 1}, . . . , {I, i + 1,. . . , J−1, j}} and the set (i ← j) is {{j}, {j, j−1},. . . , {J, j-1,. . . , I + 1, i}} and the coordinate points associated with each subset included in the set (1 → n) have an inclusive relationship from left to right on the horizontal coordinate axis. The first horizontal coordinate axis that is arranged so as to be large and is associated with the root node is set, and the coordinate point that is associated with each subset included in the set (2 ← n) is on the horizontal coordinate axis from the right. Arranged so that the inclusion relation increases toward the left, the second horizontal coordinate axis associated with the root node is set, and each intermediate node is included in the set (lv → rv−1) The coordinate points associated with each subset are arranged on the horizontal coordinate axis so that the inclusive relation increases from left to right, a third horizontal coordinate axis associated with a certain intermediate node v is set, and Set (lv + 1 ← rv The coordinate points associated with each subset included in are arranged on the horizontal coordinate axis so that the inclusion relation increases from right to left, and the fourth horizontal coordinate axis associated with a certain intermediate node v is set. In addition, for a predetermined integer k, the length n i / k (i = 0, 1, depending on the natural number x satisfying n (x−1) / k <(rv−lv + 1) ≦ n x / k ... x-1) is an information processing apparatus that processes a temporary directed graph formed by arranging a plurality of directed branches on the first to fourth horizontal coordinate axes, and acquires a temporary directed graph. And a directed graph generation unit that generates a directed graph by leaving a longer directed branch out of a plurality of directed branches that form the temporary directed graph acquired by the temporary directed graph acquisition unit, and a plurality of directed branches that configure the directed graph Determines the maximum number of consecutive directional branches A longest directional path determination unit to be determined, and at least one directional branch constituting the directed graph is replaced with a shorter directional branch so as not to exceed the maximum number of continuous directional branches. An information processing comprising: a directional branch replacement unit; and a key generation unit that generates a set key for encrypting content or a content key based on the directed graph reconstructed by the directional branch replacement unit An apparatus is provided.

また、上記課題を解決するために、本発明のある観点によれば、番号1〜n(nは自然数)が対応付けられたn個の葉ノードと、根ノードと、根ノード及び葉ノード以外の複数の中間ノードと、から構成される2分木構造を設定し、自然数i及びj(i≦j)に関して、集合(i→j)を{{i},{i,i+1},...,{i,i+1,...,j−1,j}}、集合(i←j)を{{j},{j,j−1},...,{j,j−1,...,i+1,i}}と定義して、ある中間ノードv又は根ノードvの下位に配置された複数の葉ノードのうち、左端に位置する葉ノードの番号をlv、右端に位置する葉ノードの番号をrvと設定する木構造設定部と、
集合(1→n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、根ノードに対応する第1水平座標軸と、集合(2←n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、根ノードに対応する第2水平座標軸と、中間ノードの各々について、集合(lv→rv−1)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第3水平座標軸と、集合(lv+1←rv)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第4水平座標軸と、を設定し、第3水平座標軸上の右端に位置する座標点の右側と、第2及び第4水平座標軸上の左端に位置する座標点の左側と、にそれぞれ2個の仮座標点を配置し、第1水平座標軸上の右端に位置する座標点を第1の仮座標点として設定し、当該第1の仮座標点の右側に第2の仮座標点を配置する座標軸設定部と、
所定の整数kを設定し、n(x−1)/k<(rv−lv+1)≦nx/kを満たす整数xを算定した上で、整数i=0〜x−1の各々について、ni/kの長さを有する右方向を向いた一又は複数の有向枝を連結して第1及び第3水平座標軸上の最左にある座標点を始点とする有向パスを形成し、ni/kの長さを有する左方向を向いた一又は複数の有向枝を連結して第2及び第4水平座標軸上の最右にある座標点を始点とする有向パスを形成し、第1〜4水平座標軸の各々について、仮座標点を始点又は終点とする全ての有向枝を除外し、第1〜4水平座標軸上の各座標点に到達する有向枝のうち、最長の有向枝以外の有向枝を除外することにより、集合(1→n−1)、集合(2←n)、集合(lv+1←rv)、集合(lv→rv−1)に関する仮有向グラフをそれぞれ生成し、集合(1→n−1)に関する仮有向グラフに対し、第1水平座標軸上にある第1の仮座標点を終点とする長さ1の有向枝を追加して、集合(1→n)に関する仮有向グラフを生成する仮有向グラフ生成部と、
連続する有向枝によって形成された有向パスの中から、有向パスを構成する有向枝数が最大となる最長の有向パスを決定する最長有向パス決定部と、
各有向パスの有向枝数が、最長の有向パスの有向枝数を超えないように、各有向パスを構成する有向枝を、より短い有向枝に置換して有向グラフを生成する有向グラフ生成部と、を備えることを特徴とする、情報処理装置が提供される。
In order to solve the above problem, according to a certain aspect of the present invention, n leaf nodes associated with numbers 1 to n (n is a natural number), a root node, and a node other than a root node and a leaf node A binary tree structure composed of a plurality of intermediate nodes and a natural number i and j (i ≦ j) is set to {{i}, {i, i + 1},. . . , {I, i + 1,. . . , J−1, j}}, and the set (i ← j) is represented by {{j}, {j, j−1},. . . , {J, j-1,. . . , I + 1, i}}, and among the plurality of leaf nodes arranged below a certain intermediate node v or root node v, the number of the leaf node located at the left end is lv, and the leaf node located at the right end is A tree structure setting unit for setting the number to rv;
The first horizontal corresponding to the root node in which the coordinate points associated with each subset included in the set (1 → n) are arranged on the horizontal coordinate axis so that the inclusion relation increases from left to right. Coordinate axes and coordinate points associated with each subset included in the set (2 ← n) correspond to root nodes arranged on the horizontal coordinate axis so that the inclusion relation increases from right to left. For each of the second horizontal coordinate axis and the intermediate node, the coordinate point associated with each subset included in the set (lv → rv−1) has a greater inclusive relation from left to right on the horizontal coordinate axis. The coordinate points associated with the third horizontal coordinate axis corresponding to a certain intermediate node v and the respective subsets included in the set (lv + 1 ← rv) are arranged on the horizontal coordinate axis from right to left. So that the inclusive relationship is larger A fourth horizontal coordinate axis corresponding to a certain intermediate node v is set, and is located at the right side of the coordinate point located at the right end on the third horizontal coordinate axis and at the left end on the second and fourth horizontal coordinate axes. Two temporary coordinate points are respectively arranged on the left side of the coordinate point, the coordinate point located at the right end on the first horizontal coordinate axis is set as the first temporary coordinate point, and the right side of the first temporary coordinate point A coordinate axis setting unit for arranging the second temporary coordinate point at
A predetermined integer k is set, and an integer x satisfying n (x−1) / k <(rv−lv + 1) ≦ n x / k is calculated. Then, for each of the integers i = 0 to x−1, n connecting one or more directional branches directed to the right having a length of i / k to form a directional path starting from the leftmost coordinate point on the first and third horizontal coordinate axes; a directional path starting from the rightmost coordinate point on the second and fourth horizontal coordinate axes is formed by connecting one or a plurality of directional branches facing the left direction having a length of ni / k. For each of the first to fourth horizontal coordinate axes, the longest of the directional branches that reach each coordinate point on the first to fourth horizontal coordinate axes, excluding all directional branches that have the temporary coordinate point as the starting point or the end point By excluding the directional branch other than the directional branch, the set (1 → n−1), the set (2 ← n), the set (lv + 1 ← rv), and the set (lv → r) -1) are respectively generated, and a directional branch having a length of 1 having a first temporary coordinate point on the first horizontal coordinate axis as an end point is generated with respect to the temporary digraph related to the set (1 → n-1). In addition, a temporary digraph generation unit that generates a temporary digraph for the set (1 → n);
A longest directional path determination unit that determines a longest directional path in which the number of directional branches constituting the directional path is the largest among directional paths formed by continuous directional branches;
Replace the directional branch of each directional path with a shorter directional branch so that the number of directional branches of each directional path does not exceed the number of directional branches of the longest directional path. There is provided an information processing apparatus including a directed graph generation unit for generating.

このように、中間鍵及びセット鍵を用いた暗号鍵配信方式において、上記の有向グラフに基づいた中間鍵の配信、又はセット鍵の生成が可能になることで、配信された暗号情報を復号する際に、各ユーザ(端末装置)が復号用の鍵を生成するために必要な計算量の最悪値を低減させると共に、各ユーザが保持すべき鍵数を低減することが可能になる。   As described above, in the encryption key distribution method using the intermediate key and the set key, when the distributed encryption information is decrypted by enabling the distribution of the intermediate key based on the directed graph or the generation of the set key, In addition, it is possible to reduce the worst value of the amount of calculation required for each user (terminal device) to generate a decryption key and to reduce the number of keys that each user should hold.

また、上記の最長有向パス決定部は、集合(1→n)、集合(2←n)、集合(lv+1←rv)、集合(lv→rv−1)に関する仮有向グラフのうち、最長有向パスを含まない各仮有向グラフについて、仮有向グラフ毎の最長有向パスを決定してもよい。さらに、上記の有向グラフ生成部は、各仮有向グラフに対し、各有向パスの有向枝数が仮有向グラフ毎の最長有向パスの有向枝数を超えないように、各有向パスを構成する有向枝を、より短い有向枝に置換して有向グラフを生成してもよい。   In addition, the longest directional path determination unit described above is the longest directional among the temporary directed graphs regarding the set (1 → n), the set (2 ← n), the set (lv + 1 ← rv), and the set (lv → rv−1). For each temporary directed graph that does not include a path, the longest directed path for each temporary directed graph may be determined. Furthermore, the above directed graph generation unit configures each directed path so that the number of directed edges of each directed path does not exceed the number of directed edges of the longest directed path for each temporary directed graph. A directed graph may be generated by replacing a directed edge with a shorter directed edge.

さらに、上記の情報処理装置は、有向グラフに基づいて、コンテンツ又はコンテンツ鍵を暗号化するためのセット鍵を生成する鍵生成部を備えていてもよい。   Further, the information processing apparatus may include a key generation unit that generates a set key for encrypting the content or the content key based on the directed graph.

さらに、上記の鍵生成部は、有向グラフにおけるある座標点に対応する部分集合Sの中間鍵t(S)の入力に応じて、当該座標点に対応する部分集合Sに対応するセット鍵k(S)と、当該座標点Sを始点とする有向枝の終点の座標点S1,S2,・・・,Skの中間鍵t(S1),t(S2),・・・,t(Sk)と、を出力するようにしてもよい。   Further, in response to the input of the intermediate key t (S) of the subset S corresponding to a certain coordinate point in the directed graph, the key generation unit described above sets the set key k (S) corresponding to the subset S corresponding to the coordinate point. ), And intermediate keys t (S1), t (S2),..., T (Sk) of the coordinate points S1, S2,. , May be output.

また、上記の鍵生成部は、有向グラフにおけるある座標点に対応する部分集合Sのセット鍵k(S)の入力に応じて、当該座標点Sを始点とする有向枝の終点の座標点S1,S2,・・・,Skのセット鍵k(S1),k(S2),・・・,k(Sk)を出力するようにしてもよい。   Further, the key generation unit described above, in response to the input of the set key k (S) of the subset S corresponding to a certain coordinate point in the directed graph, the coordinate point S1 of the end point of the directional branch starting from the coordinate point S. , S2,..., Sk set keys k (S1), k (S2),..., K (Sk) may be output.

さらに、上記の情報処理装置は、セット鍵を用いてコンテンツ又はコンテンツ鍵を暗号化する暗号化部を備えてもよい。   Furthermore, the information processing apparatus may include an encryption unit that encrypts content or a content key using a set key.

さらに、上記の情報処理装置は、木構造を構成する葉ノード1〜nの一部又は全部にそれぞれ対応付けられた端末装置に対し、暗号化部により暗号化されたコンテンツ又はコンテンツ鍵を送信する送信部を備えていてもよい。   Furthermore, the information processing apparatus transmits the content or content key encrypted by the encryption unit to the terminal devices associated with some or all of the leaf nodes 1 to n constituting the tree structure. You may provide the transmission part.

また、上記の有向グラフ生成部は、各有向パスの終点方向に向かって、より短い有向枝が配置されるように仮有向グラフの有向枝を置換してもよい。   The directed graph generation unit may replace the directional branch of the temporary directed graph so that a shorter directional branch is arranged toward the end point direction of each directional path.

さらに、上記の情報処理装置は、木構造を構成する葉ノード1〜nの部分集合をSiと定義したときに、セット鍵又はコンテンツ鍵で暗号化されたコンテンツの復号を許可する端末装置の集合(N\R)を決定し、集合(N\R)=S1∪S2∪・・・∪Smを満たすm個の部分集合S1〜Smを、mが最小となるように決定する部分集合決定部を備えていてもよい。   Furthermore, the information processing apparatus described above is a set of terminal devices that permit decryption of content encrypted with a set key or a content key when a subset of leaf nodes 1 to n constituting a tree structure is defined as Si. (N \ R) is determined, and a subset determination unit that determines m subsets S1 to Sm satisfying the set (N \ R) = S1∪S2∪... Sm so that m is minimized. May be provided.

さらに、上記の情報処理装置は、集合(N\R)を表す情報、又は、集合(N\R)を構成する部分集合S1〜Smを表す情報を、端末装置に送信する送信部を備えてもよい。   Furthermore, the information processing apparatus includes a transmission unit that transmits information representing the set (N \ R) or information representing the subsets S1 to Sm constituting the set (N \ R) to the terminal device. Also good.

さらに、上記の情報処理装置は、セット鍵を用いてコンテンツ又はコンテンツ鍵を復号する復号部を備えてもよい。   Furthermore, the information processing apparatus may include a decrypting unit that decrypts content or a content key using a set key.

さらに、上記の情報処理装置は、所定の2分木構造を構成する葉ノード1〜n(nは自然数)の1つ以上に対応付けられ,セット鍵を用いて暗号化されたコンテンツ又はコンテンツ鍵を受信する受信部を備えてもよい。   Further, the information processing apparatus described above is a content or content key that is associated with one or more leaf nodes 1 to n (n is a natural number) constituting a predetermined binary tree structure and is encrypted using a set key. May be provided.

受信部が受信する暗号化されたコンテンツ又はコンテンツ鍵は,葉ノード1〜nの部分集合として定義された集合Siの中で,自身に対応付けられた葉ノードを含む集合Sの要素である葉ノードに対応付けられた1つ以上の情報処理装置が復号可能であってもよい。   The encrypted content or content key received by the receiving unit is a leaf that is an element of the set S including the leaf node associated with itself among the set Si defined as a subset of the leaf nodes 1 to n. One or more information processing devices associated with the node may be decodable.

また、上記課題を解決するために、本発明の別の観点によれば、有向グラフに基づいて、コンテンツ又はコンテンツ鍵を復号するためのセット鍵を生成する鍵生成部を備えることを特徴とする、端末装置が提供される。上記の有向グラフは、番号1〜n(nは自然数)が対応付けられたn個の葉ノードと、根ノードと、根ノード及び葉ノード以外の複数の中間ノードと、から構成される2分木構造を設定し、自然数i及びj(i≦j)に関して、集合(i→j)を{{i},{i,i+1},...,{i,i+1,...,j−1,j}}、集合(i←j)を{{j},{j,j−1},...,{j,j−1,...,i+1,i}}と定義して、ある中間ノードv又は根ノードvの下位に配置された複数の葉ノードのうち、左端に位置する葉ノードの番号をlv、右端に位置する葉ノードの番号をrvと設定し、集合(1→n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、根ノードに対応する第1水平座標軸と、集合(2←n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、根ノードに対応する第2水平座標軸と、中間ノードの各々について、集合(lv→rv−1)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第3水平座標軸と、集合(lv+1←rv)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第4水平座標軸と、を設定し、第3水平座標軸上の右端に位置する座標点の右側と、第2及び第4水平座標軸上の左端に位置する座標点の左側と、にそれぞれ2個の仮座標点を配置し、第1水平座標軸上の右端に位置する座標点を第1の仮座標点として設定し、当該第1の仮座標点の右側に第2の仮座標点を配置し、所定の整数kを設定し、n(x−1)/k<(rv−lv+1)≦nx/kを満たす整数xを算定した上で、整数i=0〜x−1の各々について、ni/kの長さを有する右方向を向いた一又は複数の有向枝を連結して第1及び第3水平座標軸上の最左にある座標点を始点とする有向パスを形成し、ni/kの長さを有する左方向を向いた一又は複数の有向枝を連結して第2及び第4水平座標軸上の最右にある座標点を始点とする有向パスを形成し、第1〜4水平座標軸の各々について、仮座標点を始点又は終点とする全ての有向枝を除外し、第1〜4水平座標軸上の各座標点に到達する有向枝のうち、最長の有向枝以外の有向枝を除外することにより、集合(1→n−1)、集合(2←n)、集合(lv+1←rv)、集合(lv→rv−1)に関する仮有向グラフをそれぞれ生成し、集合(1→n−1)に関する仮有向グラフに対し、第1水平座標軸上にある第1の仮座標点を終点とする長さ1の有向枝を追加して、集合(1→n)に関する仮有向グラフを生成し、連続する有向枝によって形成された有向パスの中から、有向パスを構成する有向枝数が最大となる最長の有向パスを決定し、各有向パスの有向枝数が、最長の有向パスの有向枝数を超えないように、各有向パスを構成する有向枝を、より短い有向枝に置換して得られる。 Moreover, in order to solve the above-mentioned problem, according to another aspect of the present invention, it is characterized by including a key generation unit that generates a set key for decrypting content or a content key based on a directed graph. A terminal device is provided. The above directed graph is a binary tree composed of n leaf nodes associated with numbers 1 to n (n is a natural number), a root node, and a plurality of intermediate nodes other than the root node and the leaf node. Set the structure and set the set (i → j) to {{i}, {i, i + 1},. . . , {I, i + 1,. . . , J−1, j}}, and the set (i ← j) is represented by {{j}, {j, j−1},. . . , {J, j-1,. . . , I + 1, i}}, and among the plurality of leaf nodes arranged below a certain intermediate node v or root node v, the number of the leaf node located at the left end is lv, and the leaf node located at the right end is The root is set with the number rv and the coordinate points associated with each subset included in the set (1 → n) are arranged on the horizontal coordinate axis so that the inclusion relation increases from left to right. The first horizontal coordinate axis corresponding to the node and the coordinate points associated with each subset included in the set (2 ← n) are arranged on the horizontal coordinate axis so that the inclusion relation increases from right to left. For each of the second horizontal coordinate axis corresponding to the root node and the intermediate node, the coordinate points associated with each subset included in the set (lv → rv−1) are from left to right on the horizontal coordinate axis. Array so that the inclusive relation increases The coordinate point associated with the third horizontal coordinate axis corresponding to a certain intermediate node v and each subset included in the set (lv + 1 ← rv) has an inclusion relation from right to left on the horizontal coordinate axis. A fourth horizontal coordinate axis corresponding to a certain intermediate node v, which is arranged so as to be larger, is set, and the right side of the coordinate point located at the right end on the third horizontal coordinate axis, and the second and fourth horizontal coordinate axes Two temporary coordinate points are respectively arranged on the left side of the coordinate point located at the left end, the coordinate point located at the right end on the first horizontal coordinate axis is set as the first temporary coordinate point, and the first temporary coordinate point is set. A second temporary coordinate point is arranged on the right side of the coordinate point, a predetermined integer k is set, and an integer x satisfying n (x−1) / k <(rv−lv + 1) ≦ n x / k is calculated. in, for each integer i = 0 to x-1, the right direction with a length of n i / k direction To form a directional path starting from the coordinate point at the leftmost of the first and third on the horizontal coordinate axis by connecting one or more directional branches, the left having a length of n i / k One or a plurality of directed branches facing each other are connected to form a directed path starting from the rightmost coordinate point on the second and fourth horizontal coordinate axes. For each of the first to fourth horizontal coordinate axes, Exclude all directional branches starting from the coordinate point and ending, and excluding directional branches other than the longest directional branch among the directional branches that reach each coordinate point on the first to fourth horizontal coordinate axes. As a result, temporary directed graphs for the set (1 → n−1), the set (2 ← n), the set (lv + 1 ← rv), and the set (lv → rv−1) are generated, respectively, and the set (1 → n−1) To the temporary directed graph for, add a directional branch of length 1 with the first temporary coordinate point on the first horizontal coordinate axis as the end point. A temporary directed graph for (1 → n) is generated, and the longest directional path with the maximum number of directional branches constituting the directional path is determined from the directional paths formed by the continuous directional branches. The directional branches constituting each directional path are replaced with shorter directional branches so that the number of directional branches of each directional path does not exceed the number of directional branches of the longest directional path. It is done.

このように、中間鍵及びセット鍵を用いた暗号鍵配信方式において、上記の有向グラフに基づいた中間鍵の配信、又はセット鍵の生成が可能になることで、配信された暗号情報を復号する際に、各ユーザ(端末装置)が復号用の鍵を生成するために必要な計算量の最悪値を低減させると共に、各ユーザが保持すべき鍵数を低減することが可能になる。   As described above, in the encryption key distribution method using the intermediate key and the set key, when the distributed encryption information is decrypted by enabling the distribution of the intermediate key based on the directed graph or the generation of the set key, In addition, it is possible to reduce the worst value of the amount of calculation required for each user (terminal device) to generate a decryption key and to reduce the number of keys that each user should hold.

また、上記の鍵生成部は、有向グラフにおけるある座標点に対応する部分集合Sの中間鍵t(S)の入力に応じて、当該座標点に対応する部分集合Sに対応するセット鍵k(S)と、当該座標点を始点とする有向枝の終点の座標点に対応する部分集合S1,S2,・・・,Skの中間鍵t(S1),t(S2),・・・,t(Sk)と、を出力してもよい。   Further, the key generation unit described above receives the set key k (S) corresponding to the subset S corresponding to the coordinate point in response to the input of the intermediate key t (S) of the subset S corresponding to a certain coordinate point in the directed graph. ), And intermediate keys t (S1), t (S2),..., T of the subsets S1, S2,. (Sk) may be output.

また、上記の鍵生成部は、有向グラフにおけるある座標点に対応する部分集合Sのセット鍵k(S)の入力に応じて、当該座標点Sを始点とする有向枝の終点の座標点S1,S2,・・・,Skのセット鍵k(S1),k(S2),・・・,k(Sk)を出力するようにしてもよい。   Further, the key generation unit described above, in response to the input of the set key k (S) of the subset S corresponding to a certain coordinate point in the directed graph, the coordinate point S1 of the end point of the directional branch starting from the coordinate point S. , S2,..., Sk set keys k (S1), k (S2),..., K (Sk) may be output.

さらに、上記の端末装置は、セット鍵を用いて、暗号化されたコンテンツ鍵を復号し、当該復号されたコンテンツ鍵を用いて、暗号化されたコンテンツを復号する復号部を備えていてもよい。   Furthermore, the terminal device may include a decryption unit that decrypts the encrypted content key using the set key and decrypts the encrypted content using the decrypted content key. .

さらに、上記の端末装置は、木構造の葉ノード1〜nの部分集合をSiと定義したときに、セット鍵又はコンテンツ鍵で暗号化されたコンテンツの復号を許可する端末装置の集合(N\R)が決定され、集合(N\R)=S1∪S2∪・・・∪Smを満たすm個の部分集合S1〜Smが決定され、集合(N\R)を表す情報、又は、集合(N\R)を構成する部分集合S1〜Smを表す情報を受信した場合に、端末装置は、受信した情報に基づいて、当該端末装置が部分集合S1〜Smのいずれかに属しているか否か判断し、当該判断結果に基づいて、暗号化されたコンテンツの復号が許可されているか否かを判断する判断部を備えていてもよい。また、上記の復号部は、端末装置が部分集合S1〜Smのいずれかに属していると判断された場合に、当該端末装置が属する部分集合に対応したセット鍵を用いて、コンテンツ又はコンテンツ鍵を復号してもよい。   Further, the terminal device described above is a set of terminal devices (N \) that permits decryption of content encrypted with a set key or a content key when a subset of leaf nodes 1 to n of a tree structure is defined as Si. R) is determined, and m subsets S1 to Sm satisfying the set (N \ R) = S1∪S2∪ ... ∪Sm are determined, and information representing the set (N \ R) or the set ( N \ R), when receiving information representing subsets S1 to Sm, the terminal device determines whether the terminal device belongs to any of subsets S1 to Sm based on the received information. A determination unit that determines and determines whether or not the decryption of the encrypted content is permitted based on the determination result. In addition, when it is determined that the terminal device belongs to any of the subsets S1 to Sm, the decryption unit uses the set key corresponding to the subset to which the terminal device belongs to May be decrypted.

また、上記課題を解決するために、本発明のさらに別の観点によれば、複数の有向枝により構成される仮有向グラフに対し、当該仮有向グラフを構成する複数の有向枝の中からより長い有向枝を残した上で、当該残した有向枝の中から少なくとも1つの有向枝をより短い有向枝に置換することにより生成された有向グラフを取得する有向グラフ取得ステップと、有向グラフ取得部により取得された有向グラフに基づいてコンテンツ又はコンテンツ鍵を暗号化又は復号するためのセット鍵を生成する鍵生成ステップと、を含むことを特徴とする、情報処理方法が提供される。   In order to solve the above-described problem, according to still another aspect of the present invention, for a temporary directed graph composed of a plurality of directional branches, from among a plurality of directed branches constituting the temporary directed graph. A directional graph acquisition step for acquiring a directional graph generated by replacing a long directional branch and replacing at least one directional branch with a shorter directional branch from the remaining directional branch; And a key generation step of generating a set key for encrypting or decrypting the content or the content key based on the directed graph acquired by the section. An information processing method is provided.

また、上記課題を解決するために、本発明のさらに別の観点によれば、番号1〜n(nは自然数)が対応付けられたn個の葉ノードと、根ノードと、根ノード及び葉ノード以外の複数の中間ノードと、から構成される2分木構造に対し、ある中間ノードv又は根ノードvの下位に配置された複数の葉ノードの中で左端に位置する葉ノードの番号がlv、そして右端に位置する葉ノードの番号がrvと定義されており,さらに,自然数i及びj(i≦j)に対して,集合(i→j)が{{i},{i,i+1},...,{i,i+1,...,j−1,j}}と表記され、集合(i←j)が{{j},{j,j−1},...,{j,j−1,...,i+1,i}}と表記されるものと仮定されており,集合(1→n)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に左から右に向かって包含関係が大きくなるように配列され、根ノードに対応付けられた第1水平座標軸が設定され,また,集合(2←n)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に右から左に向かって包含関係が大きくなるように配列され、根ノードに対応付けられた第2水平座標軸が設定されており,さらに,中間ノードの各々について、集合(lv→rv−1)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に左から右に向かって包含関係が大きくなるように配列され、ある中間ノードvに対応づけられた第3水平座標軸が設定され、また,集合(lv+1←rv)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に右から左に向かって包含関係が大きくなるように配列され、ある中間ノードvに対応付けられた第4水平座標軸が設定された上で、所定の整数kに対し,n(x−1)/k<(rv−lv+1)≦nx/kを満たす自然数xに応じて長さni/k(i=0,1,...x−1)を有する複数の有向枝を第1〜4水平座標軸上に配置して形成された仮有向グラフを処理する情報処理方法であって、仮有向グラフを取得する仮有向グラフ取得ステップと、仮有向グラフ取得部により取得された仮有向グラフを構成する複数の有向枝の中から、より長い有向枝を残して有向グラフを生成する有向グラフ生成ステップと、有向グラフを構成する複数の有向枝の中で,連続する有向枝の最大数を決定する最長有向パス決定ステップと、連続する有向枝の最大数を超えないように、有向グラフを構成する少なくとも1つの有向枝をより短い有向枝に置換して有向グラフを再構成する有向枝置換ステップと、有向枝置換部により再構成された有向グラフに基づいてコンテンツ又はコンテンツ鍵を暗号化するためのセット鍵を生成する鍵生成ステップと、を含むことを特徴とする、情報処理方法が提供される。 In order to solve the above-described problem, according to still another aspect of the present invention, n leaf nodes, root nodes, root nodes and leaves associated with numbers 1 to n (n is a natural number) are associated. For a binary tree structure composed of a plurality of intermediate nodes other than nodes, the number of the leaf node located at the left end among a plurality of leaf nodes arranged below a certain intermediate node v or root node v is lv, and the number of the leaf node located at the right end is defined as rv. Furthermore, for natural numbers i and j (i ≦ j), the set (i → j) is {{i}, {i, i + 1 },. . . , {I, i + 1,. . . , J−1, j}} and the set (i ← j) is {{j}, {j, j−1},. . . , {J, j-1,. . . , I + 1, i}} and the coordinate points associated with each subset included in the set (1 → n) have an inclusive relationship from left to right on the horizontal coordinate axis. The first horizontal coordinate axis that is arranged so as to be large and is associated with the root node is set, and the coordinate point that is associated with each subset included in the set (2 ← n) is on the horizontal coordinate axis from the right. Arranged so that the inclusion relation increases toward the left, the second horizontal coordinate axis associated with the root node is set, and each intermediate node is included in the set (lv → rv−1) The coordinate points associated with each subset are arranged on the horizontal coordinate axis so that the inclusive relation increases from left to right, a third horizontal coordinate axis associated with a certain intermediate node v is set, and Set (lv + 1 ← rv The coordinate points associated with each subset included in are arranged on the horizontal coordinate axis so that the inclusion relation increases from right to left, and the fourth horizontal coordinate axis associated with a certain intermediate node v is set. In addition, for a predetermined integer k, the length n i / k (i = 0, 1, depending on the natural number x satisfying n (x−1) / k <(rv−lv + 1) ≦ n x / k ... x-1) is an information processing method for processing a temporary directed graph formed by arranging a plurality of directed branches on the first to fourth horizontal coordinate axes, and acquiring a temporary directed graph. And a directed graph generation step for generating a directed graph by leaving a longer directional branch out of a plurality of directed branches constituting the temporary directed graph acquired by the temporary directed graph acquisition unit, and a plurality of directed branches constituting the directed graph Within a directed directional branch A longest directional path determining step for determining the maximum number of directional graphs, and replacing the directional graph by replacing at least one directional branch constituting the directed graph with a shorter directional branch so as not to exceed the maximum number of consecutive directional branches. A directional edge replacement step for reconfiguration, and a key generation step for generating a set key for encrypting the content or content key based on the directed graph reconstructed by the directional edge replacement unit, An information processing method is provided.

また、上記課題を解決するために、本発明のさらに別の観点によれば、番号1〜n(nは自然数)が対応付けられたn個の葉ノードと、根ノードと、根ノード及び葉ノード以外の複数の中間ノードと、から構成される2分木構造を設定し、自然数i及びj(i≦j)に関して、集合(i→j)を{{i},{i,i+1},...,{i,i+1,...,j−1,j}}、集合(i←j)を{{j},{j,j−1},...,{j,j−1,...,i+1,i}}と定義して、ある中間ノードv又は根ノードvの下位に配置された複数の葉ノードのうち、左端に位置する葉ノードの番号をlv、右端に位置する葉ノードの番号をrvと設定する木構造設定ステップと、集合(1→n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、根ノードに対応する第1水平座標軸と、集合(2←n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、根ノードに対応する第2水平座標軸と、中間ノードの各々について、集合(lv→rv−1)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第3水平座標軸と、集合(lv+1←rv)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第4水平座標軸と、を設定し、第3水平座標軸上の右端に位置する座標点の右側と、第2及び第4水平座標軸上の左端に位置する座標点の左側と、にそれぞれ2個の仮座標点を配置し、第1水平座標軸上の右端に位置する座標点を第1の仮座標点として設定し、当該第1の仮座標点の右側に第2の仮座標点を配置する座標軸設定ステップと、所定の整数kを設定し、n(x−1)/k<(rv−lv+1)≦nx/kを満たす整数xを算定した上で、整数i=0〜x−1の各々について、ni/kの長さを有する右方向を向いた一又は複数の有向枝を連結して第1及び第3水平座標軸上の最左にある座標点を始点とする有向パスを形成し、ni/kの長さを有する左方向を向いた一又は複数の有向枝を連結して第2及び第4水平座標軸上の最右にある座標点を始点とする有向パスを形成し、第1〜4水平座標軸の各々について、仮座標点を始点又は終点とする全ての有向枝を除外し、第1〜4水平座標軸上の各座標点に到達する有向枝のうち、最長の有向枝以外の有向枝を除外することにより、集合(1→n−1)、集合(2←n)、集合(lv+1←rv)、集合(lv→rv−1)に関する仮有向グラフをそれぞれ生成し、集合(1→n−1)に関する仮有向グラフに対し、第1水平座標軸上にある第1の仮座標点を終点とする長さ1の有向枝を追加して、集合(1→n)に関する仮有向グラフを生成する仮有向グラフ生成ステップと、連続する有向枝によって形成された有向パスの中から、有向パスを構成する有向枝数が最大となる最長の有向パスを決定する最長有向パス決定ステップと、各有向パスの有向枝数が、最長の有向パスの有向枝数を超えないように、各有向パスを構成する有向枝を、より短い有向枝に置換して有向グラフを生成する有向グラフ生成ステップと、を含むことを特徴とする、情報処理方法が提供される。 In order to solve the above-described problem, according to still another aspect of the present invention, n leaf nodes, root nodes, root nodes and leaves associated with numbers 1 to n (n is a natural number) are associated. A binary tree structure including a plurality of intermediate nodes other than nodes is set, and a set (i → j) is set to {{i}, {i, i + 1}, for natural numbers i and j (i ≦ j), . . . , {I, i + 1,. . . , J−1, j}}, and the set (i ← j) is represented by {{j}, {j, j−1},. . . , {J, j-1,. . . , I + 1, i}}, and among the plurality of leaf nodes arranged below a certain intermediate node v or root node v, the number of the leaf node located at the left end is lv, and the leaf node located at the right end is The tree structure setting step for setting the number as rv and the coordinate points associated with each subset included in the set (1 → n) so that the inclusion relation increases from left to right on the horizontal coordinate axis. The arranged first horizontal coordinate axis corresponding to the root node and the coordinate point associated with each subset included in the set (2 ← n) have a large inclusion relation from right to left on the horizontal coordinate axis. For each of the second horizontal coordinate axis corresponding to the root node and the intermediate node, the coordinate points associated with each subset included in the set (lv → rv−1) are arranged on the horizontal coordinate axis. Inclusion from left to right The third horizontal coordinate axis corresponding to a certain intermediate node v and the coordinate point associated with each subset included in the set (lv + 1 ← rv) arranged so as to be large are on the horizontal coordinate axis from right to left. A fourth horizontal coordinate axis corresponding to a certain intermediate node v, which is arranged so that the inclusive relation increases, and sets the right side of the coordinate point located at the right end on the third horizontal coordinate axis, the second and second Four temporary coordinate points are respectively arranged on the left side of the coordinate point located at the left end on the four horizontal coordinate axes, and the coordinate point located at the right end on the first horizontal coordinate axis is set as the first temporary coordinate point, A coordinate axis setting step for placing the second temporary coordinate point on the right side of the first temporary coordinate point and a predetermined integer k are set, and n (x−1) / k <(rv−lv + 1) ≦ n x / after having calculated the integer x satisfying k, each integer i = 0 to x-1 For, the directional path starting from the coordinate point at the leftmost of the first and third on the horizontal coordinate axis by connecting one or more directional branches facing rightward having a length of n i / k A directional path formed by connecting one or a plurality of directional branches facing the left direction having a length of ni / k and starting from the rightmost coordinate point on the second and fourth horizontal coordinate axes For each of the first to fourth horizontal coordinate axes, excluding all directional branches having the temporary coordinate point as the start point or the end point, and reaching the coordinate points on the first to fourth horizontal coordinate axes. Among them, by excluding the directional branch other than the longest directional branch, the set (1 → n−1), the set (2 ← n), the set (lv + 1 ← rv), and the set (lv → rv−1) are related. A temporary digraph is generated for each of the temporary digraphs on the first horizontal coordinate axis with respect to the temporary digraph relating to the set (1 → n−1). A temporary directed graph generation step for generating a temporary directed graph for a set (1 → n) by adding a directional branch having a length of 1 with a point as an end point, and a directed path formed by continuous directed branches , The longest directional path determination step for determining the longest directional path that has the maximum number of directional branches constituting the directional path, and the directional branch number of each directional path is the directional of the longest directional path. A directed graph generation step of generating a directed graph by replacing the directed branches constituting each directed path with a shorter directed branch so as not to exceed the number of branches, and an information processing method comprising: Provided.

このように、中間鍵及びセット鍵を用いた暗号鍵配信方式において、上記の有向グラフに基づいた中間鍵の配信、又はセット鍵の生成が可能になることで、配信された暗号情報を復号する際に、各ユーザ(端末装置)が復号用の鍵を生成するために必要な計算量の最悪値を低減させると共に、各ユーザが保持すべき鍵数を低減することが可能になる。   As described above, in the encryption key distribution method using the intermediate key and the set key, when the distributed encryption information is decrypted by enabling the distribution of the intermediate key based on the directed graph or the generation of the set key, In addition, it is possible to reduce the worst value of the amount of calculation required for each user (terminal device) to generate a decryption key and to reduce the number of keys that each user should hold.

また、上記課題を解決するために、本発明の別の観点によれば、有向グラフに基づいて、コンテンツ又はコンテンツ鍵を復号するためのセット鍵を生成する鍵生成ステップを含む鍵配信方法が提供される。上記の有向グラフは、番号1〜n(nは自然数)が対応付けられたn個の葉ノードと、根ノードと、根ノード及び葉ノード以外の複数の中間ノードと、から構成される2分木構造を設定し、自然数i及びj(i≦j)に関して、集合(i→j)を{{i},{i,i+1},...,{i,i+1,...,j−1,j}}、集合(i←j)を{{j},{j,j−1},...,{j,j−1,...,i+1,i}}と定義して、ある中間ノードv又は根ノードvの下位に配置された複数の葉ノードのうち、左端に位置する葉ノードの番号をlv、右端に位置する葉ノードの番号をrvと設定し、集合(1→n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、根ノードに対応する第1水平座標軸と、集合(2←n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、根ノードに対応する第2水平座標軸と、中間ノードの各々について、集合(lv→rv−1)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第3水平座標軸と、集合(lv+1←rv)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第4水平座標軸と、を設定し、第3水平座標軸上の右端に位置する座標点の右側と、第2及び第4水平座標軸上の左端に位置する座標点の左側と、にそれぞれ2個の仮座標点を配置し、第1水平座標軸上の右端に位置する座標点を第1の仮座標点として設定し、当該第1の仮座標点の右側に第2の仮座標点を配置し、所定の整数kを設定し、n(x−1)/k<(rv−lv+1)≦nx/kを満たす整数xを算定した上で、整数i=0〜x−1の各々について、ni/kの長さを有する右方向を向いた一又は複数の有向枝を連結して第1及び第3水平座標軸上の最左にある座標点を始点とする有向パスを形成し、ni/kの長さを有する左方向を向いた一又は複数の有向枝を連結して第2及び第4水平座標軸上の最右にある座標点を始点とする有向パスを形成し、第1〜4水平座標軸の各々について、仮座標点を始点又は終点とする全ての有向枝を除外し、第1〜4水平座標軸上の各座標点に到達する有向枝のうち、最長の有向枝以外の有向枝を除外することにより、集合(1→n−1)、集合(2←n)、集合(lv+1←rv)、集合(lv→rv−1)に関する仮有向グラフをそれぞれ生成し、集合(1→n−1)に関する仮有向グラフに対し、第1水平座標軸上にある第1の仮座標点を終点とする長さ1の有向枝を追加して、集合(1→n)に関する仮有向グラフを生成し、連続する有向枝によって形成された有向パスの中から、有向パスを構成する有向枝数が最大となる最長の有向パスを決定し、各有向パスの有向枝数が、最長の有向パスの有向枝数を超えないように、各有向パスを構成する有向枝を、より短い有向枝に置換して得られるものである。 In order to solve the above problems, according to another aspect of the present invention, there is provided a key distribution method including a key generation step for generating a set key for decrypting content or a content key based on a directed graph. The The above directed graph is a binary tree composed of n leaf nodes associated with numbers 1 to n (n is a natural number), a root node, and a plurality of intermediate nodes other than the root node and the leaf node. Set the structure and set the set (i → j) to {{i}, {i, i + 1},. . . , {I, i + 1,. . . , J−1, j}}, and the set (i ← j) is represented by {{j}, {j, j−1},. . . , {J, j-1,. . . , I + 1, i}}, and among the plurality of leaf nodes arranged below a certain intermediate node v or root node v, the number of the leaf node located at the left end is lv, and the leaf node located at the right end is The root is set with the number rv and the coordinate points associated with each subset included in the set (1 → n) are arranged on the horizontal coordinate axis so that the inclusion relation increases from left to right. The first horizontal coordinate axis corresponding to the node and the coordinate points associated with each subset included in the set (2 ← n) are arranged on the horizontal coordinate axis so that the inclusion relation increases from right to left. For each of the second horizontal coordinate axis corresponding to the root node and the intermediate node, the coordinate points associated with each subset included in the set (lv → rv−1) are from left to right on the horizontal coordinate axis. Array so that the inclusive relation increases The coordinate point associated with the third horizontal coordinate axis corresponding to a certain intermediate node v and each subset included in the set (lv + 1 ← rv) has an inclusion relation from right to left on the horizontal coordinate axis. A fourth horizontal coordinate axis corresponding to a certain intermediate node v, which is arranged so as to be larger, is set, and the right side of the coordinate point located at the right end on the third horizontal coordinate axis, and the second and fourth horizontal coordinate axes Two temporary coordinate points are respectively arranged on the left side of the coordinate point located at the left end, the coordinate point located at the right end on the first horizontal coordinate axis is set as the first temporary coordinate point, and the first temporary coordinate point is set. A second temporary coordinate point is arranged on the right side of the coordinate point, a predetermined integer k is set, and an integer x satisfying n (x−1) / k <(rv−lv + 1) ≦ n x / k is calculated. in, for each integer i = 0 to x-1, the right direction with a length of n i / k direction To form a directional path starting from the coordinate point at the leftmost of the first and third on the horizontal coordinate axis by connecting one or more directional branches, the left having a length of n i / k One or a plurality of directed branches facing each other are connected to form a directed path starting from the rightmost coordinate point on the second and fourth horizontal coordinate axes. For each of the first to fourth horizontal coordinate axes, Exclude all directional branches starting from the coordinate point and ending, and excluding directional branches other than the longest directional branch among the directional branches that reach each coordinate point on the first to fourth horizontal coordinate axes. As a result, temporary directed graphs for the set (1 → n−1), the set (2 ← n), the set (lv + 1 ← rv), and the set (lv → rv−1) are generated, respectively, and the set (1 → n−1) To the temporary directed graph for, add a directional branch of length 1 with the first temporary coordinate point on the first horizontal coordinate axis as the end point. A temporary directed graph for (1 → n) is generated, and the longest directional path with the maximum number of directional branches constituting the directional path is determined from the directional paths formed by the continuous directional branches. The directional branches constituting each directional path are replaced with shorter directional branches so that the number of directional branches of each directional path does not exceed the number of directional branches of the longest directional path. It is what

このように、中間鍵及びセット鍵を用いた暗号鍵配信方式において、上記の有向グラフに基づいた中間鍵の配信、又はセット鍵の生成が可能になることで、配信された暗号情報を復号する際に、各ユーザ(端末装置)が復号用の鍵を生成するために必要な計算量の最悪値を低減させると共に、各ユーザが保持すべき鍵数を低減することが可能になる。   As described above, in the encryption key distribution method using the intermediate key and the set key, when the distributed encryption information is decrypted by enabling the distribution of the intermediate key based on the directed graph or the generation of the set key, In addition, it is possible to reduce the worst value of the amount of calculation required for each user (terminal device) to generate a decryption key and to reduce the number of keys that each user should hold.

また、上記課題を解決するために、本発明のさらに別の観点によれば、番号1〜n(nは自然数)が対応付けられたn個の葉ノードと、根ノードと、根ノード及び葉ノード以外の複数の中間ノードと、から構成される2分木構造を設定し、自然数i及びj(i≦j)に関して、集合(i→j)を{{i},{i,i+1},...,{i,i+1,...,j−1,j}}、集合(i←j)を{{j},{j,j−1},...,{j,j−1,...,i+1,i}}と定義して、ある中間ノードv又は根ノードvの下位に配置された複数の葉ノードのうち、左端に位置する葉ノードの番号をlv、右端に位置する葉ノードの番号をrvと設定する木構造設定機能と、集合(1→n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、根ノードに対応する第1水平座標軸と、集合(2←n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、根ノードに対応する第2水平座標軸と、中間ノードの各々について、集合(lv→rv−1)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第3水平座標軸と、集合(lv+1←rv)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第4水平座標軸と、を設定し、第3水平座標軸上の右端に位置する座標点の右側と、第2及び第4水平座標軸上の左端に位置する座標点の左側と、にそれぞれ2個の仮座標点を配置し、第1水平座標軸上の右端に位置する座標点を第1の仮座標点として設定し、当該第1の仮座標点の右側に第2の仮座標点を配置する座標軸設定機能と、所定の整数kを設定し、n(x−1)/k<(rv−lv+1)≦nx/kを満たす整数xを算定した上で、整数i=0〜x−1の各々について、ni/kの長さを有する右方向を向いた一又は複数の有向枝を連結して第1及び第3水平座標軸上の最左にある座標点を始点とする有向パスを形成し、ni/kの長さを有する左方向を向いた一又は複数の有向枝を連結して第2及び第4水平座標軸上の最右にある座標点を始点とする有向パスを形成し、第1〜4水平座標軸の各々について、仮座標点を始点又は終点とする全ての有向枝を除外し、第1〜4水平座標軸上の各座標点に到達する有向枝のうち、最長の有向枝以外の有向枝を除外することにより、集合(1→n−1)、集合(2←n)、集合(lv+1←rv)、集合(lv→rv−1)に関する仮有向グラフをそれぞれ生成し、集合(1→n−1)に関する仮有向グラフに対し、第1水平座標軸上にある第1の仮座標点を終点とする長さ1の有向枝を追加して、集合(1→n)に関する仮有向グラフを生成する仮有向グラフ生成機能と、連続する有向枝によって形成された有向パスの中から、有向パスを構成する有向枝数が最大となる最長の有向パスを決定する最長有向パス決定機能と、各有向パスの有向枝数が、最長の有向パスの有向枝数を超えないように、各有向パスを構成する有向枝を、より短い有向枝に置換して有向グラフを生成する有向グラフ生成機能と、をコンピュータに実現させるためのプログラムが提供される。 In order to solve the above-described problem, according to still another aspect of the present invention, n leaf nodes, root nodes, root nodes and leaves associated with numbers 1 to n (n is a natural number) are associated. A binary tree structure including a plurality of intermediate nodes other than nodes is set, and a set (i → j) is set to {{i}, {i, i + 1}, for natural numbers i and j (i ≦ j), . . . , {I, i + 1,. . . , J−1, j}}, and the set (i ← j) is represented by {{j}, {j, j−1},. . . , {J, j-1,. . . , I + 1, i}}, and among the plurality of leaf nodes arranged below a certain intermediate node v or root node v, the number of the leaf node located at the left end is lv, and the leaf node located at the right end is The tree structure setting function for setting the number to rv and the coordinate points associated with each subset included in the set (1 → n) so that the inclusion relation increases from left to right on the horizontal coordinate axis. The arranged first horizontal coordinate axis corresponding to the root node and the coordinate point associated with each subset included in the set (2 ← n) have a large inclusion relation from right to left on the horizontal coordinate axis. For each of the second horizontal coordinate axis corresponding to the root node and the intermediate node, the coordinate points associated with each subset included in the set (lv → rv−1) are arranged on the horizontal coordinate axis. The inclusion relationship is large from left to right The coordinate points associated with the third horizontal coordinate axis corresponding to a certain intermediate node v and each subset included in the set (lv + 1 ← rv) are arranged from right to left on the horizontal coordinate axis. A fourth horizontal coordinate axis corresponding to a certain intermediate node v, which is arranged so that the inclusive relation increases, and sets the right side of the coordinate point located at the right end on the third horizontal coordinate axis, the second and second Four temporary coordinate points are respectively arranged on the left side of the coordinate point located at the left end on the four horizontal coordinate axes, and the coordinate point located at the right end on the first horizontal coordinate axis is set as the first temporary coordinate point, A coordinate axis setting function for placing the second temporary coordinate point on the right side of the first temporary coordinate point and a predetermined integer k are set, and n (x−1) / k <(rv−lv + 1) ≦ n x / after having calculated the integer x satisfying k, with each integer i = 0 to x-1 , Form a directed path that coordinate point is the starting point at the top left of the first and third on the horizontal coordinate axis by connecting one or more directional branches facing rightward having a length of n i / k A directional path starting from the rightmost coordinate point on the second and fourth horizontal coordinate axes by connecting one or a plurality of directional branches facing the left direction having a length of ni / k. For each of the first to fourth horizontal coordinate axes, out of all the directional branches having the temporary coordinate point as a start point or an end point, and reaching each coordinate point on the first to fourth horizontal coordinate axes By excluding a directional branch other than the longest directional branch, a provisional regarding the set (1 → n−1), the set (2 ← n), the set (lv + 1 ← rv), and the set (lv → rv−1) is obtained. Each directed graph is generated, and the first temporary coordinate point on the first horizontal coordinate axis is terminated for the temporary directed graph relating to the set (1 → n−1). A temporary directed graph generation function for generating a temporary directed graph related to the set (1 → n) by adding a directional branch of length 1 and a directed path from the directed paths formed by continuous directed edges The longest directional path determination function that determines the longest directional path that has the maximum number of directional branches that make up the path, and the number of directional branches of each directional path is the number of directional branches of the longest directional path. A program for causing a computer to realize a directed graph generation function for generating a directed graph by replacing the directed edges constituting each directed path with shorter directional branches is provided.

このように、中間鍵及びセット鍵を用いた暗号鍵配信方式において、上記の有向グラフに基づいた中間鍵の配信、又はセット鍵の生成が可能になることで、配信された暗号情報を復号する際に、各ユーザ(端末装置)が復号用の鍵を生成するために必要な計算量の最悪値を低減させると共に、各ユーザが保持すべき鍵数を低減することが可能になる。   As described above, in the encryption key distribution method using the intermediate key and the set key, when the distributed encryption information is decrypted by enabling the distribution of the intermediate key based on the directed graph or the generation of the set key, In addition, it is possible to reduce the worst value of the amount of calculation required for each user (terminal device) to generate a decryption key and to reduce the number of keys that each user should hold.

また、上記課題を解決するために、本発明のさらに別の観点によれば、有向グラフに基づいて、コンテンツ又はコンテンツ鍵を復号するためのセット鍵を生成する鍵生成機能をコンピュータに実現させるためのプログラムが提供される。上記の有向グラフは、番号1〜n(nは自然数)が対応付けられたn個の葉ノードと、根ノードと、根ノード及び葉ノード以外の複数の中間ノードと、から構成される2分木構造を設定し、自然数i及びj(i≦j)に関して、集合(i→j)を{{i},{i,i+1},...,{i,i+1,...,j−1,j}}、集合(i←j)を{{j},{j,j−1},...,{j,j−1,...,i+1,i}}と定義して、ある中間ノードv又は根ノードvの下位に配置された複数の葉ノードのうち、左端に位置する葉ノードの番号をlv、右端に位置する葉ノードの番号をrvと設定し、集合(1→n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、根ノードに対応する第1水平座標軸と、集合(2←n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、根ノードに対応する第2水平座標軸と、中間ノードの各々について、集合(lv→rv−1)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第3水平座標軸と、集合(lv+1←rv)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第4水平座標軸と、を設定し、第3水平座標軸上の右端に位置する座標点の右側と、第2及び第4水平座標軸上の左端に位置する座標点の左側と、にそれぞれ2個の仮座標点を配置し、第1水平座標軸上の右端に位置する座標点を第1の仮座標点として設定し、当該第1の仮座標点の右側に第2の仮座標点を配置し、所定の整数kを設定し、n(x−1)/k<(rv−lv+1)≦nx/kを満たす整数xを算定した上で、整数i=0〜x−1の各々について、ni/kの長さを有する右方向を向いた一又は複数の有向枝を連結して第1及び第3水平座標軸上の最左にある座標点を始点とする有向パスを形成し、ni/kの長さを有する左方向を向いた一又は複数の有向枝を連結して第2及び第4水平座標軸上の最右にある座標点を始点とする有向パスを形成し、第1〜4水平座標軸の各々について、仮座標点を始点又は終点とする全ての有向枝を除外し、第1〜4水平座標軸上の各座標点に到達する有向枝のうち、最長の有向枝以外の有向枝を除外することにより、集合(1→n−1)、集合(2←n)、集合(lv+1←rv)、集合(lv→rv−1)に関する仮有向グラフをそれぞれ生成し、集合(1→n−1)に関する仮有向グラフに対し、第1水平座標軸上にある第1の仮座標点を終点とする長さ1の有向枝を追加して、集合(1→n)に関する仮有向グラフを生成し、連続する有向枝によって形成された有向パスの中から、有向パスを構成する有向枝数が最大となる最長の有向パスを決定し、各有向パスの有向枝数が、最長の有向パスの有向枝数を超えないように、各有向パスを構成する有向枝を、より短い有向枝に置換して得られるものである。 In order to solve the above-described problem, according to still another aspect of the present invention, a computer is provided with a key generation function for generating a set key for decrypting content or a content key based on a directed graph. A program is provided. The above directed graph is a binary tree composed of n leaf nodes associated with numbers 1 to n (n is a natural number), a root node, and a plurality of intermediate nodes other than the root node and the leaf node. Set the structure and set the set (i → j) to {{i}, {i, i + 1},. . . , {I, i + 1,. . . , J−1, j}}, and the set (i ← j) is represented by {{j}, {j, j−1},. . . , {J, j-1,. . . , I + 1, i}}, and among the plurality of leaf nodes arranged below a certain intermediate node v or root node v, the number of the leaf node located at the left end is lv, and the leaf node located at the right end is The root is set with the number rv and the coordinate points associated with each subset included in the set (1 → n) are arranged on the horizontal coordinate axis so that the inclusion relation increases from left to right. The first horizontal coordinate axis corresponding to the node and the coordinate points associated with each subset included in the set (2 ← n) are arranged on the horizontal coordinate axis so that the inclusion relation increases from right to left. For each of the second horizontal coordinate axis corresponding to the root node and the intermediate node, the coordinate points associated with each subset included in the set (lv → rv−1) are from left to right on the horizontal coordinate axis. Array so that the inclusive relation increases The coordinate point associated with the third horizontal coordinate axis corresponding to a certain intermediate node v and each subset included in the set (lv + 1 ← rv) has an inclusion relation from right to left on the horizontal coordinate axis. A fourth horizontal coordinate axis corresponding to a certain intermediate node v, which is arranged so as to be larger, is set, and the right side of the coordinate point located at the right end on the third horizontal coordinate axis, and the second and fourth horizontal coordinate axes Two temporary coordinate points are respectively arranged on the left side of the coordinate point located at the left end, the coordinate point located at the right end on the first horizontal coordinate axis is set as the first temporary coordinate point, and the first temporary coordinate point is set. A second temporary coordinate point is arranged on the right side of the coordinate point, a predetermined integer k is set, and an integer x satisfying n (x−1) / k <(rv−lv + 1) ≦ n x / k is calculated. in, for each integer i = 0 to x-1, the right direction with a length of n i / k direction To form a directional path starting from the coordinate point at the leftmost of the first and third on the horizontal coordinate axis by connecting one or more directional branches, the left having a length of n i / k One or a plurality of directed branches facing each other are connected to form a directed path starting from the rightmost coordinate point on the second and fourth horizontal coordinate axes. For each of the first to fourth horizontal coordinate axes, Exclude all directional branches starting from the coordinate point and ending, and excluding directional branches other than the longest directional branch among the directional branches that reach each coordinate point on the first to fourth horizontal coordinate axes. As a result, temporary directed graphs for the set (1 → n−1), the set (2 ← n), the set (lv + 1 ← rv), and the set (lv → rv−1) are generated, respectively, and the set (1 → n−1) To the temporary directed graph for, add a directional branch of length 1 with the first temporary coordinate point on the first horizontal coordinate axis as the end point. A temporary directed graph for (1 → n) is generated, and the longest directional path with the maximum number of directional branches constituting the directional path is determined from the directional paths formed by the continuous directional branches. The directional branches constituting each directional path are replaced with shorter directional branches so that the number of directional branches of each directional path does not exceed the number of directional branches of the longest directional path. It is what

このように、中間鍵及びセット鍵を用いた暗号鍵配信方式において、上記の有向グラフに基づいた中間鍵の配信、又はセット鍵の生成が可能になることで、配信された暗号情報を復号する際に、各ユーザ(端末装置)が復号用の鍵を生成するために必要な計算量の最悪値を低減させると共に、各ユーザが保持すべき鍵数を低減することが可能になる。   As described above, in the encryption key distribution method using the intermediate key and the set key, when the distributed encryption information is decrypted by enabling the distribution of the intermediate key based on the directed graph or the generation of the set key, In addition, it is possible to reduce the worst value of the amount of calculation required for each user (terminal device) to generate a decryption key and to reduce the number of keys that each user should hold.

以上説明したように本発明によれば、受信者側の端末装置で保持すべき鍵数を低減しつつ、暗号鍵の導出に要する計算量を低減することが可能になる。   As described above, according to the present invention, it is possible to reduce the amount of calculation required for deriving the encryption key while reducing the number of keys to be held in the terminal device on the receiver side.

以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。なお、表記上、下付き文字を通常の字体により表現している部分があるが、これらは同じものである。例えば、BTRとBTとは同じものを表現していることに注意されたい。 Exemplary embodiments of the present invention will be described below in detail with reference to the accompanying drawings. In addition, in this specification and drawing, about the component which has the substantially same function structure, duplication description is abbreviate | omitted by attaching | subjecting the same code | symbol. In addition, although there exists a part which has expressed the subscript by the normal font on description, these are the same. For example, it should be noted that to express the same thing as the BTR and BT R.

[暗号鍵配信システム100構成]
まず、本発明の一実施形態に係る暗号鍵配信システム100の構成について説明する。図1は、本実施形態にかかる暗号鍵配信システム100の構成を示す説明図である。
[Configuration of Encryption Key Distribution System 100]
First, the configuration of the encryption key distribution system 100 according to an embodiment of the present invention will be described. FIG. 1 is an explanatory diagram showing a configuration of an encryption key distribution system 100 according to the present embodiment.

図1を参照すると、暗号鍵配信システム100は、本実施形態にかかる情報処理装置の一例として構成された鍵配信サーバ102と、複数のユーザがそれぞれ所有する複数の端末装置122と、これらの鍵配信サーバ102と端末装置122とを接続するネットワークとから構成される。   Referring to FIG. 1, an encryption key distribution system 100 includes a key distribution server 102 configured as an example of an information processing apparatus according to the present embodiment, a plurality of terminal devices 122 respectively owned by a plurality of users, and these keys. It is comprised from the network which connects the delivery server 102 and the terminal device 122. FIG.

上記のネットワークは、鍵配信サーバ102と端末装置122を双方向通信又は一方向通信可能に接続する通信回線網である。このネットワークは、例えば、インターネット、電話回線網、衛星通信網、同報通信路等の公衆回線網や、WAN(Wide Area Network)、LAN(Local Area Network)、IP−VPN(Internet Protocol−Virtual Private Network)、ワイヤレスLAN等の専用回線網などで構成されており、有線/無線を問わない。   The network is a communication line network that connects the key distribution server 102 and the terminal device 122 so that bidirectional communication or one-way communication is possible. This network includes, for example, the public network such as the Internet, a telephone line network, a satellite communication network, a broadcast communication path, a WAN (Wide Area Network), a LAN (Local Area Network), an IP-VPN (Internet Protocol-Virtual Private). Network), a dedicated line network such as a wireless LAN, etc., regardless of wired / wireless.

鍵配信サーバ102は、サーバ機能を備えたコンピュータ装置などで構成され、ネットワークを介して各種の情報を外部装置に送信可能である。例えば、鍵配信サーバ102は、broadcast encryption scheme方式の暗号鍵を生成して、この暗号鍵を端末装置122に配信できる。また、本実施形態にかかる鍵配信サーバ102は、映像配信サービスや、電子音楽配信サービス等のコンテンツ配信サービスを提供するコンテンツ配信サーバとしての機能を具備しており、端末装置122にコンテンツを配信可能である。なお、鍵配信サーバ102とコンテンツ配信サーバとを別装置として構成することも勿論可能である。   The key distribution server 102 is composed of a computer device or the like having a server function, and can transmit various types of information to an external device via a network. For example, the key distribution server 102 can generate an encryption key of a broadcast encryption scheme scheme and distribute this encryption key to the terminal device 122. The key distribution server 102 according to the present embodiment has a function as a content distribution server that provides a content distribution service such as a video distribution service or an electronic music distribution service, and can distribute the content to the terminal device 122. It is. Of course, the key distribution server 102 and the content distribution server may be configured as separate devices.

ここで、コンテンツは、例えば、映画、テレビジョン番組、ビデオプログラム、図表等の動画又は静止画からなる映像(Video)コンテンツ、音楽、講演、ラジオ番組等の音声(Audio)コンテンツや、ゲームコンテンツ、文書コンテンツ、ソフトウェアなど、任意のコンテンツデータであってもよい。映像コンテンツは、映像データのみならず、音声データを含んでいてもよい。   Here, the content is, for example, a movie (video) content such as a movie, a television program, a video program, a chart, or a video (Video) content, a music, a lecture, a radio program, a game content, Arbitrary content data such as document content and software may be used. The video content may include not only video data but also audio data.

端末装置122は、ネットワークを介して外部装置とデータ通信が可能な鍵配信サーバであり、各ユーザによって所有される。この端末装置122は、例えば、図示のようにパーソナルコンピュータ(Personal Computer;以下「PC」という。)等のコンピュータ装置(ノート型、デスクトップ型を問わない。)で構成されるが、かかる例に限定されず、ネットワークを介した通信機能を有する機器であれば、例えばPDA(Personal Digital Assistant)、家庭用ゲーム機、DVD/HDDレコーダ、テレビジョン受像器等の情報家電、テレビジョン放送用のチューナやデコーダなどで構成することもできる。また、端末装置122は、ユーザが持ち運びできるポータブルデバイス(Portabale Device)、例えば、携帯型ゲーム機、携帯電話、携帯型映像/音声プレーヤ、PDA、PHSなどであってもよい。   The terminal device 122 is a key distribution server capable of data communication with an external device via a network, and is owned by each user. The terminal device 122 is configured by a computer device (a notebook type or a desktop type) such as a personal computer (hereinafter referred to as “PC”) as shown in the figure, but is not limited to this example. If the device has a communication function via a network, for example, a PDA (Personal Digital Assistant), a home game machine, a DVD / HDD recorder, a television receiver, and other information home appliances, a television broadcast tuner, It can also be composed of a decoder or the like. Further, the terminal device 122 may be a portable device (Portable Device) that can be carried by the user, for example, a portable game machine, a mobile phone, a portable video / audio player, a PDA, a PHS, or the like.

この端末装置122は、鍵配信サーバ102から種々の情報を受信することができる。例えば、端末装置122は、鍵配信サーバ102から配信されたコンテンツを受信できる。このコンテンツ配信時には、鍵配信サーバ102は、種々の電子データを暗号化して配信することが可能である。例えば、鍵配信サーバ102は、コンテンツを暗号化するコンテンツ鍵を生成して配信することが可能である。このコンテンツ鍵は、例えば、擬似乱数生成器により算出された乱数(擬似乱数)、所定の文字列又は数列等により表現されていてもよい。そして、鍵配信サーバ102は、このコンテンツ鍵を用いて、所定の暗号化ロジックによりコンテンツを暗号化することができる。そして、鍵配信サーバ102は、当該コンテンツ鍵又はコンテンツ鍵に対応する復号鍵を、任意の端末装置122に対して配信することが可能である。一方で、端末装置122は、鍵配信サーバ102から受信した当該コンテンツ鍵又はコンテンツ鍵に対応する復号鍵を用いて、暗号化されたコンテンツを復号することができる。   The terminal device 122 can receive various information from the key distribution server 102. For example, the terminal device 122 can receive content distributed from the key distribution server 102. At the time of content distribution, the key distribution server 102 can encrypt and distribute various electronic data. For example, the key distribution server 102 can generate and distribute a content key that encrypts content. This content key may be expressed by, for example, a random number (pseudorandom number) calculated by a pseudorandom number generator, a predetermined character string, a number sequence, or the like. Then, the key distribution server 102 can encrypt the content using a predetermined encryption logic using the content key. The key distribution server 102 can distribute the content key or the decryption key corresponding to the content key to any terminal device 122. On the other hand, the terminal device 122 can decrypt the encrypted content using the content key received from the key distribution server 102 or the decryption key corresponding to the content key.

なお、コンテンツ鍵を生成するために用いる擬似乱数生成器は、所定のシード値を入力することによって、長周期の擬似的な乱数列を出力することが可能な装置又はプログラムであり、一般に、線形合同法やメルセンヌ・ツイスター法等のロジックを用いて実現されるものである。もちろん、本実施形態に適用可能な擬似乱数生成器は、これに限定されるものではなく、他のロジックを用いて擬似乱数を発生させてもよいし、或いは、特殊な情報又は条件を含んだ擬似乱数列を生成することが可能な装置又はプログラムであってもよい。   The pseudo random number generator used to generate the content key is a device or program that can output a long-period pseudo random number sequence by inputting a predetermined seed value. It is realized by using a logic such as a congruential method or Mersenne Twister method. Of course, the pseudo-random number generator applicable to the present embodiment is not limited to this, and the pseudo-random number may be generated using other logic, or includes special information or conditions. It may be a device or a program capable of generating a pseudo random number sequence.

さらに、本実施形態にかかる鍵配信サーバ102は、コンテンツ自体のみならず、コンテンツ鍵をも暗号化して配信するようになっている。確かに、コンテンツ自体を暗号化して配信することにより、ある程度のセキュリティレベルを確保できる。しかし、多数のユーザの中から、コンテンツの利用権限を許諾するユーザ(以下「許諾ユーザ」という。)を追加又は削除する際にフレキシブルに対応するためには、コンテンツ鍵自体を暗号化して配信する方式が有利である。この場合、本実施形態では、まず、鍵配信サーバ102は、コンテンツ鍵を暗号化・復号するための複数のセット鍵を生成する。後段において詳述するが、この複数のセット鍵は、それぞれ、多数のユーザの中から抽出された、複数の許諾ユーザの部分集合群に対応付けされている。つまり、鍵配信サーバ102は、許諾ユーザの集合だけがコンテンツ鍵を復号できるように設定されたセット鍵により、コンテンツ鍵を暗号化し、全てのユーザの端末装置122に対して暗号化されたコンテンツ鍵を配信するのである。かかる構成により、許諾ユーザの端末装置122のみが、暗号化されたコンテンツ鍵を復号することが可能になり、このコンテンツ鍵を用いて暗号化コンテンツを復号し、当該コンテンツを視聴等することができるようになる。もし、許諾ユーザの集合が変更された場合には、鍵配信サーバ102は、コンテンツ鍵の暗号化に用いるセット鍵を変更することにより対応可能である。上記の暗号鍵配信ロジックが成立するためには、セット鍵の生成や配信に係るアルゴリズムを実現できるように、鍵配信サーバ102等を構成する必要がある。   Furthermore, the key distribution server 102 according to the present embodiment is configured to encrypt and distribute not only the content itself but also the content key. Certainly, a certain level of security can be ensured by encrypting and distributing the content itself. However, the content key itself is encrypted and distributed in order to flexibly cope with the addition or deletion of a user (hereinafter referred to as “permitted user”) who grants the right to use the content from among a large number of users. The scheme is advantageous. In this case, in this embodiment, first, the key distribution server 102 generates a plurality of set keys for encrypting and decrypting the content key. As will be described in detail later, each of the plurality of set keys is associated with a subset group of a plurality of authorized users extracted from a large number of users. In other words, the key distribution server 102 encrypts the content key with the set key set so that only the set of authorized users can decrypt the content key, and encrypts the content key for the terminal devices 122 of all users. Is delivered. With this configuration, only the licensed user terminal device 122 can decrypt the encrypted content key, and the encrypted content can be decrypted using the content key to view the content. It becomes like this. If the set of authorized users is changed, the key distribution server 102 can respond by changing the set key used for encrypting the content key. In order for the above encryption key distribution logic to be established, it is necessary to configure the key distribution server 102 and the like so as to realize algorithms related to generation and distribution of set keys.

以下では、第1に、本実施形態にかかる鍵配信サーバ102及び端末装置122のハードウェア構成例について説明する。第2に、本実施形態に係る暗号鍵配信ロジックに関連する基盤技術について説明する。第3に、本実施形態に係る鍵配信サーバ102及び端末装置122の構成について詳細に説明し、その構成及び効果に関する基盤技術との相違点を明確に述べる。最後に、本実施形態に係る暗号鍵配信システムの応用例について説明する。   Hereinafter, first, hardware configuration examples of the key distribution server 102 and the terminal device 122 according to the present embodiment will be described. Secondly, a basic technology related to the encryption key distribution logic according to the present embodiment will be described. Third, the configuration of the key distribution server 102 and the terminal device 122 according to the present embodiment will be described in detail, and differences from the basic technology regarding the configuration and effects will be clearly described. Finally, an application example of the encryption key distribution system according to the present embodiment will be described.

[鍵配信サーバ102及び端末装置122のハードウェア構成]
まず、図2を参照しながら、本実施形態にかかる鍵配信サーバ102及び端末装置122のハードウェア構成例について説明する。図2は、本実施形態にかかる鍵配信サーバ102又は端末装置122の機能を実現可能なハードウェア構成の一例である。
[Hardware Configuration of Key Distribution Server 102 and Terminal Device 122]
First, a hardware configuration example of the key distribution server 102 and the terminal device 122 according to the present embodiment will be described with reference to FIG. FIG. 2 is an example of a hardware configuration capable of realizing the functions of the key distribution server 102 or the terminal device 122 according to the present embodiment.

鍵配信サーバ102及び端末装置122は、例えば、コントローラ202と、演算ユニット204と、入出力インターフェース206と、セキュア記憶部208と、メイン記憶部210と、ネットワークインターフェース212と、メディアインターフェース216と、を備える。   The key distribution server 102 and the terminal device 122 include, for example, a controller 202, an arithmetic unit 204, an input / output interface 206, a secure storage unit 208, a main storage unit 210, a network interface 212, and a media interface 216. Prepare.

(コントローラ202)
コントローラ202は、バスを介して他の構成要素に接続されており、主に、メイン記憶部210に格納されたプログラム及びデータに基づいて、装置内の各部を制御する役割を担う。なお、コントローラ202は、CPU(Central Processing Unit)等の演算処理装置により構成されていてもよい。
(Controller 202)
The controller 202 is connected to other components via a bus, and mainly plays a role of controlling each unit in the apparatus based on a program and data stored in the main storage unit 210. The controller 202 may be configured by an arithmetic processing device such as a CPU (Central Processing Unit).

(演算ユニット204(鍵配信サーバ102))
鍵配信サーバ102が備える演算ユニット204は、例えば、コンテンツの暗号化、コンテンツ鍵の暗号化、セット鍵の生成、及びセット鍵を生成するために用いる中間鍵の導出を実行することができる。従って、この演算ユニット204は、所定のデータ(シード値等)に基づいて擬似乱数を発生させる擬似乱数生成器として機能し得ると同時に、所定のアルゴリズムに基づいてコンテンツ又はコンテンツ鍵を暗号化することが可能である。なお、上記所定のアルゴリズムは、演算ユニット204が判読可能なプログラムとしてメイン記憶部210に格納されていてもよい。また、上記所定の情報は、メイン記憶部210又はセキュア記憶部208に格納されていてもよい。なお、演算ユニット204は、上記の各種演算処理を実行した出力結果をメイン記憶部210又はセキュア記憶部208に記録することが可能である。また、この演算ユニット204は、例えば、CPU等の演算処理装置により構成されていてもよく、上記のコントローラ202と一体に構成されてもよい。
(Calculation unit 204 (key distribution server 102))
The arithmetic unit 204 included in the key distribution server 102 can execute, for example, content encryption, content key encryption, set key generation, and derivation of an intermediate key used to generate a set key. Therefore, the arithmetic unit 204 can function as a pseudo-random number generator that generates pseudo-random numbers based on predetermined data (seed value, etc.), and at the same time encrypts content or content key based on a predetermined algorithm. Is possible. The predetermined algorithm may be stored in the main storage unit 210 as a program that can be read by the arithmetic unit 204. The predetermined information may be stored in the main storage unit 210 or the secure storage unit 208. Note that the arithmetic unit 204 can record an output result obtained by executing the various arithmetic processes in the main storage unit 210 or the secure storage unit 208. In addition, the arithmetic unit 204 may be configured by an arithmetic processing device such as a CPU, or may be configured integrally with the controller 202 described above.

(演算ユニット204(端末装置122))
一方、端末装置122が備える演算ユニット204は、例えば、コンテンツの復号、コンテンツ鍵の復号、セット鍵の生成、及びセット鍵を生成するために用いる中間鍵の生成を実行することができる。従って、この演算ユニット204は、所定のデータ(シード値等)に基づいて擬似乱数を発生させる擬似乱数生成器として機能し得ると同時に、所定のアルゴリズムに基づいてコンテンツ又はコンテンツ鍵を復号することが可能である。なお、所定のアルゴリズムは、演算ユニット204が判読可能なプログラムとしてメイン記憶部210に格納されていてもよい。また、所定の情報は、メイン記憶部210又はセキュア記憶部208に格納されていてもよい。なお、演算ユニット204は、上記の各種演算処理を実行した出力結果をメイン記憶部210又はセキュア記憶部208に記録することが可能である。また、この演算ユニット204は、例えば、CPU等の演算処理装置により構成されていてもよく、上記のコントローラ202と一体に構成されていてもよい。
(Calculation unit 204 (terminal device 122))
On the other hand, the arithmetic unit 204 included in the terminal device 122 can execute, for example, content decryption, content key decryption, set key generation, and generation of an intermediate key used to generate a set key. Therefore, the arithmetic unit 204 can function as a pseudo-random number generator that generates pseudo-random numbers based on predetermined data (seed value, etc.), and at the same time, can decrypt the content or content key based on a predetermined algorithm. Is possible. The predetermined algorithm may be stored in the main storage unit 210 as a program that can be read by the arithmetic unit 204. Further, the predetermined information may be stored in the main storage unit 210 or the secure storage unit 208. Note that the arithmetic unit 204 can record an output result obtained by executing the various arithmetic processes in the main storage unit 210 or the secure storage unit 208. In addition, the arithmetic unit 204 may be configured by an arithmetic processing device such as a CPU, or may be configured integrally with the controller 202 described above.

(入出力インターフェース206)
入出力インターフェース206は、主に、ユーザが情報を入力するための入力デバイスと、演算結果又はコンテンツの中身を出力する出力デバイスと、に接続されている。例えば、入力デバイスは、キーボード、マウス、トラックボール、タッチペン、キーパッド、又はタッチパネル等であってもよく、入出力インターフェース206に対して、有線又は無線により接続されていてもよい。場合によっては、入力デバイスは、有線又は無線により接続された携帯電話やPDA(Personal Digiral Assistant)等の携帯型電子機器であってもよい。一方、出力デバイスは、例えば、ディスプレイ等の表示装置、又はスピーカ等の音声出力デバイス等であってもよく、入出力インターフェース206に対して、有線又は無線により接続されていてもよい。なお、上記入出力デバイスは、鍵配信サーバ102又は端末装置122に内蔵或いは一体化されていてもよい。
(I / O interface 206)
The input / output interface 206 is mainly connected to an input device for a user to input information and an output device for outputting a calculation result or content contents. For example, the input device may be a keyboard, a mouse, a trackball, a touch pen, a keypad, a touch panel, or the like, and may be connected to the input / output interface 206 by wire or wirelessly. In some cases, the input device may be a portable electronic device such as a mobile phone or a PDA (Personal Digital Assistant) connected by wire or wirelessly. On the other hand, the output device may be, for example, a display device such as a display, or an audio output device such as a speaker, and may be connected to the input / output interface 206 by wire or wirelessly. The input / output device may be built in or integrated with the key distribution server 102 or the terminal device 122.

なお、入出力インターフェース206は、バスを介して他の構成要素に接続されており、入出力インターフェース206を介して入力された情報をメイン記憶部210等に伝達することが可能である。逆に、入出力インターフェース206は、メイン記憶部210等に格納された情報、ネットワークインターフェース212等を介して入力された情報、又は演算ユニット204がこれらの情報を演算して得られた結果等を出力デバイスに出力することができる。   The input / output interface 206 is connected to other components via a bus and can transmit information input via the input / output interface 206 to the main storage unit 210 and the like. On the contrary, the input / output interface 206 displays information stored in the main storage unit 210 or the like, information input via the network interface 212 or the like, or a result obtained by the arithmetic unit 204 calculating these information, or the like. Can be output to an output device.

(セキュア記憶部208)
セキュア記憶部208は、主に、コンテンツ鍵、セット鍵、及び中間鍵等の秘匿が必要な情報を安全に格納する。セキュア記憶部208は、例えば、ハードディスク等の磁気記憶装置、光ディスク等の光記憶装置、光磁気記憶装置、又は半導体記憶装置等により構成されていてもよい。また、セキュア記憶部208は、例えば、耐タンパ性を有する記憶装置により構成されていてもよい。
(Secure storage unit 208)
The secure storage unit 208 securely stores mainly information that needs to be concealed, such as a content key, a set key, and an intermediate key. The secure storage unit 208 may be configured by, for example, a magnetic storage device such as a hard disk, an optical storage device such as an optical disk, a magneto-optical storage device, or a semiconductor storage device. Further, the secure storage unit 208 may be configured by a storage device having tamper resistance, for example.

(メイン記憶部210)
メイン記憶部210は、例えば、他の構成要素を制御するための制御プログラム、コンテンツ又はコンテンツ鍵等を暗号化するための暗号化プログラム、暗号化されたコンテンツ又はコンテンツ鍵等を復号するための復号プログラム、又は、セット鍵又は中間鍵を生成するための鍵生成プログラム等が格納されていてもよい。また、メイン記憶部210は、演算ユニット204により出力された計算結果を一時的又は永続的に格納したり、入出力インターフェース206、ネットワークインターフェース212、又はメディアインターフェース216等から入力された情報を格納してもよい。なお、メイン記憶部210は、例えば、ハードディスク等の磁気記憶装置、光ディスク等の光記憶装置、光磁気記憶装置、又は半導体記憶装置等により構成されていてもよい。また、メイン記憶部210は、セキュア記憶部208と一体に構成されていてもよい。
(Main storage unit 210)
The main storage unit 210 is, for example, a control program for controlling other components, an encryption program for encrypting content or content key, and a decryption for decrypting encrypted content or content key. A program or a key generation program for generating a set key or an intermediate key may be stored. Further, the main storage unit 210 temporarily or permanently stores the calculation result output from the arithmetic unit 204, or stores information input from the input / output interface 206, the network interface 212, the media interface 216, or the like. May be. The main storage unit 210 may be configured by, for example, a magnetic storage device such as a hard disk, an optical storage device such as an optical disk, a magneto-optical storage device, or a semiconductor storage device. The main storage unit 210 may be configured integrally with the secure storage unit 208.

(ネットワークインターフェース212)
ネットワークインターフェース212は、例えば、ネットワーク上の他の通信装置等に接続されており、例えば、暗号化されたコンテンツ又はコンテンツ鍵、セット鍵、中間鍵等の情報、暗号化に関するパラメータ情報、及び許諾ユーザの集合に関する情報を送受信するためのインターフェース手段である。ネットワークインターフェース212は、バスを介して他の構成要素に接続されており、ネットワーク上の外部装置から受信した情報を他の構成要素に伝達し、又は他の構成要素が有する情報をネットワーク上の外部装置に送信することが可能である。
(Network interface 212)
The network interface 212 is connected to, for example, another communication device on the network. For example, information such as encrypted content or content key, set key, intermediate key, parameter information related to encryption, and licensed user Interface means for transmitting and receiving information on the set of The network interface 212 is connected to other components via a bus and transmits information received from an external device on the network to other components, or information held by other components is external to the network. Can be sent to the device.

(メディアインターフェース216)
メディアインターフェース216は、情報メディア218を着脱して情報を読み書きするためのインターフェースであり、バスを介して他の構成要素に接続されている。このメディアインターフェース216は、例えば、装着された情報メディア218から情報を読み出して他の構成要素に伝達し、又は他の構成要素から供給された情報を情報メディア218に書き込むことが可能である。情報メディア218は、例えば、光ディスク、磁気ディスク、半導体メモリ等のポータブル記憶媒体(着脱可能な記憶媒体)であってもよいし、又はネットワークを介さずに比較的近距離で有線/無線接続された情報端末の記憶媒体等であってもよい。
(Media interface 216)
The media interface 216 is an interface for reading / writing information by attaching / detaching the information medium 218, and is connected to other components via a bus. For example, the media interface 216 can read information from the mounted information medium 218 and transmit the information to another component, or write information supplied from the other component to the information medium 218. The information medium 218 may be a portable storage medium (detachable storage medium) such as an optical disk, a magnetic disk, or a semiconductor memory, or may be wired / wirelessly connected at a relatively short distance without going through a network. It may be a storage medium of an information terminal.

以上、本実施形態に係る鍵配信サーバ102及び端末装置122の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。また、上記のハードウェア構成は、あくまでも一例であり、これに限定されるものでないことは言うまでもない。例えば、コントローラ202と演算ユニット204とを同一の演算装置により構成してもよいし、セキュア記憶部208とメイン記憶部210とを同一の記憶装置により構成してもよい。また、利用形態によっては、メディアインターフェース216、又は入出力インターフェース206等を省略する構成も可能である。以下、上記のようなハードウェア構成を有する鍵配信サーバ102及び端末装置122により実現される暗号鍵配信方式について詳述する。   Heretofore, an example of the hardware configuration capable of realizing the functions of the key distribution server 102 and the terminal device 122 according to the present embodiment has been shown. Each component described above may be configured using a general-purpose member, or may be configured by hardware specialized for the function of each component. Therefore, it is possible to change the hardware configuration to be used as appropriate according to the technical level at the time of carrying out this embodiment. The hardware configuration described above is merely an example, and it goes without saying that the present invention is not limited to this. For example, the controller 202 and the arithmetic unit 204 may be configured by the same arithmetic device, and the secure storage unit 208 and the main storage unit 210 may be configured by the same storage device. Further, depending on the usage mode, a configuration in which the media interface 216 or the input / output interface 206 is omitted may be possible. Hereinafter, an encryption key distribution method realized by the key distribution server 102 and the terminal device 122 having the above hardware configuration will be described in detail.

[基盤技術に係る暗号鍵配信方式]
まず、本実施形態にかかる暗号鍵配信方式について詳細なる説明をするに先立ち、本実施形態を実現する上で基盤を成す技術的事項について述べる。なお、本実施形態は、以下に記載する基盤技術に改良を加えることにより、より顕著な効果を得ることができるように構成されたものである。従って、その改良に係る技術こそが本実施形態の特徴を成す部分である。つまり、本実施形態は、ここで述べる技術的事項の基礎概念を踏襲するが、その本質はむしろ改良部分に集約されており、その構成が明確に相違すると共に、その効果において基盤技術とは一線を画するものであることに注意されたい。
[Encryption key distribution method for basic technology]
First, prior to detailed description of the encryption key distribution method according to the present embodiment, technical matters that form the basis for realizing the present embodiment will be described. In addition, this embodiment is comprised so that a more remarkable effect can be acquired by adding improvement to the fundamental technique described below. Therefore, the technology related to the improvement is the only part that characterizes this embodiment. In other words, the present embodiment follows the basic concept of the technical matters described here, but the essence is rather concentrated in the improved portion, the configuration is clearly different, and the effect is in line with the basic technology. Please note that

以下で説明する基盤技術に係る暗号鍵配信方式のことを基盤方式と呼ぶことにする。この基盤方式は、コンテンツが配信されるユーザの端末装置の集合を、複数の部分集合に分け、各部分集合に割り当てられたセット鍵によってコンテンツ鍵を暗号化して配信する方式である。この基盤方式は、暗号鍵配信に伴う通信量、各ユーザが保持すべき復号鍵の数、又は各ユーザが復号鍵を生成するための計算量等を削減する為に、どのような部分集合を選択するか、どのようにセット鍵を生成するか、どのようにセット鍵を配信するか、という課題に対して一つの解決手段を提供している。そこで、図3〜図7を参照しながら、この基盤方式について説明する。   An encryption key distribution method related to the basic technology described below will be referred to as a basic method. This basic scheme is a scheme in which a set of terminal devices of users to whom content is distributed is divided into a plurality of subsets, and the content key is encrypted by a set key assigned to each subset and distributed. This basic scheme is designed to reduce the amount of communication associated with encryption key distribution, the number of decryption keys that each user should hold, or the amount of calculation for each user to generate a decryption key. One solution is provided for the problem of how to select, how to generate a set key, and how to distribute the set key. Therefore, this basic method will be described with reference to FIGS.

(木構造の設定)
まず、基盤方式では、コンテンツ配信の対象となる端末装置(ユーザ)の集合を複数の部分集合に分けて考える。そこで、図3を参照しながら、基盤方式に係る部分集合の分け方について説明する。もちろん、部分集合の分け方は一通りではないが、基盤方式では、2分木構造を用いた部分集合の分け方を採用している。以下で詳細に説明するが、概略的に説明すると、基盤方式は、2分木構造を構成する各結節点(ノード)に対し、ノード間の位置関係を考慮して所定の部分集合を割り当てることにより、所定の組合せを有するユーザの部分集合を網羅的に選択しているのである。この選択方法の妙は、図3に示した2分木構造の具体例により、より明確に理解されるものと思われる。そこで、図3を参照しながら、2分木構造の構築方法について述べる。
(Tree structure setting)
First, in the basic scheme, a set of terminal devices (users) that are targets of content distribution is divided into a plurality of subsets. Therefore, with reference to FIG. 3, how to divide the subset according to the base scheme will be described. Of course, there is not one way to divide the subset, but the basic method adopts a method of dividing the subset using a binary tree structure. As will be described in detail below, the basic scheme assigns a predetermined subset to each node (node) constituting the binary tree structure in consideration of the positional relationship between the nodes. Thus, a subset of users having a predetermined combination is comprehensively selected. The strangeness of this selection method can be understood more clearly from the specific example of the binary tree structure shown in FIG. Therefore, a method for constructing a binary tree structure will be described with reference to FIG.

まず、以下の説明に用いる集合を定義する。
・全ての端末装置(ユーザ)の集合N={1,2,・・・,n}(nは2のべき乗)
自然数i及びj(i≦j)について、
・[i,j]={i,i+1,i+2,・・・,j}
・(i→i)=(i←i)={{i}}
・(i→j)={{i},{i,i+1},・・・,{i,i+1,・・・,j}}
={[i,i],[i,i+1],[i,i+2],・・・,[i,j]}
・(i←j)={{j},{j,j−1},・・・,{j,j−1,・・・,i}}
={[j,j],[j−1,j],[j−2,j],・・・,[i,j]}
First, a set used for the following explanation is defined.
A set N = {1, 2,..., N} of all terminal devices (users) (n is a power of 2)
For natural numbers i and j (i ≦ j)
[I, j] = {i, i + 1, i + 2,..., J}
(I → i) = (i ← i) = {{i}}
(I → j) = {{i}, {i, i + 1},..., {I, i + 1,..., J}}
= {[I, i], [i, i + 1], [i, i + 2], ..., [i, j]}
(I ← j) = {{j}, {j, j−1},..., {J, j−1,..., I}}
= {[J, j], [j-1, j], [j-2, j], ..., [i, j]}

以下では、2分木構造(BT;Binary Tree)上の末端に位置するノードを葉ノード、頂点に位置するノードを根ノード、根ノードと葉ノードとの間に位置する各ノードを中間ノードと呼ぶことにする。また、葉ノードが各端末装置に対応する。また、以下では、説明の便宜上、端末装置とユーザとが1:1対応していると仮定し、葉ノードに対応付けられる「端末装置」を「ユーザ」と表記して説明する場合もある。なお、図3は、BTの葉ノード数n=64の例である。   In the following, a node located at the end of a binary tree structure (BT) is a leaf node, a node located at the vertex is a root node, and each node located between the root node and the leaf node is an intermediate node. I will call it. A leaf node corresponds to each terminal device. In the following, for convenience of explanation, it is assumed that the terminal device and the user have a 1: 1 correspondence, and the “terminal device” associated with the leaf node may be described as “user”. FIG. 3 shows an example in which the number of leaf nodes n of the BT is n = 64.

まず、葉ノードの数がn(=64)となるようにBTを作成する。そして、各葉ノードに対し、左端から右方向に向かって番号1,2,...,nを割り当てる。   First, a BT is created so that the number of leaf nodes is n (= 64). Then, for each leaf node, numbers 1, 2,. . . , N.

次に、ある中間ノードvに割り当てる部分集合を規定するための指標lv、rvを定義する。ある中間ノードvの下位に位置する葉ノードのうち、最左にある葉ノードの番号をlv、最右にある葉ノードの番号をrvと定義する。但し、vは、各中間ノードに割り当てられた連続する番号であると考えてもよい。つまり、中間ノードvは、vを指標とするBT上の中間ノードを示すものである。   Next, indices lv and rv for defining a subset to be assigned to a certain intermediate node v are defined. Of the leaf nodes located below a certain intermediate node v, the leftmost leaf node number is defined as lv, and the rightmost leaf node number is defined as rv. However, v may be considered as a consecutive number assigned to each intermediate node. That is, the intermediate node v indicates an intermediate node on the BT using v as an index.

次に、BT上の中間ノードを2つの集合に分類して定義する。BT上の中間ノードのうち、親ノードの左側に位置する中間ノードの集合をBTLと定義し、親ノードの右側に位置する中間ノードの集合をBTRと定義する。なお、ここで言う親子関係とは、BT上で接続されたノード間の上下関係を意味し、親ノードが上位に位置して子ノードが下位に位置する関係を示している。   Next, the intermediate nodes on the BT are defined by being classified into two sets. Among the intermediate nodes on the BT, a set of intermediate nodes positioned on the left side of the parent node is defined as BTL, and a set of intermediate nodes positioned on the right side of the parent node is defined as BTR. Here, the parent-child relationship means a vertical relationship between nodes connected on the BT, and indicates a relationship in which the parent node is positioned higher and the child node is positioned lower.

次に、BT上の根ノードに、各葉ノードに対応付けられたユーザ集合の部分集合を対応付ける。まず、根ノードに対して集合(1→n)と集合(2←n)とを対応付ける。根ノードは、その下位に全ての葉ノードが連結されているため、これらの葉ノードを網羅的又は選択的に包含する集合により表現されるのである。具体的には、図3の根ノードには、集合(1→64)と集合(2←64)とが対応付けられている。そこで、集合(1→64)について考える。集合(1→64)は、その要素として、部分集合[1,1],[1,2],・・・,[1,64]を含んでいる。例えば、全てのユーザ(葉ノード)を表現するには、部分集合[1,64]を用いればよく、これは集合(1→64)の要素として含まれる。また、番号16のユーザを除く全てのユーザを表現するには、部分集合[1,15]及び[17,64]を用いればよく、それぞれ、集合(1→64)及び集合(2←64)の要素として含まれる。このように、根ノードの下位に位置する葉ノード(ユーザ)の組合せを、対応付けられた集合の部分集合により表現できるのである。   Next, a subset of the user set associated with each leaf node is associated with the root node on the BT. First, a set (1 → n) and a set (2 ← n) are associated with the root node. Since all the leaf nodes are connected below the root node, the root node is expressed by a set that comprehensively or selectively includes these leaf nodes. Specifically, the root node in FIG. 3 is associated with a set (1 → 64) and a set (2 ← 64). Therefore, consider the set (1 → 64). The set (1 → 64) includes subsets [1,1], [1,2],..., [1,64] as its elements. For example, in order to express all users (leaf nodes), a subset [1, 64] may be used, which is included as an element of the set (1 → 64). In order to express all users except the user with the number 16, the subsets [1, 15] and [17, 64] may be used, and the set (1 → 64) and the set (2 ← 64), respectively. Included as an element. In this way, the combination of leaf nodes (users) positioned below the root node can be expressed by a subset of the associated set.

次に、BT上の中間ノードにユーザ集合の部分集合を対応付ける。まず、上記の集合BTLに属する中間ノードvに対して、集合(lv+1←rv)を対応付ける。一方、上記の集合BTRに属する中間ノードvに対して、集合(lv→rv−1)を対応付ける。もちろん、BT上の全ての中間ノードvに対して、これらの集合を対応付ける。図3を参照すると、各中間ノードの脇にこれらの集合が記載されていることが分かる。例えば、集合(2←4)が対応付けられた中間ノードを見ると、この中間ノードの下位には、集合(2←2)と集合(3→3)とが対応付けられた2つの中間ノードがあり、さらに、番号1〜4までの葉ノードが連結されている。そこで、これらの葉ノードから番号3を除く葉ノードの組合せを表現しようとすれば、{[1,1][2,2],[4,4]}又は{[1,2],[4,4]}という部分集合の組により表現することができる。部分集合[1,1]及び[1,2]は、根ノードに割り当てられた集合(1→64)の要素であるが、部分集合[2,2]及び[4,4]は、それぞれ、集合(2←2)及び(2←4)の要素である。   Next, a subset of the user set is associated with the intermediate node on the BT. First, a set (lv + 1 ← rv) is associated with the intermediate node v belonging to the set BTL. On the other hand, a set (lv → rv−1) is associated with the intermediate node v belonging to the set BTR. Of course, these sets are associated with all intermediate nodes v on the BT. Referring to FIG. 3, it can be seen that these sets are described beside each intermediate node. For example, when an intermediate node associated with the set (2 ← 4) is viewed, two intermediate nodes associated with the set (2 ← 2) and the set (3 → 3) are subordinate to the intermediate node. In addition, leaf nodes numbered 1 to 4 are connected. Therefore, if an attempt is made to express a combination of leaf nodes excluding the number 3 from these leaf nodes, {[1,1] [2,2], [4,4]} or {[1,2], [4 , 4]}. Subsets [1,1] and [1,2] are elements of the set (1 → 64) assigned to the root node, while subsets [2,2] and [4,4] are respectively It is an element of the sets (2 ← 2) and (2 ← 4).

このように、基盤方式では、2分木構造BTを用いてユーザ集合の部分集合を定義している。この方法によって様々な組合せを持つユーザの部分集合を表現することが可能になる。なお、これらの部分集合により構築された全体集合のことをセットシステムΦと呼び、下式(1)のように定義する。つまり、下式(1)は、上記の方法で構築した2分木構造を数学的に表現したものである。   Thus, in the basic scheme, a subset of the user set is defined using the binary tree structure BT. This method makes it possible to represent a subset of users with various combinations. Note that the whole set constructed by these subsets is called a set system Φ and is defined as the following equation (1). That is, the following expression (1) is a mathematical expression of the binary tree structure constructed by the above method.

Figure 2008131079
Figure 2008131079

以上、部分集合を規定する2分木構造の設定方法について述べた。基盤方式の基本コンセプトは、これらの各部分集合に対して、コンテンツ鍵を暗号化するためのセット鍵を設定し、各セット鍵によりコンテンツ鍵を暗号化して全ユーザに配信することにある。上記のように部分集合を定義したことにより、少なくともユーザの組合せを分類する一手段が規定された。以下では、これらの部分集合を利用してセット鍵を生成するアルゴリズムについて説明する。   The method for setting the binary tree structure that defines the subset has been described above. The basic concept of the infrastructure system is to set a set key for encrypting the content key for each of these subsets, encrypt the content key with each set key, and distribute it to all users. By defining subsets as described above, at least one means of classifying user combinations was defined. Hereinafter, an algorithm for generating a set key using these subsets will be described.

(有向グラフの生成)
ここでは、図4を参照しながら、セット鍵を生成するアルゴリズムを表現した有向グラフの生成方法について説明する。しかし、これに先立って、コンテンツ鍵を暗号化するセット鍵と、セット鍵を生成するための中間鍵と、の関係について述べる。
(Generate directed graph)
Here, a method for generating a directed graph representing an algorithm for generating a set key will be described with reference to FIG. However, prior to this, the relationship between the set key for encrypting the content key and the intermediate key for generating the set key will be described.

先に簡単に触れたが、基盤方式では、セット鍵を生成するために特殊な擬似乱数生成器PRSG(Pseudo−Random Sequence Generator)を用いる。このPRSGは、ある部分集合S0に対応する中間鍵t(S0)が入力されると、部分集合S0に対応するセット鍵k(S0)と、部分集合S0に関連する部分集合S1、S2、・・・、Skに対応する中間鍵t(S1)、t(S2)、・・・、t(Sk)と、を出力する。もちろん、集合S0及びS1、・・・、Skは、上記のセットシステムΦを構成する部分集合のいずれかである。つまり、このPRSGこそが鍵生成装置なのである。基盤方式の特徴は、PRSGの入力と出力との関係を規定するロジックにある。そこで、上記の集合S0と集合S1、S2、・・・、Skとの関係を規定する有向グラフについて説明する。   As briefly mentioned above, in the basic scheme, a special pseudo random number generator PRSG (Pseudo-Random Sequence Generator) is used to generate a set key. When an intermediate key t (S0) corresponding to a certain subset S0 is input to this PRSG, the set key k (S0) corresponding to the subset S0 and the subsets S1, S2,. ... Output intermediate keys t (S1), t (S2),..., T (Sk) corresponding to Sk. Of course, the sets S0 and S1,..., Sk are any of the subsets constituting the set system Φ. That is, this PRSG is the key generation device. The feature of the base system is in the logic that defines the relationship between the input and output of the PRSG. A directed graph that defines the relationship between the set S0 and the sets S1, S2,..., Sk will be described.

ここで、以下の説明に用いる記号を定義する。
・部分集合Siに対応する中間鍵 : t(Si)
・部分集合Siに対応するセット鍵: k(Si)
・コンテンツ鍵 : mek
・擬似乱数生成器 : PRSG
(但し、t(S0)を入力することをPRSG(t(S0))と表記する。
一方、PRSGの出力を
t(S1)||・・・||t(Sk)||k(S0)←PRSG(t(S0))
のように表記する。)
・有向グラフ : H
(但し、集合(i←j)に対応する有向グラフをH(i←j)と表記する。)
・有向枝 : E
・有向パス : P
Here, symbols used in the following description are defined.
Intermediate key corresponding to subset Si: t (Si)
Set key corresponding to subset Si: k (Si)
・ Content key: mek
-Pseudo random number generator: PRSG
(However, inputting t (S0) is expressed as PRSG (t (S0)).
On the other hand, the output of PRSG is t (S1) || ... || t (Sk) |
Notation is as follows. )
・ Directed graph: H
(However, the directed graph corresponding to the set (i ← j) is expressed as H (i ← j).)
・ Directed branch: E
・ Directed path: P

まず、パラメータk(kは自然数)を決める。ここでは簡単のために、k|log(n)(以下、logの底は2)とする。このパラメータkは、結果的に端末装置122が保持すべき中間鍵の個数、及びセット鍵を生成するのに必要な計算量に関係するため、状況に応じて、適宜、設定されるべきパラメータである。図4では、例えば、k=6が設定されている。   First, a parameter k (k is a natural number) is determined. Here, for the sake of simplicity, k | log (n) (hereinafter, the bottom of the log is 2). Since this parameter k is related to the number of intermediate keys to be held by the terminal device 122 and the amount of calculation required to generate the set key as a result, it is a parameter that should be set appropriately according to the situation. is there. In FIG. 4, for example, k = 6 is set.

次に、具体的な有向グラフの描き方について述べる。まず、一例として、BTRに属する中間ノードvに対応した有向グラフH(lv→rv−1)について説明する。   Next, we describe how to draw a specific directed graph. First, as an example, a directed graph H (lv → rv−1) corresponding to an intermediate node v belonging to BTR will be described.

(工程1)有向グラフH(lv→rv−1)を構成するための水平座標軸を設定する。この座標軸には、集合(lv→rv−1)の要素を成す部分集合Siが座標点として割り当てられる。これらの座標点を成す部分集合Siは、左から右に向かって包含関係が大きくなるように配列される。例えば、有向グラフH(5→7)=H({[5,5],[5,6],[5,7]})を例に挙げると、座標軸は、左から順に部分集合[5,5],[5,6],[5,7]が割り当てられた3つの座標点を有する。 (Step 1) A horizontal coordinate axis for configuring the directed graph H (lv → rv−1) is set. A subset Si that constitutes an element of the set (lv → rv−1) is assigned to the coordinate axis as a coordinate point. The subsets Si forming these coordinate points are arranged so that the inclusion relationship increases from left to right. For example, taking the directed graph H (5 → 7) = H ({[5,5], [5,6], [5,7]}) as an example, the coordinate axis is a subset [5,5 in order from the left. ], [5, 6], and [5, 7].

なお、第1及び第3水平座標軸上の右向きの有向グラフHにおいてその始点が位置する縦線がxである場合、この有効グラフHと縦線yとの交点は[x,y]を表し、また、第2及び第4水平座標軸上の左向きの有向グラフHにおいてその始点が位置する縦線がzである場合、この有効グラフHと縦線yとの交点は[y,z]を表す。   In the right directed graph H on the first and third horizontal coordinate axes, when the vertical line where the starting point is located is x, the intersection of the effective graph H and the vertical line y represents [x, y], and In the left directed graph H on the second and fourth horizontal coordinate axes, when the vertical line where the starting point is located is z, the intersection of the effective graph H and the vertical line y represents [y, z].

その後、座標軸の最左に位置する座標点の左側に始点となる仮座標点を設定し、座標軸の最右に位置する座標点の右側に終点となる仮座標点を設定する。このように設定された座標軸は、左端の仮座標点(始点)から右端の仮座標点(終点)までの長さLvが、Lv=rv−lv+1となる。   Thereafter, a temporary coordinate point serving as a start point is set on the left side of the coordinate point located on the leftmost side of the coordinate axis, and a temporary coordinate point serving as an end point is set on the right side of the coordinate point located on the rightmost side of the coordinate axis. The coordinate axis set in this way has a length Lv from the leftmost temporary coordinate point (start point) to the rightmost temporary coordinate point (end point) as Lv = rv−lv + 1.

(工程2)有向グラフH(lv→rv−1)を構成する有向枝を設定する。
(2−1)n(x−1)/k<Lv≦nx/kを満たす整数xを算出する。この整数xは、1≦x≦kを満たす。
(2−2)カウンタiを0からx−1まで動かしながら、次の操作を繰り返し行う。水平座標軸の左端にある始点から開始し、その座標点からni/kだけ離れた座標点へ延びる右向きの有向枝の設定(その座標点からni/kだけ離れた座標点へのジャンプ)を、有向枝の終端が水平座標軸の右端にある終点に到達するか、或いは、次に設定される有向枝の終端が当該終点を超えるまで、繰り返し行う。
(工程3)仮座標点を始点又は終点とする有向枝を全て削除する。
(工程4)ある座標点に到達する有向枝が複数ある場合には、最長の有向枝のみを残し、この最長の有向枝以外の有向枝を全て削除する。
(Step 2) A directional branch constituting the directed graph H (lv → rv−1) is set.
(2-1) An integer x satisfying n (x−1) / k <Lv ≦ n x / k is calculated. This integer x satisfies 1 ≦ x ≦ k.
(2-2) The following operation is repeated while moving the counter i from 0 to x-1. Starting from the starting point at the left end of the horizontal coordinate axis, jump setting a rightward directional branch extending from the coordinate point to n i / k apart coordinate point (from the coordinate point to n i / k apart coordinate points ) Is repeated until the end of the directed edge reaches the end point at the right end of the horizontal coordinate axis, or the end of the next directed branch exceeds the end point.
(Step 3) All directional branches having a temporary coordinate point as a start point or an end point are deleted.
(Step 4) If there are a plurality of directional branches that reach a certain coordinate point, only the longest directional branch is left, and all directional branches other than the longest directional branch are deleted.

以上の(工程1)〜(工程4)を実行すると、有向グラフH(lv→rv−1)が完成する。例えば、図4の上から3段目の右側に位置する有向グラフH(33→63)を一例として参照すると、アーチ状の曲線の有効枝と、アーチ状の曲線の一端に接続され、水平方向に延伸した直線と、により構成される線の組が有向グラフH(33→63)の実体である。また、有向グラフH(33→63)を構成する各曲線及び直線が有向枝である。そして、有向枝の端部と縦線との交点が座標点である。図4には水平座標軸を明示していないが、縦線と有向枝の端部との交点の組により水平座標軸が構成されている。さらに、有向グラフH(33→63)の上部には、白抜き矢印が描画されているが、これが有向枝の方向を示すものである。つまり、有向グラフH(33→63)を構成する有向枝は全て右向きであることを示している。   When the above (Step 1) to (Step 4) are executed, the directed graph H (lv → rv−1) is completed. For example, referring to the directed graph H (33 → 63) located on the right side of the third row from the top in FIG. 4 as an example, it is connected to the effective branch of the arch-shaped curve and one end of the arch-shaped curve, and in the horizontal direction. A set of lines constituted by the extended straight lines is the substance of the directed graph H (33 → 63). Further, each curve and straight line constituting the directed graph H (33 → 63) is a directed branch. And the intersection of the edge part of a directed branch and a vertical line is a coordinate point. Although the horizontal coordinate axis is not explicitly shown in FIG. 4, the horizontal coordinate axis is configured by a set of intersections between the vertical lines and the ends of the directed branches. Further, a white arrow is drawn on the upper portion of the directed graph H (33 → 63), and this indicates the direction of the directed branch. That is, all the directional branches constituting the directed graph H (33 → 63) are directed rightward.

上記有向グラフH(lv→rv−1)と同様にして、BTLに属する中間ノードvに対応付けられた有向グラフH(lv+1←rv)、及び根ノードに対応付けられた有向グラフH(1→n)及びH(2←n)を設定する。但し、有向グラフH(lv+1←rv)及びH(2←n)の座標軸を設定する際には、水平座標軸上に右から左に向かって包含関係が大きくなるように部分集合Siを配列し、有向枝の向きを左向きにする。また、有向グラフH(1→n)は、有向グラフH(1→n−1)に有向枝E([1,n−1],[1,n])を付加して生成される。一方、有向グラフH(2←n)は、有向グラフH(lv+1←rv)と同一の方法により設定される。   Similar to the directed graph H (lv → rv−1), the directed graph H (lv + 1 ← rv) associated with the intermediate node v belonging to the BTL, the directed graph H (1 → n) associated with the root node, and Set H (2 ← n). However, when setting the coordinate axes of the directed graphs H (lv + 1 ← rv) and H (2 ← n), the subset Si is arranged on the horizontal coordinate axis so that the inclusion relation increases from right to left. Turn the counter branch to the left. The directed graph H (1 → n) is generated by adding the directed edge E ([1, n−1], [1, n]) to the directed graph H (1 → n−1). On the other hand, the directed graph H (2 ← n) is set by the same method as the directed graph H (lv + 1 ← rv).

ここで、図4の有向グラフH(1→64)を例に挙げて説明を加える。まず、有向グラフH(1→64)の水平座標軸は、最左にある座標点(縦線1との交点)が[1,1]={1}、その右隣の座標点(縦線2との交点)が[1,2]={1,2}、その右隣の座標点が[1,3]={1,2,3}となる。また、各有向グラフの直上又は直下に描いた矢印は、その有向グラフHを構成する全ての有向枝が示す向きを表している。例えば、有向グラフH(1→64)には、座標点[1,1]から[1,2]への有向枝があり、座標点[1,2]から[1,3]と[1,4]とへ伸びる2本の有向枝がある。また、図4の最下段に描かれた黒丸は、左からそれぞれ、有向グラフH(2→2)、H(3→3)、・・・、H(63→63)を表している。   Here, a description is added by taking the directed graph H (1 → 64) in FIG. 4 as an example. First, the horizontal coordinate axis of the directed graph H (1 → 64) is [1, 1] = {1} at the leftmost coordinate point (intersection with the vertical line 1), and the right coordinate point (vertical line 2 and ) Is [1,2] = {1,2}, and the right coordinate point is [1,3] = {1,2,3}. In addition, an arrow drawn immediately above or directly below each directed graph represents the direction indicated by all the directed branches constituting the directed graph H. For example, the directed graph H (1 → 64) has a directional branch from the coordinate point [1,1] to [1,2], and the coordinate point [1,2] to [1,3] and [1,3]. 4] There are two directed branches extending to Also, the black circles drawn at the bottom of FIG. 4 represent the directed graphs H (2 → 2), H (3 → 3),..., H (63 → 63), respectively, from the left.

以上、有向グラフHの設定方法について説明した。上記の方法により、BT上の各中間ノード及び根ノードにそれぞれ対応する有向グラフHを描画したものが図4である。この例は、n=64、k=6の場合である。以下では、この有向グラフHを用いてセット鍵を生成するロジックについて述べる。   The setting method of the directed graph H has been described above. FIG. 4 shows the directed graph H corresponding to each intermediate node and root node on the BT by the above method. In this example, n = 64 and k = 6. Below, the logic which produces | generates a set key using this directed graph H is described.

(セット鍵の生成)
既に述べたように、基盤方式では、上記のセットシステムΦを構成する各部分集合Siに割り当てられたセット鍵k(Si)を用いて、コンテンツ鍵mekを暗号化して配信する。つまり、上記の有向グラフHの各座標点は、それぞれ、1人以上のユーザから構成される部分集合Siに対応しており、セット鍵k(Si)が割り当てられる。また、中間鍵t(Si)についても、上記の各部分集合Siに割り当てられ、セット鍵k(Si)を生成するために利用される。
(Generate set key)
As already described, in the basic scheme, the content key mek is encrypted and distributed using the set key k (Si) assigned to each subset Si constituting the set system Φ. That is, each coordinate point of the directed graph H corresponds to a subset Si composed of one or more users, and is assigned a set key k (Si). Further, the intermediate key t (Si) is also assigned to each of the subsets Si and used to generate the set key k (Si).

ところで、上述した(2−2)の処理における繰り返し回数がx回であり、1≦x≦kであるため、有向グラフHの各座標点からは、最大でk本の有向枝が出ている。ある座標点(部分集合S0)から出ている1又は2以上の有向枝の到達先の座標点の部分集合を、上記ある座標点に近い順(有向枝が短い順)に、S1,S2,・・・,Skとする。ただし、座標点(部分集合S0)から出ている有向枝の数がq本(q<k)である場合には、S(q+1),S(q+2),・・・,Skはダミーとし、実際には使用しない。   By the way, since the number of repetitions in the above-described process (2-2) is x and 1 ≦ x ≦ k, there are at most k directional branches from each coordinate point of the directed graph H. . A subset of coordinate points to which one or more directional branches from a certain coordinate point (subset S0) reach is set in the order close to the certain coordinate point (in the order of short directional branch), S1, S2,..., Sk. However, when the number of directional branches from the coordinate point (subset S0) is q (q <k), S (q + 1), S (q + 2),. Not actually used.

基盤方式では、セット鍵k(Si)を生成するために、λビットの入力に対して(k+1)λビットを出力する上述のPRSGを利用する。このPRSGは、ある座標点(部分集合S0)に対応する中間鍵t(S0)を入力すると、当該座標点を始点とする有向枝の終点の各座標点(部分集合S1、S2、・・・、Sk)に対応する中間鍵t(S1)、t(S2)、・・・、t(Sk)と、当該部分集合S0のセット鍵k(S0)と、を出力する。つまり、t(S1)||・・・||t(Sk)||k(S0)←PRSG(t(S0))である。このPRSGの出力を左からλビットごとに区切ることで、中間鍵t(S1)、t(S2)、・・・、t(Sk)と、セット鍵k(S0)とが得られる。   In the base scheme, the above-described PRSG that outputs (k + 1) λ bits with respect to the input of λ bits is used to generate the set key k (Si). When this PRSG receives an intermediate key t (S0) corresponding to a certain coordinate point (subset S0), each coordinate point (subset S1, S2,. The intermediate keys t (S1), t (S2),..., T (Sk) corresponding to Sk) and the set key k (S0) of the subset S0 are output. That is, t (S1) || ... || t (Sk) || k (S0) ← PRSG (t (S0)). By dividing the PRSG output into λ bits from the left, intermediate keys t (S1), t (S2),..., T (Sk) and set key k (S0) are obtained.

例えば、図4の有向グラフH(1→64)を参照し、座標点(部分集合S0)=[1,8](左端から8番目の座標点)に注目すると、この座標点S0からは4本の有向枝が出ており、その終点は、それぞれ、S1=[1,9],S2=[1,10],S3=[1,12],S4=[1,16]である。このため、中間鍵t(S0)をPRSGに入力すると、k(S0)、t(S1)、t(S2)、t(S3)、t(S4)を得ることができる。さらに、得られたt(S4)をPRSGに入力すると、k(S4)と、S11=[1,17],S12=[1,18],S13=[1,20],S14=[1,24],S15=[1,32]に対応したt(S11)、t(S12)、t(S13)、t(S14)、t(S15)と、を得ることができる。このように、PRSGを繰り返し用いることにより、複数のセット鍵を算出することができる。   For example, referring to the directed graph H (1 → 64) in FIG. 4 and focusing on the coordinate point (subset S0) = [1,8] (the eighth coordinate point from the left end), there are four from the coordinate point S0. Directed ends, and the end points are S1 = [1,9], S2 = [1,10], S3 = [1,12], and S4 = [1,16], respectively. Therefore, when the intermediate key t (S0) is input to the PRSG, k (S0), t (S1), t (S2), t (S3), and t (S4) can be obtained. Further, when the obtained t (S4) is input to the PRSG, k (S4), S11 = [1,17], S12 = [1,18], S13 = [1,20], S14 = [1, 24], S15 = [1, 32], t (S11), t (S12), t (S13), t (S14), and t (S15) can be obtained. Thus, a plurality of set keys can be calculated by repeatedly using PRSG.

なお、中間鍵は、安全性を高める目的で使用している。安全性に格段の注意を払わなくてもよいが、セット鍵生成のための演算量を減らしたい場合には、中間鍵を使わず、あるセット鍵から別のセット鍵を直接計算するようにしてもよい。たとえば、上記の例では、部分集合S0のセット鍵k(S0)をPRSGに入力した場合の出力を,k(S1)、k(S2)、k(S3)、k(S4)とし、それぞれの部分集合S1〜4のセット鍵としてもよい。   The intermediate key is used for the purpose of improving security. There is no need to pay special attention to security, but if you want to reduce the amount of computation for generating a set key, do not use an intermediate key, but instead calculate one set key directly from another set key. Also good. For example, in the above example, the output when the set key k (S0) of the subset S0 is input to the PRSG is k (S1), k (S2), k (S3), k (S4), It is good also as a set key of subset S1-4.

上記の例から容易に推察される通り、ある中間鍵は、PRSGを反復して用いることにより、その中間鍵に対応する座標点から伸びた有向枝の鎖によって到達可能な座標点に対応する中間鍵とセット鍵とを導き出すことができるのである。従って、各ユーザは、自身が含まれる部分集合に対応する中間鍵を全て導出できる最低限の数の中間鍵を保持していればよいのである。一方、コンテンツ鍵を暗号化するためのセット鍵を生成する鍵配信サーバは、少なくとも各有向グラフHの先頭座標点に対応する中間鍵のみを保持していれば、PRSGによる演算を繰り返し行うことで、当該有向グラフの他の座標点に対応するセット鍵を導出することができる。   As can be easily inferred from the above example, an intermediate key corresponds to a coordinate point that can be reached by a chain of directional branches extending from the coordinate point corresponding to the intermediate key by repeatedly using PRSG. An intermediate key and a set key can be derived. Therefore, each user only needs to hold a minimum number of intermediate keys that can derive all the intermediate keys corresponding to the subset in which the user is included. On the other hand, if the key distribution server that generates the set key for encrypting the content key holds only the intermediate key corresponding to at least the head coordinate point of each directed graph H, the calculation by PRSG is repeated, A set key corresponding to another coordinate point of the directed graph can be derived.

従って、鍵配信システムの管理者は、鍵配信システムのセットアップ時に、鍵配信サーバにおいて各有向グラフHの先頭座標点(ルート)の中間鍵として、例えばλビットの乱数を設定する。ここで、有向グラフHの先頭座標点(ルート)とは、その座標点から有向枝が出ているが、その座標点に到達することのない座標点である。例えば、図4の有向グラフH(1→64)の先頭座標点は、水平座標軸の左端の[1,1]座標点である。   Therefore, the administrator of the key distribution system sets, for example, a λ-bit random number as an intermediate key of the first coordinate point (root) of each directed graph H in the key distribution server when setting up the key distribution system. Here, the head coordinate point (root) of the directed graph H is a coordinate point where a directional branch comes out from the coordinate point but does not reach the coordinate point. For example, the first coordinate point of the directed graph H (1 → 64) in FIG. 4 is the [1, 1] coordinate point at the left end of the horizontal coordinate axis.

以上、セット鍵の生成方法について説明した。上記のセット鍵生成方法は、コンテンツ鍵の送信者側の鍵生成サーバで用いられるだけでなく、受信者側の端末装置でも用いられる。   The set key generation method has been described above. The set key generation method is used not only in the key generation server on the content key sender side but also in the terminal device on the receiver side.

(中間鍵の配信)
ここで、鍵配信サーバから、各ユーザの端末装置への中間鍵の配信について述べる。既に簡単に述べたが、各ユーザの端末装置に対しては、そのユーザの端末装置が含まれる全ての部分集合に対応するセット鍵を導出可能な複数の中間鍵を与えねばならない。もちろん、そのユーザの端末装置が含まれない部分集合に対応するセット鍵を導出可能な中間鍵を与えてはならないし、与える中間鍵の数は、メモリ量の効率化の観点から最小限であることが好ましい。
(Intermediate key distribution)
Here, the distribution of the intermediate key from the key distribution server to the terminal device of each user will be described. As already described briefly, each user terminal device must be provided with a plurality of intermediate keys from which set keys corresponding to all subsets including the user terminal device can be derived. Of course, an intermediate key capable of deriving a set key corresponding to a subset not including the user's terminal device must not be given, and the number of intermediate keys to be given is minimal from the viewpoint of increasing the amount of memory. It is preferable.

そこで、中間鍵の配信者は、ユーザuの端末装置が所属する部分集合(以下、「ユーザuが属する部分集合」や、「ユーザuが含まれる部分集合」と表記する場合もある。)を要素に有する有向グラフHを全て抽出する。そして、有向グラフHの先頭座標点(ルート)に対応する部分集合にユーザuが含まれる場合には、その先頭座標点に対応する中間鍵のみをユーザuの端末装置に与える。また、有向グラフHの先頭座標点以外の座標点に対応する部分集合のいずれかにユーザuが属する場合には、ユーザuが部分集合S0には含まれるが、その部分集合S0の親である部分集合parent(S0)には含まれないような、部分集合S0を見つけ、この部分集合S0の中間鍵t(S0)を、ユーザuの端末装置に与える。換言すると、有向グラフHにおいて、先頭座標点以外の座標点の中で、その座標点に対応する部分集合にユーザuが含まれる座標点が複数存在する場合には、その中から、部分集合S0に対応する座標点に到達する有向枝の始点に対応した部分集合parent(S0)にユーザuを含まないような座標点S0を抽出し、その座標点S0の中間鍵t(S0)を、ユーザuの端末装置に与える。もし、そのような座標点S0が複数個存在する場合には、それぞれの中間鍵t(S0)を与える。ここで、座標点の親子関係は、有向枝によって定められ、有向枝の始点座標点が終点座標点の親となり、有向枝の終点座標点が始点座標点の子となる。以下、ある座標点S0に到達する有向枝の始点座標点parent(S0)を親座標点と呼ぶことにする。ある座標点S0が,有効グラフHの始点である場合、親座標点は存在せず、有効グラフHの始点ではない場合、親座標点がただ1つ存在する。1つの有効グラフHについて、自分自身に対応する部分集合にユーザuを含み、その親座標点に対応する部分集合にはユーザuを含まない座標点は、複数存在する場合もある。   Therefore, the intermediate key distributor may refer to a subset to which the terminal device of the user u belongs (hereinafter referred to as “subset to which the user u belongs” or “subset to which the user u is included”). All the directed graphs H included in the elements are extracted. When the user u is included in the subset corresponding to the leading coordinate point (root) of the directed graph H, only the intermediate key corresponding to the leading coordinate point is given to the terminal device of the user u. Further, when the user u belongs to any of the subsets corresponding to the coordinate points other than the head coordinate point of the directed graph H, the user u is included in the subset S0, but the portion that is the parent of the subset S0 A subset S0 that is not included in the set parent (S0) is found, and the intermediate key t (S0) of the subset S0 is given to the terminal device of the user u. In other words, in the directed graph H, when there are a plurality of coordinate points including the user u in the subset corresponding to the coordinate point other than the head coordinate point, the subset S0 is selected from the coordinate points. A coordinate point S0 that does not include the user u in the subset parent (S0) corresponding to the starting point of the directional branch that reaches the corresponding coordinate point is extracted, and the intermediate key t (S0) of the coordinate point S0 is extracted from the user u is given to the terminal device. If there are a plurality of such coordinate points S0, each intermediate key t (S0) is given. Here, the parent-child relationship of the coordinate points is determined by the directional branch, and the start point coordinate point of the directional branch is a parent of the end point coordinate point, and the end point coordinate point of the directional branch is a child of the start point coordinate point. Hereinafter, the starting point coordinate point (S0) of the directional branch that reaches a certain coordinate point S0 is referred to as a parent coordinate point. When a coordinate point S0 is the start point of the valid graph H, there is no parent coordinate point, and when it is not the start point of the valid graph H, there is only one parent coordinate point. For one effective graph H, there may be a plurality of coordinate points that include the user u in a subset corresponding to itself and do not include the user u in a subset corresponding to the parent coordinate point.

図4の例を参照しながら、上記の中間鍵の配信方法について具体的に述べる。
(例1)ユーザ1に対して配信される中間鍵について考える。まず、ユーザ1が属する部分集合を要素に持つ有向グラフHを検索すると、有向グラフH(1→64)のみであることが分かる。そして、ユーザ1は、有向グラフH(1→64)の先頭座標点である部分集合[1,1]に属している。従って、ユーザ1には、中間鍵t([1,1])のみが与えられる。
(例2)ユーザ3に対して配信される中間鍵について考える。まず、ユーザ3が属する部分集合を要素に持つ有向グラフHを検索すると、有向グラフH(1→64)、H(2←64)、H(2←32)、H(2←16)、H(2←8)、H(2←4)、H(3→3)が該当する。そこで、有向グラフH(1→64)について検討すると、ユーザ3は、先頭座標点の部分集合[1,1]には属しておらず、3番目の座標点以降の部分集合[1,3],[1,4],・・・,[1,64]に属していることが分かる。これらの座標点のうち、親座標点にユーザ3を含まない座標点は、[1,3],[1,4]のみである。つまり、ユーザ3を含む座標点[1,3],[1,4]の親座標点parent([1,3])及びparent([1,4])である座標点[1,2]には、ユーザ3は含まれない。従って、ユーザ3には、有向グラフH(1→64)に対応する中間鍵として、t([1,3])及びt([1,4])が与えられる。これと同様にして、他の有向グラフH(2←64)、H(2←32)、H(2←16)、H(2←8)、H(2←4)、H(3→3)についても該当する中間鍵が選択され、ユーザ3に与えられる。その結果、ユーザ3には、合計8個の中間鍵が与えられる。
The above intermediate key distribution method will be described in detail with reference to the example of FIG.
(Example 1) Consider an intermediate key distributed to user 1. First, when a directed graph H having a subset to which the user 1 belongs as an element is searched, it can be seen that only the directed graph H (1 → 64). The user 1 belongs to the subset [1, 1] that is the leading coordinate point of the directed graph H (1 → 64). Therefore, only the intermediate key t ([1, 1]) is given to the user 1.
(Example 2) Consider an intermediate key distributed to the user 3. First, when a directed graph H having a subset to which the user 3 belongs as an element is searched, the directed graph H (1 → 64), H (2 ← 64), H (2 ← 32), H (2 ← 16), H (2 ← 8), H (2 ← 4), and H (3 → 3) are applicable. Considering the directed graph H (1 → 64), the user 3 does not belong to the subset [1, 1] of the first coordinate point, and the subset [1, 3], It can be seen that it belongs to [1,4],..., [1,64]. Of these coordinate points, the only coordinate points that do not include the user 3 in the parent coordinate point are [1, 3] and [1, 4]. That is, the coordinate point [1,3], which is the parent coordinate point of the coordinate point [1,3], [1,4] including the user 3 ([1,3]) and the coordinate point [1,2] which is the parent ([1,4]). Does not include user 3. Therefore, the user 3 is given t ([1,3]) and t ([1,4]) as intermediate keys corresponding to the directed graph H (1 → 64). In the same manner, other directed graphs H (2 ← 64), H (2 ← 32), H (2 ← 16), H (2 ← 8), H (2 ← 4), H (3 → 3) Also, the corresponding intermediate key is selected and given to the user 3. As a result, the user 3 is given a total of eight intermediate keys.

ここで、図5を参照しながら、中間鍵を各ユーザの端末装置に配布するまでの処理について簡単に整理する。図5は、システムセットアップ時の鍵配信サーバにおける中間鍵配信に関する処理フローを表す流れ図である。   Here, with reference to FIG. 5, processing until the intermediate key is distributed to the terminal device of each user will be briefly organized. FIG. 5 is a flowchart showing a processing flow related to intermediate key distribution in the key distribution server at the time of system setup.

図5に示すように、まず、鍵配信システムの鍵配信サーバは、各種パラメータ等を設定する。例えば、ユーザ数n、セット鍵及び中間鍵のビット数λ、所定のパラメータk、及びPRSGによる擬似乱数生成アルゴリズム等を決定し、全ユーザの端末装置に公開する(S102)。次に、鍵配信サーバは、ユーザの集合を所定の部分集合に分けて、その和集合により表現されるセットシステムΦ(上式(1)参照)を決定して公開する(S104)。そして、有向グラフHと、有向グラフHを構成する有向枝Tとを決定して公開する(S106)。さらに、セットシステムΦを構成する各部分集合に対応する中間鍵を決定する(S108)。その後、各ユーザの端末装置122に対し、各ユーザが自身を含む部分集合に対応するセット鍵を導出できるように、必要な中間鍵を配布する(S110)。   As shown in FIG. 5, first, the key distribution server of the key distribution system sets various parameters and the like. For example, the number of users n, the number of bits λ of the set key and the intermediate key, a predetermined parameter k, and a pseudo random number generation algorithm based on PRSG are determined and disclosed to the terminal devices of all users (S102). Next, the key distribution server divides the set of users into a predetermined subset, determines the set system Φ (see the above equation (1)) expressed by the union, and publishes it (S104). Then, the directed graph H and the directed branch T constituting the directed graph H are determined and disclosed (S106). Further, an intermediate key corresponding to each subset constituting the set system Φ is determined (S108). Thereafter, a necessary intermediate key is distributed to the terminal device 122 of each user so that each user can derive a set key corresponding to a subset including the user (S110).

以上、中間鍵の配信方法について説明した。この配信方法を用いると、各許諾ユーザの端末装置がセット鍵を生成するために必要な最低限の中間鍵が配信され、鍵配信サーバと端末装置と間の通信量、及び各ユーザの端末装置における中間鍵のメモリ量を節約することができる。   The intermediate key distribution method has been described above. When this distribution method is used, the minimum intermediate key necessary for the terminal device of each licensed user to generate the set key is distributed, the amount of communication between the key distribution server and the terminal device, and the terminal device of each user It is possible to save the memory amount of the intermediate key in.

(コンテンツ鍵の配信)
ここで、鍵配信サーバによる暗号化されたコンテンツ鍵mekの配信方法について説明する。まず、鍵配信サーバは、許諾ユーザの端末装置122のみが生成可能なセット鍵を用いてコンテンツ鍵mekを暗号化する。より具体的には、鍵配信サーバは、排除すべきユーザ(以下、排除ユーザ)の端末装置の集合Rを決定し、全ユーザの端末装置1〜nの集合Nから、排除ユーザの端末装置の集合R(以下、「排除ユーザの集合R」)を除外した許諾ユーザの端末装置の集合N\R(以下、「許諾ユーザの集合N\R」)を決定する。そして、セットシステムΦを構成する部分集合の中から選択された部分集合Si(i=1,2,・・・,m)の和集合により、許諾ユーザの集合N\R=S1∪S2∪・・・∪Smを表現する。このとき、部分集合Siの組合せは多数存在するが、mが最小となるような部分集合Siを選択する。このように部分集合Siを選択した後、各部分集合Siに対応するセット鍵k(Si)により、コンテンツ鍵mekを暗号化する。つまり、コンテンツ鍵mekは、セット鍵k(S1)、k(S2)、・・・、k(Sm)によって暗号化され、m個の暗号化されたコンテンツ鍵mekとなる。そして、m個の暗号化されたコンテンツ鍵mekが全ユーザの端末装置1〜nに対して配信される。このとき、許諾ユーザの集合N\Rを表す情報、又はm個の部分集合Siを表す情報も全ユーザの端末装置1〜nに対して配信される。
(Distribution of content key)
Here, a method of distributing the encrypted content key mek by the key distribution server will be described. First, the key distribution server encrypts the content key mek using a set key that can be generated only by the terminal device 122 of the licensed user. More specifically, the key distribution server determines a set R of terminal devices of users to be excluded (hereinafter, excluded users), and sets N of terminal devices 1 to n of all users, A set N \ R of licensed user terminal devices excluding the set R (hereinafter, “set R of excluded users”) (hereinafter, “set N \ R of licensed users”) is determined. Then, by the union of the subsets Si (i = 1, 2,..., M) selected from the subsets constituting the set system Φ, the authorized user set N \ R = S1∪S2∪ ·・ ・ Expresses ∪Sm. At this time, there are many combinations of subsets Si, but the subset Si that minimizes m is selected. After selecting the subset Si in this way, the content key mek is encrypted with the set key k (Si) corresponding to each subset Si. That is, the content key mek is encrypted with the set keys k (S1), k (S2),..., K (Sm), and becomes m encrypted content keys mek. Then, m encrypted content keys mek are distributed to the terminal devices 1 to n of all users. At this time, information representing the set N \ R of licensed users or information representing m subsets Si is also distributed to the terminal devices 1 to n of all users.

ここで、図6を参照しながら、暗号化されたコンテンツ鍵mekの配信に係る処理フローについて簡単に整理する。図6は、コンテンツ鍵の配信に係る処理フローを表す流れ図である。   Here, with reference to FIG. 6, the processing flow relating to the distribution of the encrypted content key mek will be briefly organized. FIG. 6 is a flowchart showing a processing flow relating to distribution of a content key.

図6に示すように、まず、鍵配信サーバは、排除ユーザの集合Rを決定し、許諾ユーザの集合N\Rを求める(S112)。次に、セットシステムΦを構成する部分集合から、和集合がN\Rとなるm個の部分集合Si(i=1,2,・・・,m)を、mが最小となるように選択する(S114)。そして、選択された各部分集合Siに対応するセット鍵k(Si)を用いてコンテンツ鍵mekをそれぞれ暗号化する(S116)。さらに、許諾ユーザの集合N\R又は各部分集合Siを表す情報と、m個の暗号化されたコンテンツ鍵mekと、を全ユーザの端末装置1〜nに対して配信する(S118)。   As shown in FIG. 6, first, the key distribution server determines a set R of excluded users, and obtains a set N \ R of permitted users (S112). Next, m subsets Si (i = 1, 2,..., M) whose sum is N \ R are selected from the subsets constituting the set system Φ so that m is minimized. (S114). Then, the content key mek is encrypted using the set key k (Si) corresponding to each selected subset Si (S116). Further, the information representing the authorized user set N \ R or each subset Si and the m encrypted content keys mek are distributed to the terminal devices 1 to n of all users (S118).

以上、コンテンツ鍵mekの暗号化方法、及び配信方法について説明した。この暗号化方法を用いると、セット鍵数が必要最小限となるように効率的に部分集合Siを選択することができる。このため、必要最小限のセット鍵でコンテンツ鍵mekを暗号化するので、暗号化に要する計算量を節減できると同時に、配信すべき暗号化されたコンテンツ鍵mekの数を低減させ、通信量を削減することが可能になる。   The content key mek encryption method and distribution method have been described above. When this encryption method is used, the subset Si can be efficiently selected so that the number of set keys is minimized. For this reason, since the content key mek is encrypted with the minimum necessary set key, the amount of calculation required for encryption can be reduced, and at the same time, the number of encrypted content keys mek to be distributed can be reduced, and the communication amount can be reduced. It becomes possible to reduce.

(コンテンツ鍵の復号)
次に、各ユーザの端末装置における暗号化されたコンテンツ鍵の復号処理について説明する。この復号処理は、端末装置が上記鍵配信サーバから受信した、許諾ユーザの集合N\R又はm個の部分集合Siを表す情報と、m個の暗号文とに基づいて、コンテンツ鍵mekを得る処理である。
(Decryption of content key)
Next, decryption processing of the encrypted content key in the terminal device of each user will be described. This decryption processing obtains a content key mek based on information representing the set N \ R of authorized users or m subsets Si received from the key distribution server by the terminal device and m ciphertexts. It is processing.

端末装置は、上記鍵配信サーバから、暗号化されたコンテンツ鍵と、許諾ユーザの集合N\Rを表す情報、又はm個の部分集合Siを表す情報と、を受信する。さらに、端末装置は、当該情報を解析して、自身がm個の部分集合Siのいずれかに所属しているか否かを判断する。もし、自身がいずれの部分集合にも所属していない場合には、自身は排除ユーザの端末装置であることになるので、復号処理を終了する。一方、自身が所属する部分集合Siを発見したら、端末装置は、上記のPRSGを用いて、その部分集合Siに対応するセット鍵k(Si)を導出する。PRSGの構成については既に述べた通りである。   The terminal device receives the encrypted content key and the information representing the set N \ R of licensed users or the information representing the m subsets Si from the key distribution server. Furthermore, the terminal device analyzes the information and determines whether or not it belongs to any of the m subsets Si. If it does not belong to any subset, it is the excluded user's terminal device, so the decoding process is terminated. On the other hand, when the subset Si to which the terminal belongs is found, the terminal device derives a set key k (Si) corresponding to the subset Si using the PRSG. The configuration of the PRSG is as already described.

このとき、端末装置は、事前のシステムセットアップ時に鍵配信サーバから上記部分集合Siに対応する中間鍵t(Si)を与えられ、予め保持していれば、この中間鍵t(Si)をPRSGに入力すれば、上記部分集合Siに対応するセット鍵k(Si)を導出することが可能である。一方、上記中間鍵t(Si)を保持していない場合には、端末装置は、保持している中間鍵をPRSGに繰り返し入力することにより所望のセット鍵k(Si)を導出することができる。さらに、端末装置は、このようにして導出したセット鍵k(Si)を用いて、暗号化されたコンテンツ鍵mekを復号する。   At this time, the terminal device is given an intermediate key t (Si) corresponding to the subset Si from the key distribution server at the time of system setup in advance, and if this is held in advance, the intermediate key t (Si) is stored in the PRSG. If input, it is possible to derive the set key k (Si) corresponding to the subset Si. On the other hand, when the intermediate key t (Si) is not held, the terminal device can derive the desired set key k (Si) by repeatedly inputting the held intermediate key to the PRSG. . Further, the terminal device decrypts the encrypted content key mek using the set key k (Si) derived in this way.

ここで、端末装置における上記セット鍵k(Si)の導出について図4の例で具体的に説明する。ユーザ3の端末装置において、自身が属する部分集合として[1,8]が選択されたと仮定する。ユーザ3の端末装置は、上述のように、部分集合[1,4]の中間鍵を保持している。図4の有向グラフH(1→64)を参照すると、[1,4]の座標点から、[1,8]の座標点に延びる有向枝が設定されており、この有向枝は、[1,4]の座標点を始点とする有向枝のうち3番目に長さ(ジャンプの距離)が短いものである。このため、[1,4]の中間鍵t([1,4])をPRSGに入力した際の出力のうち、先頭から第3番目のλビットの部分が、部分集合[1,8]の中間鍵t([1,8])となっている。端末装置は、PRSGの出力から、この中間鍵t([1,8])を抽出し、再度PRSGに入力した際の最終部分のλビットを抽出することにより、所望のセット鍵k([1,8])を得ることができる。   Here, the derivation of the set key k (Si) in the terminal device will be specifically described with reference to the example of FIG. It is assumed that [1,8] is selected as a subset to which the terminal device of user 3 belongs. As described above, the terminal device of the user 3 holds the intermediate key of the subset [1, 4]. Referring to the directed graph H (1 → 64) in FIG. 4, a directional branch extending from a coordinate point of [1, 4] to a coordinate point of [1, 8] is set. Of the directional branches starting from the coordinate point 1,4], the third one is the shortest (jump distance). For this reason, among the outputs when the intermediate key t ([1, 4]) of [1, 4] is input to the PRSG, the third λ-bit portion from the head is the subset [1, 8]. It is an intermediate key t ([1, 8]). The terminal device extracts the intermediate key t ([1, 8]) from the output of the PRSG, and extracts the λ bit of the final part when it is input to the PRSG again, thereby obtaining the desired set key k ([1 , 8]).

同様に、ユーザ1の端末装置において、自身が属する部分集合として[1,8]が選択されたと仮定する。ユーザ1の端末装置は、部分集合[1,1]の中間鍵を保持している。この場合、端末装置122は、[1,1]の中間鍵t([1,1])をPRSGに入力した際の出力のうち、先頭から第1番目のλビットの部分(中間鍵t([1,2])に相当する。)を抽出し、次いで、この中間鍵t([1,2])をPRSGに入力した際の出力のうち、先頭から第2番目のλビットの部分(中間鍵t([1,4])に相当する。)を抽出し、さらに、この中間鍵t([1,4])をPRSGに入力した際の出力のうち、先頭から第3番目のλビットの部分(中間鍵t([1,8])に相当する。)を抽出し、最後に、この中間鍵t([1,8])をPRSGに入力した際の出力のうち、最終部分(セット鍵k([1,8])に相当する。)を抽出することで、所望のセット鍵k([1,8])を得ることができる。   Similarly, it is assumed that [1,8] is selected as a subset to which the terminal device of user 1 belongs. The terminal device of user 1 holds an intermediate key of the subset [1, 1]. In this case, the terminal device 122 outputs the first λ bit portion (intermediate key t ((1)) from the beginning of the output when the intermediate key t ([1, 1]) of [1, 1] is input to the PRSG. [1, 2]))), and then the second λ-bit portion (from the beginning) of the output when the intermediate key t ([1, 2]) is input to the PRSG ( The intermediate key t ([1, 4]) is extracted, and the third λ from the head among the outputs when the intermediate key t ([1, 4]) is input to the PRSG is extracted. A bit part (corresponding to the intermediate key t ([1, 8])) is extracted, and finally, the final part of the output when the intermediate key t ([1, 8]) is input to the PRSG. The desired set key k ([1, 8]) can be obtained by extracting (corresponding to the set key k ([1, 8])).

ここで、図7を参照しながら、各ユーザの端末装置における、暗号化されたコンテンツ鍵mekを復号する処理フローについて整理する。図7は、各ユーザの端末装置における、コンテンツ鍵の復号に関する処理フローを示した流れ図である。   Here, the processing flow for decrypting the encrypted content key mek in the terminal device of each user will be organized with reference to FIG. FIG. 7 is a flowchart showing a processing flow related to the decryption of the content key in the terminal device of each user.

図7に示すように、まず、各ユーザの端末装置は、鍵配信サーバから、m個の暗号化されたコンテンツ鍵mekと、許諾ユーザの集合N\Rを表す情報、又はm個の部分集合Si(i=1,2,・・・,m)を表す情報と、を受信する(S120)。次いで、端末装置は、当該情報に基づき、自身が所属する部分集合Siを検索し(S122)、自身がm個の部分集合Siのいずれかに所属しているか否かを判断する(S124)。   As shown in FIG. 7, first, each user terminal device receives m encrypted content keys mek and information representing a set N \ R of authorized users, or m subsets from the key distribution server. Information representing Si (i = 1, 2,..., M) is received (S120). Next, the terminal device searches the subset Si to which it belongs based on the information (S122), and determines whether it belongs to any of the m subsets Si (S124).

この結果、自身が所属する部分集合Siを発見したら、上記のPRSGを用いて、その部分集合Siに対応するセット鍵k(Si)を導出する(S126)。PRSGの構成については既に述べた通りである。もし、その部分集合Siに対応する中間鍵t(Si)をセットアップ時に鍵配信サーバから与えられて予め保持していれば、一度PRSGを利用することによりセット鍵k(Si)を導出することが可能であるし、一方、当該中間鍵t(Si)を保持していない場合には、PRSGを繰返し利用することにより所望のセット鍵k(Si)を導出することができる。次いで、端末装置は、このようにして導出したセット鍵k(Si)を用いて、暗号化されたコンテンツ鍵mekを復号する(S128)。   As a result, when the subset Si to which it belongs is found, the set key k (Si) corresponding to the subset Si is derived using the PRSG (S126). The configuration of the PRSG is as already described. If the intermediate key t (Si) corresponding to the subset Si is given from the key distribution server at the time of setup and held in advance, the set key k (Si) can be derived by using the PRSG once. On the other hand, when the intermediate key t (Si) is not held, a desired set key k (Si) can be derived by repeatedly using PRSG. Next, the terminal device decrypts the encrypted content key mek using the set key k (Si) derived in this way (S128).

一方、上記S124において、自身がいずれの部分集合Siにも所属していないと判断した場合には、端末装置は、自身がコンテンツを利用可能な端末装置から排除されている旨(排除ユーザである旨)を表示出力して(S130)、コンテンツ鍵の復号処理を終了する。   On the other hand, if it is determined in S124 that the terminal device does not belong to any subset Si, the terminal device is excluded from the terminal device that can use the content (is an excluded user). ) Is displayed and output (S130), and the content key decryption process is terminated.

以上、端末装置におけるコンテンツ鍵の復号方法について説明した。上記の復号方式は、有向グラフHの情報に基づいて中間鍵及びセット鍵を生成するPRSGを用いて実行される。従って、各ユーザの端末装置側にも、有向グラフの情報とPRSGとが必要とされる。しかし、このPRSGを用いる方法であれば、各ユーザの端末装置が保持する中間鍵の数を最小限にすることができる。   The content key decryption method in the terminal device has been described above. The above-described decryption method is executed using PRSG that generates an intermediate key and a set key based on information of the directed graph H. Accordingly, directed graph information and PRSG are also required on the terminal device side of each user. However, with this method using PRSG, the number of intermediate keys held by each user's terminal device can be minimized.

ここまで、本実施形態の基盤技術に係る暗号鍵配信方式について説明してきた。この基盤方式を用いると、各ユーザの端末装置が保持すべき中間鍵の個数はO(k*log(n))であり、セット鍵の生成に要する計算量(PRSGの動作回数)は(2k−1)*(n1/k−1)を超えないとされている。しかし、基盤技術に係る暗号鍵配信方式では、後述の図16に示すように、各ユーザの端末装置が保持すべき中間鍵の個数が依然として大きいという問題があった。 Up to this point, the encryption key distribution method according to the basic technology of this embodiment has been described. When this basic scheme is used, the number of intermediate keys to be held by the terminal device of each user is O (k * log (n)), and the amount of calculation required for generating the set key (PRSG operation count) is (2k). −1) * (n 1 / k −1) is not exceeded. However, the encryption key distribution method according to the basic technology has a problem that the number of intermediate keys to be held by each user terminal device is still large, as shown in FIG.

また、暗号化されたコンテンツ鍵mekの復号時に、端末装置が必要とする計算量のうち支配的なものは、所望の中間鍵を導出するためにPRSGを何回実行させるかに依存している。この最悪値は、有向グラフHにおける先頭座標点(ルート)から最も遠い末尾座標点(有向枝が出ていないリーフ)までの、有向枝の本数(即ち、ジャンプ回数)により表される。図4で示した例では、有向グラフH(1→64)の先頭座標点[1,1]から末尾座標点[1,64]まで到達するために、11本の有向枝を経由(11回のジャンプを実行)しなければならず、これは、PRSGを11回も実行しなければならないことを示している。このように、基盤技術に係る暗号鍵配信方式では、PRSGの実行回数が多いため、中間鍵を導出するための計算量が多いという問題もあった。   In addition, the dominant amount of computation required by the terminal device when decrypting the encrypted content key mek depends on how many times PRSG is executed to derive a desired intermediate key. . This worst value is represented by the number of directional branches (that is, the number of jumps) from the head coordinate point (root) in the directed graph H to the farthest end coordinate point (the leaf where the directional branch does not appear). In the example shown in FIG. 4, in order to reach from the first coordinate point [1,1] to the last coordinate point [1,64] of the directed graph H (1 → 64), it passes through 11 directional branches (11 times). This indicates that the PRSG must be executed 11 times. As described above, the encryption key distribution method according to the basic technology has a problem that the amount of calculation for deriving the intermediate key is large because the PRSG is executed many times.

そこで、本願発明者らは上記問題を解決すべく鋭意努力して、以下に説明するような、本発明の一実施形態にかかる暗号鍵配信方式を開発した。この本実施形態にかかる暗号鍵配信方式は、より長い有向枝により構成された仮有向グラフを生成した後、仮有向グラフを構成する有効枝をより短い有向枝に置換して、有向グラフを再構成することにより、端末装置122が保持する中間鍵数の低減しつつ、端末装置122がセット鍵の生成に要する計算量を削減できる。以下では、本実施形態にかかる暗号鍵配信方式を実現する鍵配信サーバ102及び端末装置122の機能構成とともに、この暗号鍵配信方式の特徴及び作用効果について詳述する。   Accordingly, the inventors of the present application have made intensive efforts to solve the above problems, and have developed an encryption key distribution method according to an embodiment of the present invention as described below. The encryption key distribution method according to the present embodiment generates a temporary directed graph composed of longer directional branches, and then replaces the effective branches constituting the temporary directed graph with shorter directional branches to reconstruct the directed graph. As a result, the amount of calculation required for the terminal device 122 to generate the set key can be reduced while the number of intermediate keys held by the terminal device 122 is reduced. In the following, the characteristics and operational effects of this encryption key distribution method will be described together with the functional configurations of the key distribution server 102 and the terminal device 122 that realize the encryption key distribution method according to this embodiment.

[鍵配信サーバ102の構成]
まず、図8を参照しながら、本実施形態に係る鍵配信サーバ102の構成について詳細に説明する。図8は、本実施形態に係る鍵配信サーバ102及び端末装置122の構成を示すブロック図である。
[Configuration of Key Distribution Server 102]
First, the configuration of the key distribution server 102 according to the present embodiment will be described in detail with reference to FIG. FIG. 8 is a block diagram showing the configuration of the key distribution server 102 and the terminal device 122 according to this embodiment.

図8に示すように、鍵配信サーバ102は、木構造設定部104と、座標軸設定部106と、仮有向グラフ生成部108と、有向グラフ生成部110と、初期中間鍵設定部112と、鍵生成部114と、暗号化部116と、送信部118と、部分集合決定部120と、により構成される。特に、木構造設定部104と、座標軸設定部106と、仮有向グラフ生成部108と、有向グラフ生成部110と、を纏めて、鍵生成ロジック構築ブロックと呼ぶことにする。同様に、初期中間鍵設定部112と、鍵生成部114と、を纏めて、鍵生成ブロックと呼ぶことにする。   As shown in FIG. 8, the key distribution server 102 includes a tree structure setting unit 104, a coordinate axis setting unit 106, a temporary directed graph generation unit 108, a directed graph generation unit 110, an initial intermediate key setting unit 112, and a key generation unit. 114, an encryption unit 116, a transmission unit 118, and a subset determination unit 120. In particular, the tree structure setting unit 104, the coordinate axis setting unit 106, the temporary directed graph generation unit 108, and the directed graph generation unit 110 are collectively referred to as a key generation logic building block. Similarly, the initial intermediate key setting unit 112 and the key generation unit 114 are collectively referred to as a key generation block.

まず、鍵生成ロジック構築ブロックを構成する各構成要素について説明する。この鍵生成ロジック構築ブロックは、上記の[基盤技術の説明]における(木構造の設定)及び(有向グラフの生成)に対応する処理を実行する。   First, each component constituting the key generation logic building block will be described. This key generation logic building block executes processing corresponding to (tree structure setting) and (directed graph generation) in [Description of fundamental technology].

木構造設定部104は、番号1〜n(nは自然数)が対応付けられたn個の葉ノードと、根ノードと、前記根ノード及び前記葉ノード以外の複数の中間ノードと、から構成される2分木構造を設定し、ある中間ノードv又は根ノードvの下位に配置された複数の前記葉ノードのうち、左端に位置する前記葉ノードの番号をlv、右端に位置する前記葉ノードの番号をrvと設定する。また、木構造設定部104は、根ノードに対して集合(1→n)と集合(2←n)とを割り当て、ある中間ノードvが、その親ノードの左側に位置する場合には、当該中間ノードに対して集合(lv+1←rv)を割り当て、中間ノードvが、その親ノードの右側に位置する場合には、当該中間ノードに対して集合(lv→rv−1)を割り当てる。   The tree structure setting unit 104 includes n leaf nodes associated with numbers 1 to n (n is a natural number), a root node, and a plurality of intermediate nodes other than the root node and the leaf node. Among the plurality of leaf nodes arranged below a certain intermediate node v or root node v, the leaf node number located at the left end is lv and the leaf node located at the right end Is set to rv. Further, the tree structure setting unit 104 assigns a set (1 → n) and a set (2 ← n) to the root node, and when an intermediate node v is located on the left side of the parent node, A set (lv + 1 ← rv) is assigned to an intermediate node, and if the intermediate node v is located on the right side of its parent node, a set (lv → rv−1) is assigned to the intermediate node.

上記のように、木構造設定部104は、m分木構造を構築可能な構成を有しているが、例えば、m=2(2分木構造)の場合を想定すると、基盤方式に係る2分木構造(図3)に一致する木構造を構築することができる。従って、木構造設定部104が構築する木構造の各ノードが持つ意味は、上記の基盤方式により構築された2分木構造の各ノードが持つ意味と実質的に同一である。以下、説明の都合上、2分木構造に限定して説明するが、これに限定されるものではない。   As described above, the tree structure setting unit 104 has a configuration capable of constructing an m-ary tree structure. For example, assuming the case of m = 2 (binary tree structure), the tree structure setting unit 104 is 2 according to the base scheme. A tree structure that matches the branch tree structure (FIG. 3) can be constructed. Therefore, the meaning of each node of the tree structure constructed by the tree structure setting unit 104 is substantially the same as the meaning of each node of the binary tree structure constructed by the above-described infrastructure method. Hereinafter, for convenience of explanation, the description is limited to the binary tree structure, but the present invention is not limited to this.

(座標軸設定部106)
座標軸設定部106は、集合(1→n)に含まれる各部分集合に対応する座標点を、右方向に向かって包含関係が大きくなるように配列した第1水平座標軸を設定する。次に、座標軸設定部106は、集合(2←n)に含まれる各部分集合に対応する座標点を、左方向に向かって包含関係が大きくなるように配列した第2水平座標軸を設定する。そして、座標軸設定部106は、各中間ノードvについて、集合(lv→rv−1)に含まれる各部分集合に対応する座標点を、右方向に向かって包含関係が大きくなるように配列した第3水平座標軸を設定する。さらに、座標軸設定部106は、各中間ノードvについて、集合(lv+1←rv)に含まれる各部分集合に対応する座標点を、左方向に向かって包含関係が大きくなるように配列した第4水平座標軸を設定する。その後、座標軸設定部106は、第3水平座標軸上の右端に位置する座標点の右側と、第2及び第4水平座標軸上の左端に位置する座標点の左側と、にそれぞれ2個の仮座標点を配置する。さらに、座標軸設定部106は、第1水平座標軸上の右端に位置する座標点を第1の仮座標点として設定し、当該第1の仮座標点の右側に第2の仮座標点を配置する。
(Coordinate axis setting unit 106)
The coordinate axis setting unit 106 sets a first horizontal coordinate axis in which coordinate points corresponding to each subset included in the set (1 → n) are arranged so that the inclusion relation increases in the right direction. Next, the coordinate axis setting unit 106 sets a second horizontal coordinate axis in which coordinate points corresponding to each subset included in the set (2 ← n) are arranged so that the inclusion relation increases in the left direction. Then, for each intermediate node v, the coordinate axis setting unit 106 arranges the coordinate points corresponding to each subset included in the set (lv → rv−1) so that the inclusion relation increases in the right direction. Set 3 horizontal coordinate axes. Further, the coordinate axis setting unit 106 arranges the coordinate points corresponding to the respective subsets included in the set (lv + 1 ← rv) for each intermediate node v so as to increase the inclusive relation toward the left. Set the coordinate axes. Thereafter, the coordinate axis setting unit 106 has two temporary coordinates on the right side of the coordinate point located at the right end on the third horizontal coordinate axis and on the left side of the coordinate point located at the left end on the second and fourth horizontal coordinate axes. Place a point. Further, the coordinate axis setting unit 106 sets the coordinate point located at the right end on the first horizontal coordinate axis as the first temporary coordinate point, and arranges the second temporary coordinate point on the right side of the first temporary coordinate point. .

上記のように、座標軸設定部106は、木構造設定部104により設定された木構造の各ノードに対応する有向グラフを構築するための座標軸を設定する。第1水平座標軸は、集合(1→n)に対応する座標軸を、第2水平座標軸は、集合(2←n)に対応する座標軸を、第3水平座標軸は、集合(lv→rv−1)に対応する座標軸を、第4水平座標軸は、集合(lv+1←rv)に対応する座標軸を示す。もちろん、第3水平座標軸及び第4水平座標軸は、各中間ノードvに対して設定されるため、それぞれ、複数の座標軸が設定される。つまり、中間ノードの数だけ、第3水平座標軸と第4水平座標軸とが設定される。   As described above, the coordinate axis setting unit 106 sets coordinate axes for constructing a directed graph corresponding to each node of the tree structure set by the tree structure setting unit 104. The first horizontal coordinate axis is the coordinate axis corresponding to the set (1 → n), the second horizontal coordinate axis is the coordinate axis corresponding to the set (2 ← n), and the third horizontal coordinate axis is the set (lv → rv−1). The fourth horizontal coordinate axis indicates the coordinate axis corresponding to the set (lv + 1 ← rv). Of course, since the third horizontal coordinate axis and the fourth horizontal coordinate axis are set for each intermediate node v, a plurality of coordinate axes are respectively set. That is, the third horizontal coordinate axis and the fourth horizontal coordinate axis are set by the number of intermediate nodes.

(仮有向グラフ生成部108)
仮有向グラフ生成部108は、所定の整数kを設定し、n(x−1)/k<(rv−lv+1)≦nx/kを満たす整数xを算定する。そして、仮有向グラフ生成部108は、整数i=0〜x−1の各々について、ni/kの長さを有する右方向を向いた一又は複数の有向枝を連結して前記第1及び第3水平座標軸上の最左にある座標点を始点とする有向パスを形成し、さらに、ni/kの長さを有する左方向を向いた一又は複数の有向枝を連結して前記第2及び第4水平座標軸上の最右にある座標点を始点とする有向パスを形成する。次に、仮有向グラフ生成部108は、第1〜4水平座標軸の各々について、仮座標点を始点又は終点とする全ての有向枝を除外する。そして、仮有向グラフ生成部108は、第1〜4水平座標軸上の各座標点に到達する有向枝のうち、最長の有向枝以外の有向枝を除外して、集合(1→n−1)、集合(2←n)、集合(lv+1←rv)、集合(lv→rv−1)に関する仮有向グラフをそれぞれ生成する。その後、仮有向グラフ生成部108は、集合(1→n−1)に関する仮有向グラフに対し、第1水平座標軸上にある第1の仮座標点を終点とする長さ1の有向枝(右向き)を追加して、集合(1→n)に関する仮有向グラフを生成する。
(Temporary directed graph generation unit 108)
The provisional directed graph generation unit 108 sets a predetermined integer k, and calculates an integer x that satisfies n (x−1) / k <(rv−lv + 1) ≦ nx / k . Then, the temporary digraph generation unit 108 connects the first and the plurality of directional branches facing the right direction having a length of n i / k for each of the integers i = 0 to x−1. Forming a directional path starting from the leftmost coordinate point on the third horizontal coordinate axis, and further connecting one or more directional branches facing the left direction having a length of ni / k A directed path starting from the rightmost coordinate point on the second and fourth horizontal coordinate axes is formed. Next, the temporary digraph generation unit 108 excludes all directional branches having the temporary coordinate point as a start point or an end point for each of the first to fourth horizontal coordinate axes. Then, the temporary directed graph generation unit 108 excludes the directional branch other than the longest directional branch from the directional branches that reach the coordinate points on the first to fourth horizontal coordinate axes, and sets (1 → n− 1) A temporary directed graph relating to the set (2 ← n), the set (lv + 1 ← rv), and the set (lv → rv−1) is generated. Thereafter, the temporary digraph generation unit 108 has a length 1 directional branch (rightward) with the first temporary coordinate point on the first horizontal coordinate axis as the end point for the temporary digraph related to the set (1 → n−1). To generate a temporary digraph for the set (1 → n).

上記のように、仮有向グラフ生成部108は、基盤方式と類似した方法により、有向グラフを生成する。しかし、仮有向グラフ生成部108は、基盤方式の有向グラフと比較して、より長い有向枝によって構成される有向グラフを生成することができる。このことは、後述するように、各ユーザがセット鍵の導出に必要とされる計算量を低減させる。そこで、仮有向グラフ生成部108が実行する処理に係る処理フローについて、図9を参照しながら詳細に説明する。図9は、仮有向グラフ生成部108による有向グラフ生成に係る処理フローを示した流れ図である。   As described above, the temporary directed graph generation unit 108 generates a directed graph by a method similar to the base method. However, the temporary directed graph generation unit 108 can generate a directed graph composed of longer directional branches as compared to the basic directed graph. This reduces the amount of calculation required for each user to derive the set key, as will be described later. Therefore, a processing flow related to processing executed by the temporary digraph generation unit 108 will be described in detail with reference to FIG. FIG. 9 is a flowchart showing a processing flow related to the directed graph generation by the temporary directed graph generation unit 108.

図9を参照すると、仮有向グラフ生成部108は、以下に示す各工程を経て有向グラフを作成する。但し、ここでは集合(lv→rv−1)に対応する仮有向グラフI’(lv→rv−1)の生成方法を例に挙げて説明する。
(工程1;S140) 仮有向グラフ生成部108は、集合(lv→rv−1)に含まれる各部分集合を、水平な直線(水平座標軸)上に左から右に包含関係が大きくなるように並べて配置する。より正確には、仮有向グラフ生成部108は、集合(lv→rv−1)の各要素を成す部分集合を、水平座標軸上の各座標点に割り当てて、割り当てられた部分集合の包含関係が右方向に向かって大きくなるように座標点を配置する。そして、仮有向グラフ生成部108は、水平座標軸上の最右に位置する座標点の右側に、2つの仮座標点を配置する。このとき、座標軸上に配置された最左の座標点から最右の座標点までの距離Lvは、Lv=rv−lv+1となる。この時点で、仮有向グラフ生成部108は、n(x−1)/k<Lv≦nx/kを満たす整数x(1≦x≦k)を算定する。
(工程2;S142) 仮有向グラフ生成部108は、整数値iをカウンタとして設定し、カウンタiを0〜x−1まで変化させながら、次の操作を繰り返し行う。水平座標軸の左端にある始点から開始し、その座標点からni/kだけ離れた座標点へ延びる右向きの有向枝の設定(その座標点からni/kだけ離れた座標点へのジャンプ)を、有向枝の終端が水平座標軸の右端またはその1つ左にある仮座標点に到達するか、或いは、次に設定される有向枝の終端が当該仮座標点のいずれかを超えるまで、繰り返し行う。
(工程3;S144) 仮有向グラフ生成部108は、(工程2)で作成した有向枝のうち、仮座標点に到達する有向枝を全て除去する。
(工程4;S146) ある座標点に到達する有向枝が複数存在する場合、仮有向グラフ生成部108は、最長の有向枝以外の有向枝を全て除去する。
Referring to FIG. 9, the temporary directed graph generation unit 108 creates a directed graph through the following steps. However, here, a method for generating the temporary directed graph I ′ (lv → rv−1) corresponding to the set (lv → rv−1) will be described as an example.
(Step 1; S140) The temporary directed graph generation unit 108 arranges each subset included in the set (lv → rv−1) so that the inclusion relation increases from left to right on a horizontal straight line (horizontal coordinate axis). Deploy. More precisely, the temporary digraph generation unit 108 assigns a subset forming each element of the set (lv → rv−1) to each coordinate point on the horizontal coordinate axis, and the inclusion relation of the assigned subset is right. Coordinate points are arranged so as to increase in the direction. Then, the temporary digraph generation unit 108 arranges two temporary coordinate points on the right side of the coordinate point located at the rightmost position on the horizontal coordinate axis. At this time, the distance Lv from the leftmost coordinate point arranged on the coordinate axis to the rightmost coordinate point is Lv = rv−lv + 1. At this time, the temporary directed graph generation unit 108 calculates an integer x (1 ≦ x ≦ k) that satisfies n (x−1) / k <Lv ≦ n x / k .
(Step 2; S142) The temporary digraph generation unit 108 sets the integer value i as a counter, and repeats the following operation while changing the counter i from 0 to x-1. Starting from the starting point at the left end of the horizontal coordinate axis, jump setting a rightward directional branch extending from the coordinate point to n i / k apart coordinate point (from the coordinate point to n i / k apart coordinate points ) Until the end of the directed edge reaches the temporary coordinate point at the right end of the horizontal coordinate axis or to the left of the horizontal coordinate axis, or the end of the directed branch set next exceeds any of the temporary coordinate points Repeat until
(Step 3; S144) The temporary digraph generation unit 108 removes all the directional branches that reach the temporary coordinate point from the directional branches created in (Step 2).
(Step 4; S146) When there are a plurality of directed branches that reach a certain coordinate point, the temporary directed graph generation unit 108 removes all the directed branches other than the longest directed branch.

以上の工程により、仮有向グラフ生成部108は、基盤方式に比べて、より長い有向枝によって形成される有向グラフを生成することが可能になる。なお、仮有向グラフ生成部108は、木構造を構成する全ての中間ノード及び根ノードに対して、上記の仮有向グラフI’(lv→rv−1)と同様の方法により各有向グラフを生成する。例えば、仮有向グラフ生成部108は、ある中間ノードvに対応する仮有向グラフI’(lv+1←rv)を生成し、さらに、根ノードに対応する仮有向グラフI’(1→n)及びI(2←n)を生成する。このとき、仮有向グラフI’(lv+1←rv)及びI(2←n)は、各々に含まれる部分集合の包含関係が「左方向」に向かって大きくなるように各座標点が配置された水平座標軸上に形成される。つまり、上記の(工程1)により設定される水平座標軸上の座標点配置ルールが逆になる。さらに、仮有向グラフI’(lv+1←rv)及びI(2←n)を形成するための2つの仮座標点は、水平座標軸上の最左に位置する座標点の左側に配置される。また、有向グラフI(1→n)は、有向グラフI(1→n−1)に有向枝E([1,n−1],[1,n])を付加して生成される。   Through the above steps, the temporary directed graph generation unit 108 can generate a directed graph formed by longer directional branches as compared to the base method. The temporary directed graph generation unit 108 generates each directed graph for all intermediate nodes and root nodes constituting the tree structure by the same method as the temporary directed graph I ′ (lv → rv−1). For example, the temporary digraph generation unit 108 generates a temporary digraph I ′ (lv + 1 ← rv) corresponding to a certain intermediate node v, and further, the temporary digraphs I ′ (1 → n) and I (2 ←) corresponding to the root node. n). At this time, the temporary digraphs I ′ (lv + 1 ← rv) and I (2 ← n) are horizontal in which the coordinate points are arranged so that the inclusion relation of the subsets included in each of the temporary directed graphs I ′ (lv + 1 ← rv) increases toward the “left direction”. Formed on coordinate axes. That is, the coordinate point arrangement rule on the horizontal coordinate axis set by the above (Step 1) is reversed. Further, the two temporary coordinate points for forming the temporary directed graphs I ′ (lv + 1 ← rv) and I (2 ← n) are arranged on the left side of the leftmost coordinate point on the horizontal coordinate axis. The directed graph I (1 → n) is generated by adding the directed edge E ([1, n−1], [1, n]) to the directed graph I (1 → n−1).

上記の有向グラフ生成方法を用いると、図10に示す仮有向グラフI’が生成される。図10は、図3に示した葉ノード数n=64の完全2分木構造に基づいて、パラメータk=6を設定した場合に形成される仮有向グラフI’である。   When the above directed graph generation method is used, a temporary directed graph I ′ shown in FIG. 10 is generated. FIG. 10 is a temporary digraph I ′ formed when the parameter k = 6 is set based on the complete binary tree structure with the number of leaf nodes n = 64 shown in FIG.

(有向グラフ生成部110)
有向グラフ生成部110は、仮有向グラフに含まれ、連結した複数の有向枝によって形成される有向パスのうち、有向パスを構成する有向枝の数が最大となる最長有向パスを決定する。そして、有向グラフ生成部110は、最長の有向パスを構成する有向枝の数を超えないように、各有向パスを構成する有向枝を、より短い有向枝の組に置換して各有向パスを再構成し、再構成された有向パスにより形成される有向グラフを生成する。
(Directed Graph Generation Unit 110)
The directed graph generation unit 110 determines the longest directional path in which the number of directional branches constituting the directional path is the largest among the directional paths that are included in the temporary directed graph and formed by the connected directional branches. To do. Then, the directed graph generation unit 110 replaces the directional branch constituting each directional path with a set of shorter directional branches so as not to exceed the number of directional branches constituting the longest directional path. Each directed path is reconstructed, and a directed graph formed by the reconstructed directed path is generated.

上記のように、有向グラフ生成部110は、仮有向グラフ生成部108により構築された仮有向グラフI’に基づいて所望の有向グラフIを生成する。つまり、基盤方式では仮有向グラフI’と実質的に同一の有向グラフHまでしか生成できなかったが、本実施形態に係る鍵配信サーバ102は、この有向グラフ生成部110を備えることによって、さらに効率的なセット鍵生成ロジックを示す有向グラフIを生成することが可能になる。そこで、有向グラフ生成部110が実行する処理に係る処理フローについて詳細に説明する。   As described above, the directed graph generation unit 110 generates a desired directed graph I based on the temporary directed graph I ′ constructed by the temporary directed graph generation unit 108. That is, in the base method, only the directed graph H that is substantially the same as the temporary directed graph I ′ can be generated. However, the key distribution server 102 according to the present embodiment is more efficient by including the directed graph generation unit 110. It is possible to generate the directed graph I indicating the set key generation logic. Therefore, a processing flow relating to processing executed by the directed graph generation unit 110 will be described in detail.

まず、図11を参照しながら、有向グラフ生成部110による有向グラフ生成方法の概略について簡単に説明する。図11は、有向グラフを生成する処理フローの一例を示したフローチャートである。   First, an outline of a directed graph generation method by the directed graph generation unit 110 will be briefly described with reference to FIG. FIG. 11 is a flowchart illustrating an example of a processing flow for generating a directed graph.

まず、有向グラフ生成部110は、所望の有向グラフIを生成するために、仮有向グラフ生成部108により生成された仮有向グラフI’を用いる。   First, the directed graph generation unit 110 uses the temporary directed graph I ′ generated by the temporary directed graph generation unit 108 in order to generate a desired directed graph I.

そして、有向グラフ生成部110は、生成された全ての仮有向グラフI’を構成する有向パスの中から、最長の有向パスLP(Longest Path)を抽出する(S150)。なお、有向パスLPを抽出する工程は、例えば、有向グラフ生成部110が備える最長有向パス生成部により実行されてもよい。さらに、生成された全ての仮有向グラフI’のうち、最長の有向パスLPを含まないものについて、それぞれ、最長の有向パスPLP(Pertially Longest Path)を抽出する(S152)。つまり、各仮有向グラフI’毎に、有向パスPLPが抽出される。その後、仮有向グラフI’を構成する有向枝の中から所定の有向枝を選択し、より短い有向枝により置換する(S154)。このとき、有向グラフ生成部110は、抽出された有向パスLP及び有向パスPLPの長さに基づいて、上記の計算量の最悪値が増加しないという条件の下、有向枝の置換を実行する。なお、上記の所定の有向枝の選択工程は、例えば、有向グラフ生成部110が備える置換有向枝選択部により実行されてもよい。また、上記の有向枝の置換工程は、例えば、有向グラフ生成部110が備える有向枝置換部により実行されてもよい。   Then, the directed graph generation unit 110 extracts the longest directional path LP (Longest Path) from the directional paths constituting all the generated temporary directed graphs I ′ (S150). Note that the step of extracting the directional path LP may be executed by, for example, the longest directional path generation unit included in the directed graph generation unit 110. Further, the longest directional path PLP (Partial Longest Path) is extracted for each of the generated temporary directed graphs I ′ that do not include the longest directional path LP (S152). That is, the directed path PLP is extracted for each temporary directed graph I ′. Thereafter, a predetermined directional branch is selected from the directional branches constituting the temporary directed graph I ′, and is replaced with a shorter directional branch (S154). At this time, the directed graph generation unit 110 performs directed edge replacement on the basis of the extracted directional path LP and the length of the directional path PLP under the condition that the worst value of the calculation amount does not increase. To do. Note that the predetermined directional branch selection step may be executed by, for example, a replacement directional branch selection unit included in the directed graph generation unit 110. Further, the directed edge replacement step may be executed by, for example, a directed edge replacement unit included in the directed graph generation unit 110.

以上、有向グラフ生成部110による有向グラフの生成工程について概要を説明した。このように、有向グラフ生成部110は、仮有向グラフ生成部108により生成された仮有向グラフI’から、有向パスLP及び有向パスPLPを抽出し、これらの有向パスの長さに基づいて所定の有向枝を選択して置換することにより、所望の有向グラフを生成することができる。以下では、上記の各工程に対応するより詳細な説明を行う。   The outline of the directed graph generation process by the directed graph generation unit 110 has been described above. As described above, the directed graph generation unit 110 extracts the directed path LP and the directed path PLP from the temporary directed graph I ′ generated by the temporary directed graph generation unit 108, and performs predetermined processing based on the lengths of these directed paths. A desired directed graph can be generated by selecting and replacing the directed edge of. Hereinafter, a more detailed description corresponding to each of the above steps will be given.

まず、図12を参照しながら、最長有向パスLPを抽出する工程(S160)について説明する。まず、最長有向パスLPについて説明するに当たり、以下に2つの表現を定義する。
・DDT :最長有向パスLPの長さを示す。
・J(a,b):ある有向パスに長さbの有向枝がa本連続して存在することを示す。
First, the step of extracting the longest directional path LP (S160) will be described with reference to FIG. First, in describing the longest directional path LP, two expressions are defined below.
DDT: indicates the length of the longest directional path LP.
J (a, b): indicates that a directional branch having a length b exists continuously in a certain directional path.

有向グラフ生成部110は、仮有向グラフI’を構成する有向パスの各々について、J(a,b)を算出することができる。例えば、仮有向グラフI’(1→n)の座標点[1,1]から[1,n]までの有向パスP([1,1],[1,n])を考えると、有向パスP([1,1],[1,n])は、J(n1/k−1,n(k−1)/k)、J(n1/k−1,n(k−2)/k)、...、J(n1/k,1)と表現される。上述の仮有向グラフ生成部108により生成された仮生成グラフI’の場合、有向パスLPは、仮有向グラフI’(1→n)を構成する有向パスP([1,1],[1,n])である。有向グラフ生成部110は、最長有向パスLPを抽出してもよいし、仮有向グラフI’(1→n)を構成する有向パスP([1,1],[1,n])を一意に抽出してもよいが、場合によっては、有向グラフ生成部110が仮有向グラフI’を構成する全ての有向パスの長さを算出し、その中から最長の有向パスLPを選択してもよい。このとき、最長有向パスLPの長さDDTは、DDT=k*(n1/k−1)により表現される。その後、有向グラフ生成部110は、最長有向パスLPを構成する全ての有向枝に対し、有効であることを示すactiveマークを設定する。 The directed graph generation unit 110 can calculate J (a, b) for each of the directed paths constituting the temporary directed graph I ′. For example, considering a directed path P ([1, 1], [1, n]) from the coordinate point [1, 1] to [1, n] of the temporary directed graph I ′ (1 → n), The paths P ([1,1], [1, n]) are J (n1 / k− 1, n (k−1) / k ), J (n1 / k− 1, n (k−2). ) / K ),. . . , J (n 1 / k , 1). In the case of the temporary generation graph I ′ generated by the temporary directed graph generation unit 108 described above, the directed path LP is a directed path P ([1, 1], [1] constituting the temporary directed graph I ′ (1 → n). , N]). The directed graph generation unit 110 may extract the longest directed path LP, or uniquely specify the directed path P ([1, 1], [1, n]) constituting the temporary directed graph I ′ (1 → n). In some cases, the directed graph generation unit 110 may calculate the lengths of all the directional paths constituting the temporary directed graph I ′, and select the longest directional path LP from among them. Good. At this time, the length DDT of the longest directional path LP is expressed by DDT = k * (n 1 / k −1). Thereafter, the directed graph generation unit 110 sets an active mark indicating that it is valid for all the directional branches constituting the longest directional path LP.

次に、図13を参照しながら、根ノード及び各中間ノードに対応する仮有向グラフI’(但し、最長有向パスLPを含むグラフを除く)毎の最長有向パスPLPを算出する工程について説明する。図13は、有向パスPLPの算出工程を示すフローチャートである。   Next, a step of calculating the longest directional path PLP for each temporary directed graph I ′ (excluding the graph including the longest directional path LP) corresponding to the root node and each intermediate node will be described with reference to FIG. To do. FIG. 13 is a flowchart showing the calculation process of the directed path PLP.

まず、有向グラフ毎の最長有向パスPLPを抽出する工程を説明するに当たり、以下の2つの表現を定義する。
・CP(Current Path):考慮中の有向パス(現在パスと呼ぶ)
・#JP(CP) :その有向パスに含まれる有向枝の数
First, in describing the process of extracting the longest directional path PLP for each directed graph, the following two expressions are defined.
CP (Current Path): directed path under consideration (referred to as current path)
#JP (CP): Number of directional branches included in the directional path

有向グラフ生成部110は、以下に示すアルゴリズムに基づいて、有向パスPLPを抽出する。
(工程1)有向グラフ生成部110は、有向グラフI’の始点から終点への現在パスCPを決定する。このとき、考慮する有向グラフが、有向グラフI’(a→b)である場合には、有向パスP([a,a],[a,b])を現在パスCPとして設定し、有向グラフI’(a←b)である場合には、有向パスP([b,b],[a,b])を現在パスCPとして設定する(S162)。
(工程2)有向グラフ生成部110は、現在パスCPを構成する有向枝のうち、最長の有向枝を抽出し、その長さをJと設定する(S164)。
(工程3)有向グラフ生成部110は、J≦1か否かを判断し(S166)、J≦1である場合、現在パスCPを有向パスPLPと決定して、この有向パスPLPを構成する全ての有向枝にactiveマークを設定する(S176)。
(工程4)J>1である場合、有向グラフ生成部110は、#JP(CP)+n1/k−1≦DDTか否かを判断し(S168)、#JP(CP)+n1/k−1≦DDTでない場合、現在パスCPを有向パスPLPと決定して、この有向パスPLPを構成する全ての有向枝にactiveマークを設定する(S176)。
(工程5)#JP(CP)+n1/k−1≦DDTである場合、有向グラフ生成部110は、J=nj/kとなる自然数jを算出する(S170)。
(工程6)有向グラフ生成部110は、現在パスCPを構成する長さJの有向枝の中で、現在パスCPの始点から最も遠い有向枝を抽出する(S172)。
(工程7)有向グラフ生成部110は、(工程6)で抽出された有向枝の始点から伸びたn1/k−1個の長さn(j−1)/kの有向枝の直後にn(j−1)/kの長さを有する1つの有向枝を追加し、(工程6)で抽出された有向枝を除去する(S174)。その後、(工程1)に移行して、上記の各工程を繰り返す。
The directed graph generation unit 110 extracts a directed path PLP based on the following algorithm.
(Step 1) The directed graph generation unit 110 determines the current path CP from the start point to the end point of the directed graph I ′. At this time, when the directed graph to be considered is the directed graph I ′ (a → b), the directed path P ([a, a], [a, b]) is set as the current path CP, and the directed graph I ′. If (a ← b), the directed path P ([b, b], [a, b]) is set as the current path CP (S162).
(Step 2) The directed graph generation unit 110 extracts the longest directional branch from the directional branches constituting the current path CP, and sets the length to J (S164).
(Step 3) The directed graph generation unit 110 determines whether or not J ≦ 1 (S166). If J ≦ 1, the current path CP is determined as the directed path PLP, and the directed path PLP is configured. An active mark is set to all the directed branches to be performed (S176).
(Step 4) When J> 1, the directed graph generation unit 110 determines whether or not #JP (CP) + n 1 / k −1 ≦ DDT (S168), and #JP (CP) + n 1 / k −. If 1 ≦ DDT is not satisfied, the current path CP is determined as the directed path PLP, and active marks are set in all the directed branches constituting the directed path PLP (S176).
(Step 5) When #JP (CP) + n 1 / k −1 ≦ DDT, the directed graph generation unit 110 calculates a natural number j that satisfies J = n j / k (S170).
(Step 6) The directed graph generation unit 110 extracts a directional branch farthest from the start point of the current path CP among the directional branches having a length J constituting the current path CP (S172).
(Step 7) digraph generation unit 110 (step 6) of the n 1 / k -1 pieces extending from the start point of the directional branch extracted in length n (j-1) / k after the directed edge One directional branch having a length of n (j−1) / k is added to the directional branch, and the directional branch extracted in (Step 6) is removed (S174). Then, it transfers to (process 1) and repeats said each process.

なお、上記の(工程1)〜(工程6)の間に生じる処理のループは、有向グラフI’の始点から終点への有向パスが全て長さ1の有向枝で構成されるか、又は、それ以上の有向枝の置換を行うことによって、この有向パスを構成する有効枝数がDDTを超えてしまう場合に、このループを終了する。以上の処理により、有向グラフ毎の最長有向パスPLPを設定することができる。   Note that the processing loop that occurs between the above (Step 1) to (Step 6) is such that the directional path from the start point to the end point of the directed graph I ′ is composed of directional branches having a length of 1, or When the number of effective branches constituting the directional path exceeds DDT by performing more directional branch replacement, the loop is terminated. With the above processing, the longest directional path PLP for each directed graph can be set.

次に、図14を参照しながら、所定の有向枝を置換する工程について説明する。この工程は、各有向グラフについて、有向パスを構成する有効枝の数がDDTを超えないという条件の下で、所定の有向枝をより短い有向枝に置換する処理のアルゴリズムを構成する。   Next, a process for replacing a predetermined directional branch will be described with reference to FIG. This step constitutes an algorithm of processing for replacing a predetermined directional branch with a shorter directional branch under the condition that the number of effective branches constituting the directional path does not exceed DDT for each directed graph.

有向グラフ生成部110は、以下のアルゴリズムに基づいて、有向枝を置換する。
(工程1)有向グラフ生成部110は、有向グラフI’を構成する有向枝のうち、activeと設定され、かつ、処理が済んでおらず(doneが未設定)かつ、最長の有向枝を抽出する。さらに、有向グラフ生成部110は、抽出された有向枝の長さをJ’とおく。もし、長さJ’の有向枝が複数ある場合、有向グラフ生成部110は、有向グラフI’の始点から最も遠い有向枝を選択する(S180)。このとき、選択した有向枝をWJ(Working Jump)と呼び、有向枝WJの始点をWJS、終点をWJEと呼ぶことにする。また、有向グラフI’の始点からWJSに到達する有向パスを構成する有向枝の数をDと表記することにする。
(工程2)有向グラフ生成部110は、有向枝WJの長さJ’がJ’≦1であるか否かを判断し(S182)、J’≦1である場合、activeと設定された有効枝のみにより構成される有向グラフを、所望の有向グラフIとして設定する(S202)。
(工程3)有向枝WJの長さJ’>1である場合、有向グラフ生成部110は、WJSから(WJE−1)に到達する有効パスを現在パスCPとして設定する(S184)。但し、(WJE−1)は、WJEの一つ手前の座標点である。
(工程4)有向グラフ生成部110は、現在パスCPを構成する有向枝の中から、最長の有向枝を抽出し、その長さをJとおく(S186)。
(工程5)有向グラフ生成部110は、抽出された有向枝の長さJが、J≦1であるか否かを判断し(S188)、J≦1である場合、現在パスCPを構成する全ての有向枝にactiveを設定し(S198)、有向枝WJにdoneを設定する(S200)。その後、再び(工程1)の処理からスタートする。
(工程6)J>1である場合、有向グラフ生成部110は、#JP(CP)+n1/k−1≦DDT−Dであるか否かを判断し(S190)、#JP(CP)+n1/k−1>DDT−Dである場合には、現在パスCPを構成する全ての有向枝にactiveを設定して(S198)、有向枝WJにdoneを設定する(S200)。その後、再び(工程1)の処理からスタートする。
(工程7)#JP(CP)+n1/k−1≦DDT−Dである場合、有向グラフ生成部110は、J=nj/kを満たす自然数jを算出する(S192)。
(工程8)有向グラフ生成部110は、現在パスCPを構成する長さJの有向枝のうち、現在パスCPの始点から最も遠くに位置するものを抽出する(S194)。
(工程9)有向グラフ生成部110は、(工程8)で抽出された有向枝の始点から伸びたn1/k−1個の長さn(j−1)/kの有向枝の直後にn(j−1)/kの長さを有する1つの有向枝を追加し、(工程8)で抽出された有向枝を除去する(S196)。その後、(工程3)に戻って上記の各工程を繰り返す。
The directed graph generation unit 110 replaces the directed edge based on the following algorithm.
(Step 1) The directed graph generation unit 110 extracts the longest directional branch that is set to active among the directional branches constituting the directed graph I ′, has not been processed (done is not set), and To do. Furthermore, the directed graph generation unit 110 sets the length of the extracted directional branch as J ′. If there are a plurality of directed branches having a length J ′, the directed graph generation unit 110 selects the directed branch farthest from the starting point of the directed graph I ′ (S180). At this time, the selected directional branch is called WJ (Working Jump), the starting point of the directional branch WJ is called WJS, and the end point is called WJE. Further, the number of directional branches constituting the directional path that reaches the WJS from the starting point of the directed graph I ′ will be denoted as D.
(Step 2) The directed graph generation unit 110 determines whether or not the length J ′ of the directional branch WJ is J ′ ≦ 1 (S182), and when J ′ ≦ 1, the effective set as active A directed graph composed only of branches is set as a desired directed graph I (S202).
(Step 3) When the length J ′ of the directional branch WJ is greater than 1, the directed graph generation unit 110 sets the effective path that reaches from (WJS) to (WJE−1) as the current path CP (S184). However, (WJE-1) is a coordinate point immediately before WJE.
(Step 4) The directed graph generation unit 110 extracts the longest directional branch from the directional branches constituting the current path CP, and sets the length to J (S186).
(Step 5) The directed graph generation unit 110 determines whether the length J of the extracted directional branch is J ≦ 1 (S188). If J ≦ 1, the current path CP is configured. Active is set for all directional branches (S198), and done is set for the directional branch WJ (S200). Thereafter, the process of (Step 1) is started again.
(Step 6) When J> 1, the directed graph generation unit 110 determines whether or not #JP (CP) + n 1 / k −1 ≦ DDT-D (S190), and #JP (CP) + n If 1 / k- 1> DDT-D, the active is set for all the directional branches constituting the current path CP (S198), and the done is set for the directional branch WJ (S200). Thereafter, the process of (Step 1) is started again.
(Step 7) If #JP (CP) + n 1 / k −1 ≦ DDT-D, the directed graph generation unit 110 calculates a natural number j that satisfies J = n j / k (S192).
(Step 8) The directed graph generation unit 110 extracts a directional branch having a length J that constitutes the current path CP and is located farthest from the start point of the current path CP (S194).
(Step 9) The directed graph generation unit 110 is immediately after the n 1 / k −1 length n (j−1) / k directional branch extending from the start point of the directional branch extracted in (Step 8). One directional branch having a length of n (j−1) / k is added to the directional branch, and the directional branch extracted in (Step 8) is removed (S196). Then, it returns to (process 3) and repeats said each process.

なお、上記の(工程3)〜(工程9)の間に生じる処理のループは、WJSからWJE−1への有向パスが全て長さ1の有向枝で構成されるか、又は、それ以上の有向枝の置換を行うことによって、WJSからWJE−1への有向パスを構成する有効枝数がDDTを超えてしまう場合に、このループを終了する。一方、上記の(工程1)〜(工程5)又は(工程6)の間に生じる処理のループは、有向グラフI’を構成する有効枝の中に、doneが設定されておらず、かつ、長さが2以上の有向枝が全てなくなった時点で終了する。以上の処理により、所望の有向グラフIを生成することができる。   Note that the processing loop that occurs between the above (Step 3) to (Step 9) is such that the directional path from WJS to WJE-1 is all composed of directional branches of length 1, or This loop is ended when the number of effective branches constituting the directional path from WJS to WJE-1 exceeds DDT by performing the above-described directional branch replacement. On the other hand, in the loop of processing that occurs between the above (Step 1) to (Step 5) or (Step 6), a done is not set in the effective branch constituting the directed graph I ′, and the processing loop is long. The process ends when all the directional branches having a length of 2 or more are eliminated. With the above processing, a desired directed graph I can be generated.

最後に、上記の有向グラフ生成方法を用いて生成した有向グラフIの例を示す。図3に示した葉ノード数n=64の完全2分木構造に基づいて、パラメータk=6を設定した場合の有向グラフIを図15に示した。   Finally, an example of the directed graph I generated using the above directed graph generation method is shown. FIG. 15 shows a directed graph I when the parameter k = 6 is set based on the complete binary tree structure with the number of leaf nodes n = 64 shown in FIG.

まず、基盤方式に基づいて生成された有向グラフH(図4)と、本実施形態に係る有向グラフI(図15)と、を比較すると以下の2点が容易に分かる。(1)有向グラフIは、有向グラフHに比べて長さ2以上の有向枝の数が減少し、1つの座標点から伸びる有向枝の数が減少したこと。(2)有向グラフI上の多くの有向パスについて、その有向枝数が減少していること。従って、セット鍵の生成に必要な計算量の最悪値を低減させると共に、ユーザが保持すべき中間鍵の鍵数を低減することが可能な有向グラフIが生成されることが確かめられた。   First, when the directed graph H (FIG. 4) generated based on the base method is compared with the directed graph I (FIG. 15) according to the present embodiment, the following two points can be easily understood. (1) In the directed graph I, the number of directed branches having a length of 2 or more is reduced compared to the directed graph H, and the number of directed branches extending from one coordinate point is reduced. (2) For many directed paths on the directed graph I, the number of directed branches is reduced. Therefore, it has been confirmed that the directed graph I that can reduce the worst value of the calculation amount necessary for generating the set key and reduce the number of intermediate keys to be held by the user is generated.

本実施形態に係る鍵数削減効果をより定量的に理解するため、基盤方式と本実施形態との比較結果を表形式で図16に示した。図16を参照すると、ユーザが保持すべき鍵数の総和(総鍵数)及び各ユーザが保持すべき平均鍵数が低減されている。以上の結果は、ユーザ数nがn=64という小さな数で実施されたものであるため、削減される鍵数の絶対値はそれほど大きくないように思われるかもしれないが、実施環境においては、ユーザ数が桁違いに大きいため、その削減効果は極めて顕著な差として現れるものと予想される。また、セット鍵の生成に必要な計算量の最悪値は、最長有向パスを構成する有向枝の数で表されるが、この値が、基盤方式に基づいて生成された有向グラフHでは(2k−1)*(n1/k−1)であったのに対し、本実施形態に係る有向グラフIではk*(n1/k−1)と約半減している。 In order to understand the effect of reducing the number of keys according to the present embodiment more quantitatively, a comparison result between the basic scheme and the present embodiment is shown in a table format in FIG. Referring to FIG. 16, the total number of keys (total number of keys) to be held by the user and the average number of keys to be held by each user are reduced. The above results are implemented with a small number of users n = 64, so the absolute value of the number of keys to be reduced may not seem so large, but in the implementation environment, Since the number of users is an order of magnitude, the reduction effect is expected to appear as a very significant difference. In addition, the worst value of the amount of calculation necessary for generating the set key is represented by the number of directional branches constituting the longest directional path. 2k−1) * (n 1 / k −1), whereas in the directed graph I according to this embodiment, k * (n 1 / k −1) is approximately halved.

以上、セット鍵を生成するのに必要な計算量の最悪値を低減させつつ、ユーザが保持すべき中間鍵の鍵数を低減することが可能な有向グラフを生成するロジックについて説明した。上記の鍵生成ロジック(有向グラフ)の構築は、主に、鍵配信サーバ102を構成する鍵生成ロジック構築ブロックにより実行される。しかし、上記の鍵生成ロジックに基づいて暗号鍵配信を実行するためには、他の構成要素が必要である。そこで、再び図8を参照しながら、他の構成要素についても説明する。   The logic for generating a directed graph that can reduce the number of intermediate keys to be held by the user while reducing the worst value of the amount of calculation necessary to generate the set key has been described above. The construction of the key generation logic (directed graph) is mainly executed by the key generation logic construction block that constitutes the key distribution server 102. However, in order to execute encryption key distribution based on the above key generation logic, other components are required. Therefore, another component will be described with reference to FIG. 8 again.

再度図8を参照すると、鍵配信サーバ102は、上記の鍵生成ロジック構築ブロックの他に、初期中間鍵設定部112と、鍵生成部114と、暗号化部116と、送信部118と、部分集合決定部120と、により構成される。   Referring to FIG. 8 again, the key distribution server 102 includes an initial intermediate key setting unit 112, a key generation unit 114, an encryption unit 116, a transmission unit 118, a part, in addition to the key generation logic building block described above. And a set determining unit 120.

(初期中間鍵設定部112)
初期中間鍵設定部112は、木構造の各中間ノードに対応する各有向グラフIについて、有向グラフIの先頭座標点に対応する中間鍵を生成する。例えば、初期中間鍵設定部112は、擬似乱数生成器により乱数を発生させて、上記の先頭座標点(ルート)に対応する各中間鍵に対して乱数を設定してもよいし、又は所定の数値を各中間鍵に設定してもよい。
(Initial intermediate key setting unit 112)
The initial intermediate key setting unit 112 generates an intermediate key corresponding to the head coordinate point of the directed graph I for each directed graph I corresponding to each intermediate node of the tree structure. For example, the initial intermediate key setting unit 112 may set a random number for each intermediate key corresponding to the top coordinate point (root) by generating a random number using a pseudo random number generator, A numerical value may be set for each intermediate key.

(鍵生成部114)
鍵生成部114は、有向グラフIを構成するある有向枝について、その有向枝の始点が示す座標点に割り当てられた所定の中間鍵が入力されると、その有向枝の始点が示す座標点に対応するセット鍵と、その有向枝の始点から伸びる全ての有向枝の終点に対応する中間鍵と、を出力する。つまり、鍵生成部114は、基盤方式のPRSGに対応するものである。但し、鍵生成部114は、有向グラフ生成部110により生成された有向グラフIに基づいて中間鍵を出力する点で、基盤方式のPRSGとは異なる。もし、鍵生成部114を同じPRSGと表現するならば、有向グラフIのある座標点S0に対応する中間鍵t(S0)を入力すると、座標点(部分集合S0に対応)を始点とする有向枝の終点に対応する中間鍵t(S1)、t(S2)、...、t(Sm)と、セット鍵k(S0)と、を出力する。但し、mは、ある座標点S0を始点とする有向枝の本数を表している。
(Key generation unit 114)
When a predetermined intermediate key assigned to the coordinate point indicated by the starting point of the directional branch is input for a certain directional branch constituting the directed graph I, the key generation unit 114 indicates the coordinates indicated by the starting point of the directional branch. A set key corresponding to the point and intermediate keys corresponding to the end points of all the directional branches extending from the start point of the directional branch are output. That is, the key generation unit 114 corresponds to the basic PRSG. However, the key generation unit 114 is different from the basic PRSG in that the intermediate key is output based on the directed graph I generated by the directed graph generation unit 110. If the key generation unit 114 is expressed as the same PRSG, when an intermediate key t (S0) corresponding to a coordinate point S0 in the directed graph I is input, a directed point having a coordinate point (corresponding to the subset S0) as a starting point is input. Intermediate keys t (S1), t (S2),. . . , T (Sm) and set key k (S0). Here, m represents the number of directional branches starting from a certain coordinate point S0.

(暗号化部116)
暗号化部116は、セット鍵を用いてコンテンツ鍵を暗号化する。コンテンツ鍵は一つであるが、セット鍵はセットシステムΦを構成する部分集合の数だけ存在する。暗号化部116は、セットシステムΦを構成する全ての部分集合のうち、後述する部分集合決定部120において選択された部分集合に対応する各セット鍵を用いてコンテンツ鍵を暗号化する。つまり、暗号鍵116は、各セット鍵に対応する暗号化されたコンテンツ鍵を生成する。その為、選択された部分集合の数がmであれば、暗号化されたコンテンツ鍵もm個作成される。なお、暗号化部116は、コンテンツ自体を暗号化してもよい。例えば、暗号化部116は、コンテンツ鍵を用いてコンテンツ自体を暗号化してもよいし、上記の各セット鍵を用いてコンテンツ自体を暗号化してもよい。但し、セット鍵を用いてコンテンツ自体を暗号化する構成は、本実施形態の一変形例である。
(Encryption unit 116)
The encryption unit 116 encrypts the content key using the set key. There is one content key, but there are as many set keys as there are subsets constituting the set system Φ. The encryption unit 116 encrypts the content key using each set key corresponding to the subset selected by the subset determination unit 120 described later, from among all the subsets constituting the set system Φ. That is, the encryption key 116 generates an encrypted content key corresponding to each set key. Therefore, if the number of selected subsets is m, m encrypted content keys are also created. Note that the encryption unit 116 may encrypt the content itself. For example, the encryption unit 116 may encrypt the content itself using the content key, or may encrypt the content itself using the above set keys. However, the configuration in which the content itself is encrypted using the set key is a modification of the present embodiment.

(送信部118)
送信部118は、葉ノードに対応する全ユーザに対し、暗号部116により暗号化されたコンテンツ鍵を配信する。また、送信部118は、上記の有向グラフIを参照しながら、各ユーザに対して中間鍵を配信してもよい。このとき、送信部118は、各ユーザが、自身の所属する部分集合に対応する中間鍵を全て導出できるように、必要最低限の中間鍵を配信してもよい。つまり、送信部118は、セットシステムΦ(上式(1)参照)を構成する部分集合の中から、中間鍵の配信先ユーザが所属する部分集合を抽出し、その抽出された部分集合に対応する有向グラフIの座標点のうち、その座標点に到達する有向枝の始点に対応する部分集合に当該配信先ユーザが含まれないような座標点を選択して、その選択された座標点に対応する中間鍵のみを当該配信先ユーザに配信してもよい。但し、送信部118は、中間鍵の配信先ユーザが所属する部分集合が、有向グラフIの先頭座標点に対応する場合には、当該先頭座標点に対応する中間鍵のみを当該配信先ユーザに配信してもよい。また、送信部118は、有向グラフIの情報を各ユーザに配信する有向グラフ情報配信部として機能してもよい。つまり、送信部118は、各中間鍵を入力することにより、有向グラフIに基づいて所定の中間鍵とセット鍵とを出力するPRSGの鍵生成アルゴリズムに関する情報(例えば、鍵生成プログラム)を配信してもよい。
(Transmitter 118)
The transmission unit 118 distributes the content key encrypted by the encryption unit 116 to all users corresponding to the leaf nodes. The transmission unit 118 may distribute the intermediate key to each user while referring to the directed graph I. At this time, the transmission unit 118 may distribute the minimum necessary intermediate key so that each user can derive all the intermediate keys corresponding to the subset to which the user belongs. That is, the transmission unit 118 extracts the subset to which the intermediate key distribution destination user belongs from the subsets configuring the set system Φ (see the above formula (1)), and corresponds to the extracted subsets. Among the coordinate points of the directed graph I, a coordinate point that does not include the delivery destination user in the subset corresponding to the starting point of the directional branch that reaches the coordinate point is selected, and the selected coordinate point Only the corresponding intermediate key may be distributed to the distribution destination user. However, if the subset to which the intermediate key distribution destination user belongs corresponds to the first coordinate point of the directed graph I, the transmission unit 118 distributes only the intermediate key corresponding to the first coordinate point to the distribution destination user. May be. Moreover, the transmission part 118 may function as a directed graph information delivery part which delivers the information of the directed graph I to each user. That is, the transmission unit 118 distributes information (for example, a key generation program) on a PRSG key generation algorithm that outputs a predetermined intermediate key and a set key based on the directed graph I by inputting each intermediate key. Also good.

なお、この中間鍵の配布は、コンテンツの配布に先立ち、コンテンツの配信とは別の通信路を用いて行ってもよい。例えば、鍵配信サーバ102が各端末装置用の中間鍵を出威力して記録媒体に記録し、端末装置を製造する工場において、端末装置の製造時にこの記録媒体から読み出した各端末装置毎の中間鍵を各端末装置に格納してもよい。   The distribution of the intermediate key may be performed using a communication path different from the content distribution prior to the content distribution. For example, in a factory where the key distribution server 102 outputs an intermediate key for each terminal device to the recording medium and manufactures the terminal device, the intermediate for each terminal device read from the recording medium when the terminal device is manufactured. The key may be stored in each terminal device.

(部分集合決定部120)
部分集合決定部120は、コンテンツ又はコンテンツ鍵を復号不能にすべき排除ユーザの集合(R)を決定し、有向グラフIの座標点に対応する部分集合の中から、選択された所定の部分集合の和集合により、ユーザの集合(N)から排除ユーザの集合(R)を除外した許諾ユーザの集合(N\R)を定義した上で、許諾ユーザの集合(N\R)を構成する部分集合の数が最小となるように、許諾ユーザの集合(N\R)を構成する部分集合の組を決定する。なお、部分集合決定部120は、許諾ユーザの集合(N\R)を決定する許諾ユーザ集合決定部と、許諾ユーザの集合(N\R)を構成する部分集合の組を決定する許諾ユーザ部分集合決定部と、により構成されていてもよい。
(Subset determination unit 120)
The subset determination unit 120 determines a set (R) of excluded users whose contents or content keys should not be decrypted, and selects a predetermined subset selected from the subsets corresponding to the coordinate points of the directed graph I. A subset constituting the authorized user set (N \ R) after defining the authorized user set (N \ R) by excluding the excluded user set (R) from the user set (N) by union The set of subsets constituting the set of authorized users (N \ R) is determined so that the number of licenses is minimized. The subset determination unit 120 includes a licensed user set determination unit that determines a set of licensed users (N \ R) and a licensed user part that determines a set of subsets that constitutes the set of licensed users (N \ R). And a set determining unit.

上記のように、部分集合決定部120により許諾ユーザの集合(N\R=S1∪S2∪...∪Sm;mは自然数)を構成する部分集合(S1、S2、...、Sm)が決定されると、送信部118は、許諾ユーザの集合(N\R)又は許諾ユーザの集合(N\R)を構成する部分集合(S1、S2、...、Sm)を示す情報を各ユーザに対して配信する。また、暗号化部116は、部分集合決定部120により決定された部分集合(S1、S2、...、Sm)に対応するセット鍵を用いてコンテンツ又はコンテンツ鍵を暗号化し、そして、送信部118は、その暗号化されたコンテンツ又はコンテンツ鍵を各ユーザに対して配信する。   As described above, the subset (S1, S2,..., Sm) constituting the set of authorized users (N \ R = S1∪S2∪... Sm; m is a natural number) by the subset determination unit 120. Is determined, the transmission unit 118 transmits information indicating a set of licensed users (N \ R) or a subset (S1, S2, ..., Sm) constituting the set of licensed users (N \ R). Deliver to each user. The encryption unit 116 encrypts the content or the content key using the set key corresponding to the subset (S1, S2,..., Sm) determined by the subset determination unit 120, and the transmission unit 118 distributes the encrypted content or content key to each user.

以上、本発明の好適な実施形態に係る鍵配信サーバ102の構成について説明した。このように、本実施形態の特徴は、主に、鍵生成ロジック構築ブロックの構成にある。特に、鍵生成ロジックを決定する有向グラフを生成するための有向グラフ生成部110の構成に特徴を有している。本実施形態に係る有向グラフ生成部110は、各ユーザがセット鍵を生成する際に要する計算量を増加させることなく、各ユーザが保持すべき中間鍵の鍵数を低減させることが可能な鍵生成ロジック(有向グラフ)を生成することができる。その結果、各ユーザが中間鍵を保持するために必要とするメモリ量、及び鍵生成に係る計算量を削減すると同時に、各ユーザに中間鍵を配信するための配信コストを低減することが可能になる。   The configuration of the key distribution server 102 according to the preferred embodiment of the present invention has been described above. Thus, the feature of the present embodiment is mainly in the configuration of the key generation logic building block. In particular, the configuration of the directed graph generation unit 110 for generating a directed graph for determining the key generation logic is characteristic. The directed graph generation unit 110 according to the present embodiment can reduce the number of intermediate keys that each user should hold without increasing the amount of calculation required for each user to generate a set key. Logic (directed graph) can be generated. As a result, it is possible to reduce the amount of memory required for each user to hold the intermediate key and the amount of calculation related to key generation, and at the same time reduce the distribution cost for distributing the intermediate key to each user. Become.

[端末装置122の構成]
次に、図8を参照しながら、本実施形態に係る端末装置122の構成について説明する。図8は、端末装置122の構成を示すブロック図である。
[Configuration of Terminal Device 122]
Next, the configuration of the terminal device 122 according to the present embodiment will be described with reference to FIG. FIG. 8 is a block diagram illustrating a configuration of the terminal device 122.

図8を参照すると、端末装置122は、受信部124と、判断部126と、鍵生成部128と、復号部130と、により構成される。なお、端末装置122は、上記のユーザに対応している。   Referring to FIG. 8, the terminal device 122 includes a reception unit 124, a determination unit 126, a key generation unit 128, and a decryption unit 130. The terminal device 122 corresponds to the above user.

(受信部124)
受信部124は、鍵配信サーバ102が備える送信部118から送信された情報を受信する。例えば、受信部124は、鍵配信サーバ102から配信されたコンテンツ、暗号化されたコンテンツ鍵、所定の中間鍵、有向グラフIに関する情報、又は許諾ユーザに関する情報等を受信する。また、受信部124は、一つの情報源から情報を受信するだけでなく、複数の情報源から情報を収集してもよい。例えば、受信部124は、有線又は無線のネットワークに接続された複数の情報源(例えば、鍵配信サーバ102)、又はネットワークを介さずに直接的又は間接的に接続された情報源(例えば、光ディスク装置、磁気ディスク装置、又は携帯型端末装置等の情報メディア)から情報を取得してもよい。もちろん、受信部124は、他の端末装置122から情報を受信してもよいため、例えば、有向グラフIの情報を、同一の配信先グループに属する他の端末装置122との間で共有するように構成されていてもよい。この場合、同一の配信先グループとは、同一又は複数の鍵配信サーバ102から配信されるコンテンツの視聴者ユーザとして認定されたグループを意味し、上記の木構造の葉ノードに対応するユーザの集合に対応する。また、上記の中間鍵は、予め端末装置に与えられ、端末装置が保持しておいてもよい。
(Receiver 124)
The reception unit 124 receives information transmitted from the transmission unit 118 included in the key distribution server 102. For example, the receiving unit 124 receives content distributed from the key distribution server 102, an encrypted content key, a predetermined intermediate key, information about the directed graph I, information about a licensed user, or the like. The receiving unit 124 may collect information from a plurality of information sources as well as receiving information from one information source. For example, the receiving unit 124 includes a plurality of information sources (for example, the key distribution server 102) connected to a wired or wireless network, or an information source (for example, an optical disc) connected directly or indirectly without going through the network. Information may be acquired from an information medium such as a device, a magnetic disk device, or a portable terminal device. Of course, since the receiving unit 124 may receive information from the other terminal devices 122, for example, the information of the directed graph I may be shared with other terminal devices 122 belonging to the same distribution destination group. It may be configured. In this case, the same distribution destination group means a group authorized as a viewer user of content distributed from the same or a plurality of key distribution servers 102, and a set of users corresponding to the leaf nodes of the tree structure described above Corresponding to The intermediate key may be given to the terminal device in advance and held by the terminal device.

(判断部126)
判断部126は、セット鍵に対応する部分集合のいずれかに自身が要素として含まれるか否かを判断する。端末装置122は、自身が所属する部分集合に対応するセット鍵を生成するための中間鍵しか保持していないため、鍵配信サーバ102がコンテンツ又はコンテンツ鍵を暗号化するために用いたセット鍵の情報から、それらのセット鍵に対応する部分集合の中に、自身が所属する部分集合が含まれるか否かを予め判断する必要がある。この判断を行うのが判断部126である。なお、セット鍵の情報は、鍵配信サーバ102からコンテンツ鍵と同時又は別のタイミングで配信されており、受信部124により受信されている。もし、暗号化に利用されたセット鍵の中に、自身が所属する部分集合に対応したセット鍵が含まれていないと判断された場合には、自身の保持する中間鍵からセット鍵を生成する処理を実行せずにコンテンツ鍵の復号処理を終了する。逆に、端末装置122は、自身の所属する部分集合に対応したセット鍵が発見された場合には、PRSGを用いて自身の保持する中間鍵からそのセット鍵を生成する。
(Judgment unit 126)
The determination unit 126 determines whether or not itself is included as an element in any of the subsets corresponding to the set key. Since the terminal device 122 holds only an intermediate key for generating a set key corresponding to a subset to which the terminal device 122 belongs, the terminal device 122 uses the set key used for encrypting the content or the content key by the key distribution server 102. From the information, it is necessary to determine in advance whether or not the subset to which the user belongs is included in the subset corresponding to the set key. The determination unit 126 makes this determination. The set key information is distributed from the key distribution server 102 at the same time as the content key or at a different timing, and is received by the receiving unit 124. If it is determined that the set key used for encryption does not include the set key corresponding to the subset to which it belongs, the set key is generated from the intermediate key held by itself. The content key decryption process is terminated without executing the process. Conversely, when a set key corresponding to the subset to which the terminal device 122 belongs is found, the terminal device 122 generates the set key from the intermediate key held by the terminal device 122 using the PRSG.

(鍵生成部128)
鍵生成部128は、有向グラフIを構成するある有向枝について、その有向枝の始点が示す座標点に割り当てられた所定の中間鍵が入力されると、その有向枝の始点が示す座標点に対応するセット鍵と、その有向枝の始点から伸びる全ての有向枝の終点に対応する中間鍵と、を出力する。つまり、鍵生成部128は、鍵配信サーバ102が備える鍵生成部114に対応するものである。もし、鍵生成部128をPRSGと表現するならば、有向グラフIのある座標点S0に対応する中間鍵t(S0)を入力すると、座標点S0を始点とする有向枝の終点に対応する中間鍵t(S1)、t(S2)、...、t(Sm)と、セット鍵k(S0)と、を出力する。但し、mは、ある座標点S0を始点とする有向枝の本数を表している。なお、有向グラフIの情報は、鍵配信サーバ102から取得してもよいし、端末装置122が備える記憶部(図示せず)に格納されていてもよい。
(Key generation unit 128)
When a predetermined intermediate key assigned to the coordinate point indicated by the starting point of the directional branch is input for a certain directional branch constituting the directed graph I, the key generating unit 128 displays the coordinates indicated by the starting point of the directional branch. A set key corresponding to the point and intermediate keys corresponding to the end points of all the directional branches extending from the start point of the directional branch are output. That is, the key generation unit 128 corresponds to the key generation unit 114 included in the key distribution server 102. If the key generation unit 128 is expressed as PRSG, when an intermediate key t (S0) corresponding to a coordinate point S0 of the directed graph I is input, an intermediate corresponding to the end point of the directional branch starting from the coordinate point S0. The keys t (S1), t (S2),. . . , T (Sm) and set key k (S0). Here, m represents the number of directional branches starting from a certain coordinate point S0. The information of the directed graph I may be acquired from the key distribution server 102 or may be stored in a storage unit (not shown) included in the terminal device 122.

(復号部130)
復号部130は、セット鍵を用いてコンテンツ鍵を復号する。具体的には、復号部130は、セット鍵に対応する部分集合の中から、自身が要素として含まれる部分集合を抽出し、当該部分集合に対応するセット鍵を用いてコンテンツ又はコンテンツ鍵を復号する。
(Decoding unit 130)
The decryption unit 130 decrypts the content key using the set key. Specifically, the decryption unit 130 extracts a subset including itself as an element from the subset corresponding to the set key, and decrypts the content or the content key using the set key corresponding to the subset. To do.

以上、本実施形態に係る端末装置122の構成について説明した。このように、端末装置122は、上記の鍵配信サーバ102が備える有向グラフ生成部110により生成された特殊な鍵生成ロジック(有向グラフI)に基づいて、所望のセット鍵を生成することができる。その結果、端末装置122は、コンテンツ鍵を復号するために利用するセット鍵を生成するために必要な保持すべき中間鍵の鍵数を抑えることが可能になる。   The configuration of the terminal device 122 according to the present embodiment has been described above. As described above, the terminal device 122 can generate a desired set key based on the special key generation logic (directed graph I) generated by the directed graph generation unit 110 included in the key distribution server 102 described above. As a result, the terminal device 122 can suppress the number of intermediate keys to be held necessary for generating a set key used for decrypting the content key.

[暗号鍵配信システム100の応用例]
最後に、上記の暗号鍵配信システム100の応用例を示す。
[Application example of encryption key distribution system 100]
Finally, an application example of the encryption key distribution system 100 will be shown.

(応用例1)
まず、応用例1として、放送暗号化システム300の構成を図17示す。
図17は、放送衛星を用いた放送暗号化システム(broadcast encryption system)の構成を示すブロック図である。放送暗号化システム300は、放送チャンネルを介して暗号化されたデータ(所謂、暗号テキスト;ciphertext)を受信機310に送信する。ここで、放送暗号化システム300における放送チャンネルは、衛星放送配信チャンネルである。また、暗号テキストとして送信されるデータは、例えば、暗号鍵、音声データ、映像データ、又はテキストデータ等を含むコンテンツである。衛星放送局302における管理センタ(broadcast trusted center)304は、放送衛星306にデータを送信する。放送管理センタ304は、例えば、暗号化用の鍵を選択したり、データの暗号化、及びデータ配信を制御する。放送衛星306は、データを放送する。住居308に設置された受信機310は、例えば、衛星放送受信機を備え、放送されてくるデータを受信する。他の複数の受信機310も放送されてくるデータを受信することができる。このようにして、管理センタ304は、受信機310から成る受信機グループ内の各受信機310にデータを送信することができる。後述するように、管理センタ304は、認証されている受信機310のみが放送されたデータを復号することができるように、放送データを暗号化する。なお、図17には、放送衛星306を用いた放送システムを示しているが、ケーブルテレビジョンやコンピュータネットワーク等、この他の放送チャンネルを用いてもよい。
(Application 1)
First, as an application example 1, a configuration of a broadcast encryption system 300 is shown in FIG.
FIG. 17 is a block diagram showing a configuration of a broadcast encryption system using a broadcast satellite. The broadcast encryption system 300 transmits the encrypted data (so-called cipher text) to the receiver 310 via the broadcast channel. Here, the broadcast channel in the broadcast encryption system 300 is a satellite broadcast distribution channel. The data transmitted as cipher text is, for example, content including an encryption key, audio data, video data, or text data. A management center (broadcast trusted center) 304 in the satellite broadcasting station 302 transmits data to the broadcasting satellite 306. The broadcast management center 304 selects, for example, an encryption key, and controls data encryption and data distribution. The broadcast satellite 306 broadcasts data. The receiver 310 installed in the residence 308 includes, for example, a satellite broadcast receiver, and receives broadcast data. A plurality of other receivers 310 can also receive the broadcast data. In this manner, the management center 304 can transmit data to each receiver 310 in the receiver group including the receivers 310. As will be described later, the management center 304 encrypts the broadcast data so that only the authenticated receiver 310 can decrypt the broadcast data. Although FIG. 17 shows a broadcasting system using the broadcasting satellite 306, other broadcasting channels such as a cable television and a computer network may be used.

以上、暗号鍵配信システム100の一応用例である放送暗号化システム300の構成について述べた。簡単に暗号鍵配信システム100との関係を整理しておくと、管理センタ304が鍵配信サーバ102に対応し、受信機310が受信機122に対応する。そして、これらを接続するネットワークを仲介するのが放送衛星306である。   The configuration of the broadcast encryption system 300, which is an application example of the encryption key distribution system 100, has been described above. If the relationship with the encryption key distribution system 100 is simply arranged, the management center 304 corresponds to the key distribution server 102 and the receiver 310 corresponds to the receiver 122. The broadcast satellite 306 mediates the network connecting them.

(応用例2)
次に、応用例2として、放送暗号化システム400の構成を図18に示す。
図18は、データ媒体を用いた放送暗号化システム400の構成を示すブロック図である。放送暗号化システム400において、放送チャンネルは、データ媒体の配布である。媒体製造業者402内の管理センタ404は、例えば、読出専用媒体(例えば、CD−ROM、DVD−ROM等)、又は書換可能媒体(例えば、CD−RW、DVD−RW等)等の媒体406の各個体(article of data media)にデータを保存する。読出専用媒体については、管理センタ404は、暗号化されたコンテンツ鍵及び暗号化されたコンテンツを記録し、認証されたユーザのみがデータを復号し、暗号化されているコンテンツ(例えば、音声、映像、又はテキスト等)にアクセスできるようにしている。一方、書換可能媒体に対し、管理センタ404は、暗号化されたコンテンツ鍵を記録し、認証された記録装置のみが対応するデータを記録媒体に記録できるようにしている。媒体製造業者402は、例えば、小売店等の配布仲介者(distribution outlet)408に媒体406を送付する。配布仲介者408は、媒体410を住居412の受信機414に提供する。例えば、配布仲介者408は、媒体410を個人に販売し、この個人が媒体410を住居412に持ち帰り、媒体410を受信機414に挿入する。例えば、受信機414は、CDプレーヤ、DVDプレーヤ、又はコンピュータ等、媒体410に記録されているデータを読み出して再生する装置であってもよい。他の具体例としては、受信機414は、例えば、DVD−RWドライブ等、媒体410にデータを記録し、及び媒体410からデータを読み出すことが可能なディスク装置であってもよい。管理センタ404は、認証されている受信機414のみが、暗号化されているデータを復号することができるように、データを暗号化する。
(Application example 2)
Next, as an application example 2, the configuration of the broadcast encryption system 400 is shown in FIG.
FIG. 18 is a block diagram showing a configuration of a broadcast encryption system 400 using a data medium. In the broadcast encryption system 400, a broadcast channel is distribution of a data medium. The management center 404 in the medium manufacturer 402 is a medium 406 such as a read-only medium (for example, CD-ROM, DVD-ROM, etc.) or a rewritable medium (for example, CD-RW, DVD-RW, etc.). Data is stored in each individual (article of data media). For a read-only medium, the management center 404 records the encrypted content key and the encrypted content, and only the authenticated user decrypts the data, and the encrypted content (eg, audio, video) Or text etc.). On the other hand, for the rewritable medium, the management center 404 records the encrypted content key so that only the authenticated recording apparatus can record the corresponding data on the recording medium. The media manufacturer 402 sends the media 406 to a distribution outlet 408, such as a retail store. Distribution intermediary 408 provides media 410 to receiver 414 in residence 412. For example, the distribution intermediary 408 sells the media 410 to an individual who takes the media 410 back to the residence 412 and inserts the media 410 into the receiver 414. For example, the receiver 414 may be a device that reads and reproduces data recorded on the medium 410, such as a CD player, a DVD player, or a computer. As another specific example, the receiver 414 may be a disk device that can record data on the medium 410 and read data from the medium 410, such as a DVD-RW drive. The management center 404 encrypts the data so that only the authenticated receiver 414 can decrypt the encrypted data.

以上、暗号鍵配信システム100の一応用例である放送暗号化システム400の構成について述べた。簡単に暗号鍵配信システム100との関係を整理しておくと、管理センタ404が鍵配信サーバ102に対応し、受信機414が受信機122に対応する。そして、これらを接続するネットワークの代わりに、媒体406、410を配布する配布仲介者408が介在している。   The configuration of the broadcast encryption system 400, which is an application example of the encryption key distribution system 100, has been described above. If the relationship with the encryption key distribution system 100 is simply arranged, the management center 404 corresponds to the key distribution server 102 and the receiver 414 corresponds to the receiver 122. A distribution mediator 408 for distributing the media 406 and 410 is interposed instead of the network connecting them.

以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。   As mentioned above, although preferred embodiment of this invention was described referring an accompanying drawing, it cannot be overemphasized that this invention is not limited to the example which concerns. It will be apparent to those skilled in the art that various changes and modifications can be made within the scope of the claims, and these are naturally within the technical scope of the present invention. Understood.

例えば、上記の木構造設定部104は、上から下に枝が広がった木構造を形成するものと想定していたが、必ずしもこれに限定されず、下から上、左から右、又は右から左に向かって枝が広がった木構造を有していてもよい。この場合、各中間ノードに対応付けされる部分集合の定義は、これに適合するように変更されねばならない。しかし、この変更は、上記の木構造設定部104が設定した木構造を回転して配置するだけであり、いずれの場合においても意味するところは完全に同一である。また、上記の仮有向グラフ生成部108及び有向グラフ生成部110は、左から右、又は右から左に座標軸を設定して有向グラフI’及びIを構築したが、この左右を反転させる変更についても同様である。つまり、上記の説明においては、便宜的に上下方向、又は左右方向を基準にして各種パラメータの定義を行ったが、一般庶民又は当業者の有すべき常識に照らして考えると、仮に木構造又は有向グラフを回転又は反転して上下左右の関係を変更したとしても、完全に同一の技術的範囲に属するものと了解される。   For example, the tree structure setting unit 104 is assumed to form a tree structure with branches extending from top to bottom. However, the present invention is not limited to this, and is not necessarily limited to this, from bottom to top, from left to right, or from right. It may have a tree structure with branches extending toward the left. In this case, the definition of the subset associated with each intermediate node must be changed to match this. However, this change only rotates and arranges the tree structure set by the tree structure setting unit 104, and the meaning in any case is completely the same. In addition, the temporary directed graph generation unit 108 and the directed graph generation unit 110 described above construct the directed graphs I ′ and I by setting the coordinate axes from left to right or from right to left. is there. In other words, in the above description, various parameters are defined based on the vertical direction or the horizontal direction for convenience. However, in the light of common sense that general people or those skilled in the art should have, a tree structure or Even if the directed graph is rotated or reversed to change the vertical / horizontal relationship, it is understood that they belong to the same technical scope.

例えば、本発明の実施形態に係る仮有向グラフ生成部108は、上記の基盤技術に準じた仮有向グラフを生成可能なだけでなく、他の方式に基づいて仮有向グラフを生成してもよい。例えば、仮有向グラフとして、有向パスの始点に近い方又は遠い方に向かって、より長い有向枝が配置された有向グラフであってもよい。もちろん、上記の基盤方式よりも複雑なロジックに基づいて生成された仮有向グラフであってもよい。このように、本発明の基本コンセプトを適用可能な範囲は、上記の基盤技術に限定されるものではなく、様々な方式により生成された有向グラフに及ぶものである。また、本実施形態に係る情報処理装置は、任意の有向グラフを取得する取得部を備えていてもよい。その場合、当該情報処理装置は、取得した有向グラフに基づいてセット鍵を生成することができる。   For example, the temporary digraph generation unit 108 according to the embodiment of the present invention may not only generate a temporary digraph according to the above basic technology, but may generate a temporary digraph based on another method. For example, the temporary directed graph may be a directed graph in which longer directional branches are arranged toward the direction closer to or farther from the starting point of the directed path. Of course, it may be a temporary directed graph generated based on logic more complicated than the above-mentioned basic scheme. As described above, the range in which the basic concept of the present invention can be applied is not limited to the above-described basic technology, but extends to directed graphs generated by various methods. In addition, the information processing apparatus according to the present embodiment may include an acquisition unit that acquires an arbitrary directed graph. In this case, the information processing apparatus can generate a set key based on the acquired directed graph.

本発明の好適な実施形態に係る暗号鍵配信システムを示す説明図である。It is explanatory drawing which shows the encryption key distribution system which concerns on suitable embodiment of this invention. 同実施形態に係る情報処理装置及び受信機の構成を示すブロック図である。It is a block diagram which shows the structure of the information processing apparatus and receiver which concern on the embodiment. 基盤方式に係る2分木構造を示す説明図である。It is explanatory drawing which shows the binary tree structure which concerns on a foundation system. 基盤方式に係る有向グラフを示す説明図である。It is explanatory drawing which shows the directed graph which concerns on a base system. 基盤方式に係る有向グラフ算出方法を示す流れ図である。It is a flowchart which shows the directed graph calculation method which concerns on a foundation system. 基盤方式に係る中間鍵配信方法を示す流れ図である。It is a flowchart which shows the intermediate key distribution method which concerns on a foundation system. 基盤方式に係るセット鍵生成方法を示す流れ図である。It is a flowchart which shows the set key generation method which concerns on a foundation system. 本発明の好適な実施形態に係る情報処理装置及び端末装置の構成を示すブロック図である。It is a block diagram which shows the structure of the information processing apparatus which concerns on suitable embodiment of this invention, and a terminal device. 同実施形態に係る仮有向グラフ生成方法を示す流れ図である。It is a flowchart which shows the temporary directed graph production | generation method which concerns on the embodiment. 同実施形態に係る仮有向グラフ(k=6)の一例を示す説明図である。It is explanatory drawing which shows an example of the temporary directed graph (k = 6) which concerns on the same embodiment. 同実施形態に係る有向グラフ生成方法の概要を示す流れ図である。It is a flowchart which shows the outline | summary of the directed graph production | generation method concerning the embodiment. 同実施形態に係る有向グラフ生成方法(LP決定)を示す流れ図である。It is a flowchart which shows the directed graph production | generation method (LP determination) based on the embodiment. 同実施形態に係る有向グラフ生成方法(PLP決定)を示す流れ図である。It is a flowchart which shows the directed graph production | generation method (PLP determination) which concerns on the embodiment. 同実施形態に係る有向グラフ生成方法を示す流れ図である。It is a flowchart which shows the directed graph production | generation method which concerns on the same embodiment. 同実施形態に係る有向グラフ(k=6)の一例を示す説明図である。It is explanatory drawing which shows an example of the directed graph (k = 6) which concerns on the same embodiment. 基盤方式と同実施形態に係る鍵配信方式との比較を示した比較表である。It is the comparison table which showed the comparison with the base system and the key distribution system which concerns on the embodiment. 同実施形態に係る暗号鍵配信システムの一応用例を示した説明図である。It is explanatory drawing which showed the example of 1 application of the encryption key distribution system which concerns on the embodiment. 同実施形態に係る暗号鍵配信システムの一応用例を示した説明図である。It is explanatory drawing which showed the example of 1 application of the encryption key distribution system which concerns on the embodiment.

符号の説明Explanation of symbols

100 暗号鍵配信システム
102 鍵配信サーバ
104 木構造設定部
106 座標軸設定部
108 仮有向グラフ生成部
110 有向グラフ生成部
112 初期中間鍵設定部
114 鍵生成部
116 暗号化部
118 送信部
120 部分集合決定部
122 端末装置
124 受信部
126 判断部
128 鍵生成部
130 復号部
202 コントローラ
204 演算ユニット
206 入出力インターフェース
208 セキュア記憶部
210 メイン記憶部
212 ネットワークインターフェース
216 メディアインターフェース
218 情報メディア
DESCRIPTION OF SYMBOLS 100 Encryption key distribution system 102 Key distribution server 104 Tree structure setting part 106 Coordinate axis setting part 108 Temporary directed graph generation part 110 Directed graph generation part 112 Initial intermediate key setting part 114 Key generation part 116 Encryption part 118 Transmission part 120 Subset determination part 122 Terminal device 124 Reception unit 126 Judgment unit 128 Key generation unit 130 Decoding unit 202 Controller 204 Arithmetic unit 206 Input / output interface 208 Secure storage unit 210 Main storage unit 212 Network interface 216 Media interface 218 Information media

Claims (25)

複数の有向枝により構成される仮有向グラフに対し、当該仮有向グラフを構成する前記複数の有向枝の中からより長い前記有向枝を残した上で、当該残した有向枝の中から少なくとも1つの前記有向枝をより短い有向枝に置換することにより生成された有向グラフを取得する有向グラフ取得部と;
前記有向グラフ取得部により取得された前記有向グラフに基づいてコンテンツ又はコンテンツ鍵を暗号化又は復号するためのセット鍵を生成する鍵生成部と;
を備えることを特徴とする、情報処理装置。
For a temporary directed graph composed of a plurality of directed edges, after leaving the longer directed branch from among the plurality of directed branches constituting the temporary directed graph, from among the remaining directed branches A directed graph acquisition unit that acquires a directed graph generated by replacing at least one of the directed edges with a shorter directed edge;
A key generation unit that generates a set key for encrypting or decrypting a content or a content key based on the directed graph acquired by the directed graph acquisition unit;
An information processing apparatus comprising:
前記鍵生成部は、
前記有向グラフにおけるある座標点に対応する部分集合Sの中間鍵t(S)の入力に応じて、当該座標点に対応する部分集合Sに対応する前記セット鍵k(S)と、当該座標点Sを始点とする前記有向枝の終点の座標点S1,S2,・・・,Skの中間鍵t(S1),t(S2),・・・,t(Sk)と、を出力することを特徴とする、請求項1に記載の情報処理装置。
The key generation unit
In response to the input of the intermediate key t (S) of the subset S corresponding to a certain coordinate point in the directed graph, the set key k (S) corresponding to the subset S corresponding to the coordinate point and the coordinate point S , Sk, the intermediate keys t (S1), t (S2),..., T (Sk) of the directional branch end points. The information processing apparatus according to claim 1, wherein the information processing apparatus is characterized.
前記鍵生成部は、
前記有向グラフにおけるある座標点に対応する部分集合Sのセット鍵k(S)の入力に応じて、当該座標点Sを始点とする前記有向枝の終点の座標点S1,S2,・・・,Skのセット鍵k(S1),k(S2),・・・,k(Sk)を出力することを特徴とする、請求項1に記載の情報処理装置。
The key generation unit
In response to the input of the set key k (S) of the subset S corresponding to a certain coordinate point in the directed graph, the coordinate points S1, S2,. The information processing apparatus according to claim 1, wherein the set key k (S 1), k (S 2),..., K (S k) of Sk is output.
さらに、前記セット鍵を用いてコンテンツ又はコンテンツ鍵を暗号化する暗号化部を備えることを特徴とする、請求項1に記載の情報処理装置。   The information processing apparatus according to claim 1, further comprising an encryption unit that encrypts content or a content key using the set key. 所定の2分木構造を構成する葉ノード1〜n(nは自然数)の一部又は全部にそれぞれ対応付けられた端末装置に対し、前記暗号化部により暗号化された前記コンテンツ又は前記コンテンツ鍵を送信する送信部をさらに備えることを特徴とする、請求項4に記載の情報処理装置。   The content or the content key encrypted by the encryption unit for each terminal device associated with some or all of the leaf nodes 1 to n (n is a natural number) constituting a predetermined binary tree structure The information processing apparatus according to claim 4, further comprising a transmission unit that transmits the information. 前記有向グラフ取得部は、
連続する前記有向枝により構成される各有向パスの終点方向に向かって、より短い有向枝が配置されるように前記有向枝が置換された前記有向グラフを取得することを特徴とする、請求項1に記載の情報処理装置。
The directed graph acquisition unit
The directed graph in which the directional branch is replaced so that a shorter directional branch is arranged toward the end point direction of each directional path constituted by the continuous directional branches is obtained. The information processing apparatus according to claim 1.
前記葉ノード1〜nの部分集合をSiと定義して、前記セット鍵又は前記コンテンツ鍵で暗号化された前記コンテンツの復号を許可する前記端末装置の集合(N\R)を決定し、前記集合(N\R)=S1∪S2∪・・・∪Smを満たすm個の部分集合S1〜Smを、前記mが最小となるように決定する部分集合決定部をさらに備えることを特徴とする、請求項5に記載の情報処理装置。   A subset of the leaf nodes 1 to n is defined as Si, and a set (N \ R) of the terminal devices that permits decryption of the content encrypted with the set key or the content key is determined, It further includes a subset determining unit that determines m subsets S1 to Sm satisfying the set (N \ R) = S1∪S2∪... ∪Sm so that m is minimized. The information processing apparatus according to claim 5. 前記集合(N\R)を表す情報、又は、前記集合(N\R)を構成する前記部分集合S1〜Smを表す情報を、前記端末装置に送信する送信部をさらに備えることを特徴とする、請求項7に記載の情報処理装置。   The information processing apparatus further includes a transmission unit that transmits information representing the set (N \ R) or information representing the subsets S1 to Sm constituting the set (N \ R) to the terminal device. The information processing apparatus according to claim 7. さらに、前記セット鍵を用いてコンテンツ又はコンテンツ鍵を復号する復号部を備えることを特徴とする、請求項1に記載の情報処理装置。   The information processing apparatus according to claim 1, further comprising a decrypting unit that decrypts the content or the content key using the set key. 所定の2分木構造を構成する葉ノード1〜n(nは自然数)の1つ以上に対応付けられ,前記セット鍵を用いて暗号化されたコンテンツ又はコンテンツ鍵を受信する受信部をさらに備えることを特徴とする、請求項9に記載の情報処理装置。   It further includes a receiving unit that is associated with one or more leaf nodes 1 to n (n is a natural number) constituting a predetermined binary tree structure and that receives content encrypted using the set key or a content key. The information processing apparatus according to claim 9. 前記受信部が受信する前記暗号化されたコンテンツ又はコンテンツ鍵は,前記葉ノード1〜nの部分集合として定義された集合Siの中で,自身に対応付けられた前記葉ノードを含む集合Sの要素である前記葉ノードに対応付けられた1つ以上の情報処理装置が復号可能であることを特徴とする、請求項10に記載の情報処理装置。   The encrypted content or content key received by the receiving unit is included in the set S including the leaf node associated with itself in the set Si defined as a subset of the leaf nodes 1 to n. The information processing apparatus according to claim 10, wherein one or more information processing apparatuses associated with the leaf node that is an element can be decoded. 番号1〜n(nは自然数)が対応付けられたn個の葉ノードと、根ノードと、前記根ノード及び前記葉ノード以外の複数の中間ノードと、から構成される2分木構造に対し、ある中間ノードv又は根ノードvの下位に配置された複数の前記葉ノードの中で左端に位置する前記葉ノードの番号がlv、そして右端に位置する前記葉ノードの番号がrvと定義されており,
さらに,自然数i及びj(i≦j)に対して,集合(i→j)が{{i},{i,i+1},...,{i,i+1,...,j−1,j}}と表記され、集合(i←j)が{{j},{j,j−1},...,{j,j−1,...,i+1,i}}と表記されるものと仮定されており,
集合(1→n)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に左から右に向かって包含関係が大きくなるように配列され、前記根ノードに対応付けられた第1水平座標軸が設定され,
また,集合(2←n)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に右から左に向かって包含関係が大きくなるように配列され、前記根ノードに対応付けられた第2水平座標軸が設定されており,
さらに,前記中間ノードの各々について、
集合(lv→rv−1)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に左から右に向かって包含関係が大きくなるように配列され、ある中間ノードvに対応づけられた第3水平座標軸が設定され、
また,集合(lv+1←rv)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に右から左に向かって包含関係が大きくなるように配列され、ある中間ノードvに対応付けられた第4水平座標軸が設定された上で、
所定の整数kに対し,n(x−1)/k<(rv−lv+1)≦nx/kを満たす自然数xに応じて長さni/k(i=0,1,...x−1)を有する複数の有向枝を前記第1〜4水平座標軸上に配置して形成された仮有向グラフを処理する情報処理装置であって、
前記仮有向グラフを取得する仮有向グラフ取得部と;
前記仮有向グラフ取得部により取得された前記仮有向グラフを構成する複数の有向枝の中から、より長い前記有向枝を残して有向グラフを生成する有向グラフ生成部と;
前記有向グラフを構成する前記複数の有向枝の中で,連続する前記有向枝の最大数を決定する最長有向パス決定部と;
前記連続する有向枝の最大数を超えないように、前記有向グラフを構成する少なくとも1つの有向枝をより短い有向枝に置換して有向グラフを再構成する有向枝置換部と;
前記有向枝置換部により再構成された前記有向グラフに基づいてコンテンツ又はコンテンツ鍵を暗号化するためのセット鍵を生成する鍵生成部と;
を備えることを特徴とする、情報処理装置。
For a binary tree structure composed of n leaf nodes associated with numbers 1 to n (n is a natural number), a root node, and a plurality of intermediate nodes other than the root node and the leaf node Among the plurality of leaf nodes arranged below a certain intermediate node v or root node v, the number of the leaf node located at the left end is defined as lv, and the number of the leaf node located at the right end is defined as rv. And
Further, for natural numbers i and j (i ≦ j), the set (i → j) is {{i}, {i, i + 1},. . . , {I, i + 1,. . . , J−1, j}} and the set (i ← j) is {{j}, {j, j−1},. . . , {J, j-1,. . . , I + 1, i}},
The coordinate points associated with each subset included in the set (1 → n) are arranged on the horizontal coordinate axis so that the inclusion relationship increases from left to right, and the first corresponding to the root node. The horizontal coordinate axis is set,
The coordinate points associated with each subset included in the set (2 ← n) are arranged on the horizontal coordinate axis so that the inclusion relation increases from right to left, and is associated with the root node. The second horizontal coordinate axis is set,
Further, for each of the intermediate nodes,
The coordinate points associated with each subset included in the set (lv → rv−1) are arranged on the horizontal coordinate axis so that the inclusion relation increases from left to right, and is associated with a certain intermediate node v. The third horizontal coordinate axis is set,
Also, coordinate points associated with each subset included in the set (lv + 1 ← rv) are arranged on the horizontal coordinate axis so that the inclusion relation increases from right to left, and is associated with a certain intermediate node v. After the fourth horizontal coordinate axis is set,
For a given integer k, the length n i / k (i = 0, 1,... X depending on the natural number x satisfying n (x−1) / k <(rv−lv + 1) ≦ n x / k -1), an information processing apparatus for processing a temporary directed graph formed by arranging a plurality of directed branches on the first to fourth horizontal coordinate axes,
A temporary directed graph acquisition unit for acquiring the temporary directed graph;
A directed graph generation unit that generates a directed graph while leaving the longer directed branch out of a plurality of directed branches that constitute the temporary directed graph acquired by the temporary directed graph acquisition unit;
A longest directional path determination unit that determines the maximum number of consecutive directional branches among the plurality of directional branches constituting the directed graph;
A directional branch replacement unit configured to replace the at least one directional branch constituting the directed graph with a shorter directional branch so as not to exceed the maximum number of continuous directional branches, and to reconstruct the directed graph;
A key generation unit that generates a set key for encrypting content or a content key based on the directed graph reconstructed by the directed edge replacement unit;
An information processing apparatus comprising:
番号1〜n(nは自然数)が対応付けられたn個の葉ノードと、根ノードと、前記根ノード及び前記葉ノード以外の複数の中間ノードと、から構成される2分木構造を設定し、自然数i及びj(i≦j)に関して、集合(i→j)を{{i},{i,i+1},...,{i,i+1,...,j−1,j}}、集合(i←j)を{{j},{j,j−1},...,{j,j−1,...,i+1,i}}と定義して、ある中間ノードv又は根ノードvの下位に配置された複数の前記葉ノードのうち、左端に位置する前記葉ノードの番号をlv、右端に位置する前記葉ノードの番号をrvと設定する木構造設定部と;
集合(1→n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、前記根ノードに対応する第1水平座標軸と、
集合(2←n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、前記根ノードに対応する第2水平座標軸と、
前記中間ノードの各々について、
集合(lv→rv−1)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第3水平座標軸と、
集合(lv+1←rv)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第4水平座標軸と、を設定し、
前記第3水平座標軸上の右端に位置する座標点の右側と、前記第2及び第4水平座標軸上の左端に位置する座標点の左側と、にそれぞれ2個の仮座標点を配置し、
前記第1水平座標軸上の右端に位置する座標点を第1の仮座標点として設定し、当該第1の仮座標点の右側に第2の仮座標点を配置する座標軸設定部と;
所定の整数kを設定し、
(x−1)/k<(rv−lv+1)≦nx/kを満たす整数xを算定した上で、
整数i=0〜x−1の各々について、
i/kの長さを有する右方向を向いた一又は複数の有向枝を連結して前記第1及び第3水平座標軸上の最左にある座標点を始点とする有向パスを形成し、
i/kの長さを有する左方向を向いた一又は複数の有向枝を連結して前記第2及び第4水平座標軸上の最右にある座標点を始点とする有向パスを形成し、
前記第1〜4水平座標軸の各々について、前記各仮座標点を始点又は終点とする全ての前記有向枝を除外し、
前記第1〜4水平座標軸上の各座標点に到達する前記有向枝のうち、最長の有向枝以外の有向枝を除外することにより、
集合(1→n−1)、集合(2←n)、集合(lv+1←rv)、集合(lv→rv−1)に関する仮有向グラフをそれぞれ生成し、
前記集合(1→n−1)に関する仮有向グラフに対し、前記第1水平座標軸上にある前記第1の仮座標点を終点とする長さ1の有向枝を追加して、集合(1→n)に関する仮有向グラフを生成する仮有向グラフ生成部と;
連続する前記有向枝によって形成された有向パスの中から、前記有向パスを構成する有向枝数が最大となる最長の有向パスを決定する最長有向パス決定部と;
前記各有向パスの有向枝数が、前記最長の有向パスの有向枝数を超えないように、前記各有向パスを構成する有向枝を、より短い有向枝に置換して有向グラフを生成する有向グラフ生成部と;
を備えることを特徴とする、情報処理装置。
Sets a binary tree structure composed of n leaf nodes with numbers 1 to n (n is a natural number), a root node, and a plurality of intermediate nodes other than the root node and the leaf node Then, with respect to natural numbers i and j (i ≦ j), a set (i → j) is converted into {{i}, {i, i + 1},. . . , {I, i + 1,. . . , J−1, j}}, and the set (i ← j) is represented by {{j}, {j, j−1},. . . , {J, j-1,. . . , I + 1, i}}, and among the plurality of leaf nodes arranged below an intermediate node v or root node v, the number of the leaf node located at the left end is lv, and the number located at the right end is A tree structure setting unit for setting the leaf node number as rv;
The coordinate points associated with the respective subsets included in the set (1 → n) are arranged on the horizontal coordinate axis so that the inclusion relation increases from left to right, and the first corresponding to the root node. A horizontal coordinate axis,
The coordinate points associated with each subset included in the set (2 ← n) are arranged on the horizontal coordinate axis so that the inclusion relation increases from right to left, and the second corresponding to the root node. A horizontal coordinate axis,
For each of the intermediate nodes
Corresponding to a certain intermediate node v in which coordinate points associated with each subset included in the set (lv → rv−1) are arranged on the horizontal coordinate axis so that the inclusion relation increases from left to right. A third horizontal coordinate axis to
The coordinate points associated with the respective subsets included in the set (lv + 1 ← rv) are arranged in such a way that the coordinate points corresponding to a certain intermediate node v are arranged on the horizontal coordinate axis so that the inclusion relation increases from right to left. Set 4 horizontal coordinate axes,
Two temporary coordinate points are arranged on the right side of the coordinate point located at the right end on the third horizontal coordinate axis and the left side of the coordinate point located on the left end on the second and fourth horizontal coordinate axes,
A coordinate axis setting unit that sets a coordinate point located at the right end on the first horizontal coordinate axis as a first temporary coordinate point and arranges a second temporary coordinate point on the right side of the first temporary coordinate point;
Set a predetermined integer k
After calculating an integer x satisfying n (x−1) / k <(rv−lv + 1) ≦ n x / k ,
For each of the integers i = 0 to x−1,
A directional path starting from the leftmost coordinate point on the first and third horizontal coordinate axes is formed by connecting one or a plurality of directional branches facing the right direction having a length of ni / k. And
A directional path starting from the rightmost coordinate point on the second and fourth horizontal coordinate axes is formed by connecting one or a plurality of directional branches facing the left direction having a length of ni / k. And
For each of the first to fourth horizontal coordinate axes, excluding all the directional branches having the temporary coordinate points as start points or end points,
By excluding the directional branch other than the longest directional branch among the directional branches reaching the coordinate points on the first to fourth horizontal coordinate axes,
Generate temporary directed graphs for the set (1 → n−1), the set (2 ← n), the set (lv + 1 ← rv), and the set (lv → rv−1), respectively.
A directional branch having a length of 1 whose end point is the first temporary coordinate point on the first horizontal coordinate axis is added to the temporary directed graph relating to the set (1 → n−1), and the set (1 → a temporary digraph generation unit for generating a temporary digraph for n);
A longest directional path determination unit that determines a longest directional path that has the maximum number of directional branches constituting the directional path from among the directional paths formed by the continuous directional branches;
The directional branches constituting each directional path are replaced with shorter directional branches so that the number of directional branches of each directional path does not exceed the number of directional branches of the longest directional path. A directed graph generation unit for generating a directed graph by;
An information processing apparatus comprising:
前記有向グラフに基づいて、コンテンツ又はコンテンツ鍵を暗号化するためのセット鍵を生成する鍵生成部を備えることを特徴とする、請求項13に記載の情報処理装置。   The information processing apparatus according to claim 13, further comprising a key generation unit that generates a set key for encrypting content or a content key based on the directed graph. 前記鍵生成部は、
前記有向グラフにおけるある座標点に対応する部分集合Sの中間鍵t(S)の入力に応じて、当該座標点に対応する部分集合Sに対応する前記セット鍵k(S)と、当該座標点Sを始点とする前記有向枝の終点の座標点S1,S2,・・・,Skの中間鍵t(S1),t(S2),・・・,t(Sk)と、を出力することを特徴とする、請求項14に記載の情報処理装置。
The key generation unit
In response to the input of the intermediate key t (S) of the subset S corresponding to a certain coordinate point in the directed graph, the set key k (S) corresponding to the subset S corresponding to the coordinate point and the coordinate point S , Sk, the intermediate keys t (S1), t (S2),..., T (Sk) of the directional branch end points. The information processing apparatus according to claim 14, wherein the information processing apparatus is characterized.
前記鍵生成部は、
前記有向グラフにおけるある座標点に対応する部分集合Sのセット鍵k(S)の入力に応じて、当該座標点Sを始点とする前記有向枝の終点の座標点S1,S2,・・・,Skのセット鍵k(S1),k(S2),・・・,k(Sk)を出力することを特徴とする、請求項14に記載の情報処理装置。
The key generation unit
In response to the input of the set key k (S) of the subset S corresponding to a certain coordinate point in the directed graph, the coordinate points S1, S2,. The information processing apparatus according to claim 14, wherein the set key k (S1), k (S2), ..., k (Sk) of Sk is output.
有向グラフに基づいて、コンテンツ又はコンテンツ鍵を復号するためのセット鍵を生成する鍵生成部を備え、
前記有向グラフは、
番号1〜n(nは自然数)が対応付けられたn個の葉ノードと、根ノードと、前記根ノード及び前記葉ノード以外の複数の中間ノードと、から構成される2分木構造を設定し、自然数i及びj(i≦j)に関して、集合(i→j)を{{i},{i,i+1},...,{i,i+1,...,j−1,j}}、集合(i←j)を{{j},{j,j−1},...,{j,j−1,...,i+1,i}}と定義して、ある中間ノードv又は根ノードvの下位に配置された複数の前記葉ノードのうち、左端に位置する前記葉ノードの番号をlv、右端に位置する前記葉ノードの番号をrvと設定し、
集合(1→n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、前記根ノードに対応する第1水平座標軸と、
集合(2←n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、前記根ノードに対応する第2水平座標軸と、
前記中間ノードの各々について、
集合(lv→rv−1)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第3水平座標軸と、
集合(lv+1←rv)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第4水平座標軸と、を設定し、
前記第3水平座標軸上の右端に位置する座標点の右側と、前記第2及び第4水平座標軸上の左端に位置する座標点の左側と、にそれぞれ2個の仮座標点を配置し、
前記第1水平座標軸上の右端に位置する座標点を第1の仮座標点として設定し、当該第1の仮座標点の右側に第2の仮座標点を配置し、
所定の整数kを設定し、
(x−1)/k<(rv−lv+1)≦nx/kを満たす整数xを算定した上で、
整数i=0〜x−1の各々について、
i/kの長さを有する右方向を向いた一又は複数の有向枝を連結して前記第1及び第3水平座標軸上の最左にある座標点を始点とする有向パスを形成し、
i/kの長さを有する左方向を向いた一又は複数の有向枝を連結して前記第2及び第4水平座標軸上の最右にある座標点を始点とする有向パスを形成し、
前記第1〜4水平座標軸の各々について、前記各仮座標点を始点又は終点とする全ての前記有向枝を除外し、
前記第1〜4水平座標軸上の各座標点に到達する前記有向枝のうち、最長の有向枝以外の有向枝を除外することにより、
集合(1→n−1)、集合(2←n)、集合(lv+1←rv)、集合(lv→rv−1)に関する仮有向グラフをそれぞれ生成し、
前記集合(1→n−1)に関する仮有向グラフに対し、前記第1水平座標軸上にある前記第1の仮座標点を終点とする長さ1の有向枝を追加して、集合(1→n)に関する仮有向グラフを生成し、
連続する前記有向枝によって形成された有向パスの中から、前記有向パスを構成する有向枝数が最大となる最長の有向パスを決定し、
前記各有向パスの有向枝数が、前記最長の有向パスの有向枝数を超えないように、前記各有向パスを構成する有向枝を、より短い有向枝に置換して得られることを特徴とする、端末装置。
A key generation unit for generating a set key for decrypting the content or the content key based on the directed graph;
The directed graph is
Sets a binary tree structure composed of n leaf nodes with numbers 1 to n (n is a natural number), a root node, and a plurality of intermediate nodes other than the root node and the leaf node Then, with respect to natural numbers i and j (i ≦ j), a set (i → j) is represented as {{i}, {i, i + 1},. . . , {I, i + 1,. . . , J−1, j}}, and the set (i ← j) is represented by {{j}, {j, j−1},. . . , {J, j-1,. . . , I + 1, i}}, and among the plurality of leaf nodes arranged below a certain intermediate node v or root node v, the number of the leaf node located at the left end is lv, and the number located at the right end is lv Set the leaf node number to rv,
The coordinate points associated with the respective subsets included in the set (1 → n) are arranged on the horizontal coordinate axis so that the inclusion relation increases from left to right, and the first corresponding to the root node. A horizontal coordinate axis,
The coordinate points associated with each subset included in the set (2 ← n) are arranged on the horizontal coordinate axis so that the inclusion relation increases from right to left, and the second corresponding to the root node. A horizontal coordinate axis,
For each of the intermediate nodes
Corresponding to a certain intermediate node v in which coordinate points associated with each subset included in the set (lv → rv−1) are arranged on the horizontal coordinate axis so that the inclusion relation increases from left to right. A third horizontal coordinate axis to
The coordinate points associated with the respective subsets included in the set (lv + 1 ← rv) are arranged so that the inclusion relation increases from the right to the left on the horizontal coordinate axis. Set 4 horizontal coordinate axes,
Two temporary coordinate points are arranged on the right side of the coordinate point located at the right end on the third horizontal coordinate axis and the left side of the coordinate point located on the left end on the second and fourth horizontal coordinate axes,
A coordinate point located at the right end on the first horizontal coordinate axis is set as a first temporary coordinate point, and a second temporary coordinate point is arranged on the right side of the first temporary coordinate point;
Set a predetermined integer k
After calculating an integer x satisfying n (x−1) / k <(rv−lv + 1) ≦ n x / k ,
For each of the integers i = 0 to x−1,
A directional path starting from the leftmost coordinate point on the first and third horizontal coordinate axes is formed by connecting one or a plurality of directional branches facing the right direction having a length of ni / k. And
A directional path starting from the rightmost coordinate point on the second and fourth horizontal coordinate axes is formed by connecting one or a plurality of directional branches facing the left direction having a length of ni / k. And
For each of the first to fourth horizontal coordinate axes, excluding all the directional branches having the temporary coordinate points as start points or end points,
By excluding the directional branch other than the longest directional branch among the directional branches reaching the coordinate points on the first to fourth horizontal coordinate axes,
Generate temporary directed graphs for the set (1 → n−1), the set (2 ← n), the set (lv + 1 ← rv), and the set (lv → rv−1), respectively.
A directional branch having a length of 1 with the first temporary coordinate point on the first horizontal coordinate axis as an end point is added to the temporary directed graph related to the set (1 → n−1), and the set (1 → generate a temporary directed graph for n),
Determining the longest directional path in which the number of directional branches constituting the directional path is the largest among the directional paths formed by successive directional branches;
The directional branch constituting each directional path is replaced with a shorter directional branch so that the number of directional branches of each directional path does not exceed the number of directional branches of the longest directional path. A terminal device obtained by
前記鍵生成部は、
前記有向グラフにおけるある座標点に対応する部分集合Sの中間鍵t(S)の入力に応じて、当該座標点に対応する部分集合Sに対応する前記セット鍵k(S)と、当該座標点を始点とする前記有向枝の終点の座標点に対応する部分集合S1,S2,・・・,Skの中間鍵t(S1),t(S2),・・・,t(Sk)と、を出力することを特徴とする、請求項17に記載の端末装置。
The key generation unit
In response to the input of the intermediate key t (S) of the subset S corresponding to a certain coordinate point in the directed graph, the set key k (S) corresponding to the subset S corresponding to the coordinate point and the coordinate point are The intermediate keys t (S1), t (S2),..., T (Sk) of the subsets S1, S2,. The terminal device according to claim 17, wherein the terminal device outputs the terminal device.
前記鍵生成部は、
前記有向グラフにおけるある座標点に対応する部分集合Sのセット鍵k(S)の入力に応じて、当該座標点Sを始点とする前記有向枝の終点の座標点S1,S2,・・・,Skのセット鍵k(S1),k(S2),・・・,k(Sk)を出力することを特徴とする、請求項17に記載の端末装置。
The key generation unit
In response to the input of the set key k (S) of the subset S corresponding to a certain coordinate point in the directed graph, the coordinate points S1, S2,. The terminal device according to claim 17, wherein the set key k (S1), k (S2), ..., k (Sk) of Sk is output.
前記セット鍵を用いて、前記暗号化されたコンテンツ鍵を復号し、当該復号されたコンテンツ鍵を用いて、前記暗号化されたコンテンツを復号する復号部をさらに備えることを特徴とする、請求項18に記載の端末装置。   The decryption unit further includes a decryption unit that decrypts the encrypted content key using the set key and decrypts the encrypted content using the decrypted content key. The terminal device according to 18. 前記木構造の葉ノード1〜nの部分集合をSiと定義したときに、
前記セット鍵又は前記コンテンツ鍵で暗号化された前記コンテンツの復号を許可する前記端末装置の集合(N\R)が決定され、前記集合(N\R)=S1∪S2∪・・・∪Smを満たすm個の部分集合S1〜Smが決定され、前記集合(N\R)を表す情報、又は、前記集合(N\R)を構成する前記部分集合S1〜Smを表す情報を受信した場合に、
前記端末装置は、前記受信した情報に基づいて、当該端末装置が前記部分集合S1〜Smのいずれかに属しているか否か判断し、当該判断結果に基づいて、前記暗号化されたコンテンツの復号が許可されているか否かを判断する判断部をさらに備え、
前記復号部は、
前記端末装置が前記部分集合S1〜Smのいずれかに属していると判断された場合に、当該端末装置が属する前記部分集合に対応した前記セット鍵を用いて、前記コンテンツ又はコンテンツ鍵を復号することを特徴とする、請求項20に記載の端末装置。
When a subset of leaf nodes 1 to n of the tree structure is defined as Si,
A set (N \ R) of the terminal devices that permits the decryption of the content encrypted with the set key or the content key is determined, and the set (N \ R) = S1∪S2∪ ... ∪Sm When m subsets S1 to Sm satisfying the above are determined and information representing the set (N \ R) or information representing the subsets S1 to Sm constituting the set (N \ R) is received In addition,
The terminal device determines whether the terminal device belongs to any one of the subsets S1 to Sm based on the received information, and decrypts the encrypted content based on the determination result. A determination unit for determining whether or not is permitted,
The decoding unit
When it is determined that the terminal device belongs to any one of the subsets S1 to Sm, the content or the content key is decrypted using the set key corresponding to the subset to which the terminal device belongs. The terminal device according to claim 20, wherein:
複数の有向枝により構成される仮有向グラフに対し、当該仮有向グラフを構成する前記複数の有向枝の中からより長い前記有向枝を残した上で、当該残した有向枝の中から少なくとも1つの前記有向枝をより短い有向枝に置換することにより生成された有向グラフを取得する有向グラフ取得ステップと;
前記有向グラフ取得部により取得された前記有向グラフに基づいてコンテンツ又はコンテンツ鍵を暗号化又は復号するためのセット鍵を生成する鍵生成ステップと;
を含むことを特徴とする、情報処理方法。
For a temporary directed graph composed of a plurality of directed edges, after leaving the longer directed branch from among the plurality of directed branches constituting the temporary directed graph, from among the remaining directed branches A directed graph acquisition step of acquiring a directed graph generated by replacing at least one of the directed edges with a shorter directed edge;
A key generation step of generating a set key for encrypting or decrypting the content or the content key based on the directed graph acquired by the directed graph acquisition unit;
An information processing method comprising:
番号1〜n(nは自然数)が対応付けられたn個の葉ノードと、根ノードと、前記根ノード及び前記葉ノード以外の複数の中間ノードと、から構成される2分木構造に対し、ある中間ノードv又は根ノードvの下位に配置された複数の前記葉ノードの中で左端に位置する前記葉ノードの番号がlv、そして右端に位置する前記葉ノードの番号がrvと定義されており,
さらに,自然数i及びj(i≦j)に対して,集合(i→j)が{{i},{i,i+1},...,{i,i+1,...,j−1,j}}と表記され、集合(i←j)が{{j},{j,j−1},...,{j,j−1,...,i+1,i}}と表記されるものと仮定されており,
集合(1→n)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に左から右に向かって包含関係が大きくなるように配列され、前記根ノードに対応付けられた第1水平座標軸が設定され,
また,集合(2←n)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に右から左に向かって包含関係が大きくなるように配列され、前記根ノードに対応付けられた第2水平座標軸が設定されており,
さらに,前記中間ノードの各々について、
集合(lv→rv−1)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に左から右に向かって包含関係が大きくなるように配列され、ある中間ノードvに対応づけられた第3水平座標軸が設定され、
また,集合(lv+1←rv)に含まれる各部分集合に対応付けられた座標点が水平座標軸上に右から左に向かって包含関係が大きくなるように配列され、ある中間ノードvに対応付けられた第4水平座標軸が設定された上で、
所定の整数kに対し,n(x−1)/k<(rv−lv+1)≦nx/kを満たす自然数xに応じて長さni/k(i=0,1,...x−1)を有する複数の有向枝を前記第1〜4水平座標軸上に配置して形成された仮有向グラフを処理する情報処理方法であって、
前記仮有向グラフを取得する仮有向グラフ取得ステップと;
前記仮有向グラフ取得部により取得された前記仮有向グラフを構成する複数の有向枝の中から、より長い前記有向枝を残して有向グラフを生成する有向グラフ生成ステップと;
前記有向グラフを構成する前記複数の有向枝の中で,連続する前記有向枝の最大数を決定する最長有向パス決定ステップと;
前記連続する有向枝の最大数を超えないように、前記有向グラフを構成する少なくとも1つの有向枝をより短い有向枝に置換して有向グラフを再構成する有向枝置換ステップと;
前記有向枝置換部により再構成された前記有向グラフに基づいてコンテンツ又はコンテンツ鍵を暗号化するためのセット鍵を生成する鍵生成ステップと;
を含むことを特徴とする、情報処理方法。
For a binary tree structure composed of n leaf nodes associated with numbers 1 to n (n is a natural number), a root node, and a plurality of intermediate nodes other than the root node and the leaf node Among the plurality of leaf nodes arranged below a certain intermediate node v or root node v, the number of the leaf node located at the left end is defined as lv, and the number of the leaf node located at the right end is defined as rv. And
Further, for natural numbers i and j (i ≦ j), the set (i → j) is {{i}, {i, i + 1},. . . , {I, i + 1,. . . , J−1, j}} and the set (i ← j) is {{j}, {j, j−1},. . . , {J, j-1,. . . , I + 1, i}},
The coordinate points associated with each subset included in the set (1 → n) are arranged on the horizontal coordinate axis so that the inclusion relationship increases from left to right, and the first corresponding to the root node. The horizontal coordinate axis is set,
The coordinate points associated with each subset included in the set (2 ← n) are arranged on the horizontal coordinate axis so that the inclusion relation increases from right to left, and is associated with the root node. The second horizontal coordinate axis is set,
Further, for each of the intermediate nodes,
The coordinate points associated with each subset included in the set (lv → rv−1) are arranged on the horizontal coordinate axis so that the inclusion relation increases from left to right, and is associated with a certain intermediate node v. The third horizontal coordinate axis is set,
Also, coordinate points associated with each subset included in the set (lv + 1 ← rv) are arranged on the horizontal coordinate axis so that the inclusion relation increases from right to left, and is associated with a certain intermediate node v. After the fourth horizontal coordinate axis is set,
For a given integer k, the length n i / k (i = 0, 1,... X depending on the natural number x satisfying n (x−1) / k <(rv−lv + 1) ≦ n x / k -1) is an information processing method for processing a temporary directed graph formed by arranging a plurality of directed branches on the first to fourth horizontal coordinate axes,
A temporary directed graph acquisition step of acquiring the temporary directed graph;
A directed graph generation step of generating a directed graph while leaving the longer directed branch out of a plurality of directed branches constituting the temporary directed graph acquired by the temporary directed graph acquisition unit;
A longest directional path determining step for determining a maximum number of consecutive directional branches among the plurality of directional branches constituting the directed graph;
A directed edge replacement step of reconstructing the directed graph by replacing at least one directed edge constituting the directed graph with a shorter directed edge so as not to exceed the maximum number of consecutive directed edges;
A key generation step of generating a set key for encrypting content or a content key based on the directed graph reconstructed by the directed edge replacement unit;
An information processing method comprising:
番号1〜n(nは自然数)が対応付けられたn個の葉ノードと、根ノードと、前記根ノード及び前記葉ノード以外の複数の中間ノードと、から構成される2分木構造を設定し、自然数i及びj(i≦j)に関して、集合(i→j)を{{i},{i,i+1},...,{i,i+1,...,j−1,j}}、集合(i←j)を{{j},{j,j−1},...,{j,j−1,...,i+1,i}}と定義して、ある中間ノードv又は根ノードvの下位に配置された複数の前記葉ノードのうち、左端に位置する前記葉ノードの番号をlv、右端に位置する前記葉ノードの番号をrvと設定する木構造設定ステップと;
集合(1→n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、前記根ノードに対応する第1水平座標軸と、
集合(2←n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、前記根ノードに対応する第2水平座標軸と、
前記中間ノードの各々について、
集合(lv→rv−1)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第3水平座標軸と、
集合(lv+1←rv)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第4水平座標軸と、を設定し、
前記第3水平座標軸上の右端に位置する座標点の右側と、前記第2及び第4水平座標軸上の左端に位置する座標点の左側と、にそれぞれ2個の仮座標点を配置し、
前記第1水平座標軸上の右端に位置する座標点を第1の仮座標点として設定し、当該第1の仮座標点の右側に第2の仮座標点を配置する座標軸設定ステップと;
所定の整数kを設定し、
(x−1)/k<(rv−lv+1)≦nx/kを満たす整数xを算定した上で、
整数i=0〜x−1の各々について、
i/kの長さを有する右方向を向いた一又は複数の有向枝を連結して前記第1及び第3水平座標軸上の最左にある座標点を始点とする有向パスを形成し、
i/kの長さを有する左方向を向いた一又は複数の有向枝を連結して前記第2及び第4水平座標軸上の最右にある座標点を始点とする有向パスを形成し、
前記第1〜4水平座標軸の各々について、前記各仮座標点を始点又は終点とする全ての前記有向枝を除外し、
前記第1〜4水平座標軸上の各座標点に到達する前記有向枝のうち、最長の有向枝以外の有向枝を除外することにより、
集合(1→n−1)、集合(2←n)、集合(lv+1←rv)、集合(lv→rv−1)に関する仮有向グラフをそれぞれ生成し、
前記集合(1→n−1)に関する仮有向グラフに対し、前記第1水平座標軸上にある前記第1の仮座標点を終点とする長さ1の有向枝を追加して、集合(1→n)に関する仮有向グラフを生成する仮有向グラフ生成ステップと;
連続する前記有向枝によって形成された有向パスの中から、前記有向パスを構成する有向枝数が最大となる最長の有向パスを決定する最長有向パス決定ステップと;
前記各有向パスの有向枝数が、前記最長の有向パスの有向枝数を超えないように、前記各有向パスを構成する有向枝を、より短い有向枝に置換して有向グラフを生成する有向グラフ生成ステップと;
を含むことを特徴とする、情報処理方法。
Sets a binary tree structure composed of n leaf nodes with numbers 1 to n (n is a natural number), a root node, and a plurality of intermediate nodes other than the root node and the leaf node Then, with respect to natural numbers i and j (i ≦ j), a set (i → j) is represented as {{i}, {i, i + 1},. . . , {I, i + 1,. . . , J−1, j}}, and the set (i ← j) is represented by {{j}, {j, j−1},. . . , {J, j-1,. . . , I + 1, i}}, and among the plurality of leaf nodes arranged below an intermediate node v or root node v, the number of the leaf node located at the left end is lv, and the number located at the right end is A tree structure setting step for setting the leaf node number as rv;
The coordinate points associated with the respective subsets included in the set (1 → n) are arranged on the horizontal coordinate axis so that the inclusion relation increases from left to right, and the first corresponding to the root node. A horizontal coordinate axis,
The coordinate points associated with each subset included in the set (2 ← n) are arranged on the horizontal coordinate axis so that the inclusion relation increases from right to left, and the second corresponding to the root node. A horizontal coordinate axis,
For each of the intermediate nodes
Corresponding to a certain intermediate node v in which coordinate points associated with each subset included in the set (lv → rv−1) are arranged on the horizontal coordinate axis so that the inclusion relation increases from left to right. A third horizontal coordinate axis to
The coordinate points associated with the respective subsets included in the set (lv + 1 ← rv) are arranged so that the inclusion relation increases from the right to the left on the horizontal coordinate axis. Set 4 horizontal coordinate axes,
Two temporary coordinate points are arranged on the right side of the coordinate point located at the right end on the third horizontal coordinate axis and the left side of the coordinate point located on the left end on the second and fourth horizontal coordinate axes,
A coordinate axis setting step in which a coordinate point located at the right end on the first horizontal coordinate axis is set as a first temporary coordinate point, and a second temporary coordinate point is arranged on the right side of the first temporary coordinate point;
Set a predetermined integer k
After calculating an integer x satisfying n (x−1) / k <(rv−lv + 1) ≦ n x / k ,
For each of the integers i = 0 to x−1,
A directional path starting from the leftmost coordinate point on the first and third horizontal coordinate axes is formed by connecting one or a plurality of directional branches facing the right direction having a length of ni / k. And
A directional path starting from the rightmost coordinate point on the second and fourth horizontal coordinate axes is formed by connecting one or a plurality of directional branches facing the left direction having a length of ni / k. And
For each of the first to fourth horizontal coordinate axes, excluding all the directional branches having the temporary coordinate points as start points or end points,
By excluding the directional branch other than the longest directional branch among the directional branches reaching the coordinate points on the first to fourth horizontal coordinate axes,
Generate temporary directed graphs for the set (1 → n−1), the set (2 ← n), the set (lv + 1 ← rv), and the set (lv → rv−1), respectively.
A directional branch having a length of 1 whose end point is the first temporary coordinate point on the first horizontal coordinate axis is added to the temporary directed graph relating to the set (1 → n−1), and the set (1 → a temporary digraph generation step for generating a temporary digraph for n);
A longest directional path determination step for determining a longest directional path in which the number of directional branches constituting the directional path is maximum from among the directional paths formed by the continuous directional branches;
The directional branches constituting each directional path are replaced with shorter directional branches so that the number of directional branches of each directional path does not exceed the number of directional branches of the longest directional path. A directed graph generation step for generating a directed graph by;
An information processing method comprising:
有向グラフに基づいて、コンテンツ又はコンテンツ鍵を復号するためのセット鍵を生成する鍵生成ステップを含み、
前記有向グラフは、
番号1〜n(nは自然数)が対応付けられたn個の葉ノードと、根ノードと、前記根ノード及び前記葉ノード以外の複数の中間ノードと、から構成される2分木構造を設定し、自然数i及びj(i≦j)に関して、集合(i→j)を{{i},{i,i+1},...,{i,i+1,...,j−1,j}}、集合(i←j)を{{j},{j,j−1},...,{j,j−1,...,i+1,i}}と定義して、ある中間ノードv又は根ノードvの下位に配置された複数の前記葉ノードのうち、左端に位置する前記葉ノードの番号をlv、右端に位置する前記葉ノードの番号をrvと設定し、
集合(1→n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、前記根ノードに対応する第1水平座標軸と、
集合(2←n)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、前記根ノードに対応する第2水平座標軸と、
前記中間ノードの各々について、
集合(lv→rv−1)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に左から右に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第3水平座標軸と、
集合(lv+1←rv)に含まれる各部分集合に対応付けられた座標点が、水平座標軸上に右から左に向かって包含関係が大きくなるように配列された、ある中間ノードvに対応する第4水平座標軸と、を設定し、
前記第3水平座標軸上の右端に位置する座標点の右側と、前記第2及び第4水平座標軸上の左端に位置する座標点の左側と、にそれぞれ2個の仮座標点を配置し、
前記第1水平座標軸上の右端に位置する座標点を第1の仮座標点として設定し、当該第1の仮座標点の右側に第2の仮座標点を配置し、
所定の整数kを設定し、
(x−1)/k<(rv−lv+1)≦nx/kを満たす整数xを算定した上で、
整数i=0〜x−1の各々について、
i/kの長さを有する右方向を向いた一又は複数の有向枝を連結して前記第1及び第3水平座標軸上の最左にある座標点を始点とする有向パスを形成し、
i/kの長さを有する左方向を向いた一又は複数の有向枝を連結して前記第2及び第4水平座標軸上の最右にある座標点を始点とする有向パスを形成し、
前記第1〜4水平座標軸の各々について、前記各仮座標点を始点又は終点とする全ての前記有向枝を除外し、
前記第1〜4水平座標軸上の各座標点に到達する前記有向枝のうち、最長の有向枝以外の有向枝を除外することにより、
集合(1→n−1)、集合(2←n)、集合(lv+1←rv)、集合(lv→rv−1)に関する仮有向グラフをそれぞれ生成し、
前記集合(1→n−1)に関する仮有向グラフに対し、前記第1水平座標軸上にある前記第1の仮座標点を終点とする長さ1の有向枝を追加して、集合(1→n)に関する仮有向グラフを生成し、
連続する前記有向枝によって形成された有向パスの中から、前記有向パスを構成する有向枝数が最大となる最長の有向パスを決定し、
前記各有向パスの有向枝数が、前記最長の有向パスの有向枝数を超えないように、前記各有向パスを構成する有向枝を、より短い有向枝に置換して得られることを特徴とする、鍵生成方法。
A key generation step of generating a set key for decrypting the content or the content key based on the directed graph;
The directed graph is
Sets a binary tree structure composed of n leaf nodes with numbers 1 to n (n is a natural number), a root node, and a plurality of intermediate nodes other than the root node and the leaf node Then, with respect to natural numbers i and j (i ≦ j), a set (i → j) is represented as {{i}, {i, i + 1},. . . , {I, i + 1,. . . , J−1, j}}, and the set (i ← j) is represented by {{j}, {j, j−1},. . . , {J, j-1,. . . , I + 1, i}}, and among the plurality of leaf nodes arranged below a certain intermediate node v or root node v, the number of the leaf node located at the left end is lv, and the number located at the right end is lv Set the leaf node number to rv,
The coordinate points associated with the respective subsets included in the set (1 → n) are arranged on the horizontal coordinate axis so that the inclusion relation increases from left to right, and the first corresponding to the root node. A horizontal coordinate axis,
The coordinate points associated with each subset included in the set (2 ← n) are arranged on the horizontal coordinate axis so that the inclusion relation increases from right to left, and the second corresponding to the root node. A horizontal coordinate axis,
For each of the intermediate nodes
Corresponding to a certain intermediate node v in which coordinate points associated with each subset included in the set (lv → rv−1) are arranged on the horizontal coordinate axis so that the inclusion relation increases from left to right. A third horizontal coordinate axis to
The coordinate points associated with the respective subsets included in the set (lv + 1 ← rv) are arranged so that the inclusion relation increases from the right to the left on the horizontal coordinate axis. Set 4 horizontal coordinate axes,
Two temporary coordinate points are arranged on the right side of the coordinate point located at the right end on the third horizontal coordinate axis and the left side of the coordinate point located on the left end on the second and fourth horizontal coordinate axes,
A coordinate point located at the right end on the first horizontal coordinate axis is set as a first temporary coordinate point, and a second temporary coordinate point is arranged on the right side of the first temporary coordinate point;
Set a predetermined integer k
After calculating an integer x satisfying n (x−1) / k <(rv−lv + 1) ≦ n x / k ,
For each of the integers i = 0 to x−1,
A directional path starting from the leftmost coordinate point on the first and third horizontal coordinate axes is formed by connecting one or a plurality of directional branches facing the right direction having a length of ni / k. And
A directional path starting from the rightmost coordinate point on the second and fourth horizontal coordinate axes is formed by connecting one or a plurality of directional branches facing the left direction having a length of ni / k. And
For each of the first to fourth horizontal coordinate axes, excluding all the directional branches having the temporary coordinate points as start points or end points,
By excluding the directional branch other than the longest directional branch among the directional branches reaching the coordinate points on the first to fourth horizontal coordinate axes,
Generate temporary directed graphs for the set (1 → n−1), the set (2 ← n), the set (lv + 1 ← rv), and the set (lv → rv−1), respectively.
A directional branch having a length of 1 with the first temporary coordinate point on the first horizontal coordinate axis as an end point is added to the temporary directed graph related to the set (1 → n−1), and the set (1 → generate a temporary directed graph for n),
Determining the longest directional path in which the number of directional branches constituting the directional path is the largest among the directional paths formed by successive directional branches;
The directional branches constituting each directional path are replaced with shorter directional branches so that the number of directional branches of each directional path does not exceed the number of directional branches of the longest directional path. A key generation method characterized in that the key generation method is obtained.
JP2006310226A 2006-11-16 2006-11-16 Information processor, terminal device, information processing method, and key generation method Pending JP2008131079A (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2006310226A JP2008131079A (en) 2006-11-16 2006-11-16 Information processor, terminal device, information processing method, and key generation method
KR1020097009871A KR20090089313A (en) 2006-11-16 2007-10-03 Information processing device
US12/515,298 US8300816B2 (en) 2006-11-16 2007-10-03 Information processing unit, terminal unit, information processing method, key generation method and program
EP07829126A EP2086160A1 (en) 2006-11-16 2007-10-03 Information processing device
PCT/JP2007/069387 WO2008059672A1 (en) 2006-11-16 2007-10-03 Information processing device
CN200780042720.2A CN101536401B (en) 2006-11-16 2007-10-03 Information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006310226A JP2008131079A (en) 2006-11-16 2006-11-16 Information processor, terminal device, information processing method, and key generation method

Publications (2)

Publication Number Publication Date
JP2008131079A true JP2008131079A (en) 2008-06-05
JP2008131079A5 JP2008131079A5 (en) 2009-12-10

Family

ID=39556542

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006310226A Pending JP2008131079A (en) 2006-11-16 2006-11-16 Information processor, terminal device, information processing method, and key generation method

Country Status (1)

Country Link
JP (1) JP2008131079A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008131072A (en) * 2006-11-16 2008-06-05 Sony Corp Information processor, terminal device, information processing method, and key generation method
US8300816B2 (en) 2006-11-16 2012-10-30 Sony Corporation Information processing unit, terminal unit, information processing method, key generation method and program

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008131072A (en) * 2006-11-16 2008-06-05 Sony Corp Information processor, terminal device, information processing method, and key generation method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008131072A (en) * 2006-11-16 2008-06-05 Sony Corp Information processor, terminal device, information processing method, and key generation method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008131072A (en) * 2006-11-16 2008-06-05 Sony Corp Information processor, terminal device, information processing method, and key generation method
US8300816B2 (en) 2006-11-16 2012-10-30 Sony Corporation Information processing unit, terminal unit, information processing method, key generation method and program

Similar Documents

Publication Publication Date Title
US20100086133A1 (en) Key Providing System, Key Providing Apparatus, Terminal Device, Key Providing Method, and Key Generation Method
US20070133806A1 (en) Information processing method, decryption method, information processing device, and computer program
US8300814B2 (en) Information processing unit, terminal unit, information processing method, key generation method and program
JP5365072B2 (en) KEY GENERATION DEVICE, ENCRYPTION DEVICE, RECEPTION DEVICE, KEY GENERATION METHOD, ENCRYPTION METHOD, KEY PROCESSING METHOD, AND PROGRAM
US8300816B2 (en) Information processing unit, terminal unit, information processing method, key generation method and program
JP2006086568A (en) Information processing method, decryption processing method, information processing apparatus, and computer program
JP2008131076A (en) Information processor, terminal device, information processing method, key generation method, and program
JP2006074392A (en) Information encryption device and its control method, computer program and computer readable storage medium
JP2008131072A (en) Information processor, terminal device, information processing method, and key generation method
KR20090127716A (en) Method of tracing device keys for broadcast encryption
JP5286748B2 (en) Information processing apparatus, key setting method, and program
JP2008131079A (en) Information processor, terminal device, information processing method, and key generation method
JP4161859B2 (en) Information processing apparatus, information recording medium, information processing method, and computer program
JP4561074B2 (en) Information processing apparatus, information processing method, and computer program
US8150040B2 (en) Key providing system, terminal device, and information processing method
JP2007189597A (en) Encryption device, encryption method, decoding device, and decoding method
JP4635459B2 (en) Information processing method, decoding processing method, information processing apparatus, and computer program
JP2008131078A (en) Information processor, terminal device, information processing method, and key generation method
JP2005191805A (en) Encryption message distribution method, information processing device, information processing method, and computer program
JP2007020025A (en) Information processing device, information processing method, and computer program
JP2005252916A (en) Information processing method and apparatus, decoding processing method, and computer program
JP4576824B2 (en) Information processing apparatus and information processing method
KR100879083B1 (en) Method for Broadcast Encryption Using 2 Subset Difference Scheme
WO2009157050A1 (en) Information processing device and program

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091023

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091023

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120306

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120626