(57)【要約】【課題】鍵管理コストを低減する。【解決手段】実施形態の情報処理装置は、外部装置と接続され、デバイス鍵記憶部と、共有鍵記憶部と、鍵生成部と、更新部と、を備える。デバイス鍵記憶部は、デバイス鍵を記憶する。共有鍵記憶部は、外部装置との間で共有する共有鍵を記憶する。鍵生成部は、デバイス鍵とメディアキーブロックとからメディア鍵を生成する。更新部は、メディア鍵と共有鍵記憶部に記憶された共有鍵とに基づいて、更新した共有鍵を生成し、生成した共有鍵を共有鍵記憶部に保存する。【選択図】図１
2015084562.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報処理装置と接続されるサーバ装置であって、
木構造のグラフに含まれるノードに対応づけられるデバイス鍵に基づいてメディアキーブロックを生成するＭＫＢ生成部と、
前記ノードのいずれかを識別するノード識別情報を受信する受信部と、
前記メディアキーブロックの部分情報のうち、前記ノード識別情報で識別されるノードを根とする部分木に含まれるノードに対応付けられたデバイス鍵で生成された部分情報、または、前記ノード識別情報で識別されるノードを被覆する部分木の根に対応するデバイス鍵で生成された部分情報を前記情報処理装置に送信する送信部と、
を備えることを特徴とするサーバ装置。
【請求項２】
複数の情報処理装置と接続されるサーバ装置であって、
木構造のグラフに含まれるノードに対応づけられるデバイス鍵に基づいてメディアキーブロックを生成するＭＫＢ生成部と、
前記ノードのいずれかを識別するノード識別情報を受信する受信部と、
前記メディアキーブロックの部分情報のうち、前記ノード識別情報で識別されるノードを根とする部分木に含まれるノードに対応付けられたデバイス鍵で生成された部分情報、または、前記ノード識別情報で識別されるノードを被覆する部分木の根に対応するデバイス鍵で生成された部分情報を前記情報処理装置に送信する送信部と、を備え、
前記メディアキーブロックは、前記情報処理装置間で共有する共有鍵を生成するために用いられる
ことを特徴とするサーバ装置。
【請求項３】
複数の情報処理装置と接続されるサーバ装置であって、
木構造のグラフに含まれるノードのいずれかを識別するノード識別情報を受信する受信部と、
前記ノードに対応づけられるデバイス鍵に基づいて生成されたメディアキーブロックの部分情報のうち、前記ノード識別情報で識別されるノードを根とする部分木に含まれるノードに対応付けられたデバイス鍵で生成された部分情報、または、前記ノード識別情報で識別されるノードを被覆する部分木の根に対応するデバイス鍵で生成された部分情報を前記情報処理装置に送信する送信部と、
を備えることを特徴とするサーバ装置。
【請求項４】
複数の情報処理装置と接続されるサーバ装置であって、
木構造のグラフに含まれるノードのいずれかを識別するノード識別情報を受信する受信部と、
前記ノードに対応づけられるデバイス鍵に基づいて生成されたメディアキーブロックの部分情報のうち、前記ノード識別情報で識別されるノードを根とする部分木に含まれるノードに対応付けられたデバイス鍵で生成された部分情報、または、前記ノード識別情報で識別されるノードを被覆する部分木の根に対応するデバイス鍵で生成された部分情報を前記情報処理装置に送信する送信部と、を備え、
前記メディアキーブロックは、前記情報処理装置間で共有する共有鍵を生成するために用いられる
ことを特徴とするサーバ装置。
【請求項５】
複数の情報処理装置と接続されるサーバ装置を
木構造のグラフに含まれるノードに対応づけられるデバイス鍵に基づいてメディアキーブロックを生成するＭＫＢ生成部と、
前記ノードのいずれかを識別するノード識別情報を受信する受信部と、
前記メディアキーブロックの部分情報のうち、前記ノード識別情報で識別されるノードを根とする部分木に含まれるノードに対応付けられたデバイス鍵で生成された部分情報、または、前記ノード識別情報で識別されるノードを被覆する部分木の根に対応するデバイス鍵で生成された部分情報を前記情報処理装置に送信する送信部と、
として機能させるためのプログラム。
【請求項６】
複数の情報処理装置と接続されるサーバ装置を、
木構造のグラフに含まれるノードに対応づけられるデバイス鍵に基づいてメディアキーブロックを生成するＭＫＢ生成部と、
前記ノードのいずれかを識別するノード識別情報を受信する受信部と、
前記メディアキーブロックの部分情報のうち、前記ノード識別情報で識別されるノードを根とする部分木に含まれるノードに対応付けられたデバイス鍵で生成された部分情報、または、前記ノード識別情報で識別されるノードを被覆する部分木の根に対応するデバイス鍵で生成された部分情報を前記情報処理装置に送信する送信部と、として機能させ、
前記メディアキーブロックは、前記情報処理装置間で共有する共有鍵を生成するために用いられる
プログラム。
【請求項７】
複数の情報処理装置と接続されるサーバ装置を
木構造のグラフに含まれるノードのいずれかを識別するノード識別情報を受信する受信部と、
前記ノードに対応づけられるデバイス鍵に基づいて生成されたメディアキーブロックの部分情報のうち、前記ノード識別情報で識別されるノードを根とする部分木に含まれるノードに対応付けられたデバイス鍵で生成された部分情報、または、前記ノード識別情報で識別されるノードを被覆する部分木の根に対応するデバイス鍵で生成された部分情報を前記情報処理装置に送信する送信部と、
として機能させるためのプログラム。
【請求項８】
複数の情報処理装置と接続されるサーバ装置を
木構造のグラフに含まれるノードのいずれかを識別するノード識別情報を受信する受信部と、
前記ノードに対応づけられるデバイス鍵に基づいて生成されたメディアキーブロックの部分情報のうち、前記ノード識別情報で識別されるノードを根とする部分木に含まれるノードに対応付けられたデバイス鍵で生成された部分情報、または、前記ノード識別情報で識別されるノードを被覆する部分木の根に対応するデバイス鍵で生成された部分情報を前記情報処理装置に送信する送信部と、として機能させ、
前記メディアキーブロックは、前記情報処理装置間で共有する共有鍵を生成するために用いられる
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理装置、サーバ装置およびプログラムに関する。
【背景技術】
【０００２】
２つのデバイス（情報処理装置）間で相互認証と暗号鍵の共有とを行う技術として、ＩＫＥ（Ｉｎｔｅｒｎｅｔ  Ｋｅｙ  Ｅｘｃｈａｎｇｅ）などの技術が知られている。この技術には、大きく分けると公開鍵暗号系に基づく方法と事前共通鍵に基づく方法が存在する。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】D.  Harkins  et  al.、"RFC2409、The  Internet  Key  Exchange  (IKE)"  [online]、  November  1998、  retrieved  from  the  Internet:  <URL:  http://www.ietf.org/rfc/rfc2409.txt>
【非特許文献２】C.  Kaufman、"RFC4306、The  Internet  Key  Exchange  (IKEv2)  Protocol"  [online]、  December  2005、  retrieved  from  the  Internet:  <URL:  http://www.ietf.org/rfc/rfc4306.txt>
【発明の概要】
【発明が解決しようとする課題】
【０００４】
公開鍵暗号系に基づく方法は、鍵管理のコストを低減できる点で優れているが、計算コストが増大する。事前共有鍵に基づく方法は、計算コストを低減できる点で優れているが、鍵管理コストが増大する。例えば、あるデバイスが攻撃を受けて秘密情報が漏洩した状況では、公開鍵暗号系に基づく方法は容易にシステムの再構築を実行できる。一方、事前共有鍵に基づく方法ではシステムの再構築に大きなコストが必要であった。
【課題を解決するための手段】
【０００５】
実施形態の情報処理装置は、外部装置と接続され、デバイス鍵記憶部と、共有鍵記憶部と、鍵生成部と、更新部と、を備える。デバイス鍵記憶部は、デバイス鍵を記憶する。共有鍵記憶部は、外部装置との間で共有する共有鍵を記憶する。鍵生成部は、デバイス鍵とメディアキーブロックとからメディア鍵を生成する。更新部は、メディア鍵と共有鍵記憶部に記憶された共有鍵とに基づいて、更新した共有鍵を生成し、生成した共有鍵を共有鍵記憶部に保存する。
【図面の簡単な説明】
【０００６】
【図１】本実施形態にかかるシステムのブロック図。
【図２】ＫＤＣのブロック図。
【図３】更新部のブロック図。
【図４】本実施形態における更新処理のシーケンス図。
【図５】デバイスと事前共有鍵とを管理するグラフ構造の図。
【図６】デバイスと事前共有鍵とを管理するグラフ構造の図。
【図７】デバイスを無効化した場合の木構造の図。
【図８】本実施形態にかかる装置のハードウェア構成図。
【発明を実施するための形態】
【０００７】
以下に添付図面を参照して、この発明にかかる情報処理装置の好適な実施形態を詳細に説明する。
【０００８】
本実施形態にかかる情報処理装置は、事前共有鍵に基づく方法で、事前共有鍵の効率的な更新機能を提供することで、鍵管理コストの低減を実現する。事前共有鍵の更新機能を用いて、情報漏洩が生じていないデバイスが保持する全ての事前共有鍵を更新する。また、情報漏洩が生じたデバイスに代わって、所定の更新した事前共有鍵を割り振ったデバイスを設置する。これにより、攻撃者が不正にデバイスを入手したとしても、効率的にシステムを再構築できる。
【０００９】
本実施形態にかかる情報処理装置（デバイス）を含むシステムでは、所定の鍵共有方式で用いる事前共有鍵を算出するために適したメディア鍵を導出（生成）できるＭＫＢ（メディアキーブロック）を用いる。そして、このＭＫＢを鍵配布センタ（以下、ＫＤＣ（Key  Distribution  Center）という。）から各デバイスに配布する。各デバイスは、ＭＫＢと自装置のデバイス鍵とからメディア鍵を生成し、生成したメディア鍵と事前共有鍵とを用いて、新たな事前共有鍵を生成する。
【００１０】
このため、事前共有鍵の更新にあたって、従来のように、鍵管理サーバから各デバイスに事前共有鍵を配布する必要がない。すなわち、ＫＤＣが各デバイスに共通のＭＫＢを配布するだけでよい。また、あるデバイスを無効化する場合は、当該デバイスを無効化するように更新した共通のＭＫＢをＫＤＣが再配布するだけでよい。すなわち、ＫＤＣがＭＫＢを配布するだけで、各デバイスで事前鍵共有の更新が可能であり、かつ、デバイスの無効化を容易に実現できる。
【００１１】
図１は、本実施形態にかかるシステムの構成の一例を示すブロック図である。図１に示すように、本実施形態のシステムは、情報処理装置としての複数のデバイス１００ａ、１００ｂと、サーバ装置としてのＫＤＣ１０とが、ネットワーク２０で接続された構成となっている。ネットワーク２０は、インターネットなどのあらゆるネットワーク形態を適用できる。
【００１２】
デバイス１００ａ、１００ｂは同様の構成を備えるため、区別する必要がない場合は単にデバイス１００という。デバイス１００は２つに限られるものではなく、３以上のデバイス１００を備えるように構成してもよい。
【００１３】
ＫＤＣ１０は、メディア鍵の生成、ＭＫＢの生成、およびＭＫＢの配布などを行う。図２は、ＫＤＣ１０の構成例を示すブロック図である。図２に示すように、ＫＤＣ１０は、受信部１１と、送信部１２と、ＭＫＢ生成部１３と、鍵記憶部１４と、を備えている。
【００１４】
受信部１１は、デバイス１００などの装置から各種データを受信する。送信部１２は、デバイス１００などの装置に対して各種データを送信する。例えば、送信部１２は、ＭＫＢ生成部１３により生成されたＭＫＢをデバイス１００に送信する。なお、ＭＫＢをデバイス１００に入力する方法はこれに限られるものではない。例えば、ＭＫＢを記憶した記憶媒体を介してデバイス１００に入力するように構成してもよい。
【００１５】
鍵記憶部１４は、各デバイス１００に割り当てられるデバイス鍵、および、デバイス１００間で共有する共有鍵を記憶する。鍵記憶部１４は、ＭＫＢ方式における、すべてのデバイス鍵を記憶する。
【００１６】
ＭＫＢ生成部１３は、このデバイス鍵を用いてＭＫＢを作成する。ＭＫＢの生成方法は、ＣＳ（Ｃｏｍｐｌｅｔｅ  Ｓｕｂ−ｔｒｅｅ）方式およびＳＤ（Ｓｕｂｓｅｔ  Ｄｉｆｆｅｒｅｎｃｅ）方式などのあらゆる方法を適用できる。
【００１７】
ＫＤＣ１０には、公開情報として、署名検証用の公開鍵ＫＰが与えられている。ＫＤＣ１０は、ＫＤＣ１０だけが知る秘密情報として、署名用の公開鍵ＫＰに対する秘密鍵ＫＳを保持している。公開鍵ＫＰと秘密鍵ＫＳは、例えば、楕円曲線を用いたデジタル署名の公開鍵と秘密鍵を用いることができる。
【００１８】
図１に戻る。各デバイス１００には、少なくとも１つのデバイス鍵が割り当てられている。ＫＤＣ１０は、ＭＫＢのメディア鍵として、所定の長さ以上のビット列ｘを与える。ｘはＫＤＣ１０が選んだビット列である。以下では、ビット列ｘをメディア鍵ｘという。
【００１９】
ＭＫＢを受信後、各デバイス１００は、当該デバイス１００に割り当てられているデバイス鍵によってＭＫＢを処理し、メディア鍵ｘを取得する。この際、当該デバイス１００がＭＫＢによって無効化されている場合、当該デバイス１００はＭＫＢを正しく処理することができず、メディア鍵ｘを正しく取得することはできない。
【００２０】
各デバイス１００は、通信先である他のデバイスとの間で共有する事前共有鍵を保持している。例えば、デバイス１００ａとデバイス１００ｂとは、共に事前共有鍵ｐｓｋを保持している。
【００２１】
デバイス１００は、ＭＫＢ処理部１１０と、共有鍵記憶部１２０と、更新部１３０と、通信部１４０と、を備えている。
【００２２】
ＭＫＢ処理部１１０は、デバイス１００のデバイス鍵を格納（記憶）する。例えば、デバイス１００ａのＭＫＢ処理部１１０は、配布されているＭＫＢを読み取る。デバイス１００ａのデバイス鍵が無効化されていない場合、ＭＫＢ処理部１１０は、ＭＫＢからメディア鍵ｘを生成できる。ＭＫＢ処理部１１０は、生成したメディア鍵ｘを更新部１３０に送る。
【００２３】
更新部１３０は、共有鍵記憶部１２０からデバイス１００ｂとの間で共有する事前共有鍵ｐｓｋを受け取る。更新部１３０は、事前共有鍵ｐｓｋとメディア鍵ｘとを用いて新たな事前共有鍵ｐｓｋ２を生成する。更新部１３０は、更新した事前共有鍵ｐｓｋ２を新たな事前共有鍵ｐｓｋとして共有鍵記憶部１２０に保存する。更新部１３０は、更新前の事前共有鍵ｐｓｋを共有鍵記憶部１２０から削除してもよい。共有鍵記憶部１２０は、必要に応じて、通信部１４０に事前共有鍵ｐｓｋを送る。通信部１４０は、事前共有鍵ｐｓｋに基づいて、認証付鍵交換プロトコルを実行し、暗号通信を行う。
【００２４】
ＭＫＢの偽造を防止するために、ＭＫＢ処理部１１０がＭＫＢの署名を確認するように構成してもよい。この場合、例えば、ＫＤＣ１０は、ＭＫＢの正当性を示すために秘密鍵ＫＳを用いてＭＫＢに対応するデジタル署名を生成してＭＫＢと共に送信する。ＭＫＢ処理部１１０はＫＤＣ１０の公開鍵ＫＰを記憶しておき、公開鍵ＫＰを用いてＭＫＢの署名を確認する。
【００２５】
また、ＭＫＢ処理部１１０は、通信部１４０にＭＫＢのバージョン番号を送るようにしてもよい。ＭＫＢのバージョン番号は、ＭＫＢに付随する順序を持つデータである。通信部１４０は、デバイス１００ｂと鍵共有動作を行う前に、バージョン番号を交換するようにしてもよい。その場合、通信部１４０は、バージョンが古い相手とは鍵交換を行わない。また、通信部１４０が、デバイス１００ｂとデータ交換を行い、デバイス１００ｂとの間で共有鍵が正しく共有できたことの確認を行うようにしてもよい。
【００２６】
次に、ＭＫＢ処理部１１０の詳細な構成例を説明する。図１に示すように、ＭＫＢ処理部１１０は、デバイス鍵記憶部１１１と、鍵生成部１１２と、を備えている。
【００２７】
デバイス鍵記憶部１１１は、デバイス１００に割り当てられているデバイス鍵を記憶する。鍵生成部１１２は、ＭＫＢを読み取り、デバイス鍵記憶部１１１が記憶するデバイス鍵によってＭＫＢを処理し、メディア鍵ｘを生成する。鍵生成部１１２は、生成したメディア鍵ｘを更新部１３０に送付する。この際、メディア鍵記憶部（図示せず）を設け、鍵生成部１１２が生成したメディア鍵ｘをメディア鍵記憶部に記憶するように構成してもよい。この場合、メディア鍵記憶部が、更新部１３０からの要求に応じて、メディア鍵ｘを更新部１３０に送ってもよい。
【００２８】
次に、更新部１３０の詳細な構成例を説明する。図３は、更新部１３０の構成例を示すブロック図である。図３に示すように、更新部１３０は、公開情報記憶部１３１と、鍵算出部１３２と、を備えている。
【００２９】
公開情報記憶部１３１は、暗号学的に安全なハッシュ関数Ｈを記憶する。
【００３０】
鍵算出部１３２は、ＭＫＢ処理部１１０より受け取ったメディア鍵ｘと、共有鍵記憶部１２０から受け取った事前共有鍵ｐｓｋと、公開情報記憶部１３１から受け取ったハッシュ関数Ｈとから、更新された事前共有鍵ｐｓｋ２を算出する。
【００３１】
なお、更新した事前共有鍵の算出に用いる演算はハッシュ関数Ｈに限られるものではない。メディア鍵ｘと、事前共有鍵と、を用いて算出するものであればあらゆる演算を適用できる。例えば、ハッシュ関数以外の疑似ランダム関数を用いてもよい。疑似ランダム関数を用いれば、事前共有鍵が不正に流出した場合であっても、メディア鍵ｘを入手しない限り更新した事前共有鍵の推測が困難となる。
【００３２】
また、上記例では、メディア鍵ｘおよび事前共有鍵ｐｓｋという２つの変数を入力して更新した事前共有鍵を算出するハッシュ関数Ｈの例を説明したが、２以上の変数を入力して共有鍵を算出する関数を用いてもよい。
【００３３】
なお、通信部１４０による鍵交換方式は、非特許文献１や非特許文献２の事前共有鍵を用いる認証付鍵交換方式などで実現できる。また、通信部１４０による鍵交換方式は、非特許文献１や非特許文献２の方式に限られるものではなく、事前共有鍵を利用する方式ならば、あらゆる方式を適用できる。
【００３４】
また、通信部１４０は、メディア鍵ｘを事前共有鍵とみなして、認証付鍵交換を行ってもよい。このとき、通信部１４０による鍵交換方式は、リボークされていないデバイスであることのみを認証して鍵共有を行う、匿名認証付鍵交換方式となる。
【００３５】
また、各事前共有鍵は独立に設定される必要はなく、木構造などのグラフ構造による依存関係を持っていてもよい。また、各事前共有鍵は、ＭＫＢを生成するためのグラフ構造より計算される依存関係を持っていてもよい。
【００３６】
なお、上記各記憶部（デバイス鍵記憶部１１１、共有鍵記憶部１２０、公開情報記憶部１３１、鍵記憶部１４）は、ＨＤＤ（Hard  Disk  Drive）、光ディスク、メモリカード、ＲＡＭ（Random  Access  Memory）などの一般的に利用されているあらゆる記憶媒体により構成することができる。
【００３７】
次に、このように構成された本実施形態にかかるデバイス１００による事前共有鍵の更新処理について図４を用いて説明する。図４は、本実施形態における更新処理の全体の流れを示すシーケンス図である。以下では、デバイス１００の事前共有鍵を更新する場合を例に説明する。
【００３８】
まず、ＫＤＣ１０のＭＫＢ生成部１３は、デバイス１００のうちリボークするデバイスを特定する情報（リボーク機器情報）とデバイス鍵とを用いてＭＫＢを生成する（ステップＳ１０１）。そして、ＫＤＣ１０は、生成したＭＫＢに対して、秘密鍵ＫＳを用いてＭＫＢの署名を生成する（ステップＳ１０２）。ＫＤＣ１０の送信部１２は、ＭＫＢと生成した署名とを各デバイス１００に配布する（ステップＳ１０３）。
【００３９】
デバイス１００のＭＫＢ処理部１１０は、公開鍵ＫＰを用いてＭＫＢの署名を検証する（ステップＳ１０４）。署名が検証に合格しなかった場合は、以降の処理を中止する。
【００４０】
デバイス１００の鍵生成部１１２は、デバイス鍵記憶部１１１に記憶されたデバイス鍵を用いてＭＫＢを処理し、メディア鍵ｘを生成する（ステップＳ１０５）。ＭＫＢ処理が実行できなかった場合、デバイス１００は無効化されているため処理は中止する。
【００４１】
デバイス１００の更新部１３０は、ハッシュ関数Ｈ、メディア鍵ｘ、および、事前共有鍵ｐｓｋにより、更新した事前共有鍵ｐｓｋ２を生成する（ステップＳ１０６）。
【００４２】
デバイス１００の共有鍵記憶部１２０は、ｐｓｋ２をｐｓｋとして記憶する（ステップＳ１０７）。
【００４３】
他のデバイス１００も同様に、ＭＫＢの署名の検証、メディア鍵ｘの生成、更新した事前共有鍵の生成、および、更新した事前共有鍵の記憶を各々実行する。
【００４４】
（変形例１）
変形例１では、ＫＤＣ１０が、ＭＫＢの生成に関わるグラフ構造と事前共有鍵の管理に関わるグラフ構造とを組み合わせた１つのグラフ構造を管理する。
【００４５】
図５は、デバイスと事前共有鍵とを管理するグラフ構造の一例を示す図である。ＫＤＣ１０は、ＣＳ方式やＳＤ方式のように木構造のグラフを利用してＭＫＢ作成用のデバイス鍵（この例では、ｋ１，・・・，ｋ１５）を管理する。すなわち、ＫＤＣ１０は、グラフに含まれる各ノード（第２ノード）に対応づけてデバイス鍵を管理する。また、ＫＤＣ１０は、デバイス１００ごとに、相互に異なる木構造の葉に対応するデバイス鍵（この例では、ｋ８，・・・，ｋ１５）より、各デバイス１００に対応する事前共有鍵を生成する。ＫＤＣ１０は、例えば図５に示すように、グラフの葉から鎖状に連結した各ノード（第１ノード）に対応づけて事前共有鍵を管理する。
【００４６】
具体的な手順を述べる。ＫＤＣ１０は、２種類の疑似ランダム関数ｆとｇを保持している。ＫＤＣ１０は、ランダムにｋ１を生成した後、以降のデバイス鍵をｋ２＝ｆ（ｋ１，０）、ｋ３＝ｆ（ｋ１，１）、・・・、ｋ１５＝ｆ（ｋ７、１）のように、再帰的に生成する。すなわち、木構造の左の子に相当する鍵をｋｊとし、右の子に相当する鍵をｋｊ＋１とし、それらの親に相当する鍵をｋｉとすると、ｋｊ＝ｆ（ｋｉ，０）、ｋｊ＋１＝ｆ（ｋｉ，１）となる。
【００４７】
次に、ＫＤＣ１０は、ランダムな値であるｍｋ１を選択し、ｐｓｋ１＝ｈ（ｍｋ１，ｋ８）、ｐｓｋ２＝ｈ（ｍｋ１，ｋ９）、・・・、ｐｓｋ８＝ｈ（ｍｋ１，ｋ１５）のように事前共有鍵ｐｓｋ１，・・・、ｐｓｋ８を生成する。
【００４８】
そして、ＫＤＣ１０は、例えば、ｋ８を含むデバイス鍵を持つデバイス１００と、そのデバイス１００と認証付鍵共有を行うデバイス１００にはｐｓｋ１を持たせる。システムの構成に応じて、ＫＤＣ１０はこのような割り振りを行う。
【００４９】
例えば、デバイス鍵にｋ８を含むデバイス１００と、デバイス鍵にｋ１０を含むデバイス１００とが認証付鍵共有を行う場合には、各デバイス１００が、ｐｓｋ１とｐｓｋ３とから所定の方法で事前共有鍵ｐｓｋを生成し、事前共有鍵に基づくＩＫＥを用いて鍵共有を行うことができる。
【００５０】
事前共有鍵の更新は、上記実施形態と同様に、ＭＫＢを処理して得られる共通のメディア鍵ｘを用いて行う。
【００５１】
このような管理を行うと、ＫＤＣ１０は木構造の根に相当するデバイス鍵と、事前共有鍵の生成に用いるメディア鍵ｘの生成規則のみを記憶しておけば良いため、安全に管理すべき情報を削減することができる。
【００５２】
図５による管理はあくまでも一例であって、例えば図６のような木構造など、任意のグラフ構造で管理を行ってもよい。
【００５３】
また、ＫＤＣ１０は全てのデバイスに同じＭＫＢを送るのではなく、デバイスに応じて、ＭＫＢの部分情報を送ってもよい。
【００５４】
具体例を図７の状況を用いて説明する。図７は、デバイス鍵ｋ１０を含むデバイス１００を無効化した場合の木構造の一例を示す図である。ＣＳ方式でＭＫＢを作成した場合、ＭＫＢはｋ４で暗号化した暗号文、ｋ１１で暗号化した暗号文、および、ｋ３で暗号化した暗号文の３つの暗号文を含む。通常のＣＳ方式では、３つの暗号文全てを含むＭＫＢを全てのデバイスに送付する。しかし、この方法では、各デバイス１００は、自装置のデバイス鍵の復元には必要のない無駄なデータも受け取っていることになる。
【００５５】
そこで、ＫＤＣ１０が、配布先のデバイス１００に応じて、ＭＫＢの部分情報を送付してもよい。例えば、デバイス鍵ｋ８を含むデバイス１００には、ＭＫＢに含まれる暗号文のうち、ｋ４で暗号化した暗号文のみを送付する。また、デバイス１００からの問い合わせ（要求）に応じて、対応するＭＫＢの部分情報を送付するようにしてもよい。
【００５６】
図７の状況で、ＣＳ方式によるＭＫＢの部分情報を配する一例を挙げる。ｋ１３を含むデバイス１００は、ｋ１３を含むデバイス１００であることを識別できるＩＤを含む情報をＫＤＣ１０に送付する。ここで、ＩＤはＫＤＣ１０により予め各デバイス１００に割り振られた文字列や製造番号や木構造の葉の番号など、デバイス１００と木構造を対応付けられるものならば何でもよい。ＫＤＣ１０は、ｋ１３を含むデバイス１００のＩＤを受信すると、ｋ１３を含むデバイス１００が正しく処理できるＭＫＢの部分情報として、ＭＫＢに含まれる暗号文のうち、ｋ３で暗号化された暗号文を送付する。
【００５７】
図７の状況で、ＣＳ方式によるＭＫＢの部分情報を配する別の例を挙げる。ｋ８を含むデバイス１００は、ｋ２を含むデバイス１００であることを識別できるＩＤを含む情報をＫＤＣ１０に送付する。ここで、ＩＤはＫＤＣ１０により予め各デバイス１００に割り振られた文字列や木構造の節の番号など、ＩＤと木構造を対応付けられるものならば何でもよい。ＫＤＣ１０は、ｋ２を含むデバイス１００のＩＤを受信すると、ｋ２を含むデバイス１００が正しく処理できるＭＫＢの部分情報として、ＭＫＢに含まれる暗号文のうち、ｋ４で暗号化された暗号文とｋ１１で暗号化された暗号文を送付する。デバイス１００がＫＤＣ１０にＭＫＢの問い合わせを行う際に、デバイス１００がＫＤＣ１０に送付すべきＩＤを、木構造の所定の高さの節に対応づけられる情報に制約してもよい。
【００５８】
次に、ＭＫＢを送る方法について一例を述べる。ケルベロス（Ｋｅｒｂｅｒｏｓ）認証と呼ばれるネットワーク認証方式が良く利用されている。以下、ケルベロス認証について簡単に説明する。
【００５９】
ケルベロス認証では、サービスを受けるクライアントはケルベロス認証を実行するＫＤＣ（以下、ＫＫＤＣ（ケルベロスＫＤＣ）という）にアクセスし、受けたいサービスのサーバを通知する。クライアントとＫＫＤＣは予め（対称）鍵を共有しており、ＫＫＤＣは当該鍵を用いてクライアントを認証する。ＫＫＤＣはクライアントに２つのチケットと呼ばれるデータを送る。１つはクライアント用のチケットであり、もう１つはサーバ用のチケットである。自分用のチケットはＫＫＤＣとクライアントの共有鍵で暗号化されている。クライアントは自分用のチケットを復号し、復号データの中からサーバとのセッション鍵を取り出す。また、クライアントはサーバにサーバ用のチケットを送る。サーバ用のチケットは、サーバとＫＫＤＣとの共有鍵で暗号化されている。サーバはサーバ用のチケットを復号し、復号データの中からクライアントとのセッション鍵を取り出す。以上の手続きにより、クライアントとサーバとはセッション鍵を共有できる。クライアントがサーバにサービスを要求した際、サーバはセッション鍵を用いてクライアントを認証することができる。
【００６０】
今、サーバとクライアントが共有鍵ｐｓｋ０を共有しているものとする。ケルベロス認証を用いて共有鍵ｐｓｋ０を更新したい。サーバとクライアントは、それぞれデバイス鍵を有しているものとする。また、ｐｓｋ０には予め定められた有効期限が記されているものとする。
【００６１】
ケルベロス認証のチケットはａｕｔｈｏｒｉｚａｔｉｏｎ−ｄａｔａというフィールドを有している。ＫＫＤＣは、チケットのこのフィールドにメディア鍵ｘを暗号化したＭＫＢと、ｐｓｋ０更新後の鍵（それをｐｓｋ１とする）の有効期限を格納する。例えば、今、クライアントがサーバとｐｓｋ０を用いた通信を行うと仮定する。クライアントはｐｓｋ０の有効期限を確認し、有効であれば、そのままｐｓｋ０を用いた通信を行う。
【００６２】
しかし、ｐｓｋ０の有効期限が過ぎていた場合、クライアントはＫＫＤＣにアクセスしてチケットを受け取る。クライアントはクライアント用チケットを復号してＭＫＢを取り出し、クライアントのデバイス鍵で処理する。当該クライアントがリボークされていない場合、クライアントはメディア鍵ｘを得る。クライアントはメディア鍵ｘを用いてｐｓｋ０を更新する：ｐｓｋ１←Ｈ（ｘ、ｐｓｋ０）。また、チケットに含まれている新しい有効期限をｐｓｋ１の有効期限として設定する。そして、クライアントは、サーバにサーバ用チケットを送る。
【００６３】
サーバはクライアントからサーバ用チケットを受け取ると、当該チケットを復号してＭＫＢを取り出し、サーバのデバイス鍵で処理する。当該サーバがリボークされていない場合、サーバはメディア鍵ｘを得る。サーバはメディア鍵ｘを用いてｐｓｋ０を更新する：ｐｓｋ１←Ｈ（ｘ、ｐｓｋ０）。また、チケットに含まれている新しい有効期限をｐｓｋ１の有効期限として設定する。
【００６４】
以上のようにして、クライアントとサーバが共有する共有鍵ｐｓｋ０を更新することができる。なお、同様の手続きにより、クライアントとサーバの共有鍵そのものをクライアントとサーバに配布することが可能である。その場合は、クライアントとサーバ双方において更新手続きは行わず、単に得られたメディア鍵ｘをクライアントとサーバの間の共有鍵ｐｓｋとして設定する：ｐｓｋ←ｘ。
【００６５】
このように、本実施形態にかかる情報処理装置では、効率的な計算コストと鍵管理コストを両立した認証付鍵共有方式が実現できる。
【００６６】
次に、本実施形態にかかる各装置（デバイスおよびＫＤＣ）のハードウェア構成について図８を用いて説明する。図８は、本実施形態にかかる装置のハードウェア構成を示す説明図である。
【００６７】
本実施形態にかかる装置は、ＣＰＵ（Central  Processing  Unit）５１などの制御装置と、ＲＯＭ（Read  Only  Memory）５２やＲＡＭ（Random  Access  Memory）５３などの記憶装置と、ネットワークに接続して通信を行う通信Ｉ／Ｆ５４と、ＨＤＤ（Hard  Disk  Drive）、ＣＤ（Compact  Disc）ドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置と、各部を接続するバス６１を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【００６８】
本実施形態にかかる装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact  Disk  Read  Only  Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Compact  Disk  Recordable）、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録されてコンピュータプログラムプロダクトとして提供される。
【００６９】
また、本実施形態にかかる装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態にかかる装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【００７０】
また、本実施形態のプログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【００７１】
本実施形態にかかる情報処理装置（デバイス）で実行されるプログラムは、上述した各部（ＭＫＢ処理部、更新部）を含むモジュール構成となっている。  本実施形態にかかるサーバ装置（ＫＤＣ）で実行されるプログラムは、上述した各部（受信部、送信部、ＭＫＢ生成部）を含むモジュール構成となっている。実際のハードウェアとしてはＣＰＵ５１（プロセッサ）が上記記憶媒体からプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、上述した各部が主記憶装置上に生成されるようになっている。
【００７２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７３】
１０  ＫＤＣ
１１  受信部
１２  送信部
１３  ＭＫＢ生成部
１４  鍵記憶部
２０  ネットワーク
６１  バス
１００ａ、１００ｂ  デバイス
１１０  ＭＫＢ処理部
１１１  デバイス鍵記憶部
１１２  鍵生成部
１２０  共有鍵記憶部
１３０  更新部
１３１  公開情報記憶部
１３２  鍵算出部
１４０  通信部
【図１】
2015084562.tif 000003
【図２】
2015084562.tif 000004
【図３】
2015084562.tif 000005
【図４】
2015084562.tif 000006
【図５】
2015084562.tif 000007
【図６】
2015084562.tif 000008
【図７】
2015084562.tif 000009
【図８】
2015084562.tif 000010