(57)【要約】      （修正有）【課題】電子署名の検証を効率的に行うことが可能な情報処理装置、プログラム及びアクセス制御システムを提供する。【解決手段】公開鍵とマスター鍵とを少なくとも含む鍵セットを生成する鍵セット生成部１３と、前記鍵セットに含まれる同一の前記マスター鍵を用いて、自己の装置にアクセスしたサーバ装置毎に互いに異なる秘密鍵を生成する秘密鍵生成部と、前記秘密鍵生成部が生成した前記秘密鍵を対応するサーバ装置に夫々提供する秘密鍵提供部と、前記サーバ装置の各々において前記秘密鍵を用いて生成される署名情報を検証させるため、当該検証を行う検証装置に前記公開鍵を提供する公開鍵提供部と、を備える。【選択図】図２
2012195903.tif 000002
【特許請求の範囲】
【請求項１】
公開鍵とマスター鍵とを少なくとも含む鍵セットを生成する鍵セット生成部と、
前記鍵セットに含まれる同一の前記マスター鍵を用いて、自己の装置にアクセスしたサーバ装置毎に互いに異なる秘密鍵を生成する秘密鍵生成部と、
前記秘密鍵生成部が生成した前記秘密鍵を対応するサーバ装置に夫々提供する秘密鍵提供部と、
前記サーバ装置の各々において前記秘密鍵を用いて生成される署名情報を検証させるため、当該検証を行う検証装置に前記公開鍵を提供する公開鍵提供部と、
を備えたことを特徴とする情報処理装置。
【請求項２】
前記サーバ装置毎に互いに異なる数値を要素とした数値集合を割り当てる鍵割当部を更に備え、
前記秘密鍵生成部は、前記鍵セットに含まれる同一の前記マスター鍵と前記数値集合に含まれる一の数値とを用いて、当該数値に応じた秘密鍵を前記サーバ装置毎に生成することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記鍵セットに含まれた前記マスター鍵と、前回の秘密鍵の生成に用いた第１の数値と、新たな秘密鍵の生成に用いる第２の数値とを用いて、前回の秘密鍵を新たな秘密鍵に更新させる鍵更新情報を生成する鍵更新情報生成部と、
前記鍵更新情報生成部が生成した前記鍵更新情報を対応するサーバ装置に夫々提供する更新情報提供部と、
を更に備え、
前記鍵更新情報生成部は、前記第１の数値を含む数値集合から前記第２の数値を選択することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記秘密鍵の生成に用いた数値毎に、当該数値を用いて生成した秘密鍵の有効期限を定めて管理する有効期限管理部を更に備え、
前記鍵更新情報生成部は、前記有効期限管理部に管理された有効期限切れの数値を前記第１の数値とし、当該第１の数値について前記鍵更新情報を生成することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記鍵割当部は、前記サーバ装置毎に互いに異なる数値範囲を割り当て、
前記秘密鍵生成部は、前記鍵セットに含まれる同一の前記マスター鍵と前記数値範囲に含まれる一の数値とを用いて、当該数値に応じた秘密鍵を前記サーバ装置毎に生成することを特徴とする請求項２〜４の何れか一項に記載の情報処理装置。
【請求項６】
前記鍵割当部は、前記サーバ装置毎に互いに異なる数値をとる数列を割り当て、
前記秘密鍵生成部は、前記鍵セットに含まれる同一の前記マスター鍵と前記数列に含まれる一の数値とを用いて、当該数値に応じた秘密鍵を前記サーバ装置毎に生成することを特徴とする請求項２〜４の何れか一項に記載の情報処理装置。
【請求項７】
前記鍵セット生成部は、Ｋｅｙ  Ｉｎｓｕｌａｔｅｄ  Ｓｉｇｎａｔｕｒｅ方式を用いて前記鍵セットを生成することを特徴とする請求項１〜６の何れか一項に記載の情報処理装置。
【請求項８】
コンピュータを、
公開鍵とマスター鍵とを少なくとも含む鍵セットを生成する鍵セット生成手段と、
前記鍵セットに含まれる同一の前記マスター鍵を用いて、自己の装置にアクセスしたサーバ装置毎に互いに異なる秘密鍵を生成する秘密鍵生成手段と、
前記秘密鍵生成手段が生成した前記秘密鍵を対応するサーバ装置に夫々提供する秘密鍵提供手段と、
前記サーバ装置の各々において前記秘密鍵を用いて生成される署名情報を検証させるため、当該検証を行う検証装置に前記公開鍵を提供する公開鍵提供手段と、
して機能させるためのプログラム。
【請求項９】
情報処理装置と、サーバ装置と、データ保持装置とを有するアクセス制御システムであって、
前記情報処理装置は、公開鍵とマスター鍵とを少なくとも含む鍵セットを生成する鍵セット生成部と、前記鍵セットに含まれる公開鍵を前記データ記憶装置に提供する公開鍵提供部と、前記鍵セットに含まれる同一の前記マスター鍵を用いて前記サーバ装置毎に互いに異なる秘密鍵を生成する秘密鍵生成部と、前記秘密鍵生成部が生成した前記秘密鍵を対応するサーバ装置に夫々提供する秘密鍵提供部と、
を備え、
前記サーバ装置は、前記データ保持装置に記憶されたデータの取得を要求する要求情報に対し前記秘密鍵を用いることで当該要求情報の署名情報を生成する署名情報生成部と、前記要求情報と前記署名情報とを含むコマンドを、前記データ保持装置に送信する送信部と、
を備え、
前記データ保持装置は、所定のデータを記憶する記憶部と、前記サーバ装置から前記コマンドを受信する受信部と、前記公開鍵を用いて前記コマンドに含まれた前記署名情報を検証することで当該コマンドに含まれた前記要求情報の真正性を判定する署名検証部と、前記署名検証部が前記要求情報の真正性を確認した場合に、前記記憶部に記憶されたデータを前記サーバ装置に提供するデータ提供部と、
を備えたことを特徴とするアクセス制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理装置、プログラム及びアクセス制御システムに関する。
【背景技術】
【０００２】
従来、通信ネットワークにおける認証技術として、ＰＫＩ等の公開鍵暗号技術が用いられている。係る公開鍵暗号技術は様々な分野で用いられており、例えば、次世代電力網(スマートグリッド)における機器間の情報通信に利用されている。
【０００３】
係る次世代電力網では、各家庭や各事業所に設置されたスマートメータ（以下、ＳＭという）に電力使用量が蓄えられるが、この電力使用量を利用することで、当該電力使用量をオンラインで確認可能とするような各種のサービスがアプリケーションサーバ（以下、ＡＳという）により提供されている。上記公開鍵暗号技術は、例えばＡＳがＳＭにアクセスする際にアクセス権を有しているか否かを確認する認証手続に用いられている。
【０００４】
また、従来、公開鍵暗号方式において、秘密鍵の漏洩による被害を低減するため、秘密鍵に対して有効期間を設定し、この有効期間内にのみ秘密鍵の機能を有効化する技術が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−１１２８６８号公報
【非特許文献】
【０００６】
【非特許文献１】Y.Dodis,J.Katz,S.Xu,  and  M.Yung,“Strong  Key-Insulated  Signature  Schemes”,Proc.of  PKC’03,pp.130-144,2003
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、上述した認証手続きの際にＰＫＩ等の公開鍵暗号技術を用いると、ＡＳはＳＭにデータ（電力使用量）を要求するリクエストコマンドを送信する際に、当該リクエストコマンドとともに、このリクエストコマンドに対する電子署名と、当該電子署名を検証するための公開鍵証明書とを送信する必要がある。この場合、ＳＭでは、電子署名の検証と公開鍵証明書の検証とを実施する必要がある。さらに公開鍵証明書は、ＡＳ毎に個別となっているため、データ保持機器は全てのＡＳの公開鍵証明書を保持する（或いはアクセス毎に毎回受信する）必要があり、計算負荷や保存領域が増大する可能性があった。
【課題を解決するための手段】
【０００８】
実施の形態の情報処理装置は、鍵セット生成部と、秘密鍵生成部と、秘密鍵提供部と、公開鍵提供部とを備える。鍵セット生成部は、公開鍵とマスター鍵とを少なくとも含む鍵セットを生成する。秘密鍵生成部は、鍵セットに含まれる同一のマスター鍵を用いて、自己の装置にアクセスしたサーバ装置毎に互いに異なる秘密鍵を生成する。秘密鍵提供手段は、秘密鍵生成部が生成した秘密鍵を対応するサーバ装置に夫々提供する。公開鍵提供手段は、サーバ装置の各々において秘密鍵を用いて生成される署名情報を検証させるため、当該検証を行う検証装置に公開鍵を提供する。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係るアクセス制御システムの構成を概略的に示す図。
【図２】利用者端末の機能的構成を示す図。
【図３】鍵割り当て範囲管理ＤＢを構成するデータ項目の一例を示す図。
【図４】鍵有効期限管理ＤＢを構成するデータ項目の一例を示す図。
【図５】データ保持機器の機能的構成を示す図。
【図６】鍵有効期限管理ＤＢを構成するデータ項目の一例を示す図。
【図７】アプリケーションサーバの機能的構成を示す図。
【図８】システムセットアップ処理の手順を示すフローチャート。
【図９】アプリケーションサーバセットアップ処理の手順を示すフローチャート。
【図１０】データリクエスト処理の手順を示すフローチャート。
【図１１】秘密鍵更新処理の手順を示すフローチャート。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して、本実施形態に係る情報処理装置、プログラム及びアクセス制御システムを詳細に説明する。なお、以下では、情報処理装置、プログラム及びアクセス制御システムを、次世代電力網に適用した例を説明するが、これに限定されない。
【００１１】
図１は、本実施形態に係るアクセス制御システムの構成を概略的に示す図である。同図に示すように、アクセス制御システム１００は、利用者端末１０と、データ保持機器２０と、アプリケーションサーバ３０とがネットワークＮを介して接続される構成である。ネットワークＮは、例えば、ＬＡＮ（Local  Area  Network）、イントラネット、イーサネット（登録商標）又はインターネット等である。なお、図１では、ネットワークＮに、利用者端末１０、データ保持機器２０及びアプリケーションサーバ３０を各一台ずつ接続した例を示しているが、これに限らず、複数台の利用者端末１０やデータ保持機器２０、アプリケーションサーバ３０を接続することが可能である。
【００１２】
利用者端末１０は、アプリケーションサーバ３０から所定のサービスを享受する利用者が操作する、ＰＣ（Personal  Computer）や携帯情報端末等の端末装置である。また、データ保持機器２０は、利用者端末１０の利用者の家庭や勤務先等に設置されたスマートメータ等の通信装置である。また、アプリケーションサーバ３０は、データ保持機器２０に保持されたデータに基づき、利用者端末１０の利用者に種々のサービスを提供するサーバ装置である。
【００１３】
次に、利用者端末１０、データ保持機器２０及びアプリケーションサーバ３０のハードウェア構成について説明する。
【００１４】
利用者端末１０、データ保持機器２０及びアプリケーションサーバ３０は、何れも通常のコンピュータを利用した情報処理装置である。これらの各情報処理装置のハードウェア構成は、情報処理装置全体を制御するＣＰＵ（Central  Processing  Unit）等の制御部と、各種データや各種プログラムを記憶するＲＯＭ（Read  Only  Memory）やＲＡＭ（Random  Access  Memory）等の主記憶部と、各種データや各種プログラムを記憶するＨＤＤ（Hard  Disk  Drive）やＣＤ（Compact  Disk）ドライブ装置等の補助記憶部と、これらを接続するバスとを備えている。また、ネットワークＮを介して通信を行う通信Ｉ／Ｆ(Interface)を更に備える。なお、これら情報処理装置がネットワークＮを介して通信を行う際には、通信内容の秘匿や認証のために暗号通信を行う。
【００１５】
次に、利用者端末１０、データ保持機器２０及びアプリケーションサーバ３０のそれぞれにおいて実現される各種機能について説明する。
【００１６】
まず、利用者端末１０の機能的構成について図２を用いて説明する。図２に示すように、利用者端末１０は、制御部１１、送受信部１２、鍵セット生成部１３、鍵セット記憶部１４、鍵割り当て管理部１５、鍵割り当て範囲管理ＤＢ１６、鍵有効期限管理ＤＢ１７及び鍵更新情報生成部１８を有する。
【００１７】
ここで、送受信部１２の機能は、利用者端末１０の有する通信Ｉ／Ｆと、利用者端末１０の有するＣＰＵが主記憶部や補助記憶部に記憶された各種プログラムを実行することにより実現される。また、制御部１１、鍵セット生成部１３、鍵割り当て管理部１５及び鍵更新情報生成部１８の各機能は、利用者端末１０の有するＣＰＵが主記憶部や補助記憶部に記憶された各種プログラムを実行することにより実現される。また、鍵セット記憶部１４、鍵割り当て範囲管理ＤＢ１６及び鍵有効期限管理ＤＢ１７はそれぞれ、利用者端末１０の有する例えば補助記憶部に確保される記憶領域である。
【００１８】
制御部１１は、利用者端末１０を構成する各機能部の動作を統括的に制御する。送受信部１２は、データ保持機器２０やアプリケーションサーバ３０等の他の情報処理装置との通信を制御する。
【００１９】
鍵セット生成部１３は、アクセス制御システム１００で使用される鍵セットを生成し、鍵セット記憶部１４に記憶する。鍵セット生成部１３が生成する鍵セットは、Ｋｅｙ  Ｉｎｓｕｌａｔｅｄ  Ｓｉｇｎａｔｕｒｅ方式（Y.Dodis,J.Katz,S.Xu,  and  M.Yung,“Strong  Key-Insulated  Signature  Schemes”,Proc.of  PKC’03,pp.130-144,2003等参照）で生成される複数の値（ｐｋ、ｓｋ＊、ｓｋ＿０）で構成される。
【００２０】
ここで「ｐｋ」は公開鍵であり、秘密鍵ｓｋ＿ｉ（０＜ｉ＜Ｉ、Ｉはシステムパラメータで決定される値）を用いて生成された電子署名ｓｉｇ＿ｉを検証するために用いられる。公開鍵は、制御部１１の制御の下、後述するシステムセットアップ処理の際に、データ保持機器２０に送信（配布）される。「ｓｋ＊」はマスター鍵であり、秘密鍵の生成や、秘密鍵の更新に用いる後述する鍵更新情報ｕｐｄ＿｛ｉ、ｊ｝を生成する際に用いられる。マスター鍵は、秘密鍵を生成する際に、生成パラメータとなるインデックス値（数値）を引数とし、そのインデックス値に応じて夫々異なる秘密鍵を生成する。また、「ｓｋ＿０」は鍵セットの初期秘密鍵である。なお、初期秘密鍵ｓｋ＿０は、秘密鍵の生成や鍵更新情報ｕｐｄ＿｛ｉ、ｊ｝の生成に必要な要素ではないため、鍵セット記憶部１４に記憶する鍵セットから除外する形態としてもよい。なお、マスター鍵は機密情報であるため、利用者端末１０の外部に流出しないように適切に保護する必要があるが、その保護方式についてはここでは言及しない。
【００２１】
鍵割り当て管理部１５は、利用者端末１０が通信を行うアプリケーションサーバ３０毎に、互いに異なる秘密鍵ｓｋ＿ｉを割り当て、当該秘密鍵ｓｋ＿ｉの有効期限ｔと関連付けて管理する。ここで、秘密鍵の割り当ては、種々の割り当て方式を採用することが可能である。秘密鍵の割り当て方式の１例（以下、第１の方式という）としては、アプリケーションサーバ３０の各々に対し、互いに異なるインデックス値の使用範囲（数値範囲）を定め、この使用範囲に含まれるインデックス値を用いて秘密鍵ｓｋ＿ｉを順次生成する。
【００２２】
例えば、二台のアプリケーションサーバ３０Ａ、３０Ｂを対象とする場合、使用範囲（ｉ0＜ｉ＜ｉ0＋（ｎ−１））をアプリケーションサーバ３０Ａに割り当て、使用範囲（ｉ0＋ｎ＜ｉ＜ｉ0＋（２ｎー１））をアプリケーションサーバ３０Ｂに割り当てたとする。ここで、ｉ0は初期値となる任意の自然数であり、ｎは２以上の任意の自然数である。この場合、アプリケーションサーバ３０Ａに対しては、最初の秘密鍵としてｓｋ＿ｉ0を割り当て、鍵の更新によりｓｋ＿｛ｉ0＋１｝、ｓｋ＿｛ｉ0＋２｝、・・・、ｓｋ＿｛ｉ0＋（ｎ−１）｝を順に割り当てる。また、アプリケーションサーバ３０Ｂに対しては、最初の秘密鍵としてｓｋ＿｛ｉ0＋ｎ｝を割り当て、鍵の更新によりｓｋ＿｛ｉ0＋ｎ＋１｝、ｓｋ＿｛ｉ0＋ｎ＋２｝、・・・、ｓｋ＿｛ｉ0＋（２ｎー１）｝を順に割り当てる。
【００２３】
このように、アプリケーションサーバ３０毎に、互いに異なるインデックス値の使用範囲を定めることで、アプリケーションサーバ３０毎に、互いに異なる秘密鍵ｓｋ＿ｉを生成することができる。
【００２４】
また、割り当て方式の他の例（以下、第２の方式という）としては、アプリケーションサーバ３０の各々に対し、互いに異なるインデックス値をとる所定の数列を定め、この数列に含まれるインデックスの集合を用いて生成した秘密鍵ｓｋ＿ｉを、順次割り当てる方式が挙げられる。
【００２５】
例えば、二台のアプリケーションサーバ３０Ａ、３０Ｂを対象とする場合、アプリケーションサーバ３０Ａに対しては、初期の秘密鍵としてｓｋ＿ｉ0を与え、鍵の更新によりｓｋ＿｛ｉ0＋ｋ｝、ｓｋ＿｛ｉ0＋２ｋ｝、・・・、ｓｋ＿｛ｉ0＋ｎｋ｝を順に与えるものとし、アプリケーションサーバ３０Ｂに対しては、初期の秘密鍵としてｓｋ＿｛ｉ0＋１｝を与え、鍵の更新によりｓｋ＿｛ｉ0＋１＋ｋ｝、ｓｋ＿｛ｉ0＋１＋２ｋ｝、・・・、ｓｋ＿｛ｉ0＋１＋ｎｋ｝を順に与える。なお、ｉ0は初期値となる任意の自然数であり、ｋは公差を規定する任意の自然数である。
【００２６】
このように、アプリケーションサーバ３０毎に、互いに異なるインデックス値をとる数列を定めることで、アプリケーションサーバ３０毎に、互いに異なる秘密鍵ｓｋ＿ｉを生成することができる。
【００２７】
鍵割り当て管理部１５は、上述した秘密鍵の割り当て方式により、秘密鍵の生成に用いるインデックス値の集合をアプリケーションサーバ３０毎に求めると、このインデックス値の集合を鍵割り当て範囲とし、対応するアプリケーションサーバ３０を識別するサーバＩＤと関連付け、鍵割り当て範囲管理ＤＢ１６に登録して管理する。
【００２８】
図３は、鍵割り当て範囲管理ＤＢ１６を構成するデータ項目の一例を示す図である。同図に示すように、鍵割り当て範囲管理ＤＢ１６は、サーバＩＤ、鍵割り当て範囲等のデータ項目からなるレコードによって構成されている。ここで、サーバＩＤの項目には、各アプリケーションサーバ３０を識別するＩＰアドレスや、サーバ名、ドメイン名等の識別情報が格納される。また、鍵割り当て範囲の項目には、アプリケーションサーバ３０に割り当てた、秘密鍵の生成に用いるインデックスの集合、或いはインデックスの集合を導出可能な数値範囲や数列を表す情報が格納される。
【００２９】
なお、上記鍵割り当て範囲を決定するタイミングは特に問わず、アプリケーションサーバ３０から利用申請が行われる毎に、当該アプリケーションサーバ３０分の鍵割り当て範囲を決定する形態としてもよいし、複数台分（例えば、十台分）の鍵割り当て範囲を予め決定しておき、これらの鍵割り当て範囲を、利用申請を行ったアプリケーションサーバ３０に順次割り当てる形態としてもよい。
【００３０】
また、鍵割り当て管理部１５は、各アプリケーションサーバ３０で現在利用されている秘密鍵ｓｋ＿ｉの生成に用いたインデックスｉの有効期限を決定し、鍵有効期限管理ＤＢ１７に登録して管理する。
【００３１】
図４は、鍵有効期限管理ＤＢ１７を構成するデータ項目の一例を示す図である。同図に示すように、鍵有効期限管理ＤＢ１７は、サーバＩＤ、インデックス、有効期限等のデータ項目からなるレコードによって構成されている。ここで、サーバＩＤの項目には、各アプリケーションサーバ３０の識別情報が格納される。また、インデックス値の項目には、アプリケーションサーバ３０で現在利用されている秘密鍵の生成に用いたインデックス値が格納される。また、有効期限の項目には、そのインデックス値の有効期限が格納される。
【００３２】
図２に戻り、鍵更新情報生成部１８は、アプリケーションサーバ３０から秘密鍵の更新を要求する「秘密鍵更新申請」コマンドを受けた際に、鍵セット記憶部１４に記憶された鍵セット（ｐｋ、ｓｋ＊、ｓｋ＿０）と、鍵有効期限管理ＤＢ１７に登録された当該アプリケーションサーバ３０の現在のインデックス値と、鍵割り当て範囲管理ＤＢ１６に登録された当該アプリケーションサーバ３０の鍵割り当て範囲のうち、次に割り当てを行うインデックス値とを基に、鍵更新情報ｕｐｄ＿｛ｉ、ｊ｝を生成する。
【００３３】
ここで、ｕｐｄ＿｛ｉ、ｊ｝は、現在のインデックスｉを用いた秘密鍵を、次のインデックスｊを用いた秘密鍵に更新するための情報であり、Ｋｅｙ  Ｉｎｓｕｌａｔｅｄ  Ｓｉｇｎａｔｕｒｅ方式での鍵更新演算子（アルゴリズム）に相当する。
【００３４】
例えば、上述した第１の方式の場合、アプリケーションサーバ３０Ａの現在の秘密鍵が「ｓｋ＿ｉ0」であったとすると、インデックスｉ0が「ｉ」となり（ｉ＝ｉ0）、次のインデックス｛ｉ0＋１｝が「ｊ」となる（ｊ＝ｉ0＋１）。また、同様にアプリケーションサーバ３０Ｂについても、現在の秘密鍵が「ｓｋ＿｛ｉ0＋ｎ｝」であったとすると、インデックス｛ｉ0＋ｎ｝が「ｉ」となり（ｉ＝｛ｉ0＋ｎ｝）、次のインデックス｛ｉ0＋ｎ＋１｝が「ｊ」となる（ｊ＝｛ｉ0＋ｎ＋１｝）。
【００３５】
また、上述した第２の方式の場合、アプリケーションサーバ３０Ａの現在の秘密鍵が「ｓｋ＿ｉ0」であったとすると、インデックスｉ0が「ｉ」となり（ｉ＝ｉ0）、次のインデックス｛ｉ0＋ｋ｝が「ｊ」となる（ｊ＝｛ｉ0＋ｋ｝）。また、同様にアプリケーションサーバ３０Ｂについても、現在の秘密鍵が「ｓｋ＿｛ｉ0＋１｝」であったとすると、インデックス｛ｉ0＋１｝が「ｉ」となり（ｉ＝｛ｉ0＋ｎ｝）、次のインデックス｛ｉ0＋１＋ｋ｝が「ｊ」となる（ｊ＝｛ｉ0＋１＋ｋ｝）。
【００３６】
次に、データ保持機器２０の機能的構成について図５を用いて説明する。図５に示すように、データ保持機器２０は、制御部２１、送受信部２２、公開鍵記憶部２３、署名検証処理部２４、データ記憶部２５、鍵有効期限管理部２６及び鍵有効期限管理ＤＢ２７を有する。
【００３７】
ここで、送受信部２２の機能は、データ保持機器２０の有する通信Ｉ／Ｆと、データ保持機器２０の有するＣＰＵが主記憶部や補助記憶部に記憶された各種プログラムを実行することにより実現される。また、制御部２１、署名検証処理部２４及び鍵有効期限管理部２６の各機能は、データ保持機器２０の有するＣＰＵが主記憶部や補助記憶部に記憶された各種プログラムを実行することにより実現される。また、公開鍵記憶部２３、データ記憶部２５及び鍵有効期限管理ＤＢ２７はそれぞれ、データ保持機器２０の有する例えば補助記憶部に確保される記憶領域である。
【００３８】
制御部２１は、データ保持機器２０を構成する各機能部の動作を統括的に制御する。送受信部２２は、利用者端末１０やアプリケーションサーバ３０等の他の情報処理装置との通信を制御する。
【００３９】
公開鍵記憶部２３は、送受信部２２が利用者端末１０から受信した公開鍵を記憶する。署名検証処理部２４は、送受信部２２がアプリケーションサーバ３０から受信した電子署名の真正性を、公開鍵記憶部２３に記憶された公開鍵を用いて検証する。
【００４０】
データ記憶部２５は、図示しないデータ計測部が計測した、電力使用量、ガス使用量、水道使用量等のデータを記憶する。また、アプリケーションサーバ３０からの要求に応じて、送受信部２２を通じて記憶されたデータの一部または全部をアプリケーションサーバ３０に提供する。なお、データ計測部は、データ保持機器２０が備える形態としてもよいし、ネットワークＮ等を介して接続することで、データ保持機器２０の外部装置とする形態としてもよい。
【００４１】
鍵有効期限管理部２６は、送受信部２２を通じて利用者端末１０から送られてくる秘密鍵の「インデックス値」及び「有効期限」についての情報を、鍵有効期限管理ＤＢ２７に登録し管理する。
【００４２】
図６は、鍵有効期限管理ＤＢ２７を構成するデータ項目の一例を示す図である。同図に示すように、鍵有効期限管理ＤＢ２７は、インデックス値、有効期限等のデータ項目からなるレコードによって構成されている。ここで、インデックス値及び有効期限のデータ項目には、利用者端末１０から送信されたインデックス値及び有効期限が格納される。鍵有効期限管理ＤＢ２７に格納されたこれらの情報は、アプリケーションサーバ３０から送信された署名を検証する際に用いられる。
【００４３】
ここで、署名検証の方法の概要を説明する。アプリケーションサーバ３０からデータリクエストコマンドとして、所望データの内容を記した「リクエスト」ｒｅｑ＿ｉ、アプリケーションサーバ３０が使用中の秘密鍵ｓｋ＿ｉのインデックスｉ、上記リクエストのハッシュ値等に対して秘密鍵ｓｋ＿ｉを用いて生成した署名ｓｉｇ＿ｉが送られてくると、公開鍵記憶部２３は、まずインデックスｉが有効かどうかを、鍵有効期限管理ＤＢ２７の有効期限を参照して確認する。インデックスｉが有効であった場合は、署名検証処理部２４は、公開鍵記憶部２３に記憶された公開鍵ｐｋを用いて署名ｓｉｇ＿ｉを検証することで、署名ｓｉｇ＿ｉからハッシュ値を導出する。また、導出したハッシュ値とリクエストｒｅｑ＿ｉから算出したハッシュ値とを比較することで、リクエストｒｅｑ＿ｉの真正性を確認する。そして、リクエストｒｅｑ＿ｉの真正性が確認できた場合、制御部２１は、リクエストｒｅｑ＿ｉで指示されたデータをアプリケーションサーバ３０に送信する。
【００４４】
次に、アプリケーションサーバ３０の機能的構成について図７を用いて説明する。図７に示すように、アプリケーションサーバ３０は、制御部３１、送受信部３２、秘密鍵・インデックス記憶部３３、署名データ生成部３４、データ記憶部３５及びリクエスト生成部３６を有する。
【００４５】
ここで、送受信部３２の機能は、アプリケーションサーバ３０の有する通信Ｉ／Ｆと、アプリケーションサーバ３０の有するＣＰＵが主記憶部や補助記憶部に記憶された各種プログラムを実行することにより実現される。また、制御部３１、署名データ生成部３４及びリクエスト生成部３６の各機能は、アプリケーションサーバ３０の有するＣＰＵが主記憶部や補助記憶部に記憶された各種プログラムを実行することにより実現される。また、秘密鍵・インデックス記憶部３３及びデータ記憶部３５の各記憶部は、アプリケーションサーバ３０の有する例えば補助記憶部に確保される記憶領域である。
【００４６】
制御部３１は、アプリケーションサーバ３０を構成する各機能部の動作を統括的に制御する。送受信部３２は、利用者端末１０やデータ保持機器２０等の他の情報処理装置との通信を制御する。
【００４７】
秘密鍵・インデックス記憶部３３は、利用者端末１０から受信した秘密鍵、インデックス及び有効期限を記憶する。また、署名データ生成部３４がリクエストに対する署名を生成する際に秘密鍵の情報を提供する。
【００４８】
署名データ生成部３４は、リクエスト生成部３６がリクエストコマンド（ｒｅｑ＿ｉ、ｉ、ｓｉｇ＿ｉ）を生成する際に、リクエストｒｅｑ＿ｉのハッシュ値に対して秘密鍵ｓｋ＿ｉを用いることで署名ｓｉｇ＿ｉを生成する。なお、署名生成の具体的な方法としては、例えば上述したKey  Insulated  Signature方式の署名生成方式を適用すればよい。
【００４９】
データ記憶部３５は、データ保持機器２０から受信したデータを記憶する。なお、データの使用目的・使用方法については、特に問わないものとする。
【００５０】
リクエスト生成部３６は、送受信部３２がデータ保持機器２０に対して送信するリクエストコマンド（ｒｅｑ＿ｉ、ｉ、ｓｉｇ＿ｉ）を生成する。具体的に、リクエスト生成部３６は、所望するデータを指示したリクエスト情報ｒｅｑ＿ｉを生成し、ｒｅｑ＿ｉに対する署名データの生成を、署名データ生成部３４に依頼して、署名ｓｉｇ＿ｉおよびインデックスｉを入手する。
【００５１】
次に、本実施形態のアクセス制御システムの動作について説明する。本システムが動作するためには、システムセットアップ処理、アプリケーションサーバセットアップ処理、データリクエスト処理及び秘密鍵更新処理の４つの処理が必要となる。以下、これら４つの処理について順次説明する。
【００５２】
まず、図８を参照し、システムセットアップ処理の手順について説明する。ここで、図８は、システムセットアップ処理の手順を示すフローチャートである。
【００５３】
まず、利用者端末１０では、鍵セット生成部１３がKey  Insulated  Signature方式の鍵セット（ｐｋ、ｓｋ＊、ｓｋ＿０）を生成し（ステップＳ１１）、当該鍵セットを鍵セット記憶部１４に記憶する（ステップＳ１２）。続いて、制御部１１は、鍵セット記憶部１４に記憶された鍵セットのうち公開鍵ｐｋを、データ保持機器２０に送信する（ステップＳ１３）。
【００５４】
一方、データ保持機器２０では、送受信部２２が利用者端末１０から公開鍵ｐｋを受信すると（ステップＳ２１）、制御部２１は、この公開鍵ｐｋを公開鍵記憶部２３に記憶する（ステップＳ２２）。
【００５５】
このように、システムセットアップ処理では、利用者端末１０で生成された鍵セット（ｐｋ、ｓｋ＊、ｓｋ＿０）のうち、公開鍵ｐｋがデータ保持機器２０に保持される。なお、データ保持機器２０では、入手した公開鍵を用いて署名検証処理に必要となる値を事前に計算しておく形態としてもよく、この場合、後述するデータリクエスト処理において、アプリケーションサーバ３０から送信されるデータリクエストに対応する処理時間を短縮することが可能である。
【００５６】
次に、図９を参照し、アプリケーションサーバセットアップ処理の手順について説明する。ここで、図９は、アプリケーションサーバセットアップ処理の手順を示すフローチャートである。
【００５７】
まず、アプリケーションサーバ３０では、制御部３１が、利用者端末１０に対しデータの「利用申請」コマンドを送信する（ステップＳ３１）。なお、利用申請コマンドには、アプリケーションサーバ３０の真正性を確認可能な認証情報が含まれるものとする。
【００５８】
利用者端末１０では、送受信部１２がアプリケーションサーバ３０から利用申請コマンドを受信すると（ステップＳ４１）、制御部１１は、この利用申請コマンドに含まれた認証情報を検証し（ステップＳ４２）、アプリケーションサーバ３０の真正性を確認する（ステップＳ４３）。アプリケーションサーバ３０の真正性が確認できない場合（ステップＳ４３；Ｎｏ）、制御部１１は、送受信部１２を介してアプリケーションサーバ３０にエラーを送信し（ステップＳ４６）、処理を終了する。
【００５９】
また、ステップＳ４３において、アプリケーションサーバ３０の真正性が確認された場合（ステップＳ４３；Ｙｅｓ）、鍵割り当て管理部１５は、鍵割り当て範囲管理ＤＢ１６を参照し、他のアプリケーションサーバ３０に未割り当ての鍵割り当て範囲（インデックスの集合）を検索する（ステップＳ４４）。ここで、未割り当ての鍵割り当て範囲が存在しない場合（ステップＳ４５；Ｎｏ）、鍵割り当て管理部１５は、送受信部１２を介してアプリケーションサーバ３０にエラーを送信し（ステップＳ４６）、処理を終了する。
【００６０】
また、ステップＳ４５において、未割り当ての鍵割り当て範囲が存在した場合には（ステップＳ４５；Ｙｅｓ）、鍵割り当て管理部１５は、その鍵割り当て範囲を、利用申請コマンドを送信したアプリケーションサーバ３０（以下、送信元アプリケーションサーバ３０という）のサーバＩＤと関連付けて、鍵割り当て範囲管理ＤＢ１６に登録する（ステップＳ４７）。さらに、鍵割り当て管理部１５は、ステップＳ４７で登録した鍵割り当て範囲から、今回の秘密鍵の生成に用いる一のインデックスｉを選択すると、このインデックスｉと、送信元アプリケーションサーバ３０のサーバＩＤと、このインデックスｉの有効期限ｔとを関連付け、鍵有効期限管理ＤＢ１７に登録する（ステップＳ４８）。
【００６１】
続いて、制御部１１は、鍵セット記憶部１４に記憶された鍵セットに含まれるマスター鍵ｓｋ＊と、鍵有効期限管理ＤＢ１７に登録された、送信元アプリケーションサーバ３０のサーバＩＤに対応するインデックスｉとを用いて、秘密鍵ｓｋ＿ｉを生成する（ステップＳ４９）。そして、制御部１１は、送受信部１２を介して送信元アプリケーションサーバ３０に、生成した秘密鍵ｓｋ＿ｉ、鍵有効期限管理ＤＢ１７に記憶された送信元アプリケーションサーバ３０のインデックスｉ及び有効期限ｔを送信する（ステップＳ５０）。
【００６２】
一方、アプリケーションサーバ３０では、制御部３１が、送受信部３２により利用者端末１０から秘密鍵ｓｋ＿ｉ、インデックスｉ及び有効期限ｔの組を受信したか否かを判定する（ステップＳ３２）。ここで、利用者端末１０からエラーを受信したと判定した場合には（ステップＳ３２；Ｎｏ）、処理を終了する。また、利用者端末１０から、秘密鍵ｓｋ＿ｉ、インデックスｉ及び有効期限ｔの組を受信したと判定した場合（ステップＳ３２；Ｙｅｓ）、制御部３１は、受信した秘密鍵ｓｋ＿ｉ、インデックスｉ及び有効期限ｔの組を、秘密鍵・インデックス記憶部３３に記憶する（ステップＳ３３）。
【００６３】
また、利用者端末１０では、ステップＳ５０を実行した後、制御部１１は、送受信部１２を介し、鍵有効期限管理ＤＢ１７に登録された、送信元アプリケーションサーバ３０のインデックスｉ及び有効期限ｔをデータ保持機器２０に送信する（ステップＳ５１）。
【００６４】
データ保持機器２０では、送受信部２２が利用者端末１０からインデックスｉ及び有効期限ｔを受信すると（ステップＳ６１）、鍵有効期限管理部２６は、このインデックスｉと有効期限ｔとを関連付け、鍵有効期限管理ＤＢ２７に登録する（ステップＳ６２）。
【００６５】
このように、アプリケーションサーバセットアップ処理では、アプリケーションサーバ３０に使用する鍵割り当て範囲が、利用者端末１０に設定される。また、利用者端末１０で生成された秘密鍵ｓｋ＿ｉが、当該秘密鍵ｓｋ＿ｉの生成に用いたインデックスｉと、その有効期限ｔとともにアプリケーションサーバ３０に提供されるとともに、インデックスｉ及び有効期限ｔがデータ保持機器２０に提供される。これにより、アプリケーションサーバ３０がデータ保持機器２０からデータを取得する環境が整ったことになる。
【００６６】
次に、図１０を参照して、データリクエスト処理の手順について説明する。ここで、図１０は、データリクエスト処理の手順を示すフローチャートである。
【００６７】
まず、アプリケーションサーバ３０では、リクエスト生成部３６が、リクエストコマンド（ｒｅｑ＿ｉ、ｉ、ｓｉｇ＿ｉ）を生成すると（ステップＳ７１）、当該リクエストコマンドを、送受信部３２を介してデータ保持機器２０に送信する（ステップＳ７２）。
【００６８】
データ保持機器２０では、送受信部２２がリクエストコマンドを受信すると（ステップＳ８１）、制御部２１は、鍵有効期限管理ＤＢ２７を参照して、受信したリクエストコマンドに含まれるインデックスｉが、有効期限内か否かを判定する（ステップＳ８２）。ステップＳ８２において、インデックスｉが有効期限外と判定した場合（ステップＳ８２；Ｎｏ）、制御部２１は、送受信部２２を介してアプリケーションサーバ３０にエラー発生を送信し（ステップＳ８５）、処理を終了する。
【００６９】
また、ステップＳ８２でインデックスｉが有効期限内と判定した場合（ステップＳ８２；Ｙｅｓ）、署名検証処理部２４は、リクエストコマンドに含まれる署名ｓｉｇ＿ｉを公開鍵記憶部２３に記憶された公開鍵ｐｋを用いて検証することで（ステップＳ８３）、当該リクエストコマンドに含まれるｒｅｑ＿ｉの真正性を判定する（ステップＳ８４）。ここで、ｒｅｑ＿ｉの真正性が確認できない場合（ステップＳ８４；Ｎｏ）、署名検証処理部２４は、送受信部２２を介してアプリケーションサーバ３０にエラー発生を送信し（ステップＳ８５）、処理を終了する。
【００７０】
また、ステップＳ８４でｒｅｑ＿ｉの真正性が確認された場合（ステップＳ８４；Ｙｅｓ）、制御部２１は、リクエストｒｅｑ＿ｉに含まれる指示内容を元に、データ記憶部２５からデータを読み出し（ステップＳ８６）、送受信部２２を介してアプリケーションサーバ３０に送信する（ステップＳ８７）。
【００７１】
一方、アプリケーションサーバ３０では、制御部３１が、送受信部３２によりデータ保持機器２０からデータを受信したか否かを判定する（ステップＳ７３）。ここで、データ保持機器２０からエラーを受信したと判定した場合には（ステップＳ７３；Ｎｏ）、処理を終了する。また、データ保持機器２０からデータを受信したと判定した場合（ステップＳ７３；Ｙｅｓ）、制御部３１は、受信したデータをデータ記憶部３５に記憶する（ステップＳ７４）。
【００７２】
このように、データリクエスト処理では、アプリケーションサーバ３０がデータリクエストと当該リクエストに対する署名を生成し、データ保持機器２０に送信する。そして、データ保持機器では、受信した署名を検証し、検証に成功した場合にデータリクエストに記載されたデータをアプリケーションサーバ３０に提供する。
【００７３】
次に、図１１を参照し、秘密鍵更新処理の手順について説明する。ここで、図１１は、秘密鍵更新処理の手順を示すフローチャートである。なお、本処理は、データリクエスト処理のステップＳ８２において有効期限外と判定された場合や、アプリケーションサーバ３０の秘密鍵・インデックス記憶部３３に記憶されたインデックスｉの有効期限ｔが切れた場合等に実行されるものである。
【００７４】
まず、アプリケーションサーバ３０では、制御部３１が、送受信部３２を介し利用者端末１０に「秘密鍵更新申請」コマンドを送信する（ステップＳ９１）。この秘密鍵更新申請コマンドには、上記した利用申請コマンドと同様に認証情報が含まれるものとする。
【００７５】
利用者端末１０では、送受信部１２がアプリケーションサーバ３０から秘密鍵更新申請コマンドを受信すると（ステップＳ１０１）、制御部１１は、この秘密鍵更新申請コマンドに含まれた認証情報を検証し（ステップＳ１０２）、アプリケーションサーバ３０の真正性を確認する（ステップＳ１０３）。ここで、アプリケーションサーバ３０の真正性が確認できない場合（ステップＳ１０３；Ｎｏ）、制御部１１は、アプリケーションサーバ３０にエラーを送信し（ステップＳ１０４）、処理を終了する。
【００７６】
ステップＳ１０３において、アプリケーションサーバ３０の真正性が確認されると（ステップＳ１０３；Ｙｅｓ）、鍵更新情報生成部１８は、鍵有効期限管理ＤＢ１７から、このアプリケーションサーバ３０のサーバＩＤに対応するインデックスｉを読み出すとともに、鍵割り当て範囲管理ＤＢ１６から、このアプリケーションサーバ３０のサーバＩＤに対応する鍵割り当て範囲から、次のインデックスｊを読み出す（ステップＳ１０５）。
【００７７】
続いて、鍵更新情報生成部１８は、鍵セット記憶部１４に記憶された鍵セットに含まれるマスター鍵ｓｋ＊と、ステップＳ１０５で読み出したインデックスｉ、ｊとを用いて、鍵更新情報ｕｐｄ＿｛ｉ、ｊ｝を生成するとともに、このインデックスｊの有効期限ｔ’を決定する（ステップＳ１０６）。
【００７８】
次いで、制御部１１は、ステップＳ１０６で生成された鍵更新情報ｕｐｄ＿｛ｉ、ｊ｝と、秘密鍵の更新に用いる新たなインデックスｊと、その有効期限ｔ’とを、送受信部１２を介しアプリケーションサーバ３０に送信する（ステップＳ１０７）。
【００７９】
アプリケーションサーバ３０では、制御部３１が、送受信部３２より利用者端末１０から鍵更新情報ｕｐｄ＿｛ｉ、ｊ｝、インデックスｊ及び有効期限ｔ’の組を受信したか否かを判定する（ステップＳ９２）。ここで、利用者端末１０からエラーを受信したと判定した場合には（ステップＳ９２；Ｎｏ）、処理を終了する。また、利用者端末１０から鍵更新情報ｕｐｄ＿｛ｉ、ｊ｝、インデックスｊ及び有効期限ｔ’の組を受信したと判定した場合（ステップＳ９２；Ｙｅｓ）、制御部３１は、受信した鍵更新情報ｕｐｄ＿｛ｉ、ｊ｝と、秘密鍵・インデックス記憶部３３に記憶された秘密鍵ｓｋ＿ｉとを用いて、新たな秘密鍵ｓｋ＿ｊを生成する（ステップＳ９３）。そして、制御部３１は、秘密鍵・インデックス記憶部３３に記憶された秘密鍵ｓｋ＿ｉ、インデックスｉ及び有効期限ｔを、新たな秘密鍵ｓｋ＿ｊ、インデックスｊ及び有効期限ｔ’に更新する（ステップＳ９４）。
【００８０】
また、利用者端末１０では、ステップＳ１０７の後、制御部１１が、ステップＳ１０７で送信先となったアプリケーションサーバ３０のサーバＩＤに対応する鍵有効期限管理ＤＢ１７のインデックスｉを、新たなインデックスｊで上書きするとともに、有効期限ｔを、新たな有効期限をｔ’で上書きすることで、鍵有効期限管理ＤＢ１７を更新する（ステップＳ１０８）。そして、制御部１１は、インデックスｊ及びその有効期限ｔ’を、送受信部１２を介してデータ保持機器２０に送信する（ステップＳ１０９）。
【００８１】
一方、データ保持機器２０では、送受信部２２が利用者端末１０からインデックスｊ及びその有効期限ｔ’を受信すると（ステップＳ１１１）、制御部２１は、鍵有効期限管理ＤＢ２７に記憶されたインデックスｉ及び有効期限ｔを、受信したインデックスｊ及び有効期限ｔ’で上書きすることで、鍵有効期限管理ＤＢ２７を更新し（ステップＳ１１２）する。
【００８２】
このように、秘密鍵更新処理では、利用者端末１０が、アプリケーションサーバ３０が保持する秘密鍵ｓｋ＿ｉを更新するための鍵更新情報ｕｐｄ＿｛ｉ、ｊ｝を、鍵セットを用いて生成し、当該鍵更新情報ｕｐｄ＿｛ｉ、ｊ｝をアプリケーションサーバ３０に送信する。アプリケーションサーバ３０では、受信した鍵更新情報ｕｐｄ＿｛ｉ、ｊ｝と自身が保持する秘密鍵ｓｋ＿ｉを用いて、新たな秘密鍵ｓｋ＿｛ｊ｝を生成し、古い秘密鍵ｓｋ＿ｉと置き換える。その後、データリクエスト処理での署名生成時には、新た秘密鍵ｓｋ＿｛ｊ｝が用いられる。
【００８３】
以上のように、本実施形態のアクセス制御システム１００では、アプリケーションサーバ３０がデータ保持機器２０にデータリクエストを送信する際に、秘密鍵を用いて生成した電子署名のみを送信すればよく、公開鍵証明書が不要となるため、通信コストを削減することができるとともに、データ保持機器２０の計算負荷を軽減することができる。
【００８４】
また、利用者端末１０において、同一のマスター鍵から生成した秘密鍵を、アプリケーションサーバ３０間で重複しないよう割り当てることで、データ保持機器２０が保持する公開鍵を、全てのアプリケーションサーバ３０で共用することができるため、データ保持機器２０で公開鍵を保存するための領域の縮小化を図ることが出来る。
【００８５】
以上、本発明の実施形態を説明したが、上記実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。新規な上記実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。上記実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【００８６】
例えば、上記実施形態の各装置で実行されるプログラムは、各装置が備える記憶媒体（ＲＯＭ又はＨＤＤ）に予め組み込んで提供するものとするが、これに限らず、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。さらに、記憶媒体は、コンピュータ或いは組み込みシステムと独立した媒体に限らず、ＬＡＮやインターネット等により伝達されたプログラムをダウンロードして記憶又は一時記憶した記憶媒体も含まれる。
【００８７】
また、上記実施形態の各装置で実行されるプログラムをインターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよく、インターネット等のネットワーク経由で提供又は配布するように構成してもよい。
【符号の説明】
【００８８】
１００  アクセス制御システム
１０  利用者端末
１１  制御部
１２  送受信部
１３  鍵セット生成部
１４  鍵セット記憶部
１５  鍵割り当て管理部
１６  鍵割り当て範囲管理ＤＢ
１７  鍵有効期限管理ＤＢ
１８  鍵更新情報生成部
２０  データ保持機器
２１  制御部
２２  送受信部
２３  公開鍵記憶部
２４  署名検証処理部
２５  データ記憶部
２６  鍵有効期限管理部
２７  鍵有効期限管理ＤＢ
３０  アプリケーションサーバ
３１  制御部
３２  送受信部
３３  秘密鍵・インデックス記憶部
３４  署名データ生成部
３５  データ記憶部
３６  リクエスト生成部
【図１】
2012195903.tif 000003
【図２】
2012195903.tif 000004
【図３】
2012195903.tif 000005
【図４】
2012195903.tif 000006
【図５】
2012195903.tif 000007
【図６】
2012195903.tif 000008
【図７】
2012195903.tif 000009
【図８】
2012195903.tif 000010
【図９】
2012195903.tif 000011
【図１０】
2012195903.tif 000012
【図１１】
2012195903.tif 000013