"外部装置と接続される情報処理装置であって、デバイス鍵を記憶するデバイス鍵記憶部と、前記デバイス鍵とメディアキーブロックとからメディア鍵を生成する生成部と、前記情報処理装置に固有の第1固有情報と公開情報とに基づいて第1出力情報を演算する演算部と、前記第1出力情報を前記外部装置に送信し、前記外部装置から前記外部装置が計算した第2出力情報を受信する通信部と、前記メディア鍵と、前記第1固有情報と、前記第2出力情報とに基づいて、前記外部装置との間で共有する共有鍵を算出する鍵算出部と、を備えることを特徴とする情報処理装置。前記演算部は、前記第1固有情報と公開情報から前記第1出力情報を出力する演算であって、離散対数問題を根拠として前記第1出力情報から前記第1固有情報を求めることが困難である演算を実行すること、を特徴とする請求項1に記載の情報処理装置。乱数である前記第1固有情報を発生する乱数発生部をさらに備え、前記演算部は、前記乱数発生部により発生された前記第1固有情報と前記公開情報とに基づいて前記第1出力情報を演算すること、を特徴とする請求項1に記載の情報処理装置。前記鍵算出部は、前記メディア鍵と、前記第1固有情報と、前記第2出力情報とを一方向性関数に入力して得られる前記共有鍵を算出すること、を特徴とする請求項1に記載の情報処理装置。複数の前記外部装置に接続され、前記通信部は、前記第1出力情報を複数の前記外部装置に送信し、複数の前記外部装置それぞれから複数の前記第2出力情報を受信し、前記鍵算出部は、前記メディア鍵と、前記第1固有情報と、複数の前記第2出力情報とに基づいて、前記共有鍵を算出すること、を特徴とする請求項1に記載の情報処理装置。相互認証処理に備えて、少なくとも前記第1固有情報と前記第2出力情報とを記憶する秘密情報記憶部と、前記第1固有情報と前記第2出力情報とを用いて、第1認証情報を計算する認証情報計算部と、前記第1認証情報を前記外部装置に送信し、前記外部装置から前記外部装置が計算した第2認証情報を受信し、前記第1固有情報と前記第2出力情報と前記公開情報と前記第2認証情報とを用いて、前記外部装置との間で相互認証処理を行う認証部と、をさらに備えること、を特徴とする請求項1に記載の情報処理装置。デバイス鍵を記憶するデバイス鍵記憶部を備えるコンピュータを、前記デバイス鍵とメディアキーブロックとからメディア鍵を生成する生成部と、前記情報処理装置に固有の第1固有情報と公開情報とに基づいて第1出力情報を演算する演算部と、前記第1出力情報を前記外部装置に送信し、前記外部装置から前記外部装置が計算した第2出力情報を受信する通信部と、前記メディア鍵と、前記第1固有情報と、前記第2出力情報とに基づいて、前記外部装置との間で共有する共有鍵を算出する鍵算出部、として機能させるためのプログラム。しかしながら、従来技術では、鍵サーバがすべてのデバイスの暗号鍵を保持する必要があり、鍵管理の負担が増大するという問題があった。例えば、あるデバイスをリボーク無効化する場合や、あるデバイスの暗号鍵を更新する場合、他のすべてのデバイスに更新した暗号鍵などの情報を再配布する必要があった。実施形態の情報処理装置は、デバイス鍵記憶部と生成部と演算部と通信部と鍵算出部とを備える。デバイス鍵記憶部はデバイス鍵を記憶する。生成部は、デバイス鍵とメディアキーブロックとからメディア鍵を生成する。演算部は、情報処理装置に固有の第1固有情報と公開情報とに基づいて第1出力情報を演算する。通信部は、第1出力情報を外部装置に送信し、外部装置が計算した第2出力情報を外部装置から受信する。鍵算出部は、メディア鍵と第1固有情報と第2出力情報とに基づいて共有鍵を算出する。以下に添付図面を参照して、この発明にかかる情報処理装置の好適な実施形態を詳細に説明する。第1の実施形態第1の実施形態にかかる情報処理装置を含むシステムでは、所定の鍵共有方式で共有鍵を算出するために適したメディア鍵を導出生成できるMKBメディアキーブロックを用いる。そして、このMKBを鍵配布センタ以下、KDCKeyDistributionCenterという。から各デバイスに配布する。各デバイスは、MKBと自装置のデバイス鍵とからメディア鍵を生成し、生成したメディア鍵を用いて上記鍵共有方式により他のデバイス外部装置との間で共有する共有鍵を算出する。MKB、MKB処理、MKB生成等は当業者に周知の技術である。例えば、以下の公知文献等に開示されており、詳細については本明細書の実施形態ではあえて省略する。参考文献1DWallnerEHarderRAgeeRFC2627KeyManagementforMulticastIssuesandArchitecturesonlineJune1999retrievedfromtheInternet参考文献2WongCGoudaMandSLamSecureGroupCommunicationsUsingKeyGraphsTechnicalReportTR9723DepartmentofComputerSciencesTheUniversityofTexasatAustinJuly281997参考文献3DNaorMNaorandJLotspiechRevocationandTracingSchemesforStatelessReceiversProcCRYPTO2001LNCS2139SpringerVerlagpp41622001参考文献4USPatent7210042このため、従来のように、鍵サーバから各デバイスに暗号鍵を配布する必要がなく、KDCが各デバイスに共通のMKBを配布するだけでよい。また、あるデバイスを無効化する場合は、当該デバイスを無効化するように更新した共通のMKBをKDCが再配布するだけでよい。すなわち、KDCがMKBを配布するのみで各デバイス間で鍵共有が可能であり、かつ、デバイスの無効化を容易に実現できる。図1は、第1の実施形態にかかる情報処理装置を含むシステムの構成の一例を示すブロック図である。図1に示すように、本実施形態のシステムは、複数のデバイス100a、100bと、KDC10とが、ネットワーク20で接続された構成となっている。ネットワーク20は、インターネットなどのあらゆるネットワーク形態を適用できる。デバイス100a、100bは同様の構成を備えるため、区別する必要がない場合は単にデバイス100という。デバイス100は2つに限られるものではなく、3以上のデバイス100を備えるように構成してもよい。KDC10は、メディア鍵の生成、MKBの生成、MKBの配布などを行う。公開情報とは、公開されている情報秘密にされていない情報である。例えば、公開情報としては、ある楕円曲線、楕円曲線上のベースポイントP、および、署名検証用の公開鍵KPが与えられている。KDC10は、KDC10だけが知る秘密情報として、署名用の公開鍵KPに対する秘密鍵KSを保持している。KDC10は、さらに、MKB方式における、すべてのデバイス鍵情報を有しており、MKBを作成することができる。MKBの生成方法は、CSCompleteSubtree方式およびSDSubsetDifference方式などのあらゆる方法を適用できる。各デバイス100には、少なくとも1つのデバイス鍵が割り当てられている。KDC10は、MKBのメディア鍵として楕円曲線の点xPを与える。Pは、楕円曲線上のベースポイントであり、xはKDC10が選んだ整数である。xPは点Pのx倍点である。この整数xは、KDC10だけが知る秘密である。MKBを受信後、各デバイス100は、当該デバイス100に割り当てられているデバイス鍵によってMKBを処理し、メディア鍵を取得する。この際、当該デバイス100がMKBによって無効化されている場合、当該デバイス100はMKBを生成することができず、メディア鍵を正しく取得することはできない。各デバイス100は、当該デバイス100の公開IDを保持している。公開IDは、楕円曲線におけるベースポイントPの整数倍点である。デバイス100の公開IDはiPと表すことができる。ただし、iは整数である。この整数iをデバイス100の秘密IDと呼ぶことがある。さらに、各デバイス100は、公開IDに対する署名signKSiPを保持していてもよい。署名は、KDC10が有する秘密鍵KSによって署名されている。今後デバイス100を、そのデバイスの公開IDで表すことがある。例えば、公開IDとしてiPを保持するデバイス100を、デバイスiPという場合がある。デバイス100は、MKB処理部110と、鍵共有部120と、通信部131と、を備えている。MKB処理部110は、デバイス100のデバイス鍵を格納記憶する。例えば、デバイスiPのMKB処理部110は、配布されているMKBを読み取る。デバイスiPのデバイス鍵が無効化されていない場合、MKB処理部110は、MKBからメディア鍵xPを生成できる。MKB処理部110は、生成したメディア鍵xPを鍵共有部120に送る。鍵共有部120は、メディア鍵を用いてデバイスbPとの共有鍵Kを生成する。鍵共有部120は、共有鍵Kを保持しており、必要に応じて、通信部131に共有鍵Kを送る。通信部131は、共有鍵Kに基づいて、デバイスbPとの間で暗号通信を行う。MKB処理部110が公開鍵KPを記憶し、MKBの偽造を防止するために、MKBの署名を確認するようにしてもよい。また、MKB処理部110は、鍵共有部120にMKBのバージョン番号を送るようにしてもよい。MKBのバージョン番号は、MKBに付随する順序を持つデータである。鍵共有部120は、デバイスbPと鍵共有動作を行う前に、バージョン番号を交換するようにしてもよい。その場合、鍵共有部120は、バージョンが古い相手とは以後の鍵交換を行わない。また、鍵共有部120は、デバイスbPとデータ交換を行い、デバイスbPと鍵が共有できたことの確認を行うようにしてもよい。次に、MKB処理部110の詳細な構成例を説明する。MKB処理部110は、デバイス鍵記憶部111と、メディア鍵記憶部112と、生成部113と、を備えている。デバイス鍵記憶部111は、デバイス100に割り当てられているデバイス鍵を記憶する。生成部113は、MKBを読み取り、デバイス鍵記憶部111が記憶するデバイス鍵によってMKBを処理し、メディア鍵xPを生成する。メディア鍵記憶部112は、生成部113が生成したメディア鍵xPを記憶する。メディア鍵記憶部112は、鍵共有部120からの要求に応じて、メディア鍵xPを鍵共有部120に送る。次に、鍵共有部120の詳細な構成例を説明する。鍵共有部120は、秘密情報記憶部121と、公開情報記憶部122と、乱数発生部123と、演算部124と、鍵算出部125と、認証部126と、を備えている。公開情報記憶部122は、公開鍵KP、楕円曲線上のベースポイントP、ハッシュ関数H、デバイス100の公開IDであるiP、および、署名signKSiPを記憶する。秘密情報記憶部121は、デバイス100の秘密IDである整数iを記憶する。また、秘密情報記憶部121は、鍵算出部125による算出結果である共有鍵Kも記憶する。秘密情報記憶部121は、通信部131の要求に応じて、共有鍵Kを通信部131に送る。通信部131は、他のデバイス例えばデバイスbPとの間で各種情報を送受信する。演算部124は、自装置に固有の情報第1固有情報と、公開情報とから、鍵交換に用いる情報第1出力情報を算出する。例えば、演算部124は、公開情報として楕円曲線のベースポイントPを用い、離散対数問題を根拠として、第1出力情報から第1固有情報を求めることが困難な演算方式により、第1出力情報を算出する。離散対数問題を安全性の根拠とする演算方式としては、楕円曲線上の演算、および、べき乗演算などを適用できる。以下では、主に楕円曲線上の演算を用いる例を説明する。鍵算出部125は、メディア鍵xPと、自装置に固有の情報第1固有情報と、通信する他のデバイス100以下、外部装置というから送信された第2出力情報とから、外部装置との間で共有する共有鍵を算出する。第2出力情報は、外部装置が外部装置に固有の情報第2固有情報から、上記演算部124と同様の演算方式により算出される情報である。乱数発生部123は、例えば演算部124からの指示に応じて乱数を発生する。認証部126は、通信相手との間で相互認証処理を実行する。以下に、デバイス100aデバイスaPともいうの鍵算出部125が、デバイス100bデバイスbPともいうとの間で共有する共有鍵Kを算出する場合の処理の概要を説明する。まず、演算部124は、公開情報記憶部122からベースポイントPを読み取る。演算部124は、乱数発生部123に乱数発生を指示し、発生された乱数raを取得する。演算部124は、乱数raを、第1固有情報として用いる。なお、第1固有情報は乱数に限られるものではなく、デバイス100に固有の情報であればどのような情報であってもよい。演算部124は、raPを算出し、raPを通信部131に送る。通信部131は、raPをデバイスbPに送る。通信部131は、デバイスbPからrbPを受信する。通信部131は、受信したrbPを鍵算出部125に送る。鍵算出部125は、MKB処理部110からメディア鍵xPを受け取る。鍵算出部125は、公開情報記憶部122からハッシュ関数Hを読み出す。鍵算出部125は、共有鍵K=HxPrarbPを算出する。鍵算出部125は、共有鍵Kを秘密情報記憶部121に記憶する。なお、共有鍵の算出に用いる演算はハッシュ関数Hに限られるものではない。メディア鍵xPと、自装置に固有の情報第1固有情報と、通信相手のデバイスに固有の情報第2固有情報から算出される情報第2出力情報とを用いて算出するものであればあらゆる演算を適用できる。例えば、ハッシュ関数以外の一方向性関数を用いてもよい。一方向性関数を用いれば、共有鍵が不正に流出した場合であっても、共有鍵の算出に用いられたデータの推測が困難となる。また、上記例では、1つの変数xPrarbPを入力して共有鍵を算出するハッシュ関数Hの例を説明したが、2以上の変数を入力して共有鍵を算出する関数を用いてもよい。MKBからメディア鍵として導出されるデータはxPに限らない。例えば、一般的に数値Xであってもよい。この場合、共有鍵Kは、例えば、K=Gra,X、または、K=GX,rarbPなどにより計算することができる。ここに、Gは一方向性関数である。なお、上記各記憶部デバイス鍵記憶部111、メディア鍵記憶部112、秘密情報記憶部121、公開情報記憶部122は、HDDHardDiskDrive、光ディスク、メモリカード、RAMRandomAccessMemoryなどの一般的に利用されているあらゆる記憶媒体により構成することができる。次に、このように構成された第1の実施形態にかかるデバイス100による鍵共有処理について図2を用いて説明する。図2は、第1の実施形態における鍵共有処理の全体の流れを示すシーケンス図である。以下では、デバイスaPおよびデバイスbPとの間で共有する共有鍵を生成する場合を例に説明する。まず、デバイスaPのMKB処理部110は、公開鍵KPを用いてMKBの署名を検証するステップS101。署名が検証できなかった場合は、処理は中止する。デバイスaPの生成部113は、デバイス鍵記憶部111に記憶されたデバイス鍵を用いてMKBを処理し、メディア鍵xPを生成するステップS102。MKB処理が実行できなかった場合、デバイスaPは無効化されているため処理は中止する。デバイスaPの乱数発生部123は、乱数raを発生する。デバイスaPは、乱数raを例えば秘密情報記憶部121に記憶する。鍵共有部120の演算部124は、乱数raとPとからraPを算出するステップS103。通信部131は、raPをデバイスbPに送信するステップS104。ステップS101からステップS104と同様の処理により、デバイスbPは、MKBの署名の検証ステップS105、メディア鍵xPの生成ステップS106、乱数rbの発生ステップS107、および、rbPの送信ステップS108を実行する。デバイスaPおよびデバイスbPは、それぞれ受け取ったrbPおよびraPを、例えば秘密情報記憶部121に記憶する。デバイスaPの鍵算出部125は、K=HxPrarbPを算出するステップS109。デバイスbPの鍵算出部125は、K=HxPrbraPを算出するステップS110。このようにして、デバイスaPおよびデバイスbP間で共有する共有鍵Kがそれぞれ算出される。以下、共有鍵を確認するための処理の一例を説明する。デバイスaPは、EncKrbPをデバイスbPに送信するステップS111。一方、デバイスbPは、EncKraPをデバイスaPに送信するステップS112。例えばEncKrbPは、rbPを共有鍵Kで暗号化したデータを示す。デバイスaPは、デバイスbPから受け取ったEncKraPを共有鍵Kで復号し、得られたデータをraPと比較して一致を確認するステップS113。一致しなければ処理を中断する。デバイスbPも同様の処理を行うステップS114。Hは、公開されているハッシュ関数である。HxPrbraPは、共有鍵Kに一致するから、以上の処理によって、デバイスaPとデバイスbPとは共有鍵Kを共有することができる。ステップS111からステップS114は、共有鍵Kが共有されていることを、それぞれのデバイスが確認する手続きの一例であり、上述の方法に限られるわけではない。上記のプロトコルにおいて、デバイスaPおよびデバイスbPのいずれもがMKBを正しく処理できるときに初めて共有鍵Kを共有することが可能である。MKBが正しく処理できることは、すなわち、当該デバイスが無効化されていないことを意味する。無効化されていないデバイスを、準拠デバイスcompliantdeviceと呼ぶことがある。上記プロトコルは、準拠デバイスが鍵を共有するための仕組みを提供する。上記プロトコルの後半ではディフィーヘルマンDiffie-Hellmanの鍵共有方式が利用されている。上記プロトコルの特徴の1つは、共有鍵を生成する際にxPというメディア鍵を用いることである。なお、適用可能な鍵共有方式はディフィーヘルマンの方式に限られるものではない。ディフィーヘルマンの方式と同様に離散対数問題の困難性を安全性の根拠とする他の方式を適用してもよい。上記プロトコルで処理されるMKBを生成するのはKDC10である。KDC10は、秘密の整数xを選び、無効化情報を含むMKBを作成して、メディア鍵としてxPを設定する。さらに、作成したMKBに秘密鍵KSで署名をする。このように、KDC10は、各デバイス間でディフィーヘルマンの鍵交換を行うベースとなるデータをメディア鍵としてMKBを作成する。次に、デバイス間で相互認証する場合の処理の例について説明する。上記の鍵共有処理が終了した時点では、デバイスaPおよびデバイスbP間で共有鍵Kが共有されており、デバイスaPおよびデバイスbPは、それぞれ相手が準拠デバイスであることを知っている。準拠デバイス同士の暗号通信のためには、上記プロトコルによる鍵共有で十分である。しかし、デバイスaPおよびデバイスbPが、互いに相手を確認認証した上で通信をするためには、さらに認証プロトコルを実行しなければならない。図3は、第1の実施形態における相互認証処理の全体の流れを示すシーケンス図である。以下では、デバイス100aデバイスaPおよびデバイス100bデバイスbPとの間の相互認証処理を例に説明する。デバイスaPの認証部126は、Ca=rahraPaを算出するステップS201。デバイスbPの認証部126は、Cb=rbhrbPbを算出するステップS202。hは公開されているハッシュ関数である。デバイスaPの認証部126は、データaP,signKSaP,CaをデバイスbPに送信するステップS203。一方、デバイスbPの認証部126は、データbP,signKSbP,CbをデバイスaPに送信するステップS204。デバイスaPの認証部126は、公開鍵KPを用いて受け取った署名を検証するステップS205。デバイスaPは、例えばKDC10から与えられた署名検証用のアルゴリズムであるVerifyKPbP,signKSbPにより署名を検証する。デバイスaPの認証部126は、署名が検証できなければ処理を中止する。デバイスbPの認証部126も同様の処理を行うステップS206。デバイスaPの認証部126は、CbPを計算し、その値とrbPhrbPbPの値とを比較するステップS207。これらの値が一致すれば、通信相手が確かにデバイスbPであることが確認できる。デバイスbPの認証部126も同様の処理を行うステップS208。なお、上記では通信相手デバイスの公開IDのみを署名検証したが、通信相手デバイスのデバイス鍵番号を含めて署名検証するようにしてもよい。デバイス鍵番号とは、デバイス鍵に重複なく割り当てた番号である。例えば、木構造のMKBを用いる場合、デバイス鍵に自然に割り当てられるリーフ番号という数値をデバイス番号としてもよい。デバイスaP、デバイスbPはそれぞれ、署名signKSaP||m、signKSbP||jを有している。ここに記号||はデータを連結することを示す。また、mとjはそれぞれデバイスaPとデバイスbPのデバイス鍵番号である。これらの署名は、KDC10により事前に発行され、各デバイスに配布されているものとする。上記の署名の検証のために、デバイスaPとデバイスbPは互いにmとjとを送り合う。上記のようにデバイス鍵番号を含めて署名検証することによって、通信相手デバイスのデバイス鍵番号が間違いなく確認できる。これは次のような場合に有用である。システムの管理者が、いくつかのデバイスが暗号通信した内容が外部に漏えいしていることを知ったとする。例えば、デバイスaPがデバイスbPと暗号通信した内容が漏えいしている。デバイスaPを調べたところ、デバイスaPに異常は無い。一方、デバイスbPは行方不明になっていて、調べることができない。しかも、デバイスbPは現在も時折ネットワークに接続されており、デバイスaP以外の多数のデバイスと暗号通信を行っていることが分かった。システム管理者は、デバイスbPを無効化して、暗号通信ネットワークから切り離すことにした。システム管理者は、デバイスaPの通信記録を調べ、デバイスbPのデバイス鍵番号を得る。上述のように、このデバイス鍵番号は署名によって検証されているので、間違いなくデバイスbPのデバイス鍵番号である。そこで、システム管理者は、KDC10に、取得したデバイス鍵番号のデバイス鍵を無効化したMKBを生成させる。新しく生成されたMKBを配布することによって、デバイスbPは無効化され、以後、暗号通信ネットワークに参加することは不可能になる。不正機器などの無効化のためには、KDC10が、デバイス鍵番号とデバイスの公開IDの組からなるリストを有していてもよい。図4は、このようなリストのデータ構造の一例を示す図である。図4において、a1、a2、、aN、は整数である。例えば、a1Pは、ベースポイントPのa1倍点である。上記のようなリストを用いることにより、KDC10は、デバイスの公開IDから、当該デバイスのデバイス鍵番号を知ることができ、従って、当該デバイスのデバイス鍵を知ることができる。上記のようなリストは、例えば、以下に述べるように利用される。システム管理者がデバイスbPを無効化して暗号通信ネットワークから排除するためには、KDC10が保有している図4のようなリストを検索し、bPという公開IDに対応するデバイス鍵番号を得る。システム管理者は、KDC10に、取得したデバイス鍵番号のデバイス鍵を無効化したMKBを生成させる。新しく生成されたMKBを配布することによって、デバイスbPは無効化され、以後、暗号通信ネットワークに参加することは不可能になる。次に、3つ以上の準拠デバイスが鍵を共有する場合を説明する。以下では、4つのデバイスa1P、a2P、a3P、a4Pの間での鍵共有処理を例に説明するA1~A7。各デバイスの秘密IDはa1、a2、a3、a4である。他に仲介用のデバイスbPが存在する。A1署名検証:デバイスa1P、、a4Pは、それぞれ公開鍵KPを用いてMKBの署名を検証する。いずれかのデバイスで署名が検証できなかった場合、処理は中止する。A2MKB処理:デバイスa1P、、a4Pは、それぞれのデバイス鍵を用いてMKBを処理する。いずれかのデバイスでMKB処理ができなかった場合、当該デバイスは無効化されているので、処理は中止する。A3デバイスa1P、、a4Pは、上記MKB処理によりそれぞれメディア鍵xを得る。A4デバイスa1P、、a4Pは、それぞれ乱数r1、、r4を発生する。各デバイスは、当該デバイスが発生した乱数値を記憶する。A5デバイスa1P、、a4Pは、それぞれデバイスbPにr1P、、r4Pを送る。デバイスbPは、r1r4Pを計算する。A6デバイスbPは、a1P、、a4Pにr1r4Pを送る。A7デバイスa1Pは、K=Hxr1r2r3r4Pを計算する。デバイスa2P、a3P、a4Pについても同様の計算を行う。これにより同一の共有鍵Kを得ることができる。上記のプロトコルA1~A7において、デバイスa1P、、a4PのいずれもがMKBを正しく処理できるときに初めて共有鍵Kを共有することが可能である。従って、上記プロトコルは、3つ以上の準拠デバイスが鍵を共有するための仕組みを提供する。変形例上記実施形態では、楕円曲線の演算を用いてディフィーヘルマンの鍵共有を行ったが、他の演算を用いたディフィーヘルマンの鍵共有を行うことも可能である。以下、べき乗演算を用いたディフィーヘルマンの鍵共有方式を適用する変形例について説明するB1~B8。公開情報としては、十分大きな素数pと、p元体の元gとが知られている。デバイスの公開IDはg^a、秘密IDはaである。g^aはgのa乗を表す。KDC10は、MKBのメディア鍵として整数xを設定している。以下では、公開IDがg^aおよびg^bであるデバイス100を、それぞれデバイスg^a、デバイスg^bという。B1署名検証:デバイスg^aとデバイスg^bは、それぞれ公開鍵KPを用いてMKBの署名を検証する。いずれかのデバイスで署名が検証できなかった場合、処理は中止する。B2MKB処理:デバイスg^aとデバイスg^bは、それぞれのデバイス鍵を用いてMKBを処理する。いずれかのデバイスでMKB処理ができなかった場合、当該デバイスは無効化されているので、処理は中止する。B3デバイスg^aとデバイスg^bは、上記MKB処理によりそれぞれメディア鍵xを得る。B4デバイスg^aは乱数raを発生し、デバイスg^bは乱数rbを発生する。デバイスg^aはraを記憶し、デバイスg^bはrbを記憶する。B5デバイスg^aは、デバイスg^bにg^raを送信する。デバイスg^bは、デバイスg^aにg^rbを送信する。デバイスg^aは受け取ったg^rbを記憶し、デバイスg^bは受け取ったg^raを記憶する。B6デバイスg^aは、K=Hg^xg^ra^rbを算出する。デバイスg^bは、Hg^xg^rb^raを算出する。この値はKに一致する:K=Hg^xg^rb^ra。B7鍵共有の確認:デバイスg^aは、EncKg^rbをデバイスg^bに送信する。一方、デバイスg^bは、EncKg^raをデバイスg^aに送信する。EncKg^rbは、g^rbを共有鍵Kで暗号化したデータを示す。B8鍵共有の確認:デバイスg^aは、デバイスg^bから受け取ったEncKg^raを共有鍵Kで復号し、得られたデータをg^raと比較して一致を確認する。一致しなければ処理を中断する。デバイスg^bも同様の処理を行う。なお、上記ハッシュ関数は一例であり、他のハッシュ関数やハッシュ関数以外の一方向性関数などを用いてもよい。例えば、Hg^x×g^rb^raなどを用いて共有鍵を算出してもよい。第2の実施形態第2の実施形態では、2つのMKBMKB1、MKB2を用いる場合の無効化機能付き鍵交換プロトコルの一例を説明する。図5は、第2の実施形態にかかるデバイス200を含むシステムの構成の一例を示すブロック図である。図5に示すように、デバイス200は、MKB処理部210と、鍵共有部220と、通信部131と、を備えている。第2の実施形態では、KDC10-2、生成部213、鍵算出部225、および、認証部226の機能が第1の実施形態と異なっている。その他の構成および機能は、第1の実施形態にかかるデバイス100のブロック図である図1と同様であるので、同一符号を付し、ここでの説明は省略する。KDC10-2は、各デバイスに対して、P、公開ID、signKS公開ID×P、デバイス鍵、ハッシュ関数H、および、ハッシュ関数hを発行する。このとき、公開ID×Pがデバイスの識別情報である。Pは、楕円曲線上のベースポイントである。KDC10-2は、無効化されたデバイスに応じて、n個のデバイス鍵{k_1,,k_n}とn個のメディア鍵{s_1,,s_n}を生成する。KDC10-2は、MKB1={Enck_1s_1,,Enck_ns_n}、および、MKB2={Enck_1×Ps_1×P,,Enck_n×Ps_n×P}を算出する。KDC10-2は、算出したMKB1およびMKB2を各デバイス200に安全に配送する。ここで、Enck_is_iは、あるメディア鍵s_iを対応するデバイス鍵k_iで暗号化したデータを示す。安全な通信路が使用できない場合は、少なくともMKB1およびMKB2の改ざんが検知できる手段を施して配送する。例えば、KDC10-2がMKB1およびMKB2にデジタル署名を施すことで、各デバイス200はMKB1およびMKB2の改ざんを検知することができる。生成部213は、2つのMKBMKB1およびMKB2を用いてメディア鍵を生成する点が、第1の実施形態の生成部113と異なっている。鍵算出部225は、2つのMKBを用いて算出されるデータを用いて共有鍵を算出する点が、第1の実施形態の鍵算出部125と異なっている。次に、このように構成された第2の実施形態にかかるデバイス200による鍵共有処理について図6を用いて説明する。図6は、第2の実施形態における鍵共有処理の全体の流れを示すシーケンス図である。以下では、デバイス200aデバイスaPおよびデバイス200bデバイスbPとの間で共有する共有鍵を生成する場合を例に説明する。デバイスaPのMKB処理部210は、公開鍵KPを用いてMKB1およびMKB2の署名を検証するステップS301。署名が検証できなかった場合は、処理は中止する。デバイスaPの演算部124は、公開情報記憶部122からベースポイントを読み取り、乱数生成部123に乱数発生を指示し、発生されたraを取得し、Ra=ra×Pを計算するステップS302。デバイスaPのMKB処理部210は、MKB1を正しく生成できるデバイス鍵kaを選択するステップS303。MKB処理部210は、ka×Pを計算するステップS304。これらの値は、他のデバイスと通信を試みる前に事前に算出しておいてもよい。デバイスaPの通信部131は、Ra,ka×P,MKB2の処理位置メディア鍵の生成位置をデバイスbPに送信するステップS305。デバイスbPでも同様に、MKB処理部210が、公開鍵KPを用いてMKB1およびMKB2の署名を検証しステップS306、署名が検証できなかった場合は、処理は中止する。デバイスbPの演算部124は、Ra,ka×P,MKB2の処理位置メディア鍵の生成位置を受信したら、デバイスaPと同様に、Pとrbを取得し、Rb=rb×Pを算出するステップS307。デバイスbPのMKB処理部210は、MKB1を正しく処理できるデバイス鍵kbを選択するステップS308。MKB処理部210は、kb×Pを計算するステップS309。デバイスbPの通信部131は、デバイスaPにRb,kb×P,MKB2の処理位置メディア鍵の生成位置を送信するステップS310。デバイスbPのMKB処理部210は、MKB2をka×Pを用いて処理してメディア鍵としてsa×Pを得るステップS311。デバイスbPのMKB処理部210は、MKB1をkbを用いて処理してメディア鍵sbを得るステップS312。デバイスbPの鍵算出部225は、K=HrbRa,sb×sa×Pを算出し、共有鍵とするステップS313。また、デバイスbPは、相互認証処理に備えてrb,Raを例えば秘密情報記憶部121に記憶しておく。一方、デバイスaPのMKB処理部210は、Rb,kb×P,MKB2の処理位置メディア鍵の生成位置を受信したら、MKB2をkb×Pを用いて処理してメディア鍵としてsb×Pを得るステップS314。デバイスaPのMKB処理部210は、MKB1をkaを用いて処理してメディア鍵saを得るステップS315。デバイスaPの鍵算出部225は、K=HraRb,sa×sb×Pを計算し、共有鍵とするステップS316。また、デバイスaPは、相互認証処理に備えてra,Rbを例えば秘密情報記憶部121に記憶しておく。HraRb,sa×sb×P=HrbRa,sb×sa×P=Hra×rb×P,sb×sa×Pであるから、正しく鍵が共有できる。なお、上記ハッシュ関数は一例であり、他のハッシュ関数やハッシュ関数以外の一方向性関数などを用いてもよい。例えば、HraRbsa×sb×Pなどを用いて共有鍵を算出してもよい。共有処理後、第1の実施形態と同様に、共有鍵Kが共有されていることを確認する手続きを行っても良い。図7は、第2の実施形態における相互認証処理の全体の流れを示すシーケンス図である。以下では、デバイス200aデバイスaPおよびデバイス200bデバイスbPとの間の相互認証処理を例に説明する。デバイスaPの認証部226は、記憶しておいたra,Rbを読みだし、Ca=rahra×P,Rbaを算出するステップS401。デバイスaPの認証部226は、デバイスbPにa×P,signKSa×P,Caを送信するステップS402。デバイスbPの認証部226は、a×P,signKSa×P,Caを受信すると、記憶しておいたrb,Raを読みだし、Cb=rbhrb×P,Rabを計算するステップS403。デバイスbPの認証部226は、デバイスaPにb×P,signKSb×P,Cbを送信するステップS404。デバイスbPの認証部226は、VerifyKPa×P,signKSa×P=1が成立することを検証するステップS405。また、デバイスbPの認証部226は、Ca×P==RahRa,rb×Pa×Pが成立するか検査するステップS406。ここで、VerifyはKDC10-2から与えられた署名の検証アルゴリズムである。検査に合格すればVerify=1、デバイスbPの認証部226は、通信相手が、識別情報がa×PのデバイスaPであることを認める。一方、デバイスaPの認証部226は、b×P,signKSb×P,Cbを受信すると、VerifyKPb×P,signKSb×P=1が成立することを検証するステップS407。また、デバイスaPの認証部226は、Cb×P==RbhRb,ra×Pb×Pが成立するか検査するステップS408。検査に合格すれば、デバイスaPの認証部226は、通信相手が、識別情報がb×PのデバイスbPであることを認める。第3の実施形態第3の実施形態では、多者間での無効化機能付き鍵交換プロトコルを実現する。以下では、5つのデバイス300デバイス300a、300b、300c、300d、300eの間で共有鍵を共有する場合を例に説明する。図8は、デバイス300a、300b、300c、300d、300eが鍵を共有するモデルを説明するための図である。本実施形態の鍵共有を行う際、鍵共有を希望するデバイス300は事前に通信を行い、鍵共有プロトコルの中心となるデバイス300を選択する。図8では、デバイス300eが選択された例が示されている。なお、図8のa、b、c、dおよびeは、それぞれデバイス300a、300b、300c、300dおよび300eを表している。また、Riiはa、b、c、d、eのいずれかは、デバイス300iが乱数などを用いて算出した値を表す。図9は、第3の実施形態にかかるデバイス300を含むシステムの構成の一例を示すブロック図である。図9に示すように、デバイス300は、MKB処理部110と、鍵共有部320と、通信部131と、を備えている。第3の実施形態では、鍵算出部325および認証部326の機能が第1の実施形態と異なっている。その他の構成および機能は、第1の実施形態にかかるデバイス100のブロック図である図1と同様であるので、同一符号を付し、ここでの説明は省略する。鍵算出部325は、他の複数のデバイス300から受信したデータを用いて共有鍵Kを算出する点が、第1の実施形態の鍵算出部125と異なっている。次に、このように構成された第3の実施形態にかかるデバイス300による鍵共有処理について図10を用いて説明する。図10は、第3の実施形態における鍵共有処理の全体の流れを示すシーケンス図である。デバイス300a~300dは同様の処理を行うため、ここでは特にデバイス300aデバイスaPとデバイス300eデバイスePとの間で実行される処理のみを記述する。デバイスaPのMKB処理部110は、公開鍵KPを用いてMKBの署名を検証するステップS501。署名が検証できなかった場合は、処理は中止する。デバイスaPの演算部124は、乱数raを取得し、Ra=ra×Pを計算するステップS502。この計算は、他のデバイスと通信を試みる前に事前計算しておいてもよい。デバイスaPの通信部131は、RaをデバイスePに送信するステップS503。デバイスePでも同様に、MKB処理部110が、公開鍵KPを用いてMKBの署名を検証しステップS504、署名が検証できなかった場合は、処理は中止する。デバイスePの演算部124は、デバイスaP~dPよりRa,Rb,Rc,Rdを受信したら、デバイスaPと同様に、乱数reを取得し、Re=re×Pを算出するステップS505。デバイスePの生成部113は、MKBを正しく処理できるデバイス鍵を用いて、メディア鍵sを計算するステップS506。デバイスePの鍵算出部325は、h=Hs,Ra,Rb,Rc,Rd,Reを算出するステップS507。デバイスePの通信部131は、デバイスaP~dPにRa,Rb,Rc,Rd,Re,hを送信するステップS508。デバイスePの鍵算出部325は、K=HsRaRbRcRdReを計算し、共有鍵とするステップS509。また、デバイスePは、相互認証処理に備えて少なくともre,Ra,Rb,Rc,Rdを例えば秘密情報記憶部121に記憶しておく。一方、Ra,Rb,Rc,Rd,Re,hを受信したら、デバイスaPの生成部113は、MKBをデバイス鍵で処理してメディア鍵sを得るステップS510。デバイスaPの鍵算出部325は、受信したh=Hs,Ra,Rb,Rc,Rd,Reが成立するか否かを検査するステップS511。デバイスaPの鍵算出部325は、K=HsRaRbRcRdReを計算し、共有鍵とするステップS512。また、デバイスaPは、相互認証処理に備えて少なくともra,Rb,Rc,Rd,Reを例えば秘密情報記憶部121に記憶しておく。図11は、第3の実施形態における相互認証処理の全体の流れを示すシーケンス図である。各デバイス300の処理は同様であるため、以下では、デバイス300aデバイスaPおよびデバイス300iiはb、c、d、eデバイスiPとの間の相互認証処理を例に説明する。デバイスaPの認証部326は、記憶しておいたra,Rb,Rc,Rd,Reを読みだし、Ca=rahra×P,Rb,Rc,Rd,Reaを計算するステップS601。そして、デバイスaPの認証部326は、デバイスiPデバイスbP~デバイスePにa×P,signKSa×P,Caを送信するステップS602。同様にして、デバイスiPの認証部326は、デバイスaPにi×P,signKSi×P,Ciを送信するステップS603。デバイスaPの認証部326は、i×P,signKSi×P,Ciを受信すると、VerifyKPi×P,signKSi×P=1が成立することを検証するステップS604。また、デバイスaPの認証部326は、Ci×P==RihRi,Ra,,Rei×Pが成立するか検査するステップS605。検査に合格すれば、デバイスaPの認証部326は、通信相手が、識別情報がi×Pのデバイスiであることを認める。第4の実施形態第4の実施形態では、情報処理装置をスマートグリッドに適用した実施形態を説明する。スマートグリッドとは、原子力や火力など従来の発電に加えて、太陽光や風力などの再生可能エネルギーを併用する際の電力品質の安定化を図るために構築されている次世代電力網である。図12は、第4の実施形態の次世代電力網の一構成例を示す図である。次世代電力網では、電力使用量を集計するスマートメーター3010aと、家電機器を管理するホームサーバであるHEMSHomeEnergyManagementSystem3020が各家庭に設置される。また、商業ビルを対象として、ビル内の電気機器を管理するサーバであるBEMSBuildingEnergyManagementSystem3030がビル毎に設置される。商業ビルには、スマートメーター3010aと同様のスマートメーター3010bが設置される。以下では、スマートメーター3010aおよび3010bを単にスマートメーター3010という。スマートメーター3010は、コンセントレータとよばれる中継器コンセントレータ3040によって数台ごとにまとめられ、通信網を介してメーターデータ管理システムであるMDMSMeterDataManagementSystem3050と通信する。MDMS3050は、各家庭のスマートメーター3010から一定の間隔で電力使用量を受信して記憶する。エネルギー管理システムであるEMSEnergyManagementSystem3060は、MDMS3050に集まった複数の家庭の電力使用量、または、電力系統に設置されたセンサからの情報に基づいて、各家庭のスマートメーター3010やHEMS3020に対して電力使用を抑制するよう要求するなどの電力制御を行う。また、EMS3060は、遠隔端末ユニットであるRTURemoteTerminalUnit3071に接続された太陽光発電や風力発電などの分散電源3080、同じくRTU3072に接続された蓄電装置3090、および、RTU3073に接続された発電側との間を制御する送配電制御装置3100を制御し、グリッド全体の電圧および周波数を安定化するための制御を行う。図12に含まれる各デバイス間では、共有鍵Kを用いて暗号通信が行われる。例えば、MDMS3050とスマートメーター3010とは共有鍵Kを保持しており、当該共有鍵Kを用いて暗号通信を行う。このようなスマートグリッドで用いられるデバイスに、上記各実施形態のデバイスデバイス100、デバイス200、デバイス300を適用することができる。以上説明したとおり、第1から第4の実施形態によれば、KDCがMKBを配布するのみで各デバイス間の鍵共有を実現できるため、鍵管理の負担増大を回避できる。また、デバイスの無効化も容易に実現できる。次に、第1~第4の実施形態にかかる情報処理装置のハードウェア構成について図13を用いて説明する。図13は、第1~第4の実施形態にかかる情報処理装置のハードウェア構成を示す説明図である。第1~第4の実施形態にかかる情報処理装置は、CPUCentralProcessingUnit51などの制御装置と、ROMReadOnlyMemory52やRAMRandomAccessMemory53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、各部を接続するバス61を備えている。第1~第4の実施形態にかかる情報処理装置で実行されるプログラムは、ROM52等に予め組み込まれて提供される。第1~第4の実施形態にかかる情報処理装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROMCompactDiskReadOnlyMemory、フレキシブルディスクFD、CD-RCompactDiskRecordable、DVDDigitalVersatileDisk等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。さらに、第1~第4の実施形態にかかる情報処理装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第1~第4の実施形態にかかる情報処理装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。第1~第4の実施形態にかかる情報処理装置で実行されるプログラムは、コンピュータを上述した情報処理装置の各部MKB処理部、鍵共有部、通信部として機能させうる。このコンピュータは、CPU51がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。"