(57)【要約】  通信装置（１）は、ハッシュ計算部（１３）と、演算結果比較部（１４）とを有する。ハッシュ計算部（１３）は、固有の鍵を用いてデータイメージに対する鍵付きハッシュ値としてメッセージ認証コードを算出する。通信装置は、メッセージを受信すると、鍵付きハッシュ値を含む受信確認メッセージを通信装置（１）に返す。通信装置（１）は、演算結果比較部（１４）で、受信した集約されたメッセージ認証コードがデータイメージを元に自身で算出したメッセージ認証コードと同じであるかを比較して、検証を行う。
2010032391.tif 000002
【特許請求の範囲】
【請求項１】
送信側の通信装置と、前記通信装置とネットワークを介して接続された受信又は転送側の通信装置とを備え、完全性を保証するための通信システムであって、
前記送信側の通信装置は、
データイメージを送信する手段と、
一連の鍵をそれぞれ前記受信又は転送側の通信装置と共有し、送信データイメージに対するメッセージ認証コードを生成するための鍵を格納する手段と、
前記格納した鍵を用いて送信データイメージに対するメッセージ認証コードを生成する手段と、
前記ネットワークからの再構成データイメージに対するメッセージ認証コードを受信する手段と、
前記受信した再構成データイメージに対するメッセージ認証コードが前記生成した送信データイメージに対するメッセージ認証コードと同じであるかを比較することによってメッセージ認証コードを検証する手段とを備え、
前記受信又は転送側の通信装置は、
前記送信側の通信装置と共有し、再構成データイメージに対するメッセージ認証コードを生成するための鍵を格納する手段と、
前記ネットワークからのパケットを受信する手段と、
前記受信したパケットに基づきデータイメージを再構成する手段と、
前記格納した鍵を用いて再構成データイメージに対するメッセージ認証コードを生成する手段と、
前記ネットワークへ前記生成した再構成データイメージに対するメッセージ認証コードを送信する手段と、
を備える通信システム。
【請求項２】
前記受信又は転送側の通信装置は、
前記ネットワークからの再構成データイメージに対するメッセージ認証コードを受信する手段と、
前記受信した再構成データイメージに対するメッセージ認証コードと生成した再構成データイメージに対するメッセージ認証コードとの集約演算を行うデータ集約演算手段とを備え、
前記再構成データイメージに対するメッセージ認証コードを送信する手段は、前記データ集約演算手段によって算出された値を再構成データイメージに対するメッセージ認証コードとして送信することを特徴とし、
前記送信側の通信装置は、さらに、
前記送信データイメージに対するメッセージ認証コードの集約演算を行う基準データ集約演算手段と、
前記受信した再構成データイメージに対するメッセージ認証コードの集約演算を行う受信データ集約演算手段とを備え、
前記送信データイメージに対するメッセージ認証コードを生成する手段は、前記受信又は転送側の通信装置それぞれに対応する前記格納された鍵を用いて、それぞれの送信データイメージに対するメッセージ認証コードを生成し、
前記基準データ集約演算手段は、前記生成した送信データイメージに対するメッセージ認証コード全てを入力として送信データイメージに対するメッセージ認証コードの集約演算を行い、
前記メッセージ認証コードを検証する手段は、前記受信した１又は１以上の再構成データイメージに対するメッセージ認証コードを入力とした前記受信データ集約演算手段による算出結果が、前記生成した送信データイメージに対するメッセージ認証コード全てを入力とした前記基準データ集約演算手段による算出結果と同じであるかを比較することによってメッセージ認証コードを検証する請求項１に記載の通信システム。
【請求項３】
前記データ集約演算手段、前記基準データ集約演算手段、及び前記受信データ集約演算手段は、ＸＯＲ（排他的論理和）演算である請求項２に記載の通信システム。
【請求項４】
前記送信データイメージに対するメッセージ認証コードを生成する手段は、事前に１又は１以上の全ての送信データイメージに対するメッセージ認証コードを生成し、
前記基準データ集約演算手段は、前記生成した送信データイメージに対するメッセージ認証コードを入力とした集約演算処理を前記再構成データイメージに対するメッセージ認証コードを受信する前に実施する請求項２又は３に記載の通信システム。
【請求項５】
前記ネットワークは、無線通信路である請求項１乃至４の何れかに記載の通信システム。
【請求項６】
データイメージを送信する手段と、
一連の鍵をそれぞれ受信又は転送側の通信装置と共有し、送信データイメージに対するメッセージ認証コードを生成するための鍵を格納する手段と、
前記格納した鍵を用いて送信データイメージに対するメッセージ認証コードを生成する手段と、
ネットワークからの再構成データイメージに対するメッセージ認証コードを受信する手段と、
前記受信した再構成データイメージに対するメッセージ認証コードが前記生成した送信データイメージに対するメッセージ認証コードと同じであるかを比較することによってメッセージ認証コードを検証する手段と、
を備える送信側の通信装置。
【請求項７】
前記送信データイメージに対するメッセージ認証コードの集約演算を行う基準データ集約演算手段と、
前記受信した再構成データイメージに対するメッセージ認証コードの集約演算を行う受信データ集約演算手段とを備え、
前記送信データイメージに対するメッセージ認証コードを生成する手段は、前記受信又は転送側の通信装置それぞれに対応する前記格納された鍵を用いて、それぞれの送信データイメージに対するメッセージ認証コードを生成し、
前記基準データ集約演算手段は、前記生成した送信データイメージに対するメッセージ認証コード全てを入力として送信データイメージに対するメッセージ認証コードの集約演算を行い、
前記メッセージ認証コードを検証する手段は、前記受信した１又は１以上の再構成データイメージに対するメッセージ認証コードを入力とした前記受信データ集約演算手段による算出結果が、前記生成した送信データイメージに対するメッセージ認証コード全てを入力とした前記基準データ集約演算手段による算出結果と同じであるかを比較することによってメッセージ認証コードを検証する請求項６に記載の送信側の通信装置。
【請求項８】
前記データ集約演算手段、前記基準データ集約演算手段は、ＸＯＲ（排他的論理和）演算である請求項７に記載の送信側の通信装置。
【請求項９】
前記送信データイメージに対するメッセージ認証コードを生成する手段は、事前に１又は１以上の全ての送信データイメージに対するメッセージ認証コードを生成し、
前記基準データ集約演算手段は、前記生成した送信データイメージに対するメッセージ認証コードを入力とした集約演算処理を、前記再構成データイメージに対するメッセージ認証コードを受信する前に実施する請求項７又は８に記載の送信側の通信装置。
【請求項１０】
送信側の通信装置と共有し、再構成データイメージに対するメッセージ認証コードを生成するための鍵を格納する手段と、
ネットワークからのパケットを受信する手段と、
前記受信したパケットに基づきデータイメージを再構成する手段と、
前記格納した鍵を用いて再構成データイメージに対するメッセージ認証コードを生成する手段と、
前記ネットワークへ前記生成した再構成データイメージに対するメッセージ認証コードを送信する手段と、
を備える受信又は転送側の通信装置。
【請求項１１】
前記ネットワークからの再構成データイメージに対するメッセージ認証コードを受信する手段と、
前記受信した再構成データイメージに対するメッセージ認証コードと生成した再構成データイメージに対するメッセージ認証コードとの集約演算を行うデータ集約演算手段とを備え、
前記再構成データイメージに対するメッセージ認証コードを送信する手段は、前記データ集約演算手段によって算出された値を再構成データイメージに対するメッセージ認証コードとして送信する請求項１０に記載の受信又は転送側の通信装置。
【請求項１２】
前記データ集約演算手段は、ＸＯＲ（排他的論理和）演算である請求項１１に記載の受信又は転送側の通信装置。
【請求項１３】
送信側では、データイメージを送信し、
一連の鍵をそれぞれ受信又は転送側の通信装置と共有し、送信データイメージに対するメッセージ認証コードを生成するための鍵を格納しておき、
前記格納した鍵を用いて前記送信データイメージに対するメッセージ認証コードを生成し、
ネットワークからの再構成データイメージに対するメッセージ認証コードを受信すると、前記受信した再構成データイメージに対するメッセージ認証コードが前記生成した送信データイメージに対するメッセージ認証コードと同じであるかを比較することによってメッセージ認証コードを検証し、
受信又は転送側では、前記送信側の通信装置と共有し、再構成データイメージに対するメッセージ認証コードを生成するための鍵を格納しておき、
前記ネットワークからのパケットを受信すると、
前記受信したパケットに基づきデータイメージを再構成し、
前記格納した鍵を用いて再構成データイメージに対するメッセージ認証コードを生成し、
前記ネットワークへ前記生成した再構成データイメージに対するメッセージ認証コードを送信するデータ通信方法。
【請求項１４】
受信又は転送側では、
前記ネットワークからの再構成データイメージに対するメッセージ認証コードを受信すると、前記受信した再構成データイメージに対するメッセージ認証コードと生成した再構成データイメージに対するメッセージ認証コードを集約演算し、
前記集約演算によって算出された値を再構成データイメージに対するメッセージ認証コードとして送信し、
送信側では、
前記受信又は転送側の通信装置それぞれに対応する前記格納された鍵を用いて、それぞれの送信データイメージに対するメッセージ認証コードを生成し、前記生成した送信データイメージに対するメッセージ認証コード全てを入力とした送信データイメージに対するメッセージ認証コードの集約演算を行うと共に、
受信した１又は１以上の再構成データイメージに対するメッセージ認証コードを入力とした再構成データイメージに対するメッセージ認証コードの集約演算を行い、
前記受信した１又は１以上の再構成データイメージに対するメッセージ認証コードを入力とした前記集約演算による算出結果が、前記生成した送信データイメージに対するメッセージ認証コード全てを入力とした集約算出結果と同じであるかを比較することによってメッセージ認証コードを検証する請求項１３に記載のデータ通信方法。
【請求項１５】
前記集約演算は、ＸＯＲ（排他的論理和）演算である請求項１４に記載のデータ通信方法。
【請求項１６】
前記送信データイメージに対するメッセージ認証コードの生成は、事前に１又は１以上の全ての送信データイメージに対するメッセージ認証コードを生成し、
前記送信データイメージに対するメッセージ認証コード全てを入力とした送信データイメージに対するメッセージ認証コードの集約演算は、前記生成した送信データイメージに対するメッセージ認証コードを入力とした集約演算処理を前記再構成データイメージに対するメッセージ認証コードを受信する前に実施する請求項１４又は１５に記載のデータ通信方法。
【請求項１７】
前記ネットワークは、無線通信路である請求項１３乃至１６の何れかに記載のデータ通信方法。
【請求項１８】
請求項１３乃至１６の何れかに記載のデータ通信方法の機能を実現するためのデータ通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介した主にプログラムイメージ更新のためのプログラムイメージの完全性を検証するための通信システム、送信側及び受信又は転送側の通信装置、データ通信方式、データ通信プログラムに関する。
本願は、２００８年９月１９日に、日本に出願された特願２００８−２４１４２９号に基づき優先権を主張し、その内容をここに援用する。
【背景技術】
【０００２】
近年、ＩＥＥＥ８０２．１５．４やＺｉｇＢｅｅに代表される無線通信プロトコルを用いたワイヤレスセンサーネットワーク（Ｗｉｒｅｌｅｓｓ Ｓｅｎｓｏｒ Ｎｅｔｗｏｒｋ、以後ＷＳＮ）分野の急速な進展を受けて、一旦展開されたセンサーノードのプログラムイメージをネットワークを介して更新する手法の重要性が増してきている。このようなネットワークを介したプログラムイメージの更新においては、ネットワーク経路上でプログラムイメージが改ざんされる可能性があるため、オリジナルから変更されていないことを保証するための完全性の検証が重要な課題となる。【０００３】
プログラムイメージの更新は、ベースステーションと呼ばれるプログラムイメージをセンサーノードに対し配布する装置にプログラムイメージがセットされることから始まり、そこでネットワーク上で展開するのに適したサイズに分割される。適切なサイズに分割したのち、センサーノードにそれぞれ展開される。センサーノードは、たとえばツリー構造などマルチホップで構成される場合、プログラムイメージを受信したセンサーノードが次のホップのセンサーノードに転送することで届けられる。【０００４】
このとき、もし途中のセンサーノードがプログラムイメージを改ざんすると、改ざんされたプログラムイメージを受信したそれ以降のセンサーノードが正しい動作をすることは期待できず、このようにプログラムイメージの完全性の検証が重要な課題となっている。【０００５】
従来、この種の検出手法は、たとえば非特許文献１に示されるように、公開鍵暗号方式に基づく方法が示されている。この手法では、ベースステーションはプログラムイメージを分割する段階で次のように処理することで実現される。まず、分割したプログラムイメージのそれぞれをパケットと表現すると、最後のパケットのハッシュ値を算出し一つ前のパケットに付与する。同様にそのパケットのハッシュ値を算出しさらにその一つ前のパケットに付与する。以後、同様に先頭のパケットに至るまで同様に繰り返す（ハッシュチェーン）。最後に先頭のパケットをベースステーションが保持する秘密鍵で署名する。このようにして、受信者は先頭のパケットを公開鍵で検証することでそのパケットの確からしさを確かめ、以後のパケットの正当性についてはハッシュチェーンを検証することで確かめられる（非特許文献１参照）。【０００６】
しかし、ＷＳＮはＰＣに比較して処理速度が十分ではないＣＰＵ（中央処理演算装置）や制限されたメモリを備える装置で構成される。例えば、それらは８ビットのマイコンで１２８Ｋバイトのフラッシュメモリや４ＫバイトのＳＲＡＭ、ＥＥＰＲＯＭなどを備える。それらの装置上で公開鍵暗号方式を用いた場合、計算時間を要するという問題と鍵を格納するために多くのメモリを消費するという問題がある。【０００７】
一方、非特許文献２に示されるように、ＷＳＮを構成する装置のリソース制限を想定して共通鍵暗号方式を用いた方式が示されている。この手法では、ベースステーションはプログラムイメージを分割する段階で次のように処理することで実現される。まず、一方向鍵チェーンを生成する。この鍵チェーンは最初に決めた鍵をベースに鍵のハッシュ値を算出しそれが次の鍵となる。これを繰り返し行っていくことで鍵のチェーンが生成できる。この鍵チェーンを最後に生成された鍵から利用していき、分割されたパケットのハッシュ値を算出する時に用いられる。各パケットにこの算出されたハッシュ値と算出に用いた鍵を付与し、センサーノードへ展開される。【０００８】
このパケットを受信したセンサーノードは付与された鍵を用いてハッシュ値を算出し、パケットの確からしさを検証する。それと共に、鍵自体のハッシュ値を算出し、ハッシュ値が前の鍵と同一かどうかを検証することで鍵自体の確からしさも検証することができる。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】Prabal K. Dutta and Jonathan W. Hui and David C. Chu and David E. Culler, "Securing the Deluge network programming system", In Proceedings of the Fifth International Conference on Information Processing in Sensor Networks (IPSN), 2006, pages 326-333, ACM
【非特許文献２】Hailun Tan, Sanjay Jha, Diethelm Ostry, John Zic, and VijaySivaraman, "Secure multi-hop network programming with multiple one-way hash chains", In WiSec '08: ACM Conference on Wireless Network Security, 2008, ACM
【発明の概要】
【発明が解決しようとする課題】
【００１０】
リソースが制限された装置で効率的な検証方式を実現するためには、非特許文献２に示すように計算量ができるだけ少ない方式をベースとしながらも安全性を保証する必要がある。しかし、非特許文献２に示す方式では、センサーノードが特定のパケットを受信する前に、別のセンサーノードが受信した同じパケットから鍵を先に取得し、その取得した正当な鍵を使って改ざんしたパケットに対してハッシュ値を付与した場合、改ざんされたパケットを受信したセンサーノードは正当な鍵が使われていることからその改ざんされたパケットを正しいものとして受け入れてしまうという課題がある。【００１１】
第１の問題点は、正当な鍵を使って改ざんされたパケットを受け入れてしまうことにより、不正なプログラムイメージを取得してしまうことである。その理由は、一連のプログラムイメージを送信した後に、プログラムイメージの完全性を検証する仕組みが考慮されていないためである。【００１２】
そこで、本発明の目的は、公開鍵暗号方式より演算処理量が少ない共通鍵暗号方式を用いてプログラムイメージの確からしさを検証する方法を提供することである。
【課題を解決するための手段】
【００１３】
かかる目的を達成するために、本発明は、送信側の通信装置と、前記通信装置とネットワークを介して接続された受信又は転送側の通信装置とを備え、完全性を保証するための通信システムであって、前記送信側の通信装置は、データイメージを送信する手段と、一連の鍵をそれぞれ前記受信又は転送側の通信装置と共有し、送信データイメージに対するメッセージ認証コードを生成するための鍵を格納する手段と、前記格納した鍵を用いて送信データイメージに対するメッセージ認証コードを生成する手段と、前記ネットワークからの再構成データイメージに対するメッセージ認証コードを受信する手段と、前記受信した再構成データイメージに対するメッセージ認証コードが前記生成した送信データイメージに対するメッセージ認証コードと同じであるかを比較することによってメッセージ認証コードを検証する手段とを備え、前記受信又は転送側の通信装置は、前記送信側の通信装置と共有し、再構成データイメージに対するメッセージ認証コードを生成するための鍵を格納する手段と、前記ネットワークからのパケットを受信する手段と、前記受信したパケットに基づきデータイメージを再構成する手段と、前記格納した鍵を用いて再構成データイメージに対するメッセージ認証コードを生成する手段と、前記ネットワークへ前記生成した再構成データイメージに対するメッセージ認証コードを送信する手段と、を備える通信システムである。【００１４】
また、本発明は、データイメージを送信する手段と、一連の鍵をそれぞれ受信又は転送側の通信装置と共有し、送信データイメージに対するメッセージ認証コードを生成するための鍵を格納する手段と、前記格納した鍵を用いて送信データイメージに対するメッセージ認証コードを生成する手段と、ネットワークからの再構成データイメージに対するメッセージ認証コードを受信する手段と、前記受信した再構成データイメージに対するメッセージ認証コードが前記生成した送信データイメージに対するメッセージ認証コードと同じであるかを比較することによってメッセージ認証コードを検証する手段と、を備える送信側の通信装置である。【００１５】
また、本発明は、送信側の通信装置と共有し、再構成データイメージに対するメッセージ認証コードを生成するための鍵を格納する手段と、ネットワークからのパケットを受信する手段と、前記受信したパケットに基づきデータイメージを再構成する手段と、前記格納した鍵を用いて再構成データイメージに対するメッセージ認証コードを生成する手段と、前記ネットワークへ前記生成した再構成データイメージに対するメッセージ認証コードを送信する手段と、を備える受信又は転送側の通信装置である。【００１６】
また、本発明は、送信側では、データイメージを送信し、一連の鍵をそれぞれ受信又は転送側の通信装置と共有し、送信データイメージに対するメッセージ認証コードを生成するための鍵を格納しておき、前記格納した鍵を用いて前記送信データイメージに対するメッセージ認証コードを生成し、ネットワークからの再構成データイメージに対するメッセージ認証コードを受信すると、前記受信した再構成データイメージに対するメッセージ認証コードが前記生成した送信データイメージに対するメッセージ認証コードと同じであるかを比較することによってメッセージ認証コードを検証し、受信又は転送側では、前記送信側の通信装置と共有し、再構成データイメージに対するメッセージ認証コードを生成するための鍵を格納しておき、前記ネットワークからのパケットを受信すると、前記受信したパケットに基づきデータイメージを再構成し、前記格納した鍵を用いて再構成データイメージに対するメッセージ認証コードを生成し、前記ネットワークへ前記生成した再構成データイメージに対するメッセージ認証コードを送信するデータ通信方法である。【００１７】
また、本発明は、上記データ通信方法の機能を実現するためのデータ通信プログラムである。
【発明の効果】
【００１８】
本発明によれば、共通鍵暗号方式をベースとし、通信装置固有の鍵を用いて受信したデータイメージに対するハッシュ値を送信元の通信装置へ返信することで送信されたデータイメージの完全性を検証できる。したがって、ＣＰＵやメモリリソースが制限された装置での実施が容易ではない公開鍵暗号方式のような方式を利用することなく通信装置へ送信されたデータイメージの正当性を送信元で検証できる。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施形態の通信システムの構成を示すブロック図である。
【図２】本発明の第１の実施形態の通信装置の構成を示すブロック図である。
【図３】本発明の第１の実施形態の通信装置の構成を示すブロック図である。
【図４】本発明の第１の実施形態の通信装置の動作を示すフローチャートである。
【図５】本発明の第１の実施形態の通信装置の動作を示すフローチャートである。
【図６】本発明の第１の実施形態の通信システムの構成を示すブロック図である。
【図７】本発明の本発明の第２の実施形態の通信装置の構成を示すブロック図である。
【図８】本発明の本発明の第２の実施形態の通信装置の構成を示すブロック図である。
【発明を実施するための形態】
【００２０】
次に、本発明の実施形態について図面を参照して詳細に説明する。尚、ここで示す実施の形態はあくまでも一例であって、必ずしもこの実施形態に限定されるものではない。
（第１の実施形態）
【００２１】
図１は、本発明を実施するための第１の実施形態である通信システムの構成を示す図である。
【００２２】
図１を参照すると、本発明の第１の実施形態である通信システムは、通信装置１〜７と、それらをＬＡＮ（Ｌｏｃａｌ Ａｒｅａ Ｎｅｔｗｏｒｋ）回線またはＷＡＮ（Ｗｉｄｅ Ａｒｅａ Ｎｅｔｗｏｒｋ）回線などを結ぶネットワーク１０とから構成されている。尚、ネットワーク１０は、有線であってもよいし、無線であってもかまわない。
【００２３】
通信装置１〜７は、有線もしくは無線を用いて通信を行う装置であり、一般的にはノートＰＣ、携帯端末のような端末装置である。特に、通信装置２〜７はセンサーデバイスのような限定された処理能力、メモリおよび通信能力で構成される小型デバイスであってもよい。
【００２４】
通信装置２〜７は、受信したパケットを次の通信装置へ転送する構成であってもよい。例えば、通信装置２は通信装置１からパケットを受信すると、通信装置４及び通信装置５へパケットを転送する。同様に、通信装置３は通信装置６及び通信装置７へ転送する。なお、図示せぬ通信装置へ転送することも容易に想定できる。
【００２５】
また、通信装置２〜７は、一連のデータイメージを受信すると、そのデータイメージに対するメッセージ認証コード（ＭＡＣ：Ｍｅｓｓａｇｅ Ａｕｔｈｅｎｔｉｃａｔｉｏｎ Ｃｏｄｅ）を含む受信確認メッセージを通信装置１へ返信する。このとき、前述のパケットの転送と逆のルートをとり、たとえば通信装置４は受信確認メッセージを通信装置２へ、通信装置２は通信装置１へという流れとなる。
【００２６】
図２に、本発明における通信装置１の構成を示す。通信装置１は、鍵格納部１１、データイメージ入力部１２、ハッシュ計算部１３、演算結果比較部１４、ネットワーク通信部１５、送信パケット生成部１６を含む。
【００２７】
鍵格納部１１は、一連の鍵を格納しており、各鍵はそれぞれネットワークを構成する通信装置と対応づけられている。例えば、図１で示すネットワーク１０を構成する通信装置で、通信装置１を除く通信装置２〜７に対応する６つの鍵である。ここに示す鍵は、事前に設定されていてもよいし、動的に設定されてもよい。ここでは詳細については記述しない。
【００２８】
データイメージ入力部１２は、通信装置１が通信装置２〜７に対して送信するデータイメージの通信装置１における入力部である。このデータイメージは例えばアプリケーションやプログラムイメージであり、通信装置２〜７上で動作するプログラムコードである。
【００２９】
ハッシュ計算部１３は、セキュアハッシュアルゴリズムに基づく鍵付きハッシュ値を計算する機能である。データイメージ入力部１２からのデータ入力値、及び鍵格納部１１に格納されている鍵を入力として鍵付きハッシュ値を計算する。具体的には、ハッシュ計算部１３は、ＳＨＡ−１やＭＤ５、ＨＭＡＣなどである。算出された値は、演算結果比較部１４へ通知される。
【００３０】
演算結果比較部１４は、通信装置１で算出した値とネットワーク１０を構成する通信装置から受信した受信確認メッセージに含まれるメッセージ認証コードを比較し、各通信装置へ送付されたデータイメージの完全性を検証する機能である。演算結果比較部１４は、ハッシュ計算部１３で算出した値とネットワーク１０を構成する通信装置からネットワーク通信部１５を介して受信したメッセージ認証コードを比較し、それらの値が同一である場合は各通信装置へ送付されたデータイメージが正しいと判定し、それらの値が異なる場合は該当の受信確認メッセージを送信した通信装置に送付されたデータイメージは正しくないと判定する。
【００３１】
ネットワーク通信部１５は、他の通信装置と有線もしくは無線を使って通信する機能であり、本形態ではこれはＩＥＥＥ ８０２．１５．４送受信機である。
【００３２】
送信パケット生成部１６は、データイメージ入力部１２から入力されたデータイメージをネットワーク１０を介して送信するために適したサイズに分割した後、ネットワーク通信部１５を介して送信する機能を備える。
【００３３】
図３に、本発明における通信装置２の構成を示す。通信装置２は、鍵格納部２１、データイメージ再構成部２２、ハッシュ計算部２３、パケット受信部２４、ネットワーク通信部２５を含む。
【００３４】
鍵格納部２１は、受信したデータイメージに対する受信確認メッセージを生成するのに使用する鍵を格納する。この鍵は通信装置１と事前に共有され、通信装置毎に異なる鍵である。なお、鍵の事前配布方法についてはここでは範囲外とする。
【００３５】
データイメージ再構成部２２は、受信したパケットを集め、データイメージとして再構成する機能である。ここで再構成されたデータイメージが、アプリケーションやプログラムイメージとして通信装置２にインストールされる。
【００３６】
ハッシュ計算部２３は、通信装置１でのハッシュ計算部１３と同様に、セキュアハッシュアルゴリズムに基づく鍵付きハッシュ値を計算する機能である。データイメージ再構成部２２からのデータ入力値、及び鍵格納部２１からの鍵を入力とし鍵付きハッシュ値を計算する。具体的には、ハッシュ計算部２３は、ＳＨＡ−１やＭＤ５、ＨＭＡＣなどである。
【００３７】
パケット受信部２４は、受信したパケットからデータイメージを構成するデータを取り出し、データイメージ再構成部２２へ渡す機能である。
【００３８】
ネットワーク通信部２５は、通信装置１でのネットワーク通信部１５と同様に、他の通信装置と有線もしくは無線を使って通信する機能であり、本実施形態ではＩＥＥＥ ８０２．１５．４送受信機である。
【００３９】
次に、本発明の第１の実施形態の動作について詳細に説明する。図４に、通信装置２での受信確認メッセージを送信する時の流れと、図５に、通信装置１での受信確認メッセージを受信した時の流れについて説明する。
【００４０】
まず、通信装置１の送信パケット生成部１６は、データイメージ入力部１２から入力されたデータイメージを送信するパケット毎に分割する。分割した各パケットをネットワーク通信部１５を介して、ネットワーク１０に接続された通信装置２〜７に対して順番に送信する。
【００４１】
次に、図４を参照して通信装置２での通信装置１から送信されたパケットを受信し、受信確認メッセージを送信する流れについて説明する。
【００４２】
通信装置２は、通信装置１からのパケットを受信すると（ステップＡ１）、データイメージを構成するために図示せぬ通信装置２のメモリに格納する。具体的には、通信装置２のネットワーク通信部２５を介してパケットを取得したパケット受信部２４は、パケットからデータイメージを構成するデータを取り出しデータイメージ再構成部２２へ通知する。以降、パケットを受信する毎に同様の動作を行う。
【００４３】
データイメージ再構成部２２は、パケット受信部２４から取得したデータを格納し、データイメージを再構成する。データイメージの再構成が完了するまではパケットの受信を継続する（ステップＡ２からＡ１）。
【００４４】
データイメージの再構成が完了すると（ステップＡ２）、再構成されたデータイメージに対する鍵付きハッシュ値を計算する。具体的には、ハッシュ計算部２３は、鍵格納部２１から通信装置１と共有している通信装置２固有の鍵を取得し（ステップＡ３）、データイメージ全体に対して前記取得した鍵を用いて鍵付きハッシュ値を計算する（ステップＡ４）。ここで、例えばハッシュアルゴリズムとしてはＳＨＡ−１を利用したＨＭＡＣ−ＳＨＡ−１であって、通信装置は６４バイト長以上の鍵を保有し、アウトプットされるハッシュ値は２０バイト長である。ただし、鍵長及びハッシュ値の長さはこれに限定するわけではなく、これと異なっていてもよいが入力する鍵長はアウトプットされるハッシュ値の長さよりも長いことが望ましい。
【００４５】
通信装置２は、算出した鍵付きハッシュ値を含む受信確認メッセージを通信装置１へ送信する（ステップＡ５）。
【００４６】
次に、図５を参照して通信装置１での通信装置２から送信された受信確認メッセージを受信する流れについて説明する。
【００４７】
通信装置１は、通信装置２からの受信確認メッセージを受信すると（ステップＢ１）、通信装置１で算出したデータイメージに対するハッシュ値との比較を行う（ステップＢ２）。具体的には、通信装置１のハッシュ計算部１３は、通信装置２と共有している鍵を鍵格納部１１から取得し、その鍵を用いてすでに送信したデータイメージ入力部１２からのデータイメージ全体に対する鍵付きハッシュ値を算出する。演算結果比較部１４にて、通信装置１で算出したハッシュ値と、通信装置２からの受信確認メッセージに含まれるメッセージ認証コードとの比較を行う。ここでハッシュ計算部１３のハッシュアルゴリズムは通信装置２のハッシュ計算部２３でのハッシュアルゴリズムと同じアルゴリズムを用いる。
【００４８】
この時、通信装置１におけるハッシュ値の演算は、通信装置２からの受信確認メッセージを受信した時点で対応する鍵を用いて演算を行ってもよいし、受信確認メッセージを受信する前に予め対応する鍵を用いて演算を行っておいてもよく、どちらでも構わないが、予め演算しておいた方が処理時間を削減できるため望ましい。
【００４９】
なお、通信装置２からの受信確認メッセージには通信装置２からのものであることを識別するための情報が付与されており、受信した通信装置１はそれによってどの通信装置からのメッセージであるかを識別する。
【００５０】
通信装置１の演算結果比較部１４にて、通信装置１で算出したハッシュ値と、通信装置２から受信したハッシュ値の比較を行い（ステップＢ２）、それらの値が同一である場合は、通信装置２に送付されたデータイメージが改ざんされていないと判定する（ステップＢ３）。それらの値が同一ではない場合は、通信装置２に送付されたデータイメージが元のデータイメージとは異なり、改ざんされている可能性があると判定する（ステップＢ４）。
【００５１】
なお、通信装置１において、先に送付されたデータイメージが改ざんされている可能性があると判定した場合、再度データイメージの送付を行ってもよいし、データイメージの送付は行わずにネットワーク管理者に通知するようにしてもよい。
【００５２】
前述のデータイメージ受信における受信確認メッセージの送信及び確認の一連の動作は、通信装置１からのデータイメージの送信が実施される毎に行われる。
【００５３】
なお、ネットワーク１０は、有線であってもよいが、本発明の実施形態では無線通信、特にＩＥＥＥ８０２．１５．４やＺｉｇＢｅｅに代表される無線通信プロトコルの使用が適している。
【００５４】
また、通信装置３〜７も通信装置２と同様の動作を行うことで、通信装置１において各通信装置へ送付されたデータイメージが改ざんされていないかどうかを検証することができる点は通信装置２と同じである。この実施形態では、通信装置２、３は通信装置間のメッセージを中継する機能をそなえるが、それ以外は必ずしも必要ない。
【００５５】
次に、本発明の第１の実施形態の効果について説明する。この実施形態の第１の効果は、共通鍵暗号方式に基づく方式を用いた場合であってもデータイメージの完全性の検証を行うことができることである。これは、各通信装置固有の鍵を用いてハッシュ値を算出し、算出したハッシュ値をデータイメージの送信元である通信装置に返送することで、データイメージの改ざんを検証しているためである。
【００５６】
本発明の第１の実施形態の第２の効果は、データイメージの偽装が行われた場合にその偽装を検出することができるだけではなく、どの通信装置において偽装されたデータイメージを取得したかを検出することができることである。これは、通信装置固有の鍵を用いてハッシュ値を算出することで、ハッシュ値を算出した通信装置を識別できるようにしているためである。
（第２の実施形態）
【００５７】
次に、本発明の第２の実施形態について説明する。この第２の実施形態は、メッセージ認証コードを途中経路の通信装置が集約演算した後、集約演算結果のみを返答する点が第１の実施形態と異なる。第２の実施形態の通信システムは、図６に示すように、通信装置１０１〜１０７とネットワーク１１０とから構成されており、この構成は、前述の第１の実施形態と同様である。
【００５８】
具体的な通信装置１０１及び通信装置１０２の構成、動作について第１の実施形態と異なる部分についてのみ図７及び図８を用いて説明する。
【００５９】
図７を参照すると、通信装置１０１は、鍵格納部１１１、データイメージ入力部１１２、ハッシュ計算部１１３、演算結果比較部１１４、ネットワーク通信部１１５、送信パケット生成部１１６、基準データ集約演算部１１７、受信データ集約演算部１１８を含む。
【００６０】
鍵格納部１１１、データイメージ入力部１１２、ハッシュ計算部１１３、演算結果比較部１１４、ネットワーク通信部１１５、送信パケット生成部１１６は、それぞれ、第１の実施形態における鍵格納部１１、データイメージ入力部１２、ハッシュ計算部１３、演算結果比較部１４、ネットワーク通信部１５、送信パケット生成部１６と対応している。この実施形態における通信装置１０１は、基準データ集約演算部１１７と受信データ集約演算部１１８を備える点が第１の実施形態と異なり、それ以外は第１の実施形態と同じ構成となる。また、演算結果比較部１１４の動作が第１の実施形態と一部動作が異なる。
【００６１】
基準データ集約演算部１１７は、ハッシュ計算部１１３からの演算値を集約演算する機能である。例えば、自身の通信装置１０１を除くネットワーク１１０を構成する通信装置１０２〜１０７に対応する鍵それぞれを用いて算出された６つのハッシュ演算結果に対して、集約演算した結果を演算結果比較部１１４へ通知する。例えば、集約演算方法としてＸＯＲ（ｅＸｃｌｕｓｉｖｅ ＯＲ：排他的論理和）を用いるが、加算方式など別の演算方法を用いることも考えられる。
【００６２】
受信データ集約演算部１１８は、ネットワークを構成する通信装置からの受信データを集約演算する機能である。例えば、ネットワーク１１０を構成する通信装置から受信したデータに対して、集約演算方法としてＸＯＲを用いて演算した結果を演算結果比較部１１７へ通知する。なお、この時ネットワーク１１０を構成する通信装置からのメッセージ認証コードを個別に受信するとは限らず、途中経路で集約演算された結果を受信する。
【００６３】
演算結果比較部１１４は、通信装置１０１で算出した値とネットワーク１１０を構成する通信装置から受信した結果、集約されたメッセージ認証コードを比較し、各通信装置へ送付されたデータイメージの完全性を検証する機能である。演算結果比較部１１４は、基準データ集約演算部１１７と受信データ集約演算部１１８からの集約結果を比較し、それらの値が同一である場合は各通信装置へ送付されたデータイメージがすべて正しいと判定し、それらの値が異なる場合は各通信装置へ送付されたデータイメージのうち少なくともどれか一つは正しくないと判定する。
【００６４】
図８を参照すると、通信装置１０２は、鍵格納部１２１、データイメージ再構成部１２２、ハッシュ計算部１２３、パケット受信部１２４、ネットワーク通信部１２５、データ集約演算部１２６を含む。
【００６５】
通信装置１０２において、鍵格納部１２１、データイメージ再構成部１２２、ハッシュ計算部１２３、パケット受信部１２４、ネットワーク通信部１２５は、それぞれ第１の実施形態における鍵格納部２１、データイメージ再構成部２２、ハッシュ計算部２３、パケット受信部２４、ネットワーク通信部２５と対応している。この実施形態は、データ集約演算部１２６を備える点が第１の実施形態と異なり、それ以外は第１の実施形態と同じ構成となる。
【００６６】
データ集約演算部１２６は、１以上の受信したメッセージ認証コードと通信装置１０２で算出した自身のメッセージ認証コードを集約演算する機能を備える。より具体的には、通信装置１０４及び１０５から受信した２つのメッセージ認証コードと通信装置１０２で算出した自身のメッセージ認証コードを、集約演算方法としてＸＯＲを用いて演算した結果のみを通信装置１０１へ通知する機能を備える。
【００６７】
第１の実施形態での動作に対して、この実施形態の構成ではネットワーク１１０を構成する通信装置のうち一番末端に位置する通信装置１０４〜１０７の動作はメッセージ認証コードを通信装置１０２もしくは通信装置１０３へ通知する点で第１の実施形態と同様の動作となる。
【００６８】
一方、通信装置１０２もしくは１０３は、第１の実施形態では通信装置１０４、１０５もしくは通信装置１０６、１０７からのメッセージ認証コードを含む受信確認メッセージを単に通信装置１０１へ転送していたのに対して、この実施形態ではメッセージ認証コードを集約演算した後、集約演算した結果のみを含む受信確認メッセージとして通信装置１０１へ転送する点が第１の実施形態と異なる。
【００６９】
通信装置１０１は、第１の実施形態での動作では受信確認メッセージを受信する毎に、受信したメッセージに対応する通信装置に対する鍵を用いて自身で算出したハッシュ値と比較する動作を行っていたのに対して、ネットワーク１１０を構成する通信装置１０２〜１０７からの全てのメッセージ認証コードを集約演算した結果に対してのみ比較・検証を行う点が第１の実施形態と異なる。
【００７０】
より具体的には、通信装置１０１はまず送信したデータイメージに対して鍵格納部１１１に格納される通信装置１０２〜１０７に対応する分の鍵を用いてそれぞれのハッシュ値を算出する。つまり、通信装置１０２に対応する鍵を用いて算出したハッシュ値、通信装置１０３に対応するハッシュ値、と通信装置１０２〜１０７の６つのハッシュ値を算出する。
【００７１】
算出した６つのハッシュ値を、基準データ集約演算部１１７にて６つ全てのハッシュ値を集約演算として例えばＸＯＲ演算を実施する。この結果、一つの演算結果が得られる。この演算結果を受信データ集約演算部１１８での演算結果と比較することになる。
【００７２】
完全なデータイメージを受信すると、通信装置１０４はメッセージ認証コードを含む受信確認メッセージを通信装置１０２へ、通信装置１０５は同様に通信装置１０２へ、通信装置１０６及び１０７は通信装置１０３へと受信確認メッセージを送信する。
【００７３】
通信装置１０２は、通信装置１０４及び１０５から取得した受信確認メッセージに含まれるメッセージ認証コードと、通信装置１０２で算出したメッセージ認証コードの３つのメッセージ認証コードをデータ集約演算部１２６にて算出する。算出結果の集約されたメッセージ認証コードを含む受信確認メッセージを通信装置１０１へ送信する。同様に、通信装置１０３は、通信装置１０６及び１０７から取得した受信確認メッセージの処理を実施し、算出結果の集約されたメッセージ認証コードを含む受信確認メッセージを通信装置１０１へ送信する。
【００７４】
そして、通信装置１０１は、通信装置１０２及び１０３から受信した受信確認メッセージそれぞれに含まれる集約されたメッセージ認証コードを受信データ集約演算部１１８にてさらに集約演算としてＸＯＲ演算を実施し、最終的な集約演算結果として算出する。
【００７５】
ここで算出した最終的に集約されたメッセージ認証コードと、先に通信装置１０１にて算出した演算結果と比較することにより、それら同一である場合は通信装置１０２〜１０７へ送信されたデータイメージは改ざんされていないと判定し、それらが同一ではない場合は通信装置１０２〜１０７へ送信されたデータイメージのうち、少なくともどれか１以上は改ざんされた可能性があると判定する。
【００７６】
この実施形態では集約演算としてＸＯＲを用いていたが、それ以外の方法を用いてもよく、たとえば加算などが用いられてもよい。
【００７７】
次に、第２の実施形態の効果について説明する。この実施形態の効果は、ネットワークを構成する通信装置数が膨大であった場合でも送信されたデータイメージの完全性を検証できることである。これは、ハッシュ値を集約演算した後に通知することで、通信装置数が増えても通信オーバーヘッドを大幅に抑えることができるためである。
【産業上の利用可能性】
【００７８】
本発明によるプログラムイメージ更新のための完全性保証方式は、無線通信を用いたネットワークにおける安全なプログラムイメージの配布に有用である。特にＩＥＥＥ８０２．１５．４やＺｉｇＢｅｅに代表される無線通信プロトコルを用いたワイヤレスセンサーネットワーク分野でのＰＣに比べて能力が制限された装置において有効である。
【符号の説明】
【００７９】
１〜７、１０１〜１０７    通信装置
１０、１１０    ネットワーク
１１、１１１    鍵格納部
１２、１１２    データイメージ入力部
１３、２３、１１３、１２３    ハッシュ計算部
１４、１１４    演算結果比較部
１５、２５、１１５、１２５    ネットワーク通信部
１６、１１６    送信パケット生成部
１７、１１７    基準データ集約演算部
１８、１１８    受信データ集約演算部
２１、１２１    鍵格納部
２２、１２２    データイメージ再構成部
２３、１２３    ハッシュ計算部
２４、１２４    パケット受信部
２６、１２６    データ集約演算部
【図１】
2010032391.tif 000003
【図２】
2010032391.tif 000004
【図３】
2010032391.tif 000005
【図４】
2010032391.tif 000006
【図５】
2010032391.tif 000007
【図６】
2010032391.tif 000008
【図７】
2010032391.tif 000009
【図８】
2010032391.tif 000010
【国際調査報告】
2010032391.tif 000011
2010032391.tif 000012
2010032391.tif 000013
2010032391.tif 000014
2010032391.tif 000015
2010032391.tif 000016