JP2005012280A - データ処理方法、そのプログラムおよびその装置と処理装置 - Google Patents
データ処理方法、そのプログラムおよびその装置と処理装置 Download PDFInfo
- Publication number
- JP2005012280A JP2005012280A JP2003171259A JP2003171259A JP2005012280A JP 2005012280 A JP2005012280 A JP 2005012280A JP 2003171259 A JP2003171259 A JP 2003171259A JP 2003171259 A JP2003171259 A JP 2003171259A JP 2005012280 A JP2005012280 A JP 2005012280A
- Authority
- JP
- Japan
- Prior art keywords
- data
- processing device
- decryption
- sets
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】複数の復号用データを用いて暗号データを復号する処理装置が保持する復号用データの数を削減できるデータ処理方法を提供する。
【解決手段】受信装置u1〜u16の各々が複数の集合の要素となるように集合を規定し、複数の集合のそれぞれについて、当該集合に割り当てた素数データpと非公開データKとを基に、当該集合の要素となる受信装置が暗号データの復号に用いるラベルデータを生成する。また、受信装置を要素とする上記複数の集合に割り当てられた素数データと非公開データKとを基に、当該複数の集合についてそれぞれ生成された複数の上記ラベルデータを当該受信装置が素数データpを基に生成するための単数のマスタラベルデータMLmを生成し、これを受信装置にセキュアな状態に提供する。
【選択図】 図5
【解決手段】受信装置u1〜u16の各々が複数の集合の要素となるように集合を規定し、複数の集合のそれぞれについて、当該集合に割り当てた素数データpと非公開データKとを基に、当該集合の要素となる受信装置が暗号データの復号に用いるラベルデータを生成する。また、受信装置を要素とする上記複数の集合に割り当てられた素数データと非公開データKとを基に、当該複数の集合についてそれぞれ生成された複数の上記ラベルデータを当該受信装置が素数データpを基に生成するための単数のマスタラベルデータMLmを生成し、これを受信装置にセキュアな状態に提供する。
【選択図】 図5
Description
【0001】
【発明の属する技術分野】
本発明は、暗号データの復号に係わる処理を行うデータ処理方法、そのプログラムおよびその装置と処理装置に関する。
【0002】
【従来の技術】
例えば、管理装置が、複数の受信装置に暗号データを送信し、リボークしない受信装置でのみ、当該暗号データを復号させる場合がある。
このような方式に、下記非特許文献1,2に記載されているSD(Subset Difference) がある。
このSD方式では、2分木によって構成されるツリーの各リーフに受信装置を対応付け、前記ツリーのルートまたはノードと、これらから分岐したノードまたはリーフの2つの要素からなる組を規定する。そして、各組について、当該組の要素のうちルートに近い一方の要素から分岐したリーフから、他方の要素から分岐したリーフを除いたリーフに対応付けられた受信装置を要素とする複数の集合を規定する。
これにより、各受信装置は、各々要素が異なる複数の集合の要素となる。
【0003】
また、管理装置が、各集合にラベルデータを割り当て、各受信装置に、当該受信装置が要素となる集合に割り当てたラベルデータのうち、所定のラベルデータをセキュアな状態で提供する。
そして、管理装置が、リボークしない受信装置のみを要素とする単数または複数の集合を特定し、当該集合に割り当てたそれぞれラベルデータから取得した鍵データを基に、コンテンツデータをそれぞれ暗号化して単数または複数の暗号データを生成し、これを全ての受信装置に送信すると共に、上記特定した集合を受信装置に指定する。
受信装置は、指定を受けた集合の要素である場合に、当該集合に対応するラベルデータを基に鍵データを生成し、管理装置から受信した暗号データを、当該鍵データを用いて復号する。
【0004】
【非特許文献1】
D.Halevy and A Shamir, ”The LCD broadcast encryption scheme”, CRYPTO 2002, Lecture Notes in Computer Science,vol.2442. pp.47−60,2002
【非特許文献2】
D.Naor,M.Naor and J.Lotspiech,”Revocation and tracing schemes for stateless receivers”, CRYPTO 2001.Lecture Notes in Computer Science.vol 2139.pp.41−62,2001.
【0005】
【発明が解決しようとする課題】
上述した従来のSD方式では、後述するように、各受信装置について、当該受信装置が割り当てられたツリー上のリーフとルートとの間に位置するルートおよび各ノードについて、当該ルートおよびノードと、これらに対してリーフ側に位置すると共に上記パス上のノードから当該パス以外の方向に直接分岐したノードまたはリーフとの組によって規定される集合に割り当てたラベルデータを、当該受信装置にセキュアな状態で提供して保持させる。受信装置は、上記規定した組の集合のうち、ラベルデータを受けていない集合のラベルデータを、上記提供を受けたラベルデータを基に演算を行って取得する。
ここで、受信装置の数をNとした場合に、管理装置が各受信装置に提供して保持させるラベルデータの数は、下記式(6)で示される。
【0006】
【数6】
【0007】
ところで、上述した従来のSD方式では、各受信装置に保持させるラベルデータの数(データ量)をさらに削減したいという要請がある。
上記非特許文献1に記載されたLSD方式についても、同様な要請がある。
また、上述した例の他に、暗号データの復号に複数の復号用データが用いられる場合に、復号を行う処理装置が保持する復号用データの数を削減したいという要請がある。
【0008】
本発明はかかる事情に鑑みてなされたものであり、複数の復号用データを用いて暗号データを復号する処理装置が保持する復号用データの数を削減できるデータ処理方法、そのプログラムおよびその装置と処理装置を提供することを目的とする。
また、本発明は、複数の処理装置に提供した暗号データを、指定した前記処理装置に復号用データを基に復号させる場合に、各処理装置に保持させる復号用データの数を削減できるデータ処理方法、そのプログラムおよびその装置と処理装置を提供することを目的とする。
【0009】
【課題を解決するための手段】
上述した従来技術の問題点を解決し、上述した目的を達成するために、第1の発明のデータ処理方法は、暗号データの復号に処理装置で用いられる復号用データを生成するデータ処理方法であって、前記暗号データの復号に前記処理装置で用いられる異なる複数の第1の復号用データの各々を、前記複数の第1の復号用データのそれぞれに割当てられ前記処理装置に公開された異なる複数の固有データのうち当該第1の復号用データに割当てられた前記固有データと、所定の非公開データとを基に生成する第1の工程と、前記第1の工程で生成した前記複数の第1の復号用データを前記処理装置が前記固有データを基に生成するために用いられ、前記処理装置にセキュアな状態で提供される単数の第2の復号用データを、前記非公開データと前記固有データとを基に生成する第2の工程とを有する。
【0010】
第1の発明のデータ処理方法の作用は以下のようになる。
先ず、第1の工程において、前記暗号データの復号に前記処理装置で用いられる異なる複数の第1の復号用データの各々を、前記複数の第1の復号用データのそれぞれに割当てられ前記処理装置に公開された異なる複数の固有データのうち当該第1の復号用データに割当てられた前記固有データと、所定の非公開データとを基に生成する。
次に、第2の工程において、前記第1の工程で生成した前記複数の第1の復号用データを前記処理装置が前記固有データを基に生成するために用いられ、前記処理装置にセキュアな状態で提供される単数の第2の復号用データを、前記非公開データと前記固有データとを基に生成する。
【0011】
第2の発明のデータ処理方法は、複数の処理装置のうち同じ集合の要素となる前記処理装置に対して共通の復号用データを基に暗号データを復号させるデータ処理方法であって、前記処理装置の各々が複数の前記集合の要素となるように、相互に異なる前記処理装置を要素とする複数の前記集合を規定した場合に、前記複数の処理装置の各々について、当該処理装置が要素となる複数の前記集合のうち、全部または一部の複数の前記集合に対して、前記処理装置に公開される相互に異なる固有データを割り当てる第1の工程と、前記複数の集合のそれぞれについて、当該集合に前記第1の工程で割り当てた前記固有データと非公開データとを基に、当該集合の要素となる前記処理装置が前記暗号データの復号に用いる第1の復号用データを生成する第2の工程と、前記複数の処理装置の各々について、当該処理装置を要素とする前記複数の集合に前記第1の工程で割り当てられた前記固有データと非公開データとを基に、当該複数の集合について前記第2の工程でそれぞれ生成された複数の前記第1の復号用データを当該処理装置が前記固有データを基に生成するために用いられ、当該処理装置にセキュアな状態で提供される単数の第2の復号用データを生成する第3の工程とを有する。
【0012】
第2の発明のデータ処理方法の作用は以下のようになる。
先ず、第1の工程において、複数の処理装置の各々について、当該処理装置が要素となる複数の前記集合のうち、全部または一部の複数の前記集合に対して、前記処理装置に公開される相互に異なる固有データを割り当てる。
第2の工程において、前記複数の集合のそれぞれについて、当該集合に前記第1の工程で割り当てた前記固有データと非公開データとを基に、当該集合の要素となる前記処理装置が前記暗号データの復号に用いる第1の復号用データを生成する。
第3の工程において、前記複数の処理装置の各々について、当該処理装置を要素とする前記複数の集合に前記第1の工程で割り当てられた前記固有データと非公開データとを基に、当該複数の集合について前記第2の工程でそれぞれ生成された複数の前記第1の復号用データを当該処理装置が前記固有データを基に生成するために用いられ、当該処理装置にセキュアな状態で提供される単数の第2の復号用データを生成する。
【0013】
第3の発明のプログラムは、暗号データの復号に処理装置で用いられる復号用データを生成するデータ処理装置が実行するプログラムであって、前記暗号データの復号に前記処理装置で用いられる異なる複数の第1の復号用データの各々を、前記複数の第1の復号用データのそれぞれに割当てられ前記処理装置に公開された異なる複数の固有データのうち当該第1の復号用データに割当てられた前記固有データと、所定の非公開データとを基に生成する第1の手順と、前記第1の手順で生成した前記複数の第1の復号用データを前記処理装置が前記固有データを基に生成するために用いられ、前記処理装置にセキュアな状態で提供される単数の第2の復号用データを、前記非公開データと前記固有データとを基に生成する第2の手順とを有する。
【0014】
第4の発明のデータ処理装置は、暗号データの復号に処理装置で用いられる復号用データを生成するデータ処理装置であって、前記暗号データの復号に前記処理装置で用いられる異なる複数の第1の復号用データの各々を、前記複数の第1の復号用データのそれぞれに割当てられ前記処理装置に公開された異なる複数の固有データのうち当該第1の復号用データに割当てられた前記固有データと、所定の非公開データとを基に生成する第1の手段と、前記第1の手段で生成した前記複数の第1の復号用データを前記処理装置が前記固有データを基に生成するために用いられ、前記処理装置にセキュアな状態で提供される単数の第2の復号用データを、前記非公開データと前記固有データとを基に生成する第2の手段とを有する。
【0015】
第4の発明のデータ処理装置の作用は以下のようになる。
先ず、第1の手段が、暗号データの復号に前記処理装置で用いられる異なる複数の第1の復号用データの各々を、前記複数の第1の復号用データのそれぞれに割当てられ前記処理装置に公開された異なる複数の固有データのうち当該第1の復号用データに割当てられた前記固有データと、所定の非公開データとを基に生成する。
次に、第2の手段が、前記第1の手段で生成した前記複数の第1の復号用データを前記処理装置が前記固有データを基に生成するために用いられ、前記処理装置にセキュアな状態で提供される単数の第2の復号用データを、前記非公開データと前記固有データとを基に生成する。
【0016】
第5の発明のプログラムは、複数の処理装置のうち同じ集合の要素となる前記処理装置に対して共通の復号用データを基に暗号データを復号させるデータ処理装置が実行するプログラムであって、前記処理装置の各々が複数の前記集合の要素となるように、相互に異なる前記処理装置を要素とする複数の前記集合を規定した場合に、前記複数の処理装置の各々について、当該処理装置が要素となる複数の前記集合のうち、全部または一部の複数の前記集合に対して、前記処理装置に公開される相互に異なる固有データを割り当てる第1の手順と、前記複数の集合のそれぞれについて、当該集合に前記第1の手順で割り当てた前記固有データと非公開データとを基に、当該集合の要素となる前記処理装置が前記暗号データの復号に用いる第1の復号用データを生成する第2の手順と、前記複数の処理装置の各々について、当該処理装置を要素とする前記複数の集合に前記第1の手順で割り当てられた前記固有データと非公開データとを基に、当該複数の集合について前記第2の手順でそれぞれ生成された複数の前記第1の復号用データを当該処理装置が前記固有データを基に生成するために用いられ、当該処理装置にセキュアな状態で提供される単数の第2の復号用データを生成する第3の手順とを有する。
【0017】
第6の発明のデータ処理装置は、複数の処理装置のうち同じ集合の要素となる前記処理装置に対して共通の復号用データを基に暗号データを復号させるデータ処理装置であって、前記処理装置の各々が複数の前記集合の要素となるように、相互に異なる前記処理装置を要素とする複数の前記集合を規定した場合に、前記複数の処理装置の各々について、当該処理装置が要素となる複数の前記集合のうち、全部または一部の複数の前記集合に対して、前記処理装置に公開される相互に異なる固有データを割り当てる第1の手段と、前記複数の集合のそれぞれについて、当該集合に前記第1の手段で割り当てた前記固有データと非公開データとを基に、当該集合の要素となる前記処理装置が前記暗号データの復号に用いる第1の復号用データを生成する第2の手段と、前記複数の処理装置の各々について、当該処理装置を要素とする前記複数の集合に前記第1の手段で割り当てられた前記固有データと非公開データとを基に、当該複数の集合について前記第2の手段でそれぞれ生成された複数の前記第1の復号用データを当該処理装置が前記固有データを基に生成するために用いられ、当該処理装置にセキュアな状態で提供される単数の第2の復号用データを生成する第3の手段とを有する。
【0018】
第6の発明のデータ処理装置の作用は以下のようになる。
先ず、第1の手段が、複数の処理装置の各々について、当該処理装置が要素となる複数の前記集合のうち、全部または一部の複数の前記集合に対して、前記処理装置に公開される相互に異なる固有データを割り当てる。
次に、第2の手段が、前記複数の集合のそれぞれについて、当該集合に前記第1の手段で割り当てた前記固有データと非公開データとを基に、当該集合の要素となる前記処理装置が前記暗号データの復号に用いる第1の復号用データを生成する。
次に、第3の手段が、前記複数の処理装置の各々について、当該処理装置を要素とする前記複数の集合に前記第1の手段で割り当てられた前記固有データと非公開データとを基に、当該複数の集合について前記第2の手段でそれぞれ生成された複数の前記第1の復号用データを当該処理装置が前記固有データを基に生成するために用いられ、当該処理装置にセキュアな状態で提供される単数の第2の復号用データを生成する。
【0019】
第7の発明のプログラムは、復号用データを基に暗号データを復号する処理装置が実行するプログラムであって、前記暗号データと、当該暗号データを復号するための復号用データの指定を受ける第1の手順と、予め保持している複数の固有データのうち、前記第1の手順で指定された復号用データに対応する固有データを選択する第2の手順と、予め保持している復号用データと、前記第2の手順で選択した固有データとを基に、前記指定された復号用データを生成する第3の手順と、前記第3の手順で生成した前記指定された復号用データを基に、前記第1の手順で受けた前記暗号データを復号する第4の手順とを前記処理装置に実行させる。
【0020】
第8の発明の処理装置は、復号用データを基に暗号データを復号する処理装置であって、前記暗号データと、当該暗号データを復号するための復号用データの指定を受ける第1の手段と、予め保持している複数の固有データのうち、前記第1の手段で指定された復号用データに対応する固有データを選択する第2の手段と、予め保持している復号用データと、前記第2の手段で選択した固有データとを基に、前記指定された復号用データを生成する第3の手段と、前記第3の手段で生成した前記指定された復号用データを基に、前記第1の手段で受けた前記暗号データを復号する第4の手段とを有する。
【0021】
第8の発明の処理装置の作用は以下のようになる。
先ず、第1の手段が、暗号データと、当該暗号データを復号するための復号用データの指定を受ける。
次に、第2の手段が、予め保持している複数の固有データのうち、前記第1の手段で指定された復号用データに対応する固有データを選択する。
次に、第3の手段が、予め保持している復号用データと、前記第2の手段で選択した固有データとを基に、前記指定された復号用データを生成する。
次に、第4の手段が、前記第3の手段で生成した前記指定された復号用データを基に、前記第1の手段で受けた前記暗号データを復号する。
【0022】
【発明の実施の形態】
第1実施形態
以下、本発明の実施形態に係わる通信システムについて説明する。
図1は、本発明の実施形態に係わる通信システム1の全体構成図である。
図1に示すように、通信システム1は、例えば、管理装置2と、16個の受信装置u1〜u16を有する。
ここで、管理装置2が、本発明のデータ処理装置に対応し、受信装置u1〜u16が本発明の処理装置に対応している。
なお、受信装置uの数Nは、16個に限定されず、複数であれば任意である。
【0023】
通信システム1では、管理装置2から受信装置u1〜u16には、例えば、無線で暗号データが送信(提供)される。
なお、本発明では、受信装置の代わりに、再生装置などの処理装置を用い、管理装置(送信装置)から処理装置への暗号データの提供を、光ディスク、磁気ディスクあるいは半導体記憶装置などの記録媒体を介して行ってもよい。
【0024】
通信システム1では、単数または複数の受信装置um(uは1〜16のいずれかの整数)を要素とする複数の集合を規定し、同じ集合の要素となる受信装置umに共通のラベルデータLABELを取得させ、当該ラベルデータを基に暗号化した暗号データを復号させる。
【0025】
管理装置2は、受信装置umの各々について、当該受信装置umが要素となる複数の上記集合のうち、全部または一部の複数の集合に対して、相互に異なる素数データを割り当て、それを受信装置umに公開する。
また、管理装置2は、上記複数の集合のそれぞれについて、当該集合に割り当てた素数データpと非公開データKとを基に、当該集合の要素となる受信装置umが暗号データの復号に用いるラベルデータLABELを生成する。
そして、管理装置2が、受信装置umの各々について、当該受信装置umを要素とする上記複数の集合に割り当てられた素数データと非公開データKとを基に、当該複数の集合についてそれぞれ生成された複数の上記ラベルデータLABELを当該受信装置umが素数データpを基に生成するための単数のマスタラベルデータMLmを生成する。
そして、管理装置2が、上記マスタラベルデータMLmを、受信装置umにセキュアな状態に提供する。
また、管理装置2が、上記複数のラベルデータLABELのうち、暗号データを復号させる受信装置umの指定に応じて選択した集合のラベルデータLABELを基に暗号化した暗号データを受信装置umに提供する。
【0026】
以下、図1に示す管理装置2および受信装置u1〜u16について説明する。
〔管理装置3〕
図2は、図1に示す管理装置2のハードウェア構成図である。
図2に示すように、管理装置2は、例えば、通信部11、メモリ12および処理部13を有する。
通信部11は、処理部13が生成したデータを無線方式で送信する。当該送信は、例えば、放送などのプッシュ(PUSH)方式で、ソフトウェア無線(SDR:Software Defined Radio)によるSDR・セキュア・ダウンロードを行う。
メモリ12は、処理部13によって実行されるプログラムPRG1と、プログラムPRG1の実行に用いられる種々データを記憶する。
ここで、プログラムPRG1が第5の発明のプログラムに対応している。
メモリ12は、例えば、後述するツリー、当該ツリーのリーフへの受信装置u1〜u16の割り当て、素数q1,q2、その積を示す公開データM、疑似乱数生成器G、ハッシュ関数H、非公開データK、ラベルデータLABEL(i,j)、マスタラベルデータMLに関する情報をセキュアな状態で記憶している。
本明細書において、セキュアな状態とは、データや内容を外部から監視、改竄できない状態をいう。
また、メモリ12は、後述するように、特別な集合に対して割り当てられた相互に異なる素数p(j)に関する情報を記憶する。ここで、jは、リーフの数をNとした場合に、1以上(2N−1)以下の任意の整数である。
管理装置2は、積M、疑似乱数生成器G、ハッシュ関数H、素数p(j)に関する情報を受信装置u1〜u16に公開する。
本明細書において、公開とは、例えば、管理装置2が受信装置u1〜u16に情報を公開すること、管理装置2が受信装置u1〜u16の各々に対して各受信装置u1〜u16が後述する処理において必要とする情報を公開すること、並びに、管理装置2が受信装置u1〜u16に限らず社会全般に情報を公開することのいずれか一つを示す。
【0027】
処理部13は、メモリ12に記憶されたプログラムPRG1を実行し、その実行に応じて管理装置2の処理を統括して制御する。本実施形態において、管理装置2の処理は、処理部13が実行するプログラムPRG1によって規定される。
【0028】
処理部13は、プログラムPRG1の実行に応じて、受信装置u1〜u16に所定のラベルデータLABELおよびマスタラベルデータMLを提供する前処理と、何れの受信装置をリボークするかに応じて選択した集合を指定する集合指定データと、リボークしない受信装置u1〜u16のみが復号可能な暗号データを送信するリボケーション処理とを行う。
【0029】
以下、管理装置2が行う各処理について説明する。
〔前処理〕
図3および図4は、管理装置2が行うリボケーション処理の前処理を説明するためのフローチャートである。
図3および図4において、ステップST7が第2の発明の第1の工程に対応し、ステップST9〜ST11が第1の発明の第1の工程および第2の発明の第2の工程に対応し、ステップST12が第1の発明の第2の工程および第2の発明の第3の工程に対応している。
また、図4に示すステップST11が第2の発明のステップST5に対応し、ステップST15が第2の発明の第6の工程に対応している。
また、第4の発明の第1の手段は処理部13がステップST9〜ST11を実行することで実現され、第4の発明の第2の手段は処理部13がステップST12を実行することで実現される。
また、第6の発明の第1の手段は処理部13がステップST7を実行することで実現され、第6の発明の第2の手段は処理部13がステップST9〜ST11を実行することで実現され、第6の発明の第3の手段は処理部13がステップST12を実行することで実現される。
なお、以下に示す処理は、処理部13によるプログラムPRG1の実行に応じて制御される。
【0030】
ステップST1:
管理装置2は、先ず、例えば、図5に示す少なくともN個の葉を持つ2分木によって構成されるツリー20を定義し、その情報をメモリ12に記憶する。
ここでは簡単のため,Nを2のべき乗の数と仮定する。このとき,ツリー20の葉の数がちょうどNになるように2分木を決めることができる。
ステップST2:
管理装置2は、図5に示すように、ツリー20の16個のリーフの各々に16個の受信装置u1〜u16を割り当て、その情報をメモリ12に記憶する。
【0031】
ステップST3:
管理装置2は、各ノードについて、ノード(i)の子孫であるノード(j)に対応する集合S(i,j)を規定する。すなわち、ノード(i)を本発明の第1の構成要素とし、ノード(j)を本発明の第2の構成要素とする組で表される集合S(i,j)を規定する。
本実施形態では、リーフ、並びに2分木の分岐点(ルートを含む)をノードとする。
上記集合S(i,j)は、ツリー20の2つのノード(i),(j)を用いて、「(ノード(i)から分岐したリーフからなる集合)から(ノード(i)から分岐したリーフからなる集合)を除いた集合」として規定する。
ノード(i)がノード(j)の先祖である(すなわち、ノードjはノードiと同一ではなく、ノード(j)からルートへのパス上にノード(i)が存在する)全てのノードの組についてこのような集合S(i,j)を定義する。
例えば、図5に示すツリー20において、集合S(2,8)は、ノード「2」から分岐したリーフに割り当てられた受信装置の集合{u1,u2,u3,u4,u5,u6,u7,u8}から、ノード「8」から分岐したリーフに割り当てられた受信装置の集合{u1,u2}を除いた集合{u3,u4,u5,u6,u7,u8}となる。
【0032】
ステップST4:
管理装置2は、ステップST3で規定した集合S(i,j)の中で、ノード(i)とノード(j)が親子関係になっているものを第1の特別な集合SS(i,j)とする。
さらに、リボークする受信装置がひとつもない場合に使用する、全受信装置u1〜u16を要素とする第2の特別な集合SS(1,Φ)を定義する。
第1の特別な集合と第2の特別な集合との合計は、(2N−1)個、本実施形態では31個となる。
【0033】
ステップST5:
管理装置2は、2つの素数データq1,q2を選択し、その積を示す公開データMを生成する。
素数データq1,q2としては、公開データMから素数データq1,q2を推定困難な程度に大きな値が選択される。
管理装置2は、公開データMを受信装置u1〜u16に公開する。
【0034】
ステップST6:
管理装置2は、ハッシュ関数Hと擬似乱数生成器Gの構成を選択し、それを公開する。また、管理装置2は、これらの情報をメモリ12に記憶する。
ハッシュ関数Hは,任意長の入力に対してあらかじめ定められた長さの出力を出す関数である。たとえば128ビット出力のハッシュ関数としてはMD5が、160ビット出力のハッシュ関数としてはSHA−1がよく知られている。MD5は、A.J.Menezes,P.C.van Oorschotand S.A.Vanstone著,Handbook of Applied Cryptography, CRC Press 1997のp.347に、SHA−1は同書のp.348にアルゴリズムが紹介されている。
また擬似乱数生成器Gは、図6に示すように、Cビットの入力に対し3Cビットの擬似乱数を出力する。
【0035】
ステップST7:
管理装置2は、(2N−1)個の素数データp(j)をランダムに選択する。
本実施形態では、N=16であるため、31個の素数データp(j)をランダムに選択する。ここで、素数データp(j)が本発明の固有データに対応している。
ここで、固有データは、本明細書で示す複数の固有データの間で値が異なればよい。
管理装置2は、上記ランダムに選択した素数データp(j)を、ステップST4で規定した第1の特別な集合SS(i,j)および第2の特別な集合SS(1,Φ)にそれぞれ割り当て、それを受信装置u1〜u16に公開する。
具体的には、管理装置2は、図5に示すように、各特別な集合SS(i,j)に素数データp(j)を割り当てる。ただし、j=2,...,2N−1である。また,素数データp(1)を第2の特別な集合SS(1,Φ)に割り当てる。
ステップST8:
管理装置2は、ステップST7で選択した(2N−1)個の素数データp(j)の積を示すデータTを生成する。
また、管理装置2は、K∈Z* M を満たす非公開データKをランダムに選択する。
【0036】
ステップST9:
管理装置2は、ステップST4で規定した第1の特別な集合SS(i,j)のラベルデータLABEL(i,j)を下記式(7)を基に生成する。
当該ラベルデータLABEL(i,j)が本発明の第1の復号用データに対応している。
【0037】
【数7】
LABEL(i,j)=H(KT/p(j) modM) …(7)
【0038】
ステップST10:
管理装置2は、ステップST4で規定した第2の特別な集合SS(1,Φ)のラベルデータLABEL(1,Φ)を下記式(8)を基に生成する。
【0039】
【数8】
LABEL(1,Φ)=H(KT/p(1) modM) …(8)
【0040】
ステップST11:
管理装置2は、ステップST9で生成した第1の特別な集合SS(i,j)のラベルデータLABEL(i,j)を基に、ノード(i)を第1の構成要素とし、ノード(j)から分岐したノードまたはリーフを第2の構成要素とする組で表される特別でない集合SのラベルデータLABELを生成する。
具体的には、管理装置2は、図6および図7に示すように、ステップST9で生成した第1の特別な集合SS(i,j)のCビットのラベルLABEL(i,j)を擬似乱数生成器Gに入力し,その結果である3Cビットのデータのうち上位Cビット(=GL(LABEL(i,j))を、ノード「i」を始点としたノード「j」の左側(一方)の子ノードLC(j)のラベルデータLABEL(i,LC(j))とする。
また、管理装置2は、ステップST9で生成した第1の特別な集合SS(i,j)のラベルLABEL(i,j)を擬似乱数生成器Gに入力し,その結果である3Cビットのデータのうち下位Cビット(=GR(LABEL(i,j))を、ノード「i」を始点としたノード「j」の右側(他方)の子ノードRC(j)のラベルデータLABEL(i,RC(j))とする。
そして、管理装置2は、上記生成したラベルデータLABEL(i,LC(j)),LABEL(i,RC(j))を擬似乱数生成器GL,GRに繰り返し入力することで、ノードiを始点とした、ノードjの子孫であるすべてのノードに対応するラベルデータを求める。
管理装置2は、ステップST9で生成した全ての特別な集合SS(i,j)のラベルデータに対して上記処理を行う。
上述したステップST7およびST8の処理により、ステップST3で規定した全ての集合S(i,j)のラベルデータLABEL(i,j)が生成される。
管理装置2は、集合S(i,j)の要素である受信装置が暗号データの復号に用いる鍵データSK(i,j)を、例えば、SK(i,j)=GM(LABEL(i,j))によって生成する。
すなわち、管理装置2は、ステップST7で生成した第1の特別な集合SS(i,j)のラベルLABEL(i,j)を擬似乱数生成器Gに入力し、その結果である3Cビットのデータのうち中位Cビット(=GM(LABEL(i,j))を、集合S(i,j)の要素である受信装置が暗号データの復号に用いる鍵データSK(i,j)とする。
【0041】
ステップST12:
管理装置2は、受信装置u1〜u16のそれぞれについて、当該受信装置umが要素となる第1の特別な集合SS(i,j)のラベルデータLABEL(i,j)と第2の特別な集合SS(1,Φ)のラベルデータLABEL(1,Φ)のマスタラベルデータMLmを下記式(9)を基に生成する。
ここで、マスタラベルデータMLmが本発明の第2の復号用データに対応している。
下記式(9)において、データwmは、受信装置umが要素となる第1の特別な集合SS(i,j)に割り当てられた素数データp(j)と、第2の特別な集合SS(1,Φ)に割り当てられた素数データp(1)との積を示している。
【0042】
0
【数9】
MLm=KT/wm modM …(9)
【0043】
図5に示す例では、w4は、p(1)・p(3)・p(5)・p(8)・p(18)となる。
また、受信装置umの特別な集合のラベルデータLABEL(1,3),LBALE(2,5),LABEL(4,8),LABEL(9,18),LABEL(1,Φ)の5つがマスタラベルデータMLmから生成される。
【0044】
ステップST13:
管理装置2は、全ての受信装置u1〜u16の各々に対して、当該受信装置が要素となる集合に対応するラベルデータを選択する。
具体的には、管理装置2は、受信装置umについて、受信装置um(mは1〜16の整数)が割り当てられたリーフからルートに至るパスpath(m)上の内部のノード「i」を始点とし、当該リ−フからノード「i」までのパスから直接分岐した(枝分かれした)ノード「j」に対応する集合S(i,j)のラベルデータLABEL(i,j)と、上記の第2の特別な集合SS(1,Φ)に対応するラベルデータLABEL(1,Φ)を選択する。
図5に示すツリー20の例では、管理装置2は、受信装置u4について、図8の「従来のSD」の欄に示すように、ラベルデータLABEL(1,3),LABEL(1,5),LABEL(1,8),LABEL(1,18),LABEL(2,5),LABEL(2,8),LABEL(2,18),LABEL(4,8),LABEL(4,18),LABEL(9,18),LABEL(1,Φ)の11個のラベルデータLABEL(i,j)を選択する。
これらの11個のラベルデータLABEL(i,j)のち、図9に示すように、LABEL(1,3),LABEL(2,5),LABEL(4,8)およびLABEL(9,18)が第1の集合SS(i,j)のラベルデータLABEL(i,j)となる。
【0045】
ステップST14:
管理装置2は、各受信装置umについて、ステップST13で選択したラベルデータLABEL(i,j)のうち,前述した第1の特別な集合および第2の特別な集合に対応するラベルデータLABEL(i,j)を除いたラベルデータLABEL(i,j)を選択する。
図5に示すツリー20の例では、管理装置2は、受信装置u4について、ラベルデータLABEL(1,5),LABEL(1,8),LABEL(1,18),LABEL(2,8),LABEL(2,18),LABEL(4,18)を選択する。
【0046】
ステップST15:
管理装置2は、各受信装置umについて、ステップST14で選択したラベルデータLABEL(i,j)と、ステップST12で導出したマスタラベルデータMLmとを、当該受信装置umにセキュアな状態で提供する。
受信装置umは、当該受けたラベルデータLABEL(i,j)とマスタラベルデータMLmとをセキュアな状態で記憶する。
受信装置u4の例では、図8に示す「第1実施形態」の欄のように、ラベルデータLABEL(1,5),LABEL(1,8),LABEL(1,18),LABEL(2,8),LABEL(2,18),LABEL(4,18)と、マスタラベルデータML4との合計7個のラベルデータを、受信装置u4にセキュアな状態で提供する。
このように、通信システム1によれば、従来のSD方式に比べて、管理装置2から受信装置umに提供して記憶させるラベルデータの数(データ量)を削減できる。
【0047】
〔リボケーション処理〕
管理装置2は、上述した前処理を行った後に、例えば、コンテンツデータを暗号化した暗号データを受信装置umに送信する際に、当該リボケーション処理を行う。
なお、以下に示す処理は、処理部13によるプログラムPRG1の実行に応じて制御される。
図10は、管理装置2が行うリボケーション処理を説明するためのフローチャートである。
図10に示す処理は第1の発明の第3の工程に対応している。
また、図10に示すステップST26が第2の発明の第4の工程に対応している。
ステップST21:
管理装置2は、受信装置u1〜u16のうち、リボークしない受信装置を特定する(暗号データを復号できる受信装置を指定する)。
ステップST22:
管理装置2は、ステップST21で特定したリボークしない受信装置を要素とし、かつ、リボークする受信装置を要素としない集合のうち、リボークしない受信装置がいずれかの集合の要素となりかつ、ノード(i)がルートに最も近くなるような単数または複数の集合S(i,j)を特定する。
管理装置2は、例えば、図11に示すように、受信装置u2,u11,u12をリボークする場合には、集合S(2,17)およびS(3,13)を特定する。
【0048】
ステップST23:
管理装置2は、ステップST22で特定した集合S(i,j)を指定する集合指定データを生成する。当該集合指定データは、例えば、集合S(i,j)の識別データを用いて、当該集合S(i,j)を指定する。
当該集合指定データが、本発明の指定データに対応し、集合の指定が本発明の復号用データに対応するラベルデータLABELの指定になる。
ステップST24:
管理装置2は、ステップST23で特定した集合S(i,j)のラベルデータLABEL(i,j)を用いて、鍵データSK(i,j)(=GM(LABEL(i,j)))を生成する。
【0049】
ステップST25:
管理装置2は、送信するデータを、ステップST24で生成した鍵データSK(i,j)のそれぞれで暗号化して暗号データを生成する。
図11に示す例では、管理装置2は、上記データを鍵データSK(2,17)で暗号化した暗号データと、上記データを鍵データSK(3,13)で暗号化した暗号データとの2つの暗号データを生成する。
ステップST26:
管理装置2は、ステップST23で生成した指定データと、ステップST25で生成した暗号データとを、図2に示す通信部11を介して受信装置u1〜u16に送信する。
一例として、前述した「前処理」はシステム立ち上げ時の一度だけ行い,「リボケーション処理」は送信したい情報がある度に(たとえばコンテンツを放送するとかROMディスクを生産する度に)行う。受信装置もシステム立ち上げ時または自身がシステムに参加するときにラベルを受け取り、下記の受信処理を繰り返して行う.
【0050】
〔受信装置u1〜u16〕
図12は、図1に示す受信装置umのハードウェア構成図である。
図12に示すように、受信装置umは、例えば、通信部51、メモリ52および処理部53を有する。
通信部51は、前述したように管理装置2が送信した暗号データおよび集合指定データを受信する。
メモリ52は、処理部53によって実行されるプログラムPRG2と、プログラムPRG2の実行に用いられる種々データを記憶する。
ここで、プログラムPRG2が第5の発明のプログラムに対応している。
例えば、メモリ52は、例えば、図4に示すツリー20、ツリー20の何れのリーフに受信装置umが割り当てられているかを示す情報、素数データp(j)、並びにその割り当て情報、公開データM、疑似乱数生成器Gに関する情報、ハッシュ関数Hに関する情報、図4に示すステップST15で管理装置2から受けたマスタラベルデータMLmおよびラベルデータLABELを記憶している。
【0051】
処理部53は、メモリ52に記憶されたプログラムPRG2を実行し、その実行に応じて受信装置umの処理を統括して制御する。本実施形態において、受信装置umの処理は、処理部53が実行するプログラムPRG2によって規定される。
【0052】
処理部53は、プログラムPRG2の実行に応じて、集合指定データによって指定された集合のラベルデータLABELの生成、マスタラベルデータMLmの生成、マスタラベルデータMLmからラベルデータLABELの生成、並びにラベルデータLABELから鍵データSKの生成、鍵データSKを用いた暗号データの復号などの処理を行う。
【0053】
図13は、図12に示す受信装置umの処理を説明するためのフローチャートである。
図13において、ステップST33が第2の発明の第8の工程に対応し、ステップST34が第2の発明の第9の工程に対応している。
ステップST31:
受信装置umの通信部51は、管理装置2から、前述した集合指定データと、単数または複数の暗号データを受信する。
ステップST32:
受信装置umの処理部53は、当該受信装置umが、ステップST31で受信した集合指定データが指定する単数または複数の集合のいずれかの要素であるか否かを判断し、要素であると判断するとステップST33に進み、そうでない場合には処理を終了する。
なお、受信装置umは、管理装置2によってリボークされない場合に、管理装置2からの集合指定データが示す単数または複数の集合のうち一つの集合の要素となっている。
【0054】
ステップST33:
受信装置umの処理部53は、後述するように、鍵データSK(i,j)を生成する。
ステップST34:
受信装置umは、ステップST33で生成した鍵データSK(i,j)を用いて、自らが要素となる集合に対応した暗号データを復号する。
【0055】
以下、図13に示す鍵データの生成処理(ステップST33)を詳細に説明する。
図14は、図13に示すステップST33の処理を説明するためのフローチャートである。
また、第8の発明の第1の手段は処理部53が図14に示すステップST41を実行して実現され、第2の手段および第3の手段は処理部53がステップST46,ST47,ST48を実行して実現され、第4の手段は処理部53が図13に示すステップST34を実行して実現される。
【0056】
ステップST41:
受信装置umは、集合指定データが指定する自らが要素となる集合S(i,j)が、第1あるいは第2の特別な集合であるか否かを判断し、特別な集合であると判断するとステップST48に進み、そうでない場合にはステップST42に進む。
ステップST42:
受信装置umは、集合指定データが指定する自らが要素となる集合S(i,j)のラベルデータLABELが、メモリ52に記憶されているか否かを判断し、記憶されていると判断すると、ステップST43に進み、そうでない場合にはステップST44に進む。
ステップST43:
受信装置umの処理部53は、上記指定された集合S(i,j)のラベルデータLABEL(i,j)をメモリ52から読み出し、これを擬似乱数生成器Gに入力し、その結果の中位CビットGM(LABEL(i,j))を、鍵データSK(i,j)とする。
【0057】
ステップST44:
受信装置umは、集合指定データが指定する自らが要素となる集合S(i,j)のラベルデータLABELを得るのに第1または第2の特別な集合のラベルデータLABELが必要か否かを判断し、必要であると判断するとステップST46に進み、そうでない場合にはステップST45に進む。
ステップST45:
受信装置umの処理部53は、メモリ52から、上記指定された集合S(i,j)を表すノード(i)および(j)の,ノード(j)からノード(i)へのパス上に、受信装置umがラベルLABEL(i,k)を持つノード(k)を見つけ,当該ラベルデータLABEL(i,k)をメモリ12から読み出し、これを擬似乱数生成器Gに入力し、必要に応じてその結果を繰り返し擬似乱数生成器Gに入力して、ラベルデータLABEL(i,j)を生成する。
そして、処理部53は、上記生成したラベルデータLABEL(i,j)を擬似乱数生成器Gに入力し、その結果の中位CビットGM(LABEL(i,j))を、鍵データSK(i,j)とする。
【0058】
ステップST46:
受信装置umの処理部53は、指定された集合S(i,j)のラベルデータLABEL(i,j)を得るのに必要な特別な集合SS(i,k)を特定し、当該特定した集合に割り当てられた素数データp(k)をメモリ12から読み出す。
処理部53は、当該読み出した素数データp(k)と、メモリ12から読み出したマスタラベルデータMLmおよび公開データMと、ハッシュ関数Hと、データWmとを用いて、下記式(10)を演算して当該特別な集合のラベルデータLABEL(i,k)を生成する。
このとき、処理部53は、メモリ52から読み出した公開された素数データp(j)のうち受信装置umが要素となる第1の特別な集合SS(i,j)に割当てられた素数データp(j)と、第2の特別な集合SS(1,Φ)に割当てられた素数データp(1)との積を演算等してデータwmを得る。
【0059】
【数10】
LABEL(i,k)=H(MLmwm/p(k) modM)…(10)
【0060】
ステップST47:
受信装置umの処理部53は、ステップST46で生成した特別な集合のラベルデータLABEL(i,k)を擬似乱数生成器Gに入力し、必要に応じてその結果を繰り返し擬似乱数生成器Gに入力して、ラベルデータLABEL(i,j)を生成する。
そして、処理部53は、上記生成したラベルデータLABEL(i,j)を擬似乱数生成器Gに入力し、その結果の中位CビットGM(LABEL(i,j))を、鍵データSK(i,j)とする。
【0061】
ステップST48:
受信装置umの処理部53は、指定された特別な集合SS(i,j)に割り当てられた素数データp(j)をメモリ12から読み出す。
処理部53は、当該読み出した素数データp(j)と、メモリ12から読み出したマスタラベルデータMLmおよび公開データMと、ハッシュ関数Hとを用いて、下記式(11)を演算して当該特別な集合のラベルデータLABEL(i,j)を生成する。
【0062】
【数11】
LABEL(i,j)=H(MLmwm/p(j) modM)…(11)
【0063】
受信装置umの処理部53は、当該生成した特別な集合のラベルデータLABEL(i,j)を擬似乱数生成器Gに入力し、その結果の中位CビットGM(LABEL(i,j))を、鍵データSK(i,j)とする。
【0064】
以下、図11を例に説明する。
図11に示すように、受信装置u2,u11,u12がリボークされ、集合S(2,17),S(3,13)に対応する鍵データSK(2,17),SK(3,13)で暗号化された暗号データを管理装置2が送信する場合を考える。
この場合には、受信装置u4は,ラベルデータLABEL(1,5),LABEL(1,8),LABEL(1,18),LABEL(2,8),LABEL(2、18),LABEL(4,18)の6個のラベルデータと、マスタラベルデータML4をメモリ52に記憶する。
【0065】
受信装置u4は、集合S(2,17)について、ノード(17)の先祖であるノード(8)を用いたラベルデータLABEL(2,8)を直接保持しているため、これに擬似乱数生成器Gを必要な回数だけ適用することで鍵データSK(2,17)を得ることができる。
一方、受信装置u5は、LABEL(1,4),LABEL(1,11),LABEL(1,21),LABEL(2,11),LABEL(2,21),LABEL(5,21)の6個のラベルデータとマスタラベルデータML5を、メモリ12に記憶している。
受信装置u5は、集合S(2,17)に対し、ノード(17)の先祖であるノード(k)を用いたラベルデータLABAL(2,k)をメモリ12に保持していない。
そのため、受信装置u5は、メモリ12に記憶しているマスタラベルデータML5から、ノード(17)の先祖であるノード(4)に対応したラベルデータLABEL(2,4)を生成し、これに擬似乱数生成器Gを必要な回数だけ適用することで鍵データSK(2,17)を得る。
【0066】
なお、リボークすべき受信装置umが1台もなく、集合として第2の特別な集合SS(1,Φ)が使用されていた場合、受信装置umは、「LABEL(1,Φ)=H(MLmwm/p( 1 ) modM)」の処理によりマスターラベルMLmからラベルデータLABAL(1,Φ)を計算し、それを擬似乱数生成器Gに入力して出力の中央部分のCビットを求める。
すなわち、鍵データSK(1,Φ)を、GM(LABAL(1,Φ))により求め、これを基に暗号データを復号する。
【0067】
以上説明したように、通信システム1によれば、図4に示すステップST12,ST15を用いて説明したように、特別な集合の複数のラベルデータLABELを生成するための単数のマスタラベルデータMLmを生成し、これを受信装置umにセキュアな状態で提供して保持させることで、受信装置umが記憶(保持)するラベルデータおよびマスタラベルデータの数を、従来のSD方式に比べて削減できる。
また、通信システム1によれば、受信装置umは、自らが保持するマスタラベルデータMLmを基に図14に示すステップST46,ST48を用いて説明したように、特別な集合の複数のラベルデータを適切に取得できる。そのため、リボークされない受信装置umは、管理装置2から受信した暗号データを当該鍵データを基に適切に復号できる。
その一方、マスタラベルデータMLmを保持しない他の受信装置は、当該マスタラベルデータMLmに対応したラベルデータLABELを取得できない。
【0068】
第2実施形態
本実施形態の管理装置2aおよび受信装置umaは、以下に示す処理以外は、第1実施形態の管理装置2および受信装置umと同じである。
以下、上述したSD方式を基礎としたLSD(Layered Subset Difference)方式に本発明を適用した場合を例示する。
LSD方式には、Basic(基本)方式と、その拡張であるGeneral(一般化)方式がある。
ここではBasic_LSDに本発明を適用した場合について説明する。
本実施形態の通信システムは、上述した第1の実施形態の通信システムにおいて、特別レベル(Special Level)と、特別レベル間の階層であるレイヤという新たな概念を取り入れたものである。
例えば、第1実施形態で説明したツリー20内で、図15に示すように、特定の階層を特別レベルとして定義する。
本実施形態では、特別ラベルデータは1種類だけであるが、後述する第3実施形態においては重要度の異なる複数の特別レベルを用いる。
ここで、簡単のため、log1/2 N(Nは受信装置umの数)は整数であるとする。
【0069】
本実施形態では、図15に示すように、ツリー20のルートからリーフに至るまでのそれぞれの階層のうち、ルートとリーフのレベルを含む、log1/2 Nごとの階層を特別レベルと規定する。
そして、隣り合う2つの特別レベルに挟まれた単数または複数の階層(両方の特別レベルを含む)を、レイヤと呼ぶ。
図15の例では、ルートの階層、ノードkを含む階層、リーフの階層が特別レベルであり、ルートの階層とノードiを含む階層とノードkを含む階層が1つのレイヤを構成する。またノードkを含む階層とノードjを含む階層とリーフを含む階層が別のレイヤを構成する。
【0070】
本実施形態では、管理装置2aは、第1実施形態で規定した集合S(i,j)のうち、ノードiとノードjが同一レイヤにあるか、もしくはノードiが特別レベルにあるものだけを規定し、当該規定した集合S(i,j)についてのみ、図3および図4を用いて説明したようにマスタラベルデータMLmおよびラベルデータLABELの生成を行う。
すなわち、本実施形態では、第1実施形態で規定した集合のうちのいくつかは規定されなくなるが、この規定されない集合は、本実施形態で規定される集合の高々2つの和集合で表すことができる。
例えば、図15の例では、集合S(i,j)は、本実施形態では規定されないが、ノードiからノードjへのパス上の、ノードiに最も近い特別レベル上のノード(ノードk)を用いて、S(i,j)=S(i,k)∪S(k,j)と表すことができる。
前述した第1実施形態の管理装置2は、特定(選択)した集合S(i,j)について、それに対応する鍵データSK(i,j)を用いて暗号化した1つの暗号データを生成して受信装置umに提供したが、本実施形態の管理装置2aは、集合S(i,k)とS(k,j)に対応する集合キーSK(i,k),SK(k,j)を用いてそれぞれ暗号化した2つの暗号データを生成して受信装置umaに送信(提供)する。
【0071】
これにより、管理装置2aでは、送信する暗号データの数(通信量)は、第1の実施形態の管理装置2の高々2倍に増加するが、各受信装置umaが保持するラベルデータの数を第1実施形態の受信装置umに比べて減らすことができる。
【0072】
管理装置2aでは、擬似乱数生成器Gを用いてラベルデータLABEL(i,j)を順に生成する過程で、ノード(i)が特別レベルにない場合、ノード(i)の一つ下の特別レベルよりも下のノードをjとするラベルデータは利用されないので、当該一つ下の特別レベルまででラベルデータの生成を止める。
管理装置2aは、前述した前処理において、ラベルデータを各受信装置umにセキュアな状態で提供する場合にも、上述した条件で生成したラベルデータのなかから選択して受信装置umaに提供する。
【0073】
図16および図17は、図9のツリー20を基に受信装置umが割り当てられている場合に、本実施形態の受信装置u4aが記憶するラベルデータLABELを説明するための図である。
図17および図18に示すように、従来のBASIC_LSDを採用した場合には、提供して記憶させたラベルデータLABEL(1,3),LABELE(1,5),LABEL(1,8),LABEL(1,18),LABEL(2,5),LABEL(4,8),LABEL(4,18),LABEL(9,18)と特別なラベルの合計9個のラベルデータを受信装置u4が保持する必要がある。
これに対して、本実施形態の管理装置2aでは、上述したようにマスタラベルデータMLmを用いることで、ノード(i),(j)が親子関係にある第1の特別な集合のラベルデータLABELと、前述した第2の特別な集合のラベルデータLABEL(1,Φ)を、一つのマスタラベルデータMLmから受信装置umが導出する。
そのため、管理装置2aは、受信装置u4aに対して、前処理において、図18に示すように、ラベルデータLABEL(1,5),LABEL(1,8),LABEL(1,18),LABEL(4,18)と、マスタラベルデータML4の合計5個のラベルデータを提供して保持させる。
【0074】
以下、受信装置umaの数をNとした場合に、従来のBASIC_LSDに比べて、本実施形態において受信装置umaに記憶させるラベルデータの数を削減できることを説明する。
すなわち、ノード(i),(j)が親子関係になるようなラベルデータLABEL(i,j)を各受信装置umaがいくつ保持すべきかを考える。
ノード(i),(j)が親子関係になっているときには,以下の3つの場合が考えられる。
(A)ノード(i)が特別レベルにある。
(B)ノード(j)が特別レベルにある。
(C)ノード(i),(j)の双方が特別レベルにない。
【0075】
上記(A)〜(C)のいずれの場合も、ノード(i),(j)が親子関係にある(つまり,ツリー上で隣り合っている)以上、ノード(i),(j)は同一レイヤに存在する。すなわち、集合S(i,j)はBasic_LSD方式で定義されるための条件を満たしている。
つまり、このような集合はBasic_LSDで定義され使用されるため、受信装置umaはそれに対応するLABEL(i,j)を保持しておく必要がある。
このようなノード(i),(j)は、受信装置umaについては、ノード(i)の位置がツリーの高さ分(すなわち,受信装置が割り当てられたリーフからルートへのパス上の、リーフを除くノードすべて)あり、ノード(i)を決めればノード(j)がただ1つ決まる(ノード(i)の子で、上記のパス上にないノード)ため、ツリー20の高さ分,すなわちlogN個だけ存在する。
【0076】
本実施形態では、受信装置umaが、これらのlogN個の第1の特別なラベルデータと1つの第2の特別なラベルデータを、第1実施形態で説明したように、マスタラベルデータMLmから生成できるように規定し、このマスタラベルデータMLを受信装置umaにセキュアな状態で提供して保持する。
これにより、受信装置umaが保持するラベルデータの数をlogN(=logN+1−1)だけ削減できる。
上述のように、従来のBasic_LSD方式では受信装置umaが保持するラベルデータの総数はlog3/2N+1であるが、本実施形態では、受信装置umaが保持するラベルデータの数を、log3/2N−logN+1に削減できる。
【0077】
第3実施形態
本実施形態の管理装置2bおよび受信装置umbは、以下に示す処理以外は、第1および第2実施形態の管理装置2,2aおよび受信装置um,umaと同じである。
本実施形態では、General_LSDに本発明を適用した場合を説明する。
上述した従来のBasic_LSD方式では,1種類の特別レイヤを用いたが、本実施形態では、General_LSDと同様に、重要度の異なる複数の特別レベルを用いる。
すなわち、前述したように受信装置umbをリーフに対応付けたツリー20において、ルートからノード(i)を経てノード(j)に至るパスを1本のグラフとして考える。
ツリー20のルートとノード(j)が端点となり、ツリー20のノードがグラフのノードとなり,端点以外のノードのひとつがノード(j)となっている。このグラフでは,各ノードはルートからの距離で表される。この距離は,d桁のb進数(ただしb=O(log1/dN)で表される。
たとえば、ルートは「0...00」と表され、その隣のノード(ツリー20において、ルートの子ノードであるノード)は「0...01」と表される。
【0078】
この場合に、第1実施形態で規定した集合S(i,j)は、規定された変換(ノードからノードへの遷移)を組み合わせることで、ノード(i)からノード(j)への最終的な遷移であると考える。
上記規定された変換は上記集合に対応し、最終的な遷移に要する個々の遷移が、集合S(i,j)を分割して表すのに必要な集合を示す。
【0079】
例えば、ノード(i),(k1),(k2),(k(d−1)),(j)がこの順で、ツリー20のパス上に存在する場合に、集合S(i,j)は、本実施形態では、下記式(12)に示すように、高々d個の集合の和集合で表される。
【0080】
【数12】
【0081】
本実施形態では、ノード(i)が上記のグラフにおいて、(x)a(0)と表されるとき、(x+1)0(0)あるいは(x)(a’)(y)で表されるノード(j)への遷移を全て規定できる。
ここで、aは非ゼロの数字のうち1番右にある数字、(x)は任意の数字列、(0)はゼロの列、a’≧a、(y)は(0)と同じ長さの任意の数字列である。
【0082】
すなわち、第2実施形態は、当該第3実施形態においてd=2、(一番右の)最終桁が0である2桁の数字で表されるレベルを特別レベルとしたものである。
本実施形態では、ノード(i)を表す数字における一番右のゼロの列の桁数が、そのレベルの重要度を表し、本実施形態で定義される集合S(i,j)を表すノード(j)は、ノード(i+1)からノード(i)よりも重要度の高い最初のノードまでのいずれのノード(両端のノードを含む)にもなる可能性がある。
例えば、i=825197,j=864563とすると,ノード(i)からノード(j)への遷移、すなわち集合S(i,j)は、「825917→825920→826000→830000→864563」という上述した4つの遷移によって表すことができる。
すなわち,k1=825920,k2=826000,k3=830000とおけば、下記式(13)が成り立つ。
【0083】
【数13】
【0084】
本実施形態では、管理装置2bは、サブセットS(i,j)の要素となる受信装置umbに復号させる暗号データとして、集合S(i,k1),S(k1,k2),S(k2,k3),S(k3,j)に対応するラベルデータLABELから生成した鍵データを用いて暗号化した4つの暗号データを生成および送信する。
【0085】
本実施形態によれば、受信装置umbが保持すべきラベルデータの数は、パラメータdが大きくなるに従って減少し、最終的には下記式(14)となる。
このとき,送信すべき暗号データの数は、d(2r−1)となる。ここで、rはリボークする受信装置の数を示している。
【0086】
【数14】
【0087】
本実施形態において、第1および第2実施形態と同様に、管理装置2bは、受信装置umbに対して、受信装置umbが復号に使用するラベルデータLABELのうち、ノード(i),(j)が親子関係になっている特別な集合SS(i,j)に対応する複数のラベルデータLABAL(i,j)を導出するための単数のマスタラベルデータMLmをセキュアな状態で提供して保持させる。
これは、ノード(i)としてどんな値をとっても、その子ノード(j)、すなわちノード(i+1)への遷移は、上述した遷移の条件に当てはまるためである。
すなわち、本実施形態においても、第1および第2実施形態の場合と同様に、受信装置umについて、当該受信装置umが利用するラベルデータのうちノード(i),(j)が親子関係になっているものはlogN個ある。
管理装置2bは、これらlogN個の第1の特別なラベルデータと1つの第2の特別なラベルデータを、第1実施形態と同様に、1つのマスタラベルデータMLmから作り出し、当該マスタラベルデータMLmを受信装置umbに保持させることで、受信装置umbが保持するラベルデータを、従来のGeneral_LSDに比べてlogN個削減できる。
【0088】
本発明は上述した実施形態には限定されない。
上述した実施形態では、2分木を基に構成されたツリーのリーフに受信装置umを対応付けた場合を例示したが、3分木以上の木を少なくとも一つ含むツリーのリーフに受信装置umを対応付けた場合にも本発明は同様に適用可能である。
また、上述した実施形態では、SD,LSDなどのリボケーション方式に本発明を適用した場合を例示したが、処理装置が複数の鍵データ(復号用データ)を用いて暗号データを復号する場合に、当該処理装置が保持する鍵データの数を削減する要請のあるその他のシステムについても、本発明は同様に適用できる。
【0089】
【発明の効果】
以上説明したように、第1、第3、第4、第7および第8の本発明によれば、複数の復号用データを用いて暗号データを復号する処理装置が保持する復号用データの数を削減できるデータ処理方法、そのプログラムおよびその装置と処理装置を提供することができる。
また、第2、第5および第6の発明によれば、複数の処理装置に提供した暗号データを、指定した前記処理装置に復号用データを基に復号させる場合に、各処理装置に保持させる復号用データの数を削減できるデータ処理方法、そのプログラムおよびその装置と処理装置を提供することができる。
【図面の簡単な説明】
【図1】図1は、本発明の第1実施形態に係わる通信システムの全体構成図である。
【図2】図2は、図1に示す管理装置のハードウェア構成図である。
【図3】図3は、図1に示す管理装置のリボケーション処理に先立って行う前処理を説明するためのフローチャートである。
【図4】図4は、図1に示す管理装置のリボケーション処理に先立って行う前処理を説明するための図3の続きのフローチャートである。
【図5】図5は、図1に示す管理装置が前処理等に使用するツリーを説明するための図である。
【図6】図6は、本発明の第1実施形態におけるラベルデータの生成方法を説明するための図である。
【図7】図7は、本発明の第1実施形態におけるラベルデータの生成方法を説明するための図である。
【図8】図8は、図1に示す受信装置に前処理で提供するラベルデータおよびマスタラベルデータを説明するための図である。
【図9】図9は、図1に示す管理装置によるリボケーション処理を説明するための図である。
【図10】図10は、図1に示す管理装置によるリボケーション処理を説明するためのフローチャートである。
【図11】図11は、図1に示す管理装置によるリボケーション処理を行う際に選択する集合を説明するための図である。
【図12】図12は、図1に示す受信装置のハードウェア構成図である。
【図13】図13は、図1に示す受信装置の全体動作を説明するためのフローチャートである。
【図14】図14は、図13に示すステップST33の処理を説明するためのフローチャートである。
【図15】図15は、図1に示す受信装置における中間ラベルデータの生成方法を説明するための図である。
【図16】図16は、本発明の第2実施形態の通信システムを説明するための図である。
【図17】図17は、本発明の第2実施形態の通信システムを説明するための図である。
【符号の説明】
2,2a,2b…管理装置、u1〜u16,um,uma,umb…受信装置、11…通信部、12…メモリ、13…処理部、51…通信部、52…メモリ、53…処理部
【発明の属する技術分野】
本発明は、暗号データの復号に係わる処理を行うデータ処理方法、そのプログラムおよびその装置と処理装置に関する。
【0002】
【従来の技術】
例えば、管理装置が、複数の受信装置に暗号データを送信し、リボークしない受信装置でのみ、当該暗号データを復号させる場合がある。
このような方式に、下記非特許文献1,2に記載されているSD(Subset Difference) がある。
このSD方式では、2分木によって構成されるツリーの各リーフに受信装置を対応付け、前記ツリーのルートまたはノードと、これらから分岐したノードまたはリーフの2つの要素からなる組を規定する。そして、各組について、当該組の要素のうちルートに近い一方の要素から分岐したリーフから、他方の要素から分岐したリーフを除いたリーフに対応付けられた受信装置を要素とする複数の集合を規定する。
これにより、各受信装置は、各々要素が異なる複数の集合の要素となる。
【0003】
また、管理装置が、各集合にラベルデータを割り当て、各受信装置に、当該受信装置が要素となる集合に割り当てたラベルデータのうち、所定のラベルデータをセキュアな状態で提供する。
そして、管理装置が、リボークしない受信装置のみを要素とする単数または複数の集合を特定し、当該集合に割り当てたそれぞれラベルデータから取得した鍵データを基に、コンテンツデータをそれぞれ暗号化して単数または複数の暗号データを生成し、これを全ての受信装置に送信すると共に、上記特定した集合を受信装置に指定する。
受信装置は、指定を受けた集合の要素である場合に、当該集合に対応するラベルデータを基に鍵データを生成し、管理装置から受信した暗号データを、当該鍵データを用いて復号する。
【0004】
【非特許文献1】
D.Halevy and A Shamir, ”The LCD broadcast encryption scheme”, CRYPTO 2002, Lecture Notes in Computer Science,vol.2442. pp.47−60,2002
【非特許文献2】
D.Naor,M.Naor and J.Lotspiech,”Revocation and tracing schemes for stateless receivers”, CRYPTO 2001.Lecture Notes in Computer Science.vol 2139.pp.41−62,2001.
【0005】
【発明が解決しようとする課題】
上述した従来のSD方式では、後述するように、各受信装置について、当該受信装置が割り当てられたツリー上のリーフとルートとの間に位置するルートおよび各ノードについて、当該ルートおよびノードと、これらに対してリーフ側に位置すると共に上記パス上のノードから当該パス以外の方向に直接分岐したノードまたはリーフとの組によって規定される集合に割り当てたラベルデータを、当該受信装置にセキュアな状態で提供して保持させる。受信装置は、上記規定した組の集合のうち、ラベルデータを受けていない集合のラベルデータを、上記提供を受けたラベルデータを基に演算を行って取得する。
ここで、受信装置の数をNとした場合に、管理装置が各受信装置に提供して保持させるラベルデータの数は、下記式(6)で示される。
【0006】
【数6】
【0007】
ところで、上述した従来のSD方式では、各受信装置に保持させるラベルデータの数(データ量)をさらに削減したいという要請がある。
上記非特許文献1に記載されたLSD方式についても、同様な要請がある。
また、上述した例の他に、暗号データの復号に複数の復号用データが用いられる場合に、復号を行う処理装置が保持する復号用データの数を削減したいという要請がある。
【0008】
本発明はかかる事情に鑑みてなされたものであり、複数の復号用データを用いて暗号データを復号する処理装置が保持する復号用データの数を削減できるデータ処理方法、そのプログラムおよびその装置と処理装置を提供することを目的とする。
また、本発明は、複数の処理装置に提供した暗号データを、指定した前記処理装置に復号用データを基に復号させる場合に、各処理装置に保持させる復号用データの数を削減できるデータ処理方法、そのプログラムおよびその装置と処理装置を提供することを目的とする。
【0009】
【課題を解決するための手段】
上述した従来技術の問題点を解決し、上述した目的を達成するために、第1の発明のデータ処理方法は、暗号データの復号に処理装置で用いられる復号用データを生成するデータ処理方法であって、前記暗号データの復号に前記処理装置で用いられる異なる複数の第1の復号用データの各々を、前記複数の第1の復号用データのそれぞれに割当てられ前記処理装置に公開された異なる複数の固有データのうち当該第1の復号用データに割当てられた前記固有データと、所定の非公開データとを基に生成する第1の工程と、前記第1の工程で生成した前記複数の第1の復号用データを前記処理装置が前記固有データを基に生成するために用いられ、前記処理装置にセキュアな状態で提供される単数の第2の復号用データを、前記非公開データと前記固有データとを基に生成する第2の工程とを有する。
【0010】
第1の発明のデータ処理方法の作用は以下のようになる。
先ず、第1の工程において、前記暗号データの復号に前記処理装置で用いられる異なる複数の第1の復号用データの各々を、前記複数の第1の復号用データのそれぞれに割当てられ前記処理装置に公開された異なる複数の固有データのうち当該第1の復号用データに割当てられた前記固有データと、所定の非公開データとを基に生成する。
次に、第2の工程において、前記第1の工程で生成した前記複数の第1の復号用データを前記処理装置が前記固有データを基に生成するために用いられ、前記処理装置にセキュアな状態で提供される単数の第2の復号用データを、前記非公開データと前記固有データとを基に生成する。
【0011】
第2の発明のデータ処理方法は、複数の処理装置のうち同じ集合の要素となる前記処理装置に対して共通の復号用データを基に暗号データを復号させるデータ処理方法であって、前記処理装置の各々が複数の前記集合の要素となるように、相互に異なる前記処理装置を要素とする複数の前記集合を規定した場合に、前記複数の処理装置の各々について、当該処理装置が要素となる複数の前記集合のうち、全部または一部の複数の前記集合に対して、前記処理装置に公開される相互に異なる固有データを割り当てる第1の工程と、前記複数の集合のそれぞれについて、当該集合に前記第1の工程で割り当てた前記固有データと非公開データとを基に、当該集合の要素となる前記処理装置が前記暗号データの復号に用いる第1の復号用データを生成する第2の工程と、前記複数の処理装置の各々について、当該処理装置を要素とする前記複数の集合に前記第1の工程で割り当てられた前記固有データと非公開データとを基に、当該複数の集合について前記第2の工程でそれぞれ生成された複数の前記第1の復号用データを当該処理装置が前記固有データを基に生成するために用いられ、当該処理装置にセキュアな状態で提供される単数の第2の復号用データを生成する第3の工程とを有する。
【0012】
第2の発明のデータ処理方法の作用は以下のようになる。
先ず、第1の工程において、複数の処理装置の各々について、当該処理装置が要素となる複数の前記集合のうち、全部または一部の複数の前記集合に対して、前記処理装置に公開される相互に異なる固有データを割り当てる。
第2の工程において、前記複数の集合のそれぞれについて、当該集合に前記第1の工程で割り当てた前記固有データと非公開データとを基に、当該集合の要素となる前記処理装置が前記暗号データの復号に用いる第1の復号用データを生成する。
第3の工程において、前記複数の処理装置の各々について、当該処理装置を要素とする前記複数の集合に前記第1の工程で割り当てられた前記固有データと非公開データとを基に、当該複数の集合について前記第2の工程でそれぞれ生成された複数の前記第1の復号用データを当該処理装置が前記固有データを基に生成するために用いられ、当該処理装置にセキュアな状態で提供される単数の第2の復号用データを生成する。
【0013】
第3の発明のプログラムは、暗号データの復号に処理装置で用いられる復号用データを生成するデータ処理装置が実行するプログラムであって、前記暗号データの復号に前記処理装置で用いられる異なる複数の第1の復号用データの各々を、前記複数の第1の復号用データのそれぞれに割当てられ前記処理装置に公開された異なる複数の固有データのうち当該第1の復号用データに割当てられた前記固有データと、所定の非公開データとを基に生成する第1の手順と、前記第1の手順で生成した前記複数の第1の復号用データを前記処理装置が前記固有データを基に生成するために用いられ、前記処理装置にセキュアな状態で提供される単数の第2の復号用データを、前記非公開データと前記固有データとを基に生成する第2の手順とを有する。
【0014】
第4の発明のデータ処理装置は、暗号データの復号に処理装置で用いられる復号用データを生成するデータ処理装置であって、前記暗号データの復号に前記処理装置で用いられる異なる複数の第1の復号用データの各々を、前記複数の第1の復号用データのそれぞれに割当てられ前記処理装置に公開された異なる複数の固有データのうち当該第1の復号用データに割当てられた前記固有データと、所定の非公開データとを基に生成する第1の手段と、前記第1の手段で生成した前記複数の第1の復号用データを前記処理装置が前記固有データを基に生成するために用いられ、前記処理装置にセキュアな状態で提供される単数の第2の復号用データを、前記非公開データと前記固有データとを基に生成する第2の手段とを有する。
【0015】
第4の発明のデータ処理装置の作用は以下のようになる。
先ず、第1の手段が、暗号データの復号に前記処理装置で用いられる異なる複数の第1の復号用データの各々を、前記複数の第1の復号用データのそれぞれに割当てられ前記処理装置に公開された異なる複数の固有データのうち当該第1の復号用データに割当てられた前記固有データと、所定の非公開データとを基に生成する。
次に、第2の手段が、前記第1の手段で生成した前記複数の第1の復号用データを前記処理装置が前記固有データを基に生成するために用いられ、前記処理装置にセキュアな状態で提供される単数の第2の復号用データを、前記非公開データと前記固有データとを基に生成する。
【0016】
第5の発明のプログラムは、複数の処理装置のうち同じ集合の要素となる前記処理装置に対して共通の復号用データを基に暗号データを復号させるデータ処理装置が実行するプログラムであって、前記処理装置の各々が複数の前記集合の要素となるように、相互に異なる前記処理装置を要素とする複数の前記集合を規定した場合に、前記複数の処理装置の各々について、当該処理装置が要素となる複数の前記集合のうち、全部または一部の複数の前記集合に対して、前記処理装置に公開される相互に異なる固有データを割り当てる第1の手順と、前記複数の集合のそれぞれについて、当該集合に前記第1の手順で割り当てた前記固有データと非公開データとを基に、当該集合の要素となる前記処理装置が前記暗号データの復号に用いる第1の復号用データを生成する第2の手順と、前記複数の処理装置の各々について、当該処理装置を要素とする前記複数の集合に前記第1の手順で割り当てられた前記固有データと非公開データとを基に、当該複数の集合について前記第2の手順でそれぞれ生成された複数の前記第1の復号用データを当該処理装置が前記固有データを基に生成するために用いられ、当該処理装置にセキュアな状態で提供される単数の第2の復号用データを生成する第3の手順とを有する。
【0017】
第6の発明のデータ処理装置は、複数の処理装置のうち同じ集合の要素となる前記処理装置に対して共通の復号用データを基に暗号データを復号させるデータ処理装置であって、前記処理装置の各々が複数の前記集合の要素となるように、相互に異なる前記処理装置を要素とする複数の前記集合を規定した場合に、前記複数の処理装置の各々について、当該処理装置が要素となる複数の前記集合のうち、全部または一部の複数の前記集合に対して、前記処理装置に公開される相互に異なる固有データを割り当てる第1の手段と、前記複数の集合のそれぞれについて、当該集合に前記第1の手段で割り当てた前記固有データと非公開データとを基に、当該集合の要素となる前記処理装置が前記暗号データの復号に用いる第1の復号用データを生成する第2の手段と、前記複数の処理装置の各々について、当該処理装置を要素とする前記複数の集合に前記第1の手段で割り当てられた前記固有データと非公開データとを基に、当該複数の集合について前記第2の手段でそれぞれ生成された複数の前記第1の復号用データを当該処理装置が前記固有データを基に生成するために用いられ、当該処理装置にセキュアな状態で提供される単数の第2の復号用データを生成する第3の手段とを有する。
【0018】
第6の発明のデータ処理装置の作用は以下のようになる。
先ず、第1の手段が、複数の処理装置の各々について、当該処理装置が要素となる複数の前記集合のうち、全部または一部の複数の前記集合に対して、前記処理装置に公開される相互に異なる固有データを割り当てる。
次に、第2の手段が、前記複数の集合のそれぞれについて、当該集合に前記第1の手段で割り当てた前記固有データと非公開データとを基に、当該集合の要素となる前記処理装置が前記暗号データの復号に用いる第1の復号用データを生成する。
次に、第3の手段が、前記複数の処理装置の各々について、当該処理装置を要素とする前記複数の集合に前記第1の手段で割り当てられた前記固有データと非公開データとを基に、当該複数の集合について前記第2の手段でそれぞれ生成された複数の前記第1の復号用データを当該処理装置が前記固有データを基に生成するために用いられ、当該処理装置にセキュアな状態で提供される単数の第2の復号用データを生成する。
【0019】
第7の発明のプログラムは、復号用データを基に暗号データを復号する処理装置が実行するプログラムであって、前記暗号データと、当該暗号データを復号するための復号用データの指定を受ける第1の手順と、予め保持している複数の固有データのうち、前記第1の手順で指定された復号用データに対応する固有データを選択する第2の手順と、予め保持している復号用データと、前記第2の手順で選択した固有データとを基に、前記指定された復号用データを生成する第3の手順と、前記第3の手順で生成した前記指定された復号用データを基に、前記第1の手順で受けた前記暗号データを復号する第4の手順とを前記処理装置に実行させる。
【0020】
第8の発明の処理装置は、復号用データを基に暗号データを復号する処理装置であって、前記暗号データと、当該暗号データを復号するための復号用データの指定を受ける第1の手段と、予め保持している複数の固有データのうち、前記第1の手段で指定された復号用データに対応する固有データを選択する第2の手段と、予め保持している復号用データと、前記第2の手段で選択した固有データとを基に、前記指定された復号用データを生成する第3の手段と、前記第3の手段で生成した前記指定された復号用データを基に、前記第1の手段で受けた前記暗号データを復号する第4の手段とを有する。
【0021】
第8の発明の処理装置の作用は以下のようになる。
先ず、第1の手段が、暗号データと、当該暗号データを復号するための復号用データの指定を受ける。
次に、第2の手段が、予め保持している複数の固有データのうち、前記第1の手段で指定された復号用データに対応する固有データを選択する。
次に、第3の手段が、予め保持している復号用データと、前記第2の手段で選択した固有データとを基に、前記指定された復号用データを生成する。
次に、第4の手段が、前記第3の手段で生成した前記指定された復号用データを基に、前記第1の手段で受けた前記暗号データを復号する。
【0022】
【発明の実施の形態】
第1実施形態
以下、本発明の実施形態に係わる通信システムについて説明する。
図1は、本発明の実施形態に係わる通信システム1の全体構成図である。
図1に示すように、通信システム1は、例えば、管理装置2と、16個の受信装置u1〜u16を有する。
ここで、管理装置2が、本発明のデータ処理装置に対応し、受信装置u1〜u16が本発明の処理装置に対応している。
なお、受信装置uの数Nは、16個に限定されず、複数であれば任意である。
【0023】
通信システム1では、管理装置2から受信装置u1〜u16には、例えば、無線で暗号データが送信(提供)される。
なお、本発明では、受信装置の代わりに、再生装置などの処理装置を用い、管理装置(送信装置)から処理装置への暗号データの提供を、光ディスク、磁気ディスクあるいは半導体記憶装置などの記録媒体を介して行ってもよい。
【0024】
通信システム1では、単数または複数の受信装置um(uは1〜16のいずれかの整数)を要素とする複数の集合を規定し、同じ集合の要素となる受信装置umに共通のラベルデータLABELを取得させ、当該ラベルデータを基に暗号化した暗号データを復号させる。
【0025】
管理装置2は、受信装置umの各々について、当該受信装置umが要素となる複数の上記集合のうち、全部または一部の複数の集合に対して、相互に異なる素数データを割り当て、それを受信装置umに公開する。
また、管理装置2は、上記複数の集合のそれぞれについて、当該集合に割り当てた素数データpと非公開データKとを基に、当該集合の要素となる受信装置umが暗号データの復号に用いるラベルデータLABELを生成する。
そして、管理装置2が、受信装置umの各々について、当該受信装置umを要素とする上記複数の集合に割り当てられた素数データと非公開データKとを基に、当該複数の集合についてそれぞれ生成された複数の上記ラベルデータLABELを当該受信装置umが素数データpを基に生成するための単数のマスタラベルデータMLmを生成する。
そして、管理装置2が、上記マスタラベルデータMLmを、受信装置umにセキュアな状態に提供する。
また、管理装置2が、上記複数のラベルデータLABELのうち、暗号データを復号させる受信装置umの指定に応じて選択した集合のラベルデータLABELを基に暗号化した暗号データを受信装置umに提供する。
【0026】
以下、図1に示す管理装置2および受信装置u1〜u16について説明する。
〔管理装置3〕
図2は、図1に示す管理装置2のハードウェア構成図である。
図2に示すように、管理装置2は、例えば、通信部11、メモリ12および処理部13を有する。
通信部11は、処理部13が生成したデータを無線方式で送信する。当該送信は、例えば、放送などのプッシュ(PUSH)方式で、ソフトウェア無線(SDR:Software Defined Radio)によるSDR・セキュア・ダウンロードを行う。
メモリ12は、処理部13によって実行されるプログラムPRG1と、プログラムPRG1の実行に用いられる種々データを記憶する。
ここで、プログラムPRG1が第5の発明のプログラムに対応している。
メモリ12は、例えば、後述するツリー、当該ツリーのリーフへの受信装置u1〜u16の割り当て、素数q1,q2、その積を示す公開データM、疑似乱数生成器G、ハッシュ関数H、非公開データK、ラベルデータLABEL(i,j)、マスタラベルデータMLに関する情報をセキュアな状態で記憶している。
本明細書において、セキュアな状態とは、データや内容を外部から監視、改竄できない状態をいう。
また、メモリ12は、後述するように、特別な集合に対して割り当てられた相互に異なる素数p(j)に関する情報を記憶する。ここで、jは、リーフの数をNとした場合に、1以上(2N−1)以下の任意の整数である。
管理装置2は、積M、疑似乱数生成器G、ハッシュ関数H、素数p(j)に関する情報を受信装置u1〜u16に公開する。
本明細書において、公開とは、例えば、管理装置2が受信装置u1〜u16に情報を公開すること、管理装置2が受信装置u1〜u16の各々に対して各受信装置u1〜u16が後述する処理において必要とする情報を公開すること、並びに、管理装置2が受信装置u1〜u16に限らず社会全般に情報を公開することのいずれか一つを示す。
【0027】
処理部13は、メモリ12に記憶されたプログラムPRG1を実行し、その実行に応じて管理装置2の処理を統括して制御する。本実施形態において、管理装置2の処理は、処理部13が実行するプログラムPRG1によって規定される。
【0028】
処理部13は、プログラムPRG1の実行に応じて、受信装置u1〜u16に所定のラベルデータLABELおよびマスタラベルデータMLを提供する前処理と、何れの受信装置をリボークするかに応じて選択した集合を指定する集合指定データと、リボークしない受信装置u1〜u16のみが復号可能な暗号データを送信するリボケーション処理とを行う。
【0029】
以下、管理装置2が行う各処理について説明する。
〔前処理〕
図3および図4は、管理装置2が行うリボケーション処理の前処理を説明するためのフローチャートである。
図3および図4において、ステップST7が第2の発明の第1の工程に対応し、ステップST9〜ST11が第1の発明の第1の工程および第2の発明の第2の工程に対応し、ステップST12が第1の発明の第2の工程および第2の発明の第3の工程に対応している。
また、図4に示すステップST11が第2の発明のステップST5に対応し、ステップST15が第2の発明の第6の工程に対応している。
また、第4の発明の第1の手段は処理部13がステップST9〜ST11を実行することで実現され、第4の発明の第2の手段は処理部13がステップST12を実行することで実現される。
また、第6の発明の第1の手段は処理部13がステップST7を実行することで実現され、第6の発明の第2の手段は処理部13がステップST9〜ST11を実行することで実現され、第6の発明の第3の手段は処理部13がステップST12を実行することで実現される。
なお、以下に示す処理は、処理部13によるプログラムPRG1の実行に応じて制御される。
【0030】
ステップST1:
管理装置2は、先ず、例えば、図5に示す少なくともN個の葉を持つ2分木によって構成されるツリー20を定義し、その情報をメモリ12に記憶する。
ここでは簡単のため,Nを2のべき乗の数と仮定する。このとき,ツリー20の葉の数がちょうどNになるように2分木を決めることができる。
ステップST2:
管理装置2は、図5に示すように、ツリー20の16個のリーフの各々に16個の受信装置u1〜u16を割り当て、その情報をメモリ12に記憶する。
【0031】
ステップST3:
管理装置2は、各ノードについて、ノード(i)の子孫であるノード(j)に対応する集合S(i,j)を規定する。すなわち、ノード(i)を本発明の第1の構成要素とし、ノード(j)を本発明の第2の構成要素とする組で表される集合S(i,j)を規定する。
本実施形態では、リーフ、並びに2分木の分岐点(ルートを含む)をノードとする。
上記集合S(i,j)は、ツリー20の2つのノード(i),(j)を用いて、「(ノード(i)から分岐したリーフからなる集合)から(ノード(i)から分岐したリーフからなる集合)を除いた集合」として規定する。
ノード(i)がノード(j)の先祖である(すなわち、ノードjはノードiと同一ではなく、ノード(j)からルートへのパス上にノード(i)が存在する)全てのノードの組についてこのような集合S(i,j)を定義する。
例えば、図5に示すツリー20において、集合S(2,8)は、ノード「2」から分岐したリーフに割り当てられた受信装置の集合{u1,u2,u3,u4,u5,u6,u7,u8}から、ノード「8」から分岐したリーフに割り当てられた受信装置の集合{u1,u2}を除いた集合{u3,u4,u5,u6,u7,u8}となる。
【0032】
ステップST4:
管理装置2は、ステップST3で規定した集合S(i,j)の中で、ノード(i)とノード(j)が親子関係になっているものを第1の特別な集合SS(i,j)とする。
さらに、リボークする受信装置がひとつもない場合に使用する、全受信装置u1〜u16を要素とする第2の特別な集合SS(1,Φ)を定義する。
第1の特別な集合と第2の特別な集合との合計は、(2N−1)個、本実施形態では31個となる。
【0033】
ステップST5:
管理装置2は、2つの素数データq1,q2を選択し、その積を示す公開データMを生成する。
素数データq1,q2としては、公開データMから素数データq1,q2を推定困難な程度に大きな値が選択される。
管理装置2は、公開データMを受信装置u1〜u16に公開する。
【0034】
ステップST6:
管理装置2は、ハッシュ関数Hと擬似乱数生成器Gの構成を選択し、それを公開する。また、管理装置2は、これらの情報をメモリ12に記憶する。
ハッシュ関数Hは,任意長の入力に対してあらかじめ定められた長さの出力を出す関数である。たとえば128ビット出力のハッシュ関数としてはMD5が、160ビット出力のハッシュ関数としてはSHA−1がよく知られている。MD5は、A.J.Menezes,P.C.van Oorschotand S.A.Vanstone著,Handbook of Applied Cryptography, CRC Press 1997のp.347に、SHA−1は同書のp.348にアルゴリズムが紹介されている。
また擬似乱数生成器Gは、図6に示すように、Cビットの入力に対し3Cビットの擬似乱数を出力する。
【0035】
ステップST7:
管理装置2は、(2N−1)個の素数データp(j)をランダムに選択する。
本実施形態では、N=16であるため、31個の素数データp(j)をランダムに選択する。ここで、素数データp(j)が本発明の固有データに対応している。
ここで、固有データは、本明細書で示す複数の固有データの間で値が異なればよい。
管理装置2は、上記ランダムに選択した素数データp(j)を、ステップST4で規定した第1の特別な集合SS(i,j)および第2の特別な集合SS(1,Φ)にそれぞれ割り当て、それを受信装置u1〜u16に公開する。
具体的には、管理装置2は、図5に示すように、各特別な集合SS(i,j)に素数データp(j)を割り当てる。ただし、j=2,...,2N−1である。また,素数データp(1)を第2の特別な集合SS(1,Φ)に割り当てる。
ステップST8:
管理装置2は、ステップST7で選択した(2N−1)個の素数データp(j)の積を示すデータTを生成する。
また、管理装置2は、K∈Z* M を満たす非公開データKをランダムに選択する。
【0036】
ステップST9:
管理装置2は、ステップST4で規定した第1の特別な集合SS(i,j)のラベルデータLABEL(i,j)を下記式(7)を基に生成する。
当該ラベルデータLABEL(i,j)が本発明の第1の復号用データに対応している。
【0037】
【数7】
LABEL(i,j)=H(KT/p(j) modM) …(7)
【0038】
ステップST10:
管理装置2は、ステップST4で規定した第2の特別な集合SS(1,Φ)のラベルデータLABEL(1,Φ)を下記式(8)を基に生成する。
【0039】
【数8】
LABEL(1,Φ)=H(KT/p(1) modM) …(8)
【0040】
ステップST11:
管理装置2は、ステップST9で生成した第1の特別な集合SS(i,j)のラベルデータLABEL(i,j)を基に、ノード(i)を第1の構成要素とし、ノード(j)から分岐したノードまたはリーフを第2の構成要素とする組で表される特別でない集合SのラベルデータLABELを生成する。
具体的には、管理装置2は、図6および図7に示すように、ステップST9で生成した第1の特別な集合SS(i,j)のCビットのラベルLABEL(i,j)を擬似乱数生成器Gに入力し,その結果である3Cビットのデータのうち上位Cビット(=GL(LABEL(i,j))を、ノード「i」を始点としたノード「j」の左側(一方)の子ノードLC(j)のラベルデータLABEL(i,LC(j))とする。
また、管理装置2は、ステップST9で生成した第1の特別な集合SS(i,j)のラベルLABEL(i,j)を擬似乱数生成器Gに入力し,その結果である3Cビットのデータのうち下位Cビット(=GR(LABEL(i,j))を、ノード「i」を始点としたノード「j」の右側(他方)の子ノードRC(j)のラベルデータLABEL(i,RC(j))とする。
そして、管理装置2は、上記生成したラベルデータLABEL(i,LC(j)),LABEL(i,RC(j))を擬似乱数生成器GL,GRに繰り返し入力することで、ノードiを始点とした、ノードjの子孫であるすべてのノードに対応するラベルデータを求める。
管理装置2は、ステップST9で生成した全ての特別な集合SS(i,j)のラベルデータに対して上記処理を行う。
上述したステップST7およびST8の処理により、ステップST3で規定した全ての集合S(i,j)のラベルデータLABEL(i,j)が生成される。
管理装置2は、集合S(i,j)の要素である受信装置が暗号データの復号に用いる鍵データSK(i,j)を、例えば、SK(i,j)=GM(LABEL(i,j))によって生成する。
すなわち、管理装置2は、ステップST7で生成した第1の特別な集合SS(i,j)のラベルLABEL(i,j)を擬似乱数生成器Gに入力し、その結果である3Cビットのデータのうち中位Cビット(=GM(LABEL(i,j))を、集合S(i,j)の要素である受信装置が暗号データの復号に用いる鍵データSK(i,j)とする。
【0041】
ステップST12:
管理装置2は、受信装置u1〜u16のそれぞれについて、当該受信装置umが要素となる第1の特別な集合SS(i,j)のラベルデータLABEL(i,j)と第2の特別な集合SS(1,Φ)のラベルデータLABEL(1,Φ)のマスタラベルデータMLmを下記式(9)を基に生成する。
ここで、マスタラベルデータMLmが本発明の第2の復号用データに対応している。
下記式(9)において、データwmは、受信装置umが要素となる第1の特別な集合SS(i,j)に割り当てられた素数データp(j)と、第2の特別な集合SS(1,Φ)に割り当てられた素数データp(1)との積を示している。
【0042】
0
【数9】
MLm=KT/wm modM …(9)
【0043】
図5に示す例では、w4は、p(1)・p(3)・p(5)・p(8)・p(18)となる。
また、受信装置umの特別な集合のラベルデータLABEL(1,3),LBALE(2,5),LABEL(4,8),LABEL(9,18),LABEL(1,Φ)の5つがマスタラベルデータMLmから生成される。
【0044】
ステップST13:
管理装置2は、全ての受信装置u1〜u16の各々に対して、当該受信装置が要素となる集合に対応するラベルデータを選択する。
具体的には、管理装置2は、受信装置umについて、受信装置um(mは1〜16の整数)が割り当てられたリーフからルートに至るパスpath(m)上の内部のノード「i」を始点とし、当該リ−フからノード「i」までのパスから直接分岐した(枝分かれした)ノード「j」に対応する集合S(i,j)のラベルデータLABEL(i,j)と、上記の第2の特別な集合SS(1,Φ)に対応するラベルデータLABEL(1,Φ)を選択する。
図5に示すツリー20の例では、管理装置2は、受信装置u4について、図8の「従来のSD」の欄に示すように、ラベルデータLABEL(1,3),LABEL(1,5),LABEL(1,8),LABEL(1,18),LABEL(2,5),LABEL(2,8),LABEL(2,18),LABEL(4,8),LABEL(4,18),LABEL(9,18),LABEL(1,Φ)の11個のラベルデータLABEL(i,j)を選択する。
これらの11個のラベルデータLABEL(i,j)のち、図9に示すように、LABEL(1,3),LABEL(2,5),LABEL(4,8)およびLABEL(9,18)が第1の集合SS(i,j)のラベルデータLABEL(i,j)となる。
【0045】
ステップST14:
管理装置2は、各受信装置umについて、ステップST13で選択したラベルデータLABEL(i,j)のうち,前述した第1の特別な集合および第2の特別な集合に対応するラベルデータLABEL(i,j)を除いたラベルデータLABEL(i,j)を選択する。
図5に示すツリー20の例では、管理装置2は、受信装置u4について、ラベルデータLABEL(1,5),LABEL(1,8),LABEL(1,18),LABEL(2,8),LABEL(2,18),LABEL(4,18)を選択する。
【0046】
ステップST15:
管理装置2は、各受信装置umについて、ステップST14で選択したラベルデータLABEL(i,j)と、ステップST12で導出したマスタラベルデータMLmとを、当該受信装置umにセキュアな状態で提供する。
受信装置umは、当該受けたラベルデータLABEL(i,j)とマスタラベルデータMLmとをセキュアな状態で記憶する。
受信装置u4の例では、図8に示す「第1実施形態」の欄のように、ラベルデータLABEL(1,5),LABEL(1,8),LABEL(1,18),LABEL(2,8),LABEL(2,18),LABEL(4,18)と、マスタラベルデータML4との合計7個のラベルデータを、受信装置u4にセキュアな状態で提供する。
このように、通信システム1によれば、従来のSD方式に比べて、管理装置2から受信装置umに提供して記憶させるラベルデータの数(データ量)を削減できる。
【0047】
〔リボケーション処理〕
管理装置2は、上述した前処理を行った後に、例えば、コンテンツデータを暗号化した暗号データを受信装置umに送信する際に、当該リボケーション処理を行う。
なお、以下に示す処理は、処理部13によるプログラムPRG1の実行に応じて制御される。
図10は、管理装置2が行うリボケーション処理を説明するためのフローチャートである。
図10に示す処理は第1の発明の第3の工程に対応している。
また、図10に示すステップST26が第2の発明の第4の工程に対応している。
ステップST21:
管理装置2は、受信装置u1〜u16のうち、リボークしない受信装置を特定する(暗号データを復号できる受信装置を指定する)。
ステップST22:
管理装置2は、ステップST21で特定したリボークしない受信装置を要素とし、かつ、リボークする受信装置を要素としない集合のうち、リボークしない受信装置がいずれかの集合の要素となりかつ、ノード(i)がルートに最も近くなるような単数または複数の集合S(i,j)を特定する。
管理装置2は、例えば、図11に示すように、受信装置u2,u11,u12をリボークする場合には、集合S(2,17)およびS(3,13)を特定する。
【0048】
ステップST23:
管理装置2は、ステップST22で特定した集合S(i,j)を指定する集合指定データを生成する。当該集合指定データは、例えば、集合S(i,j)の識別データを用いて、当該集合S(i,j)を指定する。
当該集合指定データが、本発明の指定データに対応し、集合の指定が本発明の復号用データに対応するラベルデータLABELの指定になる。
ステップST24:
管理装置2は、ステップST23で特定した集合S(i,j)のラベルデータLABEL(i,j)を用いて、鍵データSK(i,j)(=GM(LABEL(i,j)))を生成する。
【0049】
ステップST25:
管理装置2は、送信するデータを、ステップST24で生成した鍵データSK(i,j)のそれぞれで暗号化して暗号データを生成する。
図11に示す例では、管理装置2は、上記データを鍵データSK(2,17)で暗号化した暗号データと、上記データを鍵データSK(3,13)で暗号化した暗号データとの2つの暗号データを生成する。
ステップST26:
管理装置2は、ステップST23で生成した指定データと、ステップST25で生成した暗号データとを、図2に示す通信部11を介して受信装置u1〜u16に送信する。
一例として、前述した「前処理」はシステム立ち上げ時の一度だけ行い,「リボケーション処理」は送信したい情報がある度に(たとえばコンテンツを放送するとかROMディスクを生産する度に)行う。受信装置もシステム立ち上げ時または自身がシステムに参加するときにラベルを受け取り、下記の受信処理を繰り返して行う.
【0050】
〔受信装置u1〜u16〕
図12は、図1に示す受信装置umのハードウェア構成図である。
図12に示すように、受信装置umは、例えば、通信部51、メモリ52および処理部53を有する。
通信部51は、前述したように管理装置2が送信した暗号データおよび集合指定データを受信する。
メモリ52は、処理部53によって実行されるプログラムPRG2と、プログラムPRG2の実行に用いられる種々データを記憶する。
ここで、プログラムPRG2が第5の発明のプログラムに対応している。
例えば、メモリ52は、例えば、図4に示すツリー20、ツリー20の何れのリーフに受信装置umが割り当てられているかを示す情報、素数データp(j)、並びにその割り当て情報、公開データM、疑似乱数生成器Gに関する情報、ハッシュ関数Hに関する情報、図4に示すステップST15で管理装置2から受けたマスタラベルデータMLmおよびラベルデータLABELを記憶している。
【0051】
処理部53は、メモリ52に記憶されたプログラムPRG2を実行し、その実行に応じて受信装置umの処理を統括して制御する。本実施形態において、受信装置umの処理は、処理部53が実行するプログラムPRG2によって規定される。
【0052】
処理部53は、プログラムPRG2の実行に応じて、集合指定データによって指定された集合のラベルデータLABELの生成、マスタラベルデータMLmの生成、マスタラベルデータMLmからラベルデータLABELの生成、並びにラベルデータLABELから鍵データSKの生成、鍵データSKを用いた暗号データの復号などの処理を行う。
【0053】
図13は、図12に示す受信装置umの処理を説明するためのフローチャートである。
図13において、ステップST33が第2の発明の第8の工程に対応し、ステップST34が第2の発明の第9の工程に対応している。
ステップST31:
受信装置umの通信部51は、管理装置2から、前述した集合指定データと、単数または複数の暗号データを受信する。
ステップST32:
受信装置umの処理部53は、当該受信装置umが、ステップST31で受信した集合指定データが指定する単数または複数の集合のいずれかの要素であるか否かを判断し、要素であると判断するとステップST33に進み、そうでない場合には処理を終了する。
なお、受信装置umは、管理装置2によってリボークされない場合に、管理装置2からの集合指定データが示す単数または複数の集合のうち一つの集合の要素となっている。
【0054】
ステップST33:
受信装置umの処理部53は、後述するように、鍵データSK(i,j)を生成する。
ステップST34:
受信装置umは、ステップST33で生成した鍵データSK(i,j)を用いて、自らが要素となる集合に対応した暗号データを復号する。
【0055】
以下、図13に示す鍵データの生成処理(ステップST33)を詳細に説明する。
図14は、図13に示すステップST33の処理を説明するためのフローチャートである。
また、第8の発明の第1の手段は処理部53が図14に示すステップST41を実行して実現され、第2の手段および第3の手段は処理部53がステップST46,ST47,ST48を実行して実現され、第4の手段は処理部53が図13に示すステップST34を実行して実現される。
【0056】
ステップST41:
受信装置umは、集合指定データが指定する自らが要素となる集合S(i,j)が、第1あるいは第2の特別な集合であるか否かを判断し、特別な集合であると判断するとステップST48に進み、そうでない場合にはステップST42に進む。
ステップST42:
受信装置umは、集合指定データが指定する自らが要素となる集合S(i,j)のラベルデータLABELが、メモリ52に記憶されているか否かを判断し、記憶されていると判断すると、ステップST43に進み、そうでない場合にはステップST44に進む。
ステップST43:
受信装置umの処理部53は、上記指定された集合S(i,j)のラベルデータLABEL(i,j)をメモリ52から読み出し、これを擬似乱数生成器Gに入力し、その結果の中位CビットGM(LABEL(i,j))を、鍵データSK(i,j)とする。
【0057】
ステップST44:
受信装置umは、集合指定データが指定する自らが要素となる集合S(i,j)のラベルデータLABELを得るのに第1または第2の特別な集合のラベルデータLABELが必要か否かを判断し、必要であると判断するとステップST46に進み、そうでない場合にはステップST45に進む。
ステップST45:
受信装置umの処理部53は、メモリ52から、上記指定された集合S(i,j)を表すノード(i)および(j)の,ノード(j)からノード(i)へのパス上に、受信装置umがラベルLABEL(i,k)を持つノード(k)を見つけ,当該ラベルデータLABEL(i,k)をメモリ12から読み出し、これを擬似乱数生成器Gに入力し、必要に応じてその結果を繰り返し擬似乱数生成器Gに入力して、ラベルデータLABEL(i,j)を生成する。
そして、処理部53は、上記生成したラベルデータLABEL(i,j)を擬似乱数生成器Gに入力し、その結果の中位CビットGM(LABEL(i,j))を、鍵データSK(i,j)とする。
【0058】
ステップST46:
受信装置umの処理部53は、指定された集合S(i,j)のラベルデータLABEL(i,j)を得るのに必要な特別な集合SS(i,k)を特定し、当該特定した集合に割り当てられた素数データp(k)をメモリ12から読み出す。
処理部53は、当該読み出した素数データp(k)と、メモリ12から読み出したマスタラベルデータMLmおよび公開データMと、ハッシュ関数Hと、データWmとを用いて、下記式(10)を演算して当該特別な集合のラベルデータLABEL(i,k)を生成する。
このとき、処理部53は、メモリ52から読み出した公開された素数データp(j)のうち受信装置umが要素となる第1の特別な集合SS(i,j)に割当てられた素数データp(j)と、第2の特別な集合SS(1,Φ)に割当てられた素数データp(1)との積を演算等してデータwmを得る。
【0059】
【数10】
LABEL(i,k)=H(MLmwm/p(k) modM)…(10)
【0060】
ステップST47:
受信装置umの処理部53は、ステップST46で生成した特別な集合のラベルデータLABEL(i,k)を擬似乱数生成器Gに入力し、必要に応じてその結果を繰り返し擬似乱数生成器Gに入力して、ラベルデータLABEL(i,j)を生成する。
そして、処理部53は、上記生成したラベルデータLABEL(i,j)を擬似乱数生成器Gに入力し、その結果の中位CビットGM(LABEL(i,j))を、鍵データSK(i,j)とする。
【0061】
ステップST48:
受信装置umの処理部53は、指定された特別な集合SS(i,j)に割り当てられた素数データp(j)をメモリ12から読み出す。
処理部53は、当該読み出した素数データp(j)と、メモリ12から読み出したマスタラベルデータMLmおよび公開データMと、ハッシュ関数Hとを用いて、下記式(11)を演算して当該特別な集合のラベルデータLABEL(i,j)を生成する。
【0062】
【数11】
LABEL(i,j)=H(MLmwm/p(j) modM)…(11)
【0063】
受信装置umの処理部53は、当該生成した特別な集合のラベルデータLABEL(i,j)を擬似乱数生成器Gに入力し、その結果の中位CビットGM(LABEL(i,j))を、鍵データSK(i,j)とする。
【0064】
以下、図11を例に説明する。
図11に示すように、受信装置u2,u11,u12がリボークされ、集合S(2,17),S(3,13)に対応する鍵データSK(2,17),SK(3,13)で暗号化された暗号データを管理装置2が送信する場合を考える。
この場合には、受信装置u4は,ラベルデータLABEL(1,5),LABEL(1,8),LABEL(1,18),LABEL(2,8),LABEL(2、18),LABEL(4,18)の6個のラベルデータと、マスタラベルデータML4をメモリ52に記憶する。
【0065】
受信装置u4は、集合S(2,17)について、ノード(17)の先祖であるノード(8)を用いたラベルデータLABEL(2,8)を直接保持しているため、これに擬似乱数生成器Gを必要な回数だけ適用することで鍵データSK(2,17)を得ることができる。
一方、受信装置u5は、LABEL(1,4),LABEL(1,11),LABEL(1,21),LABEL(2,11),LABEL(2,21),LABEL(5,21)の6個のラベルデータとマスタラベルデータML5を、メモリ12に記憶している。
受信装置u5は、集合S(2,17)に対し、ノード(17)の先祖であるノード(k)を用いたラベルデータLABAL(2,k)をメモリ12に保持していない。
そのため、受信装置u5は、メモリ12に記憶しているマスタラベルデータML5から、ノード(17)の先祖であるノード(4)に対応したラベルデータLABEL(2,4)を生成し、これに擬似乱数生成器Gを必要な回数だけ適用することで鍵データSK(2,17)を得る。
【0066】
なお、リボークすべき受信装置umが1台もなく、集合として第2の特別な集合SS(1,Φ)が使用されていた場合、受信装置umは、「LABEL(1,Φ)=H(MLmwm/p( 1 ) modM)」の処理によりマスターラベルMLmからラベルデータLABAL(1,Φ)を計算し、それを擬似乱数生成器Gに入力して出力の中央部分のCビットを求める。
すなわち、鍵データSK(1,Φ)を、GM(LABAL(1,Φ))により求め、これを基に暗号データを復号する。
【0067】
以上説明したように、通信システム1によれば、図4に示すステップST12,ST15を用いて説明したように、特別な集合の複数のラベルデータLABELを生成するための単数のマスタラベルデータMLmを生成し、これを受信装置umにセキュアな状態で提供して保持させることで、受信装置umが記憶(保持)するラベルデータおよびマスタラベルデータの数を、従来のSD方式に比べて削減できる。
また、通信システム1によれば、受信装置umは、自らが保持するマスタラベルデータMLmを基に図14に示すステップST46,ST48を用いて説明したように、特別な集合の複数のラベルデータを適切に取得できる。そのため、リボークされない受信装置umは、管理装置2から受信した暗号データを当該鍵データを基に適切に復号できる。
その一方、マスタラベルデータMLmを保持しない他の受信装置は、当該マスタラベルデータMLmに対応したラベルデータLABELを取得できない。
【0068】
第2実施形態
本実施形態の管理装置2aおよび受信装置umaは、以下に示す処理以外は、第1実施形態の管理装置2および受信装置umと同じである。
以下、上述したSD方式を基礎としたLSD(Layered Subset Difference)方式に本発明を適用した場合を例示する。
LSD方式には、Basic(基本)方式と、その拡張であるGeneral(一般化)方式がある。
ここではBasic_LSDに本発明を適用した場合について説明する。
本実施形態の通信システムは、上述した第1の実施形態の通信システムにおいて、特別レベル(Special Level)と、特別レベル間の階層であるレイヤという新たな概念を取り入れたものである。
例えば、第1実施形態で説明したツリー20内で、図15に示すように、特定の階層を特別レベルとして定義する。
本実施形態では、特別ラベルデータは1種類だけであるが、後述する第3実施形態においては重要度の異なる複数の特別レベルを用いる。
ここで、簡単のため、log1/2 N(Nは受信装置umの数)は整数であるとする。
【0069】
本実施形態では、図15に示すように、ツリー20のルートからリーフに至るまでのそれぞれの階層のうち、ルートとリーフのレベルを含む、log1/2 Nごとの階層を特別レベルと規定する。
そして、隣り合う2つの特別レベルに挟まれた単数または複数の階層(両方の特別レベルを含む)を、レイヤと呼ぶ。
図15の例では、ルートの階層、ノードkを含む階層、リーフの階層が特別レベルであり、ルートの階層とノードiを含む階層とノードkを含む階層が1つのレイヤを構成する。またノードkを含む階層とノードjを含む階層とリーフを含む階層が別のレイヤを構成する。
【0070】
本実施形態では、管理装置2aは、第1実施形態で規定した集合S(i,j)のうち、ノードiとノードjが同一レイヤにあるか、もしくはノードiが特別レベルにあるものだけを規定し、当該規定した集合S(i,j)についてのみ、図3および図4を用いて説明したようにマスタラベルデータMLmおよびラベルデータLABELの生成を行う。
すなわち、本実施形態では、第1実施形態で規定した集合のうちのいくつかは規定されなくなるが、この規定されない集合は、本実施形態で規定される集合の高々2つの和集合で表すことができる。
例えば、図15の例では、集合S(i,j)は、本実施形態では規定されないが、ノードiからノードjへのパス上の、ノードiに最も近い特別レベル上のノード(ノードk)を用いて、S(i,j)=S(i,k)∪S(k,j)と表すことができる。
前述した第1実施形態の管理装置2は、特定(選択)した集合S(i,j)について、それに対応する鍵データSK(i,j)を用いて暗号化した1つの暗号データを生成して受信装置umに提供したが、本実施形態の管理装置2aは、集合S(i,k)とS(k,j)に対応する集合キーSK(i,k),SK(k,j)を用いてそれぞれ暗号化した2つの暗号データを生成して受信装置umaに送信(提供)する。
【0071】
これにより、管理装置2aでは、送信する暗号データの数(通信量)は、第1の実施形態の管理装置2の高々2倍に増加するが、各受信装置umaが保持するラベルデータの数を第1実施形態の受信装置umに比べて減らすことができる。
【0072】
管理装置2aでは、擬似乱数生成器Gを用いてラベルデータLABEL(i,j)を順に生成する過程で、ノード(i)が特別レベルにない場合、ノード(i)の一つ下の特別レベルよりも下のノードをjとするラベルデータは利用されないので、当該一つ下の特別レベルまででラベルデータの生成を止める。
管理装置2aは、前述した前処理において、ラベルデータを各受信装置umにセキュアな状態で提供する場合にも、上述した条件で生成したラベルデータのなかから選択して受信装置umaに提供する。
【0073】
図16および図17は、図9のツリー20を基に受信装置umが割り当てられている場合に、本実施形態の受信装置u4aが記憶するラベルデータLABELを説明するための図である。
図17および図18に示すように、従来のBASIC_LSDを採用した場合には、提供して記憶させたラベルデータLABEL(1,3),LABELE(1,5),LABEL(1,8),LABEL(1,18),LABEL(2,5),LABEL(4,8),LABEL(4,18),LABEL(9,18)と特別なラベルの合計9個のラベルデータを受信装置u4が保持する必要がある。
これに対して、本実施形態の管理装置2aでは、上述したようにマスタラベルデータMLmを用いることで、ノード(i),(j)が親子関係にある第1の特別な集合のラベルデータLABELと、前述した第2の特別な集合のラベルデータLABEL(1,Φ)を、一つのマスタラベルデータMLmから受信装置umが導出する。
そのため、管理装置2aは、受信装置u4aに対して、前処理において、図18に示すように、ラベルデータLABEL(1,5),LABEL(1,8),LABEL(1,18),LABEL(4,18)と、マスタラベルデータML4の合計5個のラベルデータを提供して保持させる。
【0074】
以下、受信装置umaの数をNとした場合に、従来のBASIC_LSDに比べて、本実施形態において受信装置umaに記憶させるラベルデータの数を削減できることを説明する。
すなわち、ノード(i),(j)が親子関係になるようなラベルデータLABEL(i,j)を各受信装置umaがいくつ保持すべきかを考える。
ノード(i),(j)が親子関係になっているときには,以下の3つの場合が考えられる。
(A)ノード(i)が特別レベルにある。
(B)ノード(j)が特別レベルにある。
(C)ノード(i),(j)の双方が特別レベルにない。
【0075】
上記(A)〜(C)のいずれの場合も、ノード(i),(j)が親子関係にある(つまり,ツリー上で隣り合っている)以上、ノード(i),(j)は同一レイヤに存在する。すなわち、集合S(i,j)はBasic_LSD方式で定義されるための条件を満たしている。
つまり、このような集合はBasic_LSDで定義され使用されるため、受信装置umaはそれに対応するLABEL(i,j)を保持しておく必要がある。
このようなノード(i),(j)は、受信装置umaについては、ノード(i)の位置がツリーの高さ分(すなわち,受信装置が割り当てられたリーフからルートへのパス上の、リーフを除くノードすべて)あり、ノード(i)を決めればノード(j)がただ1つ決まる(ノード(i)の子で、上記のパス上にないノード)ため、ツリー20の高さ分,すなわちlogN個だけ存在する。
【0076】
本実施形態では、受信装置umaが、これらのlogN個の第1の特別なラベルデータと1つの第2の特別なラベルデータを、第1実施形態で説明したように、マスタラベルデータMLmから生成できるように規定し、このマスタラベルデータMLを受信装置umaにセキュアな状態で提供して保持する。
これにより、受信装置umaが保持するラベルデータの数をlogN(=logN+1−1)だけ削減できる。
上述のように、従来のBasic_LSD方式では受信装置umaが保持するラベルデータの総数はlog3/2N+1であるが、本実施形態では、受信装置umaが保持するラベルデータの数を、log3/2N−logN+1に削減できる。
【0077】
第3実施形態
本実施形態の管理装置2bおよび受信装置umbは、以下に示す処理以外は、第1および第2実施形態の管理装置2,2aおよび受信装置um,umaと同じである。
本実施形態では、General_LSDに本発明を適用した場合を説明する。
上述した従来のBasic_LSD方式では,1種類の特別レイヤを用いたが、本実施形態では、General_LSDと同様に、重要度の異なる複数の特別レベルを用いる。
すなわち、前述したように受信装置umbをリーフに対応付けたツリー20において、ルートからノード(i)を経てノード(j)に至るパスを1本のグラフとして考える。
ツリー20のルートとノード(j)が端点となり、ツリー20のノードがグラフのノードとなり,端点以外のノードのひとつがノード(j)となっている。このグラフでは,各ノードはルートからの距離で表される。この距離は,d桁のb進数(ただしb=O(log1/dN)で表される。
たとえば、ルートは「0...00」と表され、その隣のノード(ツリー20において、ルートの子ノードであるノード)は「0...01」と表される。
【0078】
この場合に、第1実施形態で規定した集合S(i,j)は、規定された変換(ノードからノードへの遷移)を組み合わせることで、ノード(i)からノード(j)への最終的な遷移であると考える。
上記規定された変換は上記集合に対応し、最終的な遷移に要する個々の遷移が、集合S(i,j)を分割して表すのに必要な集合を示す。
【0079】
例えば、ノード(i),(k1),(k2),(k(d−1)),(j)がこの順で、ツリー20のパス上に存在する場合に、集合S(i,j)は、本実施形態では、下記式(12)に示すように、高々d個の集合の和集合で表される。
【0080】
【数12】
【0081】
本実施形態では、ノード(i)が上記のグラフにおいて、(x)a(0)と表されるとき、(x+1)0(0)あるいは(x)(a’)(y)で表されるノード(j)への遷移を全て規定できる。
ここで、aは非ゼロの数字のうち1番右にある数字、(x)は任意の数字列、(0)はゼロの列、a’≧a、(y)は(0)と同じ長さの任意の数字列である。
【0082】
すなわち、第2実施形態は、当該第3実施形態においてd=2、(一番右の)最終桁が0である2桁の数字で表されるレベルを特別レベルとしたものである。
本実施形態では、ノード(i)を表す数字における一番右のゼロの列の桁数が、そのレベルの重要度を表し、本実施形態で定義される集合S(i,j)を表すノード(j)は、ノード(i+1)からノード(i)よりも重要度の高い最初のノードまでのいずれのノード(両端のノードを含む)にもなる可能性がある。
例えば、i=825197,j=864563とすると,ノード(i)からノード(j)への遷移、すなわち集合S(i,j)は、「825917→825920→826000→830000→864563」という上述した4つの遷移によって表すことができる。
すなわち,k1=825920,k2=826000,k3=830000とおけば、下記式(13)が成り立つ。
【0083】
【数13】
【0084】
本実施形態では、管理装置2bは、サブセットS(i,j)の要素となる受信装置umbに復号させる暗号データとして、集合S(i,k1),S(k1,k2),S(k2,k3),S(k3,j)に対応するラベルデータLABELから生成した鍵データを用いて暗号化した4つの暗号データを生成および送信する。
【0085】
本実施形態によれば、受信装置umbが保持すべきラベルデータの数は、パラメータdが大きくなるに従って減少し、最終的には下記式(14)となる。
このとき,送信すべき暗号データの数は、d(2r−1)となる。ここで、rはリボークする受信装置の数を示している。
【0086】
【数14】
【0087】
本実施形態において、第1および第2実施形態と同様に、管理装置2bは、受信装置umbに対して、受信装置umbが復号に使用するラベルデータLABELのうち、ノード(i),(j)が親子関係になっている特別な集合SS(i,j)に対応する複数のラベルデータLABAL(i,j)を導出するための単数のマスタラベルデータMLmをセキュアな状態で提供して保持させる。
これは、ノード(i)としてどんな値をとっても、その子ノード(j)、すなわちノード(i+1)への遷移は、上述した遷移の条件に当てはまるためである。
すなわち、本実施形態においても、第1および第2実施形態の場合と同様に、受信装置umについて、当該受信装置umが利用するラベルデータのうちノード(i),(j)が親子関係になっているものはlogN個ある。
管理装置2bは、これらlogN個の第1の特別なラベルデータと1つの第2の特別なラベルデータを、第1実施形態と同様に、1つのマスタラベルデータMLmから作り出し、当該マスタラベルデータMLmを受信装置umbに保持させることで、受信装置umbが保持するラベルデータを、従来のGeneral_LSDに比べてlogN個削減できる。
【0088】
本発明は上述した実施形態には限定されない。
上述した実施形態では、2分木を基に構成されたツリーのリーフに受信装置umを対応付けた場合を例示したが、3分木以上の木を少なくとも一つ含むツリーのリーフに受信装置umを対応付けた場合にも本発明は同様に適用可能である。
また、上述した実施形態では、SD,LSDなどのリボケーション方式に本発明を適用した場合を例示したが、処理装置が複数の鍵データ(復号用データ)を用いて暗号データを復号する場合に、当該処理装置が保持する鍵データの数を削減する要請のあるその他のシステムについても、本発明は同様に適用できる。
【0089】
【発明の効果】
以上説明したように、第1、第3、第4、第7および第8の本発明によれば、複数の復号用データを用いて暗号データを復号する処理装置が保持する復号用データの数を削減できるデータ処理方法、そのプログラムおよびその装置と処理装置を提供することができる。
また、第2、第5および第6の発明によれば、複数の処理装置に提供した暗号データを、指定した前記処理装置に復号用データを基に復号させる場合に、各処理装置に保持させる復号用データの数を削減できるデータ処理方法、そのプログラムおよびその装置と処理装置を提供することができる。
【図面の簡単な説明】
【図1】図1は、本発明の第1実施形態に係わる通信システムの全体構成図である。
【図2】図2は、図1に示す管理装置のハードウェア構成図である。
【図3】図3は、図1に示す管理装置のリボケーション処理に先立って行う前処理を説明するためのフローチャートである。
【図4】図4は、図1に示す管理装置のリボケーション処理に先立って行う前処理を説明するための図3の続きのフローチャートである。
【図5】図5は、図1に示す管理装置が前処理等に使用するツリーを説明するための図である。
【図6】図6は、本発明の第1実施形態におけるラベルデータの生成方法を説明するための図である。
【図7】図7は、本発明の第1実施形態におけるラベルデータの生成方法を説明するための図である。
【図8】図8は、図1に示す受信装置に前処理で提供するラベルデータおよびマスタラベルデータを説明するための図である。
【図9】図9は、図1に示す管理装置によるリボケーション処理を説明するための図である。
【図10】図10は、図1に示す管理装置によるリボケーション処理を説明するためのフローチャートである。
【図11】図11は、図1に示す管理装置によるリボケーション処理を行う際に選択する集合を説明するための図である。
【図12】図12は、図1に示す受信装置のハードウェア構成図である。
【図13】図13は、図1に示す受信装置の全体動作を説明するためのフローチャートである。
【図14】図14は、図13に示すステップST33の処理を説明するためのフローチャートである。
【図15】図15は、図1に示す受信装置における中間ラベルデータの生成方法を説明するための図である。
【図16】図16は、本発明の第2実施形態の通信システムを説明するための図である。
【図17】図17は、本発明の第2実施形態の通信システムを説明するための図である。
【符号の説明】
2,2a,2b…管理装置、u1〜u16,um,uma,umb…受信装置、11…通信部、12…メモリ、13…処理部、51…通信部、52…メモリ、53…処理部
Claims (19)
- 暗号データの復号に処理装置で用いられる復号用データを生成するデータ処理方法であって、
前記暗号データの復号に前記処理装置で用いられる異なる複数の第1の復号用データの各々を、前記複数の第1の復号用データのそれぞれに割当てられ前記処理装置に公開された異なる複数の固有データのうち当該第1の復号用データに割当てられた前記固有データと、所定の非公開データとを基に生成する第1の工程と、
前記第1の工程で生成した前記複数の第1の復号用データを前記処理装置が前記固有データを基に生成するために用いられ、前記処理装置にセキュアな状態で提供される単数の第2の復号用データを、前記非公開データと前記固有データとを基に生成する第2の工程と
を有するデータ処理方法。 - 複数の前記処理装置に異なる複数の前記固有データを割り当て、前記複数の処理装置の各々について前記第1の工程および前記第2の工程により前記第2の復号用データを生成する場合に、
前記定数Tは、前記複数の処理装置に割当てられた前記複数の固有データの積を示す
請求項2に記載のデータ処理方法。 - 複数の処理装置のうち同じ集合の要素となる前記処理装置に対して共通の復号用データを基に暗号データを復号させるデータ処理方法であって、
前記処理装置の各々が複数の前記集合の要素となるように、相互に異なる前記処理装置を要素とする複数の前記集合を規定した場合に、
前記複数の処理装置の各々について、当該処理装置が要素となる複数の前記集合のうち、全部または一部の複数の前記集合に対して、前記処理装置に公開される相互に異なる固有データを割り当てる第1の工程と、
前記複数の集合のそれぞれについて、当該集合に前記第1の工程で割り当てた前記固有データと非公開データとを基に、当該集合の要素となる前記処理装置が前記暗号データの復号に用いる第1の復号用データを生成する第2の工程と、
前記複数の処理装置の各々について、当該処理装置を要素とする前記複数の集合に前記第1の工程で割り当てられた前記固有データと非公開データとを基に、当該複数の集合について前記第2の工程でそれぞれ生成された複数の前記第1の復号用データを当該処理装置が前記固有データを基に生成するために用いられ、当該処理装置にセキュアな状態で提供される単数の第2の復号用データを生成する第3の工程と
を有するデータ処理方法。 - 前記第2の工程で生成した複数の前記第1の復号用データのうち、指定した前記集合に対応する前記第1の復号用データを基に暗号化され前記処理装置に提供される前記暗号データを生成する第4の工程
をさらに有する請求項4に記載のデータ処理方法。 - 各リーフに単数の前記処理装置が対応付けられたツリー上のルートと前記リーフとの間の同じパス上に位置する2つの構成要素からなる組に対して、当該組の構成要素のうちルートに近い第1の前記構成要素から分岐したリーフから、第2の前記構成要素から分岐したリーフを除いたリーフに割り当てられた前記処理装置を要素とする前記集合を規定した場合に、
前記第1の工程は、前記2つの構成要素が親子関係を持つ組の複数の前記集合に対して、相互に異なる前記固有データを割り当てる
請求項4に記載のデータ処理方法。 - 前記第1の工程において前記固有データを割り当てた前記集合について前記第2の工程で生成した前記第1の復号用データを基に、当該組の前記第1の構成要素を共通にし、当該組の前記第2の構成要素から分岐したノードあるいはリーフを前記第2の構成要素とする組に対応する集合の復号用データを生成する第5の工程
をさらに有する請求項6に記載のデータ処理方法。 - 前記複数の処理装置の各々について、当該処理装置が要素となる複数の前記集合のうち、前記ツリーにおいて当該処理装置が割り当てられた前記リーフと前記ルートとの間のパス上にあるルートまたはノードを前記第1の構成要素とし、当該パス上の当該第1の構成要素と当該リーフとを除くこれらの間のノードから当該パス以外の向きに直接分岐したノードまたはリーフを前記第2の構成要素とし、当該第1の構成要素と当該第2の構成要素とが親子関係にない組に対応する前記集合に対して割り当てた復号用データを、当該集合の要素となる前記処理装置にセキュアな状態で提供する第6の工程
をさらに有する請求項7に記載のデータ処理方法。 - 前記第1の工程は、前記複数の処理装置の各々について、当該処理装置が要素となる複数の前記集合のうち、全部または一部の複数の前記集合に対して、相互に異なる素数データpを前記固有データとして割り当て、
前記第2の工程は、非公開データKと、前記素数データpと、所定の素数の積を示す公開データMと、ハッシュ関数Hと、前記第1の工程について前記複数の処理装置の全てについて当該処理装置が要素となる複数の前記集合に割り当てた前記素数データpの積を示す定数Tとを基に、下記式(3)により、前記第1の復号用データLABELを生成し、
前記第3の工程は、前記複数の処理装置のそれぞれについて、当該処理装置が要素となる前記複数の集合に前記第1の工程でそれぞれ割り当てられた複数の前記素数データの積を示すデータwと、前記非公開データKと、前記公開データMと、前記定数Tとを基に、下記式(4)により、前記第2の復号データMLを生成する
請求項4に記載のデータ処理方法。
- 前記選択された復号用データを当該復号用データの識別データを用いて指定する指定データを前記処理装置に提供する第7の工程をさらに有する
請求項4に記載のデータ処理方法。 - 前記処理装置が、前記第7の工程で受けた前記指定データに対応する前記公開された固有データと、提供を受けた前記第2の復号用データとを基に、前記第1の復号用データを生成する第8の工程と、
前記処理装置が、提供を受けた前記暗号データを、前記第8の工程で生成した前記第1の復号用データを用いて復号する第9の工程と
をさらに有する請求項10に記載のデータ処理方法。 - 暗号データの復号に処理装置で用いられる復号用データを生成するデータ処理装置が実行するプログラムであって、
前記暗号データの復号に前記処理装置で用いられる異なる複数の第1の復号用データの各々を、前記複数の第1の復号用データのそれぞれに割当てられ前記処理装置に公開された異なる複数の固有データのうち当該第1の復号用データに割当てられた前記固有データと、所定の非公開データとを基に生成する第1の手順と、
前記第1の手順で生成した前記複数の第1の復号用データを前記処理装置が前記固有データを基に生成するために用いられ、前記処理装置にセキュアな状態で提供される単数の第2の復号用データを、前記非公開データと前記固有データとを基に生成する第2の手順と
を有するプログラム。 - 暗号データの復号に処理装置で用いられる復号用データを生成するデータ処理装置であって、
前記暗号データの復号に前記処理装置で用いられる異なる複数の第1の復号用データの各々を、前記複数の第1の復号用データのそれぞれに割当てられ前記処理装置に公開された異なる複数の固有データのうち当該第1の復号用データに割当てられた前記固有データと、所定の非公開データとを基に生成する第1の手段と、
前記第1の手段で生成した前記複数の第1の復号用データを前記処理装置が前記固有データを基に生成するために用いられ、前記処理装置にセキュアな状態で提供される単数の第2の復号用データを、前記非公開データと前記固有データとを基に生成する第2の手段と
を有するデータ処理装置。 - 複数の処理装置のうち同じ集合の要素となる前記処理装置に対して共通の復号用データを基に暗号データを復号させるデータ処理装置が実行するプログラムであって、
前記処理装置の各々が複数の前記集合の要素となるように、相互に異なる前記処理装置を要素とする複数の前記集合を規定した場合に、
前記複数の処理装置の各々について、当該処理装置が要素となる複数の前記集合のうち、全部または一部の複数の前記集合に対して、前記処理装置に公開される相互に異なる固有データを割り当てる第1の手順と、
前記複数の集合のそれぞれについて、当該集合に前記第1の手順で割り当てた前記固有データと非公開データとを基に、当該集合の要素となる前記処理装置が前記暗号データの復号に用いる第1の復号用データを生成する第2の手順と、
前記複数の処理装置の各々について、当該処理装置を要素とする前記複数の集合に前記第1の手順で割り当てられた前記固有データと非公開データとを基に、当該複数の集合について前記第2の手順でそれぞれ生成された複数の前記第1の復号用データを当該処理装置が前記固有データを基に生成するために用いられ、当該処理装置にセキュアな状態で提供される単数の第2の復号用データを生成する第3の手順と
を有するプログラム。 - 複数の処理装置のうち同じ集合の要素となる前記処理装置に対して共通の復号用データを基に暗号データを復号させるデータ処理装置であって、
前記処理装置の各々が複数の前記集合の要素となるように、相互に異なる前記処理装置を要素とする複数の前記集合を規定した場合に、
前記複数の処理装置の各々について、当該処理装置が要素となる複数の前記集合のうち、全部または一部の複数の前記集合に対して、前記処理装置に公開される相互に異なる固有データを割り当てる第1の手段と、
前記複数の集合のそれぞれについて、当該集合に前記第1の手段で割り当てた前記固有データと非公開データとを基に、当該集合の要素となる前記処理装置が前記暗号データの復号に用いる第1の復号用データを生成する第2の手段と、
前記複数の処理装置の各々について、当該処理装置を要素とする前記複数の集合に前記第1の手段で割り当てられた前記固有データと非公開データとを基に、当該複数の集合について前記第2の手段でそれぞれ生成された複数の前記第1の復号用データを当該処理装置が前記固有データを基に生成するために用いられ、当該処理装置にセキュアな状態で提供される単数の第2の復号用データを生成する第3の手段と
を有するデータ処理装置。 - 復号用データを基に暗号データを復号する処理装置が実行するプログラムであって、
前記暗号データと、当該暗号データを復号するための復号用データの指定を受ける第1の手順と、
予め保持している複数の固有データのうち、前記第1の手順で指定された復号用データに対応する固有データを選択する第2の手順と、
予め保持している復号用データと、前記第2の手順で選択した固有データとを基に、前記指定された復号用データを生成する第3の手順と、
前記第3の手順で生成した前記指定された復号用データを基に、前記第1の手順で受けた前記暗号データを復号する第4の手順と
を前記処理装置に実行させるプログラム。 - 複数の前記処理装置のうち同じ集合の要素となる前記処理装置に共通の復号用データを提供し、前記複数の処理装置に提供した暗号データを、指定した前記処理装置に前記復号用データを基に復号させるために、前記処理装置の各々が複数の前記集合の要素となるように、相互に異なる前記処理装置を要素とする複数の前記集合を規定した場合に、
前記固有データは、前記プログラムを実行する前記処理装置が要素となる複数の前記集合のうち、全部または一部の複数の前記集合に対して、相互に異なるように割り当てられており、
前記予め保持している前記復号用データは、当該処理装置を要素とする前記複数の集合に割り当てられた固有データと非公開データとを基に、当該複数の集合についてそれぞれ生成された複数の前記復号用データを当該処理装置が前記固有データを基に生成するための単数の復号用データである
請求項16に記載のプログラム。 - 復号用データを基に暗号データを復号する処理装置であって、
前記暗号データと、当該暗号データを復号するための復号用データの指定を受ける第1の手段と、
予め保持している複数の固有データのうち、前記第1の手段で指定された復号用データに対応する固有データを選択する第2の手段と、
予め保持している復号用データと、前記第2の手段で選択した固有データとを基に、前記指定された復号用データを生成する第3の手段と、
前記第3の手段で生成した前記指定された復号用データを基に、前記第1の手段で受けた前記暗号データを復号する第4の手段と
を有する処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003171259A JP2005012280A (ja) | 2003-06-16 | 2003-06-16 | データ処理方法、そのプログラムおよびその装置と処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003171259A JP2005012280A (ja) | 2003-06-16 | 2003-06-16 | データ処理方法、そのプログラムおよびその装置と処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005012280A true JP2005012280A (ja) | 2005-01-13 |
Family
ID=34095803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003171259A Pending JP2005012280A (ja) | 2003-06-16 | 2003-06-16 | データ処理方法、そのプログラムおよびその装置と処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005012280A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006253822A (ja) * | 2005-03-08 | 2006-09-21 | Toshiba Corp | 復号装置、復号方法、及びプログラム |
-
2003
- 2003-06-16 JP JP2003171259A patent/JP2005012280A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006253822A (ja) * | 2005-03-08 | 2006-09-21 | Toshiba Corp | 復号装置、復号方法、及びプログラム |
JP4599194B2 (ja) * | 2005-03-08 | 2010-12-15 | 株式会社東芝 | 復号装置、復号方法、及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7340054B2 (en) | Information processing method, decrypting method, information processing apparatus, and computer program | |
JP5130318B2 (ja) | 証明書に基づく暗号化および公開鍵構造基盤 | |
US20070133806A1 (en) | Information processing method, decryption method, information processing device, and computer program | |
JP5389212B2 (ja) | 再暗号文検証プログラム、再暗号化装置及び再暗号化システム | |
Seo et al. | Revocable hierarchical identity-based encryption | |
Datta et al. | Adaptively secure unrestricted attribute-based encryption with subset difference revocation in bilinear groups of prime order | |
JP2012104883A (ja) | 記憶装置、アクセス装置およびプログラム | |
KR20070052687A (ko) | 정보처리 방법, 복호 처리 방법 및 정보처리 장치와컴퓨터ㆍ프로그램 | |
JP4432350B2 (ja) | データ処理方法、そのプログラム、その装置と受信装置 | |
JP4561074B2 (ja) | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム | |
Ling et al. | Revocable predicate encryption from lattices | |
KR101951545B1 (ko) | 와일드 카드를 포함하는 키 발급, 암호화 및 복호화 방법 | |
CN102347835A (zh) | 更新私钥的方法及设备、获得会话密钥的方法和通信设备 | |
JP2005012280A (ja) | データ処理方法、そのプログラムおよびその装置と処理装置 | |
JP2007189597A (ja) | 暗号化装置および暗号化方法、並びに復号化装置および復号化方法 | |
JP2005086747A (ja) | 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム | |
Asano | Reducing storage at receivers in SD and LSD broadcast encryption schemes | |
JP2005005806A (ja) | データ処理方法、そのプログラムおよびその装置 | |
JP4635459B2 (ja) | 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム | |
JP2005191805A (ja) | 暗号文配信方法、情報処理装置、および情報処理方法、並びにコンピュータ・プログラム | |
JP2007020025A (ja) | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム | |
JP5279824B2 (ja) | 情報処理装置及びプログラム | |
WO2009157050A1 (ja) | 情報処理装置及びプログラム | |
JP4576824B2 (ja) | 情報処理装置および情報処理方法 | |
Chun et al. | Comments on “Identity-Based Revocation From Subset Difference Methods Under Simple Assumptions” |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060615 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091117 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100112 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100727 |