JP6903786B2 - 管理装置、および管理方法 - Google Patents

管理装置、および管理方法 Download PDF

Info

Publication number
JP6903786B2
JP6903786B2 JP2020074511A JP2020074511A JP6903786B2 JP 6903786 B2 JP6903786 B2 JP 6903786B2 JP 2020074511 A JP2020074511 A JP 2020074511A JP 2020074511 A JP2020074511 A JP 2020074511A JP 6903786 B2 JP6903786 B2 JP 6903786B2
Authority
JP
Japan
Prior art keywords
node
key
subtree
update
group
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
JP2020074511A
Other languages
English (en)
Other versions
JP2020129808A (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
Priority claimed from JP2017049945A external-priority patent/JP2018157246A/ja
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2020074511A priority Critical patent/JP6903786B2/ja
Publication of JP2020129808A publication Critical patent/JP2020129808A/ja
Application granted granted Critical
Publication of JP6903786B2 publication Critical patent/JP6903786B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明の実施形態は、管理装置、および管理方法に関する。
複数の通信装置が受信するマルチキャスト通信の通信内容を保護するために、複数の通信装置で共有するグループ鍵を利用する方法がある。また、グループ鍵を管理する管理装置から複数の通信装置に対してグループ鍵を配布する技術が知られている。この技術では、例えばデバイス鍵を用いてグループ鍵を配布することで、管理装置から各通信装置に対して個別にグループ鍵を配布するよりも、少ない通信コストでグループ鍵を配布できる。
IEEE Std 802.21d-2015, 802.21d-2015-IEEE Standard for Local and metropolitan area networks--Part 21: Media Independent Handover Services Amendment 4: Multicast Group Management. RFC 6407, The Group Domain of Interpretation. ISO/IEC 11770-5:2011 Information technology--Security techniques--Key management--Part 5: Group key management.
システムの安全性を維持するためには、定期的にデバイス鍵を更新することが望ましい。しかしながら、例えば2者間による認証付鍵交換プロトコルを利用したデバイス鍵の再配布では、通信装置の数が多い場合、すべての通信装置のデバイス鍵を更新するまでに多くの時間を要する。このように従来技術では、すべての通信装置のデバイス鍵の更新が完了するまでグループ鍵を配布できず、システムの可用性が下がる場合があった。
実施形態の管理装置は、管理木記憶部と管理木更新部と選択部と送信部とを備える。管理木記憶部は、ノード鍵が割り当てられた複数のノードを含む二分木を記憶する。管理木更新部は、ノード鍵を更新する。選択部は、グループに含まれる通信装置に対応する二分木の葉ノードを含む部分木であって、割り当てられたノード鍵がすべて更新前である葉ノードのみを含む第1の部分木、および、割り当てられたノード鍵がすべて更新後である葉ノードのみを含む第2の部分木のうち少なくとも一方を選択する。送信部は、選択された部分木の根ノードのノード鍵で暗号化したグループ鍵を送信する。
第1の実施形態に係る通信システムのブロック図。 第1の実施形態に係る管理装置のブロック図。 CS(Complete Subtree)法のための管理木の一例を示す図。 第1の実施形態の管理木のノードに割り当てられる情報の一例を示す図。 第1の実施形態に係る通信装置のブロック図。 第1の実施形態におけるデバイス鍵更新処理のシーケンス図。 第1の実施形態のデバイス鍵更新処理のフローチャート。 第1の実施形態の管理木更新事前処理のフローチャート。 第1の実施形態の管理木更新処理のフローチャート。 第1の実施形態のグループ更新処理のフローチャート。 第1の実施形態のノード鍵選択処理のフローチャート。 第1の実施形態の通信装置のデバイス鍵更新処理のフローチャート。 第1の実施形態の通信装置のグループ更新処理のフローチャート。 変形例1の管理木更新処理のフローチャート。 変形例1のノード鍵選択処理のフローチャート。 変形例2のノード鍵選択処理のフローチャート。 変形例3の通信システムの構成例を示すブロック図。 第2の実施形態に係る管理装置のブロック図。 第2の実施形態の管理木のノードに割り当てられる情報の一例を示す図。 第2の実施形態の管理木更新事前処理のフローチャート。 第2の実施形態の管理木更新処理のフローチャート。 第2の実施形態のノード鍵選択処理のフローチャート。 変形例5の管理木更新事前処理のフローチャート。 変形例5の管理木更新処理のフローチャート。 実施形態にかかる装置のハードウェア構成例を示す説明図。
以下に添付図面を参照して、この発明にかかる管理装置の好適な実施形態を詳細に説明する。
デバイス鍵を用いてグループ鍵を配布する技術として、デバイス鍵の構成方法とその利用方法が異なる複数の技術が知られている。例えばIEEE 802.21dでは、次のようなグループ鍵配布プロトコルが規定されている。グループを管理する管理装置は、各通信装置との間で、デバイス鍵と呼ばれるグループ鍵配布用の共通鍵を共有する。管理装置は、デバイス鍵を用いてグループ鍵を暗号化して送付する。これによりマルチキャストグループに所属する通信装置に対してのみグループ鍵を安全に送付することができる。
デバイス鍵の共有は、2者間による認証付鍵交換プロトコルなどの公知技術を用いることで実現できる。安全性を維持するためにデバイス鍵を更新する場合、上記のように、すべてのデバイス鍵の更新が完了するまでグループ鍵を配布できず、システムの可用性が下がる場合があった。そこで、以下の各実施形態では、すべての通信装置のデバイス鍵の更新が完了する前であってもグループ鍵の配布を可能とする。
(第1の実施形態)
図1は、第1の実施形態に係る通信システム10の構成例を示すブロック図である。図1に示すように、通信システム10は、管理装置100と、通信装置200a〜200eとを有する。通信装置200a〜200eは、同様の機能を備えるため、以下では区別する必要がない場合は単に通信装置200という場合がある。通信装置200の個数は5に限られるものではなく、任意の個数でよい。
管理装置100は、複数の通信装置200を制御する通信制御装置である。管理装置100は、例えば、各通信装置200との間で共有するデバイス鍵を用いてグループ鍵を配布する機能を有する。管理装置100と通信装置200はネットワークを介して接続される。ネットワークは、有線ネットワーク、無線ネットワーク、その他任意の形態のネットワークでよい。
管理装置100と各通信装置200との間では、相互認証と鍵共有を行う認証付鍵交換プロトコルが実施される。管理装置100は、認証付鍵交換プロトコルの結果として確立された共有鍵を用いてデバイス鍵を暗号化し、暗号化したデバイス鍵を通信装置200に送付することで、管理装置100と各通信装置200の間でデバイス鍵が共有される。管理装置100は、暗号通信で使用するグループ鍵をデバイス鍵の一部を用いて暗号化して各通信装置200に配布する。認証付鍵交換プロトコルの一例として、RFC5191方式など様々な公知技術が知られている。
図2は、第1の実施形態に係る管理装置100の機能構成例を示すブロック図である。図2に示すように、管理装置100は、受信部101と、送信部102と、グループ情報記憶部121と、機器情報記憶部122と、証明書記憶部123と、管理木記憶部124と、鍵交換部111と、管理木更新部112と、選択部113と、グループ更新部114と、を有する。
受信部101は、他の管理装置および通信装置200などの外部装置から各種情報を受信する。例えば受信部101は、外部装置からグループ更新要求を受信する。
送信部102は、他の管理装置および通信装置200などの外部装置に各種情報を送信する。例えば送信部102は、暗号化したグループ鍵を、対応するグループに属する通信装置200に送信する。
グループ情報記憶部121は、通信装置200が属するグループを管理するグループ情報を記憶する。例えばグループ情報記憶部121は、グループを識別する識別情報(グループID)と、グループ鍵と、そのグループIDで識別されるグループに所属するメンバである通信装置200を識別する識別情報(機器ID)との組であるグループ情報を記憶する。
機器情報記憶部122は、通信装置200を管理する機器情報を記憶する。例えば機器情報記憶部122は、各通信装置200の機器IDと、その通信装置200との間で共有したデバイス鍵との組である機器情報を記憶する。
証明書記憶部123は、認証付鍵交換に用いる証明書と、対応する秘密情報との組を記憶する。証明書は、公開鍵に対する証明書、および、事前共有鍵に対する証明書など、用いる相互認証方法に応じて選択すればよい。本実施形態では、管理装置100は、正規の管理装置100に対してのみ発行される証明書と対応する秘密情報を予め備えているとする。
管理木記憶部124は、デバイス鍵を管理するための管理木を記憶する。例えば管理木記憶部124は、ノード鍵が割り当てられた複数のノードを含む二分木である管理木を記憶する。以下に説明するように、複数のノード鍵の組がデバイス鍵に相当する。
図3は、8台の通信装置200のデバイス鍵を管理するCS(Complete Subtree)法のための管理木の一例を示す図である。図3に示すように、管理木は、葉ノードを8つ持つ二分木となっており、a1からa15の15個のノードで構成される。親ノードを持たないノードa1を根ノードと呼び、子ノードを持たないノードa8からa15を葉ノードと呼ぶ。各葉ノードには、1台の通信装置が割り当てられる。CS法の管理木では、各ノードは、ノードを一意に識別する識別情報(ノードID)と、ノードごとに割り当てられる暗号鍵であるノード鍵を保持する。
各通信装置200は、根ノードから自身が割り当てられた葉ノードまでの経路上のノードに割り当てられたノードIDと、ノード鍵との組を、管理装置100よりデバイス鍵として与えられる。例えば、図3の通信装置200aは、ノードa1、a2、a4、a8に割り当てられた4組のノードIDとノード鍵との組であるデバイス鍵を保持する。
グループ鍵を配布するとき、管理装置100は、グループ鍵の配布対象となる通信装置200に割り当てられた葉ノードのみを持つ部分木を求め、その部分木の根ノードに割り当てられたノード鍵を用いてグループ鍵を暗号化し、送付する。送付される暗号化したグループ鍵の組をグループ鍵データと呼ぶ。
例えば、通信装置200a、200b、200c、200d、200e、200f、200g、200hにグループ鍵を送付する場合、管理装置100は、各通信装置200に割り当てられた葉ノードa8、a9、a10、a11、a12、a13、a14、a15のみを葉ノードに持つ部分木の根ノードa1に割り当てられたノード鍵を用いてグループ鍵を暗号化した暗号文cを送付する。各通信装置200は、a1に割り当てられたノード鍵をデバイス鍵の成分として保持しているため、暗号文cを復号することでグループ鍵を得ることができる。
また、通信装置200a、200e、200f、200g、200hにのみグループ鍵を送付する場合、管理装置100は、a8のみを葉ノードに持つ部分木の根ノードa8に割り当てられたノード鍵でグループ鍵を暗号化した暗号文c1と、a12、a13、a14、a15のみを葉ノードにもつ部分木の根ノードa3に割り当てられたノード鍵を用いてグループ鍵を暗号化した暗号文c2と、を送付する。通信装置200a、200e、200f、200g、200hは、a8またはa3に割り当てられたノード鍵をデバイス鍵の成分として保持しているため、c1またはc2を復号することでグループ鍵を得ることができる。一方、他の通信装置200b、200c、200dは、a8またはa3に割り当てられたノード鍵を保持していないため、c1とc2からグループ鍵を得ることができない。
このように、第1の実施形態では、CS法を応用して、所望の通信装置200にのみグループ鍵を配布する。CS法では、管理装置100は管理木を保持しており、通信装置200はデバイス鍵を保持している。グループ鍵は、所望の通信装置200に応じて選択されたデバイス鍵で暗号化される。CS法の詳細は、非特許文献1などに記載されている。
CS法は、ある通信装置200に割り当てられたデバイス鍵が漏えいした場合、そのデバイス鍵を無効化する機能も備える。例えば、管理木の各ノードは、初期値0の無効化フラグを各々保持する。デバイス鍵が漏えいした場合、管理装置100は、そのデバイス鍵に含まれるノードIDに対応するノードの無効化フラグを1に変更する。そして管理装置100は、以降のグループ鍵配布では、無効化フラグが1のノードは利用しないようにする。これにより、デバイス鍵が無効化された通信装置200は、以降、グループ鍵の配布を受けることはできないが、漏えいしたデバイス鍵を保持する攻撃者に対してもグループ鍵を秘匿できる。
これまでは、CS法の機能を説明するための最低限の処理のみを記述している。管理装置100はこれ以外の処理を備えてもよい。例えば、上記の処理に加え、無効化済みのノードを利用しなければ、指定されたグループメンバにグループ鍵を配布できない場合は、指定されたメンバに無効化済みの通信装置200が含まれる旨の警告を返すように管理装置100を構成してもよい。
図4は、ノードに割り当てられる情報の一例を示す図である。図4に示すように、各ノードは、ノードIDおよびノード鍵に加えて、有効フラグおよび更新済フラグが割り当てられる。有効フラグおよび更新済フラグは、後述するように、デバイス鍵の更新状況の管理、および、デバイス鍵更新中におけるグループ鍵配布に用いられる情報である。
例えば有効フラグは、割り当てられたノード鍵が暗号化に使用できるか否かを判定するための判定情報として用いられる。有効フラグは、例えば割り当てられたノード鍵が暗号化に使用できる場合に1が設定され、使用できない場合に0が設定される。更新済フラグは、ノードに対応するノード鍵が更新されたか否かを示す情報である。更新済フラグは、例えばノード鍵が更新された場合に1が設定され、更新されていない場合に0が設定される。本実施形態では、有効フラグおよび更新済フラグは、管理木に含まれるすべてのノード(第1のノード)に対して割り当てられる。
図2に戻り、鍵交換部111は、認証付鍵交換プロトコルを実行する。例えば鍵交換部111は、証明書記憶部123に記憶された証明書を用いて、通信装置200と相互認証を行い、管理装置100と通信装置200の2者間の共有鍵を確立する。鍵交換部111は、相互認証の相手となる通信装置200の証明書が、正規の通信装置200に対してのみ発行される証明書であるか、および、無効化済みの機器ではないかを検査することで、更新したデバイス鍵を割り当ててもよい機器であるか否かを検査する。
管理木更新部112は、各通信装置200との間で共有したデバイス鍵の更新処理を行う。上記のように複数のノード鍵の組がデバイス鍵に相当するため、各ノードのノード鍵を更新することが、デバイス鍵を更新することに相当する。
選択部113は、グループ鍵の配布対象となる通信装置200に割り当てられた葉ノードのみを持つ部分木を、管理木の部分木から選択する。選択部113は、例えば、グループに含まれる通信装置200に対応する葉ノードを含む部分木であって、割り当てられたノード鍵がすべて更新前である葉ノードのみを含む部分木(第1の部分木)、および、割り当てられたノード鍵がすべて更新後である葉ノードのみを含む部分木(第2の部分木)のうち少なくとも一方を選択する。
例えば選択部113は、まず、CS法に基づいてグループに含まれる通信装置200に対応する管理木の葉ノードを含む部分木を選択する。選択部113は、CS法により選択した部分木から、判定情報を参照してノード鍵が暗号化に使用できると判定されたノードを含む部分木を選択する。すなわち選択部113は、判定情報として有効フラグを参照して、ノード鍵が暗号化に使用できることを示す有効フラグ(有効フラグ=1)が割り当てられたノードを含む部分木を選択する。
グループ更新部114は、グループ更新処理を実行する。例えばグループ更新部114は、管理木記憶部124が記憶する管理木と、機器情報記憶部122が記憶する機器情報と、グループ情報記憶部121が記憶するグループ情報と、グループに属すべき通信装置200の情報と、を参照して、グループに属すべき通信装置200にのみグループ鍵を配布するための情報(グループ鍵データ)を生成する。グループ鍵データは、例えば送信部102により、対応するグループに属する通信装置200に送信される。
上記各部(受信部101、送信部102、鍵交換部111、管理木更新部112、選択部113、グループ更新部114)は、例えば、1または複数のプロセッサにより実現される。例えば上記各部は、CPU(Central Processing Unit)などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のIC(Integrated Circuit)などのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち1つを実現してもよいし、各部のうち2以上を実現してもよい。
なお、各記憶部(グループ情報記憶部121、機器情報記憶部122、証明書記憶部123、管理木記憶部124)は、HDD(Hard Disk Drive)、光ディスク、メモリカード、RAM(Random Access Memory)などの一般的に利用されているあらゆる記憶媒体により構成することができる。
図5は、第1の実施形態に係る通信装置200の機能構成例を示すブロック図である。図5に示すように、通信装置200は、受信部201と、送信部202と、グループ情報記憶部221と、デバイス鍵記憶部222と、証明書記憶部223と、鍵交換部211と、デバイス鍵更新部212と、グループ更新部213と、を有する。
受信部201は、管理装置100などの外部装置から各種情報を受信する。例えば受信部201は、管理装置100からデバイス鍵の更新要求、更新するデバイス鍵、および、グループ鍵データなどを受信する。送信部202は、管理装置100などの外部装置に各種情報を送信する。
グループ情報記憶部221は、通信装置200が属するグループを管理するグループ情報を記憶する。例えばグループ情報記憶部221は、メンバとして属するグループのグループIDとグループ鍵との組であるグループ情報を記憶する。デバイス鍵記憶部222は、管理装置100から割り当てられたデバイス鍵を記憶する。
証明書記憶部223は、認証付鍵交換に用いる証明書と、対応する秘密情報との組を記憶する。証明書は、公開鍵に対する証明書、および、事前共有鍵に対する証明書など、用いる相互認証方法に応じて選択すればよい。本実施形態では、通信装置200は、管理装置100に対してのみ発行される証明書と対応する秘密情報を予め備えているとする。
鍵交換部211は、認証付鍵交換プロトコルを実行する。例えば鍵交換部211は、証明書記憶部223に記憶された証明書を用いて、管理装置100と相互認証を行い、管理装置100と通信装置200の2者間の共有鍵を確立する。鍵交換部211は、相互認証の相手となる通信装置200の証明書が、正規の管理装置100に対してのみ発行される証明書であるか否かを検査することで、デバイス鍵を更新する資格がある管理装置100であるか否かを検査する。
デバイス鍵更新部212は、デバイス鍵の更新処理を実行する。グループ更新部213は、グループ鍵の更新処理を実行する。
上記各部(受信部201、送信部202、鍵交換部211、デバイス鍵更新部212、グループ更新部213)は、例えば、1または複数のプロセッサにより実現される。例えば上記各部は、CPUなどのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のICなどのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち1つを実現してもよいし、各部のうち2以上を実現してもよい。
なお、各記憶部(グループ情報記憶部221、デバイス鍵記憶部222、証明書記憶部223)は、HDD、光ディスク、メモリカード、RAMなどの一般的に利用されているあらゆる記憶媒体により構成することができる。
次に、このように構成された第1の実施形態にかかる通信システム10によるデバイス鍵更新処理の概要について図6を用いて説明する。図6は、第1の実施形態におけるデバイス鍵更新処理の一例を示すシーケンス図である。管理装置100は、無効化されていないすべての通信装置200との間で、図6に示すデバイス鍵更新処理を実行する。
管理装置100は、通信装置200に対してデバイス鍵更新要求を送信し(ステップS11)、認証付鍵交換処理を行う(ステップS12)。認証付鍵交換処理が成功したら、管理装置100と通信装置200との間で、共有鍵Kが確立される。本実施形態では、共有鍵Kの確立に失敗したら、以降の手順は行われないものとする。失敗した場合は一定回数まではデバイス鍵更新要求を再送し、処理をやり直すように構成してもよい。
管理装置100は、通信装置200に対して新たに割り当てる更新後デバイス鍵を算出し、共有鍵Kで更新後デバイス鍵を暗号化した暗号化デバイス鍵を送信する(ステップS13)。
通信装置200は、共有鍵Kを用いて、暗号化デバイス鍵を正常に復号し、デバイス鍵を取得できたら、受領通知を管理装置100に送信する(ステップS14)。本実施形態では、デバイス鍵の取得に失敗したら、以降の手順は行われないものとする。失敗した場合は一定回数まで失敗通知を送信し、認証付鍵交換処理等の前の処理をやり直すように構成してもよい。
以下、デバイス鍵更新処理の詳細についてさらに説明する。図7は、管理装置100内でのデバイス鍵更新処理の一例を示すフローチャートである。
受信部101は、デバイス鍵更新要求を受信する(ステップS101)。デバイス鍵更新要求は、例えば、定期的に実行、および、システム危殆化時に実行など、別途定められたポリシーに基づき発行される。デバイス鍵更新要求は、管理装置100内で発行されてもよいし、他の管理装置などで発行されてもよい。
デバイス鍵更新要求が受信された場合、管理装置100の管理木更新部112は、デバイス鍵更新処理を開始する。管理木更新部112は、現時点で無効化されていないすべての通信装置200の機器IDを含むリストLを作成する(ステップS102)。
管理木更新部112は、管理木更新事前処理を実行する(ステップS103)。管理木更新事前処理の詳細は後述する。
管理木更新部112は、リストLより通信装置200の機器IDを1つ選択する(ステップS104)。選択した機器IDに対応する通信装置200を以下では通信装置xともいう。
鍵交換部111は、通信装置xとの間で認証付鍵交換を実行して共有鍵Kを確立する(ステップS105)。管理木更新部112は、認証付鍵交換に成功したか否かを判定する(ステップS106)。成功した場合(ステップS106:Yes)、管理木更新部112は、デバイス鍵とデバイス鍵の管理木を更新する管理木更新処理を実行する(ステップS107)。管理木更新処理の詳細は後述する。なお以下では更新後デバイス鍵のリストをL_ndkと記載する。
管理木更新部112は、共有鍵Kを用いてリストL_ndkに含まれる各更新後デバイス鍵を暗号化した暗号化デバイス鍵を生成する(ステップS108)。送信部102は、暗号化デバイス鍵を通信装置200に送信する(ステップS109)。
認証付鍵交換に失敗した場合(ステップS106:No)、および、暗号化デバイス鍵を送信後、管理木更新部112は、リストLから通信装置xの機器IDを取り除く(ステップS110)。
受信部101は、グループの更新要求を受信したか否かを判定する(ステップS111)。グループ更新要求を受信した場合(ステップS111:Yes)、グループ更新部114は、グループ更新処理を実行する(ステップS112)。グループ更新処理の詳細は後述する。
グループ更新要求を受信していない場合(ステップS111:No)、および、グループ更新処理の実行後、管理木更新部112は、リストLが空であるか否かを判定する(ステップS113)。リストLが空でない場合(ステップS113:No)、ステップS104に戻り処理が繰り返される。リストLが空の場合(ステップS113:Yes)、デバイス鍵更新処理が終了する。
以上の処理により、機器情報記憶部122に記憶されたデバイス鍵と管理木記憶部124に記憶された管理木が更新され、各通信装置200に更新後のデバイス鍵が送信される。
本実施形態では、デバイス鍵更新処理の中で、グループの更新要求が受信されたかが判定され、受信された場合にグループ更新処理が実行される(ステップS111、ステップS112)。グループ更新処理では、更新前のデバイス鍵と更新後のデバイス鍵を使い分けてグループ鍵が配布される。これにより、すべての通信装置200のデバイス鍵の更新が完了する前であってもグループ鍵を配布可能となる。
なお、図7の例では、1つの通信装置200に対応するデバイス鍵を更新するごとに、グループの更新要求が受信されたか判定した。更新要求の判定処理およびグループ更新処理のタイミングはこれに限られず、デバイス鍵の更新中にグループ更新処理が実行できれば任意のタイミングでよい。例えば、複数の通信装置200のデバイス鍵が更新されたタイミングでもよい。1つの通信装置200のデバイス鍵の更新処理のループの中で複数回、更新要求の判定処理およびグループ更新処理が実行されてもよい。更新要求の判定処理およびグループ更新処理を、デバイス鍵更新処理のフローの中で実行せず、デバイス鍵更新処理とは独立に任意のタイミングで実行するように構成してもよい。
図8は、管理木更新事前処理の一例を示すフローチャートである。管理木更新部112は、管理木記憶部124に記憶されている管理木のすべてのノードの更新済フラグを0に設定し(ステップS201)、有効フラグを1に設定する(ステップS202)。
図9は、管理木更新処理の一例を示すフローチャートである。管理木更新部112は、管理木記憶部124から管理木を読み出す(ステップS301)。管理木更新部112は、更新後デバイス鍵を記録するリストL_ndkに空集合を代入して初期化する(ステップS302)。管理木更新部112は、通信装置xに割り当てられたデバイス鍵に含まれるすべてのノードIDをリストL_dkに記録する(ステップS303)。
説明のため、通信装置xに割り当てられたデバイス鍵に含まれるすべてのノードIDをnID_0,・・・,nID_nと表す。例えば図3の通信装置200aが通信装置xである場合、ノードa1、a2、a4、a8に対応する4つのノードID(nID_0、nID_1、nID_2、nID_3)がリストL_dkに記録される。
管理木更新部112は、リストL_dkに含まれるノードIDのうち、管理木中で最も深いノードのノードIDを読み出す(ステップS304)。ここでは、読み出したノードIDをnID_iと表す。例えば図3の通信装置200aが通信装置xである場合、最初の処理では、最も深い位置のノードa8のノードIDが読み出される。
管理木更新部112は、nID_iに対応する更新済フラグが0であるか否かを判定する(ステップS305)。nID_iに対応する更新済フラグが0である場合(ステップS305:Yes)、管理木更新部112は、ノード鍵nk_ID_iを新たに生成し、nID_iに対応するノード鍵を、生成したノード鍵nk_ID_iに更新する(ステップS306)。管理木更新部112は、nID_iに対応する更新済フラグを1に設定する(ステップS307)。
更新済フラグが0でない、すなわち、1である場合(ステップS305:No)、または、ステップS307で更新済フラグを1に設定した後、管理木更新部112は、nID_iが葉ノードであるか否かを判定する(ステップS308)。nID_iが葉ノードでない場合(ステップS308:No)、管理木更新部112は、nID_iの2つの子ノードの有効フラグが共に1であるか否かを判定する(ステップS309)。
nID_iが葉ノードである場合(ステップS308:Yes)、または、nID_iの2つの子ノードの更新済フラグが共に1である場合(ステップS309:Yes)、管理木更新部112は、nID_iの有効フラグを1に設定する(ステップS311)。nID_iの2つの子ノードの更新済フラグの少なくともいずれか1つが0の場合(ステップS309:No)、管理木更新部112は、nID_iの有効フラグを0に設定する(ステップS310)。
図9の例では、ノードが葉ノードであるか、または、2つの子ノードに割り当てられたノード鍵が共に更新済みであるか、または、2つの子ノードに割り当てられたノード鍵が共に更新前である場合に、有効フラグが1に設定される。このように設定された有効フラグを用いれば、ノード鍵を更新していないノードとノード鍵を更新したノードとを子ノードとして含むノードに対応するノード鍵を、グループ鍵の暗号化に使用しないように制御可能となる。
管理木更新部112は、リストL_ndkに、nID_iとノード鍵nk_ID_iとを追加する(ステップS312)。管理木更新部112は、リストL_dkから、nID_iを削除する(ステップS313)。
管理木更新部112は、リストL_dkが空であるか否かを判定する(ステップS314)。リストL_dkが空でない場合(ステップS314:No)、ステップS304に戻り処理が繰り返される。リストL_dkが空である場合(ステップS314:Yes)、管理木更新処理を終了する。
このようにして設定された有効フラグは、後述するグループ更新処理の中で、ノード鍵が使用できるか判定するときに参照される。管理木更新処理の中で有効フラグを設定しておくことにより、グループ更新処理の中でノード鍵が使用できるか判定する処理の負荷を軽減可能となる。
図10は、グループ更新処理の一例を示すフローチャートである。グループ更新部114は、更新後のグループに所属させるすべての通信装置200の機器IDを記録したリストL_mを生成する(ステップS401)。選択部113は、ノード鍵選択処理を行い、ノードIDのリストL_csを生成する(ステップS402)。リストL_csには、割り当てられたノード鍵がすべて更新前である葉ノードのみを含む部分木(第1の部分木)の根ノードのノードID、および、割り当てられたノード鍵がすべて更新後である葉ノードのみを含む部分木(第2の部分木)の根ノードのノードIDの少なくとも一方が登録される。ノード鍵選択処理の詳細は後述する。
グループ更新部114は、更新後のグループで利用するグループ鍵を生成する(ステップS403)。グループ更新部114は、生成したグループ鍵を、リストL_csに記録された1以上のノードIDに対応する1以上のノード鍵でそれぞれ暗号化してグループ鍵データを生成する(ステップS404)。送信部102は、グループ鍵データと更新対象のグループを識別するグループIDとを含む情報(グループ更新情報)を、例えば、更新対象の通信装置200を含むマルチキャストグループに対して配布する(ステップS405)。
図11は、ノード鍵選択処理の一例を示すフローチャートである。選択部113は、リストL_csに空集合を代入して初期化する(ステップS501)。選択部113は、リストL_m、および、管理木を読み出す(ステップS502)。選択部113は、リストL_mと管理木から、CS法によりノードIDのリストL_tcsを算出する(ステップS503)。
上記のように、CS法では、グループ鍵の配布対象となる通信装置200(リストL_mに機器IDが記録された通信装置200)に割り当てられた葉ノードのみを持つ部分木が求められる。リストL_tcsには、このようにして求められた部分木の根ノードのノードIDが記録される。
選択部113は、リストL_tcsからノードIDを1つ読み出す(ステップS504)。読み出されたノードIDをnIDと記載する。選択部113は、nIDに対応する有効フラグが1であるか否かを判定する(ステップS505)。nIDに対応する有効フラグが1である場合(ステップS505:Yes)、選択部113は、nIDをリストL_csに追加する(ステップS506)。nIDに対応する有効フラグが0である場合(ステップS505:No)、選択部113は、nIDの2つの子ノードのノードID(cnID1、cnID2)をリストL_tcsに追加する(ステップS507)。選択部113は、nIDをリストL_tcsから削除する(ステップS508)。
選択部113は、リストL_tcsが空であるか否かを判定する(ステップS509)。リストL_tcsが空でない場合(ステップS509:No)、ステップS504に戻り処理が繰り返される。リストL_tcsが空である場合(ステップS509:Yes)、ノード鍵選択処理を終了する。
次に、通信装置200内でのデバイス鍵更新処理について説明する。図12は、通信装置200のデバイス鍵更新処理の一例を示すフローチャートである。
受信部201は、デバイス鍵更新要求を受信する(ステップS601)。デバイス鍵更新要求は、例えば、管理装置100から発行される。デバイス鍵更新要求は、定期的に実行、システム危殆化時に実行など、別途定められたポリシーに基づき発行されてもよい。
デバイス鍵更新要求が受信されると、鍵交換部211は、管理装置100との間で認証付鍵交換を実行して共有鍵Kを確立する(ステップS602)。デバイス鍵更新部212は、認証付鍵交換が成功したか否かを判定する(ステップS603)。
認証付鍵交換に成功した場合(ステップS603:Yes)、受信部201は、管理装置100から暗号化デバイス鍵を受信する(ステップS604)。デバイス鍵更新部212は、受信された暗号化デバイス鍵を、共有鍵Kを用いて復号する(ステップS605)。
デバイス鍵更新部212は、復号が成功したか否かを判定する(ステップS606)。復号に成功した場合(ステップS606:Yes)、デバイス鍵更新部212は、デバイス鍵記憶部222に記憶されているデバイス鍵を、復号により得られたデバイス鍵で更新し(ステップS607)、デバイス鍵更新処理を終了する。デバイス鍵更新部212は、更新に成功したことを管理装置100などに通知してからデバイス鍵更新処理を終了してもよい。
認証付鍵交換に失敗した場合(ステップS603:No)、または、復号に失敗した場合(ステップS606:No)、以降の処理を行わずにデバイス鍵更新処理を終了する。デバイス鍵更新部212は、更新に失敗したことを管理装置100などに通知してからデバイス鍵更新処理を終了してもよい。
次に、通信装置200内でのグループ更新処理について説明する。図13は、通信装置200のグループ更新処理の一例を示すフローチャートである。
受信部201は、更新対象のグループを識別するグループIDとグループ鍵データとを含むグループ更新情報を受信する(ステップS701)。グループ更新部213は、デバイス鍵記憶部222に記憶されているデバイス鍵を用いてグループ鍵データの復号処理を行う(ステップS702)。
グループ更新部213は、復号に成功したか否かを判定する(ステップS703)。復号に成功した場合(ステップS703:Yes)、グループ更新部213は、グループIDと復号処理により得られたグループ鍵とをグループ情報記憶部221に記憶する処理、すなわち、グループに参加する処理を行う(ステップS704)。既にグループIDで指定されるグループに参加済みの場合は、グループ情報記憶部221にグループIDと対で記憶されているグループ鍵を、復号処理により得られたグループ鍵で更新する。
復号に失敗した場合(ステップS703:No)、グループ更新部213は、グループ情報記憶部221に記憶されているグループIDとグループ鍵とを削除する処理、すなわち、グループから離脱する処理を行う(ステップS705)。グループ情報記憶部221に対応するグループIDが記憶されていない場合は、この処理はスキップされる。
グループ更新処理を終了するときに、例えば送信部202が、グループに参加しているか、参加していないかを管理装置100に通知するように構成してもよい。
(変形例1)
第1の実施形態では、管理木中のすべてのノードが更新済フラグと有効フラグを保持し、有効フラグを判定情報として用いた。判定情報はこれに限られるものではない。変形例1では、各ノードが更新済フラグのみを保持し、この更新済フラグが判定情報として用いられる。
図14は、変形例1の管理木更新処理の一例を示すフローチャートである。変形例1の管理木更新処理は、ステップS308〜ステップS311、すなわち、有効フラグを設定するための処理が実行されない以外は、第1の実施形態の管理木更新処理を示す図9と同様であるため説明を省略する。
図15は、変形例1のノード鍵選択処理の一例を示すフローチャートである。変形例1のノード鍵選択処理では、ステップS505〜ステップS507に代わり、ステップS905〜ステップS908が実行される。その他の処理は第1の実施形態のノード鍵選択処理を示す図11と同様であるため説明を省略する。
以下、ステップS905〜ステップS908について説明する。選択部113は、nIDのノードを根ノードとする部分木のすべての葉ノードの更新済フラグが1であるか否かを判定する(ステップS905)。すべての葉ノードの更新済フラグが1でない場合(ステップS905:No)、選択部113は、nIDのノードを根ノードとする部分木のすべての葉ノードの更新済フラグが0であるか否かを判定する(ステップS906)。
すべての葉ノードの更新済フラグが1である場合(ステップS905:Yes)、または、すべての葉ノードの更新済フラグが0である場合(ステップS906:Yes)、選択部113は、nIDをリストL_csに追加する(ステップS908)。すべての葉ノードの更新済フラグが0でない場合(ステップS906:No)、選択部113は、nIDの2つの子ノードのノードID(cnID1、cnID2)をリストL_tcsに追加する(ステップS907)。
上記はあくまでも一例であり、別の等価な条件を用いて判定してもよい。例えば、nIDを根ノードとする部分木のすべての葉ノードの更新済フラグが等しいか否かを判定し、等しい場合はステップS908を実行し、等しくない場合はステップS907を実行するように構成してもよい。
このように構成することで、有効フラグを用いることなく、第1の実施形態と同様の結果を得ることができる。また、有効フラグを記憶する必要がないため、管理すべきデータ量を削減することが可能となる。
(変形例2)
第1の実施形態では、管理木とグループに属する通信装置200の機器IDのリストL_mとを用いたCS法を適用してリストL_tcsを求め、リストL_tcsと有効フラグとを用いてリストL_csを作成した。リストL_csの作成方法はこれに限られない。変形例2では、まず、グループに属するメンバであって対応する葉ノードの更新済フラグが1の通信装置200の機器IDからなるリストL_m1と、グループに属するメンバであって対応する葉ノードの更新済フラグが0の通信装置200の機器IDからなるリストL_m0とが作成される。リストL_m1と管理木とからCS法によりノードIDのリストL_tcs1が生成され、リストL_m0と管理木とからCS法によりノードIDのリストL_tcs0が生成される。リストL_tcs1とリストL_tcs0とをマージすることにより、リストL_csが作成される。
図16は、変形例2のノード鍵選択処理の一例を示すフローチャートである。選択部113は、リストL_cs、リストL_m0、および、リストL_m1を空集合で初期化する(ステップS1001)。選択部113は、リストL_m、および、管理木を読み出す(ステップS1002)。
選択部113は、リストL_mから更新済フラグが1の葉ノードを割り当てられた通信装置200の機器IDをすべて読み出し、読み出した機器IDをリストL_m1に記録する(ステップS1003)。選択部113は、リストL_m1と管理木から、CS法によりノードIDのリストL_tcs1を算出する(ステップS1004)。
次に選択部113は、リストL_mから更新済フラグが0の葉ノードを割り当てられた通信装置200の機器IDをすべて読み出し、読み出した機器IDをリストL_m0に記録する(ステップS1005)。選択部113は、リストL_m0と管理木から、CS法によりノードIDのリストL_tcs0を算出する(ステップS1006)。選択部113は、リストL_tcs1とリストL_tcs0とをマージしたリストL_csを生成する(ステップS1007)。
ノード鍵選択処理を本変形例のように構成しても、第1の実施形態と同様に、リストL_mに含まれる通信装置200が保持するデバイス鍵のみで復号できるグループ鍵データを算出するために必要な、ノードIDのリストL_csを導出できる。
(変形例3)
管理装置100は、常時ネットワークに接続されていてもよいが、デバイス鍵の更新やグループ鍵の更新が必要になったときにのみ、通信装置200が接続しているネットワークに接続するように構成してもよい。
また、デバイス鍵の更新時にはすべての通信装置200と同時に接続されている必要はない。接続が必要となったときに、更新の対象となる通信装置200と管理装置100とを、例えばUSB(Universal Serial Bus)またはシリアル通信を用いて直接接続するように構成してもよい。このとき、管理装置100は、第1の実施形態の機能をすべて同一の機器内で実現する必要はなく、グループ鍵更新機能を備えた機器と、デバイス鍵更新機能を備えた機器に分けて実現してもよい。
図17は、変形例3の通信システムの構成例を示すブロック図である。図17の破線は、常時接続ではなく、必要に応じて接続される通信路であることを示している。図17では、グループ鍵更新機能を備えたグループ鍵更新装置400と、デバイス鍵更新機能を備えたデバイス鍵更新装置300と、により管理装置100が実現される例が示されている。
(変形例4)
第1の実施形態では、判定情報として1ビットの更新済フラグを用いていたが、代わりにデバイス鍵の世代情報(バージョン情報など)を判定情報として用いてもよい。この場合、他のノードよりも新しい世代情報を持つノードは更新済フラグ=1に相当すると解釈し、他のノードよりも古い世代情報を持つノードは更新済フラグ=0であると解釈すればよい。
このように、第1の実施形態では、判定情報(有効フラグ、更新済フラグなど)を用いて、グループ鍵の暗号化に使用できるノード鍵(デバイス鍵)を判定する。これにより、すべての通信装置200のデバイス鍵の更新が完了する前であってもグループ鍵を配布することが可能となる。
(第2の実施形態)
第2の実施形態では、デバイス鍵の更新を行う際に、更新後の管理木において、更新前とは別の葉ノードを通信装置に割り当てる。通信装置を割り当てる葉ノードの位置は、同一のグループに属する頻度の高い通信装置同士ができるだけ近い祖先ノードを持つように、例えば、これまでのグループメンバの構成、および、グループ鍵配布に要した通信コストなどの情報をもとに決定される。このようにデバイス鍵を更新することで、デバイス鍵の更新後、グループ鍵の配布に要する通信コストを削減することが可能となる。
上記の割り当て位置の決定法はあくまでも一例である。通信履歴、更新前のシステム構成、および、更新後のシステム構成などから、更新後のシステムで行われるグループ鍵配布に要するグループ鍵データのサイズを削減できるように、各通信装置に割り当てる葉ノードの位置を決定すればよい。
第2の実施形態の通信システムの構成は、図1と同様であるため説明を省略する。第2の実施形態では、管理装置の機能が第1の実施形態と異なっている。通信装置は第1の実施形態と同様であるため同一の符号を付し説明を省略する。
図18は、第2の実施形態に係る管理装置100−2の機能構成例を示すブロック図である。図18に示すように、管理装置100−2は、受信部101と、送信部102と、グループ情報記憶部121と、機器情報記憶部122と、証明書記憶部123と、管理木記憶部124−2と、鍵交換部111と、管理木更新部112−2と、選択部113−2と、グループ更新部114と、を有する。
第2の実施形態では、管理木記憶部124−2、管理木更新部112−2、および、選択部113−2が第1の実施形態と異なっている。その他の構成および機能は、第1の実施形態にかかる管理装置100のブロック図である図2と同様であるので、同一符号を付し、ここでの説明は省略する。
管理木記憶部124−2は、デバイス鍵を管理するための管理木を記憶する。本実施形態では、管理木の各ノードが保持する情報が、第1の実施形態と異なる。図19は、第2の実施形態の管理木のノードに割り当てられる情報の一例を示す図である。図19に示すように、各ノードは、ノードIDと、ノード鍵と、有効フラグとが割り当てられる。
また、本実施形態では、デバイス鍵を更新する前の管理木(更新前管理木)と、デバイス鍵を更新した後の管理木(更新後管理木)とが、管理木記憶部124−2に記憶される。すなわち、管理木記憶部124−2は、更新前のノード鍵が割り当てられた複数のノードを含む更新前管理木(第1の二分木)と、更新後のノード鍵が割り当てられた複数のノードを含む更新後管理木(第2の二分木)とを記憶する。
管理木更新部112−2は、各通信装置200との間で共有したデバイス鍵の更新処理を行う。例えば管理木更新部112−2は、同じグループに属する複数の通信装置200に対応する複数の葉ノードの祖先ノードが、更新前管理木よりも葉ノードに近くなるように更新後管理木を生成して管理木記憶部124−2に記憶させる。
選択部113−2は、グループ鍵の配布対象となる通信装置200に割り当てられた葉ノードのみを持つ部分木を、管理木の部分木から選択する。選択部113−2は、例えば、グループに含まれる通信装置200に対応する葉ノードを含む更新前管理木の部分木(第1の部分木)、および、グループに含まれる通信装置200に対応する葉ノードを含む更新後管理木の部分木(第2の部分木)のうち少なくとも一方を選択する。
次に、このように構成された第2の実施形態にかかる通信システムによるデバイス鍵更新処理について説明する。第2の実施形態のデバイス鍵更新処理の全体の流れは、第1の実施形態の図6および図7と同様であるため説明を省略する。
第2の実施形態では、管理木更新事前処理(図7のステップS103)、管理木更新処理(図7のステップS107)、および、グループ更新処理(図7のステップS112)が、第1の実施形態と異なる。他の処理は第1の実施形態と同じであるため、説明を省略する。
図20は、第2の実施形態の管理木更新事前処理の一例を示すフローチャートである。管理木更新部112−2は、最新の管理木を更新前管理木として管理木記憶部124−2に記憶する(ステップS1101)。管理木更新部112−2は、更新前管理木を複製して更新後管理木を生成する(ステップS1102)。管理木更新部112−2は、更新後管理木の各ノードに割り当てられたノード鍵を新たに生成した鍵で更新する(ステップS1103)。鍵を生成する方法は、ランダムに鍵を生成する方法などの任意の方法を適用できる。管理木更新部112−2は、更新後管理木の各ノードが保持する有効フラグを0に設定してすべてのノードを無効化する(ステップS1104)。管理木更新部112−2は、更新後管理木を例えば管理木記憶部124−2に記憶して管理木更新事前処理を終了する。
図21は、第2の実施形態の管理木更新処理の一例を示すフローチャートである。管理木更新部112−2は、管理木記憶部124−2から、更新前管理木を読み出す(ステップS1201)。管理木更新部112−2は、更新前の通信装置xのデバイス鍵(更新前デバイス鍵)に割り当てられたノードを記憶するリストL_dkと、更新後デバイス鍵を記憶するリストL_ndkと、を空集合で初期化する(ステップS1202)。管理木更新部112−2は、通信装置xに割り当てられた更新前デバイス鍵に含まれるノードIDをリストL_dkに記録する(ステップS1203)。
管理木更新部112−2は、更新後管理木の葉ノードのうち、有効フラグが0の葉ノードleafを1つ選択し、通信装置xを割り当てる葉ノードとする(ステップS1204)。上記のように、選択する葉ノードの位置は、履歴情報や選択法のポリシーに基づいて適切に選択される。
管理木更新部112−2は、更新後管理木の根ノードからleafまでの経路上のノードに割り当てられたノードIDとノード鍵との組を、リストL_ndkに記録する(ステップS1205)。
管理木更新部112−2は、更新後管理木のノードであってリストL_ndkに記録されているノードIDで特定されるノードの有効フラグを1に設定する(ステップS1206)。また管理木更新部112−2は、更新前管理木のノードであって、リストL_dkに記録されているノードIDで特定されるノードの有効フラグを0に設定する(ステップS1207)。
次に、第2の実施形態のグループ更新処理について説明する。管理装置100−2は、図7のステップS112のグループ更新処理で、図10に示す第1の実施形態と同様のグループ更新処理を行う。第2の実施形態では、図10のステップS402のノード鍵選択処理が第1の実施形態と異なる。以下では、第2の実施形態のノード鍵選択処理を説明し、他の処理の説明は省略する。
図22は、第2の実施形態のノード鍵選択処理の一例を示すフローチャートである。選択部113−2は、リストL_cs、リストL_m0、リストL_m1を空集合で初期化する(ステップS1301)。本実施形態では、リストL_m0は、グループに属するメンバであって対応する更新前管理木の葉ノードの有効フラグが1の通信装置200の機器IDを記録するリストである。また、リストL_m1は、グループに属するメンバであって対応する更新後管理木の葉ノードの有効フラグが1の通信装置200の機器IDを記録するリストである。
選択部113−2は、グループに所属させる通信装置の機器IDのリストL_m、更新前管理木、および、更新後管理木を読み出す(ステップS1302)。選択部113−2は、更新前管理木の葉ノードのうち、有効フラグが1の葉ノードが割り当てられた通信装置200を特定し、特定した通信装置200のうちリストL_mに含まれる通信装置200をリストL_m0に記録する(ステップS1303)。選択部113−2は、リストL_m0と更新前管理木から、CS法によりノードIDのリストL_tcs0を導出する(ステップS1304)。
次に選択部113−2は、更新後管理木の葉ノードのうち、有効フラグが1の葉ノードが割り当てられた通信装置200を特定し、特定した通信装置200のうちリストL_mに含まれる通信装置200をリストL_m1に記録する(ステップS1305)。選択部113−2は、リストL_m1と更新後管理木から、CS法によりノードIDのリストL_tcs1を導出する(ステップS1306)。
選択部113−2は、リストL_tcs0とリストL_tcs1をマージしてリストL_csを生成する(ステップS1307)。選択部113−2は、更新前管理木を管理木記憶部124−2から削除し、更新後管理木を新たな管理木とする。選択部113−2は、更新前管理木を削除せず、バックアップデータとして保存してもよい。
このようにして選択されたノード鍵を用いてグループ鍵が暗号化され(図10のステップS404)、更新対象の通信装置200に送信される(図10のステップS405)。また、第2の実施形態では、更新後管理木の根ノードから葉ノードまでに割り当てられたノード鍵の集合が更新後デバイス鍵として通信装置200に送信される(図6のステップS13)。
(変形例5)
第2の実施形態では、管理木更新事前処理(図20)において更新後管理木のすべてのノード鍵を作成し、管理木更新処理(図21)においてデバイス鍵の再割り当てを行っていた。本変形例では、管理木更新事前処理では完全な更新後管理木を作成せず、管理木更新処理で更新対象のデバイス鍵が必要とするノード鍵を逐次生成することにより、更新後管理木を生成する。このように構成することで、更新中に保持すべき情報量を削減可能となる。
図23は、変形例5の管理木更新事前処理の一例を示すフローチャートである。管理木更新部112−2は、最新の管理木を更新前管理木として管理木記憶部124−2に記憶する(ステップS1401)。管理木更新部112−2は、更新前管理木と同じ数の葉ノードを持ち、各ノードにノードIDを割り振った二分木を、更新後管理木として生成する(ステップS1402)。管理木更新部112−2は、更新後管理木の各ノードが保持する有効フラグを0に設定してすべてのノードを無効化する(ステップS1403)。管理木更新部112−2は、更新後管理木を例えば管理木記憶部124−2に記憶して管理木更新事前処理を終了する。
図24は、変形例5の管理木更新処理の一例を示すフローチャートである。ステップS1501からステップS1504までは、第2の実施形態の管理木更新処理(図21)のステップS1201からステップS1204までと同様の処理なので、その説明を省略する。
管理木更新部112−2は、更新後管理木の根ノードからleafまでの経路上のノードに割り当てられたノードIDを特定する。管理木更新部112−2は、特定したノードIDに対応するノード鍵が記録されているノードに対しては、そのノードIDとノード鍵との組をリストL_ndkに記録する。管理木更新部112−2は、ノードIDに対応するノード鍵が空のノードに対しては、そのノードIDと新たに生成したノード鍵との組をリストL_ndkに記録する(ステップS1505)。ノード鍵を生成する方法は、ランダムに鍵を生成する方法などの任意の方法を適用できる。
ステップS1506およびステップS1507は、第2の実施形態の管理木更新処理(図21)のステップS1206およびステップS1207と同様の処理なので、その説明を省略する。
管理木更新部112−2は、更新後管理木の空のノード鍵を持つノードであって、リストL_ndkにノードIDが記録されているノードに対して、空のノード鍵をリストL_ndkに記録されたノード鍵に置き換えて更新後管理木を更新する(ステップS1508)。管理木更新部112−2は、更新前管理木のノードであって、リストL_dkに記録されているノードIDで特定されるノードのノード鍵を空のノード鍵に置き換えて削除する(ステップS1509)。
(変形例6)
第1の実施形態の変形例3と同様に、管理装置100−2は、デバイス鍵の更新やグループ鍵の更新が必要になったときにのみ、通信装置200が接続しているネットワークに接続するように構成してもよい。
また、デバイス鍵の更新時にはすべての通信装置200と同時に接続されている必要はない。接続が必要となったときに、更新の対象となる通信装置200と管理装置100−2とを、例えばUSBまたはシリアル通信を用いて直接接続するように構成してもよい。このとき、管理装置100−2は、第2の実施形態の機能をすべて同一の機器内で実現する必要はなく、グループ鍵更新機能を備えた機器と、デバイス鍵更新機能を備えた機器に分けて実現してもよい。この場合の構成例は変形例3の図17と同様である。
(変形例7)
第2の実施形態では、デバイス鍵更新処理が行われている間、更新前管理木と更新後管理木を用いるが、これらを管理木の世代情報によって管理してもよい。この場合、更新後管理木の生成時に、既存の管理木よりもより新しい世代情報を付すことで、更新前管理木と更新後管理木を区別する。
このように、第2の実施形態では、更新前後の管理木を分けて管理し、各管理木から、グループ鍵の暗号化に使用できるノード鍵(デバイス鍵)を判定する。これにより、すべての通信装置のデバイス鍵の更新が完了する前であってもグループ鍵を配布することが可能となる。また、第2の実施形態では、グループの構成などを参照して、同一のグループに属する頻度の高い通信装置同士ができるだけ近い祖先ノードを持つように更新後の管理木を決定する。これにより、グループ鍵の配布に要する通信コストを削減することが可能となる。
以上説明したとおり、第1から第2の実施形態によれば、すべての通信装置のデバイス鍵の更新が完了する前であってもグループ鍵を配布することが可能となる。
次に、上記各実施形態にかかる装置(管理装置、通信装置)のハードウェア構成について図25を用いて説明する。図25は、実施形態にかかる装置のハードウェア構成例を示す説明図である。
実施形態にかかる装置は、CPU51などの制御装置と、ROM(Read Only Memory)52やRAM53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、各部を接続するバス61を備えている。
実施形態にかかる装置で実行されるプログラムは、ROM52等に予め組み込まれて提供される。
実施形態にかかる装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
さらに、実施形態にかかる装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、実施形態にかかる装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
実施形態にかかる装置で実行されるプログラムは、コンピュータを上記した装置の各部として機能させうる。このコンピュータは、CPU51がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
100 管理装置
101 受信部
102 送信部
111 鍵交換部
112 管理木更新部
113 選択部
114 グループ更新部
121 グループ情報記憶部
122 機器情報記憶部
123 証明書記憶部
124 管理木記憶部
200 通信装置
201 受信部
202 送信部
211 鍵交換部
212 デバイス鍵更新部
213 グループ更新部
221 グループ情報記憶部
222 デバイス鍵記憶部
223 証明書記憶部
300 デバイス鍵更新装置
400 グループ鍵更新装置

Claims (12)

  1. ノード鍵が割り当てられた複数のノードを含む二分木を記憶する管理木記憶部と、
    前記ノード鍵を更新する管理木更新部と、
    前記二分木の部分木から、割り当てられた前記ノード鍵がすべて更新前である葉ノードのみを含む第1の部分木、および、割り当てられた前記ノード鍵がすべて更新後である葉ノードのみを含む第2の部分木のうち少なくとも一方であって、グループに含まれる通信装置に対応する前記二分木の葉ノードのみを含む部分木を選択し、選択した部分木の根ノードのうち他の部分木の子ノードとならない根ノードを選択する選択部と、
    選択された前記根ノードのノード鍵で暗号化したグループ鍵を送信する送信部と、
    を備える管理装置。
  2. 前記二分木は、割り当てられた前記ノード鍵が暗号化に使用できるか否かを判定するための判定情報がさらに割り当てられた複数の第1のノードを含み、
    前記選択部は、前記判定情報に基づいて、前記ノード鍵が暗号化に使用できると判定されたノードを含む前記第1の部分木および前記第2の部分木の少なくとも一方を選択する、
    請求項1に記載の管理装置。
  3. 前記判定情報は、前記第1のノードが葉ノードであるか、または、前記第1のノードおよび前記第1のノードの2つの子ノードに割り当てられた前記ノード鍵が共に更新済みであるか、または、前記第1のノードおよび前記第1のノードの2つの子ノードに割り当てられた前記ノード鍵が共に更新前である場合に、前記第1のノードに割り当てられた前記ノード鍵が暗号化に使用できることを示し、
    前記選択部は、前記ノード鍵が暗号化に使用できることを示す前記判定情報が割り当てられたノードを含む前記第1の部分木および前記第2の部分木の少なくとも一方を選択する、
    請求項2に記載の管理装置。
  4. 前記判定情報は、葉ノードである前記第1のノードに割り当てられた前記ノード鍵が更新済みであるか否かを示し、
    前記選択部は、前記ノード鍵が更新済みでないことを示す前記判定情報が割り当てられた葉ノードのみを含む第1の部分木、および、前記ノード鍵が更新済みであることを示す前記判定情報が割り当てられた葉ノードのみを含む第2の部分木のうち少なくとも一方を選択する、
    請求項2に記載の管理装置。
  5. 前記選択部は、CS(Complete Subtree)法に基づいてグループに含まれる通信装置に対応する前記二分木の葉ノードを含む部分木を選択し、選択した部分木から前記第1の部分木、および、前記第2の部分木のうち少なくとも一方を選択する、
    請求項1に記載の管理装置。
  6. 前記送信部は、さらに、更新された前記ノード鍵を、更新された前記ノード鍵が割り当てられた葉ノードに対応する通信装置に送信する、
    請求項1に記載の管理装置。
  7. 前記管理木記憶部は、更新前のノード鍵が割り当てられた複数のノードを含む第1の二分木と、更新後のノード鍵が割り当てられた複数のノードを含む第2の二分木と、を記憶し、
    前記選択部は、前記第1の二分木の部分木である前記第1の部分木、および、前記第2の二分木の部分木である前記第2の部分木のうち少なくとも一方を選択する、
    請求項1に記載の管理装置。
  8. 前記管理木更新部は、同じグループに属する複数の通信装置に対応する複数の葉ノードの祖先ノードが、前記第1の二分木よりも葉ノードに近くなるように前記第2の二分木を生成して前記管理木記憶部に記憶させる、
    請求項7に記載の管理装置。
  9. 前記送信部は、さらに、更新後の前記ノード鍵を、更新後の前記ノード鍵が割り当てられた葉ノードに対応する通信装置に送信する、
    請求項8に記載の管理装置。
  10. 前記送信部は、前記第2の二分木の根ノードから第1の葉ノードまでに割り当てられたノード鍵の集合を、前記第1の葉ノードに対応する通信装置に送信する、
    請求項9に記載の管理装置。
  11. 前記選択部は、CS(Complete Subtree)法に基づいてグループに含まれる通信装置に対応する前記第1の二分木の葉ノードを含む部分木を選択し、選択した部分木から前記第1の部分木を選択し、CS法に基づいてグループに含まれる通信装置に対応する前記第2の二分木の葉ノードを含む部分木を選択し、選択した部分木から前記第2の部分木を選択する、
    請求項7に記載の管理装置。
  12. ノード鍵が割り当てられた複数のノードを含む二分木の前記ノード鍵を更新する管理木更新ステップと、
    前記二分木の部分木から、割り当てられた前記ノード鍵がすべて更新前である葉ノードのみを含む第1の部分木、および、割り当てられた前記ノード鍵がすべて更新後である葉ノードのみを含む第2の部分木のうち少なくとも一方であって、グループに含まれる通信装置に対応する前記二分木の葉ノードのみを含む部分木を選択し、選択した部分木の根ノードのうち他の部分木の子ノードとならない根ノードを選択する選択ステップと、
    選択された前記根ノードのノード鍵で暗号化したグループ鍵を送信する送信ステップと、
    を含む管理方法。
JP2020074511A 2017-03-15 2020-04-20 管理装置、および管理方法 Active JP6903786B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020074511A JP6903786B2 (ja) 2017-03-15 2020-04-20 管理装置、および管理方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017049945A JP2018157246A (ja) 2017-03-15 2017-03-15 管理装置、および管理方法
JP2020074511A JP6903786B2 (ja) 2017-03-15 2020-04-20 管理装置、および管理方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2017049945A Division JP2018157246A (ja) 2017-03-15 2017-03-15 管理装置、および管理方法

Publications (2)

Publication Number Publication Date
JP2020129808A JP2020129808A (ja) 2020-08-27
JP6903786B2 true JP6903786B2 (ja) 2021-07-14

Family

ID=72175005

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020074511A Active JP6903786B2 (ja) 2017-03-15 2020-04-20 管理装置、および管理方法

Country Status (1)

Country Link
JP (1) JP6903786B2 (ja)

Also Published As

Publication number Publication date
JP2020129808A (ja) 2020-08-27

Similar Documents

Publication Publication Date Title
US11153290B2 (en) Advanced security protocol for broadcasting and synchronizing shared folders over local area network
JP6340120B1 (ja) デバイスプロビジョニングシステム
KR102113910B1 (ko) 보안 동기화 시스템에서의 유효하지 않은 참가자들의 자동 식별
JP6082589B2 (ja) 暗号鍵管理プログラム、データ管理システム
US8750511B2 (en) Root node and a computer readable medium
KR100636228B1 (ko) 계층적인 노드 토폴로지를 이용한 키 관리 방법 및 이를이용한 사용자 등록 및 등록해제 방법
CN109981255B (zh) 密钥池的更新方法和系统
CN113742782A (zh) 基于隐私保护的区块链访问权限控制方法和区块链系统
JP6326173B1 (ja) データ送受信システム及びデータ送受信方法
WO2018019928A1 (en) Identifying a network node to which data will be replicated
JP2008192129A (ja) ネットワークデータ分散共有システム
JP7053031B2 (ja) 情報処理システム、情報処理装置、情報処理方法及び情報処理プログラム
WO2020082226A1 (en) Method and system for transferring data in a blockchain system
US10440523B2 (en) Communication control device, communication device, and computer program product for managing a group of devices
JP2009272927A (ja) 通信装置、サーバ、及びプログラム
JP5795554B2 (ja) 差分暗号化によるファイル同期システム、その方法およびプログラム
JP2018157246A (ja) 管理装置、および管理方法
JP6903786B2 (ja) 管理装置、および管理方法
JP5586397B2 (ja) セキュア・ネットワーク・ストレージ・システム、方法、クライアント装置、サーバ装置、及びプログラム
CN105518696A (zh) 对数据存储器执行操作
KR101590270B1 (ko) 중복 제거를 통해 하나의 데이터를 저장하는 클라우드 서비스 프로바이더
CN113169862B (zh) 信息处理方法、终端设备及网络系统
JP2009153091A (ja) 通信装置、鍵サーバ、管理サーバ、通信サーバ、通信方法及びプログラム
JP6290443B2 (ja) 通信制御装置、通信制御方法およびプログラム
JP6139803B2 (ja) 通信制御装置、通信装置およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200420

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210623

R151 Written notification of patent or utility model registration

Ref document number: 6903786

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151