(57)【要約】【課題】従来のセンサネットワークでは、サーバから複数のノードに対し、制御コマンド等を同報通信するようなケースも発生すると考えられる。通常の（暗号化の必要のない）メッセージであれば、同報通信メッセージをマルチキャスト的に伝送すればよいが、同報通信メッセージを暗号化したい場合、サーバは各ノードに対してユニキャスト的に通信を繰り返す必要が生じ、センサネットワークに流れる通信量及びサーバでの暗号化のための計算量が増大してしまう。【解決手段】本発明はこれを解決するために、サーバとノードとの間で共有される鍵を適切に構造化することにより、暗号化された同報通信メッセージのマルチキャストが効率的に行えるようにする方法を提供する。【選択図】図２
2008124884.tif 000002
【特許請求の範囲】
【請求項１】
サーバの存在するネットワークにおいて、サーバと、サーバ以外のノードとの間で共有する暗号鍵を構造化することにより、サーバからノードの集合への、暗号化された同報通信メッセージのマルチキャストが効率的に行えるようにする暗号鍵管理システム。
【請求項２】
請求項１に記載の暗号鍵管理システムにおいて、サーバ側に、ネットワークを構成するノードの集合をｎパターンのグループ、及び各グループをその構成要素であるノードの部分集合（サブグループ）に分割するグループ決定手段と、グループ決定手段によって決定されたｎパターンのグループから適当に１つずつ選択したｎ個のサブグループの積集合を求め、１つのノードを特定するノード特定手段と、ノード特定手段によって、ｎ個のサブグループの積で１つのノードを特定できる場合において、ノードに割り当てるアドレスを決定するノードアドレス決定手段と、１つに特定されるノードとサーバの間で保持する暗号鍵を決定する暗号鍵決定手段と、ノードの集合に割り当てるマルチキャストアドレスを決定するマルチキャストアドレス決定手段と、マルチキャストアドレス決定手段で決定されるアドレスで特定されるノードの集合だけが復号可能なように、マルチキャスト暗号通信を実施するマルチキャスト暗号情報送信手段とからなる構成を有することを特徴とする暗号鍵管理システム。
【請求項３】
請求項２に記載の暗号鍵管理システムにおいて、ノード側に、サーバによって割り当てられるノードアドレスを記憶するノードアドレス記憶手段と、同じくサーバによって割り当てられる暗号鍵を決定する情報を記憶する暗号鍵記憶手段と、マルチキャスト暗号情報受信手段とからなる構成を有することを特徴とする暗号鍵管理システム。
【請求項４】
請求項３に記載の暗号鍵管理システムにおいて、グループ決定手段は、ネットワークを構成するノードの集合をｎパターンのグループに分割し、この時ｍ（１≦ｍ≦ｎ）パターン目のグループＣ＿｛ｍ｝を、Ｃ＿｛ｍ｝＝（Ｓ＿｛ｍ、１｝、Ｓ＿｛ｍ、２｝、・・・、Ｓ＿｛ｍ、ｉ｝）として、ノードの部分集合であるサブグループの系列（ｉはグループの構成要素数を示す整数）として定義し、サブグループの和集合が全ノードの集合を表し、かつ１つのグループにおける任意のサブグループ同士の積集合が空集合になるように、グループを決定することを特徴とする暗号鍵管理システム。
【請求項５】
請求項４に記載の暗号鍵管理システムにおいて、ノード特定手段は、グループ決定手段によって決定されたｎパターンのグループＣ＿｛１｝・・・Ｃ＿｛ｎ｝の各パターンから、適当に１つずつ選択したｎ個のサブグループの積集合を求めたとき、いかなる場合にも、ノードが１つ決まるように各グループＣ＿｛１｝・・・Ｃ＿｛ｎ｝が決定されているかを確認し、決まらなければ、１つに決まるまで再度グループ決定手段を試行することを特徴とする暗号鍵管理システム。
【請求項６】
請求項５に記載の暗号鍵管理システムにおいて、ノードアドレス決定手段は、ノード特定手段によって、ｎ個のサブグループから必ず１つのノードを特定できる場合において、本特定のために、グループＣ＿｛ｍ｝（１≦ｍ≦ｎ）の何番目のサブグループを用いたかを意味する整数をａｄｄｒ（ｍ）と表現する時、ｎ個のサブグループＳ＿｛１、ａｄｄｒ（１）｝、Ｓ＿｛２、ａｄｄｒ（２）｝、・・・、Ｓ＿｛ｎ、ａｄｄｒ（ｎ）｝の積集合から１つのノードを特定できると表現でき、この時、（ａｄｄｒ（１）、ａｄｄｒ（２）、・・・、ａｄｄｒ（ｎ））のｎ次組を、ノードアドレスとして生成することを特徴とする暗号鍵管理システム。
【請求項７】
請求項６に記載の暗号鍵管理システムにおいて、暗号鍵決定手段は、ノードアドレス決定手段によって、アドレス（ａｄｄｒ（１）、ａｄｄｒ（２）、・・・、ａｄｄｒ（ｎ））のｎ次組によって、ｎ個のサブグループＳ＿｛１、ａｄｄｒ（１）｝、Ｓ＿｛２、ａｄｄｒ（２）｝、・・・、Ｓ＿｛ｎ、ａｄｄｒ（ｎ）｝の積集合から１つのノードを特定できるとき、アドレス内のｍ（１≦ｍ≦ｎ）番目の値ａｄｄｒ（ｍ）に、サブグループＳ＿｛ｍ、ａｄｄｒ（ｍ）｝に加えて、１対１で秘密情報ｋ＿｛ｍ、ａｄｄｒ（ｍ）｝を新たに対応させ、アドレス（ａｄｄｒ（１）、ａｄｄｒ（２）、・・・、ａｄｄｒ（ｎ））のｎ次組に対応するｎ種の秘密情報（ｋ＿｛１、ａｄｄｒ（１）｝、ｋ＿｛２、ａｄｄｒ（２）｝、・・・、ｋ＿｛ｎ、ａｄｄｒ（ｎ）｝）の組を、当該ノードに割り当てることを特徴とする暗号鍵管理システム。
【請求項８】
請求項７に記載の暗号鍵管理システムにおいて、マルチキャストアドレス決定手段は、ノードアドレス決定手段によって、（ａｄｄｒ（１）、ａｄｄｒ（２）、・・・、ａｄｄｒ（ｎ））のｎ次組でノードを特定するとき、特定できるノードを含むノードの集合（マルチキャスト通信範囲）を、ｎ組のサブグループＳ＿｛１、ａｄｄｒ（１）｝、Ｓ＿｛２、ａｄｄｒ（２）｝、・・・、Ｓ＿｛ｎ、ａｄｄｒ（ｎ）｝から選択した１つ以上のサブグループと、ここで選択しなかったサブグループの母集団であるグループとの積集合として特定するとし、ｎ次組でノードを特定するアドレス（ａｄｄｒ（１）、ａｄｄｒ（２）、・・・、ａｄｄｒ（ｎ））のうち、選択しなかった１つ以上のサブグループＳ＿｛ｐ、ａｄｄｒ（ｍ）｝（１≦ｍ≦ｎ）に対応するｍ番目の値ａｄｄｒ（ｍ）を、サブグループＳ＿｛ｍ、ａｄｄｒ（ｍ）｝の母集団であるグループＣ＿｛ｍ｝をマルチキャスト通信範囲の特定に用いていることを示すワイルドカードで全て置き換えたｎ次組を、マルチキャスト通信範囲を特定するアドレスとして生成することを特徴とする暗号鍵管理システム。
【請求項９】
請求項８に記載の暗号鍵管理システムにおいて、マルチキャスト暗号情報送信手段は、マルチキャストアドレス決定手段によって生成されるマルチキャスト通信範囲を特定するアドレスであるｎ次組のうち、本アドレス内でワイルドカードではない１つ以上のｍ（１≦ｍ≦ｎ）番目の値ａｄｄｒ（ｍ）に対して暗号鍵決定手段で対応させた秘密情報ｋ＿｛ｍ、ａｄｄｒ（ｍ）｝を、排他的論理和や、ビット連結あるいはｎビット（１≦ｎ）ずつを交互に混ぜ込む処理などの後に、ハッシュ演算で固定長のビット長を導出するなどの公知の技術を利用して組み合わせて暗号鍵とした後、本暗号鍵を用いて情報をＤＥＳやＡＥＳなどの公知の技術を利用して暗号化し、マルチキャスト通信範囲を示すアドレスとともに送信することを特徴とする暗号鍵管理システム。
【請求項１０】
請求項９に記載の暗号鍵管理システムにおいて、ノードアドレス記憶手段は、サーバ側のノード特定手段によって、割り当てられた（ａｄｄｒ（１）、ａｄｄｒ（２）、・・・、ａｄｄｒ（ｎ））のｎ次組を、自ノードのアドレスとして記憶することを特徴とする暗号鍵管理システム。
【請求項１１】
請求項１０に記載の暗号鍵管理システムにおいて、暗号鍵記憶手段は、サーバ側の暗号鍵決定手段によって、自ノードのアドレス（ａｄｄｒ（１）、ａｄｄｒ（２）、・・・、ａｄｄｒ（ｎ））のｎ次組に対応させて割り当てられたｎ種の秘密情報（ｋ＿｛１、ａｄｄｒ（１）｝、ｋ＿｛２、ａｄｄｒ（２）｝、・・・、ｋ＿｛ｎ、ａｄｄｒ（ｎ）｝）の組を、暗号鍵のための情報として記憶することを特徴とする暗号鍵管理システム。
【請求項１２】
請求項１１に記載の暗号鍵管理システムにおいて、マルチキャスト暗号情報受信手段は、サーバ側のマルチキャスト暗号情報送信手段によって、通信範囲を示すアドレスとともに送信される通信データを受信したとき、ノードアドレス記憶手段で記憶している自ノードのアドレス（ａｄｄｒ（１）、ａｄｄｒ（２）、・・・、ａｄｄｒ（ｎ））のｎ次組と、通信データに含まれる通信先のアドレスのｎ次組の照合を先頭からｎ回繰り返し、ワイルドカードとの照合は合致すると見なす上で、全てのｎ次組が合致する場合に、自分宛の通信データであると判断し、この時、ワイルドカードと照合を行っていない１つ以上の自ノードのアドレス内のｍ（１≦ｍ≦ｎ）番目の値ａｄｄｒ（ｍ）に対応する秘密情報ｋ＿｛ｍ、ａｄｄｒ（ｍ）｝を組み合わせて暗号鍵とした後、本暗号鍵を用いて通信データ内の暗号化情報をサーバ側で暗号化に利用しているものと同等の公知の技術を利用して復号することを特徴とする暗号鍵管理システム。
【請求項１３】
サーバの存在するネットワークにおいて、サーバと、サーバ以外のノードとの間で共有する暗号鍵を構造化することにより、サーバからノードの集合への、暗号化された同報通信メッセージのマルチキャストが効率的に行えるようにする暗号鍵管理方法。
【請求項１４】
請求項１３に記載の暗号鍵管理方法において、サーバ側に、ネットワークを構成するノードの集合をｎパターンのグループ、及び各グループをその構成要素であるノードの部分集合（サブグループ）に分割するグループ決定ステップと、グループ決定ステップによって決定されたｎパターンのグループから適当に１つずつ選択したｎ個のサブグループの積集合を求め、１つのノードを特定するノード特定ステップと、ノード特定ステップによって、ｎ個のサブグループの積で１つのノードを特定できる場合において、ノードに割り当てるアドレスを決定するノードアドレス決定ステップと、１つに特定されるノードとサーバの間で保持する暗号鍵を決定する暗号鍵決定ステップと、ノードの集合に割り当てるマルチキャストアドレスを決定するマルチキャストアドレス決定ステップと、マルチキャストアドレス決定ステップで決定されるアドレスで特定されるノードの集合だけが復号可能なように、マルチキャスト暗号通信を実施するマルチキャスト暗号情報送信ステップとからなる構成を有することを特徴とする暗号鍵管理方法。
【請求項１５】
請求項１４に記載の暗号鍵管理方法において、ノード側に、サーバによって割り当てられるノードアドレスを記憶するノードアドレス記憶ステップと、同じくサーバによって割り当てられる暗号鍵を決定する情報を記憶する暗号鍵記憶ステップと、マルチキャスト暗号情報受信ステップとからなる構成を有することを特徴とする暗号鍵管理方法。
【請求項１６】
請求項１５に記載の暗号鍵管理方法において、グループ決定ステップは、ネットワークを構成するノードの集合をｎパターンのグループに分割し、この時ｍ（１≦ｍ≦ｎ）パターン目のグループＣ＿｛ｍ｝を、Ｃ＿｛ｍ｝＝（Ｓ＿｛ｍ、１｝、Ｓ＿｛ｍ、２｝、・・・、Ｓ＿｛ｍ、ｉ｝）として、ノードの部分集合であるサブグループの系列（ｉはグループの構成要素数を示す整数）として定義し、サブグループの和集合が全ノードの集合を表し、かつ１つのグループにおける任意のサブグループ同士の積集合が空集合になるように、グループを決定することを特徴とする暗号鍵管理方法。
【請求項１７】
請求項１６に記載の暗号鍵管理方法において、ノード特定ステップは、グループ決定ステップによって決定されたｎパターンのグループＣ＿｛１｝・・・Ｃ＿｛ｎ｝の各パターンから、適当に１つずつ選択したｎ個のサブグループの積集合を求めたとき、いかなる場合にも、ノードが１つ決まるように各グループＣ＿｛１｝・・・Ｃ＿｛ｎ｝が決定されているかを確認し、決まらなければ、１つに決まるまで再度グループ決定ステップを試行することを特徴とする暗号鍵管理方法。
【請求項１８】
請求項１７に記載の暗号鍵管理方法において、ノードアドレス決定ステップは、ノード特定ステップによって、ｎ個のサブグループから必ず１つのノードを特定できる場合において、本特定のために、グループＣ＿｛ｍ｝（１≦ｍ≦ｎ）の何番目のサブグループを用いたかを意味する整数をａｄｄｒ（ｍ）と表現する時、ｎ個のサブグループＳ＿｛１、ａｄｄｒ（１）｝、Ｓ＿｛２、ａｄｄｒ（２）｝、・・・、Ｓ＿｛ｎ、ａｄｄｒ（ｎ）｝の積集合から１つのノードを特定できると表現でき、この時、（ａｄｄｒ（１）、ａｄｄｒ（２）、・・・、ａｄｄｒ（ｎ））のｎ次組を、ノードアドレスとして生成することを特徴とする暗号鍵管理方法。
【請求項１９】
請求項１８に記載の暗号鍵管理方法において、暗号鍵決定ステップは、ノードアドレス決定ステップによって、アドレス（ａｄｄｒ（１）、ａｄｄｒ（２）、・・・、ａｄｄｒ（ｎ））のｎ次組によって、ｎ個のサブグループＳ＿｛１、ａｄｄｒ（１）｝、Ｓ＿｛２、ａｄｄｒ（２）｝、・・・、Ｓ＿｛ｎ、ａｄｄｒ（ｎ）｝の積集合から１つのノードを特定できるとき、アドレス内のｍ（１≦ｍ≦ｎ）番目の値ａｄｄｒ（ｍ）に、サブグループＳ＿｛ｍ、ａｄｄｒ（ｍ）｝に加えて、１対１で秘密情報ｋ＿｛ｍ、ａｄｄｒ（ｍ）｝を新たに対応させ、アドレス（ａｄｄｒ（１）、ａｄｄｒ（２）、・・・、ａｄｄｒ（ｎ））のｎ次組に対応するｎ種の秘密情報（ｋ＿｛１、ａｄｄｒ（１）｝、ｋ＿｛２、ａｄｄｒ（２）｝、・・・、ｋ＿｛ｎ、ａｄｄｒ（ｎ）｝）の組を、当該ノードに割り当てることを特徴とする暗号鍵管理方法。
【請求項２０】
請求項１９に記載の暗号鍵管理方法において、マルチキャストアドレス決定ステップは、ノードアドレス決定ステップによって、（ａｄｄｒ（１）、ａｄｄｒ（２）、・・・、ａｄｄｒ（ｎ））のｎ次組でノードを特定するとき、特定できるノードを含むノードの集合（マルチキャスト通信範囲）を、ｎ組のサブグループＳ＿｛１、ａｄｄｒ（１）｝、Ｓ＿｛２、ａｄｄｒ（２）｝、・・・、Ｓ＿｛ｎ、ａｄｄｒ（ｎ）｝から選択した１つ以上のサブグループと、ここで選択しなかったサブグループの母集団であるグループとの積集合として特定するとし、ｎ次組でノードを特定するアドレス（ａｄｄｒ（１）、ａｄｄｒ（２）、・・・、ａｄｄｒ（ｎ））のうち、選択しなかった１つ以上のサブグループＳ＿｛ｐ、ａｄｄｒ（ｍ）｝（１≦ｍ≦ｎ）に対応するｍ番目の値ａｄｄｒ（ｍ）を、サブグループＳ＿｛ｍ、ａｄｄｒ（ｍ）｝の母集団であるグループＣ＿｛ｍ｝をマルチキャスト通信範囲の特定に用いていることを示すワイルドカードで全て置き換えたｎ次組を、マルチキャスト通信範囲を特定するアドレスとして生成することを特徴とする暗号鍵管理方法。
【請求項２１】
請求項２０に記載の暗号鍵管理方法において、マルチキャスト暗号情報送信ステップは、マルチキャストアドレス決定ステップによって生成されるマルチキャスト通信範囲を特定するアドレスであるｎ次組のうち、本アドレス内でワイルドカードではない１つ以上のｍ（１≦ｍ≦ｎ）番目の値ａｄｄｒ（ｍ）に対して暗号鍵決定ステップで対応させた秘密情報ｋ＿｛ｍ、ａｄｄｒ（ｍ）｝を、排他的論理和や、ビット連結あるいはｎビット（１≦ｎ）ずつを交互に混ぜ込む処理などの後に、ハッシュ演算で固定長のビット長を導出するなどの公知の技術を利用して組み合わせて暗号鍵とした後、本暗号鍵を用いて情報をＤＥＳやＡＥＳなどの公知の技術を利用して暗号化し、マルチキャスト通信範囲を示すアドレスとともに送信することを特徴とする暗号鍵管理方法。
【請求項２２】
請求項２１に記載の暗号鍵管理方法において、ノードアドレス記憶ステップは、サーバ側のノード特定ステップによって、割り当てられた（ａｄｄｒ（１）、ａｄｄｒ（２）、・・・、ａｄｄｒ（ｎ））のｎ次組を、自ノードのアドレスとして記憶することを特徴とする暗号鍵管理方法。
【請求項２３】
請求項２２に記載の暗号鍵管理方法において、暗号鍵記憶ステップは、サーバ側の暗号鍵決定ステップによって、自ノードのアドレス（ａｄｄｒ（１）、ａｄｄｒ（２）、・・・、ａｄｄｒ（ｎ））のｎ次組に対応させて割り当てられたｎ種の秘密情報（ｋ＿｛１、ａｄｄｒ（１）｝、ｋ＿｛２、ａｄｄｒ（２）｝、・・・、ｋ＿｛ｎ、ａｄｄｒ（ｎ）｝）の組を、暗号鍵のための情報として記憶することを特徴とする暗号鍵管理方法。
【請求項２４】
請求項２３に記載の暗号鍵管理方法において、マルチキャスト暗号情報受信ステップは、サーバ側のマルチキャスト暗号情報送信ステップによって、通信範囲を示すアドレスとともに送信される通信データを受信したとき、ノードアドレス記憶ステップで記憶している自ノードのアドレス（ａｄｄｒ（１）、ａｄｄｒ（２）、・・・、ａｄｄｒ（ｎ））のｎ次組と、通信データに含まれる通信先のアドレスのｎ次組の照合を先頭からｎ回繰り返し、ワイルドカードとの照合は合致すると見なす上で、全てのｎ次組が合致する場合に、自分宛の通信データであると判断し、この時、ワイルドカードと照合を行っていない１つ以上の自ノードのアドレス内のｍ（１≦ｍ≦ｎ）番目の値ａｄｄｒ（ｍ）に対応する秘密情報ｋ＿｛ｍ、ａｄｄｒ（ｍ）｝を組み合わせて暗号鍵とした後、本暗号鍵を用いて通信データ内の暗号化情報をサーバ側で暗号化に利用しているものと同等の公知の技術を利用して復号することを特徴とする暗号鍵管理方法。
【請求項２５】
コンピュータを請求項１乃至１２の何れか１項に記載の暗号鍵管理システムとして機能させるための暗号鍵管理プログラム。
【請求項２６】
コンピュータに請求項１３乃至２４の何れか１項に記載の暗号鍵管理方法を行わせるための暗号鍵管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化された同報通信メッセージのマルチキャストを効率的に実施するための暗号鍵管理方法、その装置及びそのプログラムに関する。本方法、本装置、本プログラムによって管理する暗号鍵を利用すれば、中央のサーバから多数のセンサノードに対する同報通信を、通信量を低減しつつ安全に実施することが可能になり、例えば、高セキュリティ化を狙った鍵の一斉変更（交換）実現技術として好適である。
【背景技術】
【０００２】
センサネットワークは、例えば図１に示す特許文献１（特開２００５−３２８２３０）が示すように、システムを集中制御するサーバと、低コストで構成される膨大な数のセンサノード（本明細書では単にノードと呼ぶことにする）からなるネットワークである。サーバは、センサネットワークで収集・計算した情報を集約したり、あるいは、（その結果等をふまえて）センサノードに様々な指示を出すため、他のノードよりも大きな計算資源を有することが多い。一方、センサネットワークの特有の制約として、サーバ以外のノードは小さな計算資源しか有さないことが多い。このような形態のセンサネットワークでは、ノードとサーバ間では、頻繁に情報交換が行われる。交換する情報の秘匿化が望まれる場合、暗号処理を実施することが常であるが、ノードの小さな計算資源では公開鍵暗号の処理は実用上実施が難しく、従来、共通鍵暗号が用いられていた。具体的には、非特許文献１に示されるように、サーバとノードの間で１対１に固有の鍵（本明細書ではノード鍵と呼ぶことにする）を事前に共有させ、エンド−エンドでの暗号化を、共通鍵暗号を用いて実施していた。
【特許文献１】特開２００５−３２８２３０号公報
【非特許文献１】Ｚｉｇｂｅｅセンサネットワークｐｐ．１１８〜１２０、阪田史郎ら、秀和システム、２００５年
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、サーバの存在するセンサネットワークでは、サーバから複数のノードに対し、制御コマンド等を同報通信するようなケースも発生すると考えられる。通常の（暗号化の必要のない）メッセージであれば、同報通信メッセージをマルチキャスト的に伝送すればよいが、同報通信メッセージを暗号化したい場合、各ノードに対して、サーバはノード鍵での暗号化とユニキャストでの通信を繰り返す必要が生じ、センサネットワークに流れる通信量及びサーバでの暗号化のための計算量が増大してしまう。
【０００４】
本発明はこのような状況を鑑みてなされたものであり、サーバとノードとの間で共有される鍵を適切に構造化することにより、暗号化された同報通信メッセージのマルチキャストが効率的に行えるようにすることを目的とする。
【課題を解決するための手段】
【０００５】
本発明は、サーバの存在するネットワークにおいて、サーバと、サーバ以外のノードとの間で共有する暗号鍵を構造化することにより、サーバからノードの集合への、暗号化された同報通信メッセージのマルチキャストを効率的に行えるようにする暗号鍵管理方法、その装置及びそのプログラムである。
【０００６】
図２に、本発明の暗号鍵管理方法の一実施形態における全体構成を示す。図２を参照すると、サーバ１０１と、サーバ以外のノード１０３がネットワーク１０５で接続されている。ここで、ノードは複数あることを想定しているが、１つのノードの構成だけを代表して示している。
【０００７】
本発明の暗号鍵管理方法の一実施形態において、サーバ１０１側には、ネットワークを構成するノードの集合をｎパターンのグループ、及び各グループをその構成要素であるノードの部分集合（サブグループ）に分割するグループ決定手段１１１と、グループ決定手段１１１によって決定されたｎパターンのグループから適当に１つずつ選択したｎ個のサブグループの積集合を求め、１つのノードを特定するノード特定手段１１３と、ノード特定手段１１３によって、ｎ個のサブグループの積で１つのノードを特定できる場合において、ノードに割り当てるアドレスを決定するノードアドレス決定手段１１５と、１つに特定されるノードとサーバの間で保持する暗号鍵を決定する暗号鍵決定手段１１７と、ノードの集合に割り当てるマルチキャストアドレスを決定するマルチキャストアドレス決定手段１１９と、マルチキャストアドレス決定手段１１９で決定されるアドレスで特定されるノードの集合だけが復号可能なように、マルチキャスト暗号通信を実施するマルチキャスト暗号情報送信手段１２１とからなる構成を有することを特徴とする。
【０００８】
さらに、本発明の暗号鍵管理方法の一実施形態において、ノード側には、サーバによって割り当てられるノードアドレスを記憶するノードアドレス記憶手段１３１と、同じくサーバによって割り当てられる暗号鍵を決定する情報を記憶する暗号鍵記憶手段１３３と、マルチキャスト暗号情報受信手段１３５とからなる構成を有することを特徴とする。
【０００９】
さらに、本発明の暗号鍵管理方法の一実施形態において、グループ決定手段１１１は、ネットワークを構成するノードの集合をｎパターンのグループに分割し、この時ｍ（１≦ｍ≦ｎ）パターン目のグループＣ＿｛ｍ｝を、Ｃ＿｛ｍ｝＝（Ｓ＿｛ｍ、１｝、Ｓ＿｛ｍ、２｝、・・・、Ｓ＿｛ｍ、ｉ｝）として、ノードの部分集合であるサブグループの系列（ｉはグループの構成要素数を示す整数）として定義し、図３に示すように、サブグループの和集合が全ノードの集合を表し、かつ１つのグループにおける任意のサブグループ同士の積集合が空集合になるように、グループを決定することを特徴とする。
【００１０】
さらに、本発明の暗号鍵管理方法の一実施形態において、ノード特定手段１１３は、グループ決定手段によって決定されたｎパターンのグループＣ＿｛１｝・・・Ｃ＿｛ｎ｝の各パターンから、適当に１つずつ選択したｎ個のサブグループの積集合を求めたとき、例えば図４に示すように、いかなる場合にも、ノードが１つ決まるように各グループＣ＿｛１｝・・・Ｃ＿｛ｎ｝が決定されているかを確認し、決まらなければ、１つに決まるまで再度グループ決定手段１１３を試行することを特徴とする。
【００１１】
さらに、本発明の暗号鍵管理方法の一実施形態において、ノードアドレス決定手段１１５は、ノード特定手段１１３によって、ｎ個のサブグループから必ず１つのノードを特定できる場合において、本特定のために、グループＣ＿｛ｍ｝（１≦ｍ≦ｎ）の何番目のサブグループを用いたかを意味する整数をａｄｄｒ（ｍ）と表現する時、ｎ個のサブグループＳ＿｛１、ａｄｄｒ（１）｝、Ｓ＿｛２、ａｄｄｒ（２）｝、・・・、Ｓ＿｛ｎ、ａｄｄｒ（ｎ）｝の積集合から１つのノードを特定できると表現でき、この時、図５に示すように（ａｄｄｒ（１）、ａｄｄｒ（２）、・・・、ａｄｄｒ（ｎ））のｎ次組を、ノードアドレスとして生成することを特徴とする。
【００１２】
さらに、本発明の暗号鍵管理方法の一実施形態において、暗号鍵決定手段１１７は、ノードアドレス決定手段１１５によって、アドレス（ａｄｄｒ（１）、ａｄｄｒ（２）、・・・、ａｄｄｒ（ｎ））のｎ次組によって、ｎ個のサブグループＳ＿｛１、ａｄｄｒ（１）｝、Ｓ＿｛２、ａｄｄｒ（２）｝、・・・、Ｓ＿｛ｎ、ａｄｄｒ（ｎ）｝の積集合から１つのノードを特定できるとき、図６に示すように、アドレス内のｍ（１≦ｍ≦ｎ）番目の値ａｄｄｒ（ｍ）に、サブグループＳ＿｛ｍ、ａｄｄｒ（ｍ）｝に加えて、１対１で秘密情報ｋ＿｛ｍ、ａｄｄｒ（ｍ）｝を新たに対応させ、アドレス（ａｄｄｒ（１）、ａｄｄｒ（２）、・・・、ａｄｄｒ（ｎ））のｎ次組に対応するｎ種の秘密情報（ｋ＿｛１、ａｄｄｒ（１）｝、ｋ＿｛２、ａｄｄｒ（２）｝、・・・、ｋ＿｛ｎ、ａｄｄｒ（ｎ）｝）の組を、当該ノードに割り当てることを特徴とする。
【００１３】
さらに、本発明の暗号鍵管理方法の一実施形態において、マルチキャストアドレス決定手段１１９は、ノードアドレス決定手段１１５によって、（ａｄｄｒ（１）、ａｄｄｒ（２）、・・・、ａｄｄｒ（ｎ））のｎ次組でノードを特定するとき、図７に示すように、特定できるノードを含むノードの集合（マルチキャスト通信範囲）を、ｎ組のサブグループＳ＿｛１、ａｄｄｒ（１）｝、Ｓ＿｛２、ａｄｄｒ（２）｝、・・・、Ｓ＿｛ｎ、ａｄｄｒ（ｎ）｝から選択した１つ以上のサブグループと、ここで選択しなかったサブグループの母集団であるグループとの積集合として特定するとし、ｎ次組でノードを特定するアドレス（ａｄｄｒ（１）、ａｄｄｒ（２）、・・・、ａｄｄｒ（ｎ））のうち、選択しなかった１つ以上のサブグループＳ＿｛ｐ、ａｄｄｒ（ｍ）｝（１≦ｍ≦ｎ）に対応するｍ番目の値ａｄｄｒ（ｍ）を、サブグループＳ＿｛ｍ、ａｄｄｒ（ｍ）｝の母集団であるグループＣ＿｛ｍ｝をマルチキャスト通信範囲の特定に用いていることを示すワイルドカードで全て置き換えたｎ次組を、マルチキャスト通信範囲を特定するアドレスとして生成することを特徴とする。
【００１４】
ここで、マルチキャストアドレス決定手段１１９によって、生成されたマルチキャスト通信範囲を特定するアドレスは、外部の情報入出力手段１４１で表示され、サーバ管理者等が確認可能なようにしてもよい。
【００１５】
さらに、本発明の暗号鍵管理方法の一実施形態において、マルチキャスト暗号情報送信手段１２１は、マルチキャストアドレス決定手段１１９によって生成されるマルチキャスト通信範囲を特定するアドレスであるｎ次組のうち、本アドレス内でワイルドカードではない１つ以上のｍ（１≦ｍ≦ｎ）番目の値ａｄｄｒ（ｍ）に対して暗号鍵決定手段１１７で対応させた秘密情報ｋ＿｛ｍ、ａｄｄｒ（ｍ）｝を組み合わせて暗号鍵とした後、本暗号鍵を用いて情報を暗号化し、図８に示すようにマルチキャスト通信範囲を示すアドレスとともに送信することを特徴とする。
【００１６】
ここで、秘密情報を組み合わせる方法としては、排他的論理和や、ビット連結あるいはｎビット（１≦ｎ）ずつを交互に混ぜ込む処理などの後に、ハッシュ演算で固定長のビット長を導出するなどの公知の技術を利用できる。
【００１７】
また、ここで、暗号化のための手法としてＤＥＳやＡＥＳなどの公知の技術を利用できる。さらに、通信データの改ざんを防ぐために、上記暗号鍵を用いて、通信データ内の通信先のアドレスと暗号化した情報に対してＭＡＣ(Message Authentication Code)を計算して、通信データに追加しておくなどの公知の技術を利用できる。
【００１８】
また、ここで、外部の情報入出力手段にマルチキャスト通信範囲を特定するアドレスを表示させ、サーバ管理者等が、表示情報から送信先のアドレスを選択してマルチキャスト暗号情報送信手段１２１に通知してよい。さらには暗号化して送信する情報を入力するために外部の情報入出力手段１４１を利用して、マルチキャスト暗号情報送信手段１２１に通知してよい。
【００１９】
さらに、本発明の暗号鍵管理方法の一実施形態において、ノードアドレス記憶手段１３１は、サーバ側のノード特定手段１１３によって、割り当てられた（ａｄｄｒ（１）、ａｄｄｒ（２）、・・・、ａｄｄｒ（ｎ））のｎ次組を、自ノードのアドレスとして記憶することを特徴とする。
【００２０】
さらに、本発明の暗号鍵管理方法の一実施形態において、暗号鍵記憶手段１３３は、サーバ側の暗号鍵決定手段１１７によって、自ノードのアドレス（ａｄｄｒ（１）、ａｄｄｒ（２）、・・・、ａｄｄｒ（ｎ））のｎ次組に対応させて割り当てられたｎ種の秘密情報（ｋ＿｛１、ａｄｄｒ（１）｝、ｋ＿｛２、ａｄｄｒ（２）｝、・・・、ｋ＿｛ｎ、ａｄｄｒ（ｎ）｝）の組を、暗号鍵のための情報として記憶することを特徴とする。
【００２１】
さらに、本発明の暗号鍵管理方法の一実施形態において、マルチキャスト暗号情報受信手段１３５は、サーバ側のマルチキャスト暗号情報送信手段によって、通信範囲を示すアドレスとともに送信される通信データを受信したとき、ノードアドレス記憶手段１３１で記憶している自ノードのアドレス（ａｄｄｒ（１）、ａｄｄｒ（２）、・・・、ａｄｄｒ（ｎ））のｎ次組と、通信データに含まれる通信先のアドレスのｎ次組の照合を先頭からｎ回繰り返し、ワイルドカードとの照合は合致すると見なす上で、全てのｎ次組が合致する場合に、自分宛の通信データであると判断し、この時、ワイルドカードと照合を行っていない１つ以上の自ノードのアドレス内のｍ（１≦ｍ≦ｎ）番目の値ａｄｄｒ（ｍ）に対応する秘密情報ｋ＿｛ｍ、ａｄｄｒ（ｍ）｝を組み合わせて暗号鍵とした後、本暗号鍵を用いて通信データ内の暗号化情報を復号することを特徴とする。
【００２２】
ここで、復号のための手法として、サーバ側で暗号化に利用しているものと同等の公知の技術を利用できる。さらに、通信データの改ざん検知を目的に、通信データにＭＡＣが追加されている場合は、復号に用いる暗号鍵で、通信データ内の通信先のアドレスと暗号化情報に対して同じくＭＡＣを計算して、通信データに追加されたＭＡＣと照合し、異なれば改ざんを検知するなどの公知の技術を利用できる。
【発明の効果】
【００２３】
以上のように本発明によれば、第１の効果として、暗号化された同報通信メッセージをマルチキャスト的に（つまりあるグループに限定して）伝送する際に通信量を削減できる点がある。なぜなら、１度のマルチキャスト通信において、ネットワーク上を流通する通信データ数は、マルチキャスト通信範囲に含まれるノード数に関わらず一個だけであり、各ノードは高々一回の中継を行うだけでよいからである。通信量の削減は、消費電力量の削減に繋がり、センサネットワークのようなノードの電力資源の制約された環境下で特に有効である。
【００２４】
第２の効果として、サーバでの暗号化のための計算量定数オーダに固定できる点がある。なぜなら、あるマルチキャスト通信範囲に含まれる複数のノードへの通信に際して、高々一回の暗号化処理で済むからである。
【発明を実施するための最良の形態】
【００２５】
次に本発明を実施するための最良の形態について図面を参照して詳細に説明する。ノードは図９に参照されるような、サーバを根としたツリー構造であり、ツリーの幹にはクラスタ、すなわち、クラスタヘッドと呼ぶ親ノードと、クラスタメンバと呼ぶ直接通信可能な複数の子ノードからなるノード集合が連なることを特徴とするネットワークトポロジ上に配置されるものとし、サーバは、どのノードがネットワークのどの位置に配置されたかを把握できるものとする。
【００２６】
このとき、サーバのグループ決定手段は、Ｃ＿｛１｝を、ツリーの幹をサブグループとするグループ（Ｃ＿｛１｝＝（Ｓ＿｛１、１｝、Ｓ＿｛１、２｝、Ｓ＿｛１、３｝））、Ｃ＿｛２｝を、サーバからの深さ（ＨＯＰ段数）が共通であるクラスタに含まれるノードをサブグループとするグループ（Ｃ＿｛２｝＝（Ｓ＿｛２、１｝、Ｓ＿｛２、２｝））、Ｃ＿｛３｝を、クラスタ内部でクラスタヘッドを１として、２からシーケンシャルに１ずつカウントアップした番号を、個々のクラスタメンバに割り振り、全クラスタにおいて共通の番号をもつノードをサブグループとするグループ（Ｃ＿｛３｝＝（Ｓ＿｛３、１｝、Ｓ＿｛３、２｝、Ｓ＿｛３、３｝、Ｓ＿｛３、４｝））と決定するとき、ノード特定手段によって、各ノードは、各グループＣ＿｛１｝・・・Ｃ＿｛ｎ｝から１つずつ選択するサブグループの組合せで特定できる。
【００２７】
このとき、サーバのノードアドレス決定手段によって、ノードのアドレスは、整数の三字組（ａ、ｂ、ｃ）により表現される。また、サーバのマルチキャストアドレス決定手段によって、アドレスの一部をワイルドカードに置き換えることで、マルチキャスト通信範囲を決めるアドレスを表現される。また、サーバの暗号鍵決定手段によって、ノードのアドレス（ａ、ｂ、ｃ）から一意に定まる秘密情報の組は（ｋ＿｛１、ａ｝、ｋ＿｛２、ｂ｝、ｋ＿｛３、ｃ｝）と表現される。
【００２８】
このとき、ノードのノードアドレス記憶手段、暗号鍵記憶手段によって、アドレス（ａ、ｂ、ｃ）により表現されるノードは、自身のアドレスと、ノードのアドレスから一意に定まる秘密情報の組（ｋ＿｛１、ａ｝、ｋ＿｛２、ｂ｝、ｋ＿｛３、ｃ｝）を記憶する。サーバが、これらの情報をノードに記憶させるにあたって、ノードをネットワークに配置する前に記憶させても良いし、背景技術で述べたような、サーバとノードの間で１対１にユニークなノード鍵が利用できるのであれば、ネットワークに配置した後に、ノード鍵で暗号化して、ノードにユニキャストで送信しても構わない。
【００２９】
サーバのマルチキャスト暗号情報送信手段は、サーバからノード（ａ、ｂ、ｃ）にメッセージｍを送信するとき、ｄ＝［（ａ、ｂ、ｃ）、Ｅ（ｋ＿｛１、ａ｝｜｜ｋ＿｛２、ｂ｝｜｜ｋ＿｛３、ｃ｝、ｍ）］を送信する。［ｘ、ｙ］はｘとｙの組からなる通信データを意味する。すなわち、ｄは宛先ノードのアドレスと暗号化したｍの組からなる通信データである。ここで鍵ｘを用いて適切に暗号化・ＭＡＣ処理のされたメッセージをＥ（ｘ、ｙ）と書く。また情報ｘ、ｙ、ｚの組合せ処理をｘ｜｜ｙ｜｜ｚと書く。Ｅ（ｘ、ｙ）およびｘ｜｜ｙ｜｜ｚの構成に関しては公知の技術を利用する。
【００３０】
ノードのマルチキャスト暗号情報受信手段１０３によって、ｄを受信したとき、ｄ内のアドレス（ａ、ｂ、ｃ）と合致するアドレスを持つノードはｄを自分宛として受信し、復号してｍを得る。秘密情報の組合せはノード固有であり、ｋ＿｛１、ａ｝、ｋ＿｛２、ｂ｝、ｋ＿｛３、ｃ｝の全てを知るのは、アドレス（ａ、ｂ、ｃ）と合致するアドレスを持つノードとサーバのみである。よって、ｄをそのまま送信したとしても、盗聴者や中継ノードがｄからｍを復号し、中身の内容を知ることはない。
【００３１】
また、サーバのマルチキャスト暗号情報送信手段１２１は、以下のようにサーバからノード集合へのマルチキャスト通信を行う。たとえば、マルチキャスト通信範囲（２、＊、１）のノード集合（２番目の幹の全てのクラスタヘッド）にメッセージを送信したい場合、暗号鍵ｋはｋ＿｛１、２｝｜｜ｋ＿｛３、１｝となる。このとき通信データとして、ｄ＊＝［（２、＊、１）、Ｅ（ｋ＿｛１、２｝｜｜ｋ＿｛３、１｝、ｍ）］を送信する。
【００３２】
ノードのマルチキャスト暗号情報受信手段１０３によって、ｄ＊を受信したとき、アドレス（２、＊、１）と合致するアドレスを持つノード、すなわち、アドレス（２、１、１）および（２、２、１）を持つノードはｄ＊を自分宛として受信し、復号してｍを得る。ノード集合（２、＊、１）に属する任意のノードはｋ＿｛１、２｝、ｋ＿｛３、１｝を全て知っており、ノード集合（２、＊、１）に属さないノードは、ｋ＿｛１、２｝、ｋ＿｛３、１｝のうちの少なくとも一つを知らない。したがって、ｄ＊からｍを復号することの出来るのは、ノード集合（２、＊、１）に属するノードだけである。
【００３３】
このとき、サーバは一回の暗号化処理を行うだけでよく、ノード集合（２、＊、１）に含まれるノードも、一回の復号処理を行うだけでよい。ネットワーク上を流通する通信データ数は、ノード集合（２、＊、１）に含まれるノード数に関わらず一個だけであり、各ノードは高々一回の中継を行うだけでよい。
【００３４】
次に、本実施の形態の全体の動作について、図１０の流れ図を参照して説明する。図１０は、本発明を実施するための最良の形態の動作を示す流れ図である。
【００３５】
暗号通信元としてサーバを、暗号通信先として通信範囲に含まれるノードの１つを想定して説明する。まずサーバは、グループ決定手段１１１によって、ネットワークを構成するノードの集合をｎパターンのグループ、及び各グループをその構成要素であるサブグループに分割し（Ｓ１０１）、ノード特定手段１１３によって、グループ決定手段１１１によって決定されたｎパターンのグループから適当に１つずつ選択したｎ個のサブグループの積集合を求め、１つのノードを特定できるかどうかを確かめる（Ｓ１０２）。特定できない場合は、再度Ｓ１０１の処理から実施する。Ｓ１０２でｎ個のサブグループの積で１つのノードを特定できるとき、ノードアドレス決定手段１１５によって、各ノードに割り当てるアドレスを決定し（Ｓ１０３）、暗号鍵決定手段１１７によって１つに特定されるノードとサーバの間で保持する暗号鍵（秘密情報の組）を決定する（Ｓ１０４）。Ｓ１０３、Ｓ１０４で決定したノードアドレスおよび暗号鍵を対応するノードに、直接あるいはネットワークを介して入力し、記憶させる（Ｓ２０１、Ｓ２０２）。以上の手続きのもと、サーバはマルチキャスト通信を実施する。サーバは、マルチキャストアドレス決定手段１１９によって、通信対象とするノードの集合に対応するアドレスを決定し（Ｓ１０５）、ノードとの間で共有した秘密情報の組をマルチキャストアドレスに対応させて組合せたものを鍵として用い、送信したいメッセージを暗号化する（Ｓ１０６）。その後、Ｓ１０５で決定したアドレスとＳ１０６で暗号化した情報との組（通信データ）をネットワークに送信する（Ｓ１０７）。Ｓ１０７で送信された情報を受信したノードはまず自身宛であるかを確認する（Ｓ２０３）。Ｓ２０３で確認できた場合、受信する（Ｓ２０５）。なお、Ｓ２０３での確認が受信後でないと行えないような構成のノードである場合、Ｓ２０５の処理がＳ２０３に先んじて行われる。自身宛の通信データを受信した場合、あらかじめサーバとの間で共有済みである秘密情報の組から、通信データ内のアドレスを参照して、秘密情報を組合せて復号のための鍵を生成し、ここで生成した鍵を用いて復号処理を行う（Ｓ２０６）。Ｓ２０３で自身宛でないと確認できた場合、本通信データを転送または破棄して処理を終了する（Ｓ２０４）。
【図面の簡単な説明】
【００３６】
【図１】特許文献１における代表図を示す図
【図２】本発明を実施するための一実施形態の構成を示す図
【図３】本発明におけるグループを説明する図
【図４】本発明をおけるグループの具体的な例示す図
【図５】本発明をおけるノードアドレスを説明する図
【図６】本発明をおいてサーバとノードとの間で共有する暗号鍵を説明する図
【図７】本発明をおけるマルチキャストアドレスを説明する図
【図８】本発明をおける通信データを説明する図
【図９】本発明を実施するための最良の形態を説明する図
【図１０】本発明を実施するための最良の形態の動作を示す流れ図
【符号の説明】
【００３７】
１０１  サーバ
１０３  ノード
１０５  ネットワーク
１１１  グループ決定手段
１１３  ノード特定手段
１１５  ノードアドレス決定手段
１１７  暗号鍵決定手段
１１９  マルチキャストアドレス決定手段
１２１  マルチキャスト暗号情報送信手段
１３１  ノードアドレス記憶手段
１３３  暗号鍵記憶手段
１３５  マルチキャスト暗号情報受信手段
【図１】
2008124884.tif 000003
【図２】
2008124884.tif 000004
【図３】
2008124884.tif 000005
【図４】
2008124884.tif 000006
【図５】
2008124884.tif 000007
【図６】
2008124884.tif 000008
【図７】
2008124884.tif 000009
【図８】
2008124884.tif 000010
【図９】
2008124884.tif 000011
【図１０】
2008124884.tif 000012