(57)【要約】  メッセージ認証システムは、マルチホップネットワークに用いられ、サーバ３０と当該サーバ３０にデータを送信する複数のノード１とを備えたメッセージ認証システムであって、ノード１は、サーバと共有する秘密鍵を用いてデータに対応したメッセージ認証子であるタグを計算するタグ生成部９０２と、タグを用いて誤り訂正符号として算出されるパリティにより構成されるパリティタグを生成するパリティタグ生成部９０１とを備え、ノード１は、ノード１および当該ノード１の子ノードが作成したタグに対応したパリティタグを生成しデータとともに親ノードまたはサーバ３０へ送信する。
2014076911.tif 000002
【特許請求の範囲】
【請求項１】
マルチホップネットワークに用いられ、サーバと当該サーバにデータを送信する複数のノードとを備えたメッセージ認証システムであって、
前記ノードは、
前記サーバと共有する秘密鍵を用いて前記データに対応したメッセージ認証子であるタグを計算するタグ生成手段と、
前記タグを用いて誤り訂正符号として算出されるパリティにより構成されるパリティタグを生成するパリティタグ生成手段とを備え、
前記ノードは、当該ノードおよび当該ノードの子ノードが作成した前記タグに対応した前記パリティタグを生成し前記データとともに親ノードまたは前記サーバへ送信する
ことを特徴とするメッセージ認証システム。
【請求項２】
パリティタグ生成手段は、子ノードのパリティタグを入力し、巡回符号の符号化処理またはシンドローム生成処理を利用してパリティタグを生成する
請求項１記載のメッセージ認証システム。
【請求項３】
ノードは、パリティタグ生成の対象となるタグの個数が、誤り訂正符号のパリティシンボル数以下の場合、前記ノードおよび前記ノードの子ノードが作成したタグをパリティタグの代わりに送信する
請求項１または請求項２記載のメッセージ認証システム。
【請求項４】
パリティタグ生成手段は、一つのパリティタグ生成の対象となるタグの個数が誤り訂正符号の情報長の最大値以下になるようにパリティタグを生成する
請求項１から請求項３のうちのいずれか１項に記載のメッセージ認証システム。
【請求項５】
サーバは、各ノードと共有する秘密鍵を用いて、受信したデータに対応したメッセージ認証子であるタグを計算するタグ生成手段と、
受信したパリティタグと前記タグを用いて誤り訂正符号の復号処理を実行する復号手段と、
前記復号手段がエラーと判定したタグに対応するノードを特定する判定手段とを備えた
請求項１から請求項４のうちのいずれか１項に記載のメッセージ認証システム。
【請求項６】
サーバは、ノード数に応じて誤り訂正符号のパリティシンボル数を決定し、ノードに通知する
請求項１から請求項５のうちのいずれか１項に記載のメッセージ認証システム。
【請求項７】
マルチホップネットワークに用いられ、サーバと当該サーバにデータを送信する複数のノードとを備えたメッセージ認証システムに用いられるメッセージ認証方法であって、
前記ノードが、
前記サーバと共有する秘密鍵を用いて前記データに対応したメッセージ認証子であるタグを計算し、
前記タグを用いて誤り訂正符号として算出されるパリティにより構成されるパリティタグを生成し、
当該ノードおよび当該ノードの子ノードが作成した前記タグに対応した前記パリティタグを生成し前記データとともに親ノードまたは前記サーバへ送信する
ことを特徴とするメッセージ認証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの改ざんを検出するメッセージ認証システム、およびメッセージ認証方法に関し、特に、マルチホップネットワークでの通信におけるメッセージ認証システム、およびメッセージ認証方法に関する。
【背景技術】
【０００２】
情報セキュリティ技術の目的の一つは完全性の保証である。そのため、情報セキュリティ技術は、受信したデータが送信者からのデータであることを検証可能であることが求められる。その検証を実現する方法として、送信者と受信者が共通の秘密鍵を持ち、ブロック暗号やハッシュ関数を用いて受信者がその秘密鍵を持つ送信者からのデータであることを確認するメッセージ認証と呼ばれる技術が一般的に用いられている。【０００３】
図１０は、一般的なメッセージ認証における送信者および受信者の処理を示す説明図である。タグ生成手段１０１は、送信するデータに対応したタグ（認証子）を、秘密鍵を用いて生成し、生成されたタグ１０３をデータとともに送信する。受信者は、受信したデータおよび保有する秘密鍵に基づいて、送信者と同様に、タグ生成手段１０２を用いてタグ１０４を生成する。そして、受信者は、生成されたタグ１０４と受信したタグ１０３とが一致するかどうかを確認する。受信者は、一致した場合には受信したデータは正しいと判断し、一致しない場合は改ざんなどがあったと判定してそのデータを破棄する。【０００４】
以下、タグをＴと表し、それ以外のデータをＤと表す。ユーザデータだけでなくカウンタ値や乱数などの初期ベクトル（Ｉｎｉｔｉａｌ  Ｖｅｃｔｏｒ、以下、ＩＶと記載する）をＤに付加してタグを生成することで安全性を高めることが通常行われる。以下の説明において、送信データは必要に応じてＩＶを含むものとする。【０００５】
メッセージ認証では暗号化も同時に行われることが多い。その場合、送信側のタグ生成手段１０１は、データの暗号化を実行し、受信側のタグ生成手段１０２は、暗号化されたデータの復号処理を実行する。暗号化に用いられる秘密鍵がメッセージ認証用の秘密鍵と独立に設定される方式と、暗号化に用いられる秘密鍵がメッセージ認証用の秘密鍵と同一のものが用いられる方式が存在する。【０００６】
タグ生成には、秘密鍵が不明であればデータからタグを推定することが困難であり、データとタグの組を集めても秘密鍵を推定することが困難である性質が要求される。タグ生成の方式として、ブロック暗号を用いた方式が非特許文献１に記載されている。また、ハッシュ関数を用いた方式が非特許文献２に記載されている。【０００７】
データ通信においてセンサネットワークの利用が進んでいる。センサネットワークには、センサなどの小規模なデバイスが多数配置されている。測定したデータは、無線通信でサーバに集約される。センサデバイスの消費電力やサイズが優先される場合に適用される通信方式として、近傍のデバイスを経由してサーバまでのデータ送信を行うマルチホップネットワークが存在する。図１１は、マルチホップネットワークの例を示す説明図である。図１１に示されるノード１〜ノード１９は、センサデバイスなどの情報を測定し、通信する機能を持つデバイスである。各ノードは、サーバをルートとする木構造のネットワークを構成する。サーバとノードとの通信は、ネットワーク構成に応じていくつかのノードを経由して行われる。例えば、図１１において、ノード９のデータは、中間ノード８，中間ノード６，中間ノード１を経由してサーバへ送信される。【０００８】
以下、あるノード（自ノード）をルートとする部分木を構成するノード（自ノードを含む）を子孫ノードと呼び、子孫ノードのうち自ノードを含まないノードを子ノードと呼ぶ。また、あるノードの上位（つまりサーバに近い側）に連結したノードを親ノードと呼ぶ。図１１において、ノード６の子孫ノードはノード６，ノード７，ノード８，ノード９，ノード１０，ノード１１であり、ノード６はこれらのノードのデータをすべて中継して送信する。マルチホップネットワークを構成する無線通信は、一般に低速であり、通信による電力消費を抑えるために、中間ノードでの通信量を抑えることが望まれる。【０００９】
図１１に示されるマルチホップネットワークを用いたアプリケーションの例として、電気やガスなどのメータの自動計測を行うスマートメータシステムが挙げられる。スマートメータシステムでは、無線通信として、特定小電力無線などが適用される。スマートメータシステムでは、この計測結果に基づいて課金や制御が行われるため、データの改ざんはシステムに大きな影響を及ぼす。これを防止するために、メッセージ認証が適用される。【００１０】
スマートメータシステムなどのセンサネットワークにおいて、ノードは決められた時間にデータを測定する。そして、そのデータをサーバに送信する定時測定が主な業務として行われる。例えば、メータは、３０分おきに検針を行い、そのデータをサーバに送信する。定時測定１回のデータ量は小さいが、メッセージ認証によるタグの付加は通信量の大きな増加につながる。定時測定でノードからタグとともに送信されるデータは、典型的にはＩＶ、ノードのＩＤ、測定時刻、測定データである。メッセージ認証の安全性を保証するためにはタグは通常６４ビット以上が必要になる。この場合、例えば、タグ以外のデータがそれぞれ３２ビットであるとすると、タグのサイズは、送信される総データ（タグおよびデータ）サイズのうちの１／３となり、大きな比率を占める。【００１１】
マルチホップネットワークにおけるメッセージ認証のタグの通信量を削減する方式として、非特許文献３に記載されているＡｇｇｒｅｇａｔｅ  ＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）と呼ばれる方式が知られている。この方式では、中間ノードにおいて子孫のノードのタグの排他的論理和が計算され、そのタグが送信される。以下の説明では、このタグを集約タグと呼ぶことにする。【００１２】
図１２は、Ａｇｇｒｅｇａｔｅ  ＭＡＣを用いたノードの構成を示すブロック図である。図１２に示すノードは、集約タグ生成手段３０１、タグ生成手段３０２、データメモリ３０３、受信処理手段３０４、および送信処理手段３０５を備える。受信処理手段３０４は、子ノードからのデータを受信してバッファリングなどを行う。送信処理手段３０５は、親ノードへの送信するデータの構成を行う。データメモリ３０３は、そのノードでの測定データを格納するメモリである。タグ生成手段３０２は、図１０に示すタグ生成手段１０１またはタグ生成手段１０２と同様に、秘密鍵を用いてデータに対応したタグ（認証子）を生成し、生成されたタグをデータとともに送信する。【００１３】
以下、ノードｎのタグをＴ（ｎ）、ノードｎのデータをＤ（ｎ）、ノードｎの集約タグをＡ（ｎ）と表す。例えば、図１１に示す例において、ノード８の集約タグは、式（１）に表されるようにノード８、ノード９、ノード１０のタグの排他論理和となる。
Ａ（８）＝Ｔ（８）＋Ｔ（９）＋Ｔ（１０）．・・・（１）
また、図１１に示す例において、ノード３、ノード５、ノード７など末端のノードにおいてはＡ（ｎ）＝Ｔ（ｎ）である。【００１４】
集約タグ生成手段３０１は、ノード９、ノード１０のタグＴ（９）、タグＴ（１０）とタグ生成手段３０２を用いて生成した自ノードのタグＴ（８）を用いて式（１）に示す処理を実行してＡ（８）を生成する。送信処理手段３０５は、データＤ（８）、データＤ（９）、データＤ（１０）と集約タグＡ（８）とを送信する。【００１５】
Ａ（６）は、ノード６、ノード７、ノード８、ノード９、ノード１０、ノード１１のタグの排他論理和であり、式（２）に示すようにＡ（８）を用いて表される。ノード６は、データＤ（６）、データＤ（７）、データＤ（８）、データＤ（９）、データＤ（１０）、データＤ（１１）と集約タグＡ（６）とを送信する。
Ａ（６）＝Ｔ（６）＋Ｔ（７）＋Ａ（８）＋Ｔ（１１）．・・・（２）【００１６】
このようにＡｇｇｒｅｇａｔｅ  ＭＡＣを用いたシステムは、中間ノードが、子孫ノードの個数に関係なくタグを１個のみ送信すればよいので、タグの通信量を削減することができる。Ａｇｇｒｅｇａｔｅ  ＭＡＣを用いたシステムにおいてサーバは、各ノードに対応した秘密鍵を用いて受信データからタグＴを算出し、そのすべての排他的論理和をとることで集約タグを算出する。そして、サーバは、算出した集約タグと受信した集約タグと比較することで受信データ全体の認証を行う。
【先行技術文献】
【非特許文献】
【００１７】
【非特許文献１】NIST Special Publication 800-38B、” Recommendation for Block Cipher Modes of Operation: The CMAC Mode for Authentication”, May 2005.
【非特許文献２】FIPS PUB 198-1, “ The Keyed-Hash Message Authentication Code (HMAC)”, July 2008.
【非特許文献３】Jonathan Katz and Andrew Y. Lindell. “Aggregate Message Authentication Codes,” RSA Conference (CT-RSA)'08,
【発明の概要】
【発明が解決しようとする課題】
【００１８】
Ａｇｇｒｅｇａｔｅ  ＭＡＣを用いたシステムは、メッセージ認証のタグの付加による通信量の増加を抑えることができる。しかし、そのようなシステムは、サーバで集約タグが不一致となった場合、いずれかのノードのデータもしくは集約タグに改ざんやエラーの発生があったことを検出できるのみであり、エラーの原因となるノードの特定はできないという課題がある。例えば、１個のノードのデータの改ざん、もしくは秘密鍵の不一致などのエラーが発生した場合でも、サーバは、集約タグの検証後、すべてのノードに対してデータの再送を要求する手続きをとるなどの処理を行うことになる。例えば、秘密鍵の不一致が発生している場合、そのノードを特定するために各ノードから集約タグなしでのデータ送信を行うなどの手続きが必要になる。【００１９】
本発明は、タグによる通信量の増加を抑え、かつデータに改ざんや秘密鍵の不一致などによるエラーが発生した場合にはエラーの原因となるノードの特定を行うことができるメッセージ認証システム、およびメッセージ認証方法を提供することを目的とする。
【課題を解決するための手段】
【００２０】
本発明によるメッセージ認証システムは、マルチホップネットワークに用いられ、サーバと当該サーバにデータを送信する複数のノードとを備えたメッセージ認証システムであって、前記ノードは、前記サーバと共有する秘密鍵を用いて前記データに対応したメッセージ認証子であるタグを計算するタグ生成手段と、前記タグを用いて誤り訂正符号として算出されるパリティにより構成されるパリティタグを生成するパリティタグ生成手段とを備え、前記ノードは、当該ノードおよび当該ノードの子ノードが作成した前記タグに対応した前記パリティタグを生成し前記データとともに親ノードまたは前記サーバへ送信することを特徴とする。【００２１】
本発明によるメッセージ認証方法は、マルチホップネットワークに用いられ、サーバと当該サーバにデータを送信する複数のノードとを備えたメッセージ認証システムに用いられるメッセージ認証方法であって、前記ノードが、前記サーバと共有する秘密鍵を用いて前記データに対応したメッセージ認証子であるタグを計算し、前記タグを用いて誤り訂正符号として算出されるパリティにより構成されるパリティタグを生成し、当該ノードおよび当該ノードの子ノードが作成した前記タグに対応した前記パリティタグを生成し前記データとともに親ノードまたは前記サーバへ送信することを特徴とする。
【発明の効果】
【００２２】
本発明によれば、タグによる通信量の増加を抑え、かつデータに改ざんや秘密鍵の不一致などによるエラーが発生した場合にはエラーの原因となるノードの特定を行うことができる。
【図面の簡単な説明】
【００２３】
【図１】本発明によるメッセージ認証システムに用いられるノードの実施形態の構成を示すブロック図である。
【図２】タグとパリティタグの構成を示す説明図である。
【図３】パリティタグ生成手段の入出力を示す説明図である。
【図４】パリティタグ生成手段がパリティタグＰ（ｎ），Ｌ（ｎ）を算出する処理を示すフローチャートである。
【図５】本発明によるメッセージ認証システムに用いられるサーバの構成を示すブロック図である。
【図６】ノードの実施形態の動作を示すフローチャートである。
【図７】サーバの実施形態の動作を示すフローチャートである。
【図８】実施例におけるマルチホップネットワークの構成を示す説明図である。
【図９】本発明によるメッセージ認証システムの主要部の構成を示すブロック図である。
【図１０】一般的なメッセージ認証における送信者および受信者の処理を示す説明図である。
【図１１】マルチホップネットワークの構成例を示す説明図である。
【図１２】Ａｇｇｒｅｇａｔｅ  ＭＡＣのノードの構成例を示すブロック図である。
【発明を実施するための形態】
【００２４】
図１は、本発明によるメッセージ認証システムに用いられるノードの実施形態の構成を示すブロック図である。メッセージ認証システムに用いられるノードは、パリティタグ生成手段４０１と、タグ生成手段４０２と、データメモリ４０３と、受信処理手段４０４と、送信処理手段４０５とを備える。これらの手段は、例えば、特定の演算処理等を行うよう設計されたハードウェア、またはプログラムに従って動作するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の情報処理装置によって実現される。
【００２５】
受信処理手段４０４は、子ノードから送られたデータおよびパリティタグを受信して必要な情報を取り出す。データメモリ４０３は、そのノードでの測定データを格納するメモリである。タグ生成手段４０２は、秘密鍵を用いてデータに対応したタグ（認証子）を生成し、生成されたタグをデータとともに送信する。パリティタグ生成手段４０１は、誤り訂正符号としてパリティを生成する。パリティタグ生成手段４０１は、具体的には、子孫ノードのパリティタグおよびタグ生成手段４０２が生成したタグを入力してパリティにより構成されるパリティタグを生成する。送信処理手段４０５は、データおよび生成されたパリティタグを親ノード（ノードが最上位ノードであれば、サーバ）へ送信する。なお、子ノードは、所定の条件のもとで親ノードへ送るパリティタグの代わりにタグを送る場合もあるが、その条件については後述する。
【００２６】
以下、ノードｎにおける図１に示す各ブロックの処理を説明する。以下、ノードｎの子ノードをｎ＿１，…，ｎ＿Ｊとする。受信処理手段４０４は、子ノードｎ＿１，…，ｎ＿Ｊから送信されたデータＤＡ（ｎ＿１），…，ＤＡ（ｎ＿Ｊ）とタグＱ（ｎ＿１），…，Ｑ（ｎ＿Ｊ）とを受信して格納する。また、受信処理手段４０４は、タグ生成手段４０２が生成したタグＴ（ｎ）を受信する。Ｑ（ｎ＿ｊ）は、ノードｎ＿ｊのタグＴ（ｎ＿ｊ）もしくはその子孫ノードのタグも用いて生成したパリティタグＰ（ｎ＿ｊ）である。また、受信処理手段４０４は、ノードｎ＿ｊから送られたデータ数（ノードｎ＿ｊが集約したノード数）Ｌ（ｎ＿ｊ）を取り出す。Ｌ（ｎ＿ｊ）は、例えば、ＤＡ（ｎ＿ｊ）のヘッダ領域に記載される。ノードｎ＿ｊがネットワークの末端のノードである場合は、Ｑ（ｎ＿ｊ）＝Ｔ（ｎ＿ｊ）であり、Ｌ（ｎ＿ｊ）＝１である。
【００２７】
パリティタグ生成手段４０１は、誤り訂正符号として、通常ｍ＝１〜１６程度のビット数のシンボルからなる情報系列に対してパリティシンボルを生成する。タグは、通常６４ビット以上のデータ長であり、パリティタグ生成はタグを誤り訂正符号のシンボルに分割してその単位で実行される。また、タグＴ（ｎ）は、式（３）のようにＥ個のｍビットシンボルで表されるとする。
Ｔ（ｎ）＝（Ｔ（ｎ，１），…，Ｔ（ｎ，Ｅ））．・・・（３）
【００２８】
誤り訂正符号の冗長シンボル数をＤとすると、パリティタグ生成手段４０１は、タグと同一サイズのＤ個の系列から成るパリティタグを生成する。ノードｎ，ｎ＿１，…，ｎ＿ＪのタグＴ（ｎ），Ｑ（ｎ＿１），…，Ｑ（ｎ＿Ｊ）に対応するパリティタグＰ（ｎ）＝（Ｐ（ｎ，０），…，Ｐ（ｎ，Ｄ−１））は、式（４）のように表わされる。式（４）において、Ｔ（ｎ，ｅ），Ｑ（ｎ＿１，ｅ），…，Ｑ（ｎ＿Ｊ，ｅ）に対応するデータのタグを情報系列とする符号語Ｃ（ｅ）のパリティＰ（ｎ，０，ｅ），…，Ｐ（ｎ，Ｄ−１，ｅ）（ｅ＝１，２，…，Ｅ）が用いられている。また、式（４）において、ｄ＝０，…，Ｄ−１である。
Ｐ（ｎ，ｄ）＝（Ｐ（ｎ，ｄ，１），…，Ｐ（ｎ，ｄ，Ｅ））．・・・（４）
【００２９】
図２は、タグとパリティタグの構成を示す説明図である。多くのノードのデータへの改ざんを検出し特定する能力を上げるためにＤを大きくする必要がある。しかし、パリティタグの通信量とのトレードオフが存在する。
【００３０】
図３は、パリティタグ生成手段４０１の入出力を示す説明図である。パリティタグ生成手段４０１は、ノードｎの子ノードｎ＿１，…，ｎ＿Ｊから送られたタグＱ（ｎ＿１），…，Ｑ（ｎ＿Ｊ）、データ数Ｌ（ｎ＿１），…，Ｌ（ｎ＿Ｊ）およびノードｎのタグＴ（ｎ）を入力し、パリティタグＰ（ｎ）およびデータ数Ｌ（ｎ）を送信処理手段４０５に出力する。一般的な技術のＡｇｇｒｅｇａｔｅ  ＭＡＣと異なり、パリティタグ生成ではＬ（ｎ＿ｊ）を必要とする。
【００３１】
図４は、パリティタグ生成手段４０１がパリティタグＰ（ｎ），Ｌ（ｎ）を算出する処理を示すフローチャートである。以下、このフローを説明する。
【００３２】
パリティタグ生成手段４０１は、Ｐ（ｎ）＝０，Ｌ（ｎ）＝０，インデックスｊ＝１とする初期化を行う（ステップＳ７０１）。次に、パリティタグ生成手段４０１は、Ｐ（ｎ），Ｌ（ｎ）をＱ（ｎ＿ｊ），Ｌ（ｎ＿ｊ）を用いて式（５）および式（６）に示すように更新する（ステップＳ７０２）。式（５）において、Ｇｅｎは、パリティタグを更新する処理を表す。
Ｐ（ｎ）←Ｇｅｎ（Ｐ（ｎ），Ｑ（ｎ＿ｊ），Ｌ（ｎ））．・・・（５）
Ｌ（ｎ）←Ｌ（ｎ）＋Ｌ（ｎ＿ｊ）．・・・（６）
【００３３】
パリティタグ生成手段４０１は、ｊ＝Ｊとなり、子ノードからのタグの処理が終了したと判定した場合には（ステップＳ７０３のＹＥＳ）ステップＳ７０４に移行し、そうでない場合には（ステップＳ７０３のＮＯ）ｊを更新して（ステップＳ７０５）ステップ７０２に戻る。次に、パリティタグ生成手段４０１は、ノードｎのＴ（ｎ）に対応してＰ（ｎ）を更新し、Ｌ（ｎ）を１インクリメントする（ステップＳ７０４）。パリティタグ生成手段４０１は、ノードｎでの測定データを送信する必要がない場合はステップＳ７０４をスキップする。
【００３４】
送信処理手段４０５は、ノードｎ＿１，．．．，ｎ＿Ｊから受信したデータおよびノードｎのデータをまとめてＬ（ｎ）をヘッダに記した送信データを構成し、パリティタグＰ（ｎ）とともに親ノードへ送信する。
【００３５】
本実施形態のパリティタグ生成手段４０１が利用する誤り訂正符号には、子ノードから送信されたパリティを用いて子孫ノードすべてのタグを情報系列とするパリティを生成することが可能な性質を持つことが求められる。パリティタグ生成手段４０１は、このような性質を満たす誤り訂正符号としてＲｅｅｄ−Ｓｏｌｏｍｏｎ符号に代表される巡回符号を利用することができる。ガロア体ＧＦ（２＾ｍ）上の巡回符号は、ＧＦ（２＾ｍ）に係数を持つ生成多項式ｇ（ｘ）（次数Ｄ）を用いて、情報系列（ａ（ｋ），…，ａ（１））（ｋ＜２＾ｍ−Ｄ）に対して次の式（７）のように剰余多項式Ｒ（ｘ）を生成する。
Ｒ（ｘ）：＝Ｒ（Ｄ−１）ｘ＾（Ｄ−１）＋．．．＋Ｒ（１）ｘ＋Ｒ（０）
＝（ａ（ｋ）ｘ＾（ｋ＋Ｄ）＋ａ（ｋ−１）ｘ＾（ｋ−１＋Ｄ）＋…＋ａ（１）ｘ＾Ｄ）ｍｏｄ  ｇ（ｘ）．・・・（７）
【００３６】
式（７）においてｍｏｄ  ｇ（ｘ）は、ｇ（ｘ）で除したときの剰余をとる演算であり、剰余多項式Ｒ（ｘ）のＤ個の係数Ｒ＝（Ｒ（０），Ｒ（１），．．．，Ｒ（Ｄ−１））がパリティとなる。パリティタグＰ（ｎ）は、（Ｄ−１）次の多項式のＥ個の組で表される。式（８）のパリティタグＰ（ｎ）［ｘ］は、Ｐ（ｎ）の多項式表現で表される。
Ｐ（ｎ）［ｘ］：＝Ｐ（ｎ，Ｄ−１）ｘ＾（Ｄ−１）＋Ｐ（ｎ，Ｄ−２）ｘ＾（Ｄ−２）＋．．．＋Ｐ（ｎ，１）ｘ＋Ｐ（ｎ，０）．・・・（８）
Ｐ（ｎ，ｄ）ｘ＾ｊ：＝（Ｐ（ｎ，ｄ，１）ｘ＾ｊ，Ｐ（ｎ，ｄ，２）ｘ＾ｊ，．．．，Ｐ（ｎ，ｄ，Ｅ）ｘ＾ｊ）．・・・（９）
【００３７】
Ｔ（ｎ）ｘ＾ｊ，（Ｐ（ｎ）［ｘ］ｘ＾ｊ  ｍｏｄ  ｇ（ｘ））などもシンボル毎に多項式演算が行われるとする。このときＱ（ｎ＿ｊ）＝Ｔ（ｎ＿ｊ）に対して式（５）は次のように表される。
Ｐ（ｎ）［ｘ］  ←Ｐ（ｎ）［ｘ］＋（Ｔ（ｎ＿ｊ）ｘ＾（Ｄ＋Ｌ（ｎ）））  ｍｏｄ  ｇ（ｘ）．・・・（１０）
【００３８】
一方、Ｑ（ｎ＿ｊ）＝Ｐ（ｎ＿ｊ）に対して式（５）は次のように表される。
Ｐ（ｎ）［ｘ］  ←  Ｐ（ｎ）［ｘ］＋（Ｐ（ｎ＿ｊ）［ｘ］ｘ＾Ｌ（ｎ））  ｍｏｄ  ｇ（ｘ）．・・・（１１）
式（１０）、式（１１）においてｍｏｄ  ｇ（ｘ）の演算はｎ＿１，．．．，ｎ＿ｊまでＰ（ｎ）［ｘ］の更新を終えてから実行することもできる。
【００３９】
以上の巡回符号によるパリティタグ生成処理では、パリティタグ生成手段４０１は、通信路上でのパリティタグに対するエラーや改ざんを考慮しなければ、シンドローム生成を用いることもできる。ＧＦ（２＾ｍ）上のＲｅｅｄ−Ｓｏｌｏｍｏｎ符号を用いた場合のシンドローム生成はＧＦ（２＾ｍ）の原始元をαとすると式（１０）および式（１１）の代わりに次の式（１２）および式（１３）に示す処理を実行する。
Ｐ（ｎ，ｄ）←Ｐ（ｎ，ｄ）＋Ｔ（ｎ＿ｊ）α＾（ｄ・Ｌ（ｎ）），（ｄ＝０，１，．．．，Ｄ−１）．・・・（１２）
Ｐ（ｎ，ｄ）←Ｐ（ｎ，ｄ）＋Ｐ（ｎ＿ｊ，ｄ）α＾（ｄ・Ｌ（ｎ））），（ｄ＝０，１，．．．，Ｄ−１）．・・・（１３）
【００４０】
マルチホップネットワークでは末端だけでなく、末端に近いノードでは子孫ノードの個数がパリティタグのサイズ（シンボル数）Ｄ以下となる中間ノードも存在する。この場合にはパリティタグを生成せずに各ノードのデータに対応するタグをそのまま送信した方が通信量の点で有利となる。図１１において、Ｄ＝３であればノード２，ノード４，ノード８がこの場合に相当する。この場合、ノード２はノード２，ノード３のデータＤＡ（２），データＤＡ（３）とタグＴ（２），タグＴ（３）をそのままノード１に送信する。親ノードは、データ数に基づいてタグかパリティタグかを判別することができる。ノード１は、ノード２，ノード４からの受信データはデータ数２なのでタグ、ノード６からのデータ数は５なのでパリティタグ、ノード１２からのデータ数は１なのでタグが送信されてきたと判別することができる。このときノード１はノード１，ノード２，ノード３，ノード４，ノード５のタグ、ノード６のパリティタグ、ノード１２のタグからパリティタグを生成する。
【００４１】
パリティタグの生成においては適用する誤り訂正符号の符号長（情報長）の上限に注意する必要がある。例えばＧＦ（２＾ｍ）上のＲｅｅｄ−Ｓｏｌｏｍｏｎ符号の符号長は高々（２＾ｍ−１）であり、パリティタグ生成手段４０１はこれを超えるノードには対応しないように制御する方法が考えられる。このとき、中間ノードでは受信したデータをこの条件に合うようにグルーピングし、パリティタグを生成する。
【００４２】
図５は、本発明によるメッセージ認証システムに用いられるサーバの構成を示すブロック図である。サーバ３０は、復号手段８０１と、タグ生成手段８０２と、鍵メモリ８０３と、受信処理手段８０４と、判定手段８０５とを備える。これらの手段は、例えば、特定の演算処理等を行うよう設計されたハードウェア、またはプログラムに従って動作するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の情報処理装置によって実現される。
【００４３】
受信処理手段８０４は、子ノードから送られたデータおよびパリティタグを受信、記憶して必要な情報を取り出す。鍵メモリ８０３は、秘密鍵を格納する。タグ生成手段８０２は、受信処理手段８０４が受信した各ノードのデータを読み出し、鍵メモリ８０３に格納されている対応する秘密鍵を用いてタグを生成する。復号手段８０１は、タグ生成手段８０２が生成したタグと受信したパリティタグから誤り訂正符号の復号処理を実行する。判定手段８０５は、復号手段８０１の結果に基づいて不正もしくはエラーが発生したデータに対応するノードを特定する。なお、前述したように所定の条件の下で、子ノードから送られるパリティタグの代わりにタグが送られる場合がある。
【００４４】
タグがＥ個のシンボルで構成される場合、パリティタグは、Ｅ個の誤り訂正符号Ｃ（１）−Ｃ（Ｅ）のパリティシンボルで構成される。復号手段８０１は、Ｃ（１）−Ｃ（Ｅ）に対応する受信語のすべての復号結果がエラーでないと判定されたタグは問題なしとする。また、復号手段８０１は、少なくとも一つの受信語がエラーと判定された場合には、例えば、そのタグに対応するデータの改ざんまたは秘密鍵の不一致等によるエラーが発生したと判定する。復号手段８０１は、復号失敗のメッセージを出力することもあり、この場合はすべてのノードのデータに改ざんまたは秘密鍵の不一致等によるエラーが発生したと判定する。
【００４５】
適切なパリティシンボル数は、ネットワークのノード数に依存して決まる。よって多くのノードで構成されるネットワークに対してはパリティシンボル数も大きくすることが考えられる。マルチホップネットワークは、アドホックに構成され、動的にネットワーク構成が変化することが想定されるため、サーバは、ネットワークの大きさに応じてパリティシンボル数を変更し、対応するノードに通知する。
【００４６】
次に、本実施形態のメッセージ認証システムのノードの動作を説明する。図６は、ノードの実施形態の動作を示すフローチャートである。受信処理手段４０４は、子ノードから送られたデータおよびパリティタグを受信して必要な情報を取り出す（ステップＳ０１）。タグ生成手段４０２は、秘密鍵を用いてデータに対応したタグ（認証子）を生成し、生成されたタグをデータとともに送信する（ステップＳ０２）。パリティタグ生成手段４０１は、誤り訂正符号としてパリティを生成する（ステップＳ０３）。パリティタグ生成手段４０１は、具体的には、子孫ノードのパリティタグおよびタグ生成手段４０２が生成したタグを入力してパリティにより構成されるパリティタグを生成する。送信処理手段４０５は、データおよび生成されたパリティタグを親ノードへ送信する（ステップＳ０４）。
【００４７】
次に、本実施形態のメッセージ認証システムのサーバの動作を説明する。図７は、サーバの実施形態の動作を示すフローチャートである。受信処理手段８０４は、子ノードから送られたデータおよびパリティタグを受信、格納して必要な情報を取り出す（ステップＳ１１）。タグ生成手段８０２は、受信処理手段８０４が受信した各ノードのデータを読み出し、鍵メモリ８０３に格納されている対応する秘密鍵を用いてタグを生成する（ステップＳ１２）。復号手段８０１は、タグ生成手段８０２が生成したタグと受信したパリティタグから誤り訂正符号の復号処理を実行する（ステップＳ１３）。判定手段８０５は、復号手段８０１の結果に基づいてエラーが発生したデータの送信元のノードを特定する（ステップＳ１４）。このエラーは、例えば秘密鍵の不一致等によるエラーや、データの改ざん等の不正な処理によるエラーを含む。
【００４８】
次に、本発明によるメッセージ認証システムの実施例を説明する。図８は、実施例におけるメッセージ認証システムを用いたマルチホップネットワークの構成を示す説明図である。図８において、ノード１が親ノードである。また、本実施例では、誤り訂正符号としてＲｅｅｄ−Ｓｏｌｏｍｏｎ符号を用いる。また、適用する誤り訂正符号はガロア体ＧＦ（２＾８）（ｍ＝８）上のＲｅｅｄ−Ｓｏｌｏｍｏｎ符号であるとする。ＧＦ（２＾８）の原始多項式は例えば、次式（１４）のように表される。
ｐ（ｘ）＝ｘ＾８＋ｘ＾４＋ｘ＾３＋ｘ＾２＋１．・・・（１４）
【００４９】
ＧＦ（２＾８）の各シンボルはＧＦ（２）上（バイナリ）の多項式（最大次数７）として表され、加算はビット毎の排他的論理和、乗算は多項式の積に対してｐ（ｘ）によるｍｏｄをとることで実行される。パリティシンボル数Ｄ＝３とするとＲｅｅｄ−Ｓｏｌｏｍｏｎ符号の生成多項式ｇ（ｘ）は次式（１５）のように表される。
ｇ（ｘ）＝（ｘ＋α）（ｘ＋α＾２）（ｘ＋α＾３）．・・・（１５）
【００５０】
この符号は、１シンボルの誤りを訂正、２シンボルの誤りを検出する能力を持つ。本実施形態におけるメッセージ認証システムでは、この符号を適用することによって１ノードにデータの改ざんや秘密鍵の不一致などが発生した場合にどのノードでそれが発生したのかを特定することができる。２ノードのデータで改ざんやエラーが発生した場合には復号不可能（検出のみ）という判定となり、サーバ３０は、例えばすべてのノードに対して再送の要求を出すなどの処理を実行する。
【００５１】
タグ長が９６ビットであるとすると、ｍ＝８ビットのシンボルの誤り訂正符号では１個のタグはＥ＝９６／８＝１２個のシンボルで構成される。
【００５２】
以下、本実施例のノードおよびサーバの処理の動作を述べる。本実施例において、タグ長を６４ビットとする。
【００５３】
最初にノードの処理の実施例を述べる。図８の末端のノード３，ノード４，ノード５はそれぞれデータとタグの組（ＤＡ（３），Ｔ（３）），（ＤＡ（４），Ｔ（４）），（ＤＡ（５），Ｔ（５））を親ノードのノード２に送信する。ノード２は子孫ノード（自ノード含む）の個数がＤ＝３を越えるため、パリティタグＰ（２）を生成する。また、Ｌ（３）＝Ｌ（４）＝Ｌ（５）＝１である。Ｐ（２）は次の多項式（１６）で表すことができる。
Ｐ（２）［ｘ］＝（Ｔ（２）ｘ＾６＋Ｔ（５）ｘ＾５＋Ｔ（４）ｘ＾４＋Ｔ（３）ｘ＾３）ｍｏｄ  ｇ（ｘ）．・・・（１６）
【００５４】
パリティタグ生成手段４０１は、Ｐ（２）を、式（６）、式（１０）、式（１１）に基づいて次のように算出する。
ノード３：Ｐ（２）［ｘ］←Ｔ（３）［ｘ］ｘ＾３  ｍｏｄ  ｇ（ｘ），Ｌ（２）←１，
ノード４：Ｐ（２）［ｘ］←Ｐ（２）［ｘ］＋Ｔ（４）ｘ＾（１＋３）  ｍｏｄ  ｇ（ｘ），Ｌ（２）←２，
ノード５：Ｐ（２）［ｘ］←Ｐ（２）［ｘ］＋Ｔ（５）ｘ＾（２＋３）  ｍｏｄ  ｇ（ｘ），Ｌ（２）←３，
ノード２：Ｐ（２）［ｘ］←Ｐ（２）［ｘ］＋Ｔ（２）ｘ＾（３＋３）  ｍｏｄ  ｇ（ｘ），Ｌ（２）←４，
・・・（１７）
【００５５】
ノード２は、Ｌ（２）＝４，データＤＡ（２）、データＤＡ（５）、データＤＡ（４）、データＤＡ（３）とパリティタグＰ（２）をサーバに送信する。ノード１の子ノードはノード２，ノード６である。ノード１は、ノード２からデータＤＡ（２）、データＤＡ（５）、データＤＡ（４）、データＤＡ（３）とパリティタグＰ（２）を受信し、ノード６からデータＤＡ（６）とタグＴ（６）を受信する。Ｌ（２）＝４，Ｌ（６）＝１であり、パリティタグ生成手段４０１は、Ｐ（１）を、式（６）、式（１０）、式（１１）に基づいて次のように算出する。
【００５６】
ノード２：Ｐ（１）［ｘ］←Ｐ（２）［ｘ］ｘ＾０  ｍｏｄ  ｇ（ｘ）＝Ｐ（２）［ｘ］，Ｌ（１）←４．
ノード６：Ｐ（１）［ｘ］←Ｐ（１）［ｘ］＋Ｔ（６）ｘ＾（４＋３）  ｍｏｄ  ｇ（ｘ），Ｌ（１）←５．
ノード１：Ｐ（１）［ｘ］←Ｐ（１）［ｘ］＋Ｔ（１）ｘ＾（５＋３）  ｍｏｄ  ｇ（ｘ），Ｌ（１）←６．
・・・（１８）
【００５７】
Ｐ（１）［ｘ］は、次のパリティタグと一致する。
Ｐ（１）［ｘ］＝（Ｔ（１）ｘ＾８＋Ｔ（６）ｘ＾７＋Ｔ（２）ｘ＾６＋Ｔ（５）ｘ＾５＋Ｔ（４）ｘ＾４＋Ｔ（３）ｘ＾３）  ｍｏｄ  ｇ（ｘ）．・・・（１９）
ノード１は、Ｌ（１）＝６，データＤＡ（１）、データＤＡ（６）、データＤＡ（２）、データＤＡ（５）、データＤＡ（４）、データＤＡ（３）をサーバに送信する。
【００５８】
次に、本実施例のサーバ３０の処理を述べる。サーバ３０においてノード１−６に対応する受信データをＤＡ’（１）−ＤＡ’（６）、受信パリティタグをＰ’（１）とする。サーバは最初に各ノードの秘密鍵を用いてＤＡ’（１）−ＤＡ’（６）からタグＴ’（１）−Ｔ’（６）を生成する。復号手段８０１は、式（２０）に示す受信語に対して（ｅ＝１，２，…，８）、Ｒｅｅｄ−Ｓｏｌｏｍｏｎ符号の復号処理を実行する。
【００５９】
Ｃ’（ｅ）＝（Ｔ’（１，ｅ），Ｔ’（６，ｅ），Ｔ’（２，ｅ），Ｔ’（５，ｅ），Ｔ’（４，ｅ），Ｔ’（３，ｅ），Ｐ’（１，２，ｅ），Ｐ’（１，１，ｅ），Ｐ’（１，０，ｅ））・・・（２０）
Ｒｅｅｄ−Ｓｏｌｏｍｏｎ符号の復号処理は、ユークリッドアルゴリズムなどに基づく通常の手法を適用することができる。これらの復号法は、Ｄ個のパリティシンボルを付加した場合にはＤ／２個以下のエラーシンボルを特定することができる。
【００６０】
データおよびタグに改ざんやエラーが存在しない場合はすべてのｅについてＣ’（ｅ）はエラーなしで復号される。一方、例えばＤＡ’（２）≠ＤＡ（２）とＤＡ（２）に改ざんが発生した場合にはメッセージ認証の性質から非常に高い確率で少なくとも１つのｅについてＴ’（２，ｅ）≠Ｔ（２，ｅ）となる。他のデータやパリティタグに改ざんまたは秘密鍵の不一致等によるエラーがないとすればＲｅｅｄ−Ｓｏｌｏｍｏｎ符号の復号処理は式（２０）の３番目のシンボルがエラーシンボルとする復号結果を出力する。判定手段８０５は、３番目のシンボルに対応するノードとしてノード２を特定し、このノードで改ざんや秘密鍵の不一致などが発生したと判定することができる。
【００６１】
この判定に基づいて、サーバ３０は、例えば以下の（１）〜（４）に示す対応を行う。
（１）ノード２に対してのみデータの再送を要求する。
（２）ノード２に対してエラーの原因を探る。
（３）ノード２は子ノードを持たないようにネットワークの構成を変化させる。
（４）ノード２のタグをパリティタグの生成に加えないように制御する。
【００６２】
本実施形態のメッセージ認証システムは、すべてのノードのタグをそのまま送信する一般的な方法と比較して、タグの通信量を削減することが可能となる。例えば図１１において、ノード６，ノード１のタグの送信データ量は、一般的な方式を用いた場合、タグの個数としてそれぞれ６，１２になる。一方、本実施形態のメッセージ認証システムは、一定数（＝パリティタグのサイズＤ）で抑えることができる。また、図１１においてＤ＝３の場合には、本実施形態のメッセージ認証システムによってタグの送信データ量がノード６、ノード１の場合１／２，１／４となる。一方、Ｄ＝３のＲｅｅｄ−Ｓｏｌｏｍｏｎ符号を用いた場合にはネットワーク内で１個のノードのデータに対して改ざんまたは秘密鍵のエラーなどが発生した場合には復号結果から対応するノードを特定することできる。
【００６３】
以上のように、本実施形態のメッセージ認証システムは、改ざんや秘密鍵の不一致等によるエラーがあった場合にそのエラーの原因となるノードを特定する機能を維持しつつ、マルチホップネットワークのメッセージ認証のタグの送信データ量を削減できる。
【００６４】
図９は、本発明によるメッセージ認証システムの主要部の構成を示すブロック図である。図９に示すように、本発明によるメッセージ認証システムは、マルチホップネットワークに用いられ、サーバ３０と当該サーバ３０にデータを送信する複数のノード１とを備えたメッセージ認証システムであって、ノード１は、サーバと共有する秘密鍵を用いてデータに対応したメッセージ認証子であるタグを計算するタグ生成部９０２と、タグを用いて誤り訂正符号として算出されるパリティにより構成されるパリティタグを生成するパリティタグ生成部９０１とを備え、ノード１は、当該ノード１および当該ノード１の子ノードが作成したタグに対応したパリティタグを生成しデータとともに親ノードまたは前記サーバへ送信する。
【００６５】
また、上記の実施形態には、以下の（１）〜（６）に示すメッセージ認証システムも開示されている。
【００６６】
（１）マルチホップネットワークに用いられ、サーバ３０と当該サーバ３０にデータを送信する複数のノード（例えば、ノード１〜６）とを備えたメッセージ認証システムであって、ノードは、サーバ（例えば、サーバ３０）と共有する秘密鍵を用いてデータに対応したメッセージ認証子であるタグを計算するタグ生成手段（例えば、タグ生成手段４０２）と、タグを用いて誤り訂正符号として算出されるパリティにより構成されるパリティタグを生成するパリティタグ生成手段（例えば、パリティタグ生成手段４０１）とを備え、ノードは、ノード（例えば、ノード２）および当該ノードの子ノード（例えば、ノード３、ノード４、ノード５）が作成したタグに対応したパリティタグを生成しデータとともに親ノード（例えば、ノード１）または前記サーバへ送信するメッセージ認証システム。
【００６７】
（２）メッセージ認証システムは、パリティタグ生成手段が、子ノードのパリティタグを入力し、巡回符号の符号化処理またはシンドローム生成処理を利用してパリティタグを生成するように構成されていてもよい。
【００６８】
（３）メッセージ認証システムは、ノードが、パリティタグ生成の対象となるタグの個数が、誤り訂正符号のパリティシンボル数以下の場合、ノードおよびノードの子ノードが作成したタグをパリティタグの代わりに送信するように構成されていてもよい。このようなメッセージ認証システムによれば、ノードの数が少ない場合の通信量の増加を抑えることができる。
【００６９】
（４）メッセージ認証システムは、パリティタグ生成手段が、一つのパリティタグ生成の対象となるタグの個数が誤り訂正符号の情報長の最大値以下になるようにパリティタグを生成するように構成されていてもよい。
【００７０】
（５）メッセージ認証システムは、サーバが、各ノードと共有する秘密鍵を用いて、受信したデータに対応したメッセージ認証子であるタグを計算するタグ生成手段と、受信したパリティタグとタグを用いて誤り訂正符号の復号処理を実行する復号手段と、復号手段がエラーと判定したタグに対応するノードを特定する判定手段とを備えるように構成されていてもよい。
【００７１】
（６）メッセージ認証システムは、サーバが、ノード数に応じて誤り訂正符号のパリティシンボル数を決定し、ノードに通知するように構成されていてもよい。
【００７２】
この出願は、２０１２年１１月１３日に出願された日本出願特願２０１２−２４９５５９を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【００７３】
以上、実施形態（及び実施例）を参照して本願発明を説明したが、本願発明は上記実施形態（及び実施例）に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用の可能性】
【００７４】
本発明はセンサなどで構成されるマルチホップネットワークに適用することができる。
【符号の説明】
【００７５】
１〜６  ノード
３０  サーバ
４０１  パリティタグ生成手段
４０２，８０２  タグ生成手段
４０３  データメモリ
４０４，８０４  受信処理手段
４０５  送信処理手段
８０１  復号手段
８０３  鍵メモリ
８０５  判定手段
９０１  パリティタグ生成部
９０２  タグ生成部
【図１】
2014076911.tif 000003
【図２】
2014076911.tif 000004
【図３】
2014076911.tif 000005
【図４】
2014076911.tif 000006
【図５】
2014076911.tif 000007
【図６】
2014076911.tif 000008
【図７】
2014076911.tif 000009
【図８】
2014076911.tif 000010
【図９】
2014076911.tif 000011
【図１０】
2014076911.tif 000012
【図１１】
2014076911.tif 000013
【図１２】
2014076911.tif 000014
【国際調査報告】
2014076911.tif 000015
2014076911.tif 000016
2014076911.tif 000017
2014076911.tif 000018