JP2008236380A - 鍵提供システム、端末装置、及び情報処理方法 - Google Patents

鍵提供システム、端末装置、及び情報処理方法 Download PDF

Info

Publication number
JP2008236380A
JP2008236380A JP2007073195A JP2007073195A JP2008236380A JP 2008236380 A JP2008236380 A JP 2008236380A JP 2007073195 A JP2007073195 A JP 2007073195A JP 2007073195 A JP2007073195 A JP 2007073195A JP 2008236380 A JP2008236380 A JP 2008236380A
Authority
JP
Japan
Prior art keywords
key
directed graph
directed
directional
generation unit
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
JP2007073195A
Other languages
English (en)
Inventor
Masafumi Kusakawa
雅文 草川
Tomoyuki Asano
智之 浅野
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 JP2007073195A priority Critical patent/JP2008236380A/ja
Priority to KR1020097019534A priority patent/KR20100014474A/ko
Priority to PCT/JP2008/051815 priority patent/WO2008114542A1/ja
Priority to US12/532,076 priority patent/US8150040B2/en
Priority to CN200880009041XA priority patent/CN101641904B/zh
Priority to EP08704442A priority patent/EP2124380A1/en
Publication of JP2008236380A publication Critical patent/JP2008236380A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Abstract

【課題】各種のブロードキャスト・エンクリプション方式の鍵配信方法における有向グラフ生成方法を改良した鍵提供システム、端末装置、及び情報処理方法を提供すること。
【解決手段】複数の端末装置の組合せを表す複数の集合の中から選択され、前記複数の端末装置の一部又は全部を表す前記集合に関する情報を取得する取得部と、前記情報に含まれ、かつ、自身が属する前記集合を抽出する抽出部と、複数の有向枝により形成された所定の有向グラフの中で、抽出された前記集合に対応する鍵を生成するのに必要な前記有向枝のみを生成する有向グラフ生成部と、を備えることを特徴とする、端末装置が提供される。
【選択図】図10

Description

本発明は、鍵提供システム、端末装置、及び端末装置に関する。
近年、パーソナルコンピュータ(以下、PC)、携帯電話、及びデジタル家電等の情報機器が一般にも広く普及してきている。また、これらの情報機器やそれらの間を繋ぐ情報通信に関する技術が非常に大きく発達してきており、これらの情報機器を利用した音楽配信や映像配信といったコンテンツ配信サービスが広く展開されるようになってきている。例えば、CATV(Community Antenna TeleVision)、衛星放送、又はインターネット等を利用した有料放送、CD(Compact Disc)又はDVD(Digital Versatile Disc)等物理メディアを利用したコンテンツ販売等がコンテンツ配信サービスの一例である。
しかし、このようなコンテンツ配信サービスを提供するには、当該サービスの提供者(以下、システム管理者)と視聴者との間で締結した契約に基づき、その契約者のみがコンテンツを取得できるようにする仕組みが必要とされる。この問題に対し、例えば、システム管理者が契約者に対して所定の鍵を提供しておき、暗号化されたコンテンツCと共に、コンテンツCを暗号化するために利用したコンテンツ鍵mekを前記所定の鍵により生成するためのヘッダ情報hとを配信する仕組みが考案されている。
上記の仕組みを実現させる具体的な一手段として、ブロードキャスト・エンクリプション(Broadcast Encryption)方式と呼ばれるコンテンツ配信方式が知られている。このブロードキャスト・エンクリプション方式とは、各契約者を集合の要素に対応付けた上で、契約者全体を表す契約者集合を複数の部分集合に分割し、特定の部分集合に属する契約者のみがコンテンツ鍵mekを取得できるようなヘッダhを配信する方式である。つまり、当該方式を適用すると、システム管理者が指定した特定の契約者を排除してコンテンツCの配信を実現することができる。しかし、現実的には、システム管理者側のサーバ装置(以下、センタ)及び契約者側の端末装置におけるコンテンツ鍵mekの生成に係る演算負荷、及びサーバ装置と端末装置との間の通信負荷等を考慮すると、従来のブロードキャスト・エンクリプション方式をより効率化する必要がある。
具体的には、上記のコンテンツ配信をする際に、センタが配信するヘッダhのサイズに応じて増大する通信量、各端末装置が保持すべき鍵数に応じて増大するメモリ量、及び各端末装置がコンテンツ鍵mekを生成するために必要な計算量を如何にして低減させるかということが問題となる。上記の各量は、契約者集合の分割方法によって大きく異なる。そこで、効率的なコンテンツ配信を実現させるため、契約者集合の分割方法に工夫を凝らした種々のブロードキャスト・エンクリプション方式が提案されている。例えば、下記の非特許文献1には、上記の各量を低減させるための一つの手段として、Nuttapong Attrapadung and Hideki Imaiらにより、Subset Incremental Chain Based Broadcast Encryption方式(以下、AI05方式)と呼ばれるコンテンツ配信方式が開示されている。
Nuttapong Attrapadung andHideki Imai,"Subset Incremental Chain Based Broadcast Encryption with ShorterCiphertext",The 28th Symposium on Information Theory and ItsApplications(SITA2005)
また、本件出願人は、上記の非特許文献1に記載のコンテンツ配信方式よりも、各端末装置が鍵を保持するために要求されるメモリ量を低減することが可能な第1の改良方式(以下、A06(A)方式)、各端末装置がコンテンツ鍵を生成するために要求される計算量を低減することが可能な第2の改良方式(以下、A06(B)方式)、及び上記のメモリ量と計算量とを低減させることが可能な第3の改良方式(以下、A06(A+B)方式)を開発し、既に日本国特許庁に特許出願している(A06(A)方式:特願2006−310182、A06(B)方式:特願2006−310213、A06(A+B)方式:特願2006−310226)。当該各方式の特徴は、擬似乱数生成器を利用してコンテンツ鍵mekを生成する際に、各方式固有の有向グラフにより表現される鍵生成アルゴリズムに基づき、擬似乱数生成演算を実行する点にある。
しかし、上記の各方式では、各端末装置がコンテンツ鍵mekを生成する際に、予め各端末装置が保持している各有向グラフの情報を利用することが示唆されているのみであり、具体的な手段については示されていなかった。そもそも、契約者数が多い場合には、各端末装置が保持すべき有向グラフの情報量が膨大になるため、その情報を端末装置に格納しておくのは現実的に困難である。さらに、各端末装置がセンタと同様に有向グラフを算出するという方法も考えられるが、各端末装置の演算量が膨大になり実現が困難である。
そこで、本件出願人は、各端末装置が鍵生成する際、必ずしも全ての有向グラフが必要とされない点に着目し、端末装置毎に必要とされる有向グラフを算出することが可能な技術を開発した。この技術により、各端末装置が全ての有向グラフの情報を算出する必要がなくなり、鍵生成の際に要求される演算負荷が低減されるため、各端末装置が各々所要の有向グラフを生成して鍵を導出するというアプローチが実現可能になる。
つまり、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、各端末装置が鍵生成に用いる所要の有向グラフを算出するために必要とされる演算量を低減させることが可能な、新規かつ改良された鍵提供システム、端末装置、及び情報処理方法を提供することにある。
上記課題を解決するために、本発明のある観点によれば、複数の端末装置と、データの暗号化又は復号に用いる鍵を所定の前記端末装置に提供することが可能な情報処理装置とにより構成される鍵提供システムが提供される。前記情報処理装置は、複数の前記端末装置の組合せを表す集合が各々に対応付けられた複数の座標点を有する座標軸上に、前記座標点間を結ぶ有向枝を配置して形成された所定の有向グラフを取得する取得部と、前記複数の端末装置の一部又は全部を表す前記集合を選択する選択部と、前記所定の有向グラフに基づき、選択された前記集合に対応する前記鍵を生成する鍵生成部と、生成された前記鍵と前記選択された集合に関する情報とを前記複数の端末装置に提供する提供部と、を備えることを特徴とする。また、前記端末装置は、前記生成された鍵と前記選択された集合に関する情報とを取得する取得部と、前記所定の有向グラフを形成する前記有向枝の中で、自身が属する前記選択された集合に対応する前記鍵を生成するのに必要な前記有向枝を生成する有向グラフ生成部と、生成された前記有向枝により形成される有向グラフに基づいて、前記自身が属する選択された集合に対応する前記鍵を生成する鍵生成部と、を備えることを特徴とする。なお、所定の有向グラフには、有向枝が存在しない空集合に対応する有向グラフを含んでいてもよい。その場合、上記の取得部は、複数の前記端末装置の組合せを表す集合が各々に対応付けられた複数の座標点を有する座標軸上に、前記座標点間を結ぶ0本以上の有向枝を配置して形成された所定の有向グラフを取得する。
そして、上記課題を解決するために、本発明の別の観点によれば、複数の端末装置の組合せを表す複数の集合の中から選択され、前記複数の端末装置の一部又は全部を表す前記集合に関する情報を取得する取得部と、前記情報に含まれ、かつ、自身が属する前記集合を抽出する抽出部と、複数の有向枝により形成された所定の有向グラフの中で、抽出された前記集合に対応する鍵を生成するのに必要な前記有向枝を生成する有向グラフ生成部と、を備えることを特徴とする、端末装置が提供される。
また、前記所定の有向グラフは、所定の第1の有向グラフに基づき、前記第1の有向グラフを形成する複数の有向枝の一部又は全部をより短い有向枝に置換して生成された第2の有向グラフであることを特徴とする構成であってもよい。
また、前記所定の有向グラフは、所定の第1の有向グラフに基づき、前記第1の有向グラフを形成する複数の有向枝の一部又は全部をより長い有向枝に置換して生成された第2の有向グラフであることを特徴とする構成であってもよい。
また、前記所定の有向グラフは、所定の第1の有向グラフに基づき、前記第1の有向グラフを形成する複数の有向枝の一部又は全部をより長い有向枝に置換して生成された第2の有向グラフについて、さらに、前記第2の有向グラフを形成する複数の有向枝の一部又は全部をより短い有向枝に置換して生成された第3の有向グラフであることを特徴とする構成であってもよい。
また、前記有向グラフ生成部により生成された前記有向枝に基づいて前記鍵を生成する鍵生成部をさらに備えることを特徴とする構成であってもよい。
また、前記取得部は、前記集合に関する情報と共に、当該集合に対応する前記鍵で暗号化されたコンテンツ又はコンテンツ鍵を取得する構成であってもよい。さらに、前記鍵生成部により生成された前記鍵を用いて前記暗号化されたコンテンツ又はコンテンツ鍵を復号する復号部をさらに備えることを特徴とする構成であってもよい。
また、前記取得部は、ネットワークを介して前記集合に関する情報を受信することを特徴とする構成であってもよい。
また、前記取得部は、所定の記録媒体に記録された前記集合に関する情報を読み出すことを特徴とする構成であってもよい。
また、前記鍵生成部は、前記有向枝の始端Sに対応する前記鍵k(S)の入力に応じて、前記有向枝の終端の座標点Sに対応する前記鍵k(S)を生成することを特徴とする構成であってもよい。
また、前記鍵は、前記コンテンツ又はコンテンツ鍵を暗号化又は復号するためのセット鍵kと、当該セット鍵kを生成するための中間鍵tとにより構成されていてもよい。さらに、前記鍵生成部は、前記有向枝の始端Sに対応する前記中間鍵t(S)の入力に応じて、前記有向枝の始端Sに対応する前記セット鍵k(S)と、前記有向枝の終端Sに対応する前記中間鍵t(S)とを生成することを特徴とする構成であってもよい。
そして、上記課題を解決するために、本発明の別の観点によれば、端末装置における情報処理方法が提供される。当該情報処理方法は、複数の端末装置の組合せを表す複数の集合の中から選択され、前記複数の端末装置の一部又は全部を表す前記集合に関する情報を取得する取得ステップと、前記情報に含まれ、かつ、自身が属する前記集合を抽出する抽出ステップと、複数の有向枝により形成された所定の有向グラフの中で、抽出された前記集合に対応する鍵を生成するのに必要な前記有向枝を生成する有向グラフ生成ステップと、を含むことを特徴とする。
かかる構成により、各種のブロードキャストエンクリプション方式において、情報処理装置の一例である鍵配信サーバにより選択された各集合に対応する鍵を導出する際に、各端末装置が所要の有向グラフを算出して鍵生成することが可能になる。
以上説明したように本発明によれば、各端末装置が鍵生成に用いる所要の有向グラフを算出するために必要とされる演算量を低減させることが可能になる。
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
[概要]
まず、本発明の実施形態について説明するに先立ち、本発明の技術を適用することが可能なAI05方式、A06(A)方式、A06(B)方式、及びA06(A+B)方式について簡単に説明し、その問題点を指摘する。もちろん、本発明の技術を適用可能な鍵配信方式はこれらの方式に限定されるものではなく、当業者であればこれらの例を参考にして容易に他の鍵配信方式に本発明の技術を適用することが可能である。
(AI05方式の概要)
AI05方式では、従来のブロードキャスト・エンクリプション方式と同様、鍵提供システムに含まれる各端末装置を集合の要素に対応付け、端末装置全体の集合を考える。そして、当該集合を分割して得られる複数の部分集合を利用して鍵配信を実行する。まず、鍵配信サーバは、論理二分木(BT;Binary Tree)を形成して各端末装置を葉ノードに対応付ける。次いで、鍵配信サーバは、所定の規則に則って上記の部分集合を要素とする複数の「部分集合の集合」を生成し、当該各部分集合の集合をBTの根ノード、及び各中間ノードに対応付ける。さらに、鍵配信サーバは、上記の部分集合の集合に含まれる複数の部分集合を所定の規則(以下、ジャンプと呼ぶことがある)に基づいて関連付ける。そして、この部分集合間の関連を表すのが有向グラフ又は有向枝である。
上記の有向グラフは、上記の部分集合の集合に含まれる各部分集合が各座標点に対応付けられた座標軸上に形成され、複数の座標点間を連結する有向枝(上記のジャンプを表す)により構成されている。鍵配信サーバは、上記のBTに含まれる根ノード、及び各中間ノードに対応付けられた部分集合の集合毎に、それに含まれる複数の部分集合間の関係が表現された有向グラフを形成する。
さらに、鍵配信サーバは、配信先となる端末装置が含まれる部分集合を選択し、当該部分集合が含まれる有向グラフを特定する。そして、鍵配信サーバは、特定された有向グラフに基づいて擬似乱数生成器(PRSG;Pseudo−Random Sequence Generator)による演算を繰り返すことによって鍵を生成する。AI05方式の特徴は、従来のブロードキャスト・エンクリプション方式に比べて、通信量、端末装置が保持すべき鍵数、鍵生成に要する計算量を削減するように、全ての端末装置を表す集合を部分集合に分割し、上記の有向グラフに基づいて鍵生成する点にある。
(A06(A)、A06(B)、A06(A+B)方式の概要)
A06(A)方式は、有向グラフを構成する有向枝の長さを短くする処理を加えることにより、上記のAI05方式よりも各端末装置が保持すべき鍵数を低減させる改良が施された改良方式である。また、A06(B)方式は、有向枝の長さが長くなるように有向グラフを形成することにより、上記のAI05方式よりも鍵生成に要する計算量を低減させる改良が施された改良方式である。そして、A06(A+B)方式は、A06(B)方式と同様にして有向枝の長い有向グラフを形成した後、A06(A)方式と同様に所定の有向枝を短い有向枝に置換することにより、上記のAI05方式よりも各端末装置が保持すべき鍵数、及び鍵生成に要する計算量を低減させる改良が施された改良方式である。
(問題点の指摘)
上記のAI05方式、A06(A)方式、A06(B)方式、及びA06(A+B)方式は、通信量、端末装置が保持すべき鍵数、及び鍵生成に要する計算量を低減させる効果において非常に優れた方式であるが、各端末装置が鍵生成に要する有向グラフの情報を如何にして取得するかということについて明確な手段が示されていない。但し、当業者であれば、各端末装置が予め有向グラフの情報を全て保持しているか、又は各端末装置が鍵配信サーバと同じアルゴリズムに基づいて有向グラフを生成すればよいことは容易に発想できるであろう。
しかし、実際に利用される鍵提供システムを想定すると、各端末装置が保持すべき有向グラフの情報量、及び有向グラフを生成するための計算量が膨大であるため、一般的な端末装置が有する限られたリソースの中で有向グラフの保持又は生成をすることは非常に困難であることが分かる。より具体的に、上記のA06(B)方式の場合で考えてみると、通常、鍵提供システムに含まれる端末装置の数nはn=232程度であるため、有向枝1本の情報を8byte程度で表現できたとしても、各端末装置が保持すべき情報量は約32GByteにもなるため、一般的な端末装置の記憶部に保持することは困難である。もちろん、このような膨大な有向グラフの情報をネットワーク又は記録媒体を利用して配信することが困難であることも容易に理解されるであろう。
一方、有向グラフを生成する場合には、端末装置の数n=232に対して(n−1)本の有向枝を算出する必要があるため、各端末装置が有向グラフを生成するために要する演算負荷が非常に大きいことも容易に理解されるであろう。このように、これまでの鍵配信方式は、各端末装置が鍵生成に要する有向グラフの情報を取得する手段に関する非常に深刻な問題を孕んでおり、これを解決する手段を提供することが本発明の目的とするところである。特に、各端末装置が有向グラフを生成するために要する演算負荷を低減させ、各端末装置が所要の有向グラフを生成することができる手段を提供することを目的とする。
以上、本発明の技術を適用可能な鍵配信方式について簡単に説明し、その問題点を指摘すると共に、本発明の目的とするところを明確に示した。以下、上記の各鍵配信方式に対して本発明の技術を適用する手段を開示すると共に上記の各鍵配信方式の詳細についても説明する。
<第1実施形態>
以下、本発明の第1実施形態に係る鍵提供システム100の構成、及び鍵配信に係る具体的な方式について詳細に説明する。本実施形態は、AI05方式の鍵提供システム100において、端末装置が効率的に有向グラフを生成する手段を備える点に特徴を有する。
[鍵提供システム100の構成]
まず、図1を参照しながら、本発明の第1実施形態に係る鍵提供システム100の構成について簡単に説明する。図1は、本実施形態に係る鍵提供システム100の構成を示す説明図である。
図1を参照すると、鍵提供システム100は、主に、鍵配信サーバ102と、端末装置122と、ネットワーク10とにより構成される。なお、鍵配信サーバ102は、情報処理装置の一例である。
(ネットワーク10)
まず、ネットワーク10について説明する。ネットワーク10は、鍵配信サーバ102と端末装置122とを双方向通信又は一方向通信可能に接続する通信回線網である。ネットワーク10は、例えば、インターネット、電話回線網、衛星通信網、同報通信路等の公衆回線網、WAN(Wide Area Network)、LAN(Local Area Network)、IP−VPN(Internet Protocol−Virtual Private Network)、ワイヤレスLAN等の専用回線網等により構成されており有線/無線を問わない。
(鍵配信サーバ102)
次に、鍵配信サーバ102について簡単に説明する。鍵配信サーバ102が有する詳細な機能構成については後述する。鍵配信サーバ102は、種々の電子データを暗号化して配信することが可能である。鍵配信サーバ102は、例えば、コンテンツを暗号化して配信することが可能である。このとき、鍵配信サーバ102は、コンテンツを暗号化又は復号するためのコンテンツ鍵を用いてコンテンツを暗号化する。さらに、鍵配信サーバ102は、所定の端末装置122に対してコンテンツ鍵を暗号化して配信することが可能である。このとき、鍵配信サーバ102は、コンテンツ鍵を所定の端末装置122だけが復号できるように、所定のアルゴリズムに基づいて生成された鍵を利用してコンテンツ鍵を暗号化することが可能である。かかる構成により、コンテンツの再生を許諾していない端末装置122に対してコンテンツ鍵が配信されたとしても、所定の端末装置122しか復号できないため、高いセキュリティが保たれる。なお、コンテンツ鍵は、暗号化用のコンテンツ鍵と復号用のコンテンツ鍵とにより構成されてもよいし、復号用のコンテンツ鍵が暗号化されて配信される構成であってもよい。
上記の構成を実現するため、鍵配信サーバ102は、例えば、コンテンツ鍵を暗号化又は復号に用いるセット鍵を生成する。このとき、鍵配信サーバ102は、複数の端末装置122を複数のグループに分け、各グループに各々対応する複数のセット鍵を生成する。但し、鍵配信サーバ102は、所定の集合を構成する複数の部分集合によってグループを表現し、各部分集合間の関係を表す有向グラフを利用してセット鍵を生成する。そのため、鍵配信サーバ102は、有向グラフを他の装置から取得するか、若しくは所定のアルゴリズムに基づいて生成することが可能である。
また、鍵配信サーバ102は、所定のセット鍵を用いてコンテンツ鍵を暗号化する。このとき、鍵配信サーバ102は、コンテンツの再生を許諾する端末装置122が含まれる少なくとも1つの部分集合を選択し、選択された各部分集合に対応する各セット鍵を利用してコンテンツ鍵を暗号化する。但し、選択された全ての部分集合の和集合に全ての許諾された端末装置122が所属するように選択される。
そして、鍵配信サーバ102は、暗号化されたコンテンツと共に、暗号化されたコンテンツ鍵と、選択された部分集合の情報とを一部又は全部の端末装置122に配信する。なお、端末装置122には、自身が所属する全ての部分集合に対応するセット鍵を生成するために必要な少なくとも1つの鍵(セット鍵又は中間鍵)が提供されていると仮定している。また、鍵配信サーバ102は、各端末装置122が必要とする有向グラフの一部又は全部を生成するための所定のアルゴリズムを提供することも可能である。
上記の構成により、鍵配信サーバ102は、所定の端末装置122だけが配信されるコンテンツを再生可能にすることができる上、その再生を許可する端末装置122の組合せを変更する場合も、暗号化に用いるセット鍵の組合せを変更するだけで容易に対応することが可能になる。
なお、鍵配信サーバ102は、セット鍵を生成する際に擬似乱数生成器(PRSG)を利用する。このPRSGは、所定のシード値を入力することにより長周期の擬似的な乱数列を出力することが可能な装置又はプログラムである。その擬似乱数生成ロジックは、例えば、線形合同法やメルセンヌ・ツイスター法等を用いて実現されるものである。もちろん、他のロジックを用いて擬似乱数を発生させてもよいし、或いは、所定の特殊な擬似乱数列を利用することも可能である。
また、鍵配信サーバ102は、サーバ機能を備えたパーソナルコンピュータ(PC;Personal Computer)等の情報処理装置により構成することが可能である。従って、鍵配信サーバ102は、ネットワーク10を介して各種の情報を外部装置に送信することが可能である。例えば、鍵配信サーバ102は、複数の端末装置122にネットワーク10を介してコンテンツやコンテンツ鍵を配信することが可能である。
また、鍵配信サーバ102は、例えば、映像配信サービス、又は電子音楽配信サービス等のコンテンツ配信サービスを提供する機能を有していてもよい。つまり、鍵配信サーバ102は、例えば、映画、テレビジョン番組、ビデオプログラム、図表等の動画又は静止画から成る映像(Video)コンテンツ、音楽、講演、ラジオ番組等の音声(Audio)コンテンツ、ゲームコンテンツ、文書コンテンツ、又はソフトウェア等のコンテンツを配信することが可能である。但し、鍵配信サーバ102は、暗号化されたコンテンツ鍵を配信する構成とすることも可能である。例えば、外部装置により暗号化されたコンテンツを配信させ、鍵配信サーバ102は、暗号化されたコンテンツ鍵を配信する構成とすることも可能である。
(端末装置122)
次に、端末装置122について簡単に説明する。端末装置122が有する詳細な機能構成については後述する。端末装置122は、ネットワーク10を介して鍵配信サーバ102から種々の情報を取得することが可能である。端末装置122は、例えば、暗号化されたコンテンツ及びコンテンツ鍵を取得することが可能である。それと共に、端末装置122は、鍵配信サーバ102により選択された上記の部分集合に関する情報を取得することが可能である。
また、端末装置122は、自己が所属する部分集合に対応するセット鍵を生成するための鍵と、そのセット鍵を生成するための有向グラフを生成する所定のアルゴリズムの情報とを保持している。従って、端末装置122は、所定のアルゴリズムに基づいて所要のセット鍵を生成するために必要な有向グラフを算出することが可能である。さらに、端末装置122は、予め保持している鍵と、算出した有向グラフとを利用して所望のセット鍵を生成することが可能である。
また、端末装置122は、生成したセット鍵を用いてコンテンツ鍵を復号することが可能である。さらに、端末装置122は、復号したコンテンツ鍵を用いてコンテンツを復号することが可能である。なお、端末装置122は、セット鍵を生成する際、擬似乱数生成器(PRSG)を利用する。このPRSGは、鍵配信サーバ102がセット鍵の生成に利用したものと実質的に同一の構成を有する。
上記の構成により、端末装置122は、自己が所属する部分集合に対応するセット鍵を導出するための所要の有向グラフを生成することが可能になる。そのため、端末装置122は、全ての有向グラフの情報を保持する必要がない上、現実的な演算負荷の下に有向グラフを生成することが可能になる。その結果、端末装置122は、自己が生成した有向グラフに基づいて所要のセット鍵を生成することができる。
また、端末装置122は、ネットワーク10を介して外部装置と情報通信が可能な情報処理端末により構成される。端末装置122は、例えば、PC、PDA(Personal Digital Assistant)、家庭用ゲーム機、DVD/HDDレコーダ、又はテレビジョン受像器等の情報家電、テレビジョン放送用のチューナやデコーダ等により構成される。さらに、端末装置122は、携帯型ゲーム機、携帯電話、携帯型映像/音声プレーヤ、PDA、又はPHS等の契約者が持ち運び可能な携帯端末(Portable Device)により構成されてもよい。
以上、本実施形態に係る鍵提供システム100の構成について、図1を参照しながら簡単に説明した。次に、上記の機能を実現することが可能な鍵配信サーバ102、及び端末装置122のハードウェアの構成について、図2を参照しながら具体的に説明する。
[鍵配信サーバ102及び端末装置122のハードウェア構成]
ここで、図2を参照しながら、本実施形態に係る鍵配信サーバ102及び端末装置122のハードウェア構成の一例について説明する。図2は、鍵配信サーバ102、又は端末装置122の機能を実現することが可能なハードウェア構成を示す説明図である。
図2に示すように、鍵配信サーバ102、及び端末装置122は、例えば、コントローラ702と、演算ユニット704と、入出力インターフェース706と、セキュア記憶部708と、メイン記憶部710と、ネットワークインターフェース712と、メディアインターフェース716とにより構成される。
(コントローラ702)
コントローラ702は、バスを介して他の構成要素に接続されており、例えば、メイン記憶部710に格納されたプログラム及びデータに基づいて各部を制御する機能を実現する。コントローラ702は、中央処理装置(CPU;Central Processing Unit)等の演算処理装置により構成することが可能である。
(演算ユニット704)
鍵配信サーバ102が備える演算ユニット704は、例えば、コンテンツの暗号化/復号、コンテンツ鍵の暗号化/復号、有向グラフの生成、セット鍵の生成、及びセット鍵を生成するために用いる中間鍵の生成を実現することが可能である。また、演算ユニット704は、上記の擬似乱数生成器(PRSG)の機能を実現することが可能である。
演算ユニット704は、例えば、中央処理装置(CPU;Central Processing Unit)等の演算処理装置により構成されており、メイン記憶部710に格納されたプログラム及びデータに基づいて上記の各機能を実現することが可能である。例えば、演算ユニット704は、メイン記憶部710に記録されているプログラムに基づいて有向グラフを生成することができる。従って、有向グラフを生成するための所定のアルゴリズムは、例えば、メイン記憶部710、又はセキュア記憶部708等に記録されたプログラムにより表現されうる。また、演算ユニット704は、出力結果をメイン記憶部710又はセキュア記憶部708に記録することができる。なお、演算ユニット704は、上記のコントローラ702と一体に形成されていてもよい。
(入出力インターフェース706)
入出力インターフェース706は、主に、ユーザがデータを入力するための入力デバイスと、演算結果又はコンテンツの中身を出力する出力デバイスとに接続されている。例えば、入力デバイスは、キーボード、マウス、トラックボール、タッチペン、キーパッド、又はタッチパネル等であってもよい。これらの入力デバイスは、入出力インターフェース706に対して有線又は無線により接続されていてもよい。また、入力デバイスは、有線又は無線により接続された携帯電話やPDA等の携帯情報端末であってもよい。一方、出力デバイスは、例えば、ディスプレイ等の表示装置、又はスピーカ等の音声出力デバイス等であってもよい。そして、出力デバイスは、入出力インターフェース706に対して有線又は無線により接続されていてもよい。
なお、入出力インターフェース706は、バスを介して他の構成要素に接続されており、入出力インターフェース706を介して入力されたデータをメイン記憶部710等に伝達することが可能である。逆に、入出力インターフェース706は、メイン記憶部710等に格納されたデータ、ネットワークインターフェース712等を介して入力されたデータ、又は演算ユニット704から出力された演算結果等を出力デバイスに出力する。
(セキュア記憶部708)
セキュア記憶部708は、主に、コンテンツ鍵、セット鍵、及び中間鍵等の秘匿が必要なデータを安全に格納するための記憶装置である。セキュア記憶部708は、例えば、ハードディスク等の磁気記憶装置、光ディスク等の光記憶装置、光磁気記憶装置、又は半導体記憶装置等により構成されていてもよい。また、セキュア記憶部708は、例えば、耐タンパ性を有していてもよい。
(メイン記憶部710)
メイン記憶部710は、例えば、コンテンツ又はコンテンツ鍵等を暗号化するための暗号化プログラム、暗号化されたコンテンツ又はコンテンツ鍵等を復号するための復号プログラム、又はセット鍵や中間鍵を生成するための鍵生成プログラム等が格納される。また、メイン記憶部710は、演算ユニット704から出力された計算結果を一時的又は永続的に格納したり、入出力インターフェース706、ネットワークインターフェース712、又はメディアインターフェース716等から入力されたデータを記録することができる。メイン記憶部710は、例えば、ハードディスク等の磁気記憶装置、光ディスク等の光記憶装置、光磁気記憶装置、又は半導体記憶装置等により構成されていてもよい。
(ネットワークインターフェース712)
ネットワークインターフェース712は、ネットワーク10を介して他の通信装置等に接続されており、例えば、暗号化されたコンテンツ又はコンテンツ鍵、セット鍵、中間鍵等、暗号化に用いるパラメータ、及びコンテンツの再生が許可された端末装置122の部分集合に関するデータを送受信するための通信部である。ネットワークインターフェース712は、バスを介して他の構成要素に接続されており、ネットワーク10上にある外部装置から受信したデータを他の構成要素に伝達し、又は他の構成要素が有するデータをネットワーク10上にある外部装置に送信することが可能である。
(メディアインターフェース716)
メディアインターフェース716は、情報メディア718を着脱してデータを読み書きするためのインターフェースであり、バスを介して他の構成要素に接続されている。このメディアインターフェース716は、例えば、装着された情報メディア718からデータを読み出して他の構成要素に伝達し、又は他の構成要素から供給されたデータを情報メディア718に書き込む機能を有する。情報メディア718は、例えば、光ディスク、磁気ディスク、半導体メモリ等のポータブル記憶媒体(着脱可能な記憶媒体)であってもよいし、又はネットワーク10を介さずに比較的近距離で有線/無線接続された情報端末の記憶媒体等であってもよい。
以上、本実施形態に係る鍵配信サーバ102、及び端末装置122の機能を実現することが可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化した専用のハードウェアにより構成されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。また、利用形態に応じて、メディアインターフェース716、又は入出力インターフェース706等の構成要素を省略することも可能である。
[鍵配信サーバ102の構成]
次に、図3を参照しながら、本実施形態に係る鍵配信サーバ102の機能構成について詳細に説明する。図3は、鍵配信サーバ102の機能構成を示す説明図である。
図3に示すように、鍵配信サーバ102は、主に、木構造設定部104と、座標軸設定部106と、有向グラフ生成部110と、初期中間鍵設定部112と、鍵生成部114と、暗号化部116と、通信部118と、部分集合決定部120とにより構成される。また、木構造設定部104と、座標軸設定部106と、有向グラフ生成部110とを纏めて「鍵生成ロジック構築ブロック」と呼ぶことにする。そして、初期中間鍵設定部112と、鍵生成部114とを纏めて「鍵生成ブロック」と呼ぶことにする。
[鍵生成ロジック構築ブロック]
まず、鍵生成ロジック構築ブロックの機能構成について説明する。
(木構造設定部104)
まず、図4を参照しながら木構造設定部104の機能構成について説明する。木構造設定部104は、図4に示す論理二分木BTを生成する機能を有する。以下、木構造設定部104による論理二分木BTの構築方法について詳細に説明する。但し、以下の説明の中で、契約者uの端末装置122のことを単に契約者uと表現することがある。また、以下に定義する数学的な表現を用いる。
(1)全ての契約者(1,…,n)を表す集合NをN={1,…,n}と定義する。
(但し、nは2のべき乗)
(2)自然数i及びjに対して下記の表現を定義する。
[i,j]={i,i+1,…,j}(但し、i<j)
[j,i]={i,i−1,…,j}(但し、i<j)
(i→i)=(i←i)={{i}}
(i→j)={{i},{i,i+1},…,{i,i+1,…,j}}
={[i,i],[i,i+1],…,[i,j]}(但し、i<j)
(i←j)={{j},{j,j−1},…,{j,j−1,…,i}}
={[j,j],[j,j−1],…,[j,i]}(但し、i<j)
また、論理二分木BT上の末端に位置するノードを葉ノード、頂点に位置するノードを根ノード、根ノードと葉ノードとの間に位置する各ノードを中間ノードと呼ぶことにする。さらに、各葉ノードは、各契約者1,…,nに対応付けられている。図4の例では、BTの葉ノード数nがn=64の場合が示されている。
(論理二分木の形成)
まず、木構造設定部104は、葉ノードの数がn(例えば、n=64)の論理二分木BTを作成する。そして、木構造設定部104は、各葉ノードに対し、左端から右方向に向かって番号1,…,nを対応付ける。そして、木構造設定部104は、番号1,…,nの葉ノードを契約者1,…,nに対応付ける。
次いで、木構造設定部104は、中間ノードvに対応付ける部分集合を決定する指標l及びrを定義する。但し、vは、論理二分木BTに含まれる各中間ノードに対して所定の順番で付された番号であり、中間ノードの位置を表す指標である。次いで、木構造設定部104は、中間ノードvから伸びるブランチの末端に位置する葉ノードのうち、最左にある葉ノードの番号をl、最右にある葉ノードの番号をrと設定する。
次いで、木構造設定部104は、論理二分木BTを構成する各中間ノードを2つの集合(BT、BT)に分類する。木構造設定部104は、論理二分木BT上に存在する中間ノードのうち、その親ノードの左側に位置する中間ノードの集合をBTと定義し、親ノードの右側に位置する中間ノードの集合をBTと定義する。但し、親ノードとは、ブランチで接続された2つのノードのうち上位に位置するノードを意味する。
(根ノードについて)
次いで、木構造設定部104は、論理二分木BT上の根ノードに集合(1→n)と集合(2←n)とを対応付ける。集合(1→n)と集合(2←n)とに含まれる複数の部分集合を組み合わせることにより、根ノードの下位に存在する葉ノードの一部又は全部を表す集合を構成することが可能になる。例えば、集合(1→n)に含まれる部分集合{1,…,u−1}と集合(2←n)に含まれる部分集合{n,…,u+1}との和集合を用いると、葉ノードu(1≦u≦n)を除く全ての葉ノードを表現することができる。
(具体例)
図4に示す論理二分木BT(n=64)の根ノードには、集合(1→64)と集合(2←64)とが対応付けられる。集合(1→64)は、部分集合[1,1],…,[1,64]を要素として含んでいる。例えば、全ての葉ノード1,…,64が含まれる葉ノードのグループは、部分集合[1,64]={1,…,64}により表現される。また、葉ノード16と葉ノード17とを除く全ての葉ノードのグループは、部分集合[1,15]と部分集合[64,18]とにより表現される。但し、部分集合[1,15]は集合(1→64)に含まれており、部分集合[64,18]は集合(2←64)に含まれている。
(中間ノードについて)
次いで、木構造設定部104は、論理二分木BTを構成する各中間ノードに部分集合を対応付ける。木構造設定部104は、集合BTに属する中間ノードvに対して集合(l+1←r)を対応付ける。また、木構造設定部104は、集合BTに属する中間ノードvに対して集合(l→r−1)を対応付ける。
(具体例)
例えば、図4を参照すると、l=1,r=4に対応する中間ノードvには、集合(2←4)が対応付けられている。また、l=1,r=4であるから、中間ノードvの末端には、葉ノード1,…,4が位置する。例えば、葉ノード1,2,4の組合せは、中間ノードvの上位に位置する根ノードの集合(1→64)に含まれる部分集合[1,2]={1,2}と、中間ノードvの部分集合(2←4)に含まれる部分集合[4,4]={4}との組合せにより表現される。
上記の具体例からも推察される通り、論理二分木BTの根ノード及び各中間ノードに対応付けられる上記の集合に含まれる部分集合を組み合わせることにより、葉ノードの任意のグループを表現することが可能になる。つまり、複数の契約者の中から、所定の契約者が含まれるグループを上記の部分集合の組合せにより表現することができる。以下では、論理二分木BT上の各ノードに対応付けられた集合全体を表す和集合をセットシステムSSと呼ぶことにし、下式(1)のように定義する。
Figure 2008236380
以上、本実施形態に係る木構造設定部104の機能構成について説明した。上記の通り、木構造設定部104は、論理二分木BT上の各ノードに所定の部分集合を対応付け、契約者のグループを当該部分集合の組合せにより表現する手段を提供する。次に、上記の各部分集合の間の関係を規定する有向グラフの生成手段について説明する。
(座標軸設定部106)
次に、図5を参照しながら座標軸設定部106の機能構成について説明する。座標軸設定部106は、有向グラフを形成するための複数の水平座標軸を設定する機能を有する。
まず、座標軸設定部106は、集合(1→n−1)に含まれる複数の部分集合を右方向に向かって包含関係が大きくなるように一つの水平座標軸上の各座標点に対応付け、集合(1→n−1)の水平座標軸を形成する。また、座標軸設定部106は、論理二分木BT上のv∈BTである中間ノードvについて、中間ノードvに対応付けられた集合(l→r−1)に含まれる複数の部分集合を右方向に向かって包含関係が大きくなるように一つの水平座標軸上の座標点に対応付け、集合(l→r−1)の水平座標軸を形成する。なお、座標軸設定部106は、v∈BTである全てのvに対して集合(l→r−1)の水平座標軸を形成する。
次いで、座標軸設定部106は、集合(2←n)に含まれる複数の部分集合を左方向に向かって包含関係が大きくなるように一つの水平座標軸上の各座標点に対応付け、集合(2←n)の水平座標軸を形成する。また、座標軸設定部106は、集合(l+1←r)に含まれる複数の部分集合を左方向に向かって包含関係が大きくなるように一つの水平座標軸上の各座標点に対応付け、集合(l+1←r)の水平座標軸を形成する。なお、座標軸設定部106は、v∈BTである全てのvに対して集合(l+1←r)の水平座標軸を形成する。
具体的には、例えば、集合(5→7)={[5,5],[5,6],[5,7]}の水平座標軸の各座標点に対し、左から順に部分集合[5,5],[5,6],[5,7]が対応付けられる。
次いで、座標軸設定部106は、集合(1→n−1)の水平座標軸の右端に位置する座標点の右側と、当該水平座標軸の左端に位置する座標点の左側とに各々1つの仮座標点を配置する。また、座標軸設定部106は、集合(l→r−1)の水平座標軸の右端に位置する座標点の右側と、集合(l→r−1)の水平座標軸の左端に位置する座標点の左側とに各々1つの仮座標点を配置する。さらに、座標軸設定部106は、集合(2←n)の水平座標軸の右端に位置する座標点の右側と、集合(2←n)の水平座標軸の左端に位置する座標点の左側とに各々1つの仮座標点を配置する。そして、座標軸設定部106は、集合(l+1←r)の水平座標軸の右端に位置する座標点の右側と、集合(l+1←r)の水平座標軸の左端に位置する座標点の左側とに各々1つの仮座標点を配置する。
以上、座標軸設定部106の機能構成について説明した。上記の構成により、座標軸設定部106は、AI05方式の有向グラフを形成するために必要な複数の水平座標軸を生成することができる。以下、座標軸設定部106により生成された水平座標軸上に有向グラフを生成する手段について説明する。
(有向グラフ生成部110)
次に、図5を参照しながら有向グラフ生成部110の機能構成について説明する。有向グラフ生成部110は、上記の各水平座標軸上に有向グラフHを生成する機能を有する。
まず、有向グラフ生成部110は、パラメータk(kは整数)を設定する。また、有向グラフ生成部110は、n(x−1)/k<r−l+1≦nx/kを満たす整数xを決定する。但し、k|log(n)(以下、logの底は2)と仮定してもよい。また、パラメータkは、端末装置122が保持すべき中間鍵の個数、及びセット鍵を生成するのに必要な計算量に関係する量である。
次いで、有向グラフ生成部110は、集合(1→n−1)の水平座標軸上、及び集合(l→r−1)の水平座標軸上に長さni/k(i=0〜x−1)を有する右方向を向いた有向枝を形成する。具体的には、カウンタiを0からx−1まで動かしながら、最小要素数の部分集合に対応する最左の座標点の左に置いた仮座標点から、長さni/kを有する右方向を向いた有向枝を連続して、有向枝が最右の座標点の右に置いた仮座標点に達するか次の有向枝がこの仮座標点を超えるまで形成する。さらに、有向グラフ生成部110は、集合(2←n)の水平座標軸上、及び集合(l+1←r)の水平座標軸上に長さni/k(i=0〜x−1)を有する左方向を向いた有向枝を形成する。但し、有向グラフ生成部110は、全てのvに対応する上記の水平座標軸上に有向枝を形成する。これは、上記の方法を左右逆にする方法により実行される。
次いで、有向グラフ生成部110は、各水平座標軸上に配置された仮座標点を始端又は終端とする全ての有向枝を消去する。さらに、有向グラフ生成部110は、複数の有向枝が一つの座標点に到達する場合、複数の有向枝の中から最長の有向枝のみを残し、他の有向枝を全て消去する。以上の処理により、集合(1→n−1)の有向グラフH(1→n−1)、集合(2←n)の有向グラフH(2←n)、集合(l→r−1)の有向グラフH(l→r−1)、及び集合(l+1←r)の有向グラフH(l+1←r)が生成される。
次いで、有向グラフ生成部110は、集合(1→n−1)の水平座標軸の右側に配置された仮座標点を終端とする長さ1の右向き有向枝を有向グラフH(1→n−1)に追加する。つまり、有向グラフ生成部110は、下式(2)の処理を実行して集合(1→n)の有向グラフH(1→n)を生成する。但し、E(H(…))は有向枝を表す。
Figure 2008236380
以上、有向グラフ生成部110の機能構成について説明した。上記の構成により、有向グラフ生成部110は、AI05方式の有向グラフHを形成することができる。
(有向グラフの具体例)
ここで、図5の有向グラフH(33→63)を例に挙げて有向グラフの構成について具体的に説明する。有向グラフH(33→63)は、複数のアーチ状の曲線と、各アーチ状の曲線の一端に接続されて水平方向に延伸した直線とにより構成される。このアーチ状の曲線と水平方向に延伸した直線とが有向枝である。なお、直線は長さ1の有向枝を表し、曲線は長さ2以上の有向枝を表しているが、直線であるか曲線であるかという違いは表記上の問題であり本質とは無関係である。
また、有向グラフH(33→63)の中央上側に表示された白抜きの矢印は有向枝の方向を示している。そして、図5の最下段に描かれた黒丸は、左から順に有向グラフH(2←2),…,H(63→63)を表している。
図5を参照すると、論理二分木BTの根ノード及び中間ノードに対応する複数の有向グラフHと、各有向グラフHに交差する複数の縦線z(z=1〜64)とが描かれている。縦線zと有向グラフHとの交点が水平座標軸上の座標点を表している。有向グラフH(l+1←r)と縦線zとの交点は部分集合[r,z]に対応する座標点を表し、有向グラフH(l→r−1)と縦線zとの交点は部分集合[l,z]に対応する座標点を表す。例えば、有向グラフH(1→64)と縦線10との交点は部分集合[1,10]を表す座標点である。以下、この有向グラフHを用いてセット鍵を生成する鍵生成ブロックの構成について説明する。
[鍵生成ブロック]
次に、鍵生成ブロックの機能構成について詳細に説明する。
(鍵生成部114)
まず、鍵生成部114の機能構成について説明する。鍵生成部114は、上記の有向グラフHに基づいて中間鍵又はセット鍵を生成する機能を有する。以下、鍵生成部114によるセット鍵の生成方法について詳細に説明する。但し、以下の説明の中で、部分集合Sが対応付けられた座標点のことを単に座標点Sと表記することがある。また、説明の都合上、下記の表現を用いる。
部分集合Sに対応する中間鍵 : t(S
部分集合Sに対応するセット鍵 : k(S
コンテンツ鍵 : mek
擬似乱数生成器 : PRSG
有向枝 : E
有向パス : P
鍵生成部114は、AI05方式と本実施形態に係る方式との間で相違する点が存在するため、その点について説明する。鍵生成部114は、セット鍵を生成するために擬似乱数生成器PRSGを用いる。AI05方式の鍵生成部114は、擬似乱数生成器PRSGに部分集合Sの中間鍵t(S)を入力し、部分集合Sのセット鍵k(S)と、所定の部分集合S,S,…,Sに各々対応する中間鍵t(S),t(S),…,t(S)とを取得することができる。但し、部分集合Sと、他の部分集合S,…,Sとの関係は、有向グラフHにより規定されている。また、集合S,S,…,Sは、上記のセットシステムSSを構成する部分集合のいずれかである。なお、qは、有向グラフHにおいて、部分集合Sに対応する座標点を始点とする有向枝の数である。
以下の説明において、擬似乱数生成器PRSGに中間鍵t(S)が入力された結果、セット鍵k(S)と、複数の中間鍵t(S),…,t(S)とが出力されることを下式(3)のように表現する。また、有向グラフHを参照する際、座標点Sを始端とするk本の有向枝が存在し、それらの終端を示す座標点がS,S,…,Sである場合、座標点Sに近い順に座標点S,S,…,Sと表記する。
Figure 2008236380
AI05方式に係る擬似乱数生成器PRSGは、水平座標軸上の座標点Sに対応する中間鍵t(S)が入力されると、AI05方式の有向グラフHに基づき、座標点Sを始端とする有向枝の終端に対応付けられた部分集合S,S,S,…,Sに応じて、中間鍵t(S),t(S),t(S),…,t(S)と、座標点Sに対応するセット鍵k(S)とが出力される。
なお、有向グラフ生成部110により決定される整数xが1≦x≦kであるから、有向グラフHの各座標点を始端とする有向枝の本数は最大でk本である。
また、上記の擬似乱数生成器PRSGがλビットのデータ入力t(S)に対して(q+1)*λビットのデータ出力t(S)||…||t(S)||k(S)←PRSG(t(S))が得られるように設定すると、鍵生成部114は、PRSGの出力を左からλビット毎に区切って抽出することにより、中間鍵t(S),t(S),…,t(S)と、セット鍵k(S)とを取得することが可能になる。
具体例として、図5に示した有向グラフH(1→64)を参照すると、座標点S=[1,8](左端から8番目の座標点)からは4本の有向枝が出ていることが分かる。また、4本の有向枝の終端は、それぞれ、座標点S=[1,9],S=[1,10],S=[1、12],S=[1、16]であることが分かる。
従って、中間鍵t(S)を上記の擬似乱数生成器PRSGに入力すると、中間鍵t(S),t(S),t(S),t(S)と、セット鍵k(S)とが生成される。さらに、得られた中間鍵t(S)をPRSGに入力すると、座標点Sを始点とする有向枝の終端座標点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)と、セット鍵k(S)とが生成される。
一方、本実施形態に係るPRSGの入出力は、t(S)||・・・||t(S)||k(S)←PRSG(t(S))のように表現される。
すなわち、AI05方式で用いていたPRSGの出力は、入力される中間鍵に対応する座標点を始点とする有効枝の数をqとしたときに、λビットの入力に対して(q+1)λビットの出力を得るように構成されていた。これに対し、本実施形態で用いるPRSGは、qの値に関わらず、(k+1)λビットの出力を得られるように構成されている。但し、kはシステムパラメータである。
本実施形態では、部分集合Sに対応する中間鍵t(S)が上記のPRSGに入力して得られる出力をt(S)||・・・||t(S)||k(S)としている。このうち、t(S)||・・・||t(S)の部分は、部分集合Sに対応する座標点を始点とする有効枝の終点である座標点のそれぞれに対応する部分集合S,・・・,Sの中間鍵であり、部分集合Sに対応する座標点と部分集合Sに対応する座標点とを結ぶ有向枝の長さがn(i−1)/kとなる。
例えば、部分集合Sに対応する座標点と部分集合Sに対応する座標点とを結ぶ有向枝の長さがn2/kであるとき、PRSG(t(S))の出力の最初から3番目のλビットの部分がt(S)となる。
もし、部分集合Sに対応する座標点から長さn(i−1)/kの枝が出ていない場合には、t(S)の部分がPRSGから出力されるても使用されない。例えば、n1/k=2であるシステムの有効グラフにおいて、ある座標点Sから長さ1と長さ4の有向枝が出ているが、長さ2の有向枝が出ていない場合、PRSG(t(S))の出力の最初のλビットの部分は、長さ1の有向枝の終点である座標点に対応する部分集合の中間鍵となり、3番目のλビットの部分は、長さ4の有向枝の終点である座標点に対応する部分集合の中間鍵となる。このとき、長さ2の有向枝は存在しないので、2番目のλビットの部分は使用されない。
ある座標点の中間鍵となるPRSGの出力部分が、親座標点から出る他の有向枝の有無に依存していたAI05方式に対し、本実施形態では、上記のようにPRSGの利用方法を定めることによって、ある座標点とその親座標点との間の距離だけに依存してPRSGの出力のどの部分を使用すればよいかが一意に定まることになるため、他の枝を知る必要がないというメリットが得られる。
このように、鍵生成部114は、有向グラフHに基づいて上記の擬似乱数生成演算を繰り返し実行することで、複数の有向枝により連絡された複数の座標点に対応するセット鍵を導出することができる。以下、複数の有向枝により構成される2つの座標点間の経路を有向パスPと呼ぶことにする。
ところで、安全性に格段の注意を払わなくてもよい場面、又はセット鍵生成のための演算量を減らしたい場合には、有向グラフHに基づいてセット鍵k(S)から別のセット鍵k(S),…,k(S)を算出することが可能な擬似乱数生成器PRSGを利用する構成にすることも可能である。この構成によれば、例えば、セット鍵k(S)が擬似乱数生成器PRSGに入力されると、座標点Sから伸びる有向枝の到達先に対応するセット鍵k(S),k(S),k(S),…,k(S)が出力される。
以上、鍵生成部114の機能構成について説明した。上記の例から容易に理解される通り、鍵生成部114は、ある中間鍵を保持していると、その中間鍵を利用し、擬似乱数生成器PRSGを反復して実行することにより、その中間鍵に対応する座標点から伸びた有向枝の鎖(有向パスP)によって到達可能な全ての座標点に対応する中間鍵とセット鍵とを導き出すことができるのである。
(初期中間鍵設定部112)
次に、初期中間鍵設定部112の機能構成について説明する。初期中間鍵設定部112は、鍵配信サーバ102が所要のセット鍵を生成するために保持すべき中間鍵を設定する機能を有する。
上記の通り、鍵生成部114は、上記の擬似乱数生成器PRSGを反復して実行することにより、入力する中間鍵t(S)に対応する座標点Sを始点とする有向パスが到達可能な全ての座標点に対応するセット鍵を生成することが可能である。従って、鍵配信サーバ102は、鍵生成部114により、論理二分木BTを構成する根ノードと中間ノードとに対応付けられた全ての集合に含まれる部分集合のセット鍵を生成する場合、少なくとも、各集合の有向グラフHの始点に対応する座標点(以下、ルートと呼ぶ)の中間鍵を保持している必要がある。
そこで、初期中間鍵設定部112は、各有向グラフHのルートに対応する中間鍵を生成する。例えば、初期中間鍵設定部112は、鍵提供システム100をセットアップする際にλビットの乱数を生成し、各有向グラフHのルートに対応する中間鍵として設定する。なお、有向グラフHのルートとは、その座標点から有向枝が出ているが、その座標点に到達する有向枝がない座標点として定義される。図5に示す有向グラフH(1→64)の座標点[1,1]が有向グラフH(1→64)のルートである。なお、グラフH(3→3)のように座標点が1つだけのグラフについては、有向枝は出ていないが、その座標点をルートと考える。
以上、初期中間鍵設定部112の機能構成について説明した。上記の通り、初期中間鍵設定部112により、全ての部分集合に対応するセット鍵を生成するために必要な中間鍵が設定され、鍵生成部114によって全てのセット鍵を生成することが可能になる。
[その他の構成]
次に、上記の鍵生成ロジック構築ブロック、及び鍵生成ブロック以外の各構成要素の機能構成について説明する。
(部分集合決定部120)
部分集合決定部120は、コンテンツ鍵の暗号化に用いるセット鍵を決定する。つまり、部分集合決定部120は、コンテンツの再生を許可する契約者(以下、許諾契約者)が含まれる少なくとも1つの部分集合を抽出し、各契約者に配布されるセット鍵の種類(つまり、対応する部分集合)を決定する。例えば、部分集合決定部120は、コンテンツの再生を許可しない契約者(以下、排除契約者)の集合(R)と、全ての契約者の集合(N)から排除契約者の集合(R)を除外した許諾契約者の集合(N\R)とを決定する。
次いで、部分集合決定部120は、セットシステムSSに含まれる部分集合を用いて、許諾契約者の集合(N\R)を和集合(N\R=S∪S∪…∪S)により構成することが可能な部分集合の組(S,S,…,S)を決定する。このとき、部分集合の数mは小さい方が好ましい。次いで、部分集合決定部120は、上記の各部分集合S=[SP,TP](但し、j=1,…,m)に対し、部分集合Sを要素に持つ有向グラフH(SP→EP)又はH(EP←SP)の終点EPを抽出する。但し、SPは、Sを要素に持つ有向グラフの始点を示す番号を表す。以下、この部分集合に関する情報をsgi(sub−group information)と呼び、下式(4)のように表現する。
Figure 2008236380
(暗号化部116)
次に、暗号化部116の機能構成について説明する。暗号化部116は、セット鍵を用いてコンテンツ鍵を暗号化して暗号文を生成する。暗号化部116は、セットシステムSSを構成する全ての部分集合のうち、所定の部分集合に対応する複数のセット鍵を用いてコンテンツ鍵を暗号化する。このとき、暗号化部116は、鍵生成部114により生成された全てのセット鍵を用いてコンテンツ鍵を暗号化してもよいが、部分集合決定部120により決定された部分集合の組(S,S,…,S)に対応するセット鍵k(S),k(S),…,k(S)を用いてコンテンツ鍵を暗号化してもよい。その結果、一つのコンテンツ鍵に対して一又は複数の暗号文が生成される。また、暗号化部116は、コンテンツ鍵を用いてコンテンツを暗号化する。
例えば、有向グラフ生成部110により、有向グラフH(SP→EP)又はH(EP←SP)を構成する少なくとも1つの有向枝の中で、座標点[SP,SP]から座標点S=[SP,TP]に到達する有向パスPを特定し、有向パスPの情報に基づき、セット鍵k(S)が生成されたとする。すると、暗号化部116は、セット鍵k(S)を用いてコンテンツ鍵mekを暗号化する。さらに、暗号化部116は、コンテンツ鍵mekを用いてコンテンツCを暗号化する。以下、セット鍵k(S)により暗号化されたコンテンツ鍵mekをEk(Sj)(s)と表現し、コンテンツ鍵mekにより暗号化されたコンテンツCをE(M)と表現することにする。また、許諾契約者のみを含む上記の部分集合のセット鍵k(S),k(S),…,k(S)により暗号化されたコンテンツ鍵Ek(S1)(s),Ek(S2)(s),…,Ek(Sm)(s)をヘッダh={Ek(S1)(s),Ek(S2)(s),…,Ek(Sm)(s)}と呼ぶことがある。
(通信部118)
次に、通信部118の機能構成について説明する。通信部118は、主にシステムセットアップ時において、有向グラフHに基づいて所定の中間鍵を各契約者に配信する。このとき、通信部118は、各契約者が、自身が含まれる部分集合のセット鍵を全て導出するのに必要な中間鍵を全て配信する。また、システム運用時において、通信部118は、暗号化部116により暗号化されたコンテンツ又はコンテンツ鍵を全ての契約者に対して配信する。また、通信部118は、有向グラフの一部又は全部を生成するための情報を各契約者に配信する。さらに、通信部118は、許諾契約者の集合(N\R)、又は許諾契約者の集合(N\R=S∪S∪…∪S)に関する情報(例えば、部分集合(S,S,…,S)の情報)を各契約者に配信する。
つまり、通信部118は、少なくとも許諾契約者の部分集合に関する情報sgiと、ヘッダhと、暗号化されたコンテンツE(M)とを契約者の端末装置122に配信することができる。例えば、契約者数n=64に対し、部分集合S=[1,48],S=[64,56]に含まれる契約者にコンテンツの復号を許諾する場合を考える。すると、部分集合S,Sを要素として持つ有向グラフが有向グラフH(1→64)及びH(2←64)であるから、通信部118は、下式(5)の情報を各契約者の端末装置122に配信する。
Figure 2008236380
以上、本実施形態に係る鍵配信サーバ102の機能構成について説明した。上記の構成により、AI05方式の有向グラフHに基づいてセット鍵を生成し、コンテンツ鍵を暗号化して配信することができる。また、許諾契約者の集合に対して効率的にコンテンツ配信サービスを提供することが可能になる。
[鍵配信方法]
ここで、図6及び図7を参照しながら鍵配信サーバ102による鍵配信方法について説明する。図6は、システムセットアップ時の鍵配信処理の流れを示す説明図である。図7は、コンテンツ鍵を配信する処理の流れを示す説明図である。
(システムセットアップ時の鍵配信方法)
まず、図6を参照しながら、システムセットアップ時の鍵配信方法について説明する。
図6に示すように、鍵配信サーバ102は、契約者数n、セット鍵及び中間鍵のビット数λ、所定のパラメータk、及びPRSGによる擬似乱数生成アルゴリズム等を決定し、全ての端末装置122に対して公開する(S102)。次いで、鍵配信サーバ102は、端末装置122の集合を所定の部分集合に分けた後、その和集合によって表現されるセットシステムSS(上式(1))を決定して全ての端末装置122に対して公開する(S104)。次いで、鍵配信サーバ102は、複数の有向枝Eにより形成される有向グラフHを決定し、その情報の一部又は全部を全ての端末装置122に対して公開する(S106)。次いで、セットシステムSSを構成する各部分集合に対応する中間鍵を決定する(S108)。次いで、各端末装置122が有向グラフに基づいて自身が所属する全ての部分集合のセット鍵を導出するために必要な中間鍵を各端末装置122に対して配布する(S110)。
上記の通り、システムセットアップの際、各契約者には、その契約者が含まれる全ての部分集合のセット鍵を導出することが可能な複数の中間鍵が予め与えられる。但し、各契約者に対し、自身が含まれていない部分集合のセット鍵を導出することが可能な中間鍵を与えてはならない。また、各契約者に与える中間鍵の数が最小限になる方が好ましい。そこで、このような中間鍵を選択する方法について簡単に説明する。
まず、鍵配信サーバ102は、契約者uが含まれる部分集合の座標点に到達可能な有向グラフHを全て抽出する。有向グラフHのルートに対応する部分集合に契約者uが含まれる場合、そのルートに対応する中間鍵のみを契約者uに与える。
また、鍵配信サーバ102は、有向グラフHのルート以外の座標点に対応する部分集合のいずれかに契約者uが含まれる場合、契約者uが部分集合Sに含まれ、かつ、部分集合Sの親である部分集合parent(S)に含まれない部分集合Sを抽出する。そして、その部分集合Sに対応する中間鍵t(S)を契約者uに対して与える。
つまり、鍵配信サーバ102は、有向グラフHのルート以外の複数の座標点に対応する部分集合に契約者uが含まれる場合、各座標点に到達する有向枝の始端を参照し、各座標点の始端に対応する部分集合が契約者uを含まないような座標点を選択する。この座標点に対応する部分集合をSとし、座標点Sに到達する有向枝の始端(親)に対応する部分集合をparent(S)とすると、鍵配信サーバ102は、親座標点に対応する部分集合parent(S)は契約者uを含まないが、この座標点に対応する部分集合Sが契約者uを含むような座標点Sに対応する中間鍵t(S)を契約者uに与える。以下、1つの有向枝の始端parent(S)をその有向枝の終端Sの親と表現する。また、座標点Sの親をparent(S)と表記する。
さらに、鍵配信サーバ102は、そのような座標点Sが複数個存在する場合、それらに対応する複数の中間鍵t(S)を契約者uに与える。もちろん、座標点Sが有効グラフHのルートである場合には座標点Sの親は存在しない。そして、有効グラフHのルートではない場合には座標点Sの親はただ1つ存在する。
(具体例1)
契約者1に対して配信される中間鍵について考える。まず、契約者1が含まれる部分集合に到達可能な有向グラフHを抽出する。図5を参照すると、そのような有向グラフHは、有向グラフH(1→64)であることが分かる。そして、契約者1は、有向グラフH(1→64)のルートに対応する部分集合[1,1]に属している。従って、契約者1には、中間鍵t([1,1])が配信される。
(具体例2)
契約者3に対して配信される中間鍵について考える。まず、契約者3が含まれる部分集合に到達可能な有向グラフHを抽出する。図5を参照すると、そのような有向グラフ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は、有向グラフH(1→64)のルートに対応する部分集合[1,1]に含まれていないことが分かる。
しかし、契約者3は、3番目の座標点以降の部分集合[1,3],[1,4],…,[1,64]に含まれている。そこで、これらの座標点の親の部分集合を参照すると、親の部分集合に契約者3を含まない座標点は、[1,3]及び[1,4]のみであることが分かる。従って、座標点[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個の中間鍵が配信される。
(コンテンツ鍵の配信方法)
次に、図7を参照しながら、コンテンツ鍵mekの配信方法について説明する。
図7に示すように、鍵配信サーバ102は、排除契約者の集合Rを決定し、許諾契約者の集合N\Rを決定する(S112)。次いで、セットシステムSSを構成する部分集合から、和集合がN\Rとなるm個の部分集合S(i=1,2,・・・,m)を選択する(S114)。次いで、選択された各部分集合Sに対応するセット鍵k(S)を用いてコンテンツ鍵mekをそれぞれ暗号化する(S116)。次いで、集合N\R又は各部分集合Sを表す情報と、m個の暗号化されたコンテンツ鍵mekとを全ての端末装置122に対して配信する(S118)。
以上、鍵配信サーバ102によるセットアップ時の鍵配信方法、及びコンテンツ鍵mekの配信方法について説明した。この配信方法によると、各許諾契約者がセット鍵を生成するために必要な中間鍵を効率的に配信することが可能になる。
[有向グラフHの生成方法]
次に、図9を参照しながら、有向グラフHの生成方法について説明する。図9は、有向グラフH(l→r−1)の生成処理の流れを示す説明図である。
図9に示すように、座標軸設定部106は、集合(l→r−1)の要素を水平直線上に左から右に包含関係が大きくなるように配置する。次いで、最左の座標点の左側に1つの仮座標点Startを配置し、最右の座標点の右側に1つの仮座標点Endを配置する。すると、仮座標点Startから仮座標点Endまでの長さは、L=r−l+1となる。さらに、n(x−1)/k<L≦nx/kを満たす整数x(1≦x≦k)が算定される(S150)。
次いで、有向グラフ生成部110は、カウンタiを0〜x−1まで動かしながら下記の操作を行う。仮座標点Startから開始し、その座標点からni/kだけ離れた座標点へのジャンプを続け、仮座標点Endに到達するか、次のジャンプが仮座標点Endを超えたところで終了する。その後、各ジャンプに対応する有向枝を生成する(S152)。次いで、仮座標点Start又はEndに到達する有向枝を全て消去する(S154)。さらに、ある座標点Tに到達する有向枝が複数ある場合には、ジャンプの距離が一番長いもののみを残し、それ以外の有向枝を消去する(S156)。
以上、有向グラフHの生成方法について説明した。上記の処理を実行することにより、例えば、図5に示す有向グラフHを生成することができる。
[端末装置122の機能構成]
次に、図10を参照しながら、本実施形態に係る端末装置122の機能構成について説明する。図10は、端末装置122の機能構成を示す説明図である。
図10に示すように、端末装置122は、主に、通信部124と、判断部126と、有向グラフ生成部127と、鍵生成部128と、復号部130とにより構成される。
(通信部124)
まず、通信部124の機能構成について説明する。通信部124は、鍵配信サーバ102から配信された情報を取得する取得部の一例である。例えば、通信部124は、鍵配信サーバ102から配信されたコンテンツ、コンテンツ鍵、中間鍵、有向グラフに関する情報、又は許諾契約者に関する情報等を受信する機能を有する。
また、通信部124は、有線又は無線のネットワークに接続された複数の情報源(例えば、鍵配信サーバ102)、又はネットワークを介さずに直接的又は間接的に接続された情報源(例えば、光ディスク装置、磁気ディスク装置、又は携帯型端末装置等の情報メディア)から情報を取得する取得部であってもよい。
(判断部126)
次に、判断部126の機能構成について説明する。判断部126は、コンテンツ鍵の暗号化に利用されたセット鍵に対応する部分集合のいずれかに自身が要素として含まれるか否かを判断する。つまり、判断部126は、鍵配信サーバ102の部分集合決定部120により選択された部分集合のいずれかに自身が含まれるか否かを判断する。このとき、判断部126は、鍵配信サーバ102から取得した許諾契約者の部分集合を参照する。
(有向グラフ生成部127)
次に、有向グラフ生成部127の機能構成について説明する。有向グラフ生成部127は、鍵配信サーバ102がセット鍵を導出するために利用した有向グラフHの中で、自身が属する部分集合のセット鍵を導出するために必要な有向パスのみを生成する機能を有する。つまり、有向グラフ生成部127は、自身が必要なセット鍵を導出可能な有向パスのみにより構成される有向グラフGを生成することができる。
上記の説明において、有向グラフH(a→b)及びH(b←a)と縦線zとの交点を座標点[a,z]と表記したが、以下の説明では、これに加えて有向グラフHと縦線zとの交点を座標zと表現することがある。従って、座標点と座標とは異なることに注意されたい。
(有向グラフGの生成方法)
ここで、図13及び図14を参照しながら、有向グラフGの生成方法について詳細に説明する。図13及び図14は、契約者iが、自身が所属する部分集合Sのセット鍵k(S)を導出するために必要な有向グラフGを生成する処理の流れを示す説明図である。
但し、図13の最下段と図14の最上段に記載されたA,B,C,D,E,Fの各記号は,図13と図14とに跨る処理の推移において、その移動先を明示するための記号である。例えば、図13のAに達するステップは、図14のAに達したものと看做す。
なお、端末装置122は、契約者数n、及びパラメータkの情報を予め保持している。また、有向グラフGは、座標点の集合V(G(i))と有向枝の集合E(G(i))とにより構成され、G(i)={V(G(i),E(G(i))}と表現される。そして、有向グラフG(i)に含まれる座標点が1つの場合、有向枝の集合E(G(i))は、E(G(i))=φ(記号φは空集合)と表現される。また、[a,b]×[a,c]は、始端の座標点が[a,b]であり、終端の座標点が[a,c]である有向枝を表す。さらに、説明の便宜上、鍵配信サーバ102から下式(6)の情報を取得したものと仮定する。
Figure 2008236380
図13に示すように、通信部124が取得した許諾契約者の部分集合に関する情報sgiの中に自身(契約者i)が含まれる部分集合S(j∈S)が存在するか否かを判断する(S922)。部分集合Sが存在する場合、ステップS924に進む。部分集合Sが存在しない場合、自身が排除された(コンテンツを取得する権利無し)ものとして、有向グラフGの生成処理を終了する。ステップS922の処理は、主に、上記の判断部126により実行される。
次いで、有向グラフ生成部127は、契約者の番号iがTPと一致するか否かを判断する(S924)。i=TPである場合、契約者iがセット鍵を導出する際に生成が必要な有向グラフG(i)={V(G(i),E(G(i))}をV(G(i))={[SP,i]},E(G(i))=φとして出力し(S978)、有向グラフGの生成処理を終了する。i=TPでない場合、ステップS926に進む。
次いで、有向グラフ生成部127は、契約者iの現在位置の座標cup、現在考慮中の範囲の始点の座標sp及び終点の座標ep、カウンタm、カウンタz、座標点の集合V(G(i))、及び有向枝の集合E(G(i))を次のように初期化する(S926)。
sp=SPj,ep=EPj,cup=i,m=1,z=0,V(G(i))=φ,E(G(i))=φ。但し、jは、i∈Sを満たす部分集合Sのインデックスjを表す。
次いで、有向グラフ生成部127は、SP=1か否かを判断する(S928)。SP=1である場合、ステップS930に進む。そして、有向グラフ生成部127は、L=|EP−SP|+1を計算し、さらに、epにep−1を代入した後(S930)、ステップS934に進む。逆に、SP=1でない場合、ステップS932に進む。そして、有向グラフ生成部127は、L=|EP−SP|+2を計算し(S932)、ステップS934に進む。
次いで、有向グラフ生成部127は、n(x−1)/k<Lv≦nx/kを満たすx(1≦x≦k)を算出する(S934)。次いで、有向グラフ生成部127は、cup=TPであるか否かを判断する(S936)。cup=TPである場合、ステップS976に進む。そして、契約者iが部分集合の鍵を導出するために利用する有向グラフG{V(G(i)),E(G(i))}を出力し(S976)、有向グラフGの生成処理を終了する。
逆に、cup=TPでない場合、ステップS938に進む。そして、有向グラフ生成部127は、z=0であるか否かを判断する(S938)。z=0である場合、ステップS940に進む。z=0でない場合、ステップS946に進み、spからepに到達するジャンプの回数が最小となる最大有向パス(MP;MaxPath)を決定する(S946)。この処理については後述する。
次いで、有向グラフ生成部127は、SP<EPであるか否かを判断する(S940)。SP<EPである場合、ステップS942に進む。そして、spを下式(7)のように設定し(S942)、ステップS946に進む。一方、SP<EPでない場合、ステップS944に進む。そして、spを下式(8)のように設定し(S944)、ステップS946に進む。
Figure 2008236380
次いで、有向グラフ生成部127は、AI05方式における有向グラフHの一部と一致するように、spからepに至る有向パスの中で、ジャンプの回数が最小となる有向パスをMP(MaxPath)と決定する(S946)。このMPを決定する処理については後述する。
次いで、有向グラフ生成部127は、z=0であるか否かを判断する(S948)。z=0でない場合、ステップS958に進む。一方、z=0である場合、ステップS952に進む。そして、MP上の有向枝数をwとし、[SP,sp]を始端とする有向枝を1番目の有向枝として、MP上のi番目の有向枝の距離をdtと定義する。但し、dtw+1=0とする。ここで、[SP,SP]を始点として、カウンタiをwから1まで動かしながら、距離dtのジャンプを実行し、それに対応する有向枝を生成する。このとき、i番目のジャンプにおける到達点はi−1番目のジャンプの出発点になることに注意が必要である。さらに、ステップS946で決定したMPと、ここで(S952)で生成した有向枝とを新たなMPとし、z=1とする(S952)。
次いで、有向グラフ生成部127は、SP=1であるか否かを判断する(S954)。SP=1でない場合、ステップS958に進む。一方、SP=1である場合、ステップS956に進む。そして、有向グラフ生成部127は、MP上に有向枝[SP,EP−1]×[SP,EP]を追加して新たなMPとする(S956)。
次いで、有向グラフ生成部127は、MP上に存在する各有向枝の中で、始端と終端との間に座標点[SP,cup]が含まれる有向枝を特定する(S958)。但し、始端又は終端の座標点と座標点[SP,cup]とが一致する場合も含む。また、特定された有向枝をCUE(Current User’s Edge)と呼ぶことにする。なお、座標点[SP,cup]がMP上に存在し、隣接する2つの有向枝の始端及び終端に座標点[SP,cup]が一致する場合は、座標点[SP,cup]を始点とする有向枝をCUEとする。
次いで、有向グラフ生成部127は、座標点[SP,TP]がCUEの終端に一致せず、かつ、CUEの終端よりも有向グラフHの終点側に近くない場合、ステップS970に進む。一方、座標点[SP,TP]がCUEの終端に一致するか、又はCUEの終端よりも有向グラフHの終点側に近い場合、ステップS962に進む(S960)。
次いで、有向グラフ生成部127は、V(G(i))、及びE(G(i))を次のように設定する(S962)。
V(G(i))=φである場合、V(G(i))=[SP,spi,m]∪[SP,epi,m]とする。一方、V(G(i))=φでない場合、V(G(i))=V(G(i))∪[SP,epi,m]とする。また、E(G(i))=E(G(i))∪{[SP,spi,m]×[SP,epi,m]}とする。
但し、spi,m,epi,mは、各々現在のCUEの始端及び終端の座標を表す。なお、V(G(i))=φである場合とV(G(i))=φでない場合とで処理が異なるのは次の理由による。V(G(i))=φの場合には、有向枝の始端及び終端の両方を座標点として追加する必要があるが、V(G(i))=φでない場合には、追加される有向枝の始端は、既にV(G(i))の座標点として追加されており、重複を避けるため、V(G(i))には終端となる座標点のみを追加するのである。
次いで、有向グラフ生成部127は、mにm+1を代入する(S964)。次いで、有向グラフ生成部127は、CUEの次の有向枝(CUEの終端を始端とする有向枝)が存在するか否かを判断する(S966)。CUEの次の有向枝が存在する場合、ステップS968に進み、MP上に存在するCUEの次の有向枝を新たなCUEとして設定し、ステップS960の処理に戻る。一方、CUEの次の有向枝が存在しない場合、ステップS970に進む。
次いで、有向グラフ生成部127は、spにCUEの始端の座標を設定し、epにCUEの終端の一つ手前に位置する座標点の座標を設定する(S970)。次いで、有向グラフ生成部127は、m=1か否かを判断する(S972)。m=1である場合、ステップS936の処理に戻る。一方、m=1でない場合、ステップS974に進む。
次いで、有向グラフ生成部127は、cup=epi,(m−1)を設定し(S974)、ステップS936の処理に戻る。
以上、本実施形態に係る有向グラフGの生成方法について説明した。上記の生成方法では、sgiに有向グラフHの終点に関する情報EPが含まれることを前提としているが、SPが決まるとEPは論理二分木BTにより一意に特定可能であるため、契約者自身がEPを特定するように構成することも可能である。この構成は、例えば、ステップS926の処理にEPを導出するステップを追加することにより実現される。
(最大有向パスMPの決定方法)
次に、図15を参照しながら、図13のステップS946における最大有向パスMPの決定方法について説明する。図15は、最大有向パスMPの決定処理の流れを示す説明図である。
図15に示すように、まず、有向グラフ生成部127は、カウンタl、現在考慮中のジャンプの到達点の座標tsp、及び現在考慮中の距離dtを次のように初期化する(S982)。l=x,tsp=sp,dt=|ep−tsp|。
次いで、有向グラフ生成部127は、lにl−1を代入する(S984)。次いで、有向グラフ生成部127は、l≧0であるか否かを判断する(S986)。l≧0でない場合、ステップS996に進み、座標点[SP,sp]から[SP,ep]に達する少なくとも1つの有向枝の鎖により形成される有向パスをMPと設定し(S996)、MPの決定処理を終了する。一方、l≧0である場合、ステップS988に進む。
次いで、有向グラフ生成部127は、dt−nl/k≧0であるか否かを判断する(S988)。dt−nl/k≧0でない場合、ステップS984の処理に戻る。一方、dt−nl/k≧0である場合、ステップS990に進む。
次いで、有向グラフ生成部127は、[SP,tsp]を出発点として距離nl/kのジャンプを実行し、対応する有向枝を生成する(S990)。次いで、有向グラフ生成部127は、ステップS990で生成された有向枝の終端の座標を新たにtspとする(S992)。次いで、有向グラフ生成部127は、dtにdt−nl/kを代入し(S994)、ステップS988の処理に戻る。
以上、最大有向パスMPの決定方法について説明した。上記の決定処理により、上記の有向グラフGの生成処理を実施することが可能になる。
(具体例)
ここで、図11及び図12を参照しながら、上記の生成方法に基づき、有向グラフ生成部127により生成される有向グラフGの具体例について説明する。図11及び図12は、契約者数n=64、パラメータk=6の場合に生成される有向グラフGを示す説明図である。特に、集合(1→64)に対応する有向グラフのみを示している。図11及び図12の上側に描いた図は、AI05方式のアルゴリズムを用いた場合に契約者が導出する有向グラフHである。一方、下側に描いた図は、本実施形態のアルゴリズムを用いた場合に契約者が導出する有向グラフGである。
(具体例1)
まず、図11を参照すると、契約者1が部分集合[1,2]のセット鍵を導出するために生成する有向グラフGが示されている。また、図中の実線は、契約者1がセット鍵を導出する際に、最終的に導出する必要のある有向枝を示している。つまり、契約者1は、部分集合[1,2]のセット鍵を導出する際、実線で示した有向枝の始端に対応する中間鍵t([1,1])をPRSGに入力し、その終端に対応するt([1,2])を導出する必要があることを意味している。さらに、実線と破線とにより構成される有向グラフGは、契約者1が導出する必要がある最大有向パスMPを表している。
(具体例2)
次に、図12を参照すると、契約者7が部分集合[1,44]のセット鍵を生成するために生成する有向グラフGが示されている。また、図中の実線は、契約者7がセット鍵を導出する際に、最終的に導出する必要のあるジャンプに対応した有向枝を示している。つまり、契約者7は、部分集合[1,44]のセット鍵を導出する際、予め保持している中間鍵t([1,4])を利用し、実線で示した有向枝に沿ってPRSGを繰り返し実行して中間鍵t([1,44])を導出する必要があることを意味している。さらに、実線と破線とにより構成される有向グラフGは、契約者7が導出する必要がある最大有向パスMPを表している。
(鍵生成部128)
次に、鍵生成部128の機能構成について説明する。鍵生成部128は、予め配信された中間鍵とPRSGとを利用して所望の中間鍵又はセット鍵を生成する。このとき、鍵生成部128は、有向グラフ生成部127により生成された有向グラフGに基づき、所望の中間鍵又はセット鍵を生成する。なお、判断部126により自身が含まれる部分集合が存在しないと判断された場合、鍵生成部128は、中間鍵又はセット鍵の生成処理を実行しない。但し、上記のPRSGは、鍵配信サーバ102が保持するPRSGと実質的に同一であり、所定の有向グラフに基づき、有向枝の始端に対応する中間鍵が入力されると、当該中間鍵に対応するセット鍵と、当該有向枝の終端に対応する中間鍵が出力される機能を有する。もちろん、一つの座標点から複数の有向枝が伸びている場合、PRSGは、全ての有向枝の終端に対応する中間鍵を出力する。
(鍵生成方法)
ここで、図16を参照しながら、本実施形態に係る鍵生成方法について説明する。図16は、鍵生成部128による鍵生成処理の流れを示す説明図である。なお、以下の説明では、契約者iが有向グラフG(i)を既に導出していることを前提とする。また、有向グラフG(i)を構成する有向枝の集合E(G(i))は、下式(9)のように表現されるものとする。また、E(G(i))に含まれ、下式(10)と下式(11)とで表現される隣接する2つの有向枝において、必ずepi,(w−1)=spi,wとなっている。但し、w=2,…,m−1である。
Figure 2008236380
図16に示すように、まず、鍵生成部128は、i=TPとなるTPが存在するか否かを判断する(S572)。i=TPとなるTPが存在する場合、ステップS574に進む。そして、鍵生成部128は、TPと、中間鍵t(S)=t([SP,epi,w])(w=1,…,z)に対応する部分集合Sの座標epi,wとが一致する中間鍵t(S)を特定する(S574)。そして、中間鍵t(S)を中間鍵CTK(Current Tempolary Key)に設定し、ステップS590に進む。
一方、ステップS572において、i=TPとなるTPが存在しない場合、ステップS576に進む。そして、鍵生成部128は、カウンタlに1を代入する(S576)。次いで、鍵生成部128は、[SP,spi,l]×[SP,epi,l]∈E(G(i))の終端を示す座標と、中間鍵t(S)=t([SP,epi,w])(w=1,…,z)に対応する部分集合Sの座標epとが一致する中間鍵t(S)を現在の中間鍵CTKに設定する(S578)。
次いで、鍵生成部128は、[SP,spi,l]×[SP,epi,l]∈E(G(i))の次の有向枝(ある有向枝の終端を始端とする有向枝)が存在するか否かを判断する(S580)。次の有向枝が存在する場合、ステップS582に進む。逆に、次の有向枝が存在しない場合、ステップS590に進む。
次いで、鍵生成部128は、CTKをPRSGに入力して(k+1)*λビットの値を出力させる(S582)。次いで、鍵生成部128は、lにl+1を代入する(S584)。さらに、鍵生成部128は、|epi,l−spi,l|=np/kを満たすpを決定する(S586)。次いで、鍵生成部128は、ステップS582で取得した出力のMSB(Most Significant Bit)を1ビット目とし、p*λ+1ビット目から(p+1)*λビット目までの値を新たなCTKとする(S588)。そして、ステップS580の処理に戻る。
次いで、鍵生成部128は、CTKをPRSGに入力し、(k+1)*λビットの値を出力される(S590)。そして、鍵生成部128は、ステップS590で得られた出力のMSBを1ビット目とし、k*λ+1ビット目から(k+1)*λビット目までの値をセット鍵k(S)として取得する(S592)。
以上、本実施形態に係る鍵生成方法について説明した。上記の処理により、鍵生成部128は、有向グラフGに基づいて所望のセット鍵を生成することが可能になる。
(復号部130)
次に、復号部130の機能構成について説明する。復号部130は、鍵生成部128により生成されたセット鍵を用いてコンテンツ鍵を復号する。また、復号部130は、コンテンツ鍵を用いてコンテンツを復号することも可能である。
(コンテンツ鍵の復号方法)
次に、図8を参照しながら、暗号化されたコンテンツ鍵mekの復号処理について説明する。図8は、コンテンツ鍵の復号処理の流れを示す説明図である。
図8に示すように、通信部124は、鍵配信サーバ102からm個の暗号化されたコンテンツ鍵mekと、集合N\Rを表す情報又はm個の部分集合S(i=1,2,・・・,m)を表す情報とを取得する(S120)。次いで、判断部126は、自身が含まれる部分集合Sを検索し(S122)、自身がm個の部分集合Sのいずれかに含まれているか否かを判断する(S124)。
自身が含まれる部分集合Sが存在する場合、鍵生成部128は、擬似乱数生成器PRSGを利用して、その部分集合Sに対応するセット鍵k(S)を導出する(S126)。次いで、復号部130は、導出したセット鍵k(S)を用いて暗号化されたコンテンツ鍵mekを復号する(S128)。一方、自身がいずれの部分集合Sにも含まれない場合、判断部126は、自身が排除契約者である旨を表示出力し(S130)、コンテンツ鍵の復号処理を終了する。
上記の通り、端末装置122は、鍵配信サーバ102から取得した集合N\R又はm個の部分集合Sの情報と、m個の暗号化されたコンテンツ鍵k(S)とに基づいてコンテンツ鍵mekを復号することができる。
[鍵提供システム100の応用例]
ここで、図17及び図18を参照しながら、上記の各実施形態に係る鍵提供システム100の応用例について簡単に説明する。
(応用例1)
まず、鍵提供システム100の一応用例として、放送暗号化システム800の構成について説明する。図17は、放送衛星を用いた放送暗号化システム(Broadcast Encryption System)800の構成を示す説明図である。
図17を参照すると、放送暗号化システム800は、主に、衛星放送局802と、管理センタ804と、放送衛星806と、住居808と、受信機810とにより構成される。ここで、放送暗号化システム800は、放送チャンネルを介して暗号化されたデータ(暗号テキスト;Ciphertext)を住居808に設置された受信機810に対して配信するシステムである。但し、放送チャンネルとは、例えば、衛星放送配信チャンネルである。また、暗号テキストとは、例えば、暗号鍵、音声データ、映像データ、又はテキストデータ等を含むコンテンツである。
まず、衛星放送局802には、放送衛星806を介して暗号テキスト等のデータを送信する管理センタ(Broadcast Trusted Center)804が設置される。管理センタ804は、例えば、暗号化用の鍵を選択したり、データの暗号化、及びデータの配信制御を実行する。つまり、管理センタ804は、上記の各実施形態に係る鍵配信サーバ102の一例である。また、住居808に設置された受信機810は、上記の各実施形態に係る端末装置122の一例である。
放送衛星806は、管理センタ804と各住居808に設置された受信機810との間を媒介し、当該受信機810に対して暗号テキスト等のデータを放送する。また、受信機810は、例えば、衛星放送受信機等であり、放送衛星806を介して放送されたデータを受信する。なお、図17に示すように、放送暗号化システム800には複数の受信機810が含まれていてもよく、その場合、管理センタ804は、複数の受信機810から成る受信機グループに対してデータを配信する。このとき、管理センタ804は、認証された受信機810のみがデータを復号できるように放送データを暗号化して配信する。
以上、鍵提供システム100の一応用例である放送暗号化システム800について説明した。図17では、衛星放送の例を挙げたが、放送暗号化システム800は、例えば、ケーブルテレビジョンやコンピュータネットワーク等の他の放送チャンネルを利用した暗号化システムに対しても容易に応用することが可能である。
(応用例2)
次に、鍵提供システム100の他の応用例として、放送暗号化システム900の構成について説明する。図18は、記録媒体を用いた放送暗号化システム900の構成を示す説明図である。
図18を参照すると、放送暗号化システム900は、主に、媒体製造業者902と、管理センタ904と、記録媒体906と、配布仲介者908と、住居912と、受信機914とにより構成される。ここで、放送暗号化システム900における放送チャンネルはデータが記録された記録媒体906である。
まず、媒体製造業者902には、記録媒体906を利用し、配布仲介者908を介して暗号テキスト等のデータを住居912に提供する管理センタ904が設置されている。但し、管理センタ904は、記録媒体906に暗号テキスト等のデータを記録するだけであり、記録媒体906を用いて間接的に暗号テキスト等のデータを提供する。また、記録媒体906は、例えば、読出専用媒体(例えば、CD−ROM、DVD−ROM等)、又は書換可能媒体(例えば、CD−RW、DVD−RW等)等である。上記の応用例1と同様、管理センタ904は、上記の各実施形態に係る鍵配信サーバ102に相当する。但し、暗号テキスト等のデータを記録媒体に記録して提供する点で若干相違するが、本発明に係る鍵配信サーバは、この応用例のように、実施形態に応じて暗号テキスト等の情報を配信する手段を適宜変更することが可能である。
媒体製造業者902は、例えば、小売店等の配布仲介者(Distribution Outlet)908に対して暗号テキスト等のデータが記録された記録媒体906を送付する。次いで、配布仲介者908は、媒体906を各住居912に対して提供する。例えば、配布仲介者908は、記録媒体906を各住居912に対応する個人に対して販売する。この個人は、記録媒体906を住居912に持ち帰り、受信機914を利用して記録媒体906に記録されたデータを再生する。この受信機914は、上記の各実施形態に係る端末装置122の一例であるが、暗号テキスト等のデータを記録媒体を介して取得する点で若干相違する。しかし、本発明に係る端末装置は、この応用例のように、実施形態に応じて暗号テキスト等の情報を取得する手段を適宜変更することが可能である。また、受信機914は、例えば、CDプレーヤ、DVDプレーヤ、又はDVD−RWドライブを備えたコンピュータ等であり、記録媒体906に記録されているデータを読み出して再生することが可能な装置により構成されうる。
以上、鍵提供システム100の一応用例である放送暗号化システム900について説明した。図18では、記録媒体906を介して暗号テキスト等のデータを契約者に提供する手段を例に挙げて説明した。このように、本発明に係る鍵配信サーバ及び端末装置は、実施形態に応じて、各種情報の配布手段に関する構成を変更することが可能である。
[効果]
従来、各契約者は、自身が所属する部分集合に対応する全ての有向グラフHを保持するか、又は自身で全ての有向グラフHを導出する必要があった。しかし、本実施形態は、各契約者が、自身の所属する部分集合に対応する有向グラフHの中で、自身が鍵導出の際に必要とする有向枝のみで構成される有向グラフGを導出する手段を提供する。従って、従来の鍵配信方式と比較し、各契約者が算出すべき有向枝の数を大幅に削減することが可能となり、各契約者が各々有向グラフGを生成して高速に所望のセット鍵を導出することが可能になる。その結果、コンテンツの復号に掛かる時間を大幅に短縮することができる。
<第2実施形態>
以下、図面を参照しながら、本発明の第2実施形態に係る鍵提供システム100の構成、及び鍵配信に係る具体的な方式について詳細に説明する。但し、上記の第1実施形態に係る鍵提供システム100と実質的に同一の構成要素については同一の符号を付することにより重複する説明を省略し、相違する構成要素について詳細に説明する。なお、本実施形態は、A06(B)方式の鍵提供システム100において、端末装置が効率的に有向グラフを生成する手段を備える点に特徴を有する。
[第2実施形態の特徴]
ここで、本発明の第2実施形態と上記の第1実施形態とを対比して説明することで両実施形態の相違点を明確にし、当該第2実施形態の特徴を明らかにする。まず、上記の第1実施形態と本実施形態との最大の相違点は、本発明の技術を適用する鍵配信方式の違いである。上記の第1実施形態がAI05方式に適用可能であるのに対し、本実施形態はA06(B)方式に対して適用することが可能である。
(AI05方式とA06(B)方式との対比)
そこで、AI05方式とA06(B)方式との相違点について簡単に説明し、A06(B)方式の特徴を明確にする。AI05方式とA06(B)方式との違いは、鍵生成に要する計算量にあることは本稿の冒頭で既に述べた。具体的には、次の通りである。
上記の第1実施形態の説明において述べた通り、AI05方式では、論理二分木BTの根ノードに有向グラフH(1→n)及びH(2←n)が対応付けられ、他の中間ノードvに対し、有向グラフH(l→r+1)又はH(l+1←r)が対応付けられる。契約者uが所属する有向グラフHは、論理二分木BT上の葉ノードuから根ノードに到達する経路の中に存在するノードのうち、葉ノードと根ノードとを除くlog(n)−1個の中間ノードv(v=1,…,log(n)−1)に各1つ、又は根ノードに対応付けられた2つの有向グラフのいずれかである。従って、合計log(n)+1個の有向グラフHが存在する。そして、各有向グラフHについて、契約者が保持すべき鍵数の最大値は、ある座標点を出発点とする有向パスに含まれる有向枝の最大数を下回る。従って、有向枝の最大数がパラメータkに等しいことから、各契約者が保持すべき鍵数は、最悪でもk*(log(n)+1)以下になる。また、漸近的には、O(k*log(n))になる。
より正確には、有向グラフHを生成する際に用いる線分の長さLについて、n(x−1)/k<Lv≦nx/kを満たすx(1≦x≦k)を算出することで得られる。そこで、論理二分木BT上の各中間ノードに対してxを算出すると、各契約者が保持すべき鍵数の上限は、下式(12)により表現することができる。その結果、AI05方式では、各契約者の計算量が依然として大きいというのが一つの問題である。
Figure 2008236380
次に、各契約者がセット鍵を生成する際に必要な計算量について考察する。各契約者に要求される計算量を決める支配的な要因は、所望の中間鍵を生成するのに要するPRSGの演算回数にある。この最悪値は、有向グラフHのルートから最も遠いリーフ(有向枝が出ていない座標点)に至る有向パスに含まれる有向枝の本数により表現される。この最悪値が最大になるのは、有向グラフH(1→n)の座標点[1,1]から[1,n]に至る有向パスである。いま、t=n1/k−1とおき、距離bのジャンプ(有向枝に相当)をa回連続して実行する処理をJ(a,b)と表現すると、この有向パスは、下式(13)のように表現される。
Figure 2008236380
つまり、この有向パスを構成する有向枝の数(ジャンプの回数)は、下式(14)となる。例えば、契約者数n=64、パラメータk=6の場合、有向グラフH(1→64)の座標点[1,1]から[1,64]に達する有向パスには、11本の有向枝が存在する。結局、AI05方式では、この有向枝数が多いため、各契約者が実行すべきジャンプの回数、即ち計算量が依然として多いというのがもう一つの問題である。
Figure 2008236380
これに対し、A06(B)方式では、有向グラフをより長い有向枝により構成するように改良した点に特徴を有する。例えば、図20にA06(B)方式の有向グラフIを示したが、図5に示したAI05方式の有向グラフHに比べて、長さがより長い有向枝が含まれていることが容易に分かる。もちろん、これらの有向グラフは、いずれも同じ論理二分木BTに基づいて構成されており、契約者数n及びパラメータkも同じである。その結果、A06(B)方式を適用すると、AI05方式に比べて各契約者に要求される計算量を削減できることが直感的にも明らかである。
そこで、上記の式(13)と同様に、A06(B)方式の有向グラフI(1→n)の座標点[1,1]から[1,n]に至る有向パスを表現すると、下式(15)のように表される。但し、J(a,b)の定義はAI05方式と同じである。
Figure 2008236380
従って、この有向パスを構成する有向枝数(ジャンプ回数)は、k*(n1/k−1)となり、AI05方式の(2k−1)*(n1/k−1)に比べて約半分程度に減少していることが分かる。このように、A06(B)方式を適用することにより、各契約者に要求される計算量を大きく減少させることが可能である。
(共通の課題)
上記の通り、A06(B)方式は、AI05方式に比べて演算量を半分程度にまで削減しているが、実施を想定した現実的な状況を想定すると、各契約者に要求される演算負荷が依然として高いという問題がある。A06(B)方式においても、AI05方式と同様に、有向グラフIの情報を全て保持しているか、又は全ての有向グラフIを生成する必要があり、各契約者の端末装置に掛かる演算負荷は、一般的な端末装置の有効なリソースを大きく圧迫するという問題がある。
具体的には、契約者数nの状況でA06(B)方式を適用する場合、有向グラフI(1→n)に含まれる有向枝数は、下式(16)により表現される。
Figure 2008236380
従って、契約者数n=64の場合、63本の有向枝に関する情報を保持するか、又は導出する必要がある。有向枝に関する情報は、有向枝の始端と終端との情報が必要であり、例えば、一方を32bit=4Byteで表現できたとしても、有向グラフI(1→n)だけで252Byteのデータ領域を必要とする。現実的には、契約者数nがn=232程度であるため、有向グラフI(1→n)の情報は、約32GByte程度になる。端末装置のストレージリソースを大きく圧迫することはもちろんのこと、リムーバブルメディアに記録して配布することも困難である。また、有向グラフI(1→n)を各契約者が生成するにしても、n−1=4294967295本の有向枝を算出しなくてはならず、有向グラフの生成だけで膨大な時間が掛かってしまうという問題がある。
(本実施形態の目的)
そこで、本実施形態の目的は、A06(B)方式の有向グラフIに基づく鍵提供システム100において、各々の契約者が必要とする有向グラフの情報のみを生成することにより、各契約者に掛かる演算負荷を大きく低減させる手段を提供することにある。
[鍵提供システム100の構成]
ここで、本実施形態に係る鍵提供システム100の構成について説明する。但し、基本的なシステム構成は、図1に示した第1実施形態の構成と実質的に同一であるため、その詳細な説明を省略する。また、本実施形態に係る鍵提供システム100に含まれる鍵配信サーバ202、及び端末装置222のハードウェア構成についても、図2に示した鍵配信サーバ102、及び端末装置122のハードウェア構成と実質的に同一であるため、その詳細な説明を省略する。
[鍵配信サーバ202の機能構成]
そこで、図19を参照しながら、本実施形態に係る鍵配信サーバ202の機能構成について説明する。図19は、鍵配信サーバ202の機能構成を示す説明図である。
図19に示すように、鍵配信サーバ202は、主に、木構造設定部104と、座標軸設定部206と、有向グラフ生成部210と、初期中間鍵設定部112と、鍵生成部114と、暗号化部116と、通信部118と、部分集合決定部120とにより構成される。但し、本実施形態の特徴的な構成は、主に、座標軸設定部206、及び有向グラフ生成部210であり、他の構成要素については、第1実施形態に係る鍵配信サーバ102の構成要素と実質的に同一である。従って、座標軸設定部206、及び有向グラフ生成部210の機能構成のみについて詳細に説明する。
(座標軸設定部206)
まず、座標軸設定部206の機能構成について説明する。座標軸設定部206は、有向グラフIを形成するための複数の水平座標軸を設定する機能を有する。
まず、座標軸設定部206は、集合(1→n−1)に含まれる複数の部分集合を右方向に向かって包含関係が大きくなるように一つの水平座標軸上の各座標点に対応付け、集合(1→n−1)の水平座標軸を形成する。また、座標軸設定部206は、論理二分木BT上のv∈BTである中間ノードvについて、中間ノードvに対応付けられた集合(l→r−1)に含まれる複数の部分集合を右方向に向かって包含関係が大きくなるように一つの水平座標軸上の座標点に対応付け、集合(l→r−1)の水平座標軸を形成する。なお、座標軸設定部206は、v∈BTである全てのvに対して集合(l→r−1)の水平座標軸を形成する。
次いで、座標軸設定部206は、集合(2←n)に含まれる複数の部分集合を左方向に向かって包含関係が大きくなるように一つの水平座標軸上の各座標点に対応付け、集合(2←n)の水平座標軸を形成する。また、座標軸設定部206は、集合(l+1←r)に含まれる複数の部分集合を左方向に向かって包含関係が大きくなるように一つの水平座標軸上の各座標点に対応付け、集合(l+1←r)の水平座標軸を形成する。なお、座標軸設定部206は、v∈BTである全てのvに対して集合(l+1←r)の水平座標軸を形成する。
次いで、座標軸設定部206は、集合(1→n−1)の水平座標軸の右端に位置する座標点の右側に2つの仮座標点を配置する。また、座標軸設定部206は、集合(l→r−1)の水平座標軸の右端に位置する座標点の右側に2つの仮座標点を配置する。さらに、座標軸設定部206は、集合(2←n)の水平座標軸の左端に位置する座標点の左側に2つの仮座標点を配置する。そして、座標軸設定部206は、集合(l+1←r)の水平座標軸の左端に位置する座標点の左側に2つの仮座標点を配置する。
以上、座標軸設定部206の機能構成について説明した。上記の構成により、座標軸設定部206は、A06(B)方式の有向グラフを形成するために必要な複数の水平座標軸を生成することができる。以下、座標軸設定部206により生成された水平座標軸上に有向グラフIを生成する手段について説明する。
(有向グラフ生成部210)
次に、有向グラフ生成部210の機能構成について説明する。有向グラフ生成部210は、上記の各水平座標軸上に有向グラフIを生成する機能を有する。
まず、有向グラフ生成部210は、パラメータk(kは整数)を設定する。また、有向グラフ生成部210は、n(x−1)/k<r−l+1≦nx/kを満たす整数xを決定する。但し、k|log(n)(以下、logの底は2)と仮定してもよい。また、パラメータkは、端末装置222が保持すべき中間鍵の個数、及びセット鍵を生成するのに必要な計算量に関係する量である。
次いで、有向グラフ生成部210は、集合(1→n−1)の水平座標軸上、及び集合(l→r−1)の水平座標軸上に長さni/k(i=0〜x−1)を有する右方向を向いた有向枝を形成する。さらに、有向グラフ生成部210は、集合(2←n)の水平座標軸上、及び集合(l+1←r)の水平座標軸上に長さni/k(i=0〜x−1)を有する左方向を向いた有向枝を形成する。但し、有向グラフ生成部210は、全てのvに対応する上記の水平座標軸上に有向枝を形成する。
具体的には、集合(1→n−1)の水平座標軸上、及び集合(l→r−1)の水平座標軸上について、集合(1→n−1)又は集合(l→r−1)の要素を水平直線上に左から右に包含関係が大きくなるように並べる。そして、最左の座標点を始点とする。さらに、最右の座標点の右に2つの仮座標点を配置する。次いで、カウンタiを0〜x−1まで動かしながら下記の操作を行う。始点から開始し、その座標点からni/kだけ離れた座標点へのジャンプを続け、仮座標点に到達するか、次のジャンプが仮座標点を超えたところで終了する。その後、各ジャンプに対応する有向枝を生成する。集合(2←n)の水平座標軸上、及び集合(l+1←r)についても同様の処理を行うが左右を逆にした方法により有向枝が生成される点に注意が必要である。
次いで、有向グラフ生成部210は、各水平座標軸上に配置された仮座標点を始端又は終端とする全ての有向枝を消去する。さらに、有向グラフ生成部210は、複数の有向枝が一つの座標点に到達する場合、複数の有向枝の中から最長の有向枝のみを残し、他の有向枝を全て消去する。以上の処理により、集合(1→n−1)の有向グラフH(1→n−1)、集合(2←n)の有向グラフH(2←n)、集合(l→r−1)の有向グラフH(l→r−1)、及び集合(l+1←r)の有向グラフH(l+1←r)が生成される。
次いで、有向グラフ生成部210は、集合(1→n−1)の水平座標軸の右側に配置された2つの仮座標点の中で、左側に位置する仮座標点を終端とする長さ1の右向き有向枝を有向グラフH(1→n−1)に追加する。つまり、有向グラフ生成部210は、下式(17)の処理を実行して集合(1→n)の有向グラフH(1→n)を生成する。但し、E(…)は有向枝を表す。
Figure 2008236380
以上、有向グラフ生成部210の機能構成について説明した。上記の構成により、有向グラフ生成部210は、A06(B)方式の有向グラフIを形成することができる。
[有向グラフIの生成方法]
ここで、図22を参照しながら、有向グラフIの生成方法について説明する。図22は、有向グラフI(l→r−1)の生成処理の流れを示す説明図である。
まず、集合(l→r−1)の要素を水平直線上に左から右に包含関係が大きくなるように並べる。そして、最左の座標点を始点とする。さらに、最右の座標点の右に2つの仮座標点を配置する(S140)。すると、始点から最右の仮座標点までの長さは、L=r−l+1となる。さらに、n(x−1)/k<L≦nx/kを満たす整数x(1≦x≦k)を算定する。次いで、カウンタiを0〜x−1まで動かしながら下記の操作を行う。始点から開始し、その座標点からni/kだけ離れた座標点へのジャンプを続け、仮座標点に到達するか、次のジャンプが仮座標点を超えたところで終了する。その後、各ジャンプに対応する有向枝を生成する(S142)。次いで、仮座標点に到達する有向枝を全て消去する(S144)。ある座標点Tに到達する有向枝が複数ある場合には、ジャンプの距離が一番長いもののみを残し、それ以外の有向枝は消去する(S146)。
以上、本実施形態に係る鍵配信サーバ202の機能構成について説明した、上記の構成により、A06(B)方式の有向グラフIを生成することが可能である。なお、図20及び図21に有向グラフIの例を示した。図20は、契約者数n=64、パラメータk=6の条件下で生成された有向グラフIを示す説明図である。一方、図21は、契約者数n=64、パラメータk=3の条件下で生成された有向グラフIを示す説明図である。
[端末装置222の機能構成]
次に、図23を参照しながら、本実施形態に係る端末装置222の機能構成について説明する。図23は、端末装置222の機能構成を示す説明図である。
図23に示すように、端末装置222は、主に、通信部124と、判断部126と、有向グラフ生成部227と、鍵生成部128と、復号部130とにより構成される。但し、本実施形態の特徴的な構成は、主に、有向グラフ生成部227であり、他の構成要素については、第1実施形態に係る端末装置122の構成要素と実質的に同一である。従って、有向グラフ生成部227の機能構成のみについて詳細に説明する。
(有向グラフ生成部227)
まず、有向グラフ生成部227の機能構成について説明する。有向グラフ生成部227は、鍵配信サーバ202がセット鍵を導出するために利用した有向グラフIの中で、自身が属する部分集合のセット鍵を導出するために必要な有向パスのみを生成する機能を有する。つまり、有向グラフ生成部227は、自身が必要なセット鍵を導出可能な有向パスのみにより構成される有向グラフGを生成することができる。
(有向グラフGの生成方法)
ここで、図26及び図27を参照しながら、有向グラフGの生成方法について詳細に説明する。図26及び図27は、契約者iが、自身が所属する部分集合Sjのセット鍵k(Sj)を導出するために必要な有向グラフGを生成する処理の流れを示す説明図である。
但し、図26の最下段と図27の最上段に記載されたA,B,C,D,Eの各記号は,図26と図27とに跨る処理の推移において、その移動先を明示するための記号である。例えば、図26のAに達するステップは、図27のAに達したものと看做す。
なお、端末装置222は、契約者数n、及びパラメータkの情報を予め保持している。また、有向グラフGは、座標点の集合V(G(i))と有向枝の集合E(G(i))とにより構成され、G(i)={V(G(i),E(G(i))}と表現される。そして、有向グラフG(i)に含まれる座標点が1つの場合、有向枝の集合E(G(i))は、E(G(i))=φ(記号φは空集合)と表現される。また、[a,b]×[a,c]は、始端の座標点が[a,b]であり、終端の座標点が[a,c]である有向枝を表す。さらに、説明の便宜上、鍵配信サーバ202から下式(18)の情報を取得したものと仮定する。
Figure 2008236380
図26に示すように、通信部124が取得した許諾契約者の部分集合に関する情報sgiの中に自身(契約者i)が含まれる部分集合S(j∈S)が存在するか否かを判断する(S502)。部分集合Sが存在する場合、ステップS504に進む。部分集合Sが存在しない場合、自身が排除された(コンテンツを取得する権利無し)ものとして、有向グラフGの生成処理を終了する。ステップS502の処理は、主に、上記の判断部126により実行される。
次いで、有向グラフ生成部227は、契約者の番号iがTPと一致するか否かを判断する(S504)。i=TPである場合、契約者iがセット鍵を導出する際に生成が必要な有向グラフG(i)={V(G(i),E(G(i))}をV(G(i))={[SP,i]},E(G(i))=φとして出力し(S540)、有向グラフGの生成処理を終了する。i=TPでない場合、ステップS506に進む。
次いで、有向グラフ生成部227は、契約者iの現在位置の座標cup、現在考慮中の範囲の始点の座標sp及び終点の座標ep、カウンタm、座標点の集合V(G(i))、及び有向枝の集合E(G(i))を次のように初期化する(S506)。
sp=SPj,ep=EPj,cup=i,m=1,V(G(i))=φ,E(G(i))=φ。但し、jは、i∈Sを満たす部分集合Sのインデックスjを表す。
次いで、有向グラフ生成部227は、SP=1か否かを判断する(S508)。SP=1である場合、ステップS510に進む。そして、有向グラフ生成部227は、L=|EP−SP|+1を計算し(S510)、ステップS514に進む。逆に、SP=1でない場合、ステップS512に進む。そして、有向グラフ生成部227は、L=|EP−SP|+2を計算し(S512)、ステップS514に進む。
次いで、有向グラフ生成部227は、n(x−1)/k<Lv≦nx/kを満たすx(1≦x≦k)を算出する(S514)。次いで、有向グラフ生成部227は、cup=TPであるか否かを判断する(S516)。cup=TPである場合、ステップS538に進む。そして、契約者iが部分集合の鍵を導出するために利用する有向グラフG{V(G(i)),E(G(i))}を出力し(S538)、有向グラフGの生成処理を終了する。
逆に、cup=TPでない場合、ステップS518に進む。そして、有向グラフ生成部227は、spからepに到達するジャンプの回数が最小となる最大有向パス(MP;MaxPath)を決定する(S518)。この処理については後述する。
次いで、有向グラフ生成部227は、MP上に存在する各有向枝の中で、始端と終端との間に座標点[SP,cup]が含まれる有向枝を特定する(S520)。但し、始端又は終端の座標点と座標点[SP,cup]とが一致する場合も含む。また、特定された有向枝をCUE(Current User’s Edge)と呼ぶことにする。なお、座標点[SP,cup]がMP上に存在し、隣接する2つの有向枝の始端及び終端の座標点に[SP,cup]が一致する場合は、座標点[SP,cup]を始点とする有向枝をCUEとする。
次いで、有向グラフ生成部227は、座標点[SP,TP]がCUEの終端に一致せず、かつ、CUEの終端よりも有向グラフIの終点側に近くない場合、ステップS532に進む(S522)。一方、座標点[SP,TP]がCUEの終端に一致するか、又はCUEの終端よりも有向グラフIの終点側に近い場合、ステップS524に進む(S522)。
次いで、有向グラフ生成部227は、V(G(i))、及びE(G(i))を次のように設定する(S524)。
V(G(i))=φである場合、V(G(i))=[SP,spi,m]∪[SP,epi,m]とする。一方、V(G(i))=φでない場合、V(G(i))=V(G(i))∪[SP,epi,m]とする。また、E(G(i))=E(G(i))∪{[SP,spi,m]×[SP,epi,m]}とする。
但し、spi,m,epi,mは、各々現在のCUEの始端及び終端の座標を表す。なお、V(G(i))=φである場合とV(G(i))=φでない場合とで処理が異なるのは次の理由による。V(G(i))=φの場合には、有向枝の始端及び終端の両方を座標点として追加する必要があるが、V(G(i))=φでない場合には、追加される有向枝の始端は、既にV(G(i))の座標点として追加されており、重複を避けるため、V(G(i))には終端となる座標点のみを追加するのである。
次いで、有向グラフ生成部227は、mにm+1を代入する(S526)。次いで、有向グラフ生成部227は、CUEの次の有向枝(CUEの終端を始端とする有向枝)が存在するか否かを判断する(S528)。CUEの次の有向枝が存在する場合、ステップS530に進み、MP上に存在するCUEの次の有向枝を新たなCUEとして設定し、ステップS522の処理に戻る。一方、CUEの次の有向枝が存在しない場合、ステップS532に進む。
次いで、有向グラフ生成部227は、spにCUEの始端の座標を設定し、epにCUEの終端の一つ手前に位置する座標点の座標を設定する(S532)。次いで、有向グラフ生成部227は、m=1か否かを判断する(S534)。m=1である場合、ステップS516の処理に戻る。一方、m=1でない場合、ステップS536に進む。
次いで、有向グラフ生成部227は、cup=epi,(m−1)を設定し(S536)、ステップS516の処理に戻る。
以上、本実施形態に係る有向グラフGの生成方法について説明した。上記の生成方法では、sgiに有向グラフIの終点に関する情報EPが含まれることを前提としているが、SPが決まるとEPは論理二分木BTにより一意に特定可能であるため、契約者自身がEPを特定するように構成することも可能である。この構成は、例えば、ステップS506の処理にEPを導出するステップを追加することにより実現される。
(最大有向パスMPの決定方法)
次に、図28を参照しながら、図26のステップS518における最大有向パスMPの決定方法について説明する。図28は、最大有向パスMPの決定処理の流れを示す説明図である。
図28に示すように、まず、有向グラフ生成部227は、カウンタl、現在考慮中のジャンプの到達点の座標tsp、及び現在考慮中の距離dtを次のように初期化する(S552)。l=x,tsp=sp,dt=|ep−tsp|。
次いで、有向グラフ生成部227は、lにl−1を代入する(S554)。次いで、有向グラフ生成部227は、l≧0であるか否かを判断する(S556)。l≧0でない場合、ステップS566に進み、座標点[SP,sp]から[SP,ep]に達する少なくとも1つの有向枝の鎖により形成される有向パスをMPと設定し(S566)、MPの決定処理を終了する。一方、l≧0である場合、ステップS558に進む。
次いで、有向グラフ生成部227は、dt−nl/k≧0であるか否かを判断する(S558)。dt−nl/k≧0でない場合、ステップS554の処理に戻る。一方、dt−nl/k≧0である場合、ステップS560に進む。
次いで、有向グラフ生成部227は、[SP,tsp]を出発点として距離nl/kのジャンプを実行し、対応する有向枝を生成する(S560)。次いで、有向グラフ生成部227は、ステップS560で生成された有向枝の終端の座標を新たにtspとする(S562)。次いで、有向グラフ生成部227は、dtにdt−nl/kを代入し(S564)、ステップS558の処理に戻る。
以上、最大有向パスMPの決定方法について説明した。上記の決定処理により、上記の有向グラフGの生成処理を実施することが可能になる。
(具体例)
ここで、図24及び図25を参照しながら、上記の生成方法に基づき、有向グラフ生成部227により生成される有向グラフGの具体例について説明する。図24及び図25は、契約者数n=64、パラメータk=6の場合に生成される有向グラフGを示す説明図である。特に、集合(1→64)に対応する有向グラフのみを示している。また、図24及び図25の上側に描いた図は、A06(B)方式のアルゴリズムを用いた場合に契約者が導出する有向グラフIである。一方、下側に描いた図は、本実施形態のアルゴリズムを用いた場合に契約者が導出する有向グラフGである。
(具体例1)
まず、図24を参照すると、契約者1が部分集合[1,2]のセット鍵を導出するために生成する有向グラフGが示されている。また、図中の実線は、契約者1がセット鍵を導出する際に、最終的に導出する必要のあるジャンプに対応した有向枝を示している。つまり、契約者1は、部分集合[1,2]のセット鍵を導出する際、実線で示した有向枝の始端に対応する中間鍵t([1,1])をPRSGに入力し、その終端に対応するt([1,2])を導出する必要があることを意味している。さらに、実線と破線とにより構成される有向グラフGは、契約者1が導出する必要がある最大有向パスMPを表している。
(具体例2)
次に、図25を参照すると、契約者7が部分集合[1,44]のセット鍵を生成するために生成する有向グラフGが示されている。また、図中の実線は、契約者7がセット鍵を導出する際に、最終的に導出する必要のあるジャンプに対応した有向枝を示している。つまり、契約者7は、部分集合[1,44]のセット鍵を導出する際、予め保持している中間鍵t([1,33])を利用し、実線で示した有向枝に沿ってPRSGを繰り返し実行して中間鍵t([1,44])を導出する必要があることを意味している。さらに、実線と破線とにより構成される有向グラフGは、契約者7が導出する必要がある最大有向パスMPを表している。
(鍵生成方法)
ここで、図16を参照しながら、本実施形態に係る鍵生成処理の流れについて具体例を挙げて説明する。本実施形態に係る鍵生成部128の機能構成は、上記の第1実施形態に係る鍵生成部128と実質的に同一であるが、鍵生成の際に参照する有向グラフの形状が相違する。
まず、図20及び図24を参照しながら、契約者7が部分集合[1,44]のセット鍵を導出する工程について説明する。図20を参照すると、契約者7は、7つの有向グラフI(1→64),I(2←64),I(2←32),I(2←16),I(2←8),I(6→7),I(7→7)の要素に対応する部分集合に属していることが分かる。このうち、有向グラフI(1→64)には、契約者7が属している部分集合であって、その部分集合の親に対応する部分集合に契約者7が属していない4つの部分集合[1,7],[1,9],[1,17],[1,33]が存在する。従って、契約者7には、有向グラフI(1→64)に関し、中間鍵t([1,7]),t([1,9]),t([1,17]),t([1,33])がシステムセットアップの際に与えられる。他の有向グラフI(2←64),I(2←32),I(2←16),I(2←8),I(6→7),I(7→7)についても、同様に所定の中間鍵が与えられる。
まず、契約者7は、上記の有向グラフ生成部227の機能により、図24の下図(発明方式)に示した有向グラフGを生成する。その後、契約者7は、次の手順により部分集合[1,44]のセット鍵k([1,44])を取得する(図16を参照)。
まず、i=TPjとなるTPjが存在しないことを確認し、カウンタlを1に初期化する。その後、自身が予め保持する上記の中間鍵t([1,7]),t([1,9]),t([1,17]),t([1,33])の中から、最初の有向枝[1,1]×[1,33]∈E(G(7))の終端の座標と一致する部分集合[1,33]に対応する中間鍵t([1,33])を特定し、これをCTKとする。
次いで、次の有向枝の有無を確認する。このとき、現時点では有向枝[1,33]×[1,41]∈E(G(7))が存在するので、CTK=t([1,33])をPRSGに入力し、下式(19)に示すような(k+1)*λビットの出力を得る。
Figure 2008236380
但し、t([1,65])は、ダミーの中間鍵を表しているため、実際には利用しない。次いで、カウンタlをインクリメントした後、出力された中間鍵の中から利用する中間鍵を決定する。ここで、カウンタlは、インクリメントされてl=2となるため、有向枝[1,33]×[1,41]∈E(G(7))に関し、|41−33|=8=2=np/kを満たすp(p=3)を決定する。この結果を受け、上式(19)の出力から、t([1,41])を取得し、CTKをt([1,41])に更新する。同様に、有向枝[1,41]×[1,43]∈E(G(7))の存在を確認し、CTKをPRSGに入力して、下式(20)の出力を得る。
Figure 2008236380
次いで、カウンタlをl=3に設定し、有向枝[1,41]×[1,43]∈E(G(7))に関してp=1を算出した後、CTKをt([1,43])に更新する。以上の処理をさらにもう一度繰り返し実行することにより、次の有向枝が存在しない状態となる。このとき、CTK=t([1,44])となっているため、CTKをPRSGに入力して出力される値のk*λ+1ビット目から(k+1)*λビット目までをセット鍵k([1,44])として抽出する。
以上説明した通り、契約者7が、自己の保持する中間鍵を利用して部分集合[1,44]のセット鍵k([1,44])を取得することが可能である。このように、各契約者は、自己が保持する中間鍵を利用して所望のセット鍵を算出することができる。
[効果]
本実施形態は、各契約者が自身の所属する部分集合のセット鍵を導出する際、A06(B)方式の有向グラフ生成方法を改良した有向グラフ生成方法を用いて、各契約者が必要とする有向枝のみを含む新たな有向グラフGを生成する手段を提供する。そこで、A06(B)方式により生成される有向グラフIの有向枝数と、本実施形態の方式により生成される有向グラフGの有向枝数とを比較し、本実施形態の効果を明らかに示す。
A06(B)方式では、各契約者がセット鍵を導出するために、最大でn−1本の有向枝が必要である。これに対して本実施形態の方式では、有向枝数が最大となる場合(契約者1が部分集合[1,2]に対応するセット鍵を導出する場合)の有向枝数が下式(21)により表現される。
Figure 2008236380
例えば、契約者数n=232、パラメータk=32とした場合、A06(B)方式では、n−1=4294967295本の有向枝を必要としたが、本実施形態では、k*(k+1)*(n1/k−1)/2=528本の有向枝のみで済む。つまり、このケースでは、約800万分の一の計算量で済むのである。図24の有向グラフの例では、有向グラフI(1→64)がn−1=63本の有向枝を必要とするのに対し、有向グラフG(1→64)では、僅か12本の有向枝を導出すればよい。また、図24の場合、契約者が実際に生成する有向枝の本数は、僅か4本である。その結果、本実施形態を適用することにより、各契約者が効率良く所要の有向グラフGを生成することができるため、高速に鍵を導出することが可能になる。
<第3実施形態>
以下、図面を参照しながら、本発明の第3実施形態に係る鍵提供システム100の構成、及び鍵配信に係る具体的な方式について詳細に説明する。但し、上記の第1実施形態に係る鍵提供システム100と実質的に同一の構成要素については同一の符号を付することにより重複する説明を省略し、相違する構成要素について詳細に説明する。なお、本実施形態は、A06(A)方式の鍵提供システム100において、端末装置が効率的に有向グラフを生成する手段を備える点に特徴を有する。
[第3実施形態の特徴]
ここで、本発明の第3実施形態と上記の第1実施形態との相違点について簡単に説明する。まず、上記の第1実施形態と本実施形態との最大の相違点は、本発明の技術を適用する鍵配信方式の違いである。上記の第1実施形態がAI05方式に適用可能であるのに対し、本実施形態はA06(A)方式に対して適用することが可能である。AI05方式が抱える問題については、上記の第2実施形態に関する説明の中で詳細に説明したが、その一つである各契約者が保持すべき鍵数が大きいという問題について解決手段を提供するのがA06(A)方式である。A06(A)方式は、AI05方式の有向グラフHにおいて有向パスを構成する有向枝数が最大となる最長有向パスの有向枝数を超えないという条件の下、有向グラフを構成する有向枝の長さを短く置換する構成に特徴を有する。つまり、A06(A)方式は、AI05方式と同程度の演算量を維持しながら、各契約者が保持すべき鍵数を削減しているのである。しかしながら、AI05方式、A06(B)方式と同様に、各契約者が保持又は算出すべき有向グラフの情報が膨大であり、一般的な端末装置でこれを実現するのは困難であるという共通の問題を抱えている。
(本実施形態の目的)
そこで、本実施形態の目的は、A06(A)方式の有向グラフIに基づく鍵提供システム100において、各々の契約者が必要とする有向グラフの情報のみを生成することにより、各契約者に掛かる演算負荷を大きく低減させる手段を提供することにある。
[鍵提供システム100の構成]
ここで、本実施形態に係る鍵提供システム100の構成について説明する。但し、基本的なシステム構成は、図1に示した第1実施形態の構成と実質的に同一であるため、その詳細な説明を省略する。また、本実施形態に係る鍵提供システム100に含まれる鍵配信サーバ302、及び端末装置322のハードウェア構成についても、図2に示した鍵配信サーバ102、及び端末装置122のハードウェア構成と実質的に同一であるため、その詳細な説明を省略する。
[鍵配信サーバ302の機能構成]
そこで、図29を参照しながら、本実施形態に係る鍵配信サーバ302の機能構成について説明する。図29は、鍵配信サーバ302の機能構成を示す説明図である。
図29に示すように、鍵配信サーバ302は、主に、木構造設定部104と、座標軸設定部106と、仮有向グラフ生成部308と、有向グラフ生成部310と、初期中間鍵設定部112と、鍵生成部114と、暗号化部116と、通信部118と、部分集合決定部120とにより構成される。但し、本実施形態の特徴的な構成は、主に、仮有向グラフ生成部308、及び有向グラフ生成部310であり、他の構成要素については、第1実施形態に係る鍵配信サーバ102の構成要素と実質的に同一である。従って、仮有向グラフ生成部308、及び有向グラフ生成部310の機能構成のみについて詳細に説明する。
(仮有向グラフ生成部308)
まず、仮有向グラフ生成部308の機能構成について説明する。仮有向グラフ生成部308は、上記の第1実施形態に係る有向グラフ生成部110と実質的に同一の機能構成を有し、AI05方式の有向グラフHと同じ形状を有する仮有向グラフI’を生成する機能を有する。例えば、n=64、パラメータk=6の場合、仮有向グラフI’は、図5に示す有向グラフHと一致する。
(有向グラフ生成部310)
次に、有向グラフ生成部310について説明する。有向グラフ生成部310は、仮有向グラフI’を構成する複数の有向枝の一部を置換して有向グラフIを生成する機能を有する。まず、有向グラフ生成部310は、仮有向グラフI’に含まれる有向パスのうち、それを構成する有向枝数が最大の有向パスを選択する。その有向パスを最長有向パスLP(Longest Path)と呼ぶことにする。そして、有向グラフ生成部310は、全ての有向パスの有向枝数が最長有向パスLPの有向枝数を超えないという条件の下で、仮有向グラフI’に含まれる一部の有向パスをより短い複数の有向枝の鎖で構成される有向パスに置換することで、有向グラフIを生成する。
(有向グラフIの生成方法)
まず、図30〜図34を参照しながら、有向グラフIの生成方法について説明する。図30は、有向グラフIを生成する処理の全体的な流れを示した説明図である。図31は、仮有向グラフI’の生成処理を示した説明図である。図32は、最長有向パスLPを抽出する処理の流れを示した説明図である。図33は、最長有向パスLP以外の有向パスの中から最長の有向パスPLP(Pertially Longest Path)を抽出する処理の流れを示した説明図である。図34は、仮有向グラフI’の有向パスをより短い有向枝の組で構成される有向パスに置換する処理を示した説明図である。
図30に示すように、まず、仮有向グラフ生成部308により、仮有向グラフI’が生成される(S140)。次いで、仮有向グラフI’を形成する有向パスの中から最長有向パスLPが抽出される(S142)。次いで、仮有向グラフI’の最長有向パスLP以外の有向パスの中から最長の有向パスPLPが抽出される(S144)。なお、各部分集合に対応する仮有向グラフI’について最長の有向パスPLPが抽出されてもよい。次いで、仮有向グラフI’の有向パスを構成する有向枝がより短い有向枝に置換される(S146)。このとき、全ての有向パスの有向枝数が最長有向パスLPの有向枝数を超えないように有向枝が置換される。つまり、この置換処理を実行したとしても、AI05方式よりも鍵生成に要する計算量の最悪値が増加しないようにする。
以下、図30に示した各ステップについて、より詳細に説明する。
(S140の詳細)
まず、図31を参照しながら、仮有向グラフI’の生成処理について説明する。図31は、仮有向グラフI’(l→r−1)の生成処理の流れを示す説明図である。
まず、集合(l→r−1)の要素を水平直線上に左から右に包含関係が大きくなるように並べる。そして、最右の座標点の右側と左側とに各々1つの仮座標点(Start,End)を配置する。すると、最左の仮座標点Startから最右の仮座標点Endまでの長さは、L=r−l+1となる。さらに、n(x−1)/k<L≦nx/kを満たす整数x(1≦x≦k)を算定する(S150)。この処理は、主に、座標軸設定部106により実行される。
次いで、カウンタiを0〜x−1まで動かしながら下記の操作を行う。仮座標点Startから開始し、その座標点からni/kだけ離れた座標点へのジャンプを続け、仮座標点Endに到達するか、次のジャンプが仮座標点Endを超えたところで終了する。その後、各ジャンプに対応する有向枝を生成する(S152)。次いで、仮座標点に到達する有向枝を全て消去する(S154)。さらに、ある座標点Tに到達する有向枝が複数ある場合には、ジャンプの距離が一番長いもののみを残し、それ以外の有向枝は消去する(S156)。この処理は、主に、仮有向グラフ生成部308により実行される。
(S142の詳細)
次に、図32を参照しながら、最長有向パスLPを抽出するステップ(S160)について詳細に説明する。ここで、以下に示す2つの表記を導入する。
・DD : 最長有向パスLPの有向枝数を示す。
・J(a,b): 長さbの有向枝がa本連続して存在することを示す。
まず、t=n1/k−1とおく。次いで、仮有向グラフI’(1→n)の座標点[1,1]から座標点[1,n]までの有向パスP([1,1],[1,n])を考える。有向パスP([1,1],[1,n])は、J(t,1),J(t,n1/k),…,J(t,n(k−2)/k),J(t−1,n(k−1)/k),J(t,n(k−2)/k),…,J(t,n1/k),J(t+1,1)と表現される。この有向パスを最長有向パスLPと呼ぶ。このとき、最長有向パスLPの有向枝数DDは、DD=(2k−1)*(n1/k−1)となる。次いで、最長有向パスLPを構成する全ての有向枝に対してactiveマークを設定する(S160)。
(S144の詳細)
次に、図33を参照しながら、最長有向パスLPを含む仮有向グラフI’以外の全ての部分集合に対応する仮有向グラフI’について、最長の有向パスPLPを抽出する処理(S162〜S176)について説明する。ここで、以下に示す2つの表記を導入する。
・CP(Current Path) : 参照中の有向パス(現在パス)
・#JP(CP) : 現在パスの有向枝数
まず、有向グラフI’の始点から終点への現在パスCPを決定する。このとき、現在パスが有向グラフI’(a→b)に含まれる場合は、有向パスP([a,a],[a,b])を現在パスCPとし、有向グラフI’(a←b)に含まれる場合は、有向パスP([b,b],[b,a])を現在パスCPとする(S162)。次いで、現在パスCPを構成する有向枝のうち、最長の有向枝を選択して、その長さをJとする(S164)。次いで、J≦1か否かを判断する(S166)。
J≦1である場合、現在パスCPを最長の有向パスPLPと決定して、現在パスCPに含まれる全ての有向枝にactiveマークを設定する(S176)。J>1である場合、#JP(CP)+t≦DDか否かを判断する(S168)。#JP(CP)+t≦DDでない場合、現在パスCPを有向パスPLPと決定して、現在パスに含まれる全ての有向枝にactiveマークを設定する(S176)。#JP(CP)+t≦DDである場合、J=nj/kとなる自然数jを算出する(S170)。
次いで、現在パスCPに含まれる長さJの有向枝の中で現在パスCPの始点から最も遠い有向枝を抽出する(S172)。ステップS172で抽出された有向枝の始点から伸びたt個の長さn(j−1)/kの有向枝の直後にn(j−1)/kの長さを有する1つの有向枝を追加し、ステップS172で抽出された有向枝を除去し(S174)、ステップS162に戻って上記の処理を繰り返し実行する。
なお、ステップS162〜ステップS174の間に生じるループ処理は、有向グラフI’の始点から終点への有向パスが全て長さ1の有向枝で構成されるか、又は、それ以上の有向枝の置換を実行することで、その有向パスを構成する有向枝数がDDを超えてしまう場合にループ処理を終了する。
(S146の詳細)
次に、図34を参照しながら、仮有向グラフI’に含まれる有向枝を短い有向枝に置換する処理(S180〜S202)について詳細に説明する。
まず、グラフ中のactiveかつ、未実施(doneマークが付いていない)有向枝のうち、長さJ’が最長の有向枝を抽出する。もし、最大の有向枝が複数存在する場合は、仮有向グラフI’の始点から最も遠い有向枝を選択する(S180)。ここで選択された有向枝をWJ(Working Jump)と呼ぶことにする。また、有向枝WJの始点をWJ、終点をWJと呼ぶことにする。さらに、仮有向グラフI’の始点からWJまでの有向パスに含まれる有向枝数をDと表記する。
次いで、有向枝の長さJ’がJ’≦1であるか否かを判断する(S182)。J’≦1である場合、activeマークの付いていない有向枝を全て消去し、activeマークが付いている有向枝を全て集めたものをE(I(a→b))又はE(I(a←b))と設定する(S202)。逆に、J’≦1でない場合、WJからWJ−1までの有向パスを現在パスCPと設定する(S184)。但し、WJ−1は、WJの1つ手前の要素を表す。
次いで、現在パスCPに含まれる有向枝の中から最長の有向枝を抽出し、その長さをJとする(S186)。次いで、有向枝の長さJがJ≦1か否かを判断する(S188)。J≦1である場合、現在パスCPに含まれる全ての有向枝にactiveマークを付ける(S198)。そして、WJにdoneマークを付け(S200)、ステップS180の処理に戻る。逆に、J≦1でない場合、#JP(CP)+t≦DD−Dであるか否かを判断する(S190)。#JP(CP)+t≦DD−Dでない場合、ステップS198及びS200の処理を経てステップS180の処理に戻る。#JP(CP)+t≦DD−Dである場合、J=nj/kを満たすjを算出する(S192)。
次いで、現在パスCPに含まれる長さJの有向枝が複数存在する場合、現在パスCPの始点から最も遠い位置にある有向枝を抽出する(S194)。次いで、ステップS194で抽出された有向枝の始点から伸びたn1/k−1個の長さn(j−1)/kの有向枝の直後にn(j−1)/kの長さを有する1つの有向枝を追加し、ステップS194で抽出された有向枝を消去する(S196)。そして、ステップS184の処理に戻る。
但し、ステップS184〜S196の間に生じるループ処理は、WJからWJ−1への有向パスが全て長さ1の有向枝で構成されるか、又は、それ以上の有向枝を置換することによってWJからWJ−1への有向パスに含まれる有向枝数がDDを超えてしまう場合に終了する。また、上記のステップS180〜S200の間に生じるループ処理は、仮有向グラフI’に含まれる有向枝の中から、doneが設定されておらず、かつ、長さが2以上の有向枝が全てなくなった時点で終了する。
以上、本実施形態に係る有向グラフIの生成方法について説明した。
[端末装置322の機能構成]
次に、図35を参照しながら、本実施形態に係る端末装置322の機能構成について説明する。図35は、端末装置322の機能構成を示す説明図である。
図35に示すように、端末装置322は、主に、通信部124と、判断部126と、有向グラフ生成部327と、鍵生成部128と、復号部130とにより構成される。但し、本実施形態の特徴的な構成は、主に、有向グラフ生成部327であり、他の構成要素については、第1実施形態に係る端末装置122の構成要素と実質的に同一である。従って、有向グラフ生成部327の機能構成のみについて詳細に説明する。
(有向グラフ生成部327)
まず、有向グラフ生成部327の機能構成について説明する。有向グラフ生成部327は、鍵配信サーバ302がセット鍵を導出するために利用した有向グラフIの中で、自身が属する部分集合のセット鍵を導出するために必要な有向パスのみを生成する機能を有する。つまり、有向グラフ生成部327は、自身が必要なセット鍵を導出可能な有向パスのみにより構成される有向グラフGを生成することができる。
(有向グラフGの生成方法)
ここで、図38及び図39を参照しながら、有向グラフGの生成方法について詳細に説明する。図38及び図39は、契約者iが、自身が所属する部分集合Sのセット鍵k(S)を導出するために必要な有向グラフGを生成する処理の流れを示す説明図である。
但し、図38の最下段と図39の最上段に記載されたA,B,C,D,E,Fの各記号は,図38と図39とに跨る処理の推移において、その移動先を明示するための記号である。例えば、図38のAに達するステップは、図39のAに達したものと看做す。
なお、端末装置322は、契約者数n、及びパラメータkの情報を予め保持している。また、有向グラフGは、座標点の集合V(G(i))と有向枝の集合E(G(i))とにより構成され、G(i)={V(G(i),E(G(i))}と表現される。そして、有向グラフG(i)に含まれる座標点が1つの場合、有向枝の集合E(G(i))は、E(G(i))=φ(記号φは空集合)と表現される。また、[a,b]×[a,c]は、始端の座標点が[a,b]であり、終端の座標点が[a,c]である有向枝を表す。さらに、説明の便宜上、鍵配信サーバ102から下式(22)の情報を取得したものと仮定する。
Figure 2008236380
図38に示すように、通信部124が取得した許諾契約者の部分集合に関する情報sgiの中に自身(契約者i)が含まれる部分集合S(j∈S)が存在するか否かを判断する(S822)。部分集合Sが存在する場合、ステップS824に進む。部分集合Sが存在しない場合、自身が排除された(コンテンツを取得する権利無し)ものとして、有向グラフGの生成処理を終了する。ステップS822の処理は、主に、上記の判断部126により実行される。
次いで、有向グラフ生成部327は、契約者の番号iがTPと一致するか否かを判断する(S824)。i=TPである場合、契約者iがセット鍵を導出する際に生成が必要な有向グラフG(i)={V(G(i),E(G(i))}をV(G(i))={[SP,i]},E(G(i))=φとして出力し(S880)、有向グラフGの生成処理を終了する。i=TPでない場合、ステップS826に進む。
次いで、有向グラフ生成部327は、契約者iの現在位置の座標cup、現在考慮中の範囲の始点の座標sp及び終点の座標ep、カウンタm、カウンタz、現在のパスにおける有向枝の個数dd、座標点の集合V(G(i))、及び有向枝の集合E(G(i))を次のように初期化する(S826)。
sp=SP,ep=EP,cup=i,m=1,z=0,dd=DD=(2k−1)*(n1/k−1),V(G(i))=φ,E(G(i))=φ。但し、jは、i∈Sを満たす部分集合Sのインデックスjを表す。
次いで、有向グラフ生成部327は、SP=1か否かを判断する(S828)。SP=1である場合、ステップS830に進む。そして、有向グラフ生成部327は、L=|EP−SP|+1を計算し、さらに、epにep−1を代入した後(S830)、ステップS834に進む。逆に、SP=1でない場合、ステップS832に進む。そして、有向グラフ生成部327は、L=|EP−SP|+2を計算し(S832)、ステップS834に進む。
次いで、有向グラフ生成部327は、n(x−1)/k<Lv≦nx/kを満たすx(1≦x≦k)を算出する(S834)。次いで、有向グラフ生成部327は、cup=TPであるか否かを判断する(S836)。cup=TPである場合、ステップS878に進む。そして、契約者iが部分集合の鍵を導出するために利用する有向グラフG{V(G(i)),E(G(i))}を出力し(S878)、有向グラフGの生成処理を終了する。
逆に、cup=TPでない場合、ステップS838に進む。そして、有向グラフ生成部327は、z=0であるか否かを判断する(S838)。z=0である場合、ステップS840に進む。z=0でない場合、ステップS846に進み、spからepに到達するジャンプの回数が最小となる最大有向パス(MP;MaxPath)を決定する(S846)。この処理については後述する。
次いで、有向グラフ生成部327は、SP<EPであるか否かを判断する(S840)。SP<EPである場合、ステップS842に進む。そして、spを下式(23)のように設定し(S842)、ステップS846に進む。一方、SP<EPでない場合、ステップS844に進む。そして、spを下式(24)のように設定し(S844)、ステップS846に進む。
Figure 2008236380

次いで、有向グラフ生成部327は、A06(A)方式における有向グラフIの一部と一致するように、spからepに至る有向パスの中で、ジャンプの回数が最小となる有向パスをMP(MaxPath)と決定する(S846)。このMPを決定する処理については後述する。
次いで、有向グラフ生成部327は、z=0であるか否かを判断する(S848)。z=0でない場合、ステップS858に進む。一方、z=0である場合、ステップS852に進む。そして、MP上の有向枝数をwとし、[SP,sp]を始端とする有向枝を1番目の有向枝として、MP上のi番目の有向枝の距離をdtと定義する。但し、dtw+1=0とする。ここで、[SP,SP]を始点として、カウンタiをwから1まで動かしながら、距離dtのジャンプを実行し、それに対応する有向枝を生成する。このとき、i番目のジャンプにおける到達点はi−1番目のジャンプの出発点になることに注意が必要である。さらに、ステップS846で決定したMPと、ここで(S852)で生成した有向枝とを新たなMPとし、z=1、sp=SP、ep=EPとする(S852)。
次いで、有向グラフ生成部327は、SP=1であるか否かを判断する(S854)。SP=1でない場合、ステップS858に進む。一方、SP=1である場合、ステップS856に進む。そして、有向グラフ生成部327は、MP上に有向枝[SP,EP−1]×[SP,EP]を追加して新たなMPとする(S856)。
次いで、有向グラフ生成部327は、A06(A)方式の有向グラフIの一部に一致するMP上の有向枝をddを超えない範囲でなるべく距離の短い有向枝で置換したCPを決定する(S858)。CPの決定処理については後述する。
次いで、有向グラフ生成部327は、CP上に存在する各有向枝の中で、始端と終端との間に座標点[SP,cup]が含まれる有向枝を特定する(S860)。但し、始端又は終端の座標点と座標点[SP,cup]とが一致する場合も含む。また、特定された有向枝をCUE(Current User’s Edge)と呼ぶことにする。なお、座標点[SP,cup]がCP上に存在し、隣接する2つの有向枝の始端及び終端に座標点[SP,cup]が一致する場合は、座標点[SP,cup]を始点とする有向枝をCUEとする。また、CP上において、[SPj,cup]からCUEの始点までに存在する有向枝数をdとし、ddにdd−dを代入する。
次いで、有向グラフ生成部327は、座標点[SP,TP]がCUEの終端に一致せず、かつ、CUEの終端よりも有向グラフIの終点側に近くない場合、ステップS872に進む。一方、座標点[SP,TP]がCUEの終端に一致するか、又はCUEの終端よりも有向グラフIの終点側に近い場合、ステップS864に進む(S862)。
次いで、有向グラフ生成部327は、V(G(i))、及びE(G(i))を次のように設定する(S864)。
V(G(i))=φである場合、V(G(i))=[SP,spi,m]∪[SP,epi,m]とする。一方、V(G(i))=φでない場合、V(G(i))=V(G(i))∪[SP,epi,m]とする。また、E(G(i))=E(G(i))∪{[SP,spi,m]×[SP,epi,m]}とする。
但し、spi,m,epi,mは、各々現在のCUEの始端及び終端の座標を表す。なお、V(G(i))=φである場合とV(G(i))=φでない場合とで処理が異なるのは次の理由による。V(G(i))=φの場合には、有向枝の始端及び終端の両方を座標点として追加する必要があるが、V(G(i))=φでない場合には、追加される有向枝の始端は、既にV(G(i))の座標点として追加されており、重複を避けるため、V(G(i))には終端となる座標点のみを追加するのである。
次いで、有向グラフ生成部327は、mにm+1を代入する(S866)。次いで、有向グラフ生成部327は、CP上にCUEの次の有向枝(CUEの終端を始端とする有向枝)が存在するか否かを判断する(S868)。CUEの次の有向枝が存在する場合、ステップS870に進み、CP上に存在するCUEの次の有向枝を新たなCUEとして設定し、ステップS862の処理に戻る。一方、CUEの次の有向枝が存在しない場合、ステップS872に進む。
次いで、有向グラフ生成部327は、spにCUEの始端の座標を設定し、epにCUEの終端の一つ手前に位置する座標点の座標を設定し、CPの始点からCUEの始端までに存在する有向枝数をdとし、ddにdd−dを代入する(S872)。次いで、有向グラフ生成部327は、m=1か否かを判断する(S874)。m=1である場合、ステップS862の処理に戻る。一方、m=1でない場合、ステップS876に進む。
次いで、有向グラフ生成部327は、cup=epi,(m−1)を設定し(S876)、ステップS836の処理に戻る。
以上、本実施形態に係る有向グラフGの生成方法について説明した。上記の生成方法では、sgiに有向グラフIの終点に関する情報EPが含まれることを前提としているが、SPが決まるとEPは論理二分木BTにより一意に特定可能であるため、契約者自身がEPを特定するように構成することも可能である。この構成は、例えば、ステップS826の処理にEPを導出するステップを追加することにより実現される。
(最大有向パスMPの決定方法)
次に、図40を参照しながら、図38のステップS846における最大有向パスMPの決定方法について説明する。図40は、最大有向パスMPの決定処理の流れを示す説明図である。
図40に示すように、まず、有向グラフ生成部327は、カウンタl、現在考慮中のジャンプの到達点の座標tsp、及び現在考慮中の距離dtを次のように初期化する(S882)。l=x,tsp=sp,dt=|ep−tsp|。
次いで、有向グラフ生成部327は、lにl−1を代入する(S884)。次いで、有向グラフ生成部327は、l≧0であるか否かを判断する(S886)。l≧0でない場合、ステップS896に進み、座標点[SP,sp]から[SP,ep]に達する少なくとも1つの有向枝の鎖により形成される有向パスをMPと設定し(S896)、MPの決定処理を終了する。一方、l≧0である場合、ステップS888に進む。
次いで、有向グラフ生成部327は、dt−nl/k≧0であるか否かを判断する(S888)。dt−nl/k≧0でない場合、ステップS884の処理に戻る。一方、dt−nl/k≧0である場合、ステップS890に進む。
次いで、有向グラフ生成部327は、[SP,tsp]を出発点として距離nl/kのジャンプを実行し、対応する有向枝を生成する(S890)。次いで、有向グラフ生成部327は、ステップS890で生成された有向枝の終端の座標を新たにtspとする(S892)。次いで、有向グラフ生成部327は、dtにdt−nl/kを代入し(S894)、ステップS888の処理に戻る。
以上、最大有向パスMPの決定方法について説明した。
(現在パスCPの決定方法)
次に、図41を参照しながら、現在パスCPの決定方法について説明する。図41は、CPの決定処理の流れを示す説明図である。
図41に示すように、まず、有向グラフ生成部327は、MPに含まれる有向枝のうち、距離が最大のものを抽出し、その距離をJとおく(S902)。次いで、有向グラフ生成部327は、J≦1であるか否かを判断する(S904)。J≦1である場合、ステップS914に進み、座標点[SP,sp]から[SP,ep]に至る有向パスをCPと決定し(S914)、CPの決定処理を終了する。逆に、J≦でない場合、ステップS906に進む。
次いで、有向グラフ生成部327は、#JP(MP)+t≧ddであるか否かを判断する(S906)。#JP(MP)+t≧ddである場合、ステップS908に進む。逆に、#JP(MP)+t≧ddでない場合、ステップS914に進み、座標点[SP,sp]から[SP,ep]に至る有向パスをCPと決定し(S914)、CPの決定処理を終了する。
次いで、有向グラフ生成部327は、J=nj/kを満たすjを求める(S908)。そして、有向グラフ生成部327は、MPに含まれる距離Jの有向枝のうち、MPの始点から最も遠い位置にある有向枝を抽出する(S910)。そして、ステップS910で抽出された有向枝の始点から距離n(j−1)/kを有するt個の既存の有向枝の直後に、距離n(j−1)/kを有する有向枝を生成し、ステップS910で抽出された有向枝を消去する。さらに、有向枝が置換されたMPを新たなMPに設定し(S912)、ステップS902の処理に戻る。
以上、現在パスCPの決定方法について説明した。上記の決定処理により、上記の有向グラフGの生成処理を実施することが可能になる。
(具体例)
ここで、図36及び図37を参照しながら、上記の生成方法に基づき、有向グラフ生成部327により生成される有向グラフGの具体例について説明する。図36及び図37は、契約者数n=64、パラメータk=6の場合に生成される有向グラフGを示す説明図である。特に、集合(1→64)に対応する有向グラフのみを示している。図36及び図37の上側に描いた図は、A06(A)方式のアルゴリズムを用いた場合に契約者が導出する有向グラフIである。一方、下側に描いた図は、本実施形態のアルゴリズムを用いた場合に契約者が導出する有向グラフGである。
(具体例1)
まず、図36を参照すると、契約者1が部分集合[1,2]のセット鍵を導出するために生成する有向グラフGが示されている。また、図中の実線は、契約者1がセット鍵を導出する際に、最終的に導出する必要のあるジャンプに対応した有向枝を示している。つまり、契約者1は、部分集合[1,2]のセット鍵を導出する際、実線で示した有向枝の始端に対応する中間鍵t([1,1])をPRSGに入力し、その終端に対応するt([1,2])を導出する必要があることを意味している。さらに、実線と破線とにより構成される有向グラフGは、契約者1が導出する必要がある最大有向パスCPを表している。
(具体例2)
次に、図37を参照すると、契約者7が部分集合[1,44]のセット鍵を生成するために生成する有向グラフGが示されている。また、図中の実線は、契約者7がセット鍵を導出する際に、最終的に導出する必要のあるジャンプに対応した有向枝を示している。つまり、契約者7は、部分集合[1,44]のセット鍵を導出する際、予め保持している中間鍵t([1,8])を利用し、実線で示した有向枝に沿ってPRSGを繰り返し実行して中間鍵t([1,44])を導出する必要があることを意味している。さらに、実線と破線とにより構成される有向グラフGは、契約者7が導出する必要がある最大有向パスCPを表している。
[効果]
従来、各契約者は、自身が所属する部分集合に対応する全ての有向グラフIを保持するか、又は自身で全ての有向グラフIを導出する必要があった。しかし、本実施形態は、各契約者が、自身の所属する部分集合に対応する有向グラフIの中で、自身が鍵導出の際に必要とする有向枝のみで構成される有向グラフGを導出する手段を提供する。従って、従来の鍵配信方式と比較し、各契約者が算出すべき有向枝の数を大幅に削減することが可能となり、各契約者が各々有向グラフGを生成して高速に所望のセット鍵を導出することが可能になる。その結果、コンテンツの復号に掛かる時間を大幅に短縮することができる。
<第4実施形態>
以下、図面を参照しながら、本発明の第4実施形態に係る鍵提供システム100の構成、及び鍵配信に係る具体的な方式について詳細に説明する。但し、上記の第1実施形態に係る鍵提供システム100と実質的に同一の構成要素については同一の符号を付することにより重複する説明を省略し、相違する構成要素について詳細に説明する。なお、本実施形態は、A06(A+B)方式の鍵提供システム100において、端末装置が効率的に有向グラフを生成する手段を備える点に特徴を有する。
[第4実施形態の特徴]
ここで、本発明の第4実施形態と上記の第1実施形態との相違点について簡単に説明する。まず、上記の第1実施形態と本実施形態との最大の相違点は、本発明の技術を適用する鍵配信方式の違いである。上記の第1実施形態がAI05方式に適用可能であるのに対し、本実施形態はA06(A+B)方式に対して適用することが可能である。A06(A+B)方式は、A06(B)方式と同様に、より長い有向枝を用いて仮有向グラフを生成した後、仮有向グラフの中で、有向パスを構成する有向枝数が最大となる最長有向パスの有向枝数を超えないという条件の下、有向グラフを構成する有向枝の長さを短く置換する構成に特徴を有する。つまり、A06(A+B)方式は、AI05方式に比べ、鍵生成に要する演算量と各契約者が保持すべき鍵数とを削減しているのである。しかしながら、AI05方式、A06(B)方式、A06(A)方式と同様、各契約者が保持又は算出すべき有向グラフの情報が膨大であり、一般的な端末装置でこれを実現するのは困難であるという共通の問題を抱えている。
(本実施形態の目的)
そこで、本実施形態の目的は、A06(A+B)方式の有向グラフIに基づく鍵提供システム100において、各々の契約者が必要とする有向グラフの情報のみを生成することにより、各契約者に掛かる演算負荷を大きく低減させる手段を提供することにある。
[鍵提供システム100の構成]
ここで、本実施形態に係る鍵提供システム100の構成について説明する。但し、基本的なシステム構成は、図1に示した第1実施形態の構成と実質的に同一であるため、その詳細な説明を省略する。また、本実施形態に係る鍵提供システム100に含まれる鍵配信サーバ402、及び端末装置422のハードウェア構成についても、図2に示した鍵配信サーバ102、及び端末装置122のハードウェア構成と実質的に同一であるため、その詳細な説明を省略する。
[鍵配信サーバ402の機能構成]
そこで、図42を参照しながら、本実施形態に係る鍵配信サーバ402の機能構成について説明する。図42は、鍵配信サーバ402の機能構成を示す説明図である。
図42に示すように、鍵配信サーバ402は、主に、木構造設定部104と、座標軸設定部206と、仮有向グラフ生成部408と、有向グラフ生成部410と、初期中間鍵設定部112と、鍵生成部114と、暗号化部116と、通信部118と、部分集合決定部120とにより構成される。但し、本実施形態の特徴的な構成は、主に、仮有向グラフ生成部408、及び有向グラフ生成部410であり、他の構成要素については、第1又は第2実施形態に係る鍵配信サーバ102の構成要素と実質的に同一である。従って、仮有向グラフ生成部408、及び有向グラフ生成部410の機能構成のみについて詳細に説明する。
(仮有向グラフ生成部408)
まず、仮有向グラフ生成部408の機能構成について説明する。仮有向グラフ生成部408は、上記の第2実施形態に係る有向グラフ生成部210と実質的に同一の機能構成を有し、A06(B)方式の有向グラフIと同じ形状を有する仮有向グラフI’を生成する機能を有する。例えば、n=64、パラメータk=6の場合、図43に示す仮有向グラフI’は、図20に示す有向グラフIと一致する。同様に、n=64、パラメータk=3の場合、図44に示す仮有向グラフI’は、図21に示す有向グラフIと一致する。
(有向グラフ生成部410)
次に、有向グラフ生成部410について説明する。有向グラフ生成部410は、仮有向グラフI’を構成する複数の有向枝の一部を置換して有向グラフIを生成する機能を有する。まず、有向グラフ生成部410は、仮有向グラフI’に含まれる有向パスのうち、それを構成する有向枝数が最大の有向パスを選択する。その有向パスを最長有向パスLP(Longest Path)と呼ぶことにする。そして、有向グラフ生成部310は、全ての有向パスの有向枝数が最長有向パスLPの有向枝数を超えないという条件の下で、仮有向グラフI’に含まれる一部の有向パスをより短い複数の有向枝の鎖で構成される有向パスに置換することで、有向グラフIを生成する。
(有向グラフIの生成方法)
まず、図45〜図48を参照しながら、有向グラフIの生成方法について説明する。図45は、有向グラフIを生成する処理の全体的な流れを示した説明図である。図46は、最長有向パスLPを抽出する処理の流れを示した説明図である。図47は、最長有向パスLP以外の有向パスの中から最長の有向パスPLP(Pertially Longest Path)を抽出する処理の流れを示した説明図である。図48は、仮有向グラフI’の有向パスをより短い有向枝の組で構成される有向パスに置換する処理を示した説明図である。
図45に示すように、まず、仮有向グラフI’を形成する有向パスの中から最長有向パスLPが抽出される(S142)。次いで、仮有向グラフI’の最長有向パスLP以外の有向パスの中から最長の有向パスPLPが抽出される(S144)。なお、各部分集合に対応する仮有向グラフI’について最長の有向パスPLPが抽出されてもよい。次いで、仮有向グラフI’の有向パスを構成する有向枝がより短い有向枝に置換される(S146)。このとき、全ての有向パスの有向枝数が最長有向パスLPの有向枝数を超えないように有向枝が置換される。つまり、この置換処理を実行したとしても、A06(B)方式よりも鍵生成に要する計算量の最悪値が増加しないようにする。
以下、図45に示した各ステップについて、より詳細に説明する。
(S142の詳細)
次に、図46を参照しながら、最長有向パスLPを抽出するステップ(S160)について詳細に説明する。ここで、以下に示す2つの表記を導入する。
・DD : 最長有向パスLPの有向枝数を示す。
・J(a,b): 長さbの有向枝がa本連続して存在することを示す。
まず、t=n1/k−1とおく。次いで、仮有向グラフI’(1→n)の座標点[1,1]から座標点[1,n]までの有向パスP([1,1],[1,n])を考える。有向パスP([1,1],[1,n])は、J(t,n(k−1)/k),J(t,n(k−2)/k),…,J(t,n1/k),J(t,n0/k)と表現される。この有向パスを最長有向パスLPと呼ぶ。このとき、最長有向パスLPの有向枝数DDは、DD=k*(n1/k−1)となる。次いで、最長有向パスLPを構成する全ての有向枝に対してactiveマークを設定する(S160)。
(S144の詳細)
次に、図47を参照しながら、最長有向パスLPを含む仮有向グラフI’以外の全ての部分集合に対応する仮有向グラフI’について、最長の有向パスPLPを抽出する処理(S162〜S176)について説明する。ここで、以下に示す2つの表記を導入する。
・CP(Current Path) : 参照中の有向パス(現在パス)
・#JP(CP) : 現在パスの有向枝数
まず、仮有向グラフI’の始点から終点への現在パスCPを決定する。このとき、現在パスが有向グラフI’(a→b)に含まれる場合は、有向パスP([a,a],[a,b])を現在パスCPとし、有向グラフI’(a←b)に含まれる場合は、有向パスP([b,b],[b,a])を現在パスCPとする(S162)。次いで、現在パスCPを構成する有向枝のうち、最長の有向枝を選択して、その長さをJとする(S164)。次いで、J≦1か否かを判断する(S166)。
J≦1である場合、現在パスCPを最長の有向パスPLPと決定して、現在パスCPに含まれる全ての有向枝にactiveマークを設定する(S176)。J>1である場合、#JP(CP)+t≦DDか否かを判断する(S168)。#JP(CP)+t≦DDでない場合、現在パスCPを有向パスPLPと決定して、現在パスに含まれる全ての有向枝にactiveマークを設定する(S176)。#JP(CP)+t≦DDである場合、J=nj/kとなる自然数jを算出する(S170)。
次いで、現在パスCPに含まれる長さJの有向枝の中で現在パスCPの始点から最も遠い有向枝を抽出する(S172)。ステップS172で抽出された有向枝の始点から伸びたt個の長さn(j−1)/kの有向枝の直後にn(j−1)/kの長さを有する1つの有向枝を追加し、ステップS172で抽出された有向枝を除去し(S174)、ステップS162に戻って上記の処理を繰り返し実行する。
なお、ステップS162〜ステップS174の間に生じるループ処理は、有向グラフI’の始点から終点への有向パスが全て長さ1の有向枝で構成されるか、又は、それ以上の有向枝の置換を実行することで、その有向パスを構成する有向枝数がDDを超えてしまう場合にループ処理を終了する。
(S146の詳細)
次に、図48を参照しながら、仮有向グラフI’に含まれる有向枝を短い有向枝に置換する処理(S180〜S202)について詳細に説明する。
まず、グラフ中のactiveかつ、未実施(doneマークが付いていない)有向枝のうち、長さJ’が最長の有向枝を抽出する。もし、最大の有向枝が複数存在する場合は、仮有向グラフI’の始点から最も遠い有向枝を選択する(S180)。ここで選択された有向枝をWJ(Working Jump)と呼ぶことにする。また、有向枝WJの始点をWJ、終点をWJと呼ぶことにする。さらに、仮有向グラフI’の始点からWJまでの有向パスに含まれる有向枝数をDと表記する。
次いで、有向枝の長さJ’がJ’≦1であるか否かを判断する(S182)。J’≦1である場合、activeマークの付いていない有向枝を全て消去し、activeマークが付いている有向枝を全て集めたものをE(I(a→b))又はE(I(a←b))と設定する(S202)。逆に、J’≦1でない場合、WJからWJ−1までの有向パスを現在パスCPと設定する(S184)。但し、WJ−1は、WJの1つ手前の要素を表す。
次いで、現在パスCPに含まれる有向枝の中から最長の有向枝を抽出し、その長さをJとする(S186)。次いで、有向枝の長さJがJ≦1か否かを判断する(S188)。J≦1である場合、現在パスCPに含まれる全ての有向枝にactiveマークを付ける(S198)。そして、WJにdoneマークを付け(S200)、ステップS180の処理に戻る。逆に、J≦1でない場合、#JP(CP)+t≦DD−Dであるか否かを判断する(S190)。#JP(CP)+t≦DD−Dでない場合、ステップS198及びS200の処理を経てステップS180の処理に戻る。#JP(CP)+t≦DD−Dである場合、J=nj/kを満たすjを算出する(S192)。
次いで、現在パスCPに含まれる長さJの有向枝が複数存在する場合、現在パスCPの始点から最も遠い位置にある有向枝を抽出する(S194)。次いで、ステップS194で抽出された有向枝の始点から伸びたn1/k−1個の長さn(j−1)/kの有向枝の直後にn(j−1)/kの長さを有する1つの有向枝を追加し、ステップS194で抽出された有向枝を消去する(S196)。そして、ステップS184の処理に戻る。
但し、ステップS184〜S196の間に生じるループ処理は、WJからWJ−1への有向パスが全て長さ1の有向枝で構成されるか、又は、それ以上の有向枝を置換することによってWJからWJ−1への有向パスに含まれる有向枝数がDDを超えてしまう場合に終了する。また、上記のステップS180〜S200の間に生じるループ処理は、仮有向グラフI’に含まれる有向枝の中から、doneが設定されておらず、かつ、長さが2以上の有向枝が全てなくなった時点で終了する。
以上、本実施形態に係る有向グラフIの生成方法について説明した。例えば、契約者数n=64、パラメータk=6の場合、本実施形態に係る有向グラフIは、図49のように表現される。
[端末装置422の機能構成]
次に、図50を参照しながら、本実施形態に係る端末装置422の機能構成について説明する。図50は、端末装置422の機能構成を示す説明図である。
図50に示すように、端末装置422は、主に、通信部124と、判断部126と、有向グラフ生成部427と、鍵生成部128と、復号部130とにより構成される。但し、本実施形態の特徴的な構成は、主に、有向グラフ生成部427であり、他の構成要素については、第1実施形態に係る端末装置122の構成要素と実質的に同一である。従って、有向グラフ生成部427の機能構成のみについて詳細に説明する。
(有向グラフ生成部427)
まず、有向グラフ生成部427の機能構成について説明する。有向グラフ生成部427は、鍵配信サーバ402がセット鍵を導出するために利用した有向グラフIの中で、自身が属する部分集合のセット鍵を導出するために必要な有向パスのみを生成する機能を有する。つまり、有向グラフ生成部427は、自身が必要なセット鍵を導出可能な有向パスのみにより構成される有向グラフGを生成することができる。
(有向グラフGの生成方法)
ここで、図53及び図54を参照しながら、有向グラフGの生成方法について詳細に説明する。図53及び図54は、契約者iが、自身が所属する部分集合Sのセット鍵k(S)を導出するために必要な有向グラフGを生成する処理の流れを示す説明図である。
但し、図53の最下段と図54の最上段に記載されたA,B,C,D,Eの各記号は,図53と図54とに跨る処理の推移において、その移動先を明示するための記号である。例えば、図53のAに達するステップは、図54のAに達したものと看做す。
なお、端末装置422は、契約者数n、及びパラメータkの情報を予め保持している。また、有向グラフGは、座標点の集合V(G(i))と有向枝の集合E(G(i))とにより構成され、G(i)={V(G(i),E(G(i))}と表現される。そして、有向グラフG(i)に含まれる座標点が1つの場合、有向枝の集合E(G(i))は、E(G(i))=φ(記号φは空集合)と表現される。また、[a,b]×[a,c]は、始端の座標点が[a,b]であり、終端の座標点が[a,c]である有向枝を表す。さらに、説明の便宜上、鍵配信サーバ402から下式(25)の情報を取得したものと仮定する。
Figure 2008236380
図53に示すように、通信部124が取得した許諾契約者の部分集合に関する情報sgiの中に自身(契約者i)が含まれる部分集合S(j∈S)が存在するか否かを判断する(S702)。部分集合Sが存在する場合、ステップS704に進む。部分集合Sが存在しない場合、自身が排除された(コンテンツを取得する権利無し)ものとして、有向グラフGの生成処理を終了する。ステップS702の処理は、主に、上記の判断部126により実行される。
次いで、有向グラフ生成部427は、契約者の番号iがTPと一致するか否かを判断する(S704)。i=TPである場合、契約者iがセット鍵を導出する際に生成が必要な有向グラフG(i)={V(G(i),E(G(i))}をV(G(i))={[SP,i]},E(G(i))=φとして出力し(S742)、有向グラフGの生成処理を終了する。i=TPでない場合、ステップS706に進む。
次いで、有向グラフ生成部427は、契約者iの現在位置の座標cup、現在考慮中の範囲の始点の座標sp及び終点の座標ep、カウンタm、現在のパスにおける有向枝の個数dd、座標点の集合V(G(i))、及び有向枝の集合E(G(i))を次のように初期化する(S706)。
sp=SP,ep=EP,cup=i,m=1,dd=DD=k*(n1/k−1),V(G(i))=φ,E(G(i))=φ。但し、jは、i∈Sを満たす部分集合Sのインデックスjを表す。
次いで、有向グラフ生成部427は、SP=1か否かを判断する(S708)。SP=1である場合、ステップS710に進む。そして、有向グラフ生成部427は、L=|EP−SP|+1を計算し(S710)、ステップS714に進む。逆に、SP=1でない場合、ステップS712に進む。そして、有向グラフ生成部427は、L=|EP−SP|+2を計算し(S712)、ステップS714に進む。
次いで、有向グラフ生成部427は、n(x−1)/k<Lv≦nx/kを満たすx(1≦x≦k)を算出する(S714)。次いで、有向グラフ生成部427は、cup=TPであるか否かを判断する(S716)。cup=TPである場合、ステップS740に進む。そして、契約者iが部分集合の鍵を導出するために利用する有向グラフG{V(G(i)),E(G(i))}を出力し(S740)、有向グラフGの生成処理を終了する。
逆に、cup=TPでない場合、ステップS718に進む。そして、有向グラフ生成部427は、A06(A+B)方式における有向グラフIの一部と一致するように、spからepに至る有向パスの中で、ジャンプの回数が最小となる有向パスをMP(MaxPath)と決定する(S718)。このMPを決定する処理については後述する。
次いで、有向グラフ生成部427は、A06(A+B)方式の有向グラフIの一部に一致するMP上の有向枝をddを超えない範囲でなるべく距離の短い有向枝で置換したCPを決定する(S720)。CPの決定処理については後述する。
次いで、有向グラフ生成部427は、CP上に存在する各有向枝の中で、始端と終端との間に座標点[SP,cup]が含まれる有向枝を特定する(S722)。但し、始端又は終端の座標点と座標点[SP,cup]とが一致する場合も含む。また、特定された有向枝をCUE(Current User’s Edge)と呼ぶことにする。なお、座標点[SP,cup]がCP上に存在し、隣接する2つの有向枝の始端及び終端に座標点[SP,cup]が一致する場合は、座標点[SP,cup]を始点とする有向枝をCUEとする。
次いで、有向グラフ生成部427は、座標点[SP,TP]がCUEの終端に一致せず、かつ、CUEの終端よりも有向グラフHの終点側にない場合、ステップS734に進む。一方、座標点[SP,TP]がCUEの終端に一致するか、又はCUEの終端よりも有向グラフIの終点側にある場合、ステップS726に進む(S724)。
次いで、有向グラフ生成部427は、V(G(i))、及びE(G(i))を次のように設定する(S726)。
V(G(i))=φである場合、V(G(i))=[SP,spi,m]∪[SP,epi,m]とする。一方、V(G(i))=φでない場合、V(G(i))=V(G(i))∪[SP,epi,m]とする。また、E(G(i))=E(G(i))∪{[SP,spi,m]×[SP,epi,m]}とする。
但し、spi,m,epi,mは、各々現在のCUEの始端及び終端の座標を表す。なお、V(G(i))=φである場合とV(G(i))=φでない場合とで処理が異なるのは次の理由による。V(G(i))=φの場合には、有向枝の始端及び終端の両方を座標点として追加する必要があるが、V(G(i))=φでない場合には、追加される有向枝の始端は、既にV(G(i))の座標点として追加されており、重複を避けるため、V(G(i))には終端となる座標点のみを追加するのである。
次いで、有向グラフ生成部427は、mにm+1を代入する(S728)。次いで、有向グラフ生成部427は、CP上にCUEの次の有向枝(CUEの終端を始端とする有向枝)が存在するか否かを判断する(S730)。CUEの次の有向枝が存在する場合、ステップS732に進み、CP上に存在するCUEの次の有向枝を新たなCUEとして設定し、ステップS724の処理に戻る。一方、CUEの次の有向枝が存在しない場合、ステップS734に進む。
次いで、有向グラフ生成部427は、spにCUEの始端の座標を設定し、epにCUEの終端の一つ手前に位置する座標点の座標を設定し、CPの始点からCUEの始端までに存在する有向枝数をdとし、ddにdd−dを代入する(S734)。次いで、有向グラフ生成部427は、m=1か否かを判断する(S736)。m=1である場合、ステップS716の処理に戻る。一方、m=1でない場合、ステップS738に進む。
次いで、有向グラフ生成部427は、cup=epi,(m−1)を設定し(S738)、ステップS716の処理に戻る。
以上、本実施形態に係る有向グラフGの生成方法について説明した。上記の生成方法では、sgiに有向グラフIの終点に関する情報EPが含まれることを前提としているが、SPが決まるとEPは論理二分木BTにより一意に特定可能であるため、契約者自身がEPを特定するように構成することも可能である。この構成は、例えば、ステップS706の処理にEPを導出するステップを追加することにより実現される。
(最大有向パスMPの決定方法)
次に、図55を参照しながら、図53のステップS718における最大有向パスMPの決定方法について説明する。図55は、最大有向パスMPの決定処理の流れを示す説明図である。
図55に示すように、まず、有向グラフ生成部427は、カウンタl、現在考慮中のジャンプの到達点の座標tsp、及び現在考慮中の距離dtを次のように初期化する(S752)。l=x,tsp=sp,dt=|ep−tsp|。
次いで、有向グラフ生成部427は、lにl−1を代入する(S754)。次いで、有向グラフ生成部427は、l≧0であるか否かを判断する(S756)。l≧0でない場合、ステップS766に進み、座標点[SP,sp]から[SP,ep]に達する少なくとも1つの有向枝の鎖により形成される有向パスをMPと設定し(S766)、MPの決定処理を終了する。一方、l≧0である場合、ステップS758に進む。
次いで、有向グラフ生成部427は、dt−nl/k≧0であるか否かを判断する(S758)。dt−nl/k≧0でない場合、ステップS754の処理に戻る。一方、dt−nl/k≧0である場合、ステップS760に進む。
次いで、有向グラフ生成部427は、[SP,tsp]を出発点として距離nl/kのジャンプを実行し、対応する有向枝を生成する(S760)。次いで、有向グラフ生成部427は、ステップS760で生成された有向枝の終端の座標を新たにtspとする(S762)。次いで、有向グラフ生成部427は、dtにdt−nl/kを代入し(S764)、ステップS758の処理に戻る。
以上、最大有向パスMPの決定方法について説明した。
(現在パスCPの決定方法)
次に、図56を参照しながら、現在パスCPの決定方法について説明する。図56は、CPの決定処理の流れを示す説明図である。
図56に示すように、まず、有向グラフ生成部427は、MPに含まれる有向枝のうち、距離が最大のものを抽出し、その距離をJとおく(S772)。次いで、有向グラフ生成部427は、J≦1であるか否かを判断する(S774)。J≦1である場合、ステップS784に進み、座標点[SP,sp]から[SP,ep]に至る有向パスをCPと決定し(S784)、CPの決定処理を終了する。逆に、J≦でない場合、ステップS776に進む。
次いで、有向グラフ生成部427は、#JP(MP)+t≧ddであるか否かを判断する(S776)。#JP(MP)+t≧ddである場合、ステップS778に進む。逆に、#JP(MP)+t≧ddでない場合、ステップS784に進み、座標点[SP,sp]から[SP,ep]に至る有向パスをCPと決定し(S784)、CPの決定処理を終了する。
次いで、有向グラフ生成部427は、J=nj/kを満たすjを求める(S778)。そして、有向グラフ生成部427は、MPに含まれる距離Jの有向枝のうち、MPの始点から最も遠い位置にある有向枝を抽出する(S780)。そして、ステップS780で抽出された有向枝の始点から距離n(j−1)/kを有するt個の既存の有向枝の直後に、距離n(j−1)/kを有する有向枝を生成し、ステップS780で抽出された有向枝を消去する。さらに、有向枝が置換されたMPを新たなMPに設定し(S782)、ステップS772の処理に戻る。
以上、現在パスCPの決定方法について説明した。上記の決定処理により、上記の有向グラフGの生成処理を実施することが可能になる。
(具体例)
ここで、図51及び図52を参照しながら、上記の生成方法に基づき、有向グラフ生成部427により生成される有向グラフGの具体例について説明する。図51及び図52は、契約者数n=64、パラメータk=6の場合に生成される有向グラフGを示す説明図である。特に、集合(1→64)に対応する有向グラフのみを示している。図51及び図52の上側に描いた図は、A06(A+B)方式のアルゴリズムを用いた場合に契約者が導出する有向グラフIである。一方、下側に描いた図は、本実施形態のアルゴリズムを用いた場合に契約者が導出する有向グラフGである。
(具体例1)
まず、図51を参照すると、契約者1が部分集合[1,2]のセット鍵を導出するために生成する有向グラフGが示されている。また、図中の実線は、契約者1がセット鍵を導出する際に、実行する必要があるジャンプに対応した有向枝を示している。つまり、契約者1は、部分集合[1,2]のセット鍵を導出する際、実線で示した有向枝の始端に対応する中間鍵t([1,1])をPRSGに入力し、その終端に対応するt([1,2])を導出する必要があることを意味している。さらに、実線と破線とにより構成される有向グラフGは、契約者1が導出する必要がある最大有向パスCPを表している。
(具体例2)
次に、図52を参照すると、契約者7が部分集合[1,44]のセット鍵を生成するために生成する有向グラフGが示されている。また、図中の実線は、契約者7がセット鍵を導出する際に、実行する必要があるジャンプに対応した有向枝を示している。つまり、契約者7は、部分集合[1,44]のセット鍵を導出する際、予め保持している中間鍵t([1,33])を利用し、実線で示した有向枝に沿ってPRSGを繰り返し実行して中間鍵t([1,44])を導出する必要があることを意味している。さらに、実線と破線とにより構成される有向グラフGは、契約者7が導出する必要がある最大有向パスCPを表している。
(鍵生成方法)
ここで、図16を参照しながら、本実施形態に係る鍵生成処理の流れについて具体例を挙げて説明する。本実施形態に係る鍵生成部128の機能構成は、上記の第1実施形態に係る鍵生成部128と実質的に同一であるが、鍵生成の際に参照する有向グラフの形状が相違する。
まず、図49及び図52を参照しながら、契約者7が部分集合[1,44]のセット鍵を導出する工程について説明する。図49を参照すると、契約者7は、7つの有向グラフI(1→64),I(2←64),I(2←32),I(2←16),I(2←8),I(6→7),I(7→7)の要素に対応する部分集合に属していることが分かる。このうち、有向グラフI(1→64)には、契約者7が属している部分集合であって、その部分集合の親に対応する部分集合に契約者7が属していない3つの部分集合[1,7],[1,9],[1,33]が存在する。従って、契約者7には、有向グラフI(1→64)に関し、中間鍵t([1,7]),t([1,9]),t([1,33])がシステムセットアップの際に与えられる。他の有向グラフI(2←64),I(2←32),I(2←16),I(2←8),I(6→7),I(7→7)についても、同様に所定の中間鍵が与えられる。
まず、契約者7は、上記の有向グラフ生成部427の機能により、図52の下図(発明方式)に示した有向グラフGを生成する。その後、契約者7は、次の手順により部分集合[1,44]のセット鍵k([1,44])を取得する(図16を参照)。
まず、i=TPjとなるTPjが存在しないことを確認し、カウンタlを1に初期化する。その後、自身が予め保持する上記の中間鍵t([1,7]),t([1,9]),t([1,33])の中から、最初の有向枝[1,1]×[1,33]∈E(G(7))の終端の座標と一致する部分集合[1,33]に対応する中間鍵t([1,33])を特定し、これをCTKとする。
次いで、次の有向枝の有無を確認する。このとき、現時点では有向枝[1,33]×[1,37]∈E(G(7))が存在するので、CTK=t([1,33])をPRSGに入力し、下式(26)に示すような(k+1)*λビットの出力を得る。
Figure 2008236380
但し、上式(26)において、t([1,35]),t([1,41]),t([1,65])の35,41,65の座標は,33+ni/kのi=1,3,5として算出されたが、[1,35],[1,41],[1,65]有向グラフGにおける[1,33]を始点とする有向枝の終点にはなっていないため、t([1,35]),t([1,41]),t([1,65])は、ダミーの中間鍵を表しており、実際には利用されない。次いで、カウンタlをインクリメントした後、出力された中間鍵の中から利用する中間鍵を決定する。ここで、カウンタlは、インクリメントされてl=2となるため、有向枝[1,33]×[1,37]∈E(G(7))に関し、|37−33|=4=2=np/kを満たすp(p=2)を決定する。この結果を受け、上式(0)の出力から、t([1,37])を取得し、CTKをt([1,37])に更新する。同様に、有向枝[1,37]×[1,41]∈E(G(7))の存在を確認し、CTKをPRSGに入力して、下式(27)の出力を得る。
Figure 2008236380
次いで、カウンタlをl=3に設定し、有向枝[1,37]×[1,41]∈E(G(7))に関してp=2を算出した後、CTKをt([1,41])に更新する。以上の処理をさらにもう三度繰り返し実行することにより、次の有向枝が存在しない状態となる。このとき、CTK=t([1,44])となっているため、CTKをPRSGに入力して出力される値のk*λ+1ビット目から(k+1)*λビット目までをセット鍵k([1,44])として抽出する。
以上説明した通り、契約者7が、自己の保持する中間鍵を利用して部分集合[1,44]のセット鍵k([1,44])を取得することが可能である。このように、各契約者は、自己が保持する中間鍵を利用して所望のセット鍵を算出することができる。
[効果]
従来、各契約者は、自身が所属する部分集合に対応する全ての有向グラフIを保持するか、又は自身で全ての有向グラフIを導出する必要があった。しかし、本実施形態は、各契約者が、自身の所属する部分集合に対応する有向グラフIの中で、自身が鍵導出の際に必要とする有向枝のみで構成される有向グラフGを導出する手段を提供する。従って、従来の鍵配信方式と比較し、各契約者が算出すべき有向枝の数を大幅に削減することが可能となり、各契約者が各々有向グラフGを生成して高速に所望のセット鍵を導出することが可能になる。その結果、コンテンツの復号に掛かる時間を大幅に短縮することができる。
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
例えば、上記の論理二分木BTは、上から下に枝が広がる構造を有するものと仮定したが、必ずしもこれに限定されず、下から上、左から右、又は右から左に向けて枝が広がるように構成することも可能である。このような配置に関わる変更は、単純に論理二分木を回転して配置することにより実現されるため、当該変更に係るいずれの構成についても実質的に同一の技術的範囲に属するものと言える。また、仮有向グラフ、及び有向グラフを形成する水平座標軸を左右反転させる変更についても同様である。
さて、上記の各実施形態に係る鍵配信サーバ102は、自身で有向グラフを生成する構成要素を含んでいるが、必ずしもこれに限定されない。例えば、本発明に係る鍵配信サーバ102は、所定の有向グラフに関する情報を取得する取得部を備えていてもよく、この場合、木構造設定部104、座標軸設定部106、仮有向グラフ生成部108、及び有向グラフ生成部110の一部又は全部を備えている必要はない。
また、上記の各実施形態に係る鍵配信サーバ102は、コンテンツ、コンテンツ鍵、セット鍵、中間鍵、許諾契約者に対応する部分集合の情報、又は有向グラフの情報等を端末装置122に配信する通信部118を備えているが、上記の応用例2にも示した通り、これらの情報を提供するために常にネットワークを利用するとは限らない。例えば、鍵配信サーバ102は、通信部118に代えて、記録媒体に情報を記録するための記録部を備えていてもよい。その場合、端末装置122は、通信部124を備える代わりに、情報が記録された記録媒体を読み込むための読込部を備えていてもよい。
本発明の第1〜4形態に係る鍵提供システムの構成を示す説明図である。 同実施形態に係る鍵配信サーバ及び端末装置のハードウェア構成を示す説明図である。 本発明の第1実施形態に係る鍵配信サーバの機能構成を示す説明図である。 同実施形態に係る論理二分木の構造を示す説明図である。 同実施形態に係る有向グラフHを示す説明図である。 同実施形態に係る鍵配信方法の流れを示す説明図である。 同実施形態に係る鍵配信方法の流れを示す説明図である。 同実施形態に係る鍵配信方法の流れを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係る端末装置の機能構成を示す説明図である。 同実施形態に係る有向グラフGを示す説明図である。 同実施形態に係る有向グラフGを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係る鍵生成方法の流れを示す説明図である。 同実施形態に係る鍵配信方式の応用例を示す説明図である。 同実施形態に係る鍵配信方式の応用例を示す説明図である。 本発明の第2実施形態に係る鍵配信サーバの構成を示す説明図である。 同実施形態に係る有向グラフIを示す説明図である。 同実施形態に係る有向グラフIを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係る端末装置の機能構成を示す説明図である。 同実施形態に係る有向グラフGを示す説明図である。 同実施形態に係る有向グラフGを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 本発明の第3実施形態に係る鍵配信サーバの構成を示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係る端末装置の機能構成を示す説明図である。 同実施形態に係る有向グラフGを示す説明図である。 同実施形態に係る有向グラフGを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 本発明の第4実施形態に係る鍵配信サーバの構成を示す説明図である。 同実施形態に係る仮有向グラフI’を示す説明図である。 同実施形態に係る仮有向グラフI’を示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係る有向グラフIを示す説明図である。 同実施形態に係る端末装置の機能構成を示す説明図である。 同実施形態に係る有向グラフGを示す説明図である。 同実施形態に係る有向グラフGを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。
符号の説明
100 鍵提供システム
102 鍵配信サーバ
104 木構造設定部
106 座標軸設定部
108 仮有向グラフ生成部
110 有向グラフ生成部
112 初期中間鍵設定部
114 鍵生成部
116 暗号化部
118 通信部
120 部分集合決定部
122 端末装置
124 通信部
126 判断部
127 有向グラフ生成部
128 鍵生成部
130 復号部
202 鍵配信サーバ
206 座標軸設定部
210 有向グラフ生成部
222 端末装置
227 有向グラフ生成部
302 鍵配信サーバ
308 仮有向グラフ生成部
310 有向グラフ生成部
322 端末装置
327 有向グラフ生成部
402 鍵配信サーバ
408 仮有向グラフ生成部
410 有向グラフ生成部
422 端末装置
427 有向グラフ生成部
702 コントローラ
704 演算ユニット
706 入出力インターフェース
708 セキュア記憶部
710 メイン記憶部
712 ネットワークインターフェース
716 メディアインターフェース
718 情報メディア

Claims (12)

  1. 複数の端末装置と、データの暗号化又は復号に用いる鍵を所定の前記端末装置に提供することが可能な情報処理装置とにより構成される鍵提供システムであって、
    前記情報処理装置は、
    複数の前記端末装置の組合せを表す集合が各々に対応付けられた複数の座標点を有する座標軸上に、前記座標点間を結ぶ有向枝を配置して形成された所定の有向グラフを取得する取得部と、
    前記複数の端末装置の一部又は全部を表す前記集合を選択する選択部と、
    前記所定の有向グラフに基づき、選択された前記集合に対応する前記鍵を生成する鍵生成部と、
    生成された前記鍵と前記選択された集合に関する情報とを前記複数の端末装置に提供する提供部と、
    を備え、
    前記端末装置は、
    前記生成された鍵と前記選択された集合に関する情報とを取得する取得部と、
    前記所定の有向グラフを形成する前記有向枝の中で、自身が属する前記選択された集合に対応する前記鍵を生成するのに必要な前記有向枝を生成する有向グラフ生成部と、
    生成された前記有向枝により形成される有向グラフに基づいて、前記自身が属する選択された集合に対応する前記鍵を生成する鍵生成部と、
    を備えることを特徴とする、鍵提供システム。
  2. 複数の端末装置の組合せを表す複数の集合の中から選択され、前記複数の端末装置の一部又は全部を表す前記集合に関する情報を取得する取得部と、
    前記情報に含まれ、かつ、自身が属する前記集合を抽出する抽出部と、
    複数の有向枝により形成された所定の有向グラフの中で、抽出された前記集合に対応する鍵を生成するのに必要な前記有向枝を生成する有向グラフ生成部と、
    を備えることを特徴とする、端末装置。
  3. 前記所定の有向グラフは、所定の第1の有向グラフに基づき、前記第1の有向グラフを形成する複数の有向枝の一部又は全部をより短い有向枝に置換して生成された第2の有向グラフであることを特徴とする、請求項2に記載の端末装置。
  4. 前記所定の有向グラフは、所定の第1の有向グラフに基づき、前記第1の有向グラフを形成する複数の有向枝の一部又は全部をより長い有向枝に置換して生成された第3の有向グラフであることを特徴とする、請求項2に記載の端末装置。
  5. 前記所定の有向グラフは、所定の第1の有向グラフに基づき、前記第1の有向グラフを形成する複数の有向枝の一部又は全部をより長い有向枝に置換して生成された第3の有向グラフについて、さらに、前記第3の有向グラフを形成する複数の有向枝の一部又は全部をより短い有向枝に置換して生成された第4の有向グラフであることを特徴とする、請求項2に記載の端末装置。
  6. 前記有向グラフ生成部により生成された前記有向枝に基づいて前記鍵を生成する鍵生成部をさらに備えることを特徴とする、請求項2に記載の端末装置。
  7. 前記取得部は、前記集合に関する情報と共に、当該集合に対応する前記鍵で暗号化されたコンテンツ又はコンテンツ鍵を取得し、
    前記鍵生成部により生成された前記鍵を用いて前記暗号化されたコンテンツ又はコンテンツ鍵を復号する復号部をさらに備えることを特徴とする、請求項6に記載の端末装置。
  8. 前記取得部は、ネットワークを介して前記集合に関する情報を受信することを特徴とする、請求項2に記載の端末装置。
  9. 前記取得部は、所定の記録媒体に記録された前記集合に関する情報を読み出すことを特徴とする、請求項2に記載の端末装置。
  10. 前記鍵生成部は、前記有向枝の始端Sに対応する前記鍵k(S)の入力に応じて、前記有向枝の終端の座標点Sに対応する前記鍵k(S)を生成することを特徴とする、請求項6に記載の端末装置。
  11. 前記鍵は、前記コンテンツ又はコンテンツ鍵を暗号化又は復号するためのセット鍵kと、当該セット鍵kを生成するための中間鍵tとにより構成され、
    前記鍵生成部は、前記有向枝の始端Sに対応する前記中間鍵t(S)の入力に応じて、前記有向枝の始端Sに対応する前記セット鍵k(S)と、前記有向枝の終端Sに対応する前記中間鍵t(S)とを生成することを特徴とする、請求項6に記載の端末装置。
  12. 端末装置における情報処理方法であって、
    複数の端末装置の組合せを表す複数の集合の中から選択され、前記複数の端末装置の一部又は全部を表す前記集合に関する情報を取得する取得ステップと、
    前記情報に含まれ、かつ、自身が属する前記集合を抽出する抽出ステップと、
    複数の有向枝により形成された所定の有向グラフの中で、抽出された前記集合に対応する鍵を生成するのに必要な前記有向枝を生成する有向グラフ生成ステップと、
    を含むことを特徴とする、情報処理方法。
JP2007073195A 2007-03-20 2007-03-20 鍵提供システム、端末装置、及び情報処理方法 Pending JP2008236380A (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2007073195A JP2008236380A (ja) 2007-03-20 2007-03-20 鍵提供システム、端末装置、及び情報処理方法
KR1020097019534A KR20100014474A (ko) 2007-03-20 2008-02-05 키 제공 시스템, 단말 장치, 및 정보 처리 방법
PCT/JP2008/051815 WO2008114542A1 (ja) 2007-03-20 2008-02-05 鍵提供システム、端末装置、及び情報処理方法
US12/532,076 US8150040B2 (en) 2007-03-20 2008-02-05 Key providing system, terminal device, and information processing method
CN200880009041XA CN101641904B (zh) 2007-03-20 2008-02-05 密钥提供系统、终端设备和信息处理方法
EP08704442A EP2124380A1 (en) 2007-03-20 2008-02-05 Key providing system, terminal, and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007073195A JP2008236380A (ja) 2007-03-20 2007-03-20 鍵提供システム、端末装置、及び情報処理方法

Publications (1)

Publication Number Publication Date
JP2008236380A true JP2008236380A (ja) 2008-10-02

Family

ID=39765658

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007073195A Pending JP2008236380A (ja) 2007-03-20 2007-03-20 鍵提供システム、端末装置、及び情報処理方法

Country Status (6)

Country Link
US (1) US8150040B2 (ja)
EP (1) EP2124380A1 (ja)
JP (1) JP2008236380A (ja)
KR (1) KR20100014474A (ja)
CN (1) CN101641904B (ja)
WO (1) WO2008114542A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015130580A (ja) * 2014-01-07 2015-07-16 富士通株式会社 データスクランブル装置、セキュリティ装置、セキュリティシステム及びデータスクランブル方法
WO2015197368A1 (en) * 2014-06-27 2015-12-30 Koninklijke Philips N.V. Device for determining a shared key

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006074392A (ja) * 2004-09-01 2006-03-16 Canon Inc 情報暗号化装置及びその制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2002100081A (ru) * 2000-04-06 2003-07-27 Сони Корпорейшн (JP) Система и способ обработки информации
JP2001352321A (ja) * 2000-04-06 2001-12-21 Sony Corp 情報処理システム、情報処理方法、および情報記録媒体、並びにプログラム提供媒体
JP4660899B2 (ja) * 2000-07-24 2011-03-30 ソニー株式会社 データ処理装置およびデータ処理方法、並びにプログラム提供媒体
WO2002016076A1 (fr) * 2000-08-18 2002-02-28 Tokyo Seimitsu Co., Ltd. Dispositif de meulage des bords peripheriques d'une feuille
JP4595182B2 (ja) * 2000-09-07 2010-12-08 ソニー株式会社 情報記録装置、情報再生装置、情報記録方法、情報再生方法、および情報記録媒体、並びにプログラム提供媒体
JP2005198043A (ja) * 2004-01-07 2005-07-21 Nec Corp コンテンツ配信システム、その方法、サーバ、ユーザ端末、暗号化装置、管理装置およびストリーミング装置
JP2006310182A (ja) 2005-04-28 2006-11-09 Toyota Motor Corp 燃料電池システム及びパージ弁制御方法
JP2006310226A (ja) 2005-05-02 2006-11-09 Omron Corp マイクロスイッチ
JP2006310213A (ja) 2005-05-02 2006-11-09 Sumitomo Electric Ind Ltd フラットケーブル及びフラットケーブルの製造方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006074392A (ja) * 2004-09-01 2006-03-16 Canon Inc 情報暗号化装置及びその制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
CSNJ200910010015; Nuttapong Attrapadung, Hideki Imai: '"Subset Incremental Chain Based Broadcast Encryption with Shorter Ciphertext"' 第28回情報理論とその応用シンポジウム 予稿集 第1分冊, 20051120, p.57-60 *
JPN6012030697; Nuttapong Attrapadung, Hideki Imai: '"Subset Incremental Chain Based Broadcast Encryption with Shorter Ciphertext"' 第28回情報理論とその応用シンポジウム 予稿集 第1分冊, 20051120, p.57-60 *
JPN6012030699; Dan Boneh, Xavier Boyen, Eu-Jin Goh: '"Hierarchical Identity Based Encryption with Constant Size Ciphertext"' Cryptology ePrint Archive: Report 2005/015 Version: 20050120:213857, 20050120, [online] *
JPN7012002260; 浅野智之,草川雅文: '"Subset Incremental Chainに基づく計算量の小さなBroadcast Encryption方式"' 2007年 暗号と情報セキュリティシンポジウム 2C3 放送型暗号(1), 20070123, 2C3-1 *
JPN7012002261; 浅野智之,草川雅文: '"Subset Incremental Chainに基づく効率的なBroadcast Encryption方式"' 2008年 暗号と情報セキュリティシンポジウム 1D1 コンテンツ保護(1), 20080122, 1D1-2 *

Also Published As

Publication number Publication date
CN101641904A (zh) 2010-02-03
EP2124380A1 (en) 2009-11-25
KR20100014474A (ko) 2010-02-10
US20100040235A1 (en) 2010-02-18
CN101641904B (zh) 2012-10-03
WO2008114542A1 (ja) 2008-09-25
US8150040B2 (en) 2012-04-03

Similar Documents

Publication Publication Date Title
JP5365072B2 (ja) 鍵生成装置、暗号化装置、受信装置、鍵生成方法、暗号化方法、鍵処理方法およびプログラム
CN101663856B (zh) 密钥提供系统、密钥提供装置、终端设备、密钥提供方法和密钥生成方法
CN101053200B (zh) 信息处理设备、信息存储媒体、内容管理系统、数据处理方法
KR100846262B1 (ko) 정보 처리 장치, 정보 처리 방법 및 프로그램 기억 매체
KR20060129934A (ko) 정보 처리 방법, 복호 처리 방법 및 정보 처리 장치와컴퓨터 프로그램
JP2006253822A (ja) 復号装置、復号方法、及びプログラム
US8300814B2 (en) Information processing unit, terminal unit, information processing method, key generation method and program
KR20080030344A (ko) 바이리니어 맵을 이용한 브로드캐스트 암호화를 위한 방법및 장치
WO2008059672A1 (fr) Dispositif de traitement d'informations
JP4632413B2 (ja) 情報暗号化装置及び情報配信装置並びにそれらの制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
JP2006086568A (ja) 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム
JP2008131076A (ja) 情報処理装置、端末装置、情報処理方法、鍵生成方法、及びプログラム
JP2008236380A (ja) 鍵提供システム、端末装置、及び情報処理方法
CN101536401B (zh) 信息处理设备
JP5286748B2 (ja) 情報処理装置、鍵設定方法、及びプログラム
JP4161859B2 (ja) 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
JP4561074B2 (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP2010117384A (ja) 情報処理装置、情報処理方法およびプログラム
JP2004229128A (ja) 暗号データ配信システム、および情報処理装置、情報処理方法、並びにコンピュータ・プログラム
JP4829737B2 (ja) 個人情報保護システム、鍵管理装置および鍵生成プログラム、署名鍵生成装置および署名鍵生成プログラム、個人情報管理装置および個人情報収集プログラム、ならびに、受信端末および個人情報管理プログラム
JP2005260852A (ja) 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム
JP2005191805A (ja) 暗号文配信方法、情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP4576824B2 (ja) 情報処理装置および情報処理方法
JP2005252916A (ja) 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120619

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121016