JP4984827B2 - 鍵生成装置、暗号化装置、受信装置、鍵生成方法、暗号化方法、鍵処理方法、およびプログラム - Google Patents

鍵生成装置、暗号化装置、受信装置、鍵生成方法、暗号化方法、鍵処理方法、およびプログラム Download PDF

Info

Publication number
JP4984827B2
JP4984827B2 JP2006294639A JP2006294639A JP4984827B2 JP 4984827 B2 JP4984827 B2 JP 4984827B2 JP 2006294639 A JP2006294639 A JP 2006294639A JP 2006294639 A JP2006294639 A JP 2006294639A JP 4984827 B2 JP4984827 B2 JP 4984827B2
Authority
JP
Japan
Prior art keywords
key
leaf
node
unit
assigned
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.)
Expired - Fee Related
Application number
JP2006294639A
Other languages
English (en)
Other versions
JP2008113201A5 (ja
JP2008113201A (ja
Inventor
雅文 草川
智之 浅野
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
Priority to JP2006294639A priority Critical patent/JP4984827B2/ja
Application filed by Sony Corp filed Critical Sony Corp
Priority to PCT/JP2007/066002 priority patent/WO2008053629A1/ja
Priority to CN2007800408108A priority patent/CN101536400B/zh
Priority to US12/447,872 priority patent/US8600052B2/en
Priority to EP07792625A priority patent/EP2068489A1/en
Priority to KR1020097006550A priority patent/KR20090084809A/ko
Publication of JP2008113201A publication Critical patent/JP2008113201A/ja
Publication of JP2008113201A5 publication Critical patent/JP2008113201A5/ja
Application granted granted Critical
Publication of JP4984827B2 publication Critical patent/JP4984827B2/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/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
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25808Management of client data
    • H04N21/25816Management of client data involving client authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25866Management of end-user data
    • H04N21/25875Management of end-user data involving end-user authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/26613Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel for generating or managing keys in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/633Control signals issued by server directed to the network components or client
    • H04N21/6332Control signals issued by server directed to the network components or client directed to client
    • H04N21/6334Control signals issued by server directed to the network components or client directed to client for authorisation, e.g. by transmitting a key
    • H04N21/63345Control signals issued by server directed to the network components or client directed to client for authorisation, e.g. by transmitting a key by transmitting keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • H04N21/8355Generation of protective data, e.g. certificates involving usage data, e.g. number of copies or viewings allowed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/162Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
    • H04N7/165Centralised control of user terminal ; Registering at central
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/167Systems rendering the television signal unintelligible and subsequently intelligible
    • H04N7/1675Providing digital key or authorisation information for generation or regeneration of the scrambling sequence
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Graphics (AREA)
  • Storage Device Security (AREA)

Description

本発明は、鍵生成装置、暗号化装置、受信装置、鍵生成方法、暗号化方法、鍵処理方法、およびプログラムに関する。
近年、パーソナルコンピュータ(PC)のみならず、携帯電話やディジタル家電等の普及、発達に伴い、音楽や映像等のコンテンツ配信ビジネスが益々重要になってきている。コンテンツ配信ビジネスとしては、例えば、ケーブルテレビや衛星放送、またはインターネットを利用した有料放送や、CD、DVD等の物理メディアを利用したコンテンツの販売等があるが、いずれの場合においても、契約者のみがコンテンツを取得可能となる仕組みを構成する必要がある。
通常、このようなコンテンツ配信システムでは、システムの管理者(以下、センタと表記する。)が予め契約者のみに鍵を提供しておき、コンテンツの配信時には、コンテンツMをセッション鍵sで暗号化した暗号文Cと、契約者のみがセッション鍵sを取得可能とするためのヘッダhを配信することにより、契約者のみがコンテンツMを取得可能となる。
上記のような状況を実現するコンテンツ配信方式として、例えば公開鍵を利用した方式がある(例えば、非特許文献1参照。)。
D.Boneh,C.Gentry,B.Waters,"Collusion Resistant Broadcast Encryption With Short Ciphertexts and Private Keys",CRYPTO’05,Proceedings of 25th Annual International Cryptology Conference on Advances in Cryptology,London,UK,Springer Verlag,2005,pp.58〜75.
しかしながら、上記の非特許文献1に記載の公開鍵暗号方式では、配信が排除される契約者数が少ない場合であっても、常に一定サイズのヘッダhを配信する必要があるため、排除される契約者数がゼロの場合、もしくは、契約者全体に占める割合が少ない場合といった現実的に起こりうる状況において、ヘッダサイズを削減することができず、暗号化されたコンテンツの配信時におけるデータの冗長性が高くなるという問題があった。
そこで、本発明は、このような問題に鑑みてなされたもので、その目的は、排除される契約者数が少ない場合であってもヘッダサイズを削減することが可能な、新規かつ改良された鍵生成装置、暗号化装置、受信装置、鍵生成方法、暗号化方法、鍵処理方法、およびプログラムを提供することにある。
上記課題を解決するために、本発明の第1の観点によれば、n個の受信装置がリーフに割り当てられ、高さが(logn)で表されるY分木構造を階層的に構成し、リーフとルートとの間に存在する中間ノードの下位に存在する複数のリーフからなるサブグループを構成する、木構造構成部と、リーフおよび中間ノードそれぞれに対して、リーフキーgを割り当てるリーフキー割当部と、中間ノードおよびルートに、相異なるパラメータνx,y(x:階層、y:1,2,・・・,Y)とノードパラメータγx,y(x:階層、y:1,2,・・・,Y)とをそれぞれ割り当てるパラメータ割当部と、ルートからリーフに至るパスを特定し、当該パス上に存在する中間ノードまたはリーフに割り当てられたリーフキーgと、当該中間ノードまたは当該リーフの親ノードに割り当てられたパラメータνx,yおよびノードパラメータγx,yに基づいて、鍵を算出する鍵算出部と、を備える鍵生成装置が提供される。
上記の鍵生成装置は、鍵算出部により算出されたパス上の鍵セットを各受信装置それぞれに配布する配布部を、更に備えるように構成してもよい。
上記の鍵生成装置は、素数pを無作為に選択し、素数pを位数とする双線形群Gを決定し、Gの生成元であるgを無作為に選択し、秘密の乱数α(αは整数)を無作為に選択する乱数決定部を更に備え、上記のリーフキー割当部は、以下の式Aを満たすリーフキーgを算出するようにしてもよい。ここで、以下の式Aにおいて、y=1,2,・・・,Y,Y+2,・・・,2Yである。
Figure 0004984827

上記パラメータ割当部は、リーフを除く全てのノードとルートのそれぞれに対して、ノードパラメータγx,y(γx,yは整数)を無作為に選択し、以下の式Bに示すパラメータνx,yを算出するようにしてもよい。
Figure 0004984827
鍵算出部は、中間ノードまたはリーフに割り当てられたリーフキーgの、当該中間ノードまたは当該リーフの親ノードに割り当てられたパラメータγx,y乗で得られる値を、秘密鍵としてもよい。すなわち、中間ノードまたはリーフに割り当てられたリーフキーgをKと略記し、当該中間ノードまたは当該リーフの親ノードに割り当てられたパラメータγx,yをTと略記する場合に、Kで得られる値を、秘密鍵としてもよい。
上記の鍵算出部は、リーフキーgおよびパラメータνx,yに基づき、公開鍵を算出し、上記の配布部は、公開鍵を公開する公開鍵公開部を備えるようにしてもよい。
上記の配布部は、鍵算出部において算出された秘密鍵を各受信装置に送信する送信部を更に備えるようにしてもよい。
上記課題を解決するために、本発明の第2の観点によれば、n個の受信装置のなかから排除する受信装置を特定し、排除されていない受信装置の集合Sを決定する、排除受信装置特定部を備える暗号化装置が提供される。
上記の暗号化装置は、整数tを無作為に選択して、セッション鍵s=e(g,gを決定する、セッション鍵決定部を更に備えてもよい。
ここで、上記のe(g,g)は、双線形群上の2つの元g、gに対する双線形写像を表す。
上記の暗号化装置は、上記セッション鍵sを用いて、配信するコンテンツを暗号化する暗号化部を、更に備えるようにしてもよい。
上記セッション鍵決定部は、階層化された木構造において、排除された受信装置のリーフからルートに至るパス上に存在する全てのノードそれぞれにマークをし、マークされたノードに割り当てられたパラメータνx,yと、マークされたノードを親ノードとする中間ノードに割り当てられたリーフキーgとに基づいて、以下の式Cによりヘッダ要素を算出するヘッダ要素算出部を、更に備えるようにしてもよい。ここで、Sx,yは、マークされたノードを親ノードとする各サブグループに所属する、マークされていない子ノードの集合を表す。
Figure 0004984827
上記ヘッダ要素算出部において得られたcx,yと、gと、をヘッダ情報とする、ヘッダ情報生成部を更に備えるようにしてもよい。
上記課題を解決するために、本発明の第3の観点によれば、鍵生成装置および暗号化装置と通信可能な受信装置であって、鍵生成装置において、n個の受信装置がリーフに割り当てられ、高さが(logn)で表されるY分木構造を階層的に構成し、リーフとルートとの間に存在する中間ノードの下位に存在する複数のリーフからなるサブグループを構成し、リーフおよび中間ノードそれぞれに対して、リーフキーgを割り当て、中間ノードおよびルートに、相異なるパラメータνx,y(x:階層、y:1,2,・・・,Y)とノードパラメータγx,y(x:階層、y:1,2,・・・,Y)とをそれぞれ割り当て、ルートからリーフに至るパスを特定し、当該パス上に存在する中間ノードまたはリーフに割り当てられたリーフキーgと、当該中間ノードまたは当該リーフの親ノードに割り当てられたパラメータνx,yおよびノードパラメータγx,yに基づいて算出された鍵を受信する、受信部を備える受信装置が提供される。
上記の受信装置は、暗号化コンテンツを、セッション鍵sにより復号する復号部を更に備えるように構成してもよい。
上記の受信部は、排除する受信装置が特定された情報である、排除されていない受信装置の集合Sに関する情報を更に受信し、上記受信装置は、受信装置が集合Sに含まれているか否かを判定する判定部を更に備えるように構成してもよい。
上記判定部において、受信装置が集合Sに含まれていると判定された場合、上記復号部は、セッション鍵sを、以下の式Dに基づいて算出し、算出された当該セッション鍵sを用いることで、暗号化コンテンツを復号化してもよい。
Figure 0004984827
上記課題を解決するために、本発明の第4の観点によれば、n個の受信装置がリーフに割り当てられ、高さが(logn)で表されるY分木構造を階層的に構成し、リーフとルートとの間に存在する中間ノードの下位に存在する複数のリーフからなるサブグループを構成する木構造構成ステップと、リーフおよび中間ノードそれぞれに対して、リーフキーgを割り当てるリーフキー割当ステップと、中間ノードおよびルートに、相異なるパラメータνx,y(x:階層、y:1,2,・・・,Y)とノードパラメータγx,y(x:階層、y:1,2,・・・,Y)とをそれぞれ割り当てるパラメータ割当ステップと、ルートからリーフに至るパスを特定し、当該パス上に存在する中間ノードまたはリーフに割り当てられたリーフキーgと、当該中間ノードまたは当該リーフの親ノードに割り当てられたパラメータνx,yおよびノードパラメータγx,yに基づいて、鍵を算出する鍵算出ステップと、を備える鍵生成方法が提供される。
上記課題を解決するために、本発明の第5の観点によれば、n個の受信装置のなかから排除する受信装置を特定し、排除されていない受信装置の集合Sを決定する、排除受信装置特定ステップを備える暗号化方法が提供される。
上記課題を解決するために、本発明の第6の観点によれば、n個の受信装置がリーフに割り当てられ、高さが(logn)で表されるY分木構造を階層的に構成し、リーフとルートとの間に存在する中間ノードの下位に存在する複数のリーフからなるサブグループを構成し、リーフおよび中間ノードそれぞれに対して、リーフキーgを割り当て、中間ノードおよびルートに、相異なるパラメータνx,y(x:階層、y:1,2,・・・,Y)とノードパラメータγx,y(x:階層、y:1,2,・・・,Y)とをそれぞれ割り当て、ルートからリーフに至るパスを特定し、当該パス上に存在する中間ノードまたはリーフに割り当てられたリーフキーgと、当該中間ノードまたは当該リーフの親ノードに割り当てられたパラメータνx,yおよびノードパラメータγx,yに基づいて算出された鍵を受信するステップを備える鍵処理方法が提供される。
上記課題を解決するために、本発明の第7の観点によれば、コンピュータに、n個の受信装置がリーフに割り当てられ、高さが(logn)で表されるY分木構造を階層的に構成し、リーフとルートとの間に存在する中間ノードの下位に存在する複数のリーフからなるサブグループを構成する、木構造構成機能と、リーフおよび中間ノードそれぞれに対して、リーフキーgを割り当てるリーフキー割当機能と、中間ノードおよびルートに、相異なるパラメータνx,y(x:階層、y:1,2,・・・,Y)とノードパラメータγx,y(x:階層、y:1,2,・・・,Y)とをそれぞれ割り当てるパラメータ割当機能と、ルートからリーフに至るパスを特定し、当該パス上に存在する中間ノードまたはリーフに割り当てられたリーフキーgと、当該中間ノードまたは当該リーフの親ノードに割り当てられたパラメータνx,yおよびノードパラメータγx,yに基づいて、鍵を算出する鍵算出機能と、を実現させるためのプログラムが提供される。
かかる構成によれば、コンピュータプログラムは、コンピュータが備える記憶部に格納され、コンピュータが備えるCPUに読み込まれて実行されることにより、そのコンピュータを上記の鍵生成装置として機能させる。また、コンピュータプログラムが記録された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
上記課題を解決するために、本発明の第8の観点によれば、コンピュータに、n個の受信装置のなかから排除する受信装置を特定し、排除されていない受信装置の集合Sを決定する、排除受信装置特定機能を実現させるためのプログラムが提供される。
かかる構成によれば、コンピュータプログラムは、コンピュータが備える記憶部に格納され、コンピュータが備えるCPUに読み込まれて実行されることにより、そのコンピュータを上記の暗号化装置として機能させる。また、コンピュータプログラムが記録された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
上記課題を解決するために、本発明の第9の観点によれば、コンピュータに、n個の受信装置がリーフに割り当てられ、高さが(logn)で表されるY分木構造を階層的に構成し、リーフとルートとの間に存在する中間ノードの下位に存在する複数のリーフからなるサブグループを構成し、リーフおよび中間ノードそれぞれに対して、リーフキーgを割り当て、中間ノードおよびルートに、相異なるパラメータνx,y(x:階層、y:1,2,・・・,Y)とノードパラメータγx,y(x:階層、y:1,2,・・・,Y)とをそれぞれ割り当て、ルートからリーフに至るパスを特定し、当該パス上に存在する中間ノードまたはリーフに割り当てられたリーフキーgと、当該中間ノードまたは当該リーフの親ノードに割り当てられたパラメータνx,yおよびノードパラメータγx,yに基づいて算出された暗号鍵を受信する受信機能を実現させるためのプログラムが提供される。
かかる構成によれば、コンピュータプログラムは、コンピュータが備える記憶部に格納され、コンピュータが備えるCPUに読み込まれて実行されることにより、そのコンピュータを上記の受信装置として機能させる。また、コンピュータプログラムが記録された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
本発明によれば、排除される契約者数が少ない場合にも、ヘッダサイズを削減することが可能である。
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
(第1の実施形態)
以下に、本発明の第1の実施形態に係る暗号鍵配信システムについて、詳細に説明する。
図1は、本実施形態に係る暗号鍵配信システム10を示した説明図である。暗号鍵配信システム10は、例えば、通信網12と、鍵生成装置20と、暗号化装置30と、受信装置40Aと、受信装置40Bと、を含む。
通信網12は、鍵生成装置20、暗号化装置30および受信装置40を双方向通信又は一方向通信可能に接続する通信回線網である。この通信網は、例えば、インターネット、電話回線網、衛星通信網、同報通信路等の公衆回線網や、WAN(Wide Area Network)、LAN(Local Area Network)、IP−VPN(Internet Protocol−Virtual Private Network)、ワイヤレスLAN等の専用回線網などで構成されており、有線/無線を問わない。
鍵生成装置20は、公開鍵と、複数の受信装置それぞれに固有の秘密鍵とを生成し、公開鍵を公開するとともに、各受信装置に対して、安全な通信路を介して、それぞれの秘密鍵を配信する。なお、この鍵生成装置20は、公開鍵および秘密鍵の生成・管理を行うセンタが所有する。
暗号化装置30は、鍵生成装置20によって生成および公開された公開鍵を用いて、任意のコンテンツを暗号化し、通信網12を介して、各受信装置に配信する。この暗号化装置30は、任意の第三者が所有することが可能であり、また、鍵生成装置20の所有者や、受信装置40の所有者が所有することも可能である。
受信装置40は、暗号化装置30から配信された暗号化されたコンテンツを、固有の秘密鍵によって復号化して利用することが可能である。なお、受信装置40Aと受信装置40Bとは、通信網12または有線を介して互いに接続可能である。なお、この受信装置40は、各契約者によって所有されるものである。
なお、図示の例では、受信装置40として、パーソナルコンピュータ(Personal Computer:PC)等のコンピュータ装置(ノート型、デスクトップ型を問わない。)を示しているが、かかる例に限定されず、ネットワークを介した通信機能を有する機器であれば、例えばPDA(Personal Digital Assistant)、家庭用ゲーム機、DVD/HDDレコーダ、テレビジョン受像器等の情報家電、テレビジョン放送用のチューナやデコーダなどで構成することもできる。また、受信装置40は、契約者が持ち運びできるポータブルデバイス(Portabale Device)、例えば、携帯型ゲーム機、携帯電話、携帯型映像/音声プレーヤ、PDA、PHSなどであってもよい。
次に、本実施形態に係る鍵生成装置20のハードウェア構成について、図2を参照しながら簡単に説明する。
図2は、鍵生成装置20のハードウェア構成を示したブロック図である。鍵生成装置20は、例えば、CPU(Central Processing Unit)201と、ROM(Read Only Memory)203と、RAM(Random Access Memory)205と、HDD(Hard Disk Drive)207と、暗号処理部209と、メモリ(セキュアモジュール)211とを備える。
CPU201は、演算処理装置および制御装置として機能し、各種プログラムに従って鍵生成装置20内の動作全般を制御する。ROM203は、CPU201が使用するプログラムや演算パラメータ等を記憶する。RAM205は、CPU201の実行において使用するプログラムや、このプログラムの実行において適宜変化するパラメータ等を、一次記憶する。
HDD207は、本実施形態に係る鍵生成装置20の記憶部の一例として構成されたデータ格納用の装置である。このHDD207は、ハードディスクを駆動し、CPU201が実行するプログラムや各種データを格納する。暗号処理部209は、本実施形態に係る鍵生成装置20がCPU201の制御のもとで実行する各種の暗号処理を実行する。メモリ(セキュアモジュール)211は、主に、個人秘密鍵や、センタ秘密である乱数等の秘匿が必要な情報を安全に格納するが、このメモリ211の内部に格納された情報は、外部から参照することができないという特徴がある。また、メモリ(セキュアモジュール)211は、例えば、耐タンパ性を有する記憶装置により構成されていてもよい。なお、セキュアモジュールはメモリである旨の記載をしているが、本発明に係るセキュアモジュールは、メモリに限定されるわけではなく、例えば、磁気ディスク、光ディスク、光磁気ディスクであってもよく、また、半導体メモリ等の記憶媒体であってもよい。
上記のCPU201、ROM203、RAM205、HDD207、暗号処理部209、および、メモリ211は、CPUバス等から構成されるバス213により、相互に接続されている。
バス213は、ブリッジを介して、PCI(Peripheral Component Interconnect/Interface)バスなどの入出力インターフェース215に接続されている。
入力部217は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバー等のユーザが操作する操作手段と、使用者による操作に基づいて入力信号を生成し、CPU201に出力する入力制御回路等から構成されている。鍵生成装置20の使用者は、この入力部217を操作することにより、鍵生成装置20に対して各種のデータを入力したり処理動作を指示したりすることができる。
出力部219は、例えば、CRT(Cathode Ray Tube)ディスプレイ装置、液晶ディスプレイ(LCD)装置およびランプ等の表示装置と、スピーカおよびヘッドホン等の音声出力装置等で構成される。出力部219は、例えば、再生されたコンテンツを出力することが可能である。具体的には、表示装置は、再生された映像データ等の各種情報を、テキストまたはイメージで表示する。一方、音声出力装置は、再生された音楽データ等を音声に変換して出力する。
通信部221は、例えば、通信網12に接続するための通信デバイス等で構成された通信インターフェースである。この通信部221は、例えば暗号化装置30や受信装置40A、40Bとの間で、通信網12を介して、暗号鍵に関する情報や、コンテンツ情報等といった、各種データを送受信する。
ドライブ223は、記憶媒体用リーダライタであり、鍵生成装置20に内蔵、あるいは外付けされる。ドライブ223は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体14に記録されている情報を読み出して、RAM205に出力する。
なお、暗号化装置30および受信装置40のハードウェア構成は、鍵生成装置20のハードウェア構成と実質的に同一であるので、説明を省略する。
以上、本実施形態に係る鍵生成装置20、暗号化装置30および受信装置40の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。また、上記のハードウェア構成は、あくまでも一例であり、これに限定されるものでないことは言うまでもない。例えば、HDD207とメモリ(セキュアモジュール)211とを同一の記憶装置により構成してもよい。また、利用形態によっては、バス213、又は入出力インターフェース215等を省略する構成も可能である。以下、上記のようなハードウェア構成により実現される暗号鍵生成方式について詳述する。
基盤技術に関する説明
まず、本発明に係る好適な実施形態について詳細なる説明をするに先立ち、本実施形態を実現する上で基盤を成す技術的事項について述べる。なお、本実施形態は、以下に記載する基盤技術の上に改良を加えることにより、より顕著な効果を得ることができるように構成されたものである。従って、その改良に係る技術こそが本実施形態の特徴を成す部分である。つまり、本実施形態は、ここで述べる技術的事項の基礎概念を踏襲するが、その本質はむしろ改良部分に集約されており、その構成が明確に相違すると共に、その効果において基盤技術とは一線を画するものであることに注意されたい。
従来の公開鍵を利用したコンテンツ配信方式では、センタがコンテンツ配信システムのシステムパラメータkを決定し、このシステムパラメータkに基づくk次のセンタ秘密多項式を構成する。その後、このk次の秘密多項式を用いて、公開鍵PKと、契約者iに固有の秘密鍵d(以下、個人秘密鍵と表記する。)とを生成し、公開鍵PKを公開するとともに、安全な通信路を用いて、契約者iに個人秘密鍵dを配布していた。また、コンテンツ配信時には、暗号文Cとヘッダhとを配信するが、ヘッダhは公開鍵PKを利用して生成されるため、任意の配信者がヘッダhを生成可能となる。この従来の公開鍵を利用したコンテンツ配信方式では、契約者iは個人秘密鍵d一つのみを保持すればよく、また、公開鍵PKを公開することによって、センタ以外の配信者がコンテンツを配信することが可能となる。
しかしながら、個人秘密鍵を生成するためにセキュリティパラメータであるkに基づいたk次多項式を利用しており、k+1人以上の契約者が結託すると、システムの安全性が保持されなくなるという、結託問題が存在していた。
そこで、上記の非特許文献1では、任意数の契約者が結託してもシステムの安全性が保持されるという、公開鍵コンテンツ配信法を提案している。
Boneh,Gentry,Watersらによる非特許文献1に記載の方式は、個人秘密鍵の生成にk次多項式を利用せず、双線形群と呼ばれる巡回乗法群の一種を利用し、この群における契約者iに固有の要素を、個人秘密鍵dとして提供する。また、ヘッダhの生成および各契約者によるセッション鍵sの取得に、双線形写像と呼ばれる演算を利用することによって、従来の公開鍵を利用したコンテンツ配信システムにおいて大きな問題となっていた結託問題を、解決している。
非特許文献1では、まず基本方式として、契約者集合を一つのグループとして取り扱う方式を示している。以下では、図3を参照しながら、この基本方式について説明する。この基本方式では、センタ51が双線形群の生成元gと、センタ秘密であるαを生成し、これらを用いて契約者i(i=1,・・・,n)に、パラメータ

Figure 0004984827
を割り当てる.
また、契約者55の集合を一つのグループとして扱うためのパラメータν=gγを生成し、これらの生成元gおよびパラメータνとを、公開鍵PK=(g,g,・・・,g,gn+2,・・・,g2n,ν)として公開する。さらに契約者iには、iに割り当てられたパラメータ

Figure 0004984827

を用いて、個人秘密鍵

Figure 0004984827
を、安全な一対一通信路53を介して、予め提供しておく。
配信者は、公開鍵PK=(g,g,・・・,g,gn+2,・・・,g2n,ν)から、排除されていない全ての契約者に割り当てられたパラメータ

Figure 0004984827

と、契約者を一つのグループにまとめるためのパラメータν=gγとから、排除されていない全ての契約者に対応する共通のヘッダ要素を一つ作成し、このヘッダ要素と、セッション鍵生成時に利用される乱数要素と、を含んだヘッダ要素を用いて、ヘッダhを生成し、暗号文Cと共に配信する。
このように、基本方式では、契約者集合を一つのグループとして取り扱い、そのグループに対応するヘッダ要素を構成することにより、ヘッダhの大きさ(以下、ヘッダサイズと表記する。)を最小にしている。
しかしながら、全ての契約者を一つのグループとして取り扱うため、各契約者に各々異なるパラメータg,・・・,gを割り当てる必要があるため、公開鍵サイズが、契約者数の二倍以上の大きさになる。また、各契約者がヘッダhからセッション鍵sを取得する際には、自身を除く排除されていない全契約者に対応するパラメータg,・・・,gの積を計算する必要があるため、契約者の総数であるnの値が非常に大きな値となる場合には、契約者に対する計算量の負担が非常に大きくなる。現実的なコンテンツ配信においては、有料放送やDVD等の物理メディア、インターネット等を通じて、非常に多くの契約者に対してコンテンツを配信する必要があるため、以上のような問題点を考慮すると、基本方式は現実的に利用不可能であるといえる。
上記の問題点を解消する方法として、非特許文献1では、契約者集合を複数のサブグループに分割することにより公開鍵サイズを抑えることが可能となる、一般化方式を提案している。一般化方式では、契約者集合を複数のサブグループに分割し、分割された各サブグループに対して、基本方式同様の動作を行っている。従って、サブグループ毎に異なるヘッダ要素を生成する必要があり、ヘッダサイズは増大するが、公開鍵サイズを抑えることが可能となっている。また、各契約者は、分割されたサブグループに所属する各契約者に割り当てられたパラメータの積を計算する必要があるが、基本方式と比較して、契約者集合がサブグループに分割されているため、計算する必要があるパラメータ数を抑えることが可能となり、基本方式における問題点の解消している。
以下では、非特許文献1に記載の一般化方式について、図4〜図8を参照しながら、詳細に説明する。はじめに、上記の一般化方式を説明する上で必要となる記号の定義を示し、非特許文献1において利用される双線形群および双線形写像について説明する。続いて、これらの定義を利用して、非特許文献1に記載の一般化方式の詳細や問題点等について説明する。
<記号の定義>
非特許文献1に記載の一般化方式を説明する上で使用する各記号を、以下のように定義する。
n :契約者の総数
A :契約者グループを複数のサブグループに分割する際の分割数
B :分割されたサブグループに所属する契約者数
PK :システムの公開鍵
:i番目の契約者の個人秘密鍵
r :排除される契約者の総数
p :双線形群の位数となる大きな素数
G,G :位数pの双線形群
g :Gの生成元
M :暗号化されていないコンテンツ(平文)
s :セッション鍵
C :平文Mをセッション鍵sで暗号化したときの暗号文
(M) :平文Mの鍵sによる暗号化
(C) :暗号文Cの鍵sによる復号
e(u,v) :双線形群G上の二つの元u,vに対する双線形写像
<双線形群における双線形写像>
続いて、非特許文献1において用いられる双線形群上の双線形写像に関して説明する。双線形写像e(u,v)とは、巡回乗法群Gの二つの要素u,vを巡回乗法群Gの要素へと変換する写像であり、以下の性質を満たすものである。
1.双線形性:任意のu,v∈G及びa,b∈Zに対して、e(u,v)=e(u,v)abが成立する。
2.非退化性:e(g,g)≠1
続いて、非特許文献1に記載の一般化方法について、各ステップを詳細に説明する。この一般化方法は、主に、鍵生成フェーズ、暗号化フェーズ、復号フェーズという三つのフェーズから構成される。鍵生成フェーズは、センタがシステム構成時に一度だけ実行し、暗号化フェーズは配信者、復号フェーズは契約者が、各々配信ごとに実行する。以下、各フェーズの説明を行う。
<鍵生成フェーズ>
以下では、図4および図5を参照しながら、鍵生成フェーズについて説明する。図4は、非特許文献1の一般化方式における鍵生成フェーズを説明するための説明図である。図5は、非特許文献1の一般化方式における鍵生成フェーズの流れ図である。
センタ51は、以下の手順に従って、各契約者55の個人秘密鍵と公開鍵とを生成する。
まず、センタ51は、大きな素数pを無作為に選択し、選択されたpを位数とする双線形群Gを決定する(ステップS11)。
続いて、センタ51は、上記ステップS11で決定した双線形群Gの生成元であるgと、センタ秘密である乱数α(αは整数である。)とを、それぞれ無作為に選択する(ステップS13)。
次に、センタ51は、分割されたサブグループに所属する契約者の数Bを決定し、分割数Aを以下の計算により決定する。その後、契約者をA個のサブグループに分割する(ステップS15)。
Figure 0004984827
ここで、上式の右辺に示されている記号は、「(n/B)以上の最小の整数」を表す記号である。
続いて、センタ51は、i(i=1,・・・B,B+2,・・・,2B)に対して、リーフキーgを以下のようにして算出する(ステップS17)。
Figure 0004984827
次に、センタ51は、サブグループ数Aに対応するA個の乱数γ(γ,・・・,γ、γは整数。)を無作為に選択する。続いて、双線形群Gに属するν,・・・,νを、以下のようにして算出する(ステップS19)。
Figure 0004984827
続いて、センタ51は、上記のステップS13で選択したgと、ステップS17で算出したgと、ステップS19で算出したνとに基づいて、以下で表される公開鍵PKを決定し、公開する(ステップS21)。
PK=(g,g,・・・,g,gB+2,・・・,g2B,ν,・・・,ν
・・・(式4)
続いて、センタ51は、契約者iが所属するサブグループS(aは、i/B以上の最小の整数である。)と、このサブグループにおける契約者iのインデックスであるb=imodB(ここで、iは1以上B以下の整数である。)に対応するパラメータg、γを選択して、以下の式で算出される契約者iの個人秘密鍵dを生成する(ステップS23)。
Figure 0004984827
続いて、センタ51は、上記のようにして生成した個人秘密鍵dを、安全な一対一通信路53を介して、秘密裏にそれぞれの契約者iに配信する(ステップS23)。
上記のように、非特許文献1における鍵生成フェーズでは、ステップS15において、センタ51がn人の契約者からなる契約者集合をB人ずつA個のサブグループに分割し、ステップS11、ステップS13、ステップS17、ステップS19において、コンテンツ配信システムを運営する上で必要となる各種パラメータを設定している。
また、ステップS21では、生成したパラメータを利用して公開鍵PKを生成し、続くステップS23では、ステップS15において決定したサブグループの分割数Aと、一つのサブグループに所属する契約者数であるBとに基づいて、各契約者の個人秘密鍵を生成している。
この際、各契約者は、自身に与えられた契約者固有の番号により、自身が所属するサブグループと、そのサブグループにおけるインデックスが決定される。上記で説明したように、個人秘密鍵の生成にk次多項式を利用していないため、任意数の契約者が結託したとしても、他契約者の個人秘密鍵偽造や、排除された契約者がヘッダからセッション鍵を取得可能となるような不正鍵を、構成することができなくなっている。
<暗号化フェーズ>
以下では、図6および図7を参照しながら、暗号化フェーズについて説明する。図6は、非特許文献1の一般化方式における暗号化フェーズを説明するための説明図である。図7は、非特許文献1の一般化方式における暗号化フェーズの流れ図である。
配信者57は、以下の手順に従って配信するコンテンツを暗号化し、同報通信路59を介して、非契約者61および契約者63に、暗号化したコンテンツをまとめて配信する。
まず、配信者57は、整数tを無作為に選択し、セッション鍵sを以下のように計算する(ステップS31)。
s=e(gB+1,g)=e(g,g ・・・(式6)
続いて、配信者57は、コンテンツを復号可能な契約者の集合Sを決定し、l=1,・・・,Aに対して、以下のように各サブグループを決定する(ステップS33)。
Figure 0004984827
ここで、添字lはサブグループを表すパラメータであり、上記の式7で表される集合は、パラメータlで表されるサブグループに含まれる契約者および非契約者の集合であり、上記の式8で表される集合は、パラメータlで表されるサブグループ内において、契約者はサブグループ内の何番目の人なのかを表す集合である。
続いて、配信者57は、契約者63がセッション鍵sを算出するために必要なヘッダhを、以下のように構成する(ステップS35)。
Figure 0004984827
次に、配信者57は、ステップS31で算出したセッション鍵sに基づいて、式10に示すように、送信するコンテンツを暗号化する。その後、暗号化したコンテンツCを、ステップS33で決定した集合Sに関する情報およびステップS35で算出したヘッダhとともに、同報通信路59を介して、非契約者61、契約者63を問わず、送信する(ステップS37)。
C=E(M) ・・・(式10)
上述のように、配信時には、配信者57は、暗号化フェーズのステップS31においてセッション鍵を生成した後、ステップS33において各サブグループに所属するコンテンツを復号可能な契約者の集合を決定する。その後、ステップS35において、各サブグループに対応する要素を含んだヘッダhを作成している。このとき、ヘッダhの各要素は、その各サブグループにおいて復号可能な契約者に対応するパラメータgのみによって構成されており、排除された契約者に対応するgは含まれていない。これにより、後に述べる復号時において、非契約者の排除を実現している。
<復号フェーズ>
以下では、図8を参照しながら、復号フェーズについて説明する。図8は、非特許文献1の一般化方式における復号フェーズの流れ図である。
暗号化コンテンツ等の配信を受けた契約者iは、以下の手順に従って、暗号化コンテンツの復号処理を行う。
まず、契約者63は、自身のインデックスであるiが、配信者57により配信された集合Sに含まれているかどうかを確認する(ステップS51)。自身のインデックスiが集合Sに含まれていないならば、自身は排除されたものとして、復号処理を終了する。自身のインデックスiが集合Sに含まれている場合には、引き続き以下の処理を行う。
次に、契約者63は、送信されたヘッダhのうち、自身が所属するサブグループSに対応するヘッダ要素を選択して、セッション鍵sを算出する(ステップS53)。すなわち、ヘッダhは、h=(C,C,・・・,C)のように、それぞれのサブグループに対応するヘッダ要素によって構成されており、自身が所属するサブグループSに対応する要素C、Cを選択し、これらのヘッダ要素に基づき、以下の計算のようにセッション鍵sを取得する。
Figure 0004984827
上記の式11−5と、式6とから明らかなように、契約者63は、配信者57から送信されたヘッダhと公開鍵PK、および、契約者63自身が保有している個人秘密鍵dを用いることによって、配信者57が暗号化に利用したコンテンツ鍵sと同じものを、算出することが可能である。
続いて、契約者63は、上記のステップS53で算出したセッション鍵sを用いて、配信された暗号化コンテンツCを平文Mへと復号する(ステップS55)。
M=D(C) ・・・(式12)
上述のように、復号時には、契約者63は、まずステップS51において、自身が排除されているかどうかを確認する。排除されていた場合は、後述する理由によってセッション鍵sを取得することが不可能となるため、復号処理を終了する。ステップS51での判定により、自身が排除されていないとわかった契約者は、ステップS53において、配信されたヘッダのうち自身が所属するサブグループに対応するヘッダ要素を取り出して、このヘッダ要素と、自身の個人秘密鍵および公開鍵に基づいて、式11−1から式11−5に示した双線形写像による復号演算を行うことによって、セッション鍵sを取得する。そして、算出したセッション鍵sを用いて、暗号文の復号を行う。
ここで、もし排除された契約者が式11−1から式11−5に示した双線形写像による復号演算を実行したとしても、ステップS53中の式11−2における

Figure 0004984827
の部分に、自身のgに対応する値gB+1−bが含まれていないため、非特許文献1において安全性の根拠となるBDHEP(Bilinear Diffie−Hellman Exponential Problem)の困難性から、式11−3への変形が不可能となり、正しいセッション鍵sを計算することが不可能となっている。
このように、非特許文献1の方式は従来のk次多項式を利用する公開鍵コンテンツ配信法において問題となっていた、結託の問題を解決している。また、鍵生成フェーズのステップS15においてセンタが契約者集合をA個のサブグループに予め分割しておくことにより、配信者が生成する必要のあるヘッダは、常にA+1個の要素を持つように構成可能となる。したがって、排除される契約者数に関係なく、ヘッダサイズを一定に保つことが可能となっている。
上記のように、非特許文献1の方式では、常に一定の大きさを持つヘッダを送信する必要がある。そのため、排除される契約者が存在しない、または少ない場合において、効率的なコンテンツ配信が不可能となるという問題点が存在する。実際のコンテンツ配信システムでは、契約者数が非常に大きな値となることが多いため、排除される契約者数は、契約者数全体に対して小さな値となることが多い。また、仮に排除される契約者数が大きくなってしまった場合には、コンテンツ配信システム自体が、崩壊してしまう可能性がある。従って、コンテンツ配信システムとしては、排除される契約者が存在しないか、全体に対して少数にとどまっている場合においては、効率良くコンテンツを配信することが要求される。
しかしながら、上述したように、非特許文献1では、この条件を満たすことが困難となる。さらに非特許文献1では、復号化フェーズのステップS53の式11−1において、双線形写像による演算を行うために、以下の式14で表される、自身の所属するサブグループ内に存在する排除されていない契約者に割り当てられたパラメータと、自身が保持する個人秘密鍵との積を、予め計算しておく必要がある。
Figure 0004984827
ここで、双線形写像による演算をPAIR、双線形群G上での逆元演算をINV、双線形群G上での乗算をMULとし、契約者iが所属するサブグループSにおいて排除された契約者の数をrおくと、復号化フェーズにおいて契約者が実行する必要がある演算の計算量は、「2PAIR+INV+(B−1−r)MUL」と表すことができる。
これより、分割されたサブグループに所属する契約者数Bの値が大きい場合や、自身が所属するサブグループにおいて排除される契約者の数rが小さい場合には、各契約者が復号時に必要とする計算量が増大するという問題点も存在することがわかる。
このように、非特許文献1における一般化方式を利用したとしても、契約者集合の分割数を大きくすると、各契約者におけるコンテンツ復号時の計算量は抑えることが可能となるが、ヘッダサイズが増大する。また、逆に契約者集合の分割数を小さくすると、ヘッダサイズは抑えられるものの、計算量が増大するという問題点が存在する。また、排除される契約者数が少ない場合であっても、常に一定サイズのヘッダhを配信する必要があるため、排除される契約者数がいない、もしくは全体に対して占める割合が少ない、というような現実的に最も起こりうるような状況において、ヘッダサイズを削減することができず、コンテンツ配信時におけるデータの冗長性が高くなるという問題点が存在する。
そこで、本願発明者らは、上記の問題点を解決すべく鋭意研究を行い、以下に説明するような、本発明の一実施形態に係る暗号鍵配信システムを開発した。本実施形態に係る鍵生成装置では、非特許文献1の方式に若干のパラメータを加えて論理木を構成することにより、排除される契約者数が少ない場合においても、非特許文献1に記載の方式よりもヘッダサイズを削減することが可能となる。また、このような構成を取ることにより、契約者が復号時に実行する必要のある演算の計算量を、同等以下に削減することが可能となり、効率的なコンテンツ配信を実現することができる。
本実施形態に係る説明
これまで説明したような基盤技術を踏まえながら、以下において、本実施形態に係る鍵生成装置、暗号化装置および受信装置について、詳細に説明する。本実施形態に係る鍵生成装置20は、非特許文献1の方式を利用した論理木を構成し、この論理木を利用することによって、排除される契約者が存在しない、もしくは少ない場合において、非特許文献1の方式よりも効率的なコンテンツ配信を実現するものである。
まず、本実施形態に係る鍵生成装置20の構成について、図9を参照しながら説明する。図9は、本実施形態に係る鍵生成装置20の構成を示したブロック図である。
鍵生成装置20は、例えば、木構造構成部231と、乱数決定部233と、リーフキー割当部235と、パラメータ割当部237と、鍵算出部239と、記憶部241と、配布部252と、を備える。
木構造構成部231は、本実施形態に係る鍵生成装置の重要な要素である、論理木を構築する。すなわち、対象となるn個の受信装置をリーフに割り当て、高さが(logn)で表されるY分木構造を階層的に構築する。さらに、リーフとルートとの間に存在する中間ノードを、各々親ノードとする、Y分木からなるサブグループを構成する。つまり、木構造構成部231により、1つのノードから下に向かって、常にY本の枝がでているY分木構造が、階層的に積み重ねられる。構築された階層化Y分木構造の全体を見ると、最上位階層(以下、第0階層と称する。)にはルートが1つだけ存在し、このルートの下には、このルートを親ノードとするY個の子ノードが、第1階層として構築される。また、この第1階層に存在するY個の子ノードそれぞれを親ノードとして、第2階層には、さらにY個の子ノードが存在する。このような構造が繰り返され、一番下の階層、すなわち、第(logn)階層には、全体としてn個のリーフが存在する。
ここで、1つのノードから下向きに1本の枝が伸びており、この枝の先に1つのノードが存在する場合に、相対的に上側のノードのことを親ノードと呼び、相対的に下側のノードのことを子ノードと呼ぶこととする。この親ノード、子ノードという概念は相対的なものである。例えば、3つのノードが1本の枝で上下につながっている場合に、最上部のノードを親ノードとした場合には、中間に位置するノードは子ノードとなる。また、最下部のノードに着目した場合には、最下部のノードは、中間に位置するノードを親ノードとする子ノードとなる。
また、階層化された木構造において、最上位階層に存在するルートと、最下位階層に存在するn個のリーフとの間に存在する各ノードを、中間ノードと呼ぶこととする。
乱数決定部233は、本実施形態に係る鍵生成装置が用いる様々な乱数や、双線形群を決定する。すなわち、乱数決定部233は、素数pを無作為に選択して、この素数pを位数とする双線形群Gを決定するほかに、Gの生成元であるgを無作為に選択したり、秘密の乱数である整数αを無作為に選択したりする。
リーフキー割当部235は、木構造構成部231が構築した、階層化されたY分木構造において、末端のn個のリーフと、このリーフとルート以外の全ての中間ノードに対して、リーフキーgを割り当てる。
パラメータ割当部237は、木構造構成部231が構築した、階層化されたY分木構造において、末端のn個のリーフ以外の全てのノード、すなわち、最上位階層のルートと、ルートとリーフとの間に存在する全ての中間ノードに対して、任意のパラメータνx,yを割り当てる。ここで、x、yはそれぞれノードの位置を表す添字であり、xは階層を示すものであり、yは階層xの何番目のノードに当たるかを示すものである。
鍵算出部239は、乱数決定部233が決定した双線形群Gや乱数、リーフキー割当部235が割り当てたリーフキー、およびパラメータ割当部237が割り当てたパラメータ等に基づいて、公開鍵および個人秘密鍵を算出する。
記憶部241は、例えば、木構造記憶部243、乱数記憶部245、リーフキー記憶部247、パラメータ記憶部249、および鍵記憶部251等を含む。これらの記憶部には、各処理部が行った処理の途中で必要となった変数や計算結果、または、処理の結果得られたもの記憶する。木構造構成部231、乱数決定部233、リーフキー割当部235、パラメータ割当部237および鍵算出部239等の各処理部は、この記憶部241に対して、自由にデータを書き込んだり、データを読み出したりすることが可能である。
また、この記憶部241には、上記の記憶部243、245、247、249、251以外にも、様々なデータを記憶させておくことが可能である。なお、図9においては、記憶部241の中に様々な記憶部が個別に存在するように示しているが、様々な記憶部を個別に存在させず、全体として1つの記憶部に様々なデータを記憶させておいてもよい。また、記憶部241としては、セキュアモジュールを備えた記憶媒体を用いることも可能である。
本実施形態に係る鍵生成装置における配布部252は、例えば、送信部253と、公開鍵公開部255とを備える。送信部253は、鍵算出部239が算出し、鍵記憶部251に記憶されている個人秘密鍵を、各受信装置へと送信する。また、公開鍵公開部255は、鍵算出部239が算出し、鍵記憶部251に記憶されている公開鍵を、各受信装置に公開する。
続いて、本実施形態に係る暗号化装置30の構成について、図10を参照しながら説明する。図10は、本実施形態に係る暗号化装置30の構成を示したブロック図である。
図10に示したように、暗号化装置30は、例えば、受信部301と、記憶部303と、排除受信装置特定部305と、セッション鍵決定部307と、コンテンツ記憶部313と、暗号化部315と、コンテンツ送信部317と、を備える。
受信部301は、鍵生成装置20により生成され、公開された公開鍵を受信する。また、受信部301は、公開鍵以外にも、鍵生成装置20により生成された素数pや、排除する受信装置が特定された情報である、排除されていない受信装置の集合Sに関する情報を更に受信することができる。
記憶部303は、例えば、鍵生成装置20によって生成された公開鍵を記憶する。また、公開鍵以外にも、素数pや排除されていない受信装置の集合Sに関する情報等の情報を記憶することが可能である。
排除受信装置特定部305は、暗号化装置30に通信網12を介して接続されている複数の受信装置40の中から、コンテンツの配信を排除する受信装置を特定し、排除されていない受信装置の集合Sを決定する。集合Sの決定に際しては、排除受信装置特定部305は、記憶部303に記憶されている様々なデータを参照することができる。
セッション鍵決定部307は、配信しようとするコンテンツを暗号化するためのセッション鍵sを決定する。このセッション鍵決定部307は、例えば、ヘッダ要素算出部309とヘッダ情報生成部311とを更に備えてもよい。
セッション鍵決定部307がセッション鍵sを算出する際には、整数tを無作為に選択し、公開されている公開鍵を利用して、双線形写像の演算を行う。
ヘッダ要素算出部309は、鍵生成装置20により構築された階層化された木構造において、排除された受信装置が割り当てられたリーフからルートに至るパス上に存在する全てのノードそれぞれにマークをし、マークされたノードに割り当てられたパラメータと、マークされたノードを親ノードとする中間ノードに割り当てられたリーフキーと、に基づいて、ヘッダ要素を算出する。
ヘッダ情報生成部311は、ヘッダ要素算出部309において得られたヘッダ要素と、公開鍵とに基づいて、ヘッダ情報を生成する。
コンテンツ記憶部313は、暗号化されていないコンテンツを記憶する。また、CD(Compact Disk)、DVD(Digital Versatile Disk)やメモリーカード等のメディア媒体から取得したコンテンツを記憶するとしてもよい。ここで、上記のコンテンツとは、例えば、映画、テレビジョン番組、ビデオプログラム、図表等の動画又は静止画からなる映像(Video)コンテンツ、音楽、講演、ラジオ番組等の音声(Audio)コンテンツや、ゲームコンテンツ、文書コンテンツ、ソフトウェアなど、任意のコンテンツデータであってもよい。映像コンテンツは、映像データのみならず、音声データを含んでいてもよい。
暗号化部315は、コンテンツ記憶部313から配信するコンテンツを選び出し、セッション鍵決定部307で算出されたセッション鍵sを用いて、コンテンツを暗号化する。
コンテンツ送信部317は、暗号化部315によって暗号化された暗号化コンテンツと、ヘッダ情報生成部311によって決定されたヘッダと、排除受信装置特定部305によって特定された集合Sとを、通信網12を介して、各受信装置に送信する。
続いて、本実施形態に係る受信装置40の構成について、図11を参照しながら説明する。図11は、本実施形態に係る受信装置40の構成を示したブロック図である。
図11に示したように、受信装置40は、例えば、受信部401と、記憶部403と、判定部405と、復号部407と、を備える。
受信部401は、鍵生成装置20により生成された個人秘密鍵を受信する。また、受信部401は、個人秘密鍵以外にも、鍵生成装置20により生成された公開鍵や、排除する受信装置が特定された情報である、排除されていない受信装置の集合Sに関する情報を更に受信することができる。また、暗号化装置30によって暗号化されたコンテンツについても、受信することが可能である。
記憶部403は、例えば、鍵生成装置20によって生成された公開鍵や個人秘密鍵を記憶する。また、これらの暗号鍵以外にも、排除されていない受信装置の集合Sに関する情報や、配信された暗号化コンテンツや復号されたコンテンツ等のコンテンツ情報を記憶することが可能である。
判定部405は、受信装置自身が、受信した集合Sの中に含まれているか否かを判定する。判定部405の判定結果に伴い、復号部407は、暗号化コンテンツの復号処理を行う。
復号部407は、受信部401が受信したヘッダhと、記憶部403が記憶している公開鍵および個人秘密鍵とを用いて、暗号化コンテンツの復号に必要なセッション鍵sを、算出する。セッション鍵sを算出した後に、復号部407は引き続き、暗号化コンテンツの復号化を行う。
以上、本実施形態に係る鍵生成装置20、暗号化装置30および受信装置40の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、CPU等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
本実施形態に係る暗号鍵配信システム10は、非特許文献1同様、鍵生成、暗号化、および復号という、三つのフェーズから構成される。鍵生成フェーズは、センタがシステム構成時に一度だけ実行する。また、暗号化フェーズは配信者が、復号フェーズは契約者が、各々配信ごとに実行する。なお、本実施形態に係る暗号鍵配信システム10を説明する上で使用する各記号及び演算は、基盤技術の説明の際に定義したものと同一のものとする。以下、初めに本実施形態において構成する論理木に関して定義及び説明を行い、その後、各フェーズについて、詳細に説明する。
<論理木の構成と定義>
本実施形態に係る鍵生成装置20を説明する上で必要となる論理木に関して、まず説明および定義を行う。本実施形態に係る鍵生成装置20では、各契約者をリーフに割り当て、かつ非特許文献1における契約者の分割をこの論理木に割り当てることによって、効率的なコンテンツ配信を実現している。この論理木は、本実施形態に係る鍵生成装置20における、木構造構成部231によって構成される。
なお、簡単のため、本実施形態では、Y分木を利用するものとする。また、全契約者をリーフに割り当てる必要があるため、契約者の総数nが、Yのべき乗で表される値であると仮定する。ただし、実際のコンテンツ配信においては、nがYのべき乗とならない場合も多々存在する。しかし、この場合には、nよりも十分に大きいYのべき乗数のリーフを予め用意しておくことによって、容易に対応することが可能である。以下に、論理木の構成について、各定義を示す。
本実施形態において利用するY分木は、リーフの個数がnであるので、ルートを除くY分木の高さをHとすると、H=lognとなる。また、リーフを除くノードの総数をNとすると、N=(n−1)/(Y−1)となる。よって、Y分木にはルート以外にH個の階層が存在し、ここでは、この階層をLayerと定義する。すなわち、ルートの子ノードの集合をLayer1とし、Layer1の全ノードの子ノード(すなわち、ルートの孫ノード)の集合をLayer2、という形で、Y分木の各階層を、Layer x(x=0,・・・,H)と定義する。ここで、xは、階層を表す添字である。また、Layer xに含まれる各ノードのインデックスを、ノードインデックスと呼ぶこととし、(x,y)、(y=1,・・・,Y)と定義する。このとき、ルートは、Layer0のノードであり、そのインデックスは(0,1)となる。
上記のように定義したY分木の例として、図12に契約者数n=9、分岐数Y=3とした場合を示す。
契約者数nが9であるため、ルートを除く3分木の高さHは、log9=2となる。従って、この3分木には、ルートを含めて3つの階層が存在する。すなわち、ルートを含む階層501がLayer0となり、ルートの子ノードである3つのノードを含む階層503が、Layer1となる。Layer1に存在する3つのノードをそれぞれ親ノードとした場合の子ノードの階層505が、Layer2となる。Layer2には、Layer1に存在する3つのノードそれぞれから、3つの子ノードが形成されるために、全部で9個のリーフが存在することとなる。
また、リーフを除くノードの数N、すなわち、ルートと中間ノードの数の和は、(9−1)/(3−1)=4となる。
リーフを含めたそれぞれのノードに割り当てられるノードインデックスは、例えば、ルートは(0,1)となり、Layer1の3つのノードは、それぞれ左端から(1,1)、(1,2)、(1,3)となる。また、Layer2の9個のノード、すなわちリーフには、左端からそれぞれ(2,1)、(2,2),・・・,(2,9)というノードインデックスが付される。
また、本実施形態に係る鍵生成装置20では、このリーフそれぞれに受信装置40、すなわち、コンテンツ配信に関する契約者507を割り当てる。つまり、Layer2のリーフ(2,1)、(2,2)、・・・、(2,9)には、それぞれ、契約者1(507A)、契約者2(507B)、・・・、契約者9(507I)が割り当てられる。
続いて、前述の論理木に関する定義を利用し、以下に、本実施形態に係る暗号鍵配信システムの具体的な説明を示す。
<鍵生成装置20の動作:暗号鍵生成フェーズ>
センタは、所有する鍵生成装置20を操作し、以下の手順に従って、公開鍵と各契約者の個人秘密鍵とを生成する。以下に、図12、図13および図14を参照しながら、本実施形態に係る鍵生成装置20の動作について、詳細に説明する。図13は、鍵生成装置20による鍵生成の概要を説明するための説明図である。図14は、鍵生成装置20による暗号鍵生成フェーズの流れ図である。
まず、鍵生成装置20の乱数決定部233は、値の大きな素数pを無作為に選択し、選択したpを位数とする双線形群Gを決定する(ステップS101)。ここで、値の大きな素数pとは、桁数の多い素数を意味する。乱数決定部233は、容易に離散対数問題が解けないような桁数の多い素数を選択することで、本実施形態に係る暗号鍵の安全性を担保する。
続いて、乱数決定部233は、双線形群Gの生成元であるgと、センタ秘密である乱数α(αは整数)を、無作為に選択する(ステップS103)。
これらの素数p、双線形群G、生成元gおよび乱数αに関するデータは、例えば、記憶部241中の乱数記憶部245の中に記憶され、リーフキー割当部235、パラメータ割当部237、または暗号鍵算出部239等によって参照される。
続いて、鍵生成装置20の木構造構成部231は、分割されたサブグループに所属する契約者数Yを決定し、分割数Xを以下の計算により決定した後、契約者をX個のサブグループに分割する。さらに、各契約者をリーフとして割り当てたY分木を構成する(ステップS105)。ここで、以下の式101中のnは、契約者の総数である。
Figure 0004984827
例えば、図12に示したように、契約者の総数nが9人であり、Y=3、つまり3分木を構築する場合には、分割数Xは、式101より3となる。
以上のようにして構築されたY分木構造を、木構造構成部231は、記憶部241中の木構造記憶部243に記憶させる。
次に、鍵生成装置20のリーフキー割当部235は、i(i=1,・・・,Y,Y+2,・・・,2Y)に対して、リーフキーgを、以下のようにして算出する(ステップS107)。
Figure 0004984827
上記の式102から明らかなように、リーフキーgの算出にあたっては、乱数決定部233が決定した生成元g、および、センタ秘密である乱数αを用いる。そのため、リーフキー割当部235は、記憶部241中の乱数記憶部245にアクセスして、これらのデータを読み出す。リーフキーを算出した後は、リーフキー割当部235は、算出したリーフキーgを、記憶部241中のリーフキー記憶部247に保存する。
なお、ステップS107においては、リーフキーgを、サブグループに所属する契約者の数であるY個だけでなく、iをY+1を除く2Yまで変化させて、リーフキーgを算出している。gY+1を算出しない理由は、本実施形態に係る暗号鍵配信システム10の安全性を担保するためであり、gY+2からg2Yまでのリーフキーgは、後に述べる復号フェーズで復号を行う際に必要となるからである。
続いて、暗号鍵作成装置20のパラメータ割当部237は、リーフを除く全ノード(x,y)に対応する乱数γx,y(γx,yは整数)を無作為に選択する。続いて、パラメータνx,yを以下のように算出し、Y分木のリーフを除く各ノードに、それぞれ割り当てる(ステップS109)。ここで、x=0,・・・,H−1(Hは、Y分木構造の高さである。)であり、y=1,・・・,Yである。
Figure 0004984827
例えば、図12のように、9人の契約者に対して3分木構造を構築した場合には、3分木構造の高さHは2であるため、xは0または1となる。また、yは、1,2,3となる。つまり、図12の場合は、パラメータ割当部237によって割り当てられるパラメータνx,yは、ν0,1、ν1,1、ν1,2、ν1,3の計4個となる。したがって、γx,yについても、4つの整数が無作為に選択されることとなる。このようにして決定された値に基づき、式103によって、各ノードにパラメータが割り当てられる。
また、パラメータ割当部237によって算出されたパラメータνx,yやノードパラメータγx,y等は、記憶部241中のパラメータ記憶部249に記憶される。
続いて、リーフキー割当部235は、ルートを除く全ノードに対して、gx,yを割り当てる(ステップS111)。ここで、y=1,・・・,Yであり、gx,yは、g,・・・,gからなる集合{g,・・・,g}の元である。以上のように、リーフキー割当部235は、リーフキーgを算出する機能と、算出したリーフキーを、ルートを除く全ノードに割り当てる機能の双方を有する。割り当てた結果は、記憶部241中のリーフキー記憶部247に、木構造に関連付けられて記憶される。
例として、図12に示した場合を考える。この場合、Layer1(503)には、ルートを親ノードとする3つの子ノードが存在し、1つのサブグループを構成している。したがって、ノード(1,1)には、g1,1としてgが、ノード(1,2)には、g1,2としてgが、ノード(1,3)には、g1,3としてgが割り当てられる。
また、Layer2(505)を考えると、このノード(1,1)を親ノードとする3つの子ノード(2,1)、(2,2)、(2,3)からなるサブグループと、ノード(1,2)を親ノードとする3つの子ノード(2,4)、(2,5)、(2,6)からなるサブグループと、ノード(1,3)を親ノードとする3つの子ノード(2,7)、(2,8)、(2,9)からなるサブグループの、計3つのサブグループが存在している。この場合、ノード(2,1)には、g2,1としてgが、ノード(2,2)には、g2,2としてgが、ノード(2,3)には、g2,3としてgが割り当てられる。同様にして、ノード(2,4)には、g2,4としてgが、ノード(2,5)には、g2,5としてgが、ノード(2,6)には、g2,6としてgが割り当てられ、ノード(2,7)には、g2,7としてgが、ノード(2,8)には、g2,8としてgが、ノード(2,9)には、g2,9としてgが割り当てられる。
続いて、鍵生成装置20の鍵算出部239は、公開鍵PKを以下のように構成して、公開鍵公開部255を介して公開する(ステップS113)。
PK=(g,g,・・,g,gY+2,・・,g2Y,ν0,1,・・,νH−1,X
・・・(式104)
上記の式104から明らかなように、公開鍵PKは、乱数決定部233が決定した生成元gと、リーフキー割当部235が算出したリーフキーgと、パラメータ割当部237が算出したパラメータνx,yから構成されている。したがって、鍵算出部239は、記憶部241中の各記憶部245、247、249を参照して、公開鍵PKを構成する。鍵算出部239は、構成した公開鍵PKを、記憶部241中の鍵記憶部251に記憶する。公開鍵公開部255は、この鍵記憶部251を参照して、公開鍵を公開する。なお、鍵算出部239は、構成した公開鍵PKを、直接公開鍵公開部255へと送信してもよい。
例として、図12に示した場合を考える。この場合、公開鍵PKとして公開されるものは、(g,g,g,g,g,g,ν0,1,ν1,1,ν1,2,ν1,3)となる。
続いて、鍵算出部239は、契約者i(i=1,・・・,n)に対して、ルートから契約者iに割り当てられたリーフに至るパスを特定し、そのパス上にあるLayer x上のノードに対する契約者iのインデックスをiとする。すなわち、i=(0,1)であり、i=(H,i)である。センタは、契約者iに割り当てられたルートを除く全ノードi,・・・,iに対して、これらのノードに割り当てられたパラメータgixを特定する。また、リーフを除く全ノードi,・・・,iH−1に割当てられたパラメータγixを特定し、以下のようにして契約者iの個人秘密鍵dを計算する。その後、送信部253は、個人秘密鍵dを、安全な通信路を用いて契約者iに配布する(ステップS115)。
Figure 0004984827
式105から明らかなように、個人秘密鍵dの各要素は、特定したパス上にあるノードiに割り当てられたリーフキーgixと、ノードiの親ノードとなるノードに割り当てられたパラメータγix−1と、に基づいて計算される。すなわち、それぞれの個人秘密鍵dは、各ノードに割り当てられたリーフキーに基づいて算出された鍵のセットであるといえる。なお、上記のステップS115の具体例については、以下で、図15を参照しながら詳細に説明する。
なお、鍵算出部239において、各契約者固有の個人秘密鍵dが算出されると、鍵算出部239は、これらの個人秘密鍵を、記憶部241中の鍵記憶部251に記憶する。送信部253が、各契約者に対して個人秘密鍵dを送信する場合には、送信部253は、記憶部241中の鍵記憶部251を参照して、必要な情報を取得する。また、鍵算出部239が、生成した個人秘密鍵を、直接送信部253へと受け渡すようにしてもよい。
続いて、図15を参照しながら、上記のステップS115の具体例を例示する。図15では、9人の契約者に対して、3分木構造が構築されている。ここで、リーフ(2,3)に割り当てられている契約者3に、個人秘密鍵dを送信する場合を考える。
ルート(0,1)から、契約者3であるリーフ(2,3)へと至るパスは、ルート(0,1)から、中間ノード(1,1)を経由して、リーフ(2,3)へと至るパスとなる。この場合、ルート(0,1)以外のパス上のノードである(1,1)と(2,3)が、それぞれiとiとなる。ここで、ノード(0,1)、(1,1)、(2,3)にそれぞれ割り当てられているパラメータを考える。ノード(0,1)には、γi0として、γ0,1が割り当てられている。ノード(1,1)には、γi1としてγ1,1が割り当てられ、gi1として、g1,1であるgが割り当てられている。また、リーフ(2,3)には、gi2としてg2,3であるgが割り当てられている。
契約者3が保持することとなる個人秘密鍵dは、式105より、ノード(1,1)に割り当てられたリーフキーgをノード(1,1)の親ノードであるルート(0,1)に割り当てられたγ0,1でべき乗したものと、リーフ(2,3)に割り当てられたリーフキーgをリーフ(2,3)の親ノードであるノード(1,1)に割り当てられたγ1,1でべき乗したもののセットとなる。
以上説明したように、本実施形態に係る鍵生成装置20は、図13に示したように、センタ509が所有する鍵生成装置20が、双線形群Gや、各種のパラメータを選択し、公開鍵PKと、契約者固有の個人秘密鍵dを生成する。そして、センタ509は、公開鍵PKを公開するとともに、各契約者507に対して、安全な一対一通信路511を用いて、個人秘密鍵dを配布する。
<暗号化装置30の動作:暗号化フェーズ>
続いて、図16および17を参照しながら、本実施形態に係る暗号化装置30の動作、すなわち暗号化フェーズを、詳細に説明する。図16は、暗号化装置30による暗号化の概要を説明するための説明図である。図17は、暗号化装置30による暗号化フェーズの流れ図である。なお、以下に説明する暗号化フェーズは、暗号化装置30を所有する任意の第三者が行うことも可能である。また、鍵生成装置20の所有者や受信装置40の所有者であっても、暗号化装置30の所有者であれば、以下の暗号化フェーズを行うことが可能である。
以下に説明する暗号化フェーズを実行するに先立ち、暗号化装置30の受信部301は、鍵生成装置20によって生成および公開された公開鍵と、素数pと、木構造に関する情報と、排除されていない受信装置の集合Sに関する情報と、をそれぞれ受信する。受信部301が取得したこれらの情報は、記憶部303に記憶される。記憶部303に記憶されたこれらの情報は、暗号化装置30の各処理部が、自由に読み出すことができる。
まず、排除受信装置特定部305は、排除したい全ての契約者に割り当てられたリーフからルートに至るパス上にある全てのノードをマークし、排除されていない契約者が、ヘッダhから自身に割り当てられたヘッダ要素を特定するためのノードインデックスの集合Sを、S=φ(φは空集合を表す。)として初期化する(ステップS301)。
続いて、セッション鍵決定部307は、任意の整数tを無作為に選択して、セッション鍵sを以下のように算出する(ステップS303)。
s=e(gY+1,g)=e(g,g ・・・(式106)
続いて、ヘッダ要素算出部309は、階層を表すパラメータであるxを−1と設定する(ステップS305)。すなわち、このステップS305は、階層を表すパラメータxの初期化ステップである。
続いて、ヘッダ要素算出部309は、xにx+1を代入して、xの値を1つ増加させる(ステップS307)。
次に、ヘッダ要素算出部309は、yをゼロとして、パラメータの初期化をはかる(ステップS309)。
続いて、ヘッダ要素算出部309は、各layerにおけるノードの位置を表すパラメータであるyに、y+1を代入して、yの値を1つ増加させる(ステップS311)。
次に、ヘッダ要素算出部309は、ノード(x,y)に対応するヘッダ要素cx,yを、cx,y=0として、初期化する(ステップS313)。
以下に示すステップより、ヘッダ要素算出部309は、ヘッダ要素を算出するための具体的な処理を行うこととなる。
続いて、ヘッダ要素算出部309は、ノード(x,y)の子ノードが、全てマークされているか否かを判定する(ステップS315)。判定の結果、全ての子ノードがマークされている場合には、以下に示すステップS321へと進む。また、マークされていない子ノードが存在する場合には、以下のステップS317へと進む。
次に、ヘッダ要素算出部309は、マークされていない子ノードの集合をSx,yとし、Sx,yの各要素をルートとする部分木(サブグループ)に所属する契約者に対応するヘッダ要素を、以下のように算出する(ステップS317)。
Figure 0004984827
また、ヘッダ要素算出部309は、集合Sを以下のように設定する(ステップS317)。
Figure 0004984827
次に、ヘッダ要素算出部309は、Sx,yの各要素をルートとする部分木に対して、その部分木に所属する全ノード(リーフを含む。)をマークする(ステップS319)。
続いて、ヘッダ要素算出部309は、現在着目しているパラメータyが、Yに該当するか否かを判定する(ステップS321)。判定の結果、yがYである場合には、以下に示すステップS323へと移行する。また、yがYではない場合には、ステップS311へと戻って、パラメータyを1増加させる。
次に、ヘッダ要素算出部309は、現在着目しているパラメータxが、H−1であるか否かを判定する(ステップS323)。判定の結果、xがH−1であれば、以下のステップS325へと移行する。また、xがH−1でない場合には、ステップS307へと戻って、パラメータxを1増加させる。
上記のように、ステップS321およびステップS323の条件を共に満足するまで、ステップS307〜ステップS323を繰り返すことで、ヘッダ要素算出部309は、ヘッダ生成に必要な全てのヘッダ要素を算出することが可能である。
すなわち、具体的なヘッダ要素の算出に先立ち、ステップS313において、着目しているノード(x,y)に対応するヘッダ要素cx,yをゼロに初期化しているため、ステップS315において、着目しているノード(x,y)の子ノードが全てマークされている場合には、ノード(x,y)のヘッダ要素cx,yはゼロのままで記憶される。一方、着目しているノード(x,y)の子ノードが全てマークされていない場合には、ステップS317において、cx,yに新たな値が代入されるため、cx,yはゼロではない値を有することとなる。
上記のステップを繰り返すことで得られたヘッダ要素の全てを、ヘッダ要素算出部309は、ヘッダ情報生成部311へと受け渡す。また、ヘッダ要素算出部309は、算出したヘッダ要素を、記憶部303に記憶してもよい。
続いて、ヘッダ情報生成部311は、生成元gと、ステップS303で選択したtと、を用いて、gを計算する。また、ヘッダ要素cx,yがゼロではないヘッダ要素のみを利用して、ヘッダhを以下のように構成する(ステップS325)。
h=(g,c0,1,・・・,cH−1,X) (cx,y≠0) ・・・(式109)
ヘッダ情報生成部311は、ヘッダ情報を生成すると、生成したヘッダhを暗号化部315へと受け渡す。また、ヘッダ情報生成部311は、生成したヘッダhを、記憶部303に記憶してもよい。
続いて、暗号化部315は、暗号化されていない配信予定のコンテンツMをコンテンツ記憶部313から受け取り、セッション鍵決定部307が決定したセッション鍵sを用いて、以下のように、コンテンツMを暗号化する。その後、コンテンツ送信部317は、暗号化したコンテンツCを、ヘッダ情報生成部311が生成したヘッダhおよびノードインデックスの集合Sと共に、契約者へと送信する(ステップS327)。
C=E(M) ・・・(式110)
続いて、図18〜図20を参照しながら、本実施形態に係る暗号化フェーズについて、具体的に説明する。図18〜図20は、本実施形態に係る暗号化フェーズについて、具体的に説明するための説明図である。図18〜図20では、3分木構造が構築され、リーフに9人の契約者が割り当てられている場合である。
以下の例では、排除したい契約者が契約者2および契約者3である場合を説明する。図18に示したように、契約者2にはリーフ(2,2)が割り当てられ、契約者3にはリーフ(2,3)が割り当てられている。この場合、排除したい契約者である契約者2からルートへ至るパスは、リーフ(2,2)からノード(1,1)を経由してルート(0,1)へと至る、図18において点線で示したパスである。同様に、排除したい契約者である契約者3からルートへ至るパスは、リーフ(2,3)からノード(1,1)を経由してルート(0,1)へと至る、図18において点線で示したパスである。この場合、排除受信装置特定部261は、ルート(0,1)、ノード(1,1)、リーフ(2,2)、および、リーフ(2,3)にマークを付すこととなる。なお、図18では、マークが付されたノードを、点線で囲んで示している。その後、セッション鍵決定部307により、ステップS303が実行され、セッション鍵sが決定される。
続いて、ヘッダ要素算出部309により、ステップS305〜ステップS311が実行される。その結果、パラメータxには0が代入され、パラメータyには1が代入される。続いて、ヘッダ要素算出部309は、ステップS313を実行する。この場合、ノード(0,1)に対するヘッダ要素c0,1がゼロに初期化される。続いて、ヘッダ要素算出部309は、ステップS315を実行し、ルート(0,1)の子ノードが全てマークされているかを判定する。図19から明らかなように、ルート(0,1)の子ノードは(1,1)、(1,2)、(1,3)の3つであるが、ノード(1,2)および(1,3)には、マークが付されていない。したがって、ヘッダ要素算出部309は、ステップS317を実行することとなる。
図19の場合、マークされていない子ノードの集合S0,1は、{(1,2),(1,3)}となる。また、ノード(1,2)にはgが、ノード(1,3)にはgがそれぞれ割り当てられているため、ヘッダ要素c0,1を算出すると、(ν0,1・g・gとなる。
続いて、ヘッダ要素算出部309は、ステップS319を実行する。ステップS319により、S0,1の要素であるノード(1,2)をルートとする部分木の全ノードである、ノード(1,2)、リーフ(2,4)、リーフ(2,5)、リーフ(2,6)にマークが付されることとなる。S0,1のもうひとつの要素であるノード(1,3)についても同様に、ノード(1,3)、リーフ(2,7)、リーフ(2,8)、リーフ(2,9)にマークが付されることとなる。
ヘッダ要素算出部309によるステップS321の判定は、y=1となっているため、条件を満たすこととなる。したがって、ヘッダ要素算出部309は、引き続き、ステップS323の判定を行う。この場合、x=0≠1であるので、分岐条件は満たされてはいない。したがって、ヘッダ要素算出部309は、ステップS307に戻って、x=1として、処理を繰り返すこととなる。
再度戻ってきたステップS307から、ステップS311まで順に処理が行われると、xには1が、yには1が代入されている。したがって、次は、ノード(1,1)に対して、同様な処理を行う。
この場合、ノード(1,1)のマークされていない子ノードの集合S1,1は、{(2,1)}のみである。同様にして、ヘッダ要素の算出が行われ、ヘッダ要素c1,1として、(ν1,1・gが算出される。そして、ステップS319により、ノード(1,1)をルートとする部分木の全ノードにマークが付されるため、未だマークが付されていなかったリーフ(2,1)に対しても、マークが付されることとなる。
その結果、ルートおよびリーフを含む、3分木構造の全てのノードに対してマークが付されるため、ステップS323における判定では、分岐条件を満足することとなる。
上記の処理により、ヘッダ情報生成部311は、ヘッダ要素cx,yの値がゼロではないヘッダ要素、すなわち、c0,1とc1,1を用いて、ヘッダhを構成することとなる。したがって、ヘッダhとしては、(g,c0,1,c1,1)が構成されることとなる。また、配信されるコンテンツを復号可能な契約者の集合を意味するSは、上記の処理により、{(1,2),(1,3),(2,1)}となる。
以上説明したように、本実施形態に係る暗号化コンテンツ配信ブロックは、図16に示したように、配信者513が、公開鍵PKと、自身が選択した乱数tとを用いて、セッション鍵sと、ヘッダhとを算出する。同時に、配信者513は、コンテンツを復号可能な契約者の集合Sも決定する。そして、配信者513は、同報通信路515を介して、契約者507、非契約者517を問わず、暗号化コンテンツC、ヘッダh、および集合Sを配信する。
<受信装置40の動作:復号フェーズ>
続いて、図21を参照しながら、本実施形態に係る受信装置40の動作、すなわち復号フェーズを、詳細に説明する。図21は、受信装置40による鍵処理方法である、復号フェーズの流れ図である。
まず、暗号化コンテンツC、ヘッダh、集合Sを受信部401により受信した受信装置40は、これらの情報を、一旦記憶部403に記憶する。この後、暗号化コンテンツCの復号処理が行われる。
まず、受信装置40の判定部405は、記憶部403に記憶されている集合Sを参照して、自身に割り当てられたリーフからルートに至るまでの各ノードのうち、集合Sに含まれるものが存在するか否かを判定する(ステップS501)。判定の結果、集合Sに含まれるノードが存在しなければ、自身は排除されたものとして、以下の復号処理を終了する。また、判定の結果、集合Sに含まれるノードが存在する場合には、集合Sに含まれるノードのノードインデックスを(x’,y’)として、以下のステップS503を行うこととなる。
受信装置40の復号部407は、受信部401が受信し記憶部403に記憶されているヘッダhの各要素のうち、ノード(x’,y’)の親ノード(x,y)に対応するヘッダ要素cx,yとgとを選択する(ステップS503)。ここで、ノード(x’,y’)の親ノード(x,y)は、以下の式で表される。
Figure 0004984827
また、復号部407は、公開鍵と、自身の個人秘密鍵dからノード(x’,y’)に対応する要素とを利用して、以下のようにセッション鍵sを取得する(ステップS503)。
Figure 0004984827
続いて、復号部407は、得られたセッション鍵sを用いて、暗号化されたコンテンツCを復号し、平文Mを得る(ステップS505)。
M=Ds(C) ・・・(式113)
続いて、図22を参照しながら、本実施形態に係る復号フェーズを、具体的に説明する。図22は、本実施形態に係る復号フェーズを具体的に説明するための説明図である。図22では、3分木構造が構築され、リーフに9人の契約者が割り当てられている場合である。
以下の例では、排除したい契約者が契約者2および契約者3であるとして、契約者1〜9に暗号化コンテンツC、ヘッダh、集合Sが配信されている場合を想定する。以下では、リーフ(2,4)に割り当てられた契約者4が、配信されたコンテンツを復号する場合について、詳細に説明する。
図22の場合、契約者4自身に割り当てられたリーフ(2,4)から、ルート(0,1)に至るまでに含まれるノードは、上記のリーフ(2,4)、ノード(1,2)、ルート(0,1)である。ここで、契約者4が使用している受信装置40の判定部405は、受信部401が受信した集合Sに関する情報のなかに、上記の3つのノードが含まれているかを判定する。
図22の場合、契約者2および契約者3が排除したい契約者であるため、集合Sは、{(1,2),(1,3),(2,1)}となっている。これより、契約者4が割り当てられたリーフ(2,4)の親ノードである、ノード(1,2)が、集合Sに含まれていることがわかる。そのため、判定部405は、ステップS501の分岐条件が満たされていると判断し、復号部407が、引き続き復号処理を行う。
この場合、ステップS503におけるノード(x’,y’)が、ノード(1,2)に該当する。そのため、ノード(x’,y’)の親ノード(x、y)は、ルート(0,1)となる。そこで、復号部407は、ノード(0,1)に対応するヘッダ要素c0,1と、gとを選択する。また、自身の個人秘密鍵dから、ノード(0,1)に対する要素である、ν0,1に関する要素と、公開鍵PKとを利用して、セッション鍵sを算出する。具体的には、セッション鍵sを得るための双線形群写像は、以下の式のようになる。
Figure 0004984827
以上、本実施形態に係る暗号鍵配信システム10における鍵生成、暗号化、および復号という、三つのフェーズの一例を、詳細に説明した。
なお、コンピュータを、上述したような本実施形態に係る鍵生成装置20、暗号化装置30および受信装置40として機能させるためのコンピュータプログラムを、作成することも可能である。コンピュータプログラムは、コンピュータが備える記憶部に格納され、コンピュータが備えるCPUに読み込まれて実行されることにより、そのコンピュータを上記の鍵生成装置20、暗号化装置30および受信装置40として機能させる。また、コンピュータプログラムが記録された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
続いて、以下では、本実施形態に係る暗号鍵配信システム10と、基盤技術である非特許文献1に記載のコンテンツ配信システムとの比較を行うこととする。
基盤技術である非特許文献1の方法は、公開鍵を利用したコンテンツ配信システムにおいて、双線形写像を利用することにより、結託問題を解決した方式である。この方式は、予め契約者を複数のサブグループに分割しておき、コンテンツ配信時に、サブグループ毎に異なるヘッダ要素をすべて含むヘッダを配信している。これにより、排除される契約者数が増加したとしても、ヘッダサイズを一定の値とすることが可能となる。しかしながら、現実的なコンテンツ配信システムにおいて想定される、排除される契約者がいない、もしくは少ない場合においても、常に一定サイズのヘッダを配信する必要があるため、配信効率が悪くなるという問題点が存在する。
また、分割されたサブグループに所属する契約者数Bが大きな値である、もしくは自身が所属するサブグループにおいて、排除される契約者数が少ない場合には、復号時に契約者が実行する必要がある演算の計算量が、大きくなるという問題点も存在する。
これに対して、本実施形態に係る鍵生成装置では、基盤技術の方式を利用して論理木を構成し、若干のパラメータ増加を許すことによって、サブグループの構成を柔軟にし、特に排除される契約者がいないもしくは少ない場合において、配信されるヘッダサイズを削減可能とするとともに、契約者が実行する必要がある演算の計算量を、基盤技術に記載の方式と同等以下に削減することを可能とするものである。以下、基盤技術と本実施形態との主な相違点について、フェーズ毎の違いに着目して説明するとともに、ヘッダサイズおよび復号時に必要となる計算量に関して、具体的な数値例を用いて比較する。
<鍵生成フェーズの相違点>
はじめに、鍵生成フェーズにおける相違点について述べる。基盤技術の方式では、ステップS11およびステップS13において各種パラメータを設定した後、ステップS15において、契約者をB人ずつA個のサブグループに分割している。本実施形態においても同様に、ステップS101およびステップS103において各種パラメータを設定し、ステップS105において、契約者をY人ずつX個のサブグループに分割している。
しかしながら、本実施形態では、さらにステップS105において、契約者をリーフに割り当てたY分木構造を構成している。これにより、基盤技術では、ステップS19において、各サブグループに対応するヘッダ要素を一つにまとめるために利用するセンタ秘密であるγ,・・・,γや、これらのセンタ秘密に対応する公開の値ν,・・・,νが、サブグループの分割数であるA個必要となるのに対し、本実施形態では、ステップS105において構成したY分木のうち、リーフを除く全てのノードに対してサブグループを構成することが可能になるため、リーフを除く全ノード数であるN個の値が必要となる。
また、基盤技術では、契約者iが所属するサブグループは、以下の式で表されるS一つのみである。

Figure 0004984827
そのため、センタは、契約者iに対して、個人秘密鍵

Figure 0004984827
を秘密裏に配布するが、本実施形態では、ステップS105おいて論理木を構成した後、ステップS109において、論理木の各ノードを、サブグループの再構成に利用することが可能であるため、契約者iは、自身に割り当てられたリーフからルートに至る全ノードによって構成される複数のサブグループに、所属しておく必要がある。
したがって、本実施形態におけるステップS115では、契約者iに対して、複数の個人秘密鍵を保持する必要がある。このように、鍵生成フェーズにおいて、本実施形態では論理木を構成しているため、必要とされるパラメータが、基盤技術におけるものよりも、若干増加している。しかしながら、排除される契約者が存在しない、または少ない場合において、次に示す暗号化フェーズで生成されるヘッダのヘッダサイズを、基盤技術よりも削減することが可能となる。
<暗号化フェーズの相違点>
次に、暗号化フェーズに関して説明する。基盤技術では、ステップS31においてセッション鍵を生成し、その後、ステップS33において、サブグループ毎に排除されない契約者を選定して、それらの契約者に割り当てられたサブグループにおける契約者インデックスの集合Sl(l=1,・・・,A)を決定している。その後、ステップS35において、各サブグループにおける排除されていない契約者のみがセッション鍵を取得可能なヘッダ要素を計算し、ヘッダを構成している。したがって、サブグループに所属する契約者が全員排除されない限り、全てのサブグループに対応するヘッダ要素を、計算する必要がある。そのため、ヘッダサイズは、排除される契約者数rの大小に関わらず、常に一定となる。
これに対して本実施形態では、ステップS301において、排除される契約者に割り当てられたリーフからルートに至る全てのノードをマークし、排除されていない契約者が、ヘッダhから自身に割り当てられたヘッダ要素を特定するための、ノードインデックスの集合を、Sとしている。その後、ステップS303において、基盤技術と同様の手法によってセッション鍵sを生成し、ステップS305からステップS325において、マークされていないノードに割り当てられている契約者のみが、セッション鍵sを取得することが可能なヘッダ要素を計算し、ヘッダhを構成している。
より詳細には、本実施形態のステップS317において、Layer xに所属するノードのうち、マークされていないノードに対するヘッダ要素を作成している。これは、基盤技術におけるステップS35の動作と同様の動作である。ただし、基盤技術では、すでにサブグループがA個存在しているため、ステップS35においてA個のヘッダ要素を生成する必要があるのに対して、本実施形態では、ステップS317において、あるノードの子ノード集合についてのみ実行しており、ステップS307からステップS323において、この処理を繰り返している。
ここで、ステップS315からステップS319において示したように、一度ヘッダ要素が生成されたノードに対しては、そのノードを頂点とする部分木に所属する全てのノードをマークすることによって、これらのノードに対応するヘッダ要素を、生成する必要がなくなる。これにより、パス上に、そのノードを含む全ての排除されていない契約者に対するヘッダ要素を、まとめることが可能になるという利点が生じる。したがって、排除されている契約者が少ない場合には、より多くのノードをまとめることが可能となり、ヘッダサイズを削減することが可能となっている。
<復号フェーズの相違点>
最後に、復号フェーズに関して述べる。基盤技術では、ステップS53において、排除されていない契約者が、自身の所属するサブグループに対応するヘッダ要素を取得し、このヘッダ要素と公開鍵及び個人秘密鍵を利用して、セッション鍵を導出している。これに対して本実施形態では、ステップS503において、排除されていない契約者が、自身に割り当てられたリーフからルートに至るパス上に存在するノードのうち、Sに含まれるノードの親ノードに対応するヘッダ要素を取得し、このヘッダ要素と公開鍵及び個人秘密鍵を利用して、セッション鍵を導出している。
これは、対応するヘッダ要素および使用する個人秘密鍵が異なるのみであり、基盤技術と同様の動作である。ただし、基盤技術の復号フェーズにおいて、契約者が実行する必要のある演算の計算量は、2PAIR+INV+(B−1−r)MULであるのに対し、本実施形態では、2PAIR+INV+(Y−1−r)MULとなる。
<ヘッダサイズおよび計算量に関する比較>
基盤技術では、契約者集合をB人ずつA個のサブグループに分割し、コンテンツ配信時には、サブグループ毎に対応するヘッダ要素を生成し、全てのヘッダ要素を一括してヘッダとして配信している。従って、そのヘッダサイズは排除される契約者数rの大小に関わらず、常にA+1となる。これは、ヘッダサイズが一定に抑えられるという利点を有する一方で、排除される契約者数に関わらずヘッダサイズを削減不可能であるという欠点でもある。現実的なコンテンツ配信システムでは、全契約者数に対する排除される契約者数の割合が小さい範囲で、効率よくコンテンツを配信可能であることが要求されるため、安全性および利便性を重視して基盤技術の方式を利用したとしても、コンテンツ配信時におけるヘッダサイズの冗長性が大きくなってしまうという問題点が存在する。
基盤技術においてこの問題を改善するためには、契約者集合の分割数Aを小さくすることにより、ヘッダサイズそのものを小さくすることが考えられる。しかし、この場合には、分割されたサブグループに所属する契約者数であるBの値が大きくなり、各契約者が実行する必要のある演算の計算量の値2PAIR+INV+(B−1−r)MULが大きくなってしまうという問題点が存在する。
これに対して本実施形態では、基盤技術同様、契約者集合をY人ずつX個のサブグループに分割している。しかし、さらにその上、若干のパラメータを追加することにより、分割したサブグループの各契約者をリーフとするY分木を構成している。これによって、基盤技術では、排除された契約者が存在するかどうかに関わらず、ヘッダサイズがA+1となっているものを、排除された契約者が存在しないサブグループに所属する各契約者は、ルートを最上位とした場合、より上位のLayerのメンバとして扱うことが可能となる。そのため、複数のサブグループを一つのサブグループとして扱うことが可能となり、ヘッダサイズを削減することを可能としている。また、各契約者が実行する必要のある演算の計算量は、上記のように2PAIR+INV+(Y−1−r)MULとなるが、YはB以下であるとして設定することにより、基盤技術の方式と同等以下に、計算量を削減することが可能となっている。
以上、基盤技術と比較しながら説明したように、本発明は、公開鍵を利用したコンテンツ配信方式の一方式であり、基盤技術と比較して、以下の特徴を有する。
第1に、本実施形態では、基盤技術の方式にパラメータを追加することによって論理木を構成し、追加したパラメータを、論理木の各ノードに割り当てている。
第2に、センタである鍵生成装置は、各契約者に対して、論理木に割り当てられたパラメータに関連する情報を、追加の個人秘密鍵として、予め配布しておく。
第3に、暗号化コンテンツの配信者は、暗号化装置を操作して、契約者が排除された場合には、共通鍵を利用したコンテンツ配信方式同様、ノードごとの排除を行ったヘッダhを生成する。
第4に、各契約者は、受信装置を操作して、基盤技術と同様の方法により、公開鍵PK、ヘッダh、および個人秘密鍵dから、セッション鍵sを算出する。
第5に、基盤技術の方式を、上記第1〜第4の特徴のようにして構成することにより、契約者における復号時に必要となる計算量を、基盤技術の方式と同等以下に削減することが可能となる。
第6に、基盤技術の方式を、上記第1〜第4の特徴のようにして構成することにより、排除される契約者が少ない場合には、基盤技術よりもヘッダサイズを削減することが可能となる。
本実施形態の効果をより詳細に説明するために、具体例としてパラメータn、A、B、X、Yを小さな値に設定した場合における、ヘッダサイズ及び復号時に必要となる計算量の比較について、図23〜図26に示す。
基盤技術では、分割されたサブグループに含まれる契約者数Bの値を、契約者数nに対してB=(n)1/2として設定することを推奨している。これに対して本実施形態では、基盤技術のBに対応するパラメータである論理木の分岐数Yを、YはB以下であると設定することにより、ヘッダサイズ及び計算量の点で効率化を図ることが可能である。
よって以下では、比較のため、契約者数nを同一とし、Y<Bと設定した。基盤技術と本実施形態におけるヘッダサイズおよび復号時に必要となる演算の計算量比較を、各々図23および図24に示す。また、Y=Bとした場合のヘッダサイズ及び復号時に必要となる計算量比較を、各々図25および図26に示す。
具体的な数値として、図23および図24では、基盤技術の方式における各パラメータを、n=64、A=8、B=8とし、本実施形態では、n=64、X=16、Y=4とした。また、図25および図26では、n=64、X=8、B=Y=8とした。ただし、利用する双線形群やその大きさについては、簡単のため同一のものとした。
(Y<Bと設定した場合について)
はじめに、図23および図24について説明する。図23の横軸は、排除された契約者数を表し、縦軸は、ヘッダサイズ(ヘッダ要素の総数)を表す。また、図24の横軸は、排除された契約者数を表し、縦軸は、復号時に必要となる演算の計算量を表す。ただし、復号時に必要となる演算の計算量に関して、基盤技術と本実施形態の違いに影響するのは双線形群G上での乗算部分においてのみであるため、図24の縦軸は、双線形群G上での乗算回数を表すものとする。また、図23における実線は、基盤技術の方式におけるヘッダサイズを表し、破線は、本実施形態におけるヘッダサイズを表している。また、図24における実線は、基盤技術の方式における計算量を表し、破線は、本実施形態における計算量を表している。
ヘッダサイズの比較に関しては、図23より明らかなように、排除される契約者数rが4より小さい場合には、本実施形態に係る方式の方が、基盤技術の方式に比べてヘッダサイズが少なくなることがわかった。すなわち、この場合、全契約者に対して約6%程度までの契約者が排除されても、本実施形態に係る方式の方が、効率的にコンテンツを配信可能であることを示している。
復号時に必要となる計算量の比較に関しては、図24より明らかなように、排除される契約者数rが60より小さい場合には、本実施形態に係る方式の方が、基盤技術の方式よりも、計算量が少ないことがわかった。これは、本実施形態に係る方式の方が、効率的にコンテンツを復号可能であることを示している。また、排除される契約者数が60を超えた場合においても、基盤技術の方式における計算量と同等であることがわかった。したがって、上記のようにパラメータを設定した場合においては、排除される契約者が存在しない、あるいは少ない場合において、本実施形態に係る方式の方が、基盤技術に係る方式よりも、ヘッダサイズを小さくすることが可能であり、さらに、各契約者が復号時に実行する必要のある演算の計算量を、少なくすることが可能である。そのため、本実施形態に係る方式の方が、基盤技術に係る方式よりも、効率的にコンテンツ配信を実現することが可能であるといえる。
(Y=Bと設定した場合について)
次に、図25および図26について説明する。図25および図26は、前述の図23および図24に対してXおよびYの値を変更したのみであるため、その横軸および縦軸、ならびに、実線、破線が表すものは、図23および図24のそれと同一である。
X=A=8、Y=B=8とした場合のヘッダサイズの比較に関しては、図25より明らかなように、排除される契約者数rが7より小さい場合には、本実施形態に係る方式の方が、基盤技術に係る方式よりも、ヘッダサイズが少なくなることがわかった。すなわち、この場合、全契約者に対して約9%程度までの契約者が排除されても、本実施形態に係る方式の方が、効率的にコンテンツを配信可能であることを示している。排除される契約者数が7以上となった場合においても、基盤技術の方式と同等のヘッダサイズとなっており、排除される契約者数に関わらず、ヘッダサイズを基盤技術の方式以下に削減することが可能となっている。
また、復号時に必要となる計算量の比較に関しては、図26より明らかなように、排除される契約者数rに関わらず、基盤技術の方式と同等であることがわかった。よって、各パラメータをX=A=8、Y=B=8と設定した場合には、排除される契約者が存在しない、あるいは少ない場合において、ヘッダサイズを削減することが可能であると共に、復号時の計算量は、基盤技術の方式と同等で済むことがわかった。
以上より、本実施形態を適用することにより、基盤技術と同様の利便性、安全性を維持したまま、より現実的なコンテンツ配信システムにおいて、基盤技術よりも効率的なコンテンツ配信を実現することが可能となることがわかる。
以上説明したように、本発明は、公開鍵を利用してコンテンツを安全に配信するコンテンツ配信システムにおいて、従来の方式よりも、配信されるデータ量の削減および復号時に必要となる計算量の削減を実現する方法である。本発明の実施により、従来の公開鍵を利用したコンテンツ配信法と比較して、より効率的なコンテンツ配信が実現可能となる。
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明はかかる例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
例えば、上記の木構造構成部231は、上から下に枝が広がった木構造を想定していたが、必ずしもこれに限定されず、下から上、左から右、又は右から左に向かって枝が広がった木構造を有していてもよい。
また、本明細書の各流れ図における各ステップは、必ずしも流れ図として記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むとしても良い。
本発明の好適な実施形態に係る暗号鍵生成システムを説明するための説明図である。 同実施形態に係る鍵生成装置のハードウェア構成を説明するためのブロック図である。 本発明の基盤技術の基本方式に係る鍵生成の概略を説明するための説明図である。 本発明の基盤技術の一般化方式に係る鍵生成の概略を説明するための流れ図である。 本発明の基盤技術の一般化方式に係る鍵生成フェーズを説明するための流れ図である。 本発明の基盤技術の一般化方式に係る暗号化の概略を説明するための説明図である。 本発明の基盤技術の一般化方式に係る暗号化フェーズを説明するための流れ図である。 本発明の基盤技術の一般化方式に係る復号フェーズを説明するための流れ図である。 本発明の好適な実施形態に係る鍵生成装置の構成を説明するためのブロック図である。 同実施形態に係る暗号化装置の構成を説明するためのブロック図である。 同実施形態に係る受信装置の構成を説明するためのブロック図である。 同実施形態に係る論理木の具体例を説明するための説明図である。 同実施形態に係る鍵生成の概略を説明するための説明図である。 同実施形態に係る鍵生成フェーズを説明するための流れ図である。 同実施形態に係る鍵生成の具体例を説明するための説明図である。 同実施形態に係る暗号化の概略を説明するための説明図である。 同実施形態に係る暗号化フェーズを説明するための流れ図である。 同実施形態に係る暗号化の具体例を説明するための説明図である。 同実施形態に係る暗号化の具体例を説明するための説明図である。 同実施形態に係る暗号化の具体例を説明するための説明図である。 同実施形態に係る復号フェーズを説明するための流れ図である。 同実施形態に係る復号の具体例を説明するための説明図である。 契約者に配信されるヘッダのヘッダサイズを比較したグラフ図である。 双線形群上での乗算の回数を比較したグラフ図である。 契約者に配信されるヘッダのヘッダサイズを比較したグラフ図である。 双線形群上での乗算の回数を比較したグラフ図である。
符号の説明
10 暗号鍵配信システム
12 通信網
14 リムーバブル記録媒体
20 鍵生成装置
30 暗号化装置
40 受信装置
201 CPU
203 ROM
205 RAM
207 HDD
209 暗号処理部
211 メモリ
213 バス
215 入出力インターフェース
217 入力部
219 出力部
221 通信部
223 ドライブ
231 木構造構成部
233 乱数決定部
235 リーフキー割当部
237 パラメータ割当部
239 鍵算出部
241 記憶部
243 木構造記憶部
245 乱数記憶部
247 リーフキー記憶部
249 パラメータ記憶部
251 鍵記憶部
252 配布部
253 送信部
255 公開鍵公開部
301 受信部
303 記憶部
305 排除受信装置特定部
307 セッション鍵決定部
309 ヘッダ要素算出部
311 ヘッダ情報生成部
313 コンテンツ記憶部
315 暗号化部
317 コンテンツ送信部
401 受信部
403 記憶部
405 判定部
407 復号部

Claims (8)

  1. n個の受信装置がリーフに割り当てられ、高さが(logn)で表されるY分木構造を階層的に構成し、前記リーフとルートとの間に存在する中間ノードの下位に存在する複数の前記リーフからなるサブグループを構成する、木構造構成部と、
    前記リーフおよび前記中間ノードそれぞれに対して、リーフキーgを割り当てるリーフキー割当部と、
    前記中間ノードおよび前記ルートに、相異なるパラメータνx,y(x:階層、y:1,2,・・・,Y)とノードパラメータγx,y(x:階層、y:1,2,・・・,Y)とをそれぞれ割り当てるパラメータ割当部と、
    前記ルートから前記リーフに至るパスを特定し、当該パス上に存在する前記中間ノードまたは前記リーフに割り当てられた前記リーフキーgと、当該中間ノードまたは当該リーフの親ノードに割り当てられた前記パラメータνx,yおよび前記ノードパラメータγx,yに基づいて、鍵を算出する鍵算出部と、
    を備える、
    鍵生成装置。
  2. 前記鍵生成装置は、前記鍵算出部により算出された前記パス上の鍵セットを各受信装置それぞれに配布する配布部を、更に備える、
    請求項1に記載の鍵生成装置。
  3. 前記鍵生成装置は、
    素数pを無作為に選択し、前記素数pを位数とする双線形群Gを決定し、前記Gの生成元であるgを無作為に選択し、秘密の乱数α(αは整数)を無作為に選択する乱数決定部を更に備え、
    前記リーフキー割当部は、以下の式Aを満たす前記リーフキーgを算出する、
    請求項1に記載の鍵生成装置。
    Figure 0004984827
  4. 前記パラメータ割当部は、前記リーフを除く全てのノードと前記ルートのそれぞれに対して、ノードパラメータγx,y(γx,yは整数)を無作為に選択し、以下の式Bで表されるパラメータνx,yを算出する、
    請求項3に記載の鍵生成装置。
    Figure 0004984827
  5. 前記鍵算出部は、前記中間ノードまたは前記リーフに割り当てられた前記リーフキーgの、当該中間ノードまたは当該リーフの親ノードに割り当てられた前記パラメータγx,y乗で得られる値を、秘密鍵とし、
    前記配布部は、前記鍵算出部において算出された秘密鍵を各受信装置に送信する送信部を更に備える、
    請求項4に記載の鍵生成装置。
  6. 前記鍵算出部は、前記リーフキーgおよび前記パラメータνx,yに基づき、公開鍵を算出し、
    前記配布部は、前記公開鍵を公開する公開鍵公開部を備える、
    請求項5に記載の鍵生成装置。
  7. n個の受信装置がリーフに割り当てられ、高さが(logn)で表されるY分木構造を階層的に構成し、前記リーフとルートとの間に存在する中間ノードの下位に存在する複数の前記リーフからなるサブグループを構成する木構造構成ステップと、
    前記リーフおよび前記中間ノードそれぞれに対して、リーフキーgを割り当てるリーフキー割当ステップと、
    前記中間ノードおよび前記ルートに、相異なるパラメータνx,y(x:階層、y:1,2,・・・,Y)とノードパラメータγx,y(x:階層、y:1,2,・・・,Y)とをそれぞれ割り当てるパラメータ割当ステップと、
    前記ルートから前記リーフに至るパスを特定し、当該パス上に存在する前記中間ノードまたは前記リーフに割り当てられた前記リーフキーgと、当該中間ノードまたは当該リーフの親ノードに割り当てられた前記パラメータνx,yおよび前記ノードパラメータγx,yに基づいて、鍵を算出する鍵算出ステップと、
    を備える、
    鍵生成方法。
  8. コンピュータに、
    n個の受信装置がリーフに割り当てられ、高さが(logn)で表されるY分木構造を階層的に構成し、前記リーフとルートとの間に存在する中間ノードの下位に存在する複数の前記リーフからなるサブグループを構成する、木構造構成機能と、
    前記リーフおよび前記中間ノードそれぞれに対して、リーフキーgを割り当てるリーフキー割当機能と、
    前記中間ノードおよび前記ルートに、相異なるパラメータνx,y(x:階層、y:1,2,・・・,Y)とノードパラメータγx,y(x:階層、y:1,2,・・・,Y)とをそれぞれ割り当てるパラメータ割当機能と、
    前記ルートから前記リーフに至るパスを特定し、当該パス上に存在する前記中間ノードまたは前記リーフに割り当てられた前記リーフキーgと、当該中間ノードまたは当該リーフの親ノードに割り当てられた前記パラメータνx,yおよび前記ノードパラメータγx,yに基づいて、鍵を算出する鍵算出機能と、
    を実現させるためのプログラム。
JP2006294639A 2006-10-30 2006-10-30 鍵生成装置、暗号化装置、受信装置、鍵生成方法、暗号化方法、鍵処理方法、およびプログラム Expired - Fee Related JP4984827B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2006294639A JP4984827B2 (ja) 2006-10-30 2006-10-30 鍵生成装置、暗号化装置、受信装置、鍵生成方法、暗号化方法、鍵処理方法、およびプログラム
CN2007800408108A CN101536400B (zh) 2006-10-30 2007-08-17 密钥生成设备、加密设备、接收设备、密钥生成方法、加密方法及密钥处理方法
US12/447,872 US8600052B2 (en) 2006-10-30 2007-08-17 Key generation device, encryption device, reception device, key generation method, key processing method, and program
EP07792625A EP2068489A1 (en) 2006-10-30 2007-08-17 Key generation device, encryption device, reception device, key generation method, encryption method, key processing method, and program
PCT/JP2007/066002 WO2008053629A1 (fr) 2006-10-30 2007-08-17 Dispositif de génération de clé, dispositif de codage, dispositif de réception, procédé de génération de clé, procédé de codage, procédé de traitement de clé et programme
KR1020097006550A KR20090084809A (ko) 2006-10-30 2007-08-17 키생성장치, 암호화장치, 수신장치, 키생성방법, 암호화방법, 키처리방법 및 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006294639A JP4984827B2 (ja) 2006-10-30 2006-10-30 鍵生成装置、暗号化装置、受信装置、鍵生成方法、暗号化方法、鍵処理方法、およびプログラム

Publications (3)

Publication Number Publication Date
JP2008113201A JP2008113201A (ja) 2008-05-15
JP2008113201A5 JP2008113201A5 (ja) 2009-10-22
JP4984827B2 true JP4984827B2 (ja) 2012-07-25

Family

ID=39343980

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006294639A Expired - Fee Related JP4984827B2 (ja) 2006-10-30 2006-10-30 鍵生成装置、暗号化装置、受信装置、鍵生成方法、暗号化方法、鍵処理方法、およびプログラム

Country Status (6)

Country Link
US (1) US8600052B2 (ja)
EP (1) EP2068489A1 (ja)
JP (1) JP4984827B2 (ja)
KR (1) KR20090084809A (ja)
CN (1) CN101536400B (ja)
WO (1) WO2008053629A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5365072B2 (ja) * 2007-12-11 2013-12-11 ソニー株式会社 鍵生成装置、暗号化装置、受信装置、鍵生成方法、暗号化方法、鍵処理方法およびプログラム
CN101325481B (zh) * 2008-07-29 2010-12-29 成都卫士通信息产业股份有限公司 一种分组授权控制方法
WO2011061285A1 (en) * 2009-11-19 2011-05-26 Nagravision S.A. Method for public-key attribute-based encryption with respect to a conjunctive logical expression.
US8862896B2 (en) * 2010-12-06 2014-10-14 Apple Inc. Data protection using key translation
US8483390B2 (en) * 2011-09-30 2013-07-09 Hong Kong Applied Science & Technology Research Institute Company, Ltd. Systems and methods for broadcast encryption optimization and scalability
KR20130049542A (ko) * 2011-11-04 2013-05-14 삼성전자주식회사 메모리 소자 및 이를 포함하는 메모리 시스템
KR101301609B1 (ko) * 2012-05-31 2013-08-29 서울대학교산학협력단 비밀키 생성 장치 및 방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
KR101827813B1 (ko) 2012-11-14 2018-03-22 삼성에스디에스 주식회사 비밀키 생성 방법을 기반으로 한 암복호화 방법 및 서명 방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
JP6275536B2 (ja) * 2014-04-16 2018-02-07 日本放送協会 限定受信システム、ならびに、コンテンツ配信装置、コンテンツ受信装置およびそれらのプログラム
CN106160995B (zh) * 2015-04-21 2019-04-16 郑珂威 基于系数映射变换的多项式完全同态加密方法及系统
CN106649340A (zh) * 2015-10-30 2017-05-10 北京国双科技有限公司 条件过滤数据的存取方法及装置
CN107517206A (zh) * 2017-08-18 2017-12-26 北京北信源软件股份有限公司 一种安全通信的方法、装置、可读介质和存储控制器
JP2020068437A (ja) * 2018-10-23 2020-04-30 株式会社アメニディ アクセス管理装置、及びプログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7010125B2 (en) * 2001-01-26 2006-03-07 Interntional Business Machines Corporation Method for tracing traitor receivers in a broadcast encryption system
US7039803B2 (en) * 2001-01-26 2006-05-02 International Business Machines Corporation Method for broadcast encryption and key revocation of stateless receivers
CA2371124A1 (en) * 2001-02-09 2002-08-09 Itaru Kawakami Information processing method/apparatus and program
KR100904572B1 (ko) * 2001-03-29 2009-06-25 소니 가부시끼 가이샤 정보 처리 장치
US7096356B1 (en) * 2001-06-27 2006-08-22 Cisco Technology, Inc. Method and apparatus for negotiating Diffie-Hellman keys among multiple parties using a distributed recursion approach
CN1656792A (zh) * 2002-05-21 2005-08-17 皇家飞利浦电子股份有限公司 条件访问系统
US7721089B2 (en) * 2003-05-21 2010-05-18 Ntt Docomo, Inc. Broadcast encryption using RSA
KR20050078773A (ko) * 2004-02-02 2005-08-08 삼성전자주식회사 브로드캐스트 암호화 방법을 위한 사용자 키 할당 방법
KR100657265B1 (ko) * 2004-06-23 2006-12-14 삼성전자주식회사 자기 규제 방법 및 이를 이용한 콘텐츠 송수신 방법
KR100579515B1 (ko) * 2004-10-08 2006-05-15 삼성전자주식회사 브로드캐스트 암호화를 위한 키 생성 장치 및 방법
KR101092543B1 (ko) * 2004-11-12 2011-12-14 삼성전자주식회사 브로드캐스트 암호화를 위한 사용자 키 관리 방법
KR100640058B1 (ko) * 2004-11-23 2006-11-01 삼성전자주식회사 브로드캐스트 암호화를 위한 사용자 키 관리 방법
KR100717005B1 (ko) * 2005-04-06 2007-05-10 삼성전자주식회사 폐기 키를 결정하는 방법 및 장치와 이것을 이용하여복호화하는 방법 및 장치
KR20080030344A (ko) * 2006-09-29 2008-04-04 삼성전자주식회사 바이리니어 맵을 이용한 브로드캐스트 암호화를 위한 방법및 장치

Also Published As

Publication number Publication date
CN101536400B (zh) 2013-06-26
US8600052B2 (en) 2013-12-03
CN101536400A (zh) 2009-09-16
KR20090084809A (ko) 2009-08-05
EP2068489A1 (en) 2009-06-10
US20100067702A1 (en) 2010-03-18
JP2008113201A (ja) 2008-05-15
WO2008053629A1 (fr) 2008-05-08

Similar Documents

Publication Publication Date Title
JP4984827B2 (ja) 鍵生成装置、暗号化装置、受信装置、鍵生成方法、暗号化方法、鍵処理方法、およびプログラム
US7739492B2 (en) Encrypted communication for selectively delivering a message to multiple decrypting devices
US20100086133A1 (en) Key Providing System, Key Providing Apparatus, Terminal Device, Key Providing Method, and Key Generation Method
US8300814B2 (en) Information processing unit, terminal unit, information processing method, key generation method and program
JP2005286959A (ja) 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム
WO2008059672A1 (fr) Dispositif de traitement d'informations
JP2008131076A (ja) 情報処理装置、端末装置、情報処理方法、鍵生成方法、及びプログラム
Bhattacharjee et al. Affine Boolean classification in secret image sharing for progressive quality access control
JP4748206B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP2008131072A (ja) 情報処理装置、端末装置、情報処理方法、及び鍵生成方法
JP2007189597A (ja) 暗号化装置および暗号化方法、並びに復号化装置および復号化方法
JP4452105B2 (ja) 復号情報生成装置及びそのプログラム、配信用コンテンツ生成装置及びそのプログラム、並びに、コンテンツ復号装置及びそのプログラム
JP2008113203A (ja) 鍵生成装置、暗号化装置、受信装置、鍵生成方法、暗号化方法、鍵処理方法、およびプログラム
JP4875481B2 (ja) 暗号化情報生成装置及びそのプログラム、秘密鍵生成装置及びそのプログラム、配信用コンテンツ生成装置及びそのプログラム、並びに、コンテンツ復号装置及びそのプログラム
JP2009124193A (ja) 情報処理装置、鍵設定方法、及びプログラム
JP2009065345A (ja) Sd法におけるクライアント端末被覆方法およびプログラム
Begum et al. Design and implementation of multilevel access control in medical image transmission using symmetric polynomial based audio steganography
JP2008131079A (ja) 情報処理装置、端末装置、情報処理方法、及び鍵生成方法
JP2009171016A (ja) 暗号化情報生成装置及びそのプログラム、配信用コンテンツ生成装置及びそのプログラム、並びに、コンテンツ復号装置及びそのプログラム
JP2007266722A (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP2007020025A (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP2012109649A (ja) 暗号化情報生成装置及びそのプログラム、秘密鍵生成装置及びそのプログラム、配信用コンテンツ生成装置及びそのプログラム、コンテンツ復号装置及びそのプログラム、並びに、ユーザ特定装置及びそのプログラム
JP6275536B2 (ja) 限定受信システム、ならびに、コンテンツ配信装置、コンテンツ受信装置およびそれらのプログラム
JP5357785B2 (ja) 暗号化情報生成装置及びそのプログラム、秘密鍵生成装置及びそのプログラム、配信用コンテンツ生成装置及びそのプログラム、コンテンツ復号装置及びそのプログラム、並びに、ユーザ特定装置及びそのプログラム
JP2007266723A (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090908

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090908

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120124

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120313

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: 20120403

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120416

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees