(57)【特許請求の範囲】
【請求項１】
通信網からのデータをそれぞれ中継する複数のゲートウェイ装置と、前記複数のゲートウェイ装置で中継されたデータを収集するデータ収集サーバとを備えたデータ収集システムにおいて、
前記ゲートウェイ装置は、
各ゲートウェイ装置で異なる値の署名鍵を記憶しておく署名鍵記憶手段と、
自身が属するグループ内のゲートウェイ装置から、第１の収集対象データを暗号化した第１の暗号化データと、前記第１の収集対象データを第１の署名鍵で署名した第１の署名データとを受信するデータ受信手段と、
前記第１の署名データを第３の署名鍵とし、第２の収集対象データを前記第３の署名鍵で署名して仮署名を生成し、前記署名鍵記憶手段から読み出した第２の署名鍵に対して所定の演算を行い、前記演算した値を前記仮署名に加算することにより、前記第１の収集対象データと前記第２の収集対象データとを連結した集約データを前記第１の署名鍵と前記第２の署名鍵とを加算した署名鍵で署名した署名データと等しくなる集約署名データを生成する署名集約手段と、
前記第２の収集対象データを暗号化した第２の暗号化データを前記第１の暗号化データに結合順を維持した形で結合することにより、暗号化された集約データを生成するデータ集約手段と、
前記暗号化された集約データと、前記集約署名データとを同一グループ内の自身とは異なる他のゲートウェイ装置に送信するデータ送信手段と、を有し、
前記データ収集サーバは、
前記複数のゲートウェイ装置にそれぞれ記憶されている各署名鍵のコピーを管理する署名鍵管理手段と、
前記グループを代表するゲートウェイ装置から前記暗号化された集約データと前記集約署名データを受信するデータ受信手段と、
前記暗号化された集約データを復号して集約データを取得し、前記グループに属するゲートウェイ装置の署名鍵のコピーと前記復号した集約データとを用いて検証用の署名データを生成し、前記受信した集約署名データと一致するか否かを判定するデータ判定手段と、
を有することを特徴とするデータ収集システム。
【請求項２】
前記所定の演算は、
前記第２の署名鍵のビットを、前記第１の収集対象データと前記第２の収集対象データとを連結させた集約データのビット数分シフトさせる演算であることを特徴とする請求項１に記載のデータ収集システム。
【請求項３】
通信網からのデータをそれぞれ中継する複数のゲートウェイ装置と、前記複数のゲートウェイ装置で中継されたデータを収集するデータ収集サーバとで行うデータ収集方法において、
前記ゲートウェイ装置により、
各ゲートウェイ装置で異なる値の署名鍵を署名鍵記憶手段に記憶しておく署名鍵記憶ステップと、
自身が属するグループ内のゲートウェイ装置から、第１の収集対象データを暗号化した第１の暗号化データと、前記第１の収集対象データを第１の署名鍵で署名した第１の署名データとを受信するデータ受信ステップと、
前記第１の署名データを第３の署名鍵とし、第２の収集対象データを前記第３の署名鍵で署名して仮署名を生成し、前記署名鍵記憶手段から読み出した第２の署名鍵に対して所定の演算を行い、前記演算した値を前記仮署名に加算することにより、前記第１の収集対象データと前記第２の収集対象データとを連結した集約データを前記第１の署名鍵と前記第２の署名鍵とを加算した署名鍵で署名した署名データと等しくなる集約署名データを生成する署名集約ステップと、
前記第２の収集対象データを暗号化した第２の暗号化データを前記第１の暗号化データに結合順を維持した形で結合することにより、暗号化された集約データを生成するデータ集約ステップと、
前記暗号化された集約データと、前記集約署名データとを同一グループ内の自身とは異なる他のゲートウェイ装置に送信するデータ送信ステップと、を有し、
前記データ収集サーバにより、
前記複数のゲートウェイ装置にそれぞれ記憶されている各署名鍵のコピーを管理する署名鍵管理ステップと、
前記グループを代表するゲートウェイ装置から前記暗号化された集約データと前記集約署名データを受信するデータ受信ステップと、
前記暗号化された集約データを復号して集約データを取得し、前記グループに属するゲートウェイ装置の署名鍵のコピーと前記復号した集約データとを用いて検証用の署名データを生成し、前記受信した集約署名データと一致するか否かを判定するデータ判定ステップと、
を有することを特徴とするデータ収集方法。
【請求項４】
前記所定の演算は、
前記第２の署名鍵のビットを、前記第１の収集対象データと前記第２の収集対象データとを連結させた集約データのビット数分シフトさせる演算であることを特徴とする請求項３に記載のデータ収集方法。
【請求項５】
通信網からのデータをデータ収集サーバに中継するゲートウェイ装置おいて、
他のゲートウェイ装置と異なる値の署名鍵を記憶しておく署名鍵記憶手段と、
自身が属するグループ内のゲートウェイ装置から、第１の収集対象データを暗号化した第１の暗号化データと、前記第１の収集対象データを第１の署名鍵で署名した第１の署名データとを受信するデータ受信手段と、
前記第１の署名データを第３の署名鍵とし、第２の収集対象データを前記第３の署名鍵で署名して仮署名を生成し、前記署名鍵記憶手段から読み出した第２の署名鍵に対して所定の演算を行い、前記演算した値を前記仮署名に加算することにより、前記第１の収集対象データと前記第２の収集対象データとを連結した集約データを前記第１の署名鍵と前記第２の署名鍵とを加算した署名鍵で署名した署名データと等しくなる集約署名データを生成する署名集約手段と、
前記第２の収集対象データを暗号化した第２の暗号化データを前記第１の暗号化データに結合順を維持した形で結合することにより、暗号化された集約データを生成するデータ集約手段と、
前記暗号化された集約データと、前記集約署名データとを同一グループ内の自身とは異なる他のゲートウェイ装置に送信するデータ送信手段と、
を有することを特徴とするゲートウェイ装置。
【請求項６】
前記所定の演算は、
前記第２の署名鍵のビットを、前記第１の収集対象データと前記第２の収集対象データとを連結させた集約データのビット数分シフトさせる演算であることを特徴とする請求項５に記載のゲートウェイ装置。
【請求項７】
通信網からのデータをデータ収集サーバに中継するゲートウェイ装置に、
他のゲートウェイ装置と異なる値の署名鍵を署名鍵記憶手段に記憶しておく署名鍵記憶処理と、
自身が属するグループ内のゲートウェイ装置から、第１の収集対象データを暗号化した第１の暗号化データと、前記第１の収集対象データを第１の署名鍵で署名した第１の署名データとを受信するデータ受信処理と、
前記第１の署名データを第３の署名鍵とし、第２の収集対象データを前記第３の署名鍵で署名して仮署名を生成し、前記署名鍵記憶手段から読み出した第２の署名鍵に対して所定の演算を行い、前記演算した値を前記仮署名に加算することにより、前記第１の収集対象データと前記第２の収集対象データとを連結した集約データを前記第１の署名鍵と前記第２の署名鍵とを加算した署名鍵で署名した署名データと等しくなる集約署名データを生成する署名集約処理と、
前記第２の収集対象データを暗号化した第２の暗号化データを前記第１の暗号化データに結合順を維持した形で結合することにより、暗号化された集約データを生成するデータ集約処理と、
前記暗号化された集約データと、前記集約署名データとを同一グループ内の自身とは異なる他のゲートウェイ装置に送信するデータ送信処理と、
を実行させることを特徴とするデータ集約プログラム。
【請求項８】
前記所定の演算は、
前記第２の署名鍵のビットを、前記第１の収集対象データと前記第２の収集対象データとを連結させた集約データのビット数分シフトさせる演算であることを特徴とする請求項７に記載のデータ集約プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを収集する技術に関する。
【背景技術】
【０００２】
広域網を介して宅内外にあるデジタル家電等のデータを収集するデータ収集システムがある。その従来構成を図７に示す。ゲートウェイ装置１は、宅内外に設置されたデジタル家電やセンサ装置等からのデータを一旦受け取り、暗号化した後にインターネット等のＩＰネットワーク５を介してデータ収集サーバ３に送信する。
【０００３】
そのような暗号化やそれに付随するセキュリティ技術として、チェックサム、ＣＲＣ（Cyclic Redundancy Check）、メッセージダイジェスト（ハッシュ）、メッセージ認証コード、又はデジタル署名（以下、署名）が用いられている（非特許文献１〜４）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】“Computation of the Internet Checksum via Incremental Update”、RFC1642、1994年5月
【非特許文献２】“Cyclic Redundancy Check”、Hacker’s Delight (2nd Edition) Chapter 14
【非特許文献３】“US Secure Hash Algorithms”、RFC6234、2011年5月
【非特許文献４】“Digital Signature Standard”、National Institute of Standards and Technology、FIPS PUB 186-3
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、前述のセキュリティ技術を用いても、データの改竄（データ内容の改変／削除／不正データの混入）の検知（データの完全性検証）と、ゲートウェイ装置のなりすましの検知（データの認証）とを両立できなかった（第１の課題）。
【０００６】
例えば、チェックサム値、ＣＲＣ値、メッセージダイジェスト値は、単にデータの完全性を検証するためのデータであるため、正当なゲートウェイ装置により生成されたものであるかを当該データから保証できず、ゲートウェイ装置のなりすましによるデータの改竄を検知できない。
【０００７】
また、メッセージ認証方式の場合、最初にメッセージ認証コードを生成した以降のインクリメント演算では共通鍵を使用しないため、同様にゲートウェイ装置のなりすましによるデータの改竄を検知できない。
【０００８】
また、デジタル署名方式の場合、公開鍵方式の採用によりデータの完全性検証とデータの認証を両立できる。しかし、全てのゲートウェイ装置に対応する膨大な公開鍵をそれぞれ取得してデジタル署名をそれぞれ解読するため、データ収集サーバでの処理が煩雑となりデータの照合負荷が極めて高くなってしまう。
【０００９】
更に、数百万から数千万台等のゲートウェイ装置からデータと署名がそれぞれ送信されるため、データ収集サーバでのデータの受信負荷や署名の照合負荷が非常に高くなってしまう（第２の課題）。
【００１０】
本発明は、上記事情を鑑みてなされたものであり、ゲートウェイ装置のなりすましによるデータの改竄を防止し、データ収集サーバでの署名照合等に係る処理負荷を抑制することを目的とする。
【課題を解決するための手段】
【００１１】
請求項１に記載のデータ収集システムは、通信網からのデータをそれぞれ中継する複数のゲートウェイ装置と、前記複数のゲートウェイ装置で中継されたデータを収集するデータ収集サーバとを備えたデータ収集システムにおいて、前記ゲートウェイ装置は、各ゲートウェイ装置で異なる値の署名鍵を記憶しておく署名鍵記憶手段と、自身が属するグループ内のゲートウェイ装置から、第１の収集対象データを暗号化した第１の暗号化データと、前記第１の収集対象データを第１の署名鍵で署名した第１の署名データとを受信するデータ受信手段と、前記第１の署名データを第３の署名鍵とし、第２の収集対象データを前記第３の署名鍵で署名して仮署名を生成し、前記署名鍵記憶手段から読み出した第２の署名鍵に対して所定の演算を行い、前記演算した値を前記仮署名に加算することにより、前記第１の収集対象データと前記第２の収集対象データとを連結した集約データを前記第１の署名鍵と前記第２の署名鍵とを加算した署名鍵で署名した署名データと等しくなる集約署名データを生成する署名集約手段と、前記第２の収集対象データを暗号化した第２の暗号化データを前記第１の暗号化データに結合順を維持した形で結合することにより、暗号化された集約データを生成するデータ集約手段と、前記暗号化された集約データと、前記集約署名データとを同一グループ内の自身とは異なる他のゲートウェイ装置に送信するデータ送信手段と、を有し、前記データ収集サーバは、前記複数のゲートウェイ装置にそれぞれ記憶されている各署名鍵のコピーを管理する署名鍵管理手段と、前記グループを代表するゲートウェイ装置から前記暗号化された集約データと前記集約署名データを受信するデータ受信手段と、前記暗号化された集約データを復号して集約データを取得し、前記グループに属するゲートウェイ装置の署名鍵のコピーと前記復号した集約データとを用いて検証用の署名データを生成し、前記受信した集約署名データと一致するか否かを判定するデータ判定手段と、を有することを要旨とする。
【００１２】
請求項２に記載のデータ収集システムは、請求項１に記載のデータ収集システムにおいて、前記所定の演算は、前記第２の署名鍵のビットを、前記第１の収集対象データと前記第２の収集対象データとを連結させた集約データのビット数分シフトさせる演算であることを要旨とする。
【００１３】
請求項３に記載のデータ収集方法は、通信網からのデータをそれぞれ中継する複数のゲートウェイ装置と、前記複数のゲートウェイ装置で中継されたデータを収集するデータ収集サーバとで行うデータ収集方法において、前記ゲートウェイ装置により、各ゲートウェイ装置で異なる値の署名鍵を署名鍵記憶手段に記憶しておく署名鍵記憶ステップと、自身が属するグループ内のゲートウェイ装置から、第１の収集対象データを暗号化した第１の暗号化データと、前記第１の収集対象データを第１の署名鍵で署名した第１の署名データとを受信するデータ受信ステップと、前記第１の署名データを第３の署名鍵とし、第２の収集対象データを前記第３の署名鍵で署名して仮署名を生成し、前記署名鍵記憶手段から読み出した第２の署名鍵に対して所定の演算を行い、前記演算した値を前記仮署名に加算することにより、前記第１の収集対象データと前記第２の収集対象データとを連結した集約データを前記第１の署名鍵と前記第２の署名鍵とを加算した署名鍵で署名した署名データと等しくなる集約署名データを生成する署名集約ステップと、前記第２の収集対象データを暗号化した第２の暗号化データを前記第１の暗号化データに結合順を維持した形で結合することにより、暗号化された集約データを生成するデータ集約ステップと、前記暗号化された集約データと、前記集約署名データとを同一グループ内の自身とは異なる他のゲートウェイ装置に送信するデータ送信ステップと、を有し、前記データ収集サーバにより、前記複数のゲートウェイ装置にそれぞれ記憶されている各署名鍵のコピーを管理する署名鍵管理ステップと、前記グループを代表するゲートウェイ装置から前記暗号化された集約データと前記集約署名データを受信するデータ受信ステップと、前記暗号化された集約データを復号して集約データを取得し、前記グループに属するゲートウェイ装置の署名鍵のコピーと前記復号した集約データとを用いて検証用の署名データを生成し、前記受信した集約署名データと一致するか否かを判定するデータ判定ステップと、を有することを要旨とする。
【００１４】
請求項４に記載のデータ収集方法は、請求項３に記載のデータ収集方法において、前記所定の演算は、前記第２の署名鍵のビットを、前記第１の収集対象データと前記第２の収集対象データとを連結させた集約データのビット数分シフトさせる演算であることを要旨とする。
【００１５】
請求項５に記載のゲートウェイ装置は、通信網からのデータをデータ収集サーバに中継するゲートウェイ装置おいて、他のゲートウェイ装置と異なる値の署名鍵を記憶しておく署名鍵記憶手段と、自身が属するグループ内のゲートウェイ装置から、第１の収集対象データを暗号化した第１の暗号化データと、前記第１の収集対象データを第１の署名鍵で署名した第１の署名データとを受信するデータ受信手段と、前記第１の署名データを第３の署名鍵とし、第２の収集対象データを前記第３の署名鍵で署名して仮署名を生成し、前記署名鍵記憶手段から読み出した第２の署名鍵に対して所定の演算を行い、前記演算した値を前記仮署名に加算することにより、前記第１の収集対象データと前記第２の収集対象データとを連結した集約データを前記第１の署名鍵と前記第２の署名鍵とを加算した署名鍵で署名した署名データと等しくなる集約署名データを生成する署名集約手段と、前記第２の収集対象データを暗号化した第２の暗号化データを前記第１の暗号化データに結合順を維持した形で結合することにより、暗号化された集約データを生成するデータ集約手段と、前記暗号化された集約データと、前記集約署名データとを同一グループ内の自身とは異なる他のゲートウェイ装置に送信するデータ送信手段と、を有することを要旨とする。
【００１６】
請求項６に記載のゲートウェイ装置は、請求項５に記載のゲートウェイ装置において、前記所定の演算は、前記第２の署名鍵のビットを、前記第１の収集対象データと前記第２の収集対象データとを連結させた集約データのビット数分シフトさせる演算であることを要旨とする。
【００１７】
請求項７に記載のデータ集約プログラムは、通信網からのデータをデータ収集サーバに中継するゲートウェイ装置に、他のゲートウェイ装置と異なる値の署名鍵を署名鍵記憶手段に記憶しておく署名鍵記憶処理と、自身が属するグループ内のゲートウェイ装置から、第１の収集対象データを暗号化した第１の暗号化データと、前記第１の収集対象データを第１の署名鍵で署名した第１の署名データとを受信するデータ受信処理と、前記第１の署名データを第３の署名鍵とし、第２の収集対象データを前記第３の署名鍵で署名して仮署名を生成し、前記署名鍵記憶手段から読み出した第２の署名鍵に対して所定の演算を行い、前記演算した値を前記仮署名に加算することにより、前記第１の収集対象データと前記第２の収集対象データとを連結した集約データを前記第１の署名鍵と前記第２の署名鍵とを加算した署名鍵で署名した署名データと等しくなる集約署名データを生成する署名集約処理と、前記第２の収集対象データを暗号化した第２の暗号化データを前記第１の暗号化データに結合順を維持した形で結合することにより、暗号化された集約データを生成するデータ集約処理と、前記暗号化された集約データと、前記集約署名データとを同一グループ内の自身とは異なる他のゲートウェイ装置に送信するデータ送信処理と、を実行させることを要旨とする。
【００１８】
請求項８に記載のデータ集約プログラムは、請求項７に記載のデータ集約プログラムにおいて、前記所定の演算は、前記第２の署名鍵のビットを、前記第１の収集対象データと前記第２の収集対象データとを連結させた集約データのビット数分シフトさせる演算であることを要旨とする。
【００１９】
本発明によれば、同一グループにおける複数の署名データを重畳するため、個々の署名データをそれぞれ署名照合する手間が省けることから、データ収集サーバでの署名照合に係る処理負荷を軽減できる。また、データ収集サーバは、グループを代表するゲートウェイ装置から集約収集対象データと集約署名データを受信するため、データ収集サーバでのデータ受信に係る処理負荷を軽減できる。更に、各ゲートウェイ装置で異なる値の署名鍵を用いて自身の収集対象データの署名データを生成するため、ゲートウェイ装置のなりすましによるデータの改竄を防止できる。
【発明の効果】
【００２０】
本発明によれば、ゲートウェイ装置のなりすましによるデータの改竄を防止でき、データ収集サーバでの署名照合等に係る処理負荷を軽減できる。
【図面の簡単な説明】
【００２１】
【図１】データ収集システムの論理的な接続構成を示す図である。
【図２】ゲートウェイ装置の機能ブロック構成を示す図である。
【図３】データ収集サーバの機能ブロック構成を示す図である。
【図４】署名生成部の処理動作を示すフロー図である。
【図５】データ集約と署名集約のイメージを示す図である。
【図６】データ収集システムの処理動作を示すシーケンス図である。
【図７】従来のデータ収集システムの接続構成を示す図である。
【発明を実施するための形態】
【００２２】
本発明は、Ｐ２Ｐ（Peer to Peer）技術等を用いて複数のゲートウェイ装置でグループを形成し、グループ毎にデータ及び署名をバケツリレー方式で少数のゲートウェイ装置に順次集約（データ集約，署名集約）した後に、データと署名を集約したゲートウェイ装置（代表ゲートウェイ装置）からデータ収集サーバ３に送信することを特徴としている。
【００２３】
また、他のゲートウェイ装置から送信された署名を署名鍵とし、その署名鍵と自身の署名鍵を重畳した署名鍵を用いて集約データについての署名を生成し、それを集約署名とすることを特徴としている。
【００２４】
これらの特徴を備えることにより、データ収集サーバでの署名照合等に係る処理負荷の抑制を実現している。
【００２５】
更に、各ゲートウェイ装置で異なる値の署名鍵を用いて署名を生成することを特徴としている。この特徴を備えることにより、ゲートウェイ装置のなりすましによるデータ改竄の防止を実現している。
【００２６】
以下、本発明を実施する一実施の形態について図面を用いて説明する。
【００２７】
〔データ収集システムの全体構成について〕
図１は、本実施の形態に係るデータ収集システムの論理的な接続構成を示す図である。このデータ収集システムは、ＬＡＮ等の内側のＩＰネットワークからのデータを中継する複数のゲートウェイ装置１と、インターネット等の外側のＩＰネットワーク５を介して当該複数のデータを収集するデータ収集サーバ３とで構成される。
【００２８】
各ゲートウェイ装置１は、各宅内にそれぞれ配置されており、Ｐ２Ｐ技術等を用いることにより、グループＡに属するゲートウェイ装置（１）１ａ〜ゲートウェイ装置（３）１ｃが論理的に直列に接続され、グループＢに属するゲートウェイ装置（４）１ｄ〜ゲートウェイ装置（６）１ｆも同様に直列に接続されている。
【００２９】
〔ゲートウェイ装置の機能について〕
次に、ゲートウェイ装置１の機能について詳述する。図２は、ゲートウェイ装置１の機能ブロック構成を示す図である。ゲートウェイ装置１は、主に、データ受信部（１）１１と、データ記憶部１２と、データ暗号化部１３と、署名鍵記憶部１４と、署名生成部１５と、データ送信部１６と、データ受信部（２）１７とで構成される。以下、それら各部について説明する。
【００３０】
データ受信部（１）１１は、有線／無線ＬＡＮ等の狭域のＩＰネットワークを介して、宅内外のデジタル家電やセンサ装置等で観測／測定された観測／測定データや、ユーザによりそれら装置等に設定された設定データ等のデータ（収集対象データ）を受信する機能部である。
【００３１】
データ記憶部１２は、データ受信部（１）１１により受信されたデータを読み出し可能に記憶しておくメモリやハードディスク等の記憶部である。
【００３２】
データ暗号化部１３は、データ記憶部１２からデータを読み出して、データ収集サーバ３の公開鍵で暗号化する機能部である。また、他のゲートウェイ装置１から暗号化後のデータＭ１を受信した場合には、そのデータＭ１に暗号化後の自身のデータＭ２を結合し、少なくともデータが結合された順番を維持した形で集約データを生成（データ集約）する機能部でもある。
【００３３】
署名鍵記憶部１４は、データ記憶部１２のデータＭから署名を生成するための署名鍵ｋを記憶しておく記憶部である。各ゲートウェイ装置１は、同じビット数のそれぞれ異なる値の署名鍵ｋを保持している。ゲートウェイ装置１が予め保持しておいてもよいし、ゲートウェイ装置１がネットワークに接続された時点で所定のサーバから送信されてもよい。ゲートウェイ装置１は、その署名鍵ｋを特定のユーザ権限のみにより読み込み可能に保持し、データ収集サーバ３を除いて他のゲートウェイ装置１とは共有しない。
【００３４】
署名生成部１５は、データ記憶部１２からデータＭを読み出すと共に、署名鍵記憶部１４から署名鍵ｋを読み出して、署名鍵ｋからデータＭの署名（データの完全性検証とデータの認証を可能にするための符号値）を生成する機能部である。
【００３５】
また、署名生成部１５は、他のゲートウェイ装置１から署名を受信した場合、その署名に上記生成した署名を重畳した集約署名を生成（署名集約）する機能部でもある。更に、受信した署名を署名鍵ｋ’とし、その署名鍵ｋ’と自身のデータＭと自身の署名鍵ｋを用いて集約署名を生成する機能部でもある。
【００３６】
データ送信部１６は、データ暗号化部１３により暗号化されたデータ／集約データと、署名生成部１５により生成された署名データ／集約署名データを、自身のゲートウェイ装置１と同じグループのゲートウェイ装置１（他のゲートウェイ装置１からデータを受信している場合には、当該ゲートウェイ装置１以外のゲートウェイ装置１）に、送信する機能部である。
【００３７】
データ受信部（２）１７は、自身が属するグループ内の他のゲートウェイ装置１から、暗号化後のデータ／集約データと署名データ／集約署名データを受信する機能部である。
【００３８】
以上、ゲートウェイ装置１の機能について説明した。これらの各機能部は、全てのゲートウェイ装置（１）１ａ〜ゲートウェイ装置（６）１ｆに具備されている。なお、グループの形成方法としては、Ｐ２Ｐによる既存のグループウェア機能を用いて同一グループの形成や送信先の検索を実現してもよいし、各グループの識別情報と各グループに属しているゲートウェイ装置１の識別子とを対応付けたグループリストを用いてもよい。
【００３９】
〔データ収集サーバの機能について〕
次に、データ収集サーバ３の機能について詳述する。図３は、データ収集サーバ３の機能ブロック構成を示す図である。データ収集サーバ３は、主に、データ受信部３１と、署名鍵管理部３２と、データ完全性検証・認証部３３とで構成される。以下、それら各部について説明する。
【００４０】
データ受信部３１は、各グループを代表するゲートウェイ装置（３）１ｃやゲートウェイ装置（４）１ｄから、各グループでの集約データと集約署名データを受信する機能部である。
【００４１】
署名鍵管理部３２は、全てのゲートウェイ装置１にそれぞれ記憶されている各署名鍵のコピーを記憶し、管理する機能部である。
【００４２】
データ完全性検証・認証部３３は、各グループに属するゲートウェイ装置群の各署名鍵のコピーと受信した集約データを用いて各グループでの検証用の署名を算出し、受信した集約署名と比較して、一致・不一致の比較結果に基づいてデータ改竄の検知（データの完全性検証）と、ゲートウェイ装置１のなりすましの検知（データの認証）を判定する機能部である。
【００４３】
以上、データ収集サーバ３の機能について説明した。なお、データ収集サーバ３は、全てのゲートウェイ装置１のＩＰアドレスやＭＡＣアドレス、その他通信に必要な情報を管理しており、ゲートウェイ装置１と相互に通信可能である。
【００４４】
〔署名生成部の機能（詳細）について〕
次に、ゲートウェイ装置１の署名生成部１５について更に詳述する。
【００４５】
チェックサム、ＣＲＣ，メッセージダイジェスト（ハッシュ）での符号による誤り検出方式では、インクリメント演算が可能である。すなわち、２つのデータｍ１，ｍ２に対して、ｆ（ｍ１｜ｍ２）＝ｆ’（ｆ（ｍ１），ｍ２）が成立する。なお、“｜”は連結を表している。
【００４６】
つまり、データｍ１とデータｍ２の連結に対する関数ｆの出力に対して、ｍ１のデータ単独に対する関数ｆの結果とデータｍ２によって同様の出力が得られることになる。
【００４７】
よって、複数のゲートウェイ装置１によりツリー状のオーバレイネットワークが構築されている場合（図１参照）、ツリーの上流ほど集約されたデータは増加するが、集約データ全体から署名を生成する必要はなく、それまでの署名と結合分のデータＭから署名を生成できるので、各ゲートウェイ装置１での演算量を抑制できる。
【００４８】
以下、ＣＲＣを一例に用いた署名の生成方法及び集約方法について説明する。図４は、署名生成部１５の処理動作を示すフロー図である。
【００４９】
最初に、データ記憶部１２からデータを取得して、そのデータをｍとする（ステップＳ１０１）。そして、他のゲートウェイ装置１から暗号化されたデータ／集約データと署名データ／集約署名データを受信しているか否かを判定する（ステップＳ１０２）。
【００５０】
それらデータを受信していない場合、署名鍵記憶部１４から署名鍵を取得してｋとし（ステップＳ１０３）、ＣＲＣにより署名鍵ｋを用いてデータｍの署名Ｃ（ｍ，ｋ）を生成する（ステップＳ１０４）。
【００５１】
ここで、その署名Ｃ（ｍ，ｋ）の生成方法について説明する。ＣＲＣのビット列は、そのビット列の各桁を変数ｘの多項式の係数とみなすことができる。また、その係数は、０又は１であり、同じ次数同士の係数の演算は有限体ＧＦ（２）の演算に従うものとする。
【００５２】
｛０，１｝における加算と減算は等価であり、排他的論理和と同値である。データｍと署名鍵ｋを変数ｘの多項式として扱った場合、データｍと署名鍵ｋに対するＣＲＣ演算をＣ（ｍ，ｋ）と表記すると以下のように定義できる。
【数１】
0006013988.tif 000002
【００５３】
そこで、この式（１）を用いて署名Ｃ（ｍ，ｋ）を計算する。なお、Ｐは、ＣＲＣにおける変数ｘの生成多項式である。また、記号｜ｍ｜及び｜Ｐ｜は、それぞれ、データｍ及び生成多項式Ｐのビット数を意味する。
【００５４】
一方、ステップＳ１０２の判定で他のゲートウェイ装置１からデータを受信していた場合、その受信したデータをＭ’とし、署名を署名鍵ｋ’として（ステップＳ１０５）、ＣＲＣにより、ステップＳ１０１で取得した自身のデータｍと当該署名鍵ｋ’を用いて仮署名Ｃ（ｍ，ｋ’）を生成する（ステップＳ１０６）。
【００５５】
この署名鍵ｋ’は、受信したデータＭ’に対する署名であり、当該署名に用いられていた署名鍵をＫと表記すると「ｋ’＝Ｃ（Ｍ’，Ｋ）」となる。式（１）を利用して仮署名Ｃ（ｍ，ｋ’）を展開すると式（２）のようにＣ（Ｍ，Ｋ）となるため、仮署名Ｃ（ｍ，ｋ’）は、他のゲートウェイ装置１から受信したデータＭ’と自身のデータｍとを連結させた集約データＭ（＝Ｍ’ｘ｜ｍ｜＋ｍ）に対する署名鍵Ｋを用いた署名と一致していることがわかる。
【数２】
0006013988.tif 000003
【００５６】
つまり、データＭ’とデータｍとを連結させた集約データＭに対する仮署名を、署名鍵ｋ’と自身のデータｍから生成できる。受信したデータＭ’の大きさによらず、自身のデータｍのみからデータＭ’も合わせた集約データの仮署名を作成するため、ゲートウェイ装置１での演算量を抑制できる。
【００５７】
その後、署名鍵記憶部１４から自身の署名鍵ｋを取得して（ｋｘ｜Ｍ｜ｍｏｄ  Ｐ）を計算し、その計算値ｋ（Ｐ）を上記仮署名Ｃ（ｍ，ｋ’）に加算して、その加算結果を集約署名とする（ステップＳ１０７）。
【数３】
0006013988.tif 000004
【００５８】
式（３）から分かるように、ステップＳ１０７の計算結果は、他のゲートウェイ装置１から受信したデータＭ’に自身のデータｍを連結させた集約データＭに対して、他のゲートウェイ装置１から受信した署名に用いられていた署名鍵Ｋと自身の署名鍵ｋとを重畳した署名鍵を用いて生成した署名Ｃ（Ｍ，Ｋ＋ｋ）と一致している。
【００５９】
なお、ゲートウェイ装置１は、送信する集約データのビット数も併せて送信する。そのため、式（３）の｜Ｍ｜のビット数は、他のゲートウェイ装置から受信した集約データＭ’のビット数と自身のデータｍのビット数とを加算することにより計算される。
【００６０】
以上、署名の生成方法と集約方法について説明した。参考までに、データ集約と署名集約のイメージを図５に示す。
【００６１】
〔データ収集システムの動作について〕
次に、データ収集システムの処理動作について説明する。図６は、データ収集システムの処理動作を示すシーケンス図である。ここでは、グループＡのゲートウェイ装置群について説明し、ゲートウェイ装置（２）１ｂをグループＡの代表ゲートウェイ装置とする。
【００６２】
まず、ゲートウェイ装置（１）１ａにより、自宅内外のデジタル家電等で観測等されたデータＭ１がデータ記憶部１２ａから取得され、そのデータＭ１のビット数がＬとされる（ステップＳ２０１）。
【００６３】
次に、ゲートウェイ装置（１）１ａは、他のゲートウェイ装置１からデータを受信していないため、署名生成部１５ａにより、自身の署名鍵ｋ１が署名鍵記憶部１４ａから取得され、式（１）を用いて、ＣＲＣにより、データＭ１と署名鍵ｋ１から署名Ｃ（Ｍ１，ｋ１）が生成される（ステップＳ２０２）。
【００６４】
次に、データ暗号化部１３ａにより、データＭ１をデータ収集サーバ３の公開鍵で暗号化した暗号化データＥ（Ｍ１）が生成される（ステップＳ２０３）。
【００６５】
なお、データ収集サーバ３による公開鍵の配布方法は任意である。既存のＳＳＬプロトコルに従い特定の配布先に送付してもよいし、全てのゲートウェイ装置１に任意に送付してもよい。
【００６６】
次に、データ送信部１６ａにより、同じグループＡに属するゲートウェイ装置（２）１ｂに対して、データＭ１のビット数Ｌと、署名Ｃ（Ｍ１，ｋ１）と、暗号化データＥ（Ｍ１）とが送信される（ステップＳ２０４）。
【００６７】
続いて、ゲートウェイ装置（２）１ｂにより、同様に観測等されたデータＭ２がデータ記憶部１２ｂから取得され、そのデータＭ２のビット数と受信したデータＭ１のビット数Ｌとが加算されてＬ’とされる（ステップＳ２０５）。
【００６８】
次に、ゲートウェイ装置（２）１ｂは、他のゲートウェイ装置（１）１ａからデータを受信しているため、署名生成部１５ｂにより、受信した署名Ｃ（Ｍ１，ｋ１）が署名鍵ｋ’とされ、式（３）と同様のＣＲＣである式（４）を用いて、データＭ２と署名鍵ｋ’と自身の署名鍵ｋ２から集約署名Ｃ’が生成される（ステップＳ２０６）。
【数４】
0006013988.tif 000005
【００６９】
次に、データ暗号化部１３ｂにより、データＭ２をデータ収集サーバ３の公開鍵で暗号化した暗号化データＥ（Ｍ２）が生成され、受信した暗号化データＥ（Ｍ１）にリスト形式で結合される（ステップＳ２０７）。
【００７０】
次に、データ送信部１６ｂにより、データ収集サーバ３に対して、総ビット数Ｌ’と、集約署名Ｃ’と、暗号化データＥ（Ｍ１），Ｅ（Ｍ２）とが送信される（ステップＳ２０８）。
【００７１】
なお、署名の集約処理とデータの集約処理はそれぞれ独立して実行できるため、先にデータの集約処理（ステップＳ２０７）を実行してから、書名の集約処理（ステップＳ２０６）を実行してもよい。
【００７２】
その後、データ収集サーバ３により、ＩＰネットワーク５を介してそれら各データが受信されると、データ完全性検証・認証部３３により、グループＡに属するゲートウェイ装置（１）１ａの署名鍵ｋ１のコピーとゲートウェイ装置（２）１ｂの署名鍵ｋ２のコピーとが署名鍵管理部３２から取得され、それら２つを重畳した検証用の鍵Ｋ（＝ｋ１＋ｋ２）が計算される（ステップＳ２０９）。
【００７３】
次に、同データ完全性検証・認証部３３により、受信した暗号化データＥ（Ｍ１），Ｅ（Ｍ２）が自身の秘密鍵でそれぞれ復号され、それらを連結した集約データＭと検証用の鍵Ｋとを用いてＣＲＣ（検証用の署名Ｃ（Ｍ，Ｋ））が求められる（ステップＳ２１０）。
【００７４】
最後に、同データ完全性検証・認証部３３により、求めたＣＲＣ（検証用の署名）と受信した集約署名Ｃ’の値とが比較される。ここで、先に求めておいた集約署名Ｃ’の式（４）は、集約データＭがデータＭ１とデータＭ２の連結であり、かつＬ’＝｜Ｍ１｜＋｜Ｍ２｜が成立するので、式（１）から式（３）の論理を展開すると、式（５）のように展開できる。
【数５】
0006013988.tif 000006
【００７５】
すなわち、データの改竄が発生していなければ、集約署名Ｃ’は、集約データＭと検証用の鍵Ｋ（＝ｋ１＋ｋ２）から求めたＣＲＣ（検証用の署名）と完全に一致することになる。
【００７６】
従って、両者が一致する場合には、データの改竄はないものと検知（データ完全性検証）され、かつ、ゲートウェイ装置１のなりすましはないものと検知（データの認証）される。一方、両者が一致しない場合には、いずれかのゲートウェイ装置１のなりすましによるデータの改竄があったものと検知される（ステップＳ２１１）。
【００７７】
特に、データの完全性検証については、それら２つの値の一致・不一致から当然に検証できる。一方、データの認証についても、各ゲートウェイ装置１がそれぞれ異なる値の署名鍵を保持していることから、同様にそれら２つの値の一致・不一致から当然に認証できる。
【００７８】
なお、両者が不一致であった場合、個々のデジタル署名も収集していれば、個別に検証し、不正箇所を特定できる。デジタル署名を用いた検証処理は負荷が高いが、データの改竄の有無の検出時のみ個別に検証することで全体の処理負荷を低減できる。
【００７９】
〔なりすましによる攻撃の検知例について〕
最後に、データ改竄の検知例について説明する。なりすましを行う機器を攻撃者とする。
【００８０】
（パターン１）
攻撃者が、データＭをデータＭ’に改竄したとする。この場合、データ収集サーバ３は、受信した署名Ｃ（Ｍ，ｋ）及びデータＭ’と自身が管理する署名鍵ｋからＣ（Ｍ，ｋ）≠Ｃ（Ｍ’，ｋ）となるため、データの改竄を検知できる。
【００８１】
ここで、攻撃者は、正しいＣ（Ｍ，ｋ）の値を入手可能であるが、その正しい値を出力するようなデータＭ’を捏造するためには、署名鍵ｋを把握している必要がある。しかし、署名鍵ｋは正当なゲートウェイ装置１のみが管理している情報であり、攻撃者は署名鍵ｋを知り得ないことから、Ｃ（Ｍ，ｋ）と同値のＣ（Ｍ’，ｋ）を生成することは困難である。ただし、Ｃ（Ｍ，ｋ）＝Ｃ（Ｍ’，ｋ）となるデータＭ’は理論上存在するが、意図的にデータＭ’を捏造することは現実的に困難である。
【００８２】
（パターン２）
攻撃者が、データＭをデータＭ’に改竄し、更に、Ｃ（Ｍ，ｋ）をＣ（Ｍ’，ｋ’）に書き換えたとする。この場合、データ収集サーバ３は、受信した署名Ｃ（Ｍ’，ｋ’）及びデータＭ’と自身が管理する署名鍵ｋからＣ（Ｍ’，ｋ’）≠Ｃ（Ｍ’，ｋ）となるため、データの改竄を検知できる。パターン１と同様に攻撃者は正しい署名鍵ｋを持たないため、正しい署名Ｃ（Ｍ，ｋ）を生成することは困難である。
【００８３】
（パターン３）
攻撃者が、データＭに不正データｍを混入したデータＭ’を捏造し、更に、Ｃ（Ｍ，ｋ）をＣ（Ｍ’，ｋ）に書き換えたとする。この場合、データ収集サーバ３が受信したＣ（Ｍ’，ｋ）には、攻撃者が成りすましたゲートウェイ装置１の署名鍵ｋが重畳されていないため、データＭ’とデータ収集サーバ３が管理する署名鍵ｋから求めた署名の値はＣ（Ｍ’，ｋ）と一致しない。よって、データ収集サーバ３は改竄を検知できる。
【００８４】
以上、本実施の形態に係るデータ収集システムについて説明した。なお、本実施の形態では、各ゲートウェイ装置１が自身のデータを暗号化して送信し、集約する場合について説明したが、暗号化することなく生データを送信して集約するようにしてもよい。
【００８５】
本実施の形態によれば、同一グループにおける複数の署名を重畳（集約）するので、個々の署名データをそれぞれ署名照合する手間が省けることから、データ収集サーバ３での署名照合に係る処理負荷を軽減できる。特に、その重畳を式（３）のような簡易なアルゴリズムにより行うので、集約してもデータ収集サーバ３の処理負荷を増加させるものではない。
【００８６】
また、本実施の形態によれば、データ収集サーバ３は、グループを代表するゲートウェイ装置１から集約データと集約署名を受信するので、データ収集サーバ３でのデータ受信に係る処理負荷を軽減できる。
【００８７】
更に、本実施の形態によれば、各ゲートウェイ装置１で異なる値の署名鍵を用いて署名を生成するので、ゲートウェイ装置１のなりすましによるデータの改竄を防止でき、データの完全性検証とデータの認証を両立できる。これにより、不正データを排除できる。
【００８８】
最後に、本実施の形態で説明したゲートウェイ装置１やデータ収集サーバ３は、コンピュータにより実現可能である。また、それらの構成要素の各動作をプログラムとして構築し、コンピュータにインストールして実行させることや、通信ネットワークを介して流通させることも可能である。
【符号の説明】
【００８９】
１…ゲートウェイ装置
１１…データ受信部（１）
１２…データ記憶部
１３…データ暗号化部（データ集約手段）
１４…署名鍵記憶部
１５…署名生成部（署名集約手段）
１６…データ送信部（データ送信手段）
１７…データ受信部（２）（データ受信手段）
３…データ収集サーバ
３１…データ受信部
３２…署名鍵管理部（署名鍵管理手段）
３３…データ完全性検証・認証部（データ判定手段）
５…ＩＰネットワーク
Ｓ１０１〜Ｓ１０７、Ｓ２０１〜Ｓ２１１…ステップ
【図１】
0006013988.tif 000007
【図２】
0006013988.tif 000008
【図３】
0006013988.tif 000009
【図４】
0006013988.tif 000010
【図５】
0006013988.tif 000011
【図６】
0006013988.tif 000012
【図７】
0006013988.tif 000013