(57)【要約】      （修正有）【課題】安全性と効率を両立した鍵共有方式を実現する。【解決手段】情報処理装置１００は、外部装置２００とサーバ装置３００とに接続される。情報処理装置１００は、デバイス鍵記憶部１２１と、ＭＫＢ処理部１２０と、共有鍵生成部１５２と、を備える。デバイス鍵記憶部１２１は、デバイス鍵を記憶する。ＭＫＢ処理部１２０は、デバイス鍵とメディアキーブロックとからメディア鍵を生成する。共有鍵生成部１５２は、サーバ装置３００から送信される秘密情報とメディア鍵とから、外部装置２００との間で共有する共有鍵を生成する。【選択図】図１
2013207376.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.Neuman,  T.Yu,  S.Hartman,  and  K.Raeburn、"RFC4120、The  Kerberos  Network  Authentication  Service  （V5）"  [online]、  July  2005、  retrieved  from  the  Internet:  <URL:    http://www.ietf.org/rfc/rfc4120.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）等のコンピュータで読み取り可能な記録媒体に記録されてコンピュータプログラムプロダクトとして提供される。
【０１３０】
また、第１から第３の実施形態にかかる情報処理装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第１または第２の実施形態にかかる情報処理装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【０１３１】
また、第１から第３の実施形態のプログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【０１３２】
第１から第３の実施形態にかかる情報処理装置で実行されるプログラムは、上述した各部（ＭＫＢ処理部、データ処理部）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ５１（プロセッサ）が上記記憶媒体からプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、上述した各部が主記憶装置上に生成されるようになっている。
【０１３３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１３４】
１００、２００  デバイス
１１０、２１０  受信部
１２０、２２０  ＭＫＢ処理部
１２１、２２１  デバイス鍵記憶部
１２２、２２２  ＭＫ生成部
１３０、２３０  ＭＫ記憶部
１４０、２４０  共有鍵記憶部
１５０、２５０  データ処理部
１５１、２５１  データ生成部
１５２、２５２  共有鍵生成部
１６０、２６０  共有鍵記憶部
１７０、２７０  送信部
３００  サーバ
３１０  受信部
３２０  共有鍵記憶部
３３０  データ処理部
３４０  送信部
４１０  受信部
４２０  ＭＫＢ生成部
４３０  鍵記憶部
４４０  送信部
【図１】
2013207376.tif 000003
【図２】
2013207376.tif 000004
【図３】
2013207376.tif 000005
【図４】
2013207376.tif 000006
【図５】
2013207376.tif 000007
【図６】
2013207376.tif 000008
【図７】
2013207376.tif 000009
【図８】
2013207376.tif 000010
【図９】
2013207376.tif 000011
【図１０】
2013207376.tif 000012
【図１１】
2013207376.tif 000013
【図１２】
2013207376.tif 000014