JP2009124193A - 情報処理装置、鍵設定方法、及びプログラム - Google Patents

情報処理装置、鍵設定方法、及びプログラム Download PDF

Info

Publication number
JP2009124193A
JP2009124193A JP2007292587A JP2007292587A JP2009124193A JP 2009124193 A JP2009124193 A JP 2009124193A JP 2007292587 A JP2007292587 A JP 2007292587A JP 2007292587 A JP2007292587 A JP 2007292587A JP 2009124193 A JP2009124193 A JP 2009124193A
Authority
JP
Japan
Prior art keywords
key
identifier
directed graph
subset
directional
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.)
Granted
Application number
JP2007292587A
Other languages
English (en)
Other versions
JP5286748B2 (ja
Inventor
Tomoyuki Asano
智之 浅野
Masafumi Kusakawa
雅文 草川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2007292587A priority Critical patent/JP5286748B2/ja
Priority to US12/266,692 priority patent/US20090177888A1/en
Publication of JP2009124193A publication Critical patent/JP2009124193A/ja
Application granted granted Critical
Publication of JP5286748B2 publication Critical patent/JP5286748B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • 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
    • H04L2209/601Broadcast encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

【課題】各種のブロードキャスト・エンクリプション方式の鍵配信方法における有向グラフ生成方法を改良した鍵配信システム、端末装置、及び情報処理方法を提供すること。
【解決手段】木構造の各ノードに対応する端末装置の集合に識別子を設定する識別子設定部と、前記識別子に基づいて前記端末装置に配信される鍵を設定する鍵設定部とを備え、前記識別子設定部は、前記各ノードに対応する端末装置の集合を示す第1識別子を含み、当該集合が複数の部分集合を含む場合に当該複数の部分集合間の対応関係を示す第2識別子を更に含むように前記識別子を設定することを特徴とする、情報処理装置が提供される。
【選択図】図10

Description

本発明は、情報処理装置、鍵設定方法、及びプログラムに関する。
近年、パーソナルコンピュータ(以下、PC)、携帯電話、及びデジタル家電等の情報機器が広く普及すると共に、これらの情報機器間の通信に関する技術が大きく発達してきている。また、広帯域のネットワーク等を利用し、これらの情報機器に対して音楽や映像等のコンテンツを配信するコンテンツ配信サービスが広く展開されている。例えば、CATV(Community Antenna TeleVision)、衛星放送、或いは、インターネット等を利用した有料放送、CD(Compact Disc)又はDVD(Digital Versatile Disc)等物理メディアを利用したコンテンツ販売等がコンテンツ配信サービスとして展開されている。
こうしたコンテンツ配信サービスが提供される際、提供者(以下、システム管理者)と視聴者との間では、予め視聴契約が締結される。そして、この視聴契約に基づき、その契約者のみがコンテンツを取得できるようにする必要がある。そのため、例えば、システム管理者は、コンテンツを暗号化して配信し、このコンテンツを復号するための鍵を契約者に対して提供する。これにより、視聴契約を締結した視聴者のみがコンテンツを復号して視聴できるようになる。
このようなコンテンツ配信方式の一例として、ブロードキャスト・エンクリプション(Broadcast Encryption)方式と呼ばれる技術が知られている。このブロードキャスト・エンクリプション方式とは、各契約者を所定の集合の要素に対応付けた上で、契約者全体を表す契約者集合を複数の部分集合に分割し、特定の部分集合に属する契約者のみがコンテンツ鍵mekを取得できるようなヘッダhを配信する方式である。この方式を用いると、コンテンツを視聴可能な契約者の中から特定の契約者をシステム管理者が指定して排除することができるようになる(例えば、下記の非特許文献1を参照)。
Nuttapong Attrapadung and Hideki Imai,"Subset Incremental Chain Based Broadcast Encryption with Shorter Ciphertext",The 28th Symposium on Information Theory and Its Applications(SITA2005)
また、本件出願人は、上記の非特許文献1に記載のコンテンツ配信方式(以下、AI方式)よりも、各端末装置が鍵を保持するために要求されるメモリ量を低減することが可能な第1の改良方式(以下、RS方式)、各端末装置がコンテンツ鍵を生成するために要求される計算量を低減することが可能な第2の改良方式(以下、RC方式)、及び上記のメモリ量と計算量とを低減させることが可能な第3の改良方式(以下、RCS方式)を開発し、既に日本国特許庁に特許出願している(RS方式:特願2006−310182、RC方式:特願2006−310213、RCS方式:特願2006−310226)。ところが、これらの方式に代表されるブロードキャスト・エンクリプション方式は、送信者と各契約者が共通鍵を共有する共通鍵方式の暗号化技術であるため、送信者が各契約者の秘密鍵を知る必要がない公開鍵方式で暗号化されたコンテンツを配信したい場合に適用することが難しいという問題点を抱えていた。
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、公開鍵暗号方式に拡張したブロードキャスト・エンクリプション方式の鍵配信を実現することが可能な、新規かつ改良された情報処理装置、鍵設定方法、及びプログラムを提供することにある。
上記課題を解決するために、本発明のある観点によれば、木構造の各ノードに対応する端末装置の集合に識別子を設定する識別子設定部と、前記識別子に基づいて前記端末装置に配信される鍵を設定する鍵設定部とを備える情報処理装置が提供される。また、前記識別子設定部は、前記各ノードに対応する端末装置の集合を示す第1識別子を含み、当該集合が複数の部分集合を含む場合に当該複数の部分集合間の対応関係を示す第2識別子を更に含むように前記識別子を設定することを特徴とする。
また、前記情報処理装置は、所定の乗法群の情報と、当該情報群により定義される双線形マップの情報と、前記乗法群に属する複数の生成元の情報とが含まれ、前記端末装置に公開される公開情報を設定する公開情報設定部をさらに備えていてもよい。そして、前記鍵設定部は、前記公開情報を含む所定のパラメータに基づいて前記第1識別子に対応する鍵、及び各前記部分集合に対応する鍵を設定してもよい。
また、前記情報処理装置は、所定の方式に基づいて前記集合毎に各前記部分集合間の対応関係が規定され、当該対応関係に従って一の前記部分集合と他の前記部分集合とを結ぶ経路が示された経路情報を取得する経路情報取得部をさらに備えていてもよい。そして、前記識別子設定部は、前記経路情報取得部により取得された経路情報に基づいて前記第2識別子を設定してもよい。
また、前記情報処理装置は、所定の方式に基づいて前記集合毎に各前記部分集合間の対応関係が規定され、当該対応関係に従って一の前記部分集合と他の前記部分集合とを結ぶ経路が示された経路情報を取得する経路情報取得部と、各前記部分集合間の経路長が長くなるように前記経路情報取得部により取得された前記経路情報を変更する経路情報変更部とをさらに備えていてもよい。そして、前記識別子設定部は、前記経路情報変更部により変更された経路情報に基づいて前記第2識別子を設定してもよい。
また、前記情報処理装置は、所定の方式に基づいて前記集合毎に各前記部分集合間の対応関係が規定され、当該対応関係に従って一の前記部分集合と他の前記部分集合とを結ぶ経路が示された経路情報を取得する経路情報取得部と、各前記部分集合間の経路長が長くなるように前記経路情報取得部により取得された経路情報を変更した上で、その変更した経路情報に含まれる比較的経路長が短い前記部分集合間の対応関係をより短い経路長を有する対応関係に変更する経路情報変更部とをさらに備えていてもよい。そして、前記識別子設定部は、前記経路情報変更部により変更された経路情報に基づいて前記第2識別子を設定してもよい。
また、前記情報処理装置は、所定の方式に基づいて前記集合毎に各前記部分集合間の対応関係が規定され、当該対応関係に従って一の前記部分集合と他の前記部分集合とを結ぶ経路が示された経路情報を取得する経路情報取得部と、各前記部分集合間の経路長が短くなるように前記経路情報取得部により取得された前記経路情報を変更する経路情報変更部とをさらに備えていてもよい。そして、前記識別子設定部は、前記経路情報変更部により変更された経路情報に基づいて前記第2識別子を設定してもよい。
また、上記課題を解決するために、本発明の別の観点によれば、複数の端末装置が含まれる鍵配信システムにおける鍵設定方法が提供される。当該鍵設定方法は、木構造の各ノードに対応する端末装置の集合に識別子が設定される識別子設定ステップと、前記識別子に基づいて前記端末装置に配信される鍵が設定される鍵設定ステップとを含む。そして、前記識別子設定ステップでは、前記各ノードに対応する端末装置の集合を示す第1識別子が含まれ、当該集合が複数の部分集合により構成される場合に当該複数の部分集合間の対応関係を示す第2識別子が更に含まれるように前記識別子が設定されることを特徴とする。
また、上記課題を解決するために、本発明の別の観点によれば、複数の端末装置が含まれる鍵配信システムにおける鍵設定方法をコンピュータに実現させるためのプログラムが提供される。当該プログラムは、木構造の各ノードに対応する端末装置の集合に識別子を設定する識別子設定機能と、前記識別子に基づいて前記端末装置に配信される鍵を設定する鍵設定機能とを有し、前記識別子設定機能は、前記各ノードに対応する端末装置の集合を示す第1識別子が含まれ、また、当該集合が複数の部分集合により構成される場合に当該複数の部分集合間の対応関係を示す第2識別子が更に含まれるように前記識別子を設定する機能をコンピュータに実現させるためのプログラムである。
上記の装置、方法、及びプログラムを適用すると、ブロードキャスト・エンクリプション方式の鍵配信技術を公開鍵暗号方式に拡張することが可能になり、暗号化ファイルの共有化等、ブロードキャスト・エンクリプション方式の応用範囲を拡張できると同時に、ユーザの利便性を大きく向上させることができる。また、部分集合間の対応関係を規定する経路情報の選び方又は生成方法を工夫することで、各端末装置が保持すべき鍵数、鍵生成に要する演算量、或いは、鍵配信に要する通信量等を低減させることもできる。
以上説明したように本発明によれば、公開鍵暗号方式に拡張したブロードキャスト・エンクリプション方式の鍵配信を実現することが可能になる。
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
[基盤技術の概要]
本発明の好適な実施形態について詳細に説明するに先立ち、以下で詳細に説明する実施形態に係る技術を適用することが可能なAI方式、RS方式、RC方式、及びRCS方式について簡単に説明する。もちろん、当該技術の適用範囲は、これに限定されず、現在又は未来において実現される多様なブロードキャスト・エンクリプション方式に適用可能である。
(AI方式の概要)
ブロードキャスト・エンクリプション方式の一例として、AI方式について簡単に説明する。AI方式の鍵配信システムは、例えば、鍵配信サーバと、複数の端末装置とにより構成される。
AI方式では、鍵配信システムに含まれる各端末装置を集合の要素に対応付けて端末装置全体の集合を考える。そして、当該集合を分割して得られる複数の部分集合を利用して鍵配信を実行する。まず、鍵配信サーバは、論理二分木(BT;Binary Tree)を形成して各端末装置を葉ノードに対応付ける。次いで、鍵配信サーバは、その部分集合を要素とする集合を所定の規則に則って生成する。さらに、鍵配信サーバは、生成した各集合をBTの根ノード、及び各中間ノードに対応付ける。そして、鍵配信サーバは、上記の集合に含まれる複数の部分集合を所定のアルゴリズムに従って対応付ける。尚、ここでは詳細な説明を省略するが、論理二分木に代えて任意の木構造を採用することも可能である。
このとき、各部分集合間の対応関係は、その対応関係に方向性を持たせた有向枝と呼ばれる対応情報により表現される。さらに、上記の集合は、この有向枝を連結して形成される有向グラフにより表現される。例えば、有向グラフは、水平座標軸上の各座標点を結ぶ有向枝の連結鎖として表現される。このとき、水平座標軸上の各座標点には、その有向グラフに対応する一の集合に含まれた各部分集合が対応付けられる。また、有向枝は、例えば、座標点間を結ぶ曲線又は屈折線等の連結線により表現できる。このような表現を用いると、鍵配信サーバは、上記のBTに含まれる根ノード、及び各中間ノードに対応する上記の各集合に対し、それぞれ有向グラフを構築して各集合の要素である部分集合間の関係を設定することができる。尚、後段において、具体例を挙げて説明する。
上記のグラフ生成処理が完了すると、鍵配信サーバは、各端末装置に配信する鍵を生成する。まず、鍵配信サーバは、配信先の端末装置が要素として含まれる部分集合を選択し、当該部分集合が含まれる有向グラフを特定する。次いで、鍵配信サーバは、特定された有向グラフに基づき、擬似乱数生成器(PRSG;Pseudo−Random Sequence Generator)を繰り返し用いて配信先の端末装置に配信する鍵を生成する。尚、後述する実施形態において、PRSGを使用せずに鍵を設定する技術についても説明する。このAI方式は、通信量、端末装置が保持すべき鍵数、鍵生成に要する計算量が比較的低いブロードキャスト・エンクリプション方式である。
しかしながら、AI方式の鍵配信システムは、鍵配信サーバが鍵(共通鍵)を生成して配信するように構成されているため、公開鍵暗号方式の鍵配信システムとして運用することが困難である。こうした事情を踏まえ、本件出願人は、後述する実施形態の一つとして、AI方式の鍵配信システムを公開鍵暗号方式に拡張する技術を開示する。
(RS、RC、RCS方式の概要)
ブロードキャスト・エンクリプション方式の他の例として、上記のAI方式を改良したRS方式、RC方式、RCS方式について簡単に説明する。RS方式、RC方式、及びRCS方式の鍵配信システムは、上記のAI方式の鍵配信システムと同様に、例えば、鍵配信サーバと、複数の端末装置とにより構成される。
RS方式は、有向グラフを構成する有向枝の長さを短くする処理を加えることにより、上記のAI方式よりも各端末装置が保持すべき鍵数を低減させる改良が施された改良方式である。また、RC方式は、有向枝の長さが長くなるように有向グラフを形成することにより、上記のAI方式よりも鍵生成に要する計算量を低減させる改良が施された改良方式である。そして、RCS方式は、RC方式と同様にして有向枝の長い有向グラフを形成した後、RS方式と同様に所定の有向枝を短い有向枝に置換することにより、上記のAI方式よりも各端末装置が保持すべき鍵数、及び鍵生成に要する計算量を低減させる改良が施された改良方式である。
しかしながら、AI方式と同様に、RS方式、RC方式、及びRCS方式の鍵配信システムは、鍵配信サーバが鍵(共通鍵)を生成して配信するように構成されているため、公開鍵暗号方式のシステムとして運用することが困難である。こうした事情を踏まえ、本件出願人は、後述する実施形態として、RS方式、RC方式、及びRCS方式の鍵配信システムを公開鍵暗号方式に拡張する技術を開示する。但し、当該技術は、その基盤となるブロードキャスト・エンクリプション方式の特性を継承するため、AI方式を基盤とするよりも、RS方式、RC方式、及びRCS方式を適用する方が通信量、端末装置が保持すべき鍵数、及び鍵生成に要する計算量等の面で良好な特性が得られる。
尚、当該技術は、技術的思想の本質的な部分が共通しており、AI方式、RS方式、RC方式、及びRCS方式のみならず、他のブロードキャスト・エンクリプション方式にも適用範囲を拡張することができる。つまり、本発明に係る技術的範囲は、当然に、AI方式、RS方式、RC方式、及びRCS方式の公開鍵暗号方式化に限定されるものではない。
(解決手段の概要)
以下で説明する実施形態に係る技術は、上記のAI方式、RS方式、RC方式、及びRCS方式等のブロードキャスト・エンクリプション方式に階層化IDベース暗号化方式(以下、HIBE方式)の要素を加え、AI方式、RS方式、RC方式、及びRCS方式等を公開鍵暗号方式に拡張する手段を提供するものである。HIBE方式に係る技術は、例えば、“Hierarchical Identity Based Encryption with Constant Size Ciphertext”,Proceedings of Eurocrypt 2005, volume 3494 of Lecture Notes in Computer Science,pages 440−456,Springer−Verlag,2005等に開示されている。
HIBE方式は、所謂、IDベース暗号化方式を拡張したものであり、鍵の配信者(センタ)を階層化できるようにした技術である。HIBE方式では、木構造の各ノードに端末装置(ユーザ)の識別子(ID)が対応付けられており、その識別子に対応する鍵が、その端末装置の親ノードに対応する端末装置により生成される。従って、上記のAI方式等とは異なり、木構造のルート以外のノードに対応するユーザによって鍵の生成が可能である。
HIBE方式のように、ルート以外のユーザが鍵を生成して配信できるようになると、例えば、暗号化ファイルの共有化を利用したアプリケーションへの応用が可能になる。つまり、あるユーザは、暗号化対象のファイルを作成し、あるグループ内だけで閲覧又は編集を許可することができるようになる。
例えば、次のようなケースを考える。「まず、配信元のユーザは、暗号化対象のファイルを所定のブロードキャスト・エンクリプション方式に基づいて暗号化し、そのグループ内のユーザに同報送信する。そして、ファイルを受信したグループ内のユーザは、そのファイルを復号し、編集した上で再度暗号化してグループ内の他のユーザに同報送信する。」
こうしたケースにおいて、AI方式等の共通鍵方式のブロードキャスト・エンクリプション方式が適用される場合、十分なセキュリティを確保するためには、ファイルを編集して再送信するユーザの信頼性が十分に高いことが条件になる。しかしながら、ファイルの配信先となるユーザの信頼性を保証することは現実的に難しい場合が多い。そこで、ブロードキャスト・エンクリプション方式を公開鍵暗号方式に拡張するための技術が求められるのである。この技術に係る鍵配信サーバは、公開鍵と秘密鍵とを設定し、各端末装置(ユーザ)に秘密鍵を配信すると共に公開鍵を公開する。従って、各ユーザは、公開鍵を用いてファイルを暗号化し、自由に送信することが可能になる。以下、この技術について具体的に説明する。
<第1実施形態>
以下、本発明の第1実施形態に係る鍵配信システムのシステム構成、及び鍵配信に係る具体的な手段について詳細に説明する。本実施形態は、AI方式を公開鍵暗号方式に拡張したブロードキャスト・エンクリプション方式による鍵配信技術に関する。そこで、AI方式に係る鍵配信システム100について説明する。
[AI方式に係る鍵配信システム100の構成]
まず、図1を参照しながら、AI方式に係る鍵配信システム100のシステム構成について説明する。図1は、AI方式に係る鍵配信システム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は、所定の端末装置122に対してコンテンツ鍵を暗号化して配信することができる。このとき、鍵配信サーバ102は、所定の端末装置122だけがコンテンツ鍵を復号できるように、所定のアルゴリズムに従って生成された鍵を利用してコンテンツ鍵を暗号化する。そのため、コンテンツの再生を許諾していない端末装置122がコンテンツ鍵を取得したとしても、そのコンテンツ鍵を復号することができない。なお、コンテンツ鍵は、暗号化/復号の両対応であってもよいし、復号専用であってもよい。
上記の技術を実現するため、鍵配信サーバ102は、コンテンツ鍵の暗号化又は復号に用いるセット鍵を生成する。このとき、鍵配信サーバ102は、鍵配信システム100に含まれる端末装置122を複数のグループに分け、グループ毎にセット鍵を生成する。但し、鍵配信サーバ102は、ある集合の部分集合により各グループを表現し、その部分集合間の関係(有向枝、及び有向グラフ)に基づいてセット鍵を生成する。鍵配信サーバ102は、有向グラフを他の装置から取得しておいてもよいし、或いは、所定のアルゴリズムに基づいて生成しておいてもよい。
また、鍵配信サーバ102は、所定のセット鍵によりコンテンツ鍵を暗号化する。このとき、鍵配信サーバ102は、コンテンツの再生を許諾するユーザの端末装置122を要素に含む1以上の部分集合を選択し、その部分集合に対応するセット鍵を利用してコンテンツ鍵を暗号化する。そして、鍵配信サーバ102は、暗号化されたコンテンツと、暗号化されたコンテンツ鍵と、選択された部分集合の情報とを鍵配信システム100に含まれる端末装置122に配信する。尚、端末装置122は、自身が所属する全ての部分集合について、各部分集合に対応するセット鍵の生成に必要な1以上の鍵(セット鍵又は中間鍵)が提供されている。また、鍵配信サーバ102は、そのセット鍵の生成に必要な有向グラフの一部又は全部に関する情報を予め各端末装置122に通知しておいてもよい。
尚、鍵配信サーバ102は、セット鍵を生成する際に擬似乱数生成器(PRSG)を利用する。このPRSGは、所定のシード値を入力することにより長周期の擬似的な乱数列を出力することが可能な装置又はプログラムである。その擬似乱数生成ロジックは、例えば、線形合同法やメルセンヌ・ツイスター法等を用いて実現されるものである。もちろん、他のロジックを用いて擬似乱数を発生させてもよいし、或いは、所定の特殊な擬似乱数列を利用することも可能である。また、鍵配信サーバ102は、サーバ機能を備えたパーソナルコンピュータ(PC;Personal Computer)等の情報処理装置により構成することが可能である。例えば、鍵配信サーバ102は、ネットワーク10を介して各種の情報を外部装置に送信することが可能である。そして、鍵配信サーバ102は、複数の端末装置122にネットワーク10を介してコンテンツやコンテンツ鍵を配信することが可能である。
また、鍵配信サーバ102は、例えば、映像配信サービス、又は電子音楽配信サービス等のコンテンツ配信サービスを提供する機能を有していてもよい。例えば、鍵配信サーバ102は、映画、テレビジョン番組、ビデオプログラム、図表等の動画又は静止画から成る映像(Video)コンテンツ、音楽、講演、ラジオ番組等の音声(Audio)コンテンツ、ゲームコンテンツ、文書コンテンツ、又はソフトウェア等のコンテンツを配信することが可能である。但し、鍵配信サーバ102は、暗号化されたコンテンツに代えて、暗号化されたコンテンツ鍵を配信してもよい。例えば、外部装置により暗号化されたコンテンツが配信される場合に、鍵配信サーバ102は、コンテンツ鍵を暗号化して配信することで、コンテンツの管理と許諾契約者の管理とを分担することができる。
上記の技術を適用すると、鍵配信サーバ102は、所定の端末装置122だけにコンテンツの再生を許諾することができる。さらに、鍵配信サーバ102は、セット鍵の組合せを変更することにより、許諾した端末装置122の組合せを容易に変更することができる。
(端末装置122)
次に、端末装置122が有する機能について簡単に説明する。端末装置122は、ネットワーク10を介して鍵配信サーバ102から種々の情報を取得する。例えば、端末装置122は、暗号化されたコンテンツ及びコンテンツ鍵を取得する。また、端末装置122は、鍵配信サーバ102から提供される部分集合の情報を取得する。さらに、端末装置122は、自己が所属する部分集合のセット鍵を生成するのに必要な鍵と、そのセット鍵を生成するための有向グラフの情報とを保持していてもよい。尚、端末装置122は、その有向グラフを生成するためのアルゴリズムを保持していてもよい。端末装置122は、保持している有向グラフの情報、又は生成した有向グラフの情報に基づき、保持している鍵から所望のセット鍵を生成する。このとき、端末装置122は、擬似乱数生成器(PRSG)を利用してセット鍵を生成する。端末装置122は、生成したセット鍵を用いてコンテンツ鍵を復号し、その復号したコンテンツ鍵を用いてコンテンツを復号する。
尚、上記の端末装置122は、ネットワーク10を介して外部装置と通信することが可能な情報処理端末であり、例えば、PC、PDA(Personal Digital Assistant)、家庭用ゲーム機、DVD/HDDレコーダ、又はテレビジョン受像器等の情報家電、テレビジョン放送用のチューナやデコーダ、或いは、携帯型ゲーム機、携帯電話、携帯型映像/音声プレーヤ、PDA、又はPHS等であってもよい。
[鍵配信サーバ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)
まず、木構造設定部104の機能構成について説明する。木構造設定部104は、図4に示す論理二分木BTを生成する機能を有する。この論理二分木BTは、次のような構築方法により木構造設定部104により形成される。尚、以下の説明の中で、契約者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の場合である。
(論理二分木の形成)
葉ノードの数が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)が対応付けられている。そして、中間ノードvの末端には、l=1,r=4であるため、葉ノード1,…,4が位置している。例えば、葉ノード1,2,4の組合せは、中間ノードvの上位に位置する根ノードの集合(1→64)に含まれる部分集合[1,2]={1,2}と、中間ノードvの部分集合(2←4)に含まれる部分集合[4,4]={4}との組合せにより表現される。
上記の具体例からも推察される通り、論理二分木BTの根ノード及び各中間ノードに対応付けられる集合の部分集合を組み合わせることで、葉ノードを自由にグループ化して表現することが可能になる。つまり、複数の契約者の中から所定の契約者のみが含まれるグループを部分集合の組合せにより表現することができる。以下、論理二分木BT上の各ノードに対応付けられた集合全体を表す和集合をセットシステムSSと呼ぶことにし、下式(1)のように定義する。
Figure 2009124193
以上、本実施形態に係る木構造設定部104の機能構成について説明した。上記の通り、木構造設定部104は、論理二分木BT上の各ノードに所定の部分集合を対応付け、契約者のグループを当該部分集合の組合せにより表現する。次に、上記の各部分集合間の対応関係を規定する有向グラフの生成手段について説明する。
(座標軸設定部106)
次に、図5を参照しながら、座標軸設定部106の機能について説明する。座標軸設定部106は、有向グラフを形成するための複数の水平座標軸を設定する手段である。図5は、図4の論理二分木BTに対応する有向グラフHを示した説明図である。
まず、座標軸設定部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は、AI方式の有向グラフを形成するために用いる複数の水平座標軸を生成する。次に、水平座標軸上に有向グラフを形成する方法について説明する。
(有向グラフ生成部110)
次に、有向グラフ生成部110の機能構成について説明する。有向グラフ生成部110は、各水平座標軸上に有向グラフHを形成する手段である。
まず、有向グラフ生成部110は、パラメータk(kは整数)を設定する。次いで、有向グラフ生成部110は、条件n(x−1)/k<r−l+1≦nx/kを満たす整数xを決定する。但し、k|log(n)(以下、logの底は2)と仮定する。また、パラメータkは、端末装置122が保持すべき中間鍵の個数、及びセット鍵を生成するのに必要な計算量に関係するため、鍵配信システム100の構成に応じて決定されるパラメータである。
次いで、有向グラフ生成部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(…))はグラフH(…)に含まれる有向枝の集合を表す。
Figure 2009124193
以上、有向グラフ生成部110の機能について説明した。上述のようにして、AI方式の有向グラフHが形成される。
(有向グラフの具体例)
ここで、図5を参照しながら、有向グラフの構成について簡単な説明を加える。
有向グラフH(33→63)を例に挙げると、有向グラフH(33→63)は、複数のアーチ状の曲線と、各アーチ状の曲線の一端に接続されて水平方向に延伸した直線とにより構成される。このアーチ状の曲線と水平方向に延伸した直線とが有向枝である。直線は長さ1の有向枝を表し、曲線は長さ2以上の有向枝を表しているが、直線であるか曲線であるかという違いは表記上の問題であり本実施形態が有する技術的な本質部分とは無関係である。また、有向グラフH(33→63)の中央上側に表示された白抜きの矢印は有向枝の方向を示している。そして、最下段に描かれた黒丸は、左から順に有向グラフH(2←2),…,H(63→63)を表している。
また、図5には、有向グラフH(33→63)の他にも、論理二分木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]の座標点を表す。以下、これらの表現を用いる。
(鍵生成部114)
次に、鍵生成部114の機能について説明する。鍵生成部114は、上記の有向グラフHに基づいて中間鍵又はセット鍵を生成する手段である。尚、以下の説明の中で、部分集合Sが対応付けられた座標点のことを単に座標点Sと表記する場合がある。また、次に示す数学的な表現を用いる場合がある。
(定義)
部分集合Sに対応する中間鍵 : t(S
部分集合Sに対応するセット鍵 : k(S
コンテンツ鍵 : mek
擬似乱数生成器 : PRSG
有向枝の集合 : E
有向パス : P
鍵生成部114は、例えば、セット鍵を生成するために擬似乱数生成器PRSGを用いる。鍵生成部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 2009124193
擬似乱数生成器PRSGは、水平座標軸上の座標点Sに対応する中間鍵t(S)が入力されると、AI方式の有向グラフ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)とを取得することができる。
例えば、有向グラフ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)とが生成される。
鍵生成部114は、有向グラフHに基づいて上記の擬似乱数生成演算を繰り返し実行することで、複数の有向枝により連絡された複数の座標点に対応するセット鍵を導出することができる。以下、複数の有向枝により構成される2つの座標点間の経路を有向パスPと呼ぶことにする。
ところで、安全性に格段の注意を払わなくてもよい場面、又はセット鍵生成のための演算量を減らしたい場合には、有向グラフHに基づいてセット鍵k(S)から別のセット鍵k(S),…,k(S)を算出することが可能な擬似乱数生成器PRSGを採用してもよい。この場合、セット鍵k(S)が擬似乱数生成器PRSGに入力されると、座標点Sから伸びる有向枝の到達先に対応するセット鍵k(S),k(S),k(S),…,k(S)が出力される。
(初期中間鍵設定部112)
次に、初期中間鍵設定部112の機能について説明する。初期中間鍵設定部112は、鍵配信サーバ102が所要のセット鍵を生成するために保持すべき中間鍵を設定する手段である。
上記の通り、鍵生成部114は、上記の擬似乱数生成器PRSGを反復して実行することにより、入力する中間鍵t(S)に対応する座標点Sを始点とする有向パスが到達可能な全ての座標点に対応するセット鍵を生成することができる。そのため、鍵配信サーバ102は、鍵生成部114により、論理二分木BTを構成する根ノードと中間ノードとに対応付けられた全ての集合に含まれる部分集合のセット鍵を生成する際に、少なくとも、各集合の有向グラフHの始点に対応する座標点(以下、ルートと呼ぶ)の中間鍵を保持していればよい。
そこで、初期中間鍵設定部112は、各有向グラフHのルートに対応する中間鍵を生成する。例えば、初期中間鍵設定部112は、鍵配信システム100をセットアップする際にλビットの乱数を生成し、各有向グラフHのルートに対応する中間鍵として設定する。なお、有向グラフHのルートとは、その座標点から有向枝が出ているが、その座標点に到達する有向枝がない座標点として定義される。有向グラフH(1→64)の場合、座標点[1,1]が有向グラフH(1→64)のルートである。但し、グラフH(3→3)のように座標点が1つだけのグラフについては、有向枝は出ていないが、その座標点をルートと考える。
(部分集合決定部120)
部分集合決定部120は、コンテンツ鍵の暗号化に用いるセット鍵を決定する手段である。部分集合決定部120は、コンテンツの再生を許可する契約者(以下、許諾契約者)を含む少なくとも1つの部分集合を抽出し、各契約者に配布されるセット鍵の種類(即ち、対応する部分集合)を決定する。例えば、部分集合決定部120は、コンテンツの再生を許可しない契約者(以下、排除契約者)の集合(R)と、全ての契約者の集合(N)から排除契約者の集合(R)を除外した許諾契約者だけの集合(N\R)とを決定する。次いで、部分集合決定部120は、セットシステムSSに含まれる部分集合を用いて、許諾契約者の集合(N\R)を和集合(N\R=S∪S∪…∪S)により形成可能な部分集合の組(S,S,…,S)を決定する。このとき、部分集合の数mは小さい方が好ましい。
(暗号化部116)
次に、暗号化部116の機能について説明する。暗号化部116は、セット鍵を用いてコンテンツ鍵を暗号化して暗号文を生成する。暗号化部116は、セットシステムSSを構成する全ての部分集合のうち、所定の部分集合に対応する複数のセット鍵を用いてコンテンツ鍵を暗号化する。このとき、暗号化部116は、鍵生成部114により生成された全てのセット鍵を用いてコンテンツ鍵を暗号化してもよいが、部分集合決定部120により決定された部分集合の組(S,S,…,S)に対応するセット鍵k(S),k(S),…,k(S)を用いてコンテンツ鍵を暗号化してもよい。また、暗号化部116は、コンテンツ鍵を用いてコンテンツを暗号化する。
(通信部118)
次に、通信部118の機能構成について説明する。通信部118は、主にシステムセットアップ時において、有向グラフHに基づいて所定の中間鍵を各契約者に配信する。このとき、通信部118は、各契約者が、自身が含まれる部分集合のセット鍵を全て導出するのに必要な中間鍵を全て配信する。また、システム運用時において、通信部118は、暗号化部116により暗号化されたコンテンツ又はコンテンツ鍵を全ての契約者に対して配信する。また、通信部118は、有向グラフの一部又は全部を生成するための情報を各契約者に配信する。さらに、通信部118は、許諾契約者の集合(N\R)、又は許諾契約者の集合(N\R=S∪S∪…∪S)に関する情報(例えば、部分集合(S,S,…,S)の情報)を各契約者に配信する。
以上、AI方式の鍵配信サーバ102の機能構成について説明した。
[鍵配信方法]
次に、図6及び図7を参照しながら、AI方式の鍵配信サーバ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の配信方法について説明した。この配信方法によると、各許諾契約者がセット鍵を生成するために必要な中間鍵を効率的に配信することが可能になる。
[コンテンツ鍵の復号方法]
次に、図8を参照しながら、端末装置122による暗号化されたコンテンツ鍵mekの復号処理について説明する。図8は、端末装置122によるコンテンツ鍵の復号処理の流れを示す説明図である。
図8に示すように、端末装置122は、鍵配信サーバ102からm個の暗号化されたコンテンツ鍵mekと、集合N\Rを表す情報又はm個の部分集合S(i=1,2,・・・,m)を表す情報とを取得する(S120)。次いで、端末装置122は、自身が含まれる部分集合Sを検索し(S122)、自身がm個の部分集合Sのいずれかに含まれているか否かを判断する(S124)。自身が含まれる部分集合Sが存在する場合、端末装置122は、擬似乱数生成器PRSGを利用して、その部分集合Sに対応するセット鍵k(S)を導出する(S126)。次いで、端末装置122は、導出したセット鍵k(S)を用いて暗号化されたコンテンツ鍵mekを復号する(S128)。一方、自身がいずれの部分集合Sにも含まれない場合、端末装置122は、自身が排除契約者である旨を表示出力し(S130)、コンテンツ鍵の復号処理を終了する。
上記の通り、端末装置122は、鍵配信サーバ102から取得した集合N\R又はm個の部分集合Sの情報と、m個の暗号化されたコンテンツ鍵k(S)とに基づいてコンテンツ鍵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)。
以上、AI方式の有向グラフHの生成方法について説明した。
[本実施形態に係る鍵設定方法]
さて、上記のAI方式による有向グラフHの生成方法、及び鍵配信方法等を踏まえ、本実施形態に係る鍵設定方法について説明する。上述のように、本実施形態に係る鍵設定方法は、AI方式の技術に階層化IDベース暗号化(HIBE)方式の技術的思想を取り込み、公開鍵暗号方式に拡張したものである。但し、HIBE方式をAI方式に融合することは容易ではなく、この拡張を実現するためには工夫が必要とされる。以下、この技術的特徴部分を中心に説明する。
(情報処理装置150の機能構成)
まず、図10を参照しながら、本実施形態に係る情報処理装置150の機能構成について説明する。図10は、本実施形態に係る情報処理装置150の機能構成を示す説明図である。尚、この情報処理装置150は、上記技術的特徴部分を実現するための設定装置であり、上記の鍵配信サーバ102内に設置されてもよいし、或いは、別体として構成されていてもよい。
図10に示すように、情報処理装置150は、主に、パラメータ設定部152と、秘密情報保持部154と、鍵設定部156と、有向グラフ情報取得部158と、識別子設定部160と、鍵配信部162と、暗号化部164と、通信部166とにより構成される。
(パラメータ設定部152)
パラメータ設定部152は、有向グラフHの各ノードに割り当てる識別子(ID)を決定するためのパラメータを設定する手段である。まず、パラメータ設定部152は、鍵配信サーバ102と同様にパラメータn、λ、kを設定する。次いで、パラメータ設定部152は、位数q(qは素数)の乗法群G及びGを設定する。次いで、パラメータ設定部152は、下記で定義される双線形マップe:G×G→Gを設定する。
(双線形マップeの定義)
(1)双線形性(Bilinear)を有する。つまり、任意のP,Q∈G、任意のa,b∈Zに対して、e(P,Q)=e(P,Q)abが成り立つ。
(2)非縮退性(Non−degenerate)を有する。つまり、PがGの生成元であるならばe(P,P)はGの生成元となる。
(3)計算可能性(Computable)を有する。つまり、任意のP,Q∈Gに対して、e(P,Q)を計算できる効率的なアルゴリズムが存在する。
次いで、パラメータ設定部152は、乗法群Gに属する任意の生成元g、ランダムな値α∈Z を設定する。次いで、パラメータ設定部152は、g=gαなるgを設定する。次いで、パラメータ設定部152は、ランダムな値g,g,h,…,h∈Gを設定する。但し、lは、AI方式における有向グラフH内で最大の有向枝の長さ(2k−1)(n1/k−1)に1を加えた数l=(2k−1)(n1/k−1)+1である。次いで、パラメータ設定部152は、g αを秘密情報保持部154に保存する。また、パラメータ設定部152は、上記の設定したパラメータのうち、公開するパラメータ(以下、HIBE公開パラメータ;式(4)を参照)HIBE−paramsを通信部166に入力し、通信部166又は他の手段を介して公開する。また、上記の各パラメータは、鍵設定部156に入力される。
Figure 2009124193
(識別子設定部160)
識別子設定部160は、有向グラフ情報取得部158により取得されたAI方式の有向グラフHに関する情報に基づき、有向グラフH、及び有向グラフHの各ノードに識別子を割り当てる手段である。
ここで、図11を参照しながら、識別子の割り当て方法について説明する。図11は、本実施形態に係る識別子の割り当て方法を示す説明図である。図11の例は、n=16,k=4,n1/k=2の場合におけるAI方式の有向グラフHに識別子を割り当てる方法を示したものである。
図11には、16個の有向グラフHが記載されている。また、各有向グラフHは、その始点と交わる縦線の番号が各々異なっているため、この番号により特定可能である。例えば、有向グラフH(1→16)は、1という番号で特定される。同様に、有向グラフH(2←16)は、16という番号で特定される。そこで、識別子設定部160は、各有向グラフHの始点と交わる縦線の番号を始点ノードの識別子(以下、第1識別子)に設定する。この第1識別子により、各有向グラフHが特定される。例えば、有向グラフH(2←16)の始点ノード[16,16]を示す第1識別子は16である。以下、識別子を(…)と表現する。
次いで、識別子設定部160は、有向グラフHについて、あるノードを識別するために、そのノードと親ノードとを結ぶ有向枝の長さを用いて識別子を表現する。例えば、識別子設定部160は、有向枝の長さがn1/kの何乗であるかという情報(以下、第2識別子)を上記の第1識別子に付加して各ノードの識別子を設定する。図12の例を参照すると、有向グラフH(1→16)の始点ノード[1,1]には、1つの子ノード[1,2]があり、[1,1]と[1,2]とを結ぶ有向枝の長さがn1/k=2であるため、子ノード[1,2]の識別子は、第1識別子と第2識別子とを用いて(1,0)と表現される。
この識別子の設定方法をより詳細に示したのが図12である。図12は、有向グラフH(1→16)の一部を抽出したものである。図12のA点を参照すると、A点からは、B点、C点、E点に有向枝が延びている。また、C点からはD点に有向枝が延びている。
A点の識別子が(1,0,1)であるため、B点の識別子は、AB間の有向枝の長さ2に基づき、(1,0,1,0)となる。同様に、C点の識別子は(1,0,1,1)、E点の識別子は(1,0,1,2)となる。D点の識別子は、その親ノードであるC点の識別子(1,0,1,1)に0(有向枝の長さ2であるため)を付加して(1,0,1,1,0)となる。
再び図10を参照する。識別子設定部160は、上記の方法により、全ての有向グラフHの全てのノードに対して識別子を設定する。識別子設定部160は、全ての識別子を設定すると、この識別子の割り当てルールを通信部166又は他の手段を介して公開する。
尚、識別子IDがID=(I,…,I)と表現される場合、1番目の要素IはI∈{1,2,…,n}であり、2番目以降の要素I(2≦w≦W)はI∈{0,1,,k−1}である。また、有向グラフH上のどのノードも(2k−1)(n1/k−1)個以下の有向枝で形成可能であるため、W≦l=(2k−1)(n1/k−1)+1となる。さらに、位数qを大きく設定することにより、I∈Zとなる。
(鍵設定部156)
鍵設定部156は、パラメータ設定部152により設定されたパラメータ、及び識別子設定部160により設定された識別子の情報に基づいて各部分集合に対応する鍵を導出する手段である。まず、鍵設定部156は、ランダムな値y∈Zを設定する。次いで、鍵設定部156は、有向グラフHの始点ノードに対応する部分集合の鍵k(S(I1))を次のように導出する(式(5)を参照)。
Figure 2009124193
次いで、鍵設定部156は、各有向グラフHの他のノードに対応する部分集合の鍵を設定する。例えば、識別子ID=(I,…,Iw−1)で表現されるノードについて、このノードに対応する部分集合の鍵がk(S(I1,…,Iw−1))=(a,a,b,…,b)である場合、識別子ID=(I,…,I)で表現される子ノードの鍵k(S(I1,…,Iw))は、ランダムな値y’∈Zを用いて次のように導出される(式(6)を参照)。
Figure 2009124193
尚、情報処理装置150内では、鍵設定部156が子ノードの鍵導出処理を実行する。しかし、端末装置122内でも、あるノードの鍵から子ノードの鍵を導出することができる。一方、各有向グラフHの始点ノードの鍵は、パラメータg αを知っている情報処理装置150にしかできない。また、子ノードの鍵を導出する際に用いるパラメータy’は、端末装置122間、或いは、端末装置122と情報処理装置150との間で異なっていてもよい。
(鍵配信部162)
鍵配信部162は、鍵設定部156により設定された各部分集合の鍵を端末装置122に配信する手段である。まず、鍵配信部162は、ユーザuが属する部分集合を要素にもつ有向グラフHを全て抽出する。有向グラフHの始点ノードに対応する部分集合にユーザuが含まれる場合、鍵配信部162は、その有向グラフHのルートに対応する部分集合の鍵のみをユーザuの端末装置122に提供する。
一方、有向グラフHの始点ノード以外のノードに対応する部分集合にユーザuが含まれる場合、鍵配信部162は、ユーザuが含まれる部分集合Sであって、その親ノードの部分集合parent(S)にユーザuが含まれないような部分集合Sを抽出する。そして、鍵配信部162は、抽出した部分集合Sの鍵k(S)をユーザuの端末装置122に提供する。尚、1つの有向グラフHに複数の部分集合Sが存在する場合、各部分集合Sの鍵をユーザuの端末装置122に提供する。
図11の場合(n=16,k=4)、例えば、ユーザ1が有向グラフH(1→16)の始点ノードの部分集合[1,1]=S(1)に属しているため、鍵配信部162は、ユーザ1に対して部分集合[1,1]の鍵k([1,1])=k(S(1))のみを提供する。また、ユーザ3は、ユーザ3が有向グラフH(1→16)、H(2←16)、H(2←8)、H(2←4)、H(3→3)に属している。例えば、有向グラフH(1→16)を参照すると、ユーザ3が属している部分集合の中で、その親ノードの部分集合にユーザ3が属していない部分集合が2つ存在する([1,3]=S(1,0,0)、[1,4]=S(1,0,1))。そのため、鍵配信部162は、有向グラフH(1→16)に関し、ユーザ3の端末装置122に対して2つの部分集合の鍵を提供する。鍵配信部162は、他の有向グラフHに関し、同様に、部分集合の鍵を提供する。この例の場合、鍵配信部162は、ユーザ3の端末装置122に対して合計5個の鍵を提供する。
(暗号化部164)
再び図10を参照する。暗号化部164は、コンテンツ鍵mek又は他の情報を暗号化して暗号文を生成する手段である。まず、暗号化部164は、ランダムな値s∈Zを設定する。M=mek、M∈G、配信対象(鍵)の部分集合の識別子ID=(I,…,I)である場合、暗号化部164は、次のようにして暗号文CTを出力する(式(7)を参照)。暗号化部164は、配信対象となる各部分集合に対して同様に暗号文CTを出力する。そして、出力された暗号文は、部分集合の情報と共に、通信部166又は他の手段を介してユーザに提供される。
Figure 2009124193
以上、本実施形態に係る情報処理装置150の機能構成について説明した。尚、本実施形態に係る技術は、情報処理装置150の機能構成に主な特徴を有するが、鍵配信サーバ102の機能と組み合わせて実現される。
[鍵設定処理の流れ]
ここで、図13を参照しながら、本実施形態に係る鍵設定処理の流れについて簡単に説明する。図13は、本実施形態に係る鍵設定処理の流れを示す説明図である。
図13に示すように、公開パラメータとして、n,λ,k,HIBE−paramsが設定されて公開される(S302)。次いで、セットシステムSSが設定されて公開される(S304)。次いで、有向グラフHが設定(生成)され、当該有向グラフHの各ノードに識別子が設定されて公開される(S306)。次いで、各部分集合に対応する鍵が設定(導出)される(S308)。次いで、各ユーザの端末装置122に対して所定の鍵が提供(送信)される(S310)。以上の流れに従って鍵設定処理が実行される。
[鍵配信処理の流れ]
ここで、図14を参照しながら、本実施形態に係る鍵配信処理の流れについて簡単に説明する。図14は、本実施形態に係る鍵配信処理の流れを示す説明図である。
図14に示すように、排除契約者の集合R、及び許諾契約者の集合N\Rが設定される(S322)。次いで、和集合が許諾契約者の集合N\Rと一致するm個の部分集合Sを設定する(S324)。次いで、コンテンツ鍵mekが設定され、設定された各部分集合Siについて暗号文が生成される(S326)。次いで、許諾契約者の集合N\R又は各部分集合Siの情報とm個の暗号文が送信される(S328)。以上の流れに従って鍵配信処理が実行される。
[復号処理について]
ここで、本実施形態に係る復号処理について説明する。本実施形態に係る復号処理は、AI方式と類似しているが、自身が所属する部分集合を検出した後に、その部分集合に対応する鍵を導出する方法と、その部分集合の鍵を用いて暗号文を復号する方法とが異なる。
あるユーザの端末装置122は、配信対象となる部分集合の中に自身が所属する部分集合Siを検出すると、その部分集合Siに対応する鍵k(Si)を導出する。但し、その鍵k(Si)が予め端末装置122に提供されている場合もある。その場合、端末装置122は、予め提供された鍵k(Si)を用いて暗号文を復号すればよい。一方、予め鍵k(Si)が提供されていない場合、端末装置122は、以下の手順で鍵k(Si)を導出する。
部分集合Siの識別子IDが(I,…,I)である場合、端末装置122は、ID=(I,…,I)(w≦W)の鍵を予め与えられている。尚、w=Wの場合、所望の鍵k(Si)を既に保持していることになる。そこで、端末装置122は、上記の式(6)に従い、ID=(I,…,I)(w≦W)の鍵を用いて(I,…,I,Iw+1)の鍵を導出する。端末装置122は、この導出処理を繰り返すことで(I,…,I)の鍵k(Si)を導出する。
鍵k(Si)を導出すると、端末装置122は、この鍵k(Si)を用いて暗号文を復号する。まず、端末装置122は、値z∈Zを設定する。次のように鍵k(Si)(式(8)参照)、暗号文CT(式(9)参照)を表現すると、端末装置122は、式(10)を用いて暗号文を復号し、コンテンツ鍵M=mekを導出することができる。
Figure 2009124193
[共通鍵方式と公開鍵方式の選択について]
上記のように、本実施形態の技術を適用することで、公開鍵暗号方式のブロードキャスト・エンクリプション方式が実現される。但し、本実施形態に係る技術は、共通鍵暗号方式を基盤としているため、状況に応じて共通鍵暗号方式と公開鍵暗号方式とを選択的に利用してもよい。
例えば、次のようなケースが考えられる。いま、一人の先生と複数の生徒により構成されるエンティティが互いにネットワークで接続されたクラスを考えてみよう。生徒は、何人かずつグループに分けられている。また、先生が配布した試験問題の解答をグループごとに協議して作成する状況にあるとしよう。但し、先生は信頼できるものとし、生徒が保持する鍵を知ることができると仮定する。先生が生徒に試験問題を配布する場合には、AI方式等のような共通鍵暗号方式のブロードキャスト・エンクリプション方式を利用すればよい。もちろん、公開鍵暗号方式のブロードキャスト・エンクリプション方式を利用してもよいが、共通鍵暗号方式よりも多くの計算が必要になってしまう。
では、グループ内の生徒間で試験問題の解答を協議したい場合はどうであろうか。この場合、グループ内の生徒が解答ファイルを作成又は編集し、再度グループ内の生徒間で共有することになるであろう。この場合、共通鍵暗号方式を採用すると、生徒一人一人が他人の鍵を知ってしまっても良い程に信用できることが必要である。もちろん、この要求を実現するのは難しい場合が多い。こうした場合には、公開鍵暗号方式のブロードキャスト・エンクリプション方式が適している。公開鍵暗号方式であれば、送信者が受信者の秘密鍵を知る必要がないからである.
このように、目的又は状況に応じて共通鍵暗号方式と公開鍵暗号方式とが使い分けられる方が良い。その点、本実施形態は、共通鍵暗号方式の技術を基盤とし、公開鍵暗号方式に拡張したものであるため、両方式間の切り替えが容易に実現可能であり、共通鍵暗号方式の装置と公開鍵暗号方式の装置とを独立に用意することに比べて装置構成を簡略化することができる。例えば、有向グラフの設定や各ユーザが所属する部分集合の設定等を共通化できるため、全体として実装コスト等を削減することが可能になる。
[鍵配信システム100の応用例]
ここで、図15及び図16を参照しながら、上記の各実施形態に係る鍵配信システム100の応用例について簡単に説明する。
(応用例1)
まず、鍵配信システム100の一応用例として、放送暗号化システム800の構成について説明する。図15は、放送衛星を用いた放送暗号化システム(Broadcast Encryption System)800の構成を示す説明図である。
図15を参照すると、放送暗号化システム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を介して放送されたデータを受信する。なお、図15に示すように、放送暗号化システム800には複数の受信機810が含まれていてもよく、その場合、管理センタ804は、複数の受信機810から成る受信機グループに対してデータを配信する。このとき、管理センタ804は、認証された受信機810のみがデータを復号できるように放送データを暗号化して配信する。
以上、鍵配信システム100の一応用例である放送暗号化システム800について説明した。図15では、衛星放送の例を挙げたが、放送暗号化システム800は、例えば、ケーブルテレビジョンやコンピュータネットワーク等の他の放送チャンネルを利用した暗号化システムに対しても容易に応用することが可能である。
(応用例2)
次に、鍵配信システム100の他の応用例として、放送暗号化システム900の構成について説明する。図16は、記録媒体を用いた放送暗号化システム900の構成を示す説明図である。
図16を参照すると、放送暗号化システム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について説明した。図16では、記録媒体906を介して暗号テキスト等のデータを契約者に提供する手段を例に挙げて説明した。このように、本発明に係る鍵配信サーバ及び端末装置は、実施形態に応じて、各種情報の配布手段に関する構成を変更することが可能である。
<第2実施形態>
以下、図面を参照しながら、本発明の第2実施形態に係る鍵配信システム100の構成、及び鍵配信に係る具体的な方式について詳細に説明する。但し、上記の第1実施形態に係る鍵配信システム100と実質的に同一の構成要素については同一の符号を付することにより重複する説明を省略し、相違する構成要素について詳細に説明する。
[第2実施形態の特徴]
ここで、本発明の第2実施形態と上記の第1実施形態とを対比して説明することで両実施形態の相違点を明確にし、当該第2実施形態の特徴を明らかにする。まず、上記の第1実施形態と本実施形態との最大の相違点は、基盤とする鍵配信方式の違いである。上記の第1実施形態がAI方式を基盤とするのに対し、本実施形態はRC方式に適用する点が異なる。
(AI方式とRC方式との対比)
そこで、AI方式とRC方式との相違点について簡単に説明し、RC方式の特徴を明確にする。AI方式とRC方式との違いは、鍵生成に要する計算量にあることは本稿の冒頭で既に述べた。具体的には、次の通りである。
上記の第1実施形態の説明において述べた通り、AI方式では、論理二分木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を算出すると、各契約者が保持すべき鍵数の上限は、下式(11)により表現することができる。その結果、AI方式では、各契約者の計算量が依然として大きいというのが一つの問題である。
Figure 2009124193
次に、各契約者がセット鍵を生成する際に必要な計算量について考察する。各契約者に要求される計算量を決める支配的な要因は、所望の中間鍵を生成するのに要するPRSGの演算回数にある。この最悪値は、有向グラフHのルートから最も遠いリーフ(有向枝が出ていない座標点)に至る有向パスに含まれる有向枝の本数により表現される。この最悪値が最大になるのは、有向グラフH(1→n)の座標点[1,1]から[1,n]に至る有向パスである。いま、t=n1/k−1とおき、距離bのジャンプ(有向枝に相当)をa回連続して実行する処理をJ(a,b)と表現すると、この有向パスは、下式(12)のように表現される。尚、PRSGを利用しない方式であっても同様である。
Figure 2009124193
つまり、この有向パスを構成する有向枝の数(ジャンプの回数)は、下式(13)となる。例えば、契約者数n=64、パラメータk=6の場合、有向グラフH(1→64)の座標点[1,1]から[1,64]に達する有向パスには、11本の有向枝が存在する。結局、AI方式では、この有向枝数が多いため、各契約者が実行すべきジャンプの回数、即ち計算量が依然として多いというのがもう一つの問題である。
Figure 2009124193
これに対し、RC方式では、有向グラフをより長い有向枝により構成するように改良した点に特徴を有する。例えば、図18にRC方式の有向グラフIを示したが、図5に示したAI方式の有向グラフHに比べて、長さがより長い有向枝が含まれていることが容易に分かる。もちろん、これらの有向グラフは、いずれも同じ論理二分木BTに基づいて構成されており、契約者数n及びパラメータkも同じである。その結果、RC方式を適用すると、AI方式に比べて各契約者に要求される計算量を削減できることが直感的にも明らかである。
そこで、上記の式(12)と同様に、RC方式の有向グラフI(1→n)の座標点[1,1]から[1,n]に至る有向パスを表現すると、下式(14)のように表される。但し、J(a,b)の定義はAI方式と同じである。
Figure 2009124193
従って、この有向パスを構成する有向枝数(ジャンプ回数)は、k*(n1/k−1)となり、AI方式の(2k−1)*(n1/k−1)に比べて約半分程度に減少していることが分かる。このように、RC方式を適用することにより、各契約者に要求される計算量を大きく減少させることが可能である。本実施形態は、上記の第1実施形態と同様に、共通鍵方式であるRC方式を公開鍵方式に拡張する技術に特徴がある。また、本実施形態は、主に第1実施形態におけるAI方式の有向グラフHをRC方式の有向グラフIに変更した点が相違する。そこで、以下の説明では、この相違点を中心に説明する。
[鍵配信システム100の構成]
ここで、本実施形態に係る鍵配信システム100の構成について説明する。但し、基本的なシステム構成は、図1に示した第1実施形態の構成と実質的に同一であるため、その詳細な説明を省略する。また、本実施形態に係る鍵配信システム100に含まれる鍵配信サーバ202のハードウェア構成についても、図2に示した鍵配信サーバ102のハードウェア構成と実質的に同一であるため、その詳細な説明を省略する。
[鍵配信サーバ202の機能構成]
そこで、図17を参照しながら、本実施形態に係る鍵配信サーバ202の機能構成について説明する。図17は、鍵配信サーバ202の機能構成を示す説明図である。
図17に示すように、鍵配信サーバ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は、RC方式の有向グラフ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は、端末装置122が保持すべき中間鍵の個数、及びセット鍵を生成するのに必要な計算量に関係する量である。
次いで、有向グラフ生成部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は、下式(15)の処理を実行して集合(1→n)の有向グラフH(1→n)を生成する。但し、E(…)は有向枝の集合を表す。
Figure 2009124193
以上、有向グラフ生成部210の機能構成について説明した。上記の構成により、有向グラフ生成部210は、図18又は図19のようなRC方式の有向グラフIを形成することができる。
[有向グラフIの生成方法]
ここで、図20を参照しながら、有向グラフIの生成方法について説明する。図20は、有向グラフ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の機能構成について説明した、上記の構成により、RC方式の有向グラフIを生成することが可能である。図18及び図19に有向グラフIの例を示した。図18は、契約者数n=64、パラメータk=6の条件下で生成された有向グラフIを示す説明図である。一方、図19は、契約者数n=64、パラメータk=3の条件下で生成された有向グラフIを示す説明図である。また、契約者数n=16、パラメータk=4の場合、図21のようになる。
さて、既に述べた通り、本実施形態は、上記の第1実施形態が対象とする基盤技術をRC方式に置き換えた技術である。従って、第1実施形態の情報処理装置150に係る技術をRC方式の有向グラフIに適用させることで、RC方式を公開鍵暗号方式に拡張することができる。そこで、本実施形態に係る情報処理装置150の機能構成については詳細な説明を省略し、本実施形態に係る鍵設定処理の流れ、及び鍵配信処理の流れについてのみ簡単に説明する。尚、第1実施形態の情報処理装置150に係る技術をRC方式の有向グラフIに適用すると、例えば、図21に示すような有向グラフI、及び各ノードに対応する識別子が設定される。
[鍵設定処理の流れ]
ここで、図22を参照しながら、本実施形態に係る鍵設定処理の流れについて簡単に説明する。図22は、本実施形態に係る鍵設定処理の流れを示す説明図である。
図22に示すように、公開パラメータとして、n,λ,k,HIBE−paramsが設定されて公開される(S502)。次いで、セットシステムSSが設定されて公開される(S504)。次いで、有向グラフIが設定(生成)され、当該有向グラフIの各ノードに識別子が設定されて公開される(S506)。次いで、各部分集合に対応する鍵が設定(導出)される(S508)。次いで、各ユーザの端末装置122に対して所定の鍵が提供(送信)される(S510)。以上の流れに従って鍵設定処理が実行される。
[鍵配信処理の流れ]
ここで、図23を参照しながら、本実施形態に係る鍵配信処理の流れについて簡単に説明する。図23は、本実施形態に係る鍵配信処理の流れを示す説明図である。
図23に示すように、排除契約者の集合R、及び許諾契約者の集合N\Rが設定される(S522)。次いで、和集合が許諾契約者の集合N\Rと一致するm個の部分集合Sを設定する(S524)。次いで、コンテンツ鍵mekが設定され、設定された各部分集合Siについて暗号文が生成される(S526)。次いで、許諾契約者の集合N\R又は各部分集合Siの情報とm個の暗号文が送信される(S528)。以上の流れに従って鍵配信処理が実行される。
<第3実施形態>
以下、図面を参照しながら、本発明の第3実施形態に係る鍵配信システム100の構成、及び鍵配信に係る具体的な方式について詳細に説明する。但し、上記の第1実施形態に係る鍵配信システム100と実質的に同一の構成要素については同一の符号を付することにより重複する説明を省略し、相違する構成要素について詳細に説明する。
[第3実施形態の特徴]
ここで、本発明の第3実施形態と上記の第1実施形態との相違点について簡単に説明する。まず、上記の第1実施形態と本実施形態との最大の相違点は、基盤とする鍵配信方式の違いである。上記の第1実施形態がAI方式を基盤とするのに対し、本実施形態はRS方式に適用する点が異なる。AI方式が抱える問題については、上記の第2実施形態に関する説明の中で詳細に説明したが、その一つである各契約者が保持すべき鍵数が大きいという問題について解決手段を提供するのがRS方式である。RS方式は、AI方式の有向グラフHにおいて有向パスを構成する有向枝数が最大となる最長有向パスの有向枝数を超えないという条件の下、有向グラフを構成する有向枝の長さを短く置換する構成に特徴を有する。つまり、RS方式は、AI方式と同程度の演算量を維持しながら、各契約者が保持すべき鍵数を削減しているのである。
[鍵配信システム100の構成]
まず、本実施形態に係る鍵配信システム100の構成について説明する。但し、基本的なシステム構成は、図1に示した第1実施形態の構成と実質的に同一であるため、その詳細な説明を省略する。また、本実施形態に係る鍵配信システム100に含まれる鍵配信サーバ302のハードウェア構成についても、図2に示した鍵配信サーバ102のハードウェア構成と実質的に同一であるため、その詳細な説明を省略する。
[鍵配信サーバ302の機能構成]
そこで、図24を参照しながら、本実施形態に係る鍵配信サーバ302の機能構成について説明する。図24は、本実施形態に係る鍵配信サーバ302の機能構成を示す説明図である。
図24に示すように、鍵配信サーバ302は、主に、木構造設定部104と、座標軸設定部106と、仮有向グラフ生成部308と、有向グラフ生成部310と、初期中間鍵設定部112と、鍵生成部114と、暗号化部116と、通信部118と、部分集合決定部120とにより構成される。但し、本実施形態の特徴的な構成は、主に、仮有向グラフ生成部308、及び有向グラフ生成部310であり、他の構成要素については、第1実施形態に係る鍵配信サーバ102の構成要素と実質的に同一である。従って、仮有向グラフ生成部308、及び有向グラフ生成部310の機能構成のみについて詳細に説明する。
(仮有向グラフ生成部308)
まず、仮有向グラフ生成部308の機能構成について説明する。仮有向グラフ生成部308は、上記の第1実施形態に係る有向グラフ生成部110と実質的に同一の機能構成を有し、AI方式の有向グラフHと同じ形状を有する仮有向グラフI’を生成する機能を有する。例えば、n=64、パラメータk=6の場合、仮有向グラフI’は、図5に示す有向グラフHと一致する。
(有向グラフ生成部310)
次に、有向グラフ生成部310について説明する。有向グラフ生成部310は、仮有向グラフI’を構成する複数の有向枝の一部を置換して有向グラフIを生成する機能を有する。まず、有向グラフ生成部310は、仮有向グラフI’に含まれる有向パスのうち、それを構成する有向枝数が最大の有向パスを選択する。その有向パスを最長有向パスLP(Longest Path)と呼ぶことにする。そして、有向グラフ生成部310は、全ての有向パスの有向枝数が最長有向パスLPの有向枝数を超えないという条件の下で、仮有向グラフI’に含まれる一部の有向パスをより短い複数の有向枝の鎖で構成される有向パスに置換することで、有向グラフIを生成する。
(有向グラフIの生成方法)
まず、図25〜図29を参照しながら、有向グラフIの生成方法について説明する。図25は、有向グラフIを生成する処理の全体的な流れを示した説明図である。図26は、仮有向グラフI’の生成処理を示した説明図である。図27は、最長有向パスLPを抽出する処理の流れを示した説明図である。図28は、最長有向パスLP以外の有向パスの中から最長の有向パスPLP(Pertially Longest Path)を抽出する処理の流れを示した説明図である。図29は、仮有向グラフI’の有向パスをより短い有向枝の組で構成される有向パスに置換する処理を示した説明図である。
図25に示すように、まず、仮有向グラフ生成部308により、仮有向グラフI’が生成される(S140)。次いで、仮有向グラフI’を形成する有向パスの中から最長有向パスLPが抽出される(S142)。次いで、仮有向グラフI’の最長有向パスLP以外の有向パスの中から最長の有向パスPLPが抽出される(S144)。尚、各部分集合に対応する仮有向グラフI’について最長の有向パスPLPが抽出されてもよい。次いで、仮有向グラフI’の有向パスを構成する有向枝がより短い有向枝に置換される(S146)。このとき、全ての有向パスの有向枝数が最長有向パスLPの有向枝数を超えないように有向枝が置換される。つまり、この置換処理を実行したとしても、AI方式よりも鍵生成に要する計算量の最悪値が増加しないようにする。
以下、図25に示した各ステップについて、より詳細に説明する。
(S140の詳細)
まず、図26を参照しながら、仮有向グラフI’の生成処理について説明する。図26は、仮有向グラフ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の詳細)
次に、図27を参照しながら、最長有向パス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の詳細)
次に、図28を参照しながら、最長有向パス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の詳細)
次に、図29を参照しながら、仮有向グラフ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−Dを超えてしまう場合に終了する。また、上記のステップS180〜S200の間に生じるループ処理は、仮有向グラフI’に含まれる有向枝の中から、doneが設定されておらず、かつ、長さが2以上の有向枝が全てなくなった時点で終了する。
以上、本実施形態に係る有向グラフIの生成方法について説明した。上記の方法を用いると、例えば、図30に示すような有向グラフIが生成される。また、契約者数n=16、パラメータk=4の場合、図31に示すような有向グラフIが生成される。
さて、既に述べた通り、本実施形態は、上記の第1実施形態が対象とする基盤技術をRS方式に置き換えた技術である。従って、第1実施形態の情報処理装置150に係る技術をRS方式の有向グラフIに適用させることで、RS方式を公開鍵暗号方式に拡張することができる。そこで、本実施形態に係る情報処理装置150の機能構成については詳細な説明を省略し、本実施形態に係る鍵設定処理の流れ、及び鍵配信処理の流れについてのみ簡単に説明する。尚、第1実施形態の情報処理装置150に係る技術をRS方式の有向グラフIに適用すると、例えば、図31に示すような有向グラフI、及び各ノードに対応する識別子が設定される。
[鍵設定処理の流れ]
ここで、図32を参照しながら、本実施形態に係る鍵設定処理の流れについて簡単に説明する。図32は、本実施形態に係る鍵設定処理の流れを示す説明図である。
図32に示すように、公開パラメータとして、n,λ,k,HIBE−paramsが設定されて公開される(S702)。次いで、セットシステムSSが設定されて公開される(S704)。次いで、有向グラフIが設定(生成)され、当該有向グラフIの各ノードに識別子が設定されて公開される(S506)。次いで、各部分集合に対応する鍵が設定(導出)される(S708)。次いで、各ユーザの端末装置122に対して所定の鍵が提供(送信)される(S710)。以上の流れに従って鍵設定処理が実行される。
[鍵配信処理の流れ]
ここで、図33を参照しながら、本実施形態に係る鍵配信処理の流れについて簡単に説明する。図33は、本実施形態に係る鍵配信処理の流れを示す説明図である。
図33に示すように、排除契約者の集合R、及び許諾契約者の集合N\Rが設定される(S722)。次いで、和集合が許諾契約者の集合N\Rと一致するm個の部分集合Sを設定する(S724)。次いで、コンテンツ鍵mekが設定され、設定された各部分集合Siについて暗号文が生成される(S726)。次いで、許諾契約者の集合N\R又は各部分集合Siの情報とm個の暗号文が送信される(S728)。以上の流れに従って鍵配信処理が実行される。
<第4実施形態>
以下、図面を参照しながら、本発明の第4実施形態に係る鍵配信システム100の構成、及び鍵配信に係る具体的な方式について詳細に説明する。但し、上記の第1実施形態に係る鍵配信システム100と実質的に同一の構成要素については同一の符号を付することにより重複する説明を省略し、相違する構成要素について詳細に説明する。
[第4実施形態の特徴]
ここで、本発明の第4実施形態と上記の第1実施形態との相違点について簡単に説明する。まず、上記の第1実施形態と本実施形態との最大の相違点は、基盤とする鍵配信方式の違いである。上記の第1実施形態がAI方式を基盤とするのに対し、本実施形態はRCS方式に適用する点が異なる。RCS方式は、RC方式と同様に、より長い有向枝を用いて仮有向グラフを生成した後、仮有向グラフの中で、有向パスを構成する有向枝数が最大となる最長有向パスの有向枝数を超えないという条件の下、有向グラフを構成する有向枝の長さを短く置換する構成に特徴を有する。つまり、RCS方式は、AI方式に比べ、鍵生成に要する演算量と各契約者が保持すべき鍵数とを削減しているのである。
[鍵配信システム100の構成]
ここで、本実施形態に係る鍵配信システム100の構成について説明する。但し、基本的なシステム構成は、図1に示した第1実施形態の構成と実質的に同一であるため、その詳細な説明を省略する。また、本実施形態に係る鍵配信システム100に含まれる鍵配信サーバ402のハードウェア構成についても、図2に示した鍵配信サーバ102のハードウェア構成と実質的に同一であるため、その詳細な説明を省略する。
[鍵配信サーバ402の機能構成]
そこで、図34を参照しながら、本実施形態に係る鍵配信サーバ402の機能構成について説明する。図34は、本実施形態に係る鍵配信サーバ402の機能構成を示す説明図である。
図34に示すように、鍵配信サーバ402は、主に、木構造設定部104と、座標軸設定部206と、仮有向グラフ生成部408と、有向グラフ生成部410と、初期中間鍵設定部112と、鍵生成部114と、暗号化部116と、通信部118と、部分集合決定部120とにより構成される。但し、本実施形態の特徴的な構成は、主に、仮有向グラフ生成部408、及び有向グラフ生成部410であり、他の構成要素については、第1又は第2実施形態に係る鍵配信サーバ102の構成要素と実質的に同一である。従って、仮有向グラフ生成部408、及び有向グラフ生成部410の機能構成のみについて詳細に説明する。
(仮有向グラフ生成部408)
まず、仮有向グラフ生成部408の機能構成について説明する。仮有向グラフ生成部408は、上記の第2実施形態に係る有向グラフ生成部210と実質的に同一の機能構成を有し、RC方式の有向グラフIと同じ形状を有する仮有向グラフI’を生成する機能を有する。例えば、n=64、パラメータk=6の場合、図35に示す仮有向グラフI’は、図18に示す有向グラフIと一致する。
(有向グラフ生成部410)
次に、有向グラフ生成部410について説明する。有向グラフ生成部410は、仮有向グラフI’を構成する複数の有向枝の一部を置換して有向グラフIを生成する機能を有する。まず、有向グラフ生成部410は、仮有向グラフI’に含まれる有向パスのうち、それを構成する有向枝数が最大の有向パスを選択する。その有向パスを最長有向パスLP(Longest Path)と呼ぶことにする。そして、有向グラフ生成部310は、全ての有向パスの有向枝数が最長有向パスLPの有向枝数を超えないという条件の下で、仮有向グラフI’に含まれる一部の有向パスをより短い複数の有向枝の鎖で構成される有向パスに置換することで、有向グラフIを生成する。
(有向グラフIの生成方法)
まず、図36〜図39を参照しながら、有向グラフIの生成方法について説明する。図36は、有向グラフIを生成する処理の全体的な流れを示した説明図である。図37は、最長有向パスLPを抽出する処理の流れを示した説明図である。図38は、最長有向パスLP以外の有向パスの中から最長の有向パスPLP(Pertially Longest Path)を抽出する処理の流れを示した説明図である。図39は、仮有向グラフI’の有向パスをより短い有向枝の組で構成される有向パスに置換する処理を示した説明図である。
図36に示すように、まず、仮有向グラフI’を形成する有向パスの中から最長有向パスLPが抽出される(S142)。次いで、仮有向グラフI’の最長有向パスLP以外の有向パスの中から最長の有向パスPLPが抽出される(S144)。なお、各部分集合に対応する仮有向グラフI’について最長の有向パスPLPが抽出されてもよい。次いで、仮有向グラフI’の有向パスを構成する有向枝がより短い有向枝に置換される(S146)。このとき、全ての有向パスの有向枝数が最長有向パスLPの有向枝数を超えないように有向枝が置換される。つまり、この置換処理を実行したとしても、RC方式よりも鍵生成に要する計算量の最悪値が増加しないようにする。以下、図36に示した各ステップについて、より詳細に説明する。
(S142の詳細)
図37を参照しながら、最長有向パス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の詳細)
次に、図38を参照しながら、最長有向パス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の詳細)
次に、図39を参照しながら、仮有向グラフ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−Dを超えてしまう場合に終了する。また、上記のステップS180〜S200の間に生じるループ処理は、仮有向グラフI’に含まれる有向枝の中から、doneが設定されておらず、かつ、長さが2以上の有向枝が全てなくなった時点で終了する。
以上、本実施形態に係る有向グラフIの生成方法について説明した。例えば、契約者数n=64、パラメータk=6の場合、本実施形態に係る有向グラフIは、図40のように表現される。また、契約者数n=16、パラメータk=4の場合、本実施形態に係る有向グラフIは、図41のように表現される。
さて、既に述べた通り、本実施形態は、上記の第1実施形態が対象とする基盤技術をRCS方式に置き換えた技術である。従って、第1実施形態の情報処理装置150に係る技術をRCS方式の有向グラフIに適用させることで、RCS方式を公開鍵暗号方式に拡張することができる。そこで、本実施形態に係る情報処理装置150の機能構成については詳細な説明を省略し、本実施形態に係る鍵設定処理の流れ、及び鍵配信処理の流れについてのみ簡単に説明する。尚、第1実施形態の情報処理装置150に係る技術をRCS方式の有向グラフIに適用すると、例えば、図41に示すような有向グラフI、及び各ノードに対応する識別子が設定される。
[鍵設定処理の流れ]
ここで、図42を参照しながら、本実施形態に係る鍵設定処理の流れについて簡単に説明する。図42は、本実施形態に係る鍵設定処理の流れを示す説明図である。
図42に示すように、公開パラメータとして、n,λ,k,HIBE−paramsが設定されて公開される(S902)。次いで、セットシステムSSが設定されて公開される(S904)。次いで、有向グラフIが設定(生成)され、当該有向グラフIの各ノードに識別子が設定されて公開される(S906)。次いで、各部分集合に対応する鍵が設定(導出)される(S908)。次いで、各ユーザの端末装置122に対して所定の鍵が提供(送信)される(S910)。以上の流れに従って鍵設定処理が実行される。
[鍵配信処理の流れ]
ここで、図43を参照しながら、本実施形態に係る鍵配信処理の流れについて簡単に説明する。図43は、本実施形態に係る鍵配信処理の流れを示す説明図である。
図43に示すように、排除契約者の集合R、及び許諾契約者の集合N\Rが設定される(S922)。次いで、和集合が許諾契約者の集合N\Rと一致するm個の部分集合Sを設定する(S924)。次いで、コンテンツ鍵mekが設定され、設定された各部分集合Siについて暗号文が生成される(S926)。次いで、許諾契約者の集合N\R又は各部分集合Siの情報とm個の暗号文が送信される(S928)。以上の流れに従って鍵配信処理が実行される。
以上説明したように、上記各実施形態は、その基盤となるブロードキャスト・エンクリプション方式の有向グラフ、或いは、これに相当する鍵導出規則が異なるとしても、識別子を共通のアルゴリズムに基づいて設定することにより、公開鍵暗号方式に拡張することが可能になる。また、識別子の設定方法を工夫することで公開鍵暗号方式に拡張しているため、基盤となる技術の特性を引き継ぐことが可能になり、AI方式よりも良好な特性を有するRC方式、RS方式、RCS方式等の効果を継承することができる。もちろん、より効果の高い新たな方式が開発された場合には、本発明に係る技術を適用することで、より効果的な公開鍵暗号方式が実現される。
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
例えば、上記の論理二分木BTは、上から下に枝が広がる構造を有するものと仮定したが、必ずしもこれに限定されず、下から上、左から右、又は右から左に向けて枝が広がるように構成することも可能である。このような配置に関わる変更は、単純に論理二分木を回転して配置することにより実現されるため、当該変更に係るいずれの構成についても実質的に同一の技術的範囲に属するものと言える。また、仮有向グラフ、及び有向グラフを形成する水平座標軸を左右反転させる変更についても同様である。
さて、上記の各実施形態に係る鍵配信サーバ102は、自身で有向グラフを生成する構成要素を含んでいるが、必ずしもこれに限定されない。例えば、本発明に係る鍵配信サーバ102は、所定の有向グラフに関する情報を取得する取得部を備えていてもよく、この場合、木構造設定部104、座標軸設定部106、仮有向グラフ生成部108、及び有向グラフ生成部110の一部又は全部を備えている必要はない。
また、上記の各実施形態に係る鍵配信サーバ102は、コンテンツ、コンテンツ鍵、セット鍵、中間鍵、許諾契約者に対応する部分集合の情報、又は有向グラフの情報等を端末装置122に配信する通信部118を備えているが、これらの情報を提供するために常にネットワークを利用するとは限らない。例えば、鍵配信サーバ102は、通信部118に代えて、記録媒体に情報を記録するための記録部を備えていてもよい。
本発明の各実施形態に係る鍵配信システムの構成を示す説明図である。 同実施形態に係る鍵配信サーバ及び端末装置のハードウェア構成を示す説明図である。 本発明の第1実施形態に係る鍵配信サーバの機能構成を示す説明図である。 同実施形態に係る論理二分木の構造を示す説明図である。 同実施形態に係る有向グラフHを示す説明図である。 同実施形態に係る鍵配信方法の流れを示す説明図である。 同実施形態に係る鍵配信方法の流れを示す説明図である。 同実施形態に係る鍵配信方法の流れを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係る情報処理装置の機能構成を示す説明図である。 同実施形態に係る識別子の設定方法を示す説明図である。 同実施形態に係る識別子の設定方法を示す説明図である。 同実施形態に係る鍵設定方法を示す説明図である。 同実施形態に係る鍵配信方法を示す説明図である。 同実施形態に係る鍵配信方式の応用例を示す説明図である。 同実施形態に係る鍵配信方式の応用例を示す説明図である。 本発明の第2実施形態に係る鍵配信サーバの構成を示す説明図である。 同実施形態に係る有向グラフIを示す説明図である。 同実施形態に係る有向グラフIを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係る識別子の設定方法を示す説明図である。 同実施形態に係る鍵設定方法を示す説明図である。 同実施形態に係る鍵配信方法を示す説明図である。 本発明の第3実施形態に係る鍵配信サーバの構成を示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係る有向グラフIを示す説明図である。 同実施形態に係る識別子の設定方法を示す説明図である。 同実施形態に係る鍵設定方法を示す説明図である。 同実施形態に係る鍵配信方法を示す説明図である。 本発明の第4実施形態に係る鍵配信サーバの構成を示す説明図である。 同実施形態に係る仮有向グラフI’を示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係るグラフ生成方法の流れを示す説明図である。 同実施形態に係る有向グラフIを示す説明図である。 同実施形態に係る識別子の設定方法を示す説明図である。 同実施形態に係る鍵設定方法を示す説明図である。 同実施形態に係る鍵配信方法を示す説明図である。
符号の説明
100 鍵配信システム
102 鍵配信サーバ
104 木構造設定部
106 座標軸設定部
108 仮有向グラフ生成部
110 有向グラフ生成部
112 初期中間鍵設定部
114 鍵生成部
116 暗号化部
118 通信部
120 部分集合決定部
122 端末装置
150 情報処理装置
152 パラメータ設定部
154 秘密情報保持部
156 鍵設定部
158 有向グラフ情報取得部
160 識別子設定部
162 鍵配信部
164 暗号化部
166 通信部
202 鍵配信サーバ
206 座標軸設定部
210 有向グラフ生成部
302 鍵配信サーバ
308 仮有向グラフ生成部
310 有向グラフ生成部
402 鍵配信サーバ
408 仮有向グラフ生成部
410 有向グラフ生成部
702 コントローラ
704 演算ユニット
706 入出力インターフェース
708 セキュア記憶部
710 メイン記憶部
712 ネットワークインターフェース
716 メディアインターフェース
718 情報メディア

Claims (8)

  1. 木構造の各ノードに対応する端末装置の集合に識別子を設定する識別子設定部と、
    前記識別子に基づいて前記端末装置に配信される鍵を設定する鍵設定部と、
    を備え、
    前記識別子設定部は、前記各ノードに対応する端末装置の集合を示す第1識別子を含み、当該集合が複数の部分集合を含む場合に当該複数の部分集合間の対応関係を示す第2識別子を更に含むように前記識別子を設定することを特徴とする、情報処理装置。
  2. 所定の乗法群の情報と、当該情報群により定義される双線形マップの情報と、前記乗法群に属する複数の生成元の情報とが含まれ、前記端末装置に公開される公開情報を設定する公開情報設定部をさらに備え、
    前記鍵設定部は、前記公開情報を含む所定のパラメータに基づいて前記第1識別子に対応する鍵、及び各前記部分集合に対応する鍵を設定することを特徴とする、請求項1に記載の情報処理装置。
  3. 所定の方式に基づいて前記集合毎に各前記部分集合間の対応関係が規定され、当該対応関係に従って一の前記部分集合と他の前記部分集合とを結ぶ経路が示された経路情報を取得する経路情報取得部をさらに備え、
    前記識別子設定部は、前記経路情報取得部により取得された経路情報に基づいて前記第2識別子を設定することを特徴とする、請求項2に記載の情報処理装置。
  4. 所定の方式に基づいて前記集合毎に各前記部分集合間の対応関係が規定され、当該対応関係に従って一の前記部分集合と他の前記部分集合とを結ぶ経路が示された経路情報を取得する経路情報取得部と、
    各前記部分集合間の経路長が長くなるように前記経路情報取得部により取得された前記経路情報を変更する経路情報変更部と、
    をさらに備え、
    前記識別子設定部は、前記経路情報変更部により変更された経路情報に基づいて前記第2識別子を設定することを特徴とする、請求項2に記載の情報処理装置。
  5. 所定の方式に基づいて前記集合毎に各前記部分集合間の対応関係が規定され、当該対応関係に従って一の前記部分集合と他の前記部分集合とを結ぶ経路が示された経路情報を取得する経路情報取得部と、
    各前記部分集合間の経路長が長くなるように前記経路情報取得部により取得された経路情報を変更した上で、その変更した経路情報に含まれる比較的経路長が短い前記部分集合間の対応関係をより短い経路長を有する対応関係に変更する経路情報変更部と、
    をさらに備え、
    前記識別子設定部は、前記経路情報変更部により変更された経路情報に基づいて前記第2識別子を設定することを特徴とする、請求項2に記載の情報処理装置。
  6. 所定の方式に基づいて前記集合毎に各前記部分集合間の対応関係が規定され、当該対応関係に従って一の前記部分集合と他の前記部分集合とを結ぶ経路が示された経路情報を取得する経路情報取得部と、
    各前記部分集合間の経路長が短くなるように前記経路情報取得部により取得された前記経路情報を変更する経路情報変更部と、
    をさらに備え、
    前記識別子設定部は、前記経路情報変更部により変更された経路情報に基づいて前記第2識別子を設定することを特徴とする、請求項2に記載の情報処理装置。
  7. 複数の端末装置が含まれる鍵配信システムにおける鍵設定方法であって、
    木構造の各ノードに対応する端末装置の集合に識別子が設定される識別子設定ステップと、
    前記識別子に基づいて前記端末装置に配信される鍵が設定される鍵設定ステップと、
    を含み、
    前記識別子設定ステップでは、前記各ノードに対応する端末装置の集合を示す第1識別子が含まれ、当該集合が複数の部分集合により構成される場合に当該複数の部分集合間の対応関係を示す第2識別子が更に含まれるように前記識別子が設定されることを特徴とする、鍵設定方法。
  8. 複数の端末装置が含まれる鍵配信システムにおける鍵設定方法をコンピュータに実現させるためのプログラムであって、
    木構造の各ノードに対応する端末装置の集合に識別子を設定する識別子設定機能と、
    前記識別子に基づいて前記端末装置に配信される鍵を設定する鍵設定機能と、
    に加え、
    前記識別子設定機能は、前記各ノードに対応する端末装置の集合を示す第1識別子が含まれ、また、当該集合が複数の部分集合により構成される場合に当該複数の部分集合間の対応関係を示す第2識別子が更に含まれるように前記識別子を設定する機能をコンピュータに実現させるためのプログラム。
JP2007292587A 2007-11-09 2007-11-09 情報処理装置、鍵設定方法、及びプログラム Expired - Fee Related JP5286748B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007292587A JP5286748B2 (ja) 2007-11-09 2007-11-09 情報処理装置、鍵設定方法、及びプログラム
US12/266,692 US20090177888A1 (en) 2007-11-09 2008-11-07 Information processing device, key setting method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007292587A JP5286748B2 (ja) 2007-11-09 2007-11-09 情報処理装置、鍵設定方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2009124193A true JP2009124193A (ja) 2009-06-04
JP5286748B2 JP5286748B2 (ja) 2013-09-11

Family

ID=40815932

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007292587A Expired - Fee Related JP5286748B2 (ja) 2007-11-09 2007-11-09 情報処理装置、鍵設定方法、及びプログラム

Country Status (2)

Country Link
US (1) US20090177888A1 (ja)
JP (1) JP5286748B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110040980A1 (en) * 2009-08-12 2011-02-17 Apple Inc. File Management Safe Deposit Box
US9064229B2 (en) * 2012-05-07 2015-06-23 Sap Se Real-time asset tracking using discovery services
US10148430B1 (en) 2013-04-17 2018-12-04 Amazon Technologies, Inc Revocable stream ciphers for upgrading encryption in a shared resource environment

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004229128A (ja) * 2003-01-24 2004-08-12 Sony Corp 暗号データ配信システム、および情報処理装置、情報処理方法、並びにコンピュータ・プログラム
JP2004297778A (ja) * 2003-03-07 2004-10-21 Canon Inc 画像データ暗号化方法及び装置、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
JP2005086747A (ja) * 2003-09-11 2005-03-31 Sony Corp 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
JP2005109753A (ja) * 2003-09-29 2005-04-21 Canon Inc 鍵情報処理方法及びその装置、並びにプログラム
JP2005236963A (ja) * 2004-01-21 2005-09-02 Toshiba Corp コンテンツ提供側システム、ユーザ側システム、追跡システム、装置、方法及びプログラム
JP2006074392A (ja) * 2004-09-01 2006-03-16 Canon Inc 情報暗号化装置及びその制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
JP2006253822A (ja) * 2005-03-08 2006-09-21 Toshiba Corp 復号装置、復号方法、及びプログラム

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7505599B2 (en) * 2000-04-06 2009-03-17 Sony Corporation Information processing system and method for managing encrypted data with tag information
US7043024B1 (en) * 2001-04-18 2006-05-09 Mcafee, Inc. System and method for key distribution in a hierarchical tree
EP1425874B1 (en) * 2001-08-13 2010-04-21 Board Of Trustees Of The Leland Stanford Junior University Systems and methods for identity-based encryption and related cryptographic techniques
US20050089173A1 (en) * 2002-07-05 2005-04-28 Harrison Keith A. Trusted authority for identifier-based cryptography
WO2004021638A1 (en) * 2002-08-28 2004-03-11 Docomo Communications Laboratories Usa, Inc. Certificate-based encryption and public key infrastructure
GB2398712B (en) * 2003-01-31 2006-06-28 Hewlett Packard Development Co Privacy management of personal data
US7003117B2 (en) * 2003-02-05 2006-02-21 Voltage Security, Inc. Identity-based encryption system for secure data distribution
GB2399906B (en) * 2003-03-22 2006-10-04 Hewlett Packard Development Co Method and system for delegating authority and access control methods based on delegated authority
GB2400526B (en) * 2003-04-08 2005-12-21 Hewlett Packard Development Co Cryptographic key update management
US20050021973A1 (en) * 2003-04-23 2005-01-27 Liqun Chen Cryptographic method and apparatus
US20050135610A1 (en) * 2003-11-01 2005-06-23 Liqun Chen Identifier-based signcryption
EP1689115A1 (en) * 2003-11-28 2006-08-09 Matsushita Electric Industries Co., Ltd. Management device, terminal device, and copyright protection system
GB2416282B (en) * 2004-07-15 2007-05-16 Hewlett Packard Development Co Identifier-based signcryption with two trusted authorities
US7685414B1 (en) * 2004-08-27 2010-03-23 Voltage Security, Inc. Subscription management service for secure messaging system
KR100579515B1 (ko) * 2004-10-08 2006-05-15 삼성전자주식회사 브로드캐스트 암호화를 위한 키 생성 장치 및 방법
EP1675299B1 (en) * 2004-12-23 2018-08-01 Hewlett-Packard Development Company, L.P. Authentication method using bilinear mappings
KR100737876B1 (ko) * 2005-02-25 2007-07-12 삼성전자주식회사 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법
KR20060097514A (ko) * 2005-03-07 2006-09-14 삼성전자주식회사 로컬 서버에서 브로드캐스트 암호화 방식에 따라 암호화된컨텐트를 제공하는 방법 및 장치
KR20060131536A (ko) * 2005-06-16 2006-12-20 삼성전자주식회사 BE 시스템에서의 홈 디바이스의 통합적 키(key) 관리방법 및 그 시스템
KR20070119335A (ko) * 2006-06-15 2007-12-20 삼성전자주식회사 브로드캐스트 암호화를 위한 사용자 키 할당 방법
US7876895B2 (en) * 2007-05-09 2011-01-25 International Business Machines Corporation System, method, and service for performing unified broadcast encryption and traitor tracing for digital content
US20090080658A1 (en) * 2007-07-13 2009-03-26 Brent Waters Method and apparatus for encrypting data for fine-grained access control
US8422681B2 (en) * 2008-03-06 2013-04-16 International Business Machines Corporation Non-interactive hierarchical identity-based key-agreement

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004229128A (ja) * 2003-01-24 2004-08-12 Sony Corp 暗号データ配信システム、および情報処理装置、情報処理方法、並びにコンピュータ・プログラム
JP2004297778A (ja) * 2003-03-07 2004-10-21 Canon Inc 画像データ暗号化方法及び装置、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
JP2005086747A (ja) * 2003-09-11 2005-03-31 Sony Corp 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
JP2005109753A (ja) * 2003-09-29 2005-04-21 Canon Inc 鍵情報処理方法及びその装置、並びにプログラム
JP2005236963A (ja) * 2004-01-21 2005-09-02 Toshiba Corp コンテンツ提供側システム、ユーザ側システム、追跡システム、装置、方法及びプログラム
JP2006074392A (ja) * 2004-09-01 2006-03-16 Canon Inc 情報暗号化装置及びその制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
JP2006253822A (ja) * 2005-03-08 2006-09-21 Toshiba Corp 復号装置、復号方法、及びプログラム

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
CSNJ200910010015; Nuttapong Attrapadung et al: 'Subset Incremental Chain Based Broadcast Encryption with Shorter Ciphertex' 第28回情報理論とその応用シンポジウム 予稿集 第1分冊 , 20051120, p.57〜60, 情報理論とその応用学会 *
JPN6013008095; Dan Boneh et al: 'Hierarchical Identity Based Encryption with Constant Size Ciphertext' [online] , 20060126 *
JPN6013008096; Nuttapong Attrapadung et al: 'Subset Incremental Chain Based Broadcast Encryption with Shorter Ciphertex' 第28回情報理論とその応用シンポジウム 予稿集 第1分冊 , 20051120, p.57〜60, 情報理論とその応用学会 *
JPN6013008098; 浅野 智之 他: 'Subset Incremental Chain に基づく計算量の小さな Broadcast Encryption 方式' 2007 年 暗号と情報セキュリティシンポジウムCD-ROM , 20070123, 2C3-1, (社)電子情報通信学会 *
JPN6013008100; 浅野 智之 他: 'Subset Incremental Chain に基づく効率的な Broadcast Encryption 方式' 2008 年 暗号と情報セキュリティシンポジウムCD-ROM , 20080122, 1D1-2, (社)電子情報通信学会 *

Also Published As

Publication number Publication date
JP5286748B2 (ja) 2013-09-11
US20090177888A1 (en) 2009-07-09

Similar Documents

Publication Publication Date Title
CN101663856B (zh) 密钥提供系统、密钥提供装置、终端设备、密钥提供方法和密钥生成方法
JP5365072B2 (ja) 鍵生成装置、暗号化装置、受信装置、鍵生成方法、暗号化方法、鍵処理方法およびプログラム
US20070133806A1 (en) Information processing method, decryption method, information processing device, and computer program
US8600052B2 (en) Key generation device, encryption device, reception device, key generation method, key processing method, and program
JP2006086568A (ja) 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム
EP2086160A1 (en) Information processing device
KR20090127716A (ko) 브로드캐스트 암호화에서 디바이스 키를 추적하는 방법
JP5286748B2 (ja) 情報処理装置、鍵設定方法、及びプログラム
JP2008131076A (ja) 情報処理装置、端末装置、情報処理方法、鍵生成方法、及びプログラム
JP2008131072A (ja) 情報処理装置、端末装置、情報処理方法、及び鍵生成方法
KR101533950B1 (ko) 브로드캐스트 암호화 방법 및 시스템
JP2006115464A (ja) 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム
JP4561074B2 (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP2010117384A (ja) 情報処理装置、情報処理方法およびプログラム
JP5134555B2 (ja) 鍵生成装置、暗号化装置、復号化装置、暗号化システム、鍵生成方法、暗号化方法、復号化方法、プログラム、および記録媒体
JP2004229128A (ja) 暗号データ配信システム、および情報処理装置、情報処理方法、並びにコンピュータ・プログラム
JP2008131079A (ja) 情報処理装置、端末装置、情報処理方法、及び鍵生成方法
KR20180113323A (ko) 와일드 카드를 포함하는 키 발급, 암호화 및 복호화 방법
US8150040B2 (en) Key providing system, terminal device, and information processing method
JP4635459B2 (ja) 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム
JP4576824B2 (ja) 情報処理装置および情報処理方法
JP2007020025A (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP2005191805A (ja) 暗号文配信方法、情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP2005252916A (ja) 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム
JP2008131078A (ja) 情報処理装置、端末装置、情報処理方法、及び鍵生成方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100914

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130226

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130417

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130507

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130520

LAPS Cancellation because of no payment of annual fees