JP6290443B2 - 通信制御装置、通信制御方法およびプログラム - Google Patents

通信制御装置、通信制御方法およびプログラム Download PDF

Info

Publication number
JP6290443B2
JP6290443B2 JP2016556172A JP2016556172A JP6290443B2 JP 6290443 B2 JP6290443 B2 JP 6290443B2 JP 2016556172 A JP2016556172 A JP 2016556172A JP 2016556172 A JP2016556172 A JP 2016556172A JP 6290443 B2 JP6290443 B2 JP 6290443B2
Authority
JP
Japan
Prior art keywords
node
group
key
leaf node
mkb
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.)
Active
Application number
JP2016556172A
Other languages
English (en)
Other versions
JPWO2016067471A1 (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Publication of JPWO2016067471A1 publication Critical patent/JPWO2016067471A1/ja
Application granted granted Critical
Publication of JP6290443B2 publication Critical patent/JP6290443B2/ja
Active 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2237Vectors, bitmaps or matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/185Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

本発明の実施形態は、通信制御装置、通信制御方法およびプログラムに関する。
ネットワークで接続された多数の機器の管理を効率的に行うために、機器をグループで管理する方法が存在する。グループによる管理法には、予め決められたグループ構造を利用する静的な管理法と、状況に応じてグループを生成および削除する動的な管理法が存在する。
M. Baugher et al.、 "RFC 3547、 The Group Domain of Interpretation"、 [online]、 July 2003、 retrieved from the Internet: <URL: http://www.ietf.org/rfc/rfc3547.txt>
しかしながら、動的なグループ管理方法は、状況に応じて柔軟な管理が可能であるが、スケーラビリティの確保が課題となる。
本発明は、上記に鑑みてなされたものであって、スケーラビリティを確保しながら動的なグループ管理を実現できる通信制御装置、通信制御方法およびプログラムを提供することを目的とする。
実施形態の通信制御装置は、受付部と、生成部と、出力部と、を備える。受付部は、葉ノードそれぞれにインデックスおよびノード鍵が割り当てられた二分木と、葉ノードのうちグループに属する葉ノードを識別するノードIDと、の入力を受け付ける。生成部は、ノードIDで識別される葉ノードのみをそれぞれ含む二分木の部分木の根ノードに割り当てられたノード鍵を用いてグループ鍵を暗号化した暗号文を生成し、生成した暗号文を含む集合情報を生成する。出力部は、集合情報を、少なくともグループに属する葉ノードに対応づけられる通信装置に対して出力する。
本実施形態のグループ管理木の構造の一例を示す図。 実施形態にかかる通信システムのブロック図。 第1の実施形態にかかる通信制御装置のブロック図。 第1の実施形態にかかる通信装置のブロック図。 第1の実施形態における通信制御処理のフローチャート。 第1の実施形態における生成処理のフローチャート。 左優先の場合のCheck()関数のフローチャート。 右優先の場合のCheck()関数のフローチャート。 左優先の場合の生成処理を表す擬似コードを示す図。 生成処理の処理結果の一例を示す図。 第1の実施形態におけるグループ制御処理のフローチャート。 変形例1の生成処理のフローチャート。 リスト生成処理のフローチャート。 左優先の場合の変形例1のCheck()関数のフローチャート。 左優先の場合の変形例1の生成処理を表す擬似コードを示す図。 第2の実施形態にかかる通信制御装置のブロック図。 第2の実施形態にかかる通信装置のブロック図。 第2の実施形態における通信制御処理のフローチャート。 第2の実施形態におけるグループ制御処理のフローチャート。 第3の実施形態にかかる通信制御装置のブロック図。 第3の実施形態にかかる通信装置のブロック図。 第3の実施形態における通信制御処理のフローチャート。 第3の実施形態におけるグループ制御処理のフローチャート。 本実施形態にかかる通信制御装置のハードウェア構成図。
以下に添付図面を参照して、この発明にかかる通信制御装置の好適な実施形態を詳細に説明する。
(第1の実施形態)
GDOI(The Group Domain of Interpretation)は、マルチキャストを用いて、グループメンバの参加と離脱、および、グループ鍵の安全な配布を行うための技術である。GDOIでは、グループの作成、グループの更新、および、グループ鍵の配布を行うことができる。しかし、GDOIでは、グループメンバの更新ごとに、ほとんどすべてのメンバにおいて、階層構造を持つ鍵情報(LKH_DOWNLOAD_ARRAY)が更新される。そのため、1つの通信装置が複数のグループに所属するような場合には、単一の通信装置が複数のLKH_DOWNLOAD_ARRAYを持つことが必要となり、効率的な管理を行うことが困難である。
そこで、本実施形態では、MKB(メディアキーブロック)という技術を用いてグループ操作を行う。MKBを用いることにより、単一のデバイス鍵(LKH_DOWNLOAD_ARRAYに相当する鍵束)によって、複数グループへの所属を効率的に管理することが可能である。
例えば、グループ管理木(詳細は後述)を用いることにより、グループに属する通信装置の範囲を示す範囲情報、および、この範囲情報で示される範囲の通信装置が処理できるMKB(MKBフラグメント)が得られる。なお、MKBを用いなくてもグループに属するかを管理(判定)することは可能である。例えば、グループ管理木から生成される集合情報(詳細は後述)と範囲情報とが得られれば、グループに属するか否かを判定できる。この場合は、MKB(MKBフラグメント)は生成しなくてもよい。
MKBとは、対応するデバイス鍵を用いて処理を行うことで、メディアに記録されたコンテンツを復号するためのメディア鍵を導出可能なデータである。MKBは1以上の要素を含む。典型的なMKBは、1つのメディア鍵を1以上のデバイス鍵でそれぞれ暗号化することで生成される1以上の暗号文(要素)を含む。さらに、MKBは、各暗号文を処理するためのデバイス鍵を特定する情報を含んでも良い。MKBが含む暗号文の個数は、対応するデバイス鍵に依存して決まる。そのため、対応するデバイス鍵によっては、MKBは、非常に多くの暗号文を要素として含む場合がある。
本実施形態では、MKBを処理することで得られるメディア鍵を、グループに属する1以上の通信装置で共有されるグループ鍵として用いる。すなわち、グループに属する通信装置が保持するデバイス鍵で処理することでグループ鍵を導出できるMKBを配布する。このように、グループに属する通信装置にのみグループ鍵を配布できることを用いて、通信装置のグループ管理を実現している。メディア鍵をグループ鍵として用いるため、MKBの代わりにGKB(グループキーブロック)と表現することもできる。
MKBによってグループ管理(操作)を行う場合、あるMKBを処理してグループ鍵を取り出すことができたメンバはグループに所属する(現在所属していなければ、グループに新規参加する)という制御が行われる。また、グループ鍵の取得に失敗したメンバは当該グループに所属しない(現在所属していれば、グループから離脱する)という制御が行われる。
しかし、対象となるメンバの数が非常に大きくなった場合、グループ操作用のMKBのサイズが極めて大きくなる可能性がある。従って、そのままMKBを通信ネットワークに配布した場合、通信負荷が極めて大きくなる可能性がある。
そこで、本実施形態では、ネットワーク負荷を軽減するために、複数の暗号文を要素として含むMKBを分割して送付する。しかし、上記のようなグループ制御方法を前提とする場合、単純に暗号文ごとにMKBを分割送付しても、意図した通りのグループ制御を行うことができない場合がある。例えば、通信装置が分割されたMKBを受信して、かつ、当該MKBからグループ鍵を取得できなかった場合、当該通信装置はグループからの離脱処理を行う。しかし、実際には、当該通信装置が処理してグループ鍵を取得することができるようなMKBが後から到着する可能性があるからである。
この問題を回避するため、MKBによるグループ操作の対象となる通信装置の集合を定める情報を、当該MKBに付す。例えば、対象となる通信装置を識別する装置ID(以下、デバイスIDという)の範囲を、通信装置の集合を定める情報として利用できる。例えば、数値的に連続したデバイスIDが割り振られている場合、第1のデバイスIDと第2のデバイスIDで、第1のデバイスIDと第2のデバイスIDで特定される範囲に属するデバイスIDの集合を表すことができる。この集合には、第1のデバイスID以上、かつ、第2のデバイスID以下であるデバイスIDが属する。規則に従ってデバイスIDが割り振られていれば、上述のように、2つのデバイスIDで範囲を表し、その規則より範囲に含まれるデバイスIDを特定することや、デバイスIDがその範囲に含まれるか否かを判定することができる。通信装置の範囲を定める情報が付されたMKBを受け取った通信装置は、以下の擬似コードに示すような動作を行う。
当該通信装置自身が指定範囲に含まれているか否かチェックする;
if(集合に含まれている){
MKBを処理;
if(グループ鍵取得成功){
if(現在グループに所属){
グループ更新;

else{ if(現在グループに所属していない){
グループに参加;


else{
if(現在グループに所属){
グループ離脱;


当該通信装置自身が指定された集合(範囲)に含まれているか否かチェックする。もし、指定された集合に含まれているならば、当該通信装置が保持しているデバイス鍵によりMKBを処理し、グループ鍵の取得に成功し、かつ、グループに参加しているならば、導出したグループ鍵を用いて、参加しているグループの情報を更新する。グループ鍵の取得に成功し、かつ、グループに参加していないならば、導出したグループ鍵を用いて、グループに参加する。グループ鍵の取得に失敗し、かつ、グループに参加しているならば、グループより離脱する。
このように、本実施形態では、最初に通信装置がグループ操作の対象装置であるか否かをチェックする。そして、自身がグループ操作の対象ではない場合、グループ操作を実行しない。これにより、分割されたMKBによっても、意図しないグループ離脱動作が起きないようにすることができる。
次に、本実施形態で用いるMKBの構造について説明する。図1は、本実施形態で用いるMKBで使用されるグループ管理木の構造の一例を示す図である。図1に示すように、本実施形態では、CS(Complete Subtree)法に従う完全二分木構造のグループ管理木が用いられる。この完全二分木は、例えば対象システムのすべての通信装置をカバーする木(完全二分木Tとする)でもよいし、対象システムのすべての通信装置のうち、一部の通信装置(例えばグループ操作の対象となる通信装置)の集合のみをカバーする木(完全二分木Tの部分木T’とする)であってもよい。以下、図1では完全二分木Tが用いられるものとして説明する。
上述のように、各通信装置は、対象システムで一意なデバイスIDを持つ。完全二分木Tの葉ノードは、それぞれ1つの通信装置に対応する。従って、通信装置をグループで管理することは、葉ノードをグループで管理することに置き換えられる。
葉ノードは、対応する通信装置のデバイスIDと等しいインデックスを持つ。破線の丸で示す葉ノードは、リボーク(グループから離脱)されたノード(リボークノード)を表す。太線は、ルート(根)からリボークノードまでのパス上のエッジを表す。三角形は、リボークされていない葉ノードのみを含む部分木(部分木s)を表す。塗りつぶされたノードは、この部分木sの根ノードを表す。
完全二分木Tの各ノードには、異なる暗号鍵(ノード鍵)が割り当てられるかもしれない。各通信装置は、完全二分木Tの根ノードから対応する葉ノードに至るパス上の各ノードに割り当てられたノード鍵を含むデバイス鍵が予め設定されるかもしれない。
なお、ノード鍵の割り当て、および、デバイス鍵の設定は行わなくてもよい。例えば、上述のようにMKBを用いずにグループを管理する場合は、MKBを生成する必要はないため、ノード鍵の割り当ておよびデバイス鍵の設定は不要となる。
また、各ノードには、少なくともノードを識別する情報(ノードID)が属性として割り当てられる。ノードIDは、例えば、(d(ノードの深さ),b(ビットマップ))で表される。ノードnの深さdは(H−H)で表される。ノードnは、完全二分木Tに含まれる各ノードである。Hは完全部分木Tの高さ、Hはノードnの高さである。ノードID(d,b)で識別されるノードのインデックスindex(b,d)は、ビットマップbの先頭dビットの値で表される。
ビットマップbは、例えば図1に示すように「0」または「1」を1以上含む値である。図1で示すインデックスは、完全二分木Tの根ノードから葉ノードまでの経路について、左に進んだ場合に0を割り当て、右に進んだ場合に1を割り当てることで得られる。
グループ管理木から生成されるMKBは、例えば以下の要素を含む。iは部分木sのルートノードである。
(ノードiのインデックス,Enc(iのノード鍵,グループ鍵))
図1のグループ管理木の例では、次の4つの要素を含むMKBが生成される。これらは、ノード000、010、10、110にそれぞれ対応する。ただし、Kgはグループ鍵を表し、例えばEnc(k(000),Kg)はKgをk(000)で暗号化したデータを表す。
(000,Enc(k(000)、Kg),(010,Enc(k(010)、Kg),(10,Enc(k(10)、Kg),(110,Enc(k(110)、Kg)
本実施形態では、このような構造のMKBが、それぞれ一部の要素を含む複数のMKB(MKBフラグメント)に分割され、分割されたMKBフラグメントが通信装置に対してマルチキャスト通信またはブロードキャスト通信などにより送信される。
以下、本実施形態の詳細について説明する。図2は、本実施形態にかかる通信システムの構成の一例を示すブロック図である。図2に示すように、本実施形態の通信システムは、通信装置200a〜200fと、通信制御装置100とが、ネットワーク60で接続された構成となっている。ネットワーク60は、インターネットなどのあらゆるネットワーク形態を適用できる。各通信装置200a〜200fは、通信制御装置100と直接接続されている必要はない。
通信制御装置100は、1つに限られるものではなく、2以上の通信制御装置を備えるように構成してもよい。通信装置200a〜200fは同様の構成を備えるため、以下では単に通信装置200という場合がある。通信装置200の個数は6に限られるものではない。
図2に示すように、本実施形態では、通信制御装置100が、各通信装置200に対してグループ操作コマンドを送信する。グループ操作コマンドは、例えば、集合情報、および、範囲情報(例えばデバイスIDの範囲)を含む。グループ操作コマンドが、更新後のグループを識別するグループIDを含んでもよい。
集合情報は、グループに属する(通信装置に対応する)葉ノードのみを含む部分木(例えば図1の部分木s)を所定数含む集合を示す情報である。集合情報は、例えば、集合に含まれる部分木の葉ノードに対応づけられる通信装置がグループ鍵を導出できるように分割されたMKB(MKBフラグメント)を含んでもよい。このように、本実施形態では、MKB全体ではなく、所定数ごとに部分木sを含むように生成される集合情報に対応して分割されたMKBフラグメントを通信装置200に送信する。
範囲情報は、集合情報が示す集合に含まれる各部分木の葉ノードに割り当てられたインデックスの範囲を示す。上述のようにインデックスは対応する通信装置のデバイスIDと等しいため、範囲情報によってグループ操作の対象となる通信装置のデバイスIDの範囲が特定される。集合情報および範囲情報の生成方法の詳細は後述する。
図3は、通信制御装置100の構成例を表すブロック図である。図3に示すように、通信制御装置100は、グループ情報記憶部121と、アドレス記憶部122と、鍵記憶部123と、受付部101と、生成部102と、出力部103と、を備える。
グループ情報記憶部121は、1以上の通信装置200が所属するグループのグループIDと、グループIDで識別されるグループに属する通信装置200を識別するデバイスIDとを含むグループ情報を記憶する。つまり、グループ情報記憶部121は、グループIDと、グループIDで識別されるグループに属する通信装置200のデバイスIDとを対応付けて記憶する。
本実施形態では、グループ情報記憶部121は、予め、1以上のグループIDを記憶しているとするが、グループ情報記憶部121を備えず、外部装置より受け取ったグループ情報に基づき、グループ操作を行うようにしてもよい。
アドレス記憶部122は、1以上の通信装置200が所属するマルチキャストグループを特定する情報(マルチキャストグループID、マルチキャストアドレスなど)と、マルチキャストグループに属する通信装置200のデバイスIDとを対応づけて記憶する。マルチキャストグループは、MKBによるグループ操作の対象となるグループと独立に管理されるグループの一例である。マルチキャストアドレスは、例えば、対応する各デバイスIDの通信装置200に対してマルチキャスト通信で情報を送信するためのアドレスである。マルチキャスト通信を用いない場合(例えばブロードキャスト通信を用いる場合)、アドレス記憶部122を備えないように構成してもよい。
本実施形態では、アドレス記憶部122は、予めマルチキャストグループを特定する情報を記憶しているとするが、外部装置より受け取った情報に基づき、アドレス記憶部122に新たな情報を追加したり、既に記憶されている情報の更新を行ったりするように構成しても良い。
鍵記憶部123は、通信装置200それぞれに割り当てられるデバイス鍵を記憶する。MKBがCS法などにより生成される場合、鍵記憶部123が、木構造のノードに対応づけてデバイス鍵を記憶してもよい。上述のようにMKBを用いずにグループの管理のみを行う場合は、鍵記憶部123は備えなくてもよい。
受付部101は、通信制御装置100で用いる各種情報の入力を受け付ける。例えば、受付部101は、通信装置200などの外部装置から各種情報を受信する。受付部101は、例えば、グループ制御の要求、および、グループ制御の対象を指定する情報などを受信する。グループ制御の要求とは、グループの新規作成、グループの変更(グループに属する通信装置200の変更など)などの要求である。例えば、キーボードなどの操作部(図示せず)を用いてオペレータが入力した、操作対象となるグループのグループIDと、当該グループに入れるべき通信装置200のデバイスIDとを、受付部101が受信するように構成してもよい。なお、外部装置からグループ制御の要求を受信した場合のみでなく、通信制御装置100内でグループ制御の要否を判断し、必要と判断した場合にグループ制御を実行してもよい。
また、受付部101は、処理対象とする完全二分木構造のグループ管理木(全体木である完全二分木Tでもよいし、完全二分木Tの部分木T’であってもよい)、および、グループに属する通信装置200に対応する葉ノードのノードIDの入力を受け付ける。葉ノードは通信装置200のいずれかと対応するため、グループに属する通信装置200のデバイスIDの入力を受け付けてもよい。受付部101は、入力されたデバイスIDの通信装置200に対応する葉ノードのノードIDを得ることができる。受付部101は、完全二分木構造のグループ管理木、ノードID、グループ制御の要求、および、グループ制御の対象を指定する情報(入力情報)を生成部102に送る。
生成部102は、グループ操作に用いる情報を生成する。例えば生成部102は、上述の集合情報と範囲情報とを生成する。生成部102は、完全二分木構造のグループ管理木をトレースし、集合情報を算出しながら範囲情報を生成する。例えば生成部102は、左端の葉ノードおよび右端の葉ノードの一方から他方に向かって、ノードIDで識別される葉ノードのみをそれぞれ含む部分木(グループ管理木の部分木)を所定数(M(自然数))含む集合を示す集合情報を求める処理と、求めた集合に含まれる葉ノードのインデックスの範囲情報を求める処理と、を含むトレース処理を繰り返す。これにより、計算量をO(L)(Lは葉ノードの個数)とすることができる。生成部102による生成処理の詳細は後述する。
出力部103は、集合情報と、範囲情報とを、少なくともグループに属する葉ノードに対応づけられる通信装置200に対して出力する。上述のように、集合情報は、集合に含まれる部分木の葉ノードに対応づけられる通信装置200がグループ鍵を導出可能な鍵情報(MKBフラグメント)を含んでもよい。MKBフラグメントは、例えば上述のように(ノードiのインデックス,Enc(iのノード鍵,グループ鍵))の形式で表される。
例えば、出力部103は、集合情報と範囲情報とを含むグループ操作メッセージを、グループに属する通信装置200が属するマルチキャストグループ宛にマルチキャストで送信する。このようにグループ変更の対象ではない通信装置200にも出力部103の出力が届くことを許容することで、許容しない場合と比較して、出力部103による出力先の決定に要する計算コストを軽減できる。
また、出力部103より、更新前のグループには含まれるが、更新後のグループには含まれない通信装置200が含まれるマルチキャストグループに、上述の情報を送信するようにしてもよい。そのような通信装置200は、マルチキャストグループに属しているが、MKBを正しく処理できないため、更新後のグループから離脱を行う。このように、分割したMKBを用いて、グループの離脱を命じるコマンドを発行することができる。このようなコマンドを発行することで、通信装置200が保持すべき情報を適切に管理することができる。
また、更新後のグループに含まれない通信装置200に、上述のような、離脱を命じるコマンドを送付しなくても良い。これは、更新後のグループに含まれない通信装置200は、更新を命じるコマンドより、更新後のグループ鍵を導出できないため、更新後のグループには参加できないためである。このように構成することで、通信制御装置100が発行すべきコマンドの量を削減できる場合がある。
出力部103は、MKBによるグループ操作の対象となるグループとは独立に管理される通信装置200の集合(グループ)であって、少なくともグループが更新されたすべての通信装置200を含む通信装置200の集合に対して出力情報を出力する。ここで、通信装置200の集合とは、複数の通信装置200からなる集まりであって、グループIDが割り振られているグループとは必ずしも一致しない。通信装置200の集合の例として、あるマルチキャスト通信でデータを受信する通信装置200の集合や、ブロードキャスト通信でデータを受信する通信装置200からなる集合、つまりすべての通信装置200からなる集合、などが挙げられる。例えば、出力部103は、デバイスIDリストが含まれる通信装置200の集合、または、グループに対して、1以上のマルチキャスト通信やブロードキャスト通信により出力情報を送信してもよい。マルチキャスト通信で出力情報を送信する場合、出力部103は、例えばアドレス記憶部122に記憶されたアドレスのうち、配布対象のデバイスIDのデバイスIDに対応づけられた1以上のアドレス(マルチキャストアドレス)を宛先として、出力情報を送信する。
図4は、通信装置200の構成例を表すブロック図である。図4に示すように、通信装置200は、GID記憶部221と、グループ鍵記憶部222と、デバイス鍵記憶部223と、デバイスID記憶部224と、受信部201と、判定部202と、MKB処理部203と、グループ制御部204と、を備える。MKBを用いない場合は、グループ鍵記憶部222およびデバイス鍵記憶部223は備えなくてもよい。
GID記憶部221は、通信装置200が属するグループのグループID(GID)を記憶する。グループ鍵記憶部222は、GID記憶部221が記憶するグループIDで識別されるグループのグループ鍵を記憶する。デバイス鍵記憶部223は、通信装置200のデバイス鍵を記憶する。デバイスID記憶部224は、通信装置200のデバイスIDを記憶する。
受信部201は、通信制御装置100および他の通信装置200などの外部装置から各種情報を受信する。例えば、受信部201は、グループ操作メッセージを通信制御装置100から受信する。受信部201は、マルチキャスト通信およびブロードキャスト通信などにより出力情報を受信する。受信部201は、受信されたメッセージがグループ操作メッセージであるか判定する。グループ操作メッセージでない場合、受信されたメッセージは、当該メッセージを処理すべき他のモジュール(図示せず)に渡されて処理される。メッセージがグループ操作メッセージである場合、メッセージのデータは判定部202に送られる。
判定部202は、グループ操作メッセージに含まれる範囲情報に、デバイスID記憶部224に記憶されたデバイスIDが含まれるか否か判定する。含まれない場合、当該通信装置200は受信したグループ操作メッセージの対象機器ではないので、当該グループ操作メッセージに対する動作を中止する。含まれる場合は、当該通信装置200はグループ操作メッセージの対象であるので、グループ操作メッセージはMKB処理部203に渡される。
MKB処理部203は、範囲情報にデバイスID記憶部224に記憶されたデバイスIDが含まれると判定された場合に、グループ操作メッセージに含まれる集合情報(MKBフラグメント)と、デバイス鍵記憶部223に記憶されたデバイス鍵とからグループ鍵を生成するMKB処理を実行する。
例えば上述のようにMKBフラグメントが(ノードiのインデックス,Enc(iのノード鍵,グループ鍵))で表される場合、MKB処理部203は、Dec(ノードiのノード鍵、MKBフラグメント)によりグループ鍵を生成する。
MKB処理の結果、グループ鍵が得られた場合、当該通信装置200はGIDに示されるグループに所属することを意味する。MKB処理部203は、GIDと、取得したグループ鍵と、をグループ制御部204に送る。
なお、グループに所属するかの判定方法はこれに限られるものではない。例えばMKBフラグメントを含まない集合情報を用いる場合であれば、通信装置200のデバイスIDのビットマップとプレフィックス上位dビットが一致するノードインデックス(d、b)が集合情報に含まれていればグループに所属すると判定してもよい。
グループ制御部204は、GIDをGID記憶部221に格納し、グループ鍵をグループ鍵記憶部222に格納する。既にGIDが記憶されている場合は、グループ制御部204は、グループ操作メッセージ内のGIDで、GID記憶部221に記憶されているGIDを更新する。
一方、MKB処理の結果、グループ鍵が得られなかった場合は、当該通信装置200はGIDに示されるグループに所属しないことを意味する。従って、所属している場合は離脱する必要がある。このため、MKB処理部203は、GIDと、グループ鍵が取得できなかった旨の通知と、をグループ制御部204に送る。
グループ制御部204は、GID記憶部221とグループ鍵記憶部222とを空にする。GIDまたはグループ鍵が既に格納されている場合は、グループ制御部204はそれらを消去する。
なお、上述の各記憶部は、HDD(Hard Disk Drive)、光ディスク、メモリカード、RAM(Random Access Memory)などの一般的に利用されているあらゆる記憶媒体により構成することができる。
また、通信制御装置100の受付部101、生成部102、および、出力部103、並びに、通信装置200の受信部201、判定部202、MKB処理部203、および、グループ制御部204は、例えば、CPU(Central Processing Unit)などの処理装置にプログラムを実行させること、すなわち、ソフトウェアにより実現してもよいし、IC(Integrated Circuit)などのハードウェアにより実現してもよいし、ソフトウェアおよびハードウェアを併用して実現してもよい。
次に、本実施形態にかかる通信制御装置100による通信制御処理について図5を用いて説明する。図5は、本実施形態における通信制御処理の一例を示すフローチャートである。
受付部101は、完全二分木T(または完全二分木Tの部分木T’)と、グループに属する通信装置200に対応する葉ノードのノードIDとを受け付ける(ステップS101)。グループに属する通信装置200のデバイスIDを受け付けて、受け付けたデバイスIDの通信装置200に対応する葉ノードのノードIDを求めてもよい。生成部102は、受け付けた完全二分木T(または部分木T’)とノードIDとをもとに、集合情報と範囲情報とを生成する生成処理を実行する(ステップS102)。生成部102は、集合情報と範囲情報とを含むグループ操作メッセージを生成する。出力部103は、グループ操作メッセージを出力する(ステップS103)。
次に、ステップS102の生成処理の詳細について説明する。生成処理では、完全二分木Tの部分木T’の根ノードRから左優先または右優先のいずれか一方で再帰的にトレース処理を実行する。左優先は、部分木T’の左端の葉ノードから右端の葉ノードに向けて順に集合情報および範囲情報を生成することを意味する。右優先は、部分木T’の右端の葉ノードから左端の葉ノードに向けて順に集合情報および範囲情報を生成することを意味する。生成部103は、左優先および右優先のいずれによって集合情報等を生成してもよい。
生成処理は、部分木T’の高々M個のノードのノードIDのリストSと、リストSに対応する葉ノードのインデックスの下限値minrおよびインデックスの上限値maxrの組(S,minr,maxr)のリストOと、を出力する。リストSが集合情報に相当し、minrおよびmaxrが範囲情報に相当する。なお、以下ではリストSにノードnのノードIDを追加することを、単にリストSにノードnを追加すると表現する場合がある。
以下では、ノードnを根ノードとする部分木の左端および右端の葉ノードのノードインデックスを返す関数をそれぞれLML(n)およびRML(n)とする。部分木T’の葉ノードの集合を集合Lとする。集合Lのうちグループに属する葉ノードの集合を集合Gとする。
生成処理は、例えば以下のステップを含む:
(S1)O=S=NULL、minr=LML(R)、maxr=RML(R)に初期化する。
(S2)現在トレース中のノードCに対し、ノードCが集合Lに含まれる場合、ノードCが集合Gに含まれる場合にはノードCをリストSに追加するとともにノードCを「CS該当」とマークする。また、ノードCが集合Gに含まれない場合にはノードCを「CS非該当」とマークする。
(S3)ノードCが集合Lに含まれず、かつ、ノードCの左右両方の子ノードが「CS非該当」とマークされた場合には、ノードCを「非CS該当」とマークする。
(S4)ノードCが集合Lに含まれず、かつ、ノードCの左右両方の子ノードが「CS該当」とマークされた場合には、ノードCを「CS該当」とマークするともに、左右両方の子ノードをリストSから削除し、ノードCをリストSに追加する。
(S5)ノードCが集合Lに含まれず、かつ、ノードCの一方の子ノードが「CS該当」で他方の子ノードが「CS非該当」とマークされた場合には、|S|>M(リストSの要素数がMより大)の場合には、リストSの先頭からM個のノードのリストをS[0:M]、左優先の場合maxr=RML(S[M−1])、右優先の場合minr=LML(S[M−1])とする。そして、(S[0:M],minr,maxr)を集合Oに追加し、S[0:M]をリストSから削除し、左優先の場合minr=maxr+1、右優先の場合maxr=minr−1に設定する。
(S6)ノードCが部分木T’の根ノードRの場合、左優先の場合maxr=RML(R)、右優先の場合minr=LML(R)として、(S,minr,maxr)を集合Oに追加する。
「CS該当」および「CS非該当」のマークは、現在トレース中のノードに対する処理を行う関数の返り値として実現してもよいし、各ノードに付随する属性の値として保持することにより実現してもよい。属性の値として保持する場合、「CS該当」および「CS非該当」に対応する値に加え、CS該当かどうかが未確定であることを示す「CS未定」に対応する値のいずれかを保持してもよい。
葉ノードのインデックスが上述のようにindex(b,d)で表される場合、ノードID(d,b)で識別されるノードnに対し、LML(n)=index(b,d)×2^(H−d)、RML(n)=(index(b,d)+1)×2^(H−d)−1で表される。例えば、T=T’のとき、T’の左端葉ノードのノードインデックスはLML(R)=0×2^(H−0)=0であり、T’の右端葉ノードのノードインデックスはRML(R)=(0+1)×2^H−1=2^H−1である。
生成処理は、以下の情報を入力として使用する。
I:グループメンバに含まれる通信装置200のデバイスIDのリスト
T’:全体木である完全二分木Tの部分木(T’の根ノードR)
M:MKBフラグメントサイズ(MKBフラグメントに含まれるノード数)
また、生成処理は、(S,minr、maxr)のリストOを出力する。ここで、
S:MKBフラグメントに含まれるノードのリスト
minr:リストSに対する葉ノードのノードインデックスの下限値
maxr:リストSに対する葉ノードのノードインデックスの上限値
である。
図6は、生成処理の一例を示すフローチャートである。生成部102は、生成処理で使用する各パラメータを初期化する(ステップS201)。例えば、生成部102は、リストSおよびリストOを空(NULL)にし、minr=LML(R),maxr=RML(R)に設定する。
生成部102は、根ノードRに対しCheck()関数を実行する(ステップS202)。Check関数は、指定されたノードの子ノードに対して再帰的に実行され、結果としてリストOが出力される。
図7は、左優先の場合のCheck()関数の一例を示すフローチャートである。図7は、あるノードnに対する左優先のCheck()関数が呼ばれた場合の動作を示す。
まずノードnが葉ノードであるか否かが判定される(ステップS301)。葉ノードであれば(ステップS301:Yes)、ノードnのノードIDがリストIに含まれるか否かが判定される(ステップS302)。含まれる場合(ステップS302:Yes)、リストSにノードnが追加される(ステップS303)。またrvに1が設定される(ステップS304)。rvは、「CS該当」であるか「CS非該当」であるかを設定するパラメータである。図7の例では、rv=1が「CS該当」、rv=0が「CS非該当」を意味する。ノードnのノードIDがリストIに含まれない場合(ステップS302:No)、rvに0が設定される(ステップS305)。
ステップS301で、ノードnが葉ノードでないと判定された場合(ステップS301:No)、lval=Check(ノードnの左の子ノード)、rval=Check(ノードnの右の子ノード)、rv=0が設定される(ステップS306)。
次に、lval×rvalが0より大きいか否かが判定される(ステップS307)。これは、左右の子ノードの両方が「CS該当」であるかを判定することに相当する。大きい場合(ステップS307:Yes)、リストSからノードnの左の子ノードおよび右の子ノードが削除され、リストSにノードnが追加され、rvに1が設定される(ステップS308)。
lval×rvalが0より大きくない場合、すなわち、0に一致する場合(ステップS307:No)、(lval+rval)が0より大きいか否かが判定される(ステップS309)。これは、左右の子ノードのいずれか一方が「CS該当」であることを判定することに相当する。
(lval+rval)が0より大きい場合(ステップS309:Yes)、リストSの要素数がMを超えたか否かが判定される(ステップS310)。リストSの要素数がMを超えた場合(ステップS310:Yes)、maxr=RML(S[M−1])とされ、リストOに(S[0:M],minr,maxr)が追加され、minr=maxr+1とされる(ステップS311)。
ステップS308の後、ステップS311の後、(lval+rval)が0より大きくないと判定された場合(ステップS309:No)、または、リストSの要素数がMを超えていない場合(ステップS310:No)、ノードnが根ノードであるか否かが判定される(ステップS312)。
ノードnが根ノードであれば(ステップS312:Yes)、maxr=RML(R)とされ、リストOに(S,minr,maxr)が追加される(ステップS313)。ステップS304の後、ステップS305の後、ステップS313の後、または、ノードnが根ノードでない場合(ステップS312:No)、rvの値を返して(ステップS314)、Check関数が終了する。
図8は、右優先の場合のCheck()関数の一例を示すフローチャートである。右優先の場合は、ステップS411およびステップS413以外は左優先の場合のCheck()関数(図7)と同様であるため説明を省略する。
ステップS411では、minr=LML(S[M−1])とされ、リストOに(S[0:M],minr,maxr)が追加され、maxr=minr−1とされる(ステップS411)。ステップS413では、minr=LML(R)とされ、リストOに(S,minr,maxr)が追加される(ステップS413)。
図9は、左優先の場合の生成処理を表す擬似コードの例を示す図である。図9のInput I,T,RおよびMは、上記のリストI、部分木T’、部分木T’の根ノードR、MKBフラグメントサイズMに対応する。また、Output Oは、上記のリストOに対応する。また、rightmost_leaf_number(n)は、上記のRML(n)に対応する。
図10は、生成処理の処理結果の一例を示す図である。図10は、H=3(葉ノード数8)の全体木である図1の完全部分木Tに対し、T’=Tかつ左優先の場合の生成処理の処理結果の例である。
図10の例では、以下のようなリストIが入力パラメータとして与えられる。Iの各要素はデバイスIDを2進表記したものである。
I=(000,010,100,101,110)
M=2のとき、生成処理の出力であるリストOは以下の2つのリストSを含む。
S=[(3,000),(3,010)],(minr,maxr)=(0,2)
S=[(2,10),(3,110)],(minr,maxr)=(3,7)
M=3のとき、生成処理の出力であるリストOは以下の2つのリストSを含む。
S=[(3,000),(3,010),(2,10)],(minr,maxr)=(0,5)
S=[(3,110)],(minr,maxr)=(6,7)
集合情報にMKBフラグメントを含める場合は、例えば、リストSに含まれるノードごとにEnc(iのノード鍵,グループ鍵)を算出し、当該ノードのインデックスと対応づけて出力すればよい。
以上のように、本実施形態によれば、グループに属する葉ノードのみを含む部分木を求めながら、MKBの分割(M個ずつの部分木のリストSの生成)を行うことが可能となる。このため、例えばすべての部分木が求められるまで待つことなく、生成されたMKBフラグメントを送信することができる。その結果、例えばすべての部分木を求めてからMKBをMKBフラグメントに分割する方法(後述の変形例1など)と比較して、計算量、および、MKBフラグメントの送信遅延を低減することができる。
次に、本実施形態にかかる通信装置200によるグループ制御処理について図11を用いて説明する。図11は、本実施形態におけるグループ制御処理の一例を示すフローチャートである。
受信部201は、通信制御装置100などの外部装置からメッセージを受信する(ステップS501)。受信部201は、受信したメッセージがグループ操作メッセージであるか否かを判定する(ステップS502)。グループ操作メッセージでない場合(ステップS502:No)、グループ制御処理を終了する。なお、上述のようにグループ操作メッセージ以外のメッセージは、当該メッセージを処理すべきモジュールに渡されて適切に処理される。
グループ操作メッセージである場合(ステップS502:Yes)、判定部202は、グループ操作メッセージ内の範囲情報が示す範囲に、デバイスID記憶部224に記憶されたデバイスIDが含まれるか否かを判定する(ステップS503)。
範囲情報が示す範囲にデバイスIDが含まれない場合(ステップS503:No)、グループ操作の対象外であるため、グループ制御処理を終了する。範囲情報が示す範囲にデバイスIDが含まれる場合(ステップS503:Yes)、MKB処理部203は、グループ操作メッセージ内のMKBフラグメントを処理する(ステップS504)。
MKB処理部203は、MKB(MKBフラグメント)が正しく処理されたか否かを判定する(ステップS505)。正しく処理された場合(ステップS505:Yes)、グループ制御部204は、グループ操作メッセージ内のGIDをGID記憶部221に記憶するとともに、MKB処理により得られたグループ鍵をグループ鍵記憶部222に記憶する(ステップS506)。正しく処理されなかった場合(ステップS505:No)、グループ制御部204は、グループ操作メッセージ内のGIDをGID記憶部221から削除するとともに、グループ鍵をグループ鍵記憶部222から削除する(ステップS507)。
このように、本実施形態にかかる通信制御装置では、スケーラビリティを確保しながら動的なグループ管理を実現することができる。また、グループ管理のために、MKB全体ではなく、MKBを分割した情報(MKBフラグメント)を送信するため、通信負荷を軽減することができる。このとき、グループ操作の対象となる通信装置の範囲を定める情報とともにMKBフラグメントを送信するため、意図しないグループ操作が行われることを回避できる。
(変形例1)
上記実施形態では、グループに属する葉ノードのみを含む部分木を求めながら、MKBを分割し、分割したMKB(MKBフラグメント)の範囲情報を生成した。変形例1では、先にグループに属する葉ノードのみを含むソートされた部分木のリストを求め、その後、部分木のリストを分割してMKBフラグメントを生成するとともに、MKBフラグメントの範囲情報を生成する。
図12は、変形例1の生成処理の一例を示すフローチャートである。生成部102は、左端の葉ノードおよび右端の葉ノードの一方から他方に向かって、ノードIDで識別される葉ノードのみをそれぞれ含む部分木を求める処理を繰り返して1以上の部分木を含むソートされた部分木のリストを求める(ステップS601)。ソートとは、インデックスの昇順または降順で並べることを意味する。例えば左優先の場合は、部分木のルートノードのインデックスRの左端または右端の葉ノードのノードインデックス(LML(R)またはRML(R))が昇順となるように各部分木がソートされる。右優先の場合は、部分木のルートノードの左端または右端の葉ノードのインデックス(LML(R)またはRML(R))が降順となるように各部分木がソートされる。
その後、生成部102は、求めた部分木のリストを、部分木をそれぞれ所定数(M(自然数))含む集合に分割し、集合それぞれに含まれる部分木の葉ノードに割り当てられたインデックスの範囲情報を求める(ステップS602)。
変形例1では、先に部分木のリストを求めた後に、M個の部分木を含む集合(部分木のリスト)をさらに求める。このため、計算量はO(L+L/M)(Lは葉ノードの個数)となる。
図13は、ステップS601のリスト生成処理の一例を示すフローチャートである。生成部102は、使用する各パラメータを初期化する(ステップS701)。例えば、生成部102は、リストSおよびリストOを空(NULL)に設定する。生成部102は、根ノードRに対しCheck()関数を実行する(ステップS702)。変形例1のCheck関数は、指定されたノードの子ノードに対して再帰的に実行され、結果としてリストSが出力される。
図14は、左優先の場合の変形例1のCheck()関数の一例を示すフローチャートである。図14は、あるノードnに対する左優先のCheck()関数が呼ばれた場合の動作を示す。
ステップS801からステップS807は、図7のステップS301からステップS307と同様であるため説明を省略する。
ステップS807でlval×rvalが0より大きいと判定された場合(ステップS807:Yes)、リストSからノードnの左の子ノードおよび右の子ノードが削除され、リストSにノードnが追加され、rvに1が設定される(ステップS808)。
lval×rvalが0より大きくない場合(ステップS807:No)、ステップS804の後、ステップS805の後、または、ステップS808の後、rvの値を返して(ステップS809)、Check関数が終了する。
次に、ステップS602の範囲情報算出処理の一例を説明する。範囲情報算出処理では、リスト生成処理(ステップS601)で求められたリストSを要素数MごとのリストFに分割し、リストFごとにリストFに含まれる部分木の葉ノードのインデックスの下限値minrおよびインデックスの上限値maxrの組(minr,maxr)を算出する。そして、リストF、minr、maxrの組のリストが出力される。この例では、リストFが集合情報に相当する。
i番目(1≦i≦N,Nは分割数,N=ceiling(|S|/M))のリストFのminr、maxrは以下のように算出される。
1番目のリストFのminr=0
i番目のリストFのminr=(i−1)番目のリストFのmaxr+1(i>1)
i番目のリストFのmaxr=i番目のリストFの最後の要素(部分木)の右端葉ノードのインデックス (i<N)
N番目のリストFのmaxr=T’の右端葉ノードのインデックス
図15は、左優先の場合の変形例1の生成処理を表す擬似コードの例を示す図である。変形例の場合も入力(Input I,T,R,M)および出力(Output O)は、図9と同様である。図15のfragment(S)が、範囲情報算出処理に相当する。
(変形例2)
新規の通信装置200(葉ノード)がグループに追加された場合に、生成部102が、追加後のグループに属する葉ノードのノードIDを用いて、生成処理を再度実行してもよい。また、グループから通信装置200(葉ノード)が離脱した場合に、生成部102が、削除後のグループに属する葉ノードのノードIDを用いて、生成処理を再度実行してもよい。これにより、スケーラビリティを確保しながら動的なグループ管理を実現できる。
(第2の実施形態)
つぎに、第2の実施形態について説明する。
第1の実施形態で説明した通り、対象となるメンバの数が非常に大きくなった場合、グループ操作用のMKBのサイズが極めて大きくなる可能性がある。従って、そのままMKBを通信ネットワークに配布した場合、通信負荷が極めて大きくなる可能性がある。
そこで、本実施形態では、ネットワーク負荷を軽減するために、複数のインデックスと複数の暗号文を要素として含むMKBから、複数のインデックスを取り除いたMKB(インデックスレスMKB)を生成して送付する。しかし、上記のようなグループ制御方法を前提とする場合、単純にインデックスレスMKBを送付しても、意図した通りのグループ制御を行うことができない場合がある。例えば、インデックスレスMKBに要素として含まれる複数の暗号文がそれぞれ一般的な共通鍵暗号で生成されており、かつ、インデックスレスMKBを通信装置が受信した場合、当該通信装置は、自身が保持するデバイス鍵を用いて当該インデックスレスMKBが含む各暗号文の復号を試みたとしても、正しくグループ鍵を取得できたか否かを判定する術がない。なぜならば、一般的な共通鍵暗号の復号関数は、暗号化に用いた鍵と復号に用いた鍵が異なっている場合、不正な復号結果を返すが、それが不正な復号結果であることを判定する術を持たないからである。そのため、当該通信装置は、グループへの所属処理を行うべきか、グループからの離脱処理を行うべきかを判断することができない。
この問題を回避するため、インデックスレスMKBが要素として含む暗号文を、認証付暗号を用いて生成する。認証付暗号とは、暗号化に用いた鍵と復号に用いた鍵が異なり不正な復号が行われた場合に、その結果が不正であることを特定する機能を持つ共通鍵暗号である。代表的な認証付暗号はAES−CCMやAES−GCMなどが挙げられ、既に様々な公知技術が存在する。例えば、インデックスレスMKBを受信した場合、通信装置は、自身の保持する複数のデバイス鍵をそれぞれ用いて、当該インデックスレスMKBが含む暗号文の復号を試みる。いずれか1つの暗号文の復号に成功し、かつ、グループに参加しているならば、導出したグループ鍵を用いて、参加しているグループの情報を更新する。いずれか1つの暗号文の復号に成功し、かつ、グループに参加していないならば、導出したグループ鍵を用いて、グループに参加する。すべての復号処理が失敗してグループ鍵の取得に失敗し、かつ、グループに参加しているならば、グループから離脱する。
このように、本実施形態では、通信装置は、当該通信装置の保有するデバイス鍵を用いて復号を試みることで、グループへ所属を命じられているか、離脱を命じられているかをチェックする。これにより、インデックスレスMKBによっても、意図したグループ操作を行うことができる。
本実施形態で用いるインデックスレスMKBを処理するために使用されるグループ管理木の構造については第1の実施形態と同様とする。
グループ管理木から生成されるインデックスレスMKBは、例えば以下の要素を含む。
(AuthEnc(iのノード鍵,グループ鍵))
図1のグループ管理木の例では、次の4つの要素を含むMKBが生成される。これらは、ノード000、010、10、110にそれぞれ対応する。ただし、Kgはグループ鍵を表し、例えばAuthEnc(k(000),Kg)はk(000)を用いた認証付暗号によりKgを暗号化したデータを表す。
(000,AuthEnc(k(000)、Kg),(010,AuthEnc(k(010)、Kg),(10,AuthEnc(k(10)、Kg),(110,AuthEnc(k(110)、Kg)
これらのMKBに対応するインデックスレスMKBは、下記のとおりである。
(AuthEnc(k(000)、Kg),AuthEnc(k(010)、Kg),AuthEnc(k(10)、Kg),AuthEnc(k(110)、Kg)
本実施形態では、このようなインデックスが取り除かれた構造のMKBが、通信装置に対してマルチキャスト通信またはブロードキャスト通信などにより送信される。
以下、本実施形態の詳細について説明する。本実施形態にかかる通信システムは、通信装置200−2と、通信制御装置100−2と、を含む。本実施形態の通信システムの構成は、通信装置200が通信装置200−2に置き換わり、通信制御装置100が通信制御装置100−2に置き換わる以外は、第1の実施形態の通信システムを示す図2と同様であるため説明を省略する。
通信制御装置100−2は、各通信装置200−2に対してグループ操作コマンドを送信する。グループ操作コマンドは、例えば、集合情報を含む。第1の実施形態と同様に、範囲情報(例えばデバイスIDの範囲)を含んでもよい。グループ操作コマンドが、更新後のグループを識別するグループIDを含んでもよい。
集合情報は、グループに属する(通信装置に対応する)葉ノードのみを含む部分木(例えば図1の部分木s)を含む集合を示す情報である。集合情報は、例えば、集合に含まれる部分木の葉ノードに対応づけられる通信装置がグループ鍵を導出できるMKBからインデックスを取り除いたインデックスレスMKBを含んでもよい。このように、本実施形態では、MKB全体ではなく、部分木sを含むように生成される集合情報に対応してMKBからインデックスレスMKBを通信装置200−2に送信する。
第1の実施形態と同様に、集合情報は、グループに属する(通信装置に対応する)葉ノードのみを含む部分木(例えば図1の部分木s)を所定数含む集合を示す情報として構成してもよい。また、範囲情報は、集合情報が示す集合に含まれる各部分木の葉ノードに割り当てられたインデックスの範囲を示す。上述のようにインデックスは対応する通信装置のデバイスIDと等しいため、範囲情報によってグループ操作の対象となる通信装置のデバイスIDの範囲が特定される。集合情報および範囲情報の生成方法の詳細は第1の実施形態と同様である。第1の実施形態では、ノード鍵やデバイス鍵を設定せず、またMKBを用いずにグループに属するかを判定することも可能であった。本実施形態では、ノード鍵を含むインデックスレスMKBを用いるため、第1の実施形態でノード鍵やMKBを用いる場合の手法を組み合わせればよい。
図16は、通信制御装置100−2の構成例を表すブロック図である。図16に示すように、通信制御装置100−2は、グループ情報記憶部121と、アドレス記憶部122と、鍵記憶部123と、受付部101と、生成部102−2と、出力部103−2と、を備える。本実施形態では、生成部102−2および出力部103−2の機能が第1の実施形態と異なっている。その他の構成および機能は、第1の実施形態にかかる通信制御装置100のブロック図である図3と同様であるので、同一符号を付し、ここでの説明は省略する。
生成部102−2は、グループ操作に用いる情報を生成する。例えば生成部102−2は、上述のインデックスレスMKBを生成する。生成部102−2は、完全二分木構造のグループ管理木をトレースしてMKBを生成し、そのMKBからインデックスを取り除く。例えば生成部102−2は、左端の葉ノードおよび右端の葉ノードの一方から他方に向かって、ノードIDで識別される葉ノードのみをそれぞれ含む部分木(グループ管理木の部分木)を含む集合を示す集合情報を求める処理を含むトレース処理を行う。範囲情報を用いる場合は、第1の実施形態と同様に、求めた集合に含まれる葉ノードのインデックスの範囲情報を求める処理をさらに含むトレース処理を行ってもよい。そして生成部102−2は、各部分木の根ノードに対応づけられた鍵(ノード鍵)でグル―プ鍵を暗号化する処理を繰り返すことで、インデックレスMKBを生成する。これにより、計算量をO(L)(Lは葉ノードの個数)とすることができる。インデックスレスMKBは、グループ管理木をトレースしながらインデックスを含まないMKBとして生成してもよいし、インデックスを含むMKBを生成した後にこのMKBからインデックスを取り除いて生成してもよい。生成部102−2による生成処理の詳細は後述する。
出力部103−2は、集合情報を少なくともグループに属する葉ノードに対応づけられる通信装置200−2に対して出力する。上述のように、集合情報は、集合に含まれる部分木の葉ノードに対応づけられる通信装置200−2がグループ鍵を導出可能な鍵情報(インデックスレスMKB)を含んでもよい。インデックスレスMKBは、例えば上述のように(AuthEnc(iのノード鍵,グループ鍵))の形式で表される。
例えば、出力部103−2は、インデックスレスMKBを含むグループ操作メッセージを、グループに属する通信装置200−2が属するマルチキャストグループ宛にマルチキャストで送信する。このようにグループ変更の対象ではない通信装置200−2にも出力部103−2の出力が届くことを許容することで、許容しない場合と比較して、出力部103−2による出力先の決定に要する計算コストを軽減できる。
また、出力部103−2から、更新前のグループには含まれるが、更新後のグループには含まれない通信装置200−2が含まれるマルチキャストグループに、上述の情報を送信するようにしてもよい。そのような通信装置200−2は、マルチキャストグループに属しているが、インデックスレスMKBからグループ鍵を導出できないため、更新後のグループから離脱を行う。このように、インデックスレスMKBを用いて、グループの離脱を命じるコマンドを発行することができる。このようなコマンドを発行することで、通信装置200−2が保持すべき情報を適切に管理することができる。
また、更新後のグループに含まれない通信装置200−2に、上述のような、離脱を命じるコマンドを送付しなくても良い。これは、更新後のグループに含まれない通信装置200−2は、更新を命じるコマンドから更新後のグループ鍵を導出できないため、更新後のグループには参加できないためである。このように構成することで、通信制御装置100−2が発行すべきコマンドの量を削減できる場合がある。
出力部103−2は、MKBによるグループ操作の対象となるグループとは独立に管理される通信装置200−2の集合(グループ)であって、少なくともグループが更新されたすべての通信装置200−2を含む通信装置200−2の集合に対して出力情報を出力する。ここで、通信装置200−2の集合とは、複数の通信装置200−2からなる集まりであって、グループIDが割り振られているグループとは必ずしも一致しない。通信装置200−2の集合の例として、あるマルチキャスト通信でデータを受信する通信装置200−2の集合や、ブロードキャスト通信でデータを受信する通信装置200−2からなる集合、つまりすべての通信装置200−2からなる集合、などが挙げられる。例えば、出力部103−2は、デバイスIDリストが含まれる通信装置200−2の集合、または、グループに対して、1以上のマルチキャスト通信やブロードキャスト通信により出力情報を送信してもよい。マルチキャスト通信で出力情報を送信する場合、出力部103−2は、例えばアドレス記憶部122に記憶されたアドレスのうち、配布対象のデバイスIDのデバイスIDに対応づけられた1以上のアドレス(マルチキャストアドレス)を宛先として、出力情報を送信する。
図17は、通信装置200−2の構成例を表すブロック図である。図17に示すように、通信装置200−2は、GID記憶部221と、グループ鍵記憶部222と、デバイス鍵記憶部223と、デバイスID記憶部224と、受信部201−2と、判定部202と、MKB処理部203−2と、グループ制御部204と、を備える。MKBを用いない場合は、グループ鍵記憶部222およびデバイス鍵記憶部223は備えなくてもよい。本実施形態では、受信部201−2とMKB処理部203−2の機能が第1の実施形態と異なっている。その他の構成および機能は、第1の実施形態にかかる通信装置200のブロック図である図4と同様であるので、同一符号を付し、ここでの説明は省略する。
受信部201−2は、通信制御装置100−2および他の通信装置200−2などの外部装置から各種情報を受信する。例えば、受信部201−2は、グループ操作メッセージを通信制御装置100−2から受信する。受信部201−2は、マルチキャスト通信およびブロードキャスト通信などにより出力情報を受信する。受信部201−2は、受信されたメッセージがグループ操作メッセージであるか判定する。グループ操作メッセージでない場合、受信されたメッセージは、当該メッセージを処理すべき他のモジュール(図示せず)に渡されて処理される。メッセージがグループ操作メッセージである場合、メッセージのデータはMKB処理部203−2に送られる。
MKB処理部203−2は、グループ操作メッセージに含まれる集合情報(インデックスレスMKB)と、デバイス鍵記憶部223に記憶されたデバイス鍵とからグループ鍵を生成するインデックスレスMKB処理を実行する。
例えば上述のようにインデックスレスMKBが(AuthEnc(iのノード鍵,グループ鍵))で表される場合、MKB処理部203−2は、デバイス鍵記憶部223に記録されている各ノードの鍵を用いて、AuthDec(ノードjのノード鍵、AuthEnc(iのノード鍵,グループ鍵))を実行し、復号に成功した場合、それをグループ鍵とする。ただし、jはデバイス鍵記憶部223に記録されているデバイス鍵に割り振られたインデックスとする。AuthDec(ノードjのノード鍵、AuthEnc(iのノード鍵,グループ鍵))は、ノードjに割り振られたノード鍵を用いて、暗号文AuthEnc(iのノード鍵,グループ鍵)を復号した結果を表す。復号結果は、jのノード鍵とiのノード鍵が等しいときはグループ鍵となり、それ以外の場合はエラーとなる。
インデックスレスMKB処理の結果、グループ鍵が得られた場合、当該通信装置200−2はGIDに示されるグループに所属することを意味する。MKB処理部203−2は、GIDと、取得したグループ鍵と、をグループ制御部204に送る。
一方、インデックスレスMKB処理の結果、グループ鍵が得られなかった場合は、当該通信装置200−2はGIDに示されるグループに所属しないことを意味する。従って、所属している場合は離脱する必要がある。このため、MKB処理部203−2は、GIDと、グループ鍵が取得できなかった旨の通知と、をグループ制御部204に送る。
なお、上述の各記憶部は、HDD(Hard Disk Drive)、光ディスク、メモリカード、RAM(Random Access Memory)などの一般的に利用されているあらゆる記憶媒体により構成することができる。
また、通信制御装置100−2の受付部101、生成部102−2、および、出力部103−2、並びに、通信装置200−2の受信部201、判定部202、MKB処理部203−2、および、グループ制御部204は、例えば、CPUなどの処理装置にプログラムを実行させること、すなわち、ソフトウェアにより実現してもよいし、ICなどのハードウェアにより実現してもよいし、ソフトウェアおよびハードウェアを併用して実現してもよい。
次に、本実施形態にかかる通信制御装置100−2による通信制御処理について図18を用いて説明する。図18は、本実施形態における通信制御処理の一例を示すフローチャートである。
受付部101−2は、完全二分木T(または完全二分木Tの部分木T’)と、グループに属する通信装置200−2に対応する葉ノードのノードIDとを受け付ける(ステップS901)。グループに属する通信装置200−2のデバイスIDを受け付けて、受け付けたデバイスIDの通信装置200−2に対応する葉ノードのノードIDを求めてもよい。生成部102−2は、受け付けた完全二分木T(または部分木T’)とノードIDとをもとに、集合情報と範囲情報とを生成する生成処理を実行する(ステップS902)。生成部102−2は、集合情報と範囲情報とを含むグループ操作メッセージを生成する。出力部103−2は、グループ操作メッセージを出力する(ステップS903)。
次に、ステップS902の生成処理の詳細について説明する。第1の実施形態のステップS102と同様のアルゴリズムに、以下の情報を入力して使用する。
I:グループメンバに含まれる通信装置200−2のデバイスIDのリスト
T’:全体木である完全二分木Tの部分木(T’の根ノードR)
M:T’のノードの個数
そして、生成処理は、(S,minr、maxr)のリストOを生成する。ここで、
S:MKBに含まれるノードのリスト
minr:リストSに対する葉ノードのノードインデックスの下限値
maxr:リストSに対する葉ノードのノードインデックスの上限値
である。minrおよびmaxrが範囲情報に相当する。
集合情報に含めるインデックスレスMKB生成するためには、例えば、リストSに含まれるノードごとにAuthEnc(iのノード鍵,グループ鍵)を算出し、出力すればよい。ただし、iはリストSに含まれる各ノードのインデックスとする。
以上のように、本実施形態によれば、集合情報からMKBのインデックスを削除することが可能となる。その結果、例えばすべてのMKBを送信する方法と比較して、送信すべき情報を低減することができる。
次に、本実施形態にかかる通信装置200−2によるグループ制御処理について図19を用いて説明する。図19は、本実施形態におけるグループ制御処理の一例を示すフローチャートである。
受信部201−2は、通信制御装置100−2などの外部装置からメッセージを受信する(ステップS1001)。受信部201−2は、受信したメッセージがグループ操作メッセージであるか否かを判定する(ステップS1002)。グループ操作メッセージでない場合(ステップS1002:No)、グループ制御処理を終了する。なお、上述のようにグループ操作メッセージ以外のメッセージは、当該メッセージを処理すべきモジュールに渡されて適切に処理される。
グループ操作メッセージである場合(ステップS1002:Yes)、判定部202は、グループ操作メッセージ内の範囲情報が示す範囲に、デバイスID記憶部224に記憶されたデバイスIDが含まれるか否かを判定する(ステップS1003)。
範囲情報が示す範囲にデバイスIDが含まれない場合(ステップS1003:No)、グループ操作の対象外であるため、グループ制御処理を終了する。範囲情報が示す範囲にデバイスIDが含まれる場合(ステップS1003:Yes)、MKB処理部203−2は、グループ操作メッセージ内のインデックスレスMKBを処理する(ステップS1004)。
MKB処理部203−2は、インデックスレスMKBが正しく処理されたか否かを判定する(ステップS1005)。正しく処理された場合(ステップS1005:Yes)、グループ制御部204は、グループ操作メッセージ内のGIDをGID記憶部221に記憶するとともに、インデックスレスMKB処理により得られたグループ鍵をグループ鍵記憶部222に記憶する(ステップS1006)。正しく処理されなかった場合(ステップS1005:No)、グループ制御部204は、グループ操作メッセージ内のGIDをGID記憶部221から削除するとともに、グループ鍵をグループ鍵記憶部222から削除する(ステップS1007)。
このように、本実施形態にかかる通信制御装置では、スケーラビリティを確保しながら動的なグループ管理を実現することができる。また、グループ管理のために、MKB全体ではなく、インデックスレスMKBを送信するため、通信負荷を軽減することができる。
(変形例3)
第2の実施形態において、MKBの分割を行わない場合には、グループ操作メッセージから範囲情報を取り除いてもよい。このように構成することで、通信負荷をさらに低減することができる。
(変形例4)
新規の通信装置200−2(葉ノード)がグループに追加された場合に、生成部102−2が、追加後のグループに属する葉ノードのノードIDを用いて、生成処理を再度実行してもよい。また、グループから通信装置200−2(葉ノード)が離脱した場合に、生成部102−2が、削除後のグループに属する葉ノードのノードIDを用いて、生成処理を再度実行してもよい。これにより、スケーラビリティを確保しながら動的なグループ管理を実現できる。
(第3の実施形態)
つぎに、第3の実施形態について説明する。
第1の実施形態で説明した通り、対象となるメンバの数が非常に大きくなった場合、グループ操作用のMKBのサイズが極めて大きくなる可能性がある。従って、そのままMKBを通信ネットワークに配布した場合、通信負荷が極めて大きくなる可能性がある。
そこで、本実施形態では、ネットワーク負荷を軽減するために、複数のインデックスと複数の暗号文を要素として含むMKBから複数のインデックスを取り除き、代わりに、複数のインデックスのブルームフィルタを含めたブルームフィルタMKBを生成して送付する。しかし、上記のようなグループ制御方法を前提とする場合、ブルームフィルタMKBを送付しても、意図した通りのグループ制御を行うことができない場合がある。例えば、MKBは要素として含む複数の暗号文がそれぞれ一般的な共通鍵暗号で生成されており、かつ、通信装置はブルームフィルタMKBを受信した場合、ブルームフィルタで検出されたインデックスに対応する当該通信装置が保持するデバイス鍵を用いて当該MKBが含む各暗号文の復号を試みたとしても、正しくグループ鍵を取得できるとは限らない。なぜならば、一般的な共通鍵暗号の復号関数は、暗号化に用いた鍵と復号に用いた鍵が異なっている場合、不正な復号結果を返すが、それが不正な復号結果であることを判定する術を持たないためである。従ってブルームフィルタで偽陽性により誤ったインデックスが検出された場合、当該通信装置は、通信制御装置が意図しないグループへの所属処理や、グループからの離脱処理を行うことになる。
この問題を回避するため、ブルームフィルタMKBが要素として含む暗号文を、認証付暗号を用いて生成する。認証付暗号とは、暗号化に用いた鍵と復号に用いた鍵が異なり不正な復号が行われた場合に、その結果が不正であることを特定する機能を持つ共通鍵暗号である。代表的な認証付暗号はAES−CCMやAES−GCMなどが挙げられ、既に様々な公知技術が存在する。例えば、ブルームフィルタMKBを受信した場合、通信装置は、ブルームフィルタで検出された自身の保持する複数のデバイス鍵をそれぞれ用いて、当該ブルームフィルタMKBが含む暗号文の復号を試みる。いずれか1つの暗号文の復号に成功し、かつ、グループに参加しているならば、通信装置は、導出したグループ鍵を用いて、参加しているグループの情報を更新する。いずれか1つの暗号文の復号に成功し、かつ、グループに参加していないならば、通信装置は、導出したグループ鍵を用いて、グループに参加する。すべての復号処理が失敗してグループ鍵の取得に失敗し、かつ、グループに参加しているならば、通信装置は、グループから離脱する。
このように、本実施形態では、通信装置は、ブルームフィルタで検出された当該通信装置の保有するデバイス鍵を用いて復号を試みることで、グループへ所属を命じられているか、離脱を命じられているかをチェックする。これにより、ブルームフィルタMKBによっても、意図したグループ操作を行うことができる。
本実施形態で用いるブルームフィルタMKBの処理に使用されるグループ管理木の構造については第1の実施形態と同様とする。
また、第1の実施形態と同様に、各通信装置は、対象システムで一意なデバイスIDを持ち、完全二分木Tの葉ノードは、それぞれ1つの通信装置に対応する。
グループ管理木から生成されるブルームフィルタMKBは、例えば以下の要素を含む。
(ノードiのインデックスのブルームフィルタ,AuthEnc(iのノード鍵,グループ鍵))
図1のグループ管理木の例では、次の4つの要素を含むMKBが生成される。これらは、ノード000、010、10、110にそれぞれ対応する。ただし、Kgはグループ鍵を表し、例えばAuthEnc(k(000),Kg)はKgをk(000)で暗号化したデータを表す。
(000,AuthEnc(k(000)、Kg),(010,AuthEnc(k(010)、Kg),(10,AuthEnc(k(10)、Kg),(110,AuthEnc(k(110)、Kg)
これらのMKBに対応するブルームフィルタMKBとは、下記のとおりである。
((000、010、10、110)から生成したブルームフィルタ,AuthEnc(k(000)、Kg),AuthEnc(k(010)、Kg),AuthEnc(k(10)、Kg),AuthEnc(k(110)、Kg)
本実施形態では、このようなインデックスの代わりにそれらのブルームフィルタを含む構造のMKBが、通信装置に対してマルチキャスト通信またはブロードキャスト通信などにより送信される。
以下、本実施形態の詳細について説明する。本実施形態にかかる通信システムは、通信装置200−3と、通信制御装置100−3と、を含む。本実施形態の通信システムの構成は、通信装置200が通信装置200−3に置き換わり、通信制御装置100が通信制御装置100−3に置き換わる以外は、第1の実施形態の通信システムを示す図2と同様であるため説明を省略する。
通信制御装置100−3が、各通信装置200−3に対してグループ操作コマンドを送信する。グループ操作コマンドは、例えば、集合情報を含む。第1の実施形態と同様に、範囲情報(例えばデバイスIDの範囲)を含んでもよい。グループ操作コマンドが、更新後のグループを識別するグループIDを含んでもよい。
集合情報は、グループに属する(通信装置に対応する)葉ノードのみを含む部分木(例えば図1の部分木s)を含む集合を示す情報である。集合情報は、例えば、集合に含まれる部分木の葉ノードに対応づけられる通信装置がグループ鍵を導出できるMKBからインデックスを取り除き、それらインデックスのブルームフィルタを付したブルームフィルタMKBを含んでもよい。このように、本実施形態では、MKB全体ではなく、部分木sを含むように生成される集合情報に対応するブルームフィルタMKBを通信装置200−3に送信する。
第1の実施形態と同様に、集合情報は、グループに属する(通信装置に対応する)葉ノードのみを含む部分木(例えば図1の部分木s)を所定数含む集合を示す情報として構成してもよい。また、範囲情報は、集合情報が示す集合に含まれる各部分木の葉ノードに割り当てられたインデックスの範囲を示す。上述のようにインデックスは対応する通信装置のデバイスIDと等しいため、範囲情報によってグループ操作の対象となる通信装置のデバイスIDの範囲が特定される。集合情報および範囲情報の生成方法の詳細は第1の実施形態と同様である。第1の実施形態では、ノード鍵やデバイス鍵を設定せず、またMKBを用いずにグループに属するかを判定することも可能であった。本実施形態では、ノード鍵を含むブルームフィルタMKBを用いるため、第1の実施形態でノード鍵やMKBを用いる場合の手法を組み合わせればよい。
図20は、通信制御装置100−3の構成例を表すブロック図である。図20に示すように、通信制御装置100−3は、グループ情報記憶部121と、アドレス記憶部122と、鍵記憶部123と、受付部101と、生成部102−3と、出力部103−3と、を備える。本実施形態では、生成部102−3および出力部103−3の機能が第1の実施形態と異なっている。その他の構成および機能は、第1の実施形態にかかる通信制御装置100のブロック図である図3と同様であるので、同一符号を付し、ここでの説明は省略する。
生成部102−3は、グループ操作に用いる情報を生成する。例えば生成部102−3は、ブルームフィルタMKBを生成する。生成部102−3は、完全二分木構造のグループ管理木をトレースしてMKBを生成し、そのMKBに付されたインデックスからブルームフィルタを導出し、インデックスを取り除いて代わりにブルームフィルタを付す。例えば生成部102−3は、左端の葉ノードおよび右端の葉ノードの一方から他方に向かって、ノードIDで識別される葉ノードのみをそれぞれ含む部分木(グループ管理木の部分木)を含む集合を示す集合情報を求める処理を含むトレース処理を行う。範囲情報を用いる場合は、第1の実施形態と同様に、求めた集合に含まれる葉ノードのインデックスの範囲情報を求める処理をさらに含むトレース処理を行ってもよい。そして生成部102−3は、各部分木の根ノードに対応づけられた鍵(ノード鍵)でグル―プ鍵を暗号化する処理、および、各部分木の根ノードのインデックスからブルームフィルタを導出する処理を繰り返すことで、ブルームフィルタMKBを生成する。これにより、計算量をO(L)(Lは葉ノードの個数)とすることができる。生成部102−3による生成処理の詳細は後述する。
出力部103−3は、少なくともグループに属する葉ノードに対応づけられる通信装置200−3に対して、集合情報を出力する。上述のように、集合情報は、集合に含まれる部分木の葉ノードに対応づけられる通信装置200−3がグループ鍵を導出可能な鍵情報(ブルームフィルタMKB)を含んでもよい。ブルームフィルタMKBは、例えば上述のように(インデックスのブルームフィルタ,AuthEnc(iのノード鍵,グループ鍵)のリスト)の形式で表される。
例えば、出力部103−3は、ブルームフィルタMKBを含むグループ操作メッセージを、グループに属する通信装置200−3が属するマルチキャストグループ宛にマルチキャストで送信する。このようにグループ変更の対象ではない通信装置200−3にも出力部103−3の出力が届くことを許容することで、許容しない場合と比較して、出力部103−3による出力先の決定に要する計算コストを軽減できる。
また、出力部103−3から、更新前のグループには含まれるが、更新後のグループには含まれない通信装置200−3が含まれるマルチキャストグループに、上述の情報を送信するようにしてもよい。そのような通信装置200−3は、マルチキャストグループに属しているが、ブルームフィルタMKBからグループ鍵を導出できないため、更新後のグループから離脱を行う。このように、ブルームフィルタMKBを用いて、グループの離脱を命じるコマンドを発行することができる。このようなコマンドを発行することで、通信装置200−3が保持すべき情報を適切に管理することができる。
また、更新後のグループに含まれない通信装置200−3に、上述のような、離脱を命じるコマンドを送付しなくても良い。これは、更新後のグループに含まれない通信装置200−3は、更新を命じるコマンドから、更新後のグループ鍵を導出できないため、更新後のグループには参加できないためである。このように構成することで、通信制御装置100−3が発行すべきコマンドの量を削減できる場合がある。
出力部103−3は、ブルームフィルタMKBによるグループ操作の対象となるグループとは独立に管理される通信装置200−3の集合(グループ)であって、少なくともグループが更新されたすべての通信装置200−3を含む通信装置200−3の集合に対して出力情報を出力する。ここで、通信装置200−3の集合とは、複数の通信装置200−3からなる集まりであって、グループIDが割り振られているグループとは必ずしも一致しない。通信装置200−3の集合の例として、あるマルチキャスト通信でデータを受信する通信装置200−3の集合や、ブロードキャスト通信でデータを受信する通信装置200−3からなる集合、つまりすべての通信装置200−3からなる集合、などが挙げられる。例えば、出力部103−3は、デバイスIDリストが含まれる通信装置200−3の集合、または、グループに対して、1以上のマルチキャスト通信やブロードキャスト通信により出力情報を送信してもよい。マルチキャスト通信で出力情報を送信する場合、出力部103−3は、例えばアドレス記憶部122に記憶されたアドレスのうち、配布対象のデバイスIDのデバイスIDに対応づけられた1以上のアドレス(マルチキャストアドレス)を宛先として、出力情報を送信する。
図21は、通信装置200−3の構成例を表すブロック図である。図21に示すように、通信装置200−3は、GID記憶部221と、グループ鍵記憶部222と、デバイス鍵記憶部223と、デバイスID記憶部224と、受信部201−3と、判定部202と、MKB処理部203−3と、グループ制御部204と、を備える。ブルームフィルタMKBを用いない場合は、グループ鍵記憶部222およびデバイス鍵記憶部223は備えなくてもよい。本実施形態では、受信部201−3とMKB処理部203−3の機能が第1の実施形態と異なっている。その他の構成および機能は、第1の実施形態にかかる通信装置200のブロック図である図4と同様であるので、同一符号を付し、ここでの説明は省略する。
受信部201−3は、通信制御装置100−3および他の通信装置200−3などの外部装置から各種情報を受信する。例えば、受信部201−3は、グループ操作メッセージを通信制御装置100−3から受信する。受信部201−3は、マルチキャスト通信およびブロードキャスト通信などにより出力情報を受信する。受信部201−3は、受信されたメッセージがグループ操作メッセージであるか判定する。グループ操作メッセージでない場合、受信されたメッセージは、当該メッセージを処理すべき他のモジュール(図示せず)に渡されて処理される。メッセージがグループ操作メッセージである場合、メッセージのデータはMKB処理部203−3に送られる。
MKB処理部203−3は、グループ操作メッセージに含まれる集合情報(ブルームフィルタMKB)と、デバイス鍵記憶部223に記憶されたデバイス鍵とからグループ鍵を生成するブルームフィルタMKB処理を実行する。
例えば上述のようにブルームフィルタMKBが(ブルームフィルタ,AuthEnc(iのノード鍵,グループ鍵)のリスト)で表される場合、MKB処理部203−3は、デバイス鍵記憶部223に記録されている各ノードのインデックスをブルームフィルタで検査し、検出されるインデックス探索する。もし、インデックスが検出されたら、MKB処理部203−3は、検出されたインデックスで特定されるノード鍵で、AuthDec(検出されたノード鍵、AuthEnc(iのノード鍵,グループ鍵))を実行し、復号に成功した場合、それをグループ鍵とする。AuthDec(検出されたノード鍵、AuthEnc(iのノード鍵,グループ鍵))は、検出されたノード鍵を用いて、暗号文AuthEnc(iのノード鍵,グループ鍵)を復号した結果を表す。復号結果は、検出されたノード鍵とiのノード鍵が等しいときはグループ鍵となり、それ以外の場合はエラーとなる。
ブルームフィルタMKB処理の結果、グループ鍵が得られた場合、当該通信装置200−3はGIDに示されるグループに所属することを意味する。MKB処理部203−3は、GIDと、取得したグループ鍵と、をグループ制御部204に送る。
一方、ブルームフィルタMKB処理の結果、グループ鍵が得られなかった場合、すなわち復号に成功しなかった場合は、当該通信装置200−3はGIDに示されるグループに所属しないことを意味する。従って、所属している場合は離脱する必要がある。このため、MKB処理部203−3は、GIDと、グループ鍵が取得できなかった旨の通知と、をグループ制御部204に送る。
なお、上述の各記憶部は、HDD(Hard Disk Drive)、光ディスク、メモリカード、RAM(Random Access Memory)などの一般的に利用されているあらゆる記憶媒体により構成することができる。
また、通信制御装置100−3の受付部101、生成部102−3、および、出力部103−3、並びに、通信装置200−3の受信部201−3、MKB処理部203−3、および、グループ制御部204は、例えば、CPUなどの処理装置にプログラムを実行させること、すなわち、ソフトウェアにより実現してもよいし、ICなどのハードウェアにより実現してもよいし、ソフトウェアおよびハードウェアを併用して実現してもよい。
次に、本実施形態にかかる通信制御装置100−3による通信制御処理について図22を用いて説明する。図22は、本実施形態における通信制御処理の一例を示すフローチャートである。
受付部101は、完全二分木T(または完全二分木Tの部分木T’)と、グループに属する通信装置200−3に対応する葉ノードのノードIDとを受け付ける(ステップS1101)。グループに属する通信装置200−3のデバイスIDを受け付けて、受け付けたデバイスIDの通信装置200−3に対応する葉ノードのノードIDを求めてもよい。生成部102−3は、受け付けた完全二分木T(または部分木T’)とノードIDとをもとに、集合情報と範囲情報を生成する生成処理を実行する(ステップS1102)。生成部102−3は、集合情報と範囲情報を含むグループ操作メッセージを生成する。出力部103−3は、グループ操作メッセージを出力する(ステップS1103)。
次に、ステップS1102の生成処理の詳細について説明する。第1の実施形態のステップS102と同様のアルゴリズムに、以下の情報を入力して使用する。
I:グループメンバに含まれる通信装置200−3のデバイスIDのリスト
T’:全体木である完全二分木Tの部分木(T’の根ノードR)
M:T’のノードの個数
そして、生成処理は、(S,minr、maxr)のリストOを生成する。ここで、
S:ブルームフィルタMKBに含まれるノードのリスト
minr:リストSに対する葉ノードのノードインデックスの下限値
maxr:リストSに対する葉ノードのノードインデックスの上限値
である。minrおよびmaxrが範囲情報に相当する。
集合情報に含めるブルームフィルタMKBを生成するためには、例えば、リストSに含まれるすべてのノードのインデックスからブルームフィルタを算出し、リストSに含まれるノードごとにAuthEnc(iのノード鍵,グループ鍵)を算出し、出力すればよい。ただし、iはリストSに含まれる各ノードのインデックスとする。
以上のように、本実施形態によれば、集合情報からMKBのインデックスを削除してインデックスのブルームフィルタを付すことが可能となる。その結果、例えばすべてのMKBを送信する方法と比較して、送信すべき情報を低減することができる。
次に、本実施形態にかかる通信装置200−3によるグループ制御処理について図23を用いて説明する。図23は、本実施形態におけるグループ制御処理の一例を示すフローチャートである。
受信部201−3は、通信制御装置100−3などの外部装置からメッセージを受信する(ステップS1201)。受信部201−3は、受信したメッセージがグループ操作メッセージであるか否かを判定する(ステップS1202)。グループ操作メッセージでない場合(ステップS1202:No)、グループ制御処理を終了する。なお、上述のようにグループ操作メッセージ以外のメッセージは、当該メッセージを処理すべきモジュールに渡されて適切に処理される。
グループ操作メッセージである場合(ステップS1202:Yes)、判定部202は、グループ操作メッセージ内の範囲情報が示す範囲に、デバイスID記憶部224に記憶されたデバイスIDが含まれるか否かを判定する(ステップS1203)。
範囲情報が示す範囲にデバイスIDが含まれない場合(ステップS1203:No)、グループ操作の対象外であるため、グループ制御処理を終了する。範囲情報が示す範囲にデバイスIDが含まれる場合(ステップS1203:Yes)、MKB処理部203−3は、グループ操作メッセージ内のブルームフィルタを付されたMKBを処理する(ステップS1204)。
MKB処理部203−3は、ブルームフィルタを付されたMKBが正しく処理されたか否かを判定する(ステップS1205)。正しく処理された場合(ステップS1205:Yes)、グループ制御部204は、グループ操作メッセージ内のGIDをGID記憶部221に記憶するとともに、ブルームフィルタMKB処理により得られたグループ鍵をグループ鍵記憶部222に記憶する(ステップS1206)。正しく処理されなかった場合(ステップS1205:No)、グループ制御部204は、グループ操作メッセージ内のGIDをGID記憶部221から削除するとともに、グループ鍵をグループ鍵記憶部222から削除する(ステップS1207)。
このように、本実施形態にかかる通信制御装置では、スケーラビリティを確保しながら動的なグループ管理を実現することができる。また、グループ管理のために、MKB全体ではなく、ブルームフィルタMKBを送信するため、通信負荷を軽減することができる。
(変形例5)
第3の実施形態において、MKBの分割が行われない場合には、グループ操作メッセージから範囲情報を取り除いて構成してもよい。このように構成することで、通信負荷をさらに低減することができる。
(変形例6)
集合情報に含めるブルームフィルタとして、リストSに含まれるすべてノードインデックスで特定されるノード鍵からブルームフィルタを算出するように構成してもよい。
例えば、生成部102−3は、MKBのインデックスの代わりに、インデックスで特定されるノード鍵からブルームフィルタを生成し、そのブルームフィルタを付したブルームフィルタMKBを生成する。
上述のようにブルームフィルタMKBが(ブルームフィルタ,AuthEnc(iのノード鍵,グループ鍵)のリスト)で表される場合、MKB処理部203−3は、デバイス鍵記憶部223に記録されている各ノード鍵をブルームフィルタで検査し、検出されるノード鍵を探索する。もし、検出される鍵を発見した場合は、AuthDec(検出されたノード鍵、AuthEnc(iのノード鍵,グループ鍵))を実行し、復号に成功した場合、それをグループ鍵とする。
このように構成することで、ノード鍵を保持していない通信機器は、グループに所属を命じられている機器を特定することができなくなり、プライバシを保護したグループ操作が可能となる。
(変形例7)
新規の通信装置200−3(葉ノード)がグループに追加された場合に、生成部102−3が、追加後のグループに属する葉ノードのノードIDを用いて、生成処理を再度実行してもよい。また、グループから通信装置200−3(葉ノード)が離脱した場合に、生成部102−3が、削除後のグループに属する葉ノードのノードIDを用いて、生成処理を再度実行してもよい。これにより、スケーラビリティを確保しながら動的なグループ管理を実現できる。
次に、本実施形態にかかる通信制御装置のハードウェア構成について図24を用いて説明する。図24は、本実施形態にかかる通信制御装置のハードウェア構成を示す説明図である。
本実施形態にかかる通信制御装置は、CPU(Central Processing Unit)51などの制御装置と、ROM(Read Only Memory)52やRAM(Random Access Memory)53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、各部を接続するバス61を備えている。
本実施形態にかかる装置(通信制御装置、通信装置)で実行されるプログラムは、ROM52等に予め組み込まれて提供される。
本実施形態にかかる装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
さらに、本実施形態にかかる装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態にかかる装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
本実施形態にかかる装置で実行されるプログラムは、コンピュータを上述した各部として機能させうる。このコンピュータは、CPU51がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。

Claims (14)

  1. 葉ノードそれぞれにインデックスおよびノード鍵が割り当てられた二分木と、葉ノードのうちグループに属する葉ノードを識別するノードIDと、の入力を受け付ける受付部と、
    前記ノードIDで識別される前記葉ノードのみをそれぞれ含む前記二分木の部分木の根ノードに割り当てられた前記ノード鍵を用いて、前記グループで共有されるグループ鍵を暗号化した暗号文を生成し、生成した前記暗号文を含む集合情報と、前記部分木の葉ノードに割り当てられた前記インデックスの下限値と上限値とを示す範囲情報と、を生成する生成部と、
    前記集合情報と前記範囲情報とを、少なくとも前記グループに属する葉ノードに対応づけられる通信装置に対して出力する出力部と、
    を備える通信制御装置。
  2. 葉ノードそれぞれにインデックスおよびノード鍵が割り当てられた二分木と、前記葉ノードのうちグループに属する葉ノードを識別するノードIDと、を用いて生成された集合情報と範囲情報とを、少なくとも前記グループに属する葉ノードに対応づけられる通信装置に対して出力する出力部を備え、
    前記集合情報は、前記ノードIDで識別される前記葉ノードのみをそれぞれ含む前記二分木の部分木の根ノードに割り当てられた前記ノード鍵を用いて、前記グループで共有されるグループ鍵を暗号化した暗号文を含み、
    前記範囲情報は、前記部分木の葉ノードに割り当てられた前記インデックスの下限値と上限値とを示す、
    通信制御装置。
  3. 前記集合情報は、前記部分木の根ノードに割り当てられた前記ノード鍵を特定するブルームフィルタをさらに含む、
    請求項1または2に記載の通信制御装置。
  4. 前記集合情報は、前記部分木の根ノードに割り当てられた前記ノード鍵を特定するノードIDをさらに含む、
    請求項1または2に記載の通信制御装置。
  5. 前記集合情報は、前記ノード鍵を用いた認証付暗号により前記グループ鍵を暗号化した暗号文を生成し、生成した前記暗号文を含む、
    請求項1から4のいずれか1項に記載の通信制御装置。
  6. 前記生成部は、前記ノードIDで識別される前記葉ノードのみをそれぞれ含む前記二分木の部分木を所定数含む集合を示し、前記集合に含まれる前記部分木の根ノードに割り当てられた前記ノード鍵を用いて前記グループ鍵を暗号化した暗号文を含む集合情報を生成する、
    請求項1に記載の通信制御装置。
  7. 前記生成部は、左端の葉ノードおよび右端の葉ノードの一方から他方に向かって、前記ノードIDで識別される前記葉ノードのみをそれぞれ含む前記部分木を前記所定数含む集合を示す前記集合情報を求める処理と、求めた前記集合に含まれる葉ノードの前記インデックスの前記範囲情報を求める処理と、を含むトレース処理を繰り返すことにより、前記集合情報と前記範囲情報とを生成する、
    請求項6に記載の通信制御装置。
  8. 前記生成部は、左端の葉ノードおよび右端の葉ノードの一方から他方に向かって、前記ノードIDで識別される前記葉ノードのみをそれぞれ含む前記部分木を求める処理を繰り返して1以上の前記部分木を求め、求めた前記部分木を、それぞれ前記所定数含む前記集合に分割し、前記集合それぞれに含まれる前記部分木の葉ノードに割り当てられた前記インデックスの前記範囲情報を求めることにより、前記集合情報と前記範囲情報とを生成する、
    請求項6に記載の通信制御装置。
  9. 前記生成部は、前記グループに葉ノードが追加された場合に、葉ノードを追加後のグループに属する葉ノードの前記ノードIDを用いて、前記集合情報と前記範囲情報とを再度生成する、
    請求項1に記載の通信制御装置。
  10. 前記生成部は、前記グループに葉ノードが削除された場合に、葉ノードを削除後のグループに属する葉ノードの前記ノードIDを用いて、前記集合情報と前記範囲情報とを再度生成する、
    請求項1に記載の通信制御装置。
  11. 前記集合情報は、前記集合情報が示す集合に含まれる前記部分木の葉ノードに対応づけられる通信装置がグループ鍵を導出可能な鍵情報を含む、
    請求項1または2に記載の通信制御装置。
  12. 受付部が、葉ノードそれぞれにインデックスおよびノード鍵が割り当てられた二分木と、葉ノードのうちグループに属する葉ノードを識別するノードIDと、の入力を受け付ける受付ステップと、
    生成部が、前記ノードIDで識別される前記葉ノードのみをそれぞれ含む前記二分木の部分木の根ノードに割り当てられた前記ノード鍵を用いて、前記グループで共有されるグループ鍵を暗号化した暗号文を生成し、生成した前記暗号文を含む集合情報と、前記部分木の葉ノードに割り当てられた前記インデックスの下限値と上限値とを示す範囲情報と、を生成する生成ステップと、
    出力部が、前記集合情報と前記範囲情報とを、少なくとも前記グループに属する葉ノードに対応づけられる通信装置に対して出力する出力ステップと、
    を含む通信制御方法。
  13. コンピュータを、
    葉ノードそれぞれにインデックスおよびノード鍵が割り当てられた二分木と、葉ノードのうちグループに属する葉ノードを識別するノードIDと、の入力を受け付ける受付部と、
    前記ノードIDで識別される前記葉ノードのみをそれぞれ含む前記二分木の部分木の根ノードに割り当てられた前記ノード鍵を用いて、前記グループで共有されるグループ鍵を暗号化した暗号文を生成し、生成した前記暗号文を含む集合情報と、前記部分木の葉ノードに割り当てられた前記インデックスの下限値と上限値とを示す範囲情報と、を生成する生成部と、
    前記集合情報と前記範囲情報とを、少なくとも前記グループに属する葉ノードに対応づけられる通信装置に対して出力する出力部と、
    として機能させるためのプログラム。
  14. 葉ノードそれぞれにインデックスおよびノード鍵が割り当てられた二分木と、葉ノードのうちグループに属する葉ノードを識別するノードIDと、の入力を受け付ける受付部と、
    前記ノードIDで識別される前記葉ノードのみをそれぞれ含む前記二分木の部分木の根ノードに割り当てられた前記ノード鍵を用いて、前記グループで共有されるグループ鍵を暗号化した暗号文を生成し、前記部分木の根ノードに割り当てられた前記ノード鍵を特定するブルームフィルタと、生成した前記暗号文と、を含む集合情報を生成する生成部と、
    前記集合情報を、少なくとも前記グループに属する葉ノードに対応づけられる通信装置に対して出力する出力部と、
    を備える通信制御装置。
JP2016556172A 2014-10-31 2014-10-31 通信制御装置、通信制御方法およびプログラム Active JP6290443B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/079138 WO2016067471A1 (ja) 2014-10-31 2014-10-31 通信制御装置、通信制御方法およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2016067471A1 JPWO2016067471A1 (ja) 2017-04-27
JP6290443B2 true JP6290443B2 (ja) 2018-03-07

Family

ID=55856849

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016556172A Active JP6290443B2 (ja) 2014-10-31 2014-10-31 通信制御装置、通信制御方法およびプログラム

Country Status (3)

Country Link
US (1) US10673624B2 (ja)
JP (1) JP6290443B2 (ja)
WO (1) WO2016067471A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6100922B2 (ja) 2013-12-26 2017-03-22 株式会社東芝 通信制御装置、通信制御方法、プログラムおよび通信システム
JP7487333B2 (ja) 2020-03-31 2024-05-20 グーグル エルエルシー 複合量子ゲート較正

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6421662B1 (en) * 1999-06-04 2002-07-16 Oracle Corporation Generating and implementing indexes based on criteria set forth in queries
CA2293167A1 (en) * 1999-12-30 2001-06-30 Nortel Networks Corporation Source code cross referencing tool, b-tree and method of maintaining a b-tree
US7043024B1 (en) * 2001-04-18 2006-05-09 Mcafee, Inc. System and method for key distribution in a hierarchical tree
US7308583B2 (en) * 2002-01-25 2007-12-11 Matsushita Electric Industrial Co., Ltd. Data distribution system
US7340603B2 (en) * 2002-01-30 2008-03-04 Sony Corporation Efficient revocation of receivers
JP4436907B2 (ja) * 2003-08-12 2010-03-24 株式会社リコー 光ファイバ結合光学装置およびそれを備えた画像形成装置
JP4561074B2 (ja) 2003-10-14 2010-10-13 ソニー株式会社 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US20050210014A1 (en) * 2004-03-08 2005-09-22 Sony Corporation Information-processing method, decryption method, information-processing apparatus and computer program
JP4169347B2 (ja) * 2004-03-16 2008-10-22 株式会社東芝 情報処理装置、情報処理方法及び情報処理プログラム
JP4632413B2 (ja) * 2004-09-01 2011-02-16 キヤノン株式会社 情報暗号化装置及び情報配信装置並びにそれらの制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
JP2006086568A (ja) * 2004-09-14 2006-03-30 Sony Corp 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム
JP4653157B2 (ja) * 2005-01-25 2011-03-16 株式会社ターボデータラボラトリー ツリーの検索、集計、ソート方法、情報処理装置、および、ツリーの検索、集計、ソートプログラム
KR100737876B1 (ko) * 2005-02-25 2007-07-12 삼성전자주식회사 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법
JP4569464B2 (ja) 2005-12-20 2010-10-27 沖電気工業株式会社 マルチホップネットワークにおける鍵更新システム,鍵管理装置,通信端末および鍵情報構築方法
CN101535990B (zh) * 2006-08-23 2013-05-29 创新解决方案公司 高效的搜索结果更新机制
JP2008131076A (ja) 2006-11-16 2008-06-05 Sony Corp 情報処理装置、端末装置、情報処理方法、鍵生成方法、及びプログラム
US8300814B2 (en) 2006-11-16 2012-10-30 Sony Corporation Information processing unit, terminal unit, information processing method, key generation method and program
JP2009036022A (ja) * 2007-07-31 2009-02-19 Denso Corp 内燃機関の異種燃料混入判定装置
US7801137B2 (en) * 2008-03-11 2010-09-21 Cisco Technology, Inc. Receiver-based construction of point-to-multipoint trees using path computation elements in a computer network
JP2011130012A (ja) 2009-12-15 2011-06-30 Sony Corp アクターノード、センサノード、担当区画変更方法、パラメータ変更方法、プログラムおよび情報処理システム
US20110158405A1 (en) * 2009-12-31 2011-06-30 The Industry & Academy Cooperation in Chungnam National University (IAC) Key management method for scada system
JP5676331B2 (ja) * 2011-03-24 2015-02-25 株式会社東芝 ルートノード及びプログラム
WO2013003981A1 (en) * 2011-07-06 2013-01-10 Telefonaktiebolaget L M Ericsson (Publ) Dynamic updating of a label switched path
US9155320B2 (en) * 2011-07-06 2015-10-13 International Business Machines Corporation Prefix-based leaf node storage for database system
US8930691B2 (en) * 2011-08-16 2015-01-06 Microsoft Corporation Dynamic symmetric searchable encryption
JP6029936B2 (ja) 2012-11-02 2016-11-24 株式会社東芝 通信制御装置、通信装置およびプログラム
US9424132B2 (en) * 2013-05-30 2016-08-23 International Business Machines Corporation Adjusting dispersed storage network traffic due to rebuilding
JP5950285B2 (ja) * 2013-12-19 2016-07-13 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 予め決められた複数のビット幅のデータに対して操作を行う命令を使用してツリーの検索を行うための方法、並びに、当該命令を使用してツリーの検索を行うためのコンピュータ及びそのコンピュータ・プログラム
JP6100922B2 (ja) 2013-12-26 2017-03-22 株式会社東芝 通信制御装置、通信制御方法、プログラムおよび通信システム
GB2524287B (en) * 2014-03-19 2020-07-01 Advanced Risc Mach Ltd Graphics processing systems
US9348857B2 (en) * 2014-05-07 2016-05-24 International Business Machines Corporation Probabilistically finding the connected components of an undirected graph

Also Published As

Publication number Publication date
US10673624B2 (en) 2020-06-02
JPWO2016067471A1 (ja) 2017-04-27
WO2016067471A1 (ja) 2016-05-06
US20170170958A1 (en) 2017-06-15

Similar Documents

Publication Publication Date Title
US8750511B2 (en) Root node and a computer readable medium
JP6100922B2 (ja) 通信制御装置、通信制御方法、プログラムおよび通信システム
JP5666422B2 (ja) ブロードキャスト暗号化システムにおける除かれたノードリストの生成方法
WO2014010087A1 (ja) 通信制御装置、通信装置およびプログラム
US10673713B2 (en) Communication control device, communication device, and computer program product for dynamic group management
JP5992295B2 (ja) 通信制御装置、通信装置およびプログラム
JP2006074392A (ja) 情報暗号化装置及びその制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
JP6290443B2 (ja) 通信制御装置、通信制御方法およびプログラム
JP6700797B2 (ja) 鍵生成装置、中間暗号化装置、委託暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム
JP2009272927A (ja) 通信装置、サーバ、及びプログラム
JP2018157246A (ja) 管理装置、および管理方法
KR20160001598A (ko) 스토리지 디바이스용 호스트 키 생성 방법 및 시스템
JP6472911B2 (ja) 通信装置、通信方法、プログラムおよび通信システム
JP6302109B2 (ja) 通信制御装置、通信制御方法、プログラムおよび通信システム
JP5150175B2 (ja) Sd法におけるクライアント端末被覆方法およびプログラム
JP6162873B2 (ja) 通信制御装置、通信装置およびプログラム
JP6903786B2 (ja) 管理装置、および管理方法
JP2005006033A (ja) 鍵生成方法、鍵生成装置、コンテンツ配信装置、端末装置およびプログラム
US20090274305A1 (en) Method and apparatus for transmitting content key
JP6139803B2 (ja) 通信制御装置、通信装置およびプログラム
WO2017145250A1 (ja) 情報処理装置及び情報処理方法及び情報処理プログラム
JP2016197918A (ja) 通信制御装置、通信装置およびプログラム
KR20160129318A (ko) 블록기반 협업폴더의 콘텐츠 업로드 및 다운로드 방법과 블록기반 협업폴더의 콘텐츠 암호화 시스템
JP2016028490A (ja) 情報処理装置および送信方法
KR20200089391A (ko) 블록체인 기술을 이용한 정보 공유 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170711

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170830

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180207

R151 Written notification of patent or utility model registration

Ref document number: 6290443

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151