(57)【要約】【課題】  グループ鍵の更新に失敗した場合であっても通信を行うことができる暗号化データ通信装置等を提供する。【解決手段】  グループ鍵により暗号化された暗号化データを送受信する送受信部１１と、グループ鍵を鍵情報制御装置から送信されたグループ鍵に更新して記憶する鍵管理部１３と、グループ鍵の初期鍵と、受信した暗号化データと共に受信した鍵識別子とを用いて関数鍵を生成する関数鍵生成部１３ｂと、記憶された最新のグループ鍵に対応した鍵識別子と、受信した暗号化データと共に受信した鍵識別子とを比較する識別子比較部１２ａと、比較された双方の識別子が同じ場合に、記憶されたグループ鍵によって、受信した暗号化データを復号し、比較された双方の識別子が異なる場合に、生成した関数鍵により暗号化データを復号するデータ暗号処理部１４とを有する。【選択図】      図３
2015133573.tif 000002
【特許請求の範囲】
【請求項１】
鍵情報制御装置と複数の通信機器とを含むネットワークにおいて使用されるグループ鍵を用いて暗号化データを通信する暗号化データ通信装置であって、
前記グループ鍵により暗号化された暗号化データを送受信する通信手段と、
前記通信機器のグループ鍵を前記鍵情報制御装置から送信されたグループ鍵に更新して記憶する鍵管理手段と、
前記鍵管理手段により記憶されたグループ鍵の初期鍵と、前記通信手段により受信した暗号化データと共に受信した鍵識別子とを用いて関数鍵を生成する関数鍵生成手段と、
前記鍵管理手段により記憶された最新のグループ鍵に対応した鍵識別子と、前記通信手段により受信した暗号化データと共に受信した鍵識別子とを比較する識別子比較手段と、
前記識別子比較手段により比較された双方の識別子が同じ場合に、前記鍵管理手段により記憶されたグループ鍵により前記通信手段により受信した暗号化データを復号し、前記識別子比較手段により比較された双方の識別子が異なる場合に、前記関数鍵生成手段により生成した関数鍵により前記通信手段により受信した暗号化データを復号する復号手段と
を備える暗号化データ通信装置。
【請求項２】
前記鍵管理手段により記憶された最新のグループ鍵に対応した鍵識別子と、前記通信手段により受信した暗号データと共に受信した鍵識別子との差が所定の閾値を超えているか否かを判定する閾値判定手段を有する、請求項１に記載の暗号化データ通信装置。
【請求項３】
前記鍵管理手段は、記憶したグループ鍵のうち何れかのグループ鍵を選択する鍵選択手段を有し、
前記鍵選択手段は、前記閾値判定手段によって前記差が所定の閾値を超えていないと判定された場合には前記鍵管理手段により記憶されたグループ鍵を選択し、前記閾値判定手段によって前記差が所定の閾値を超えていると判定された場合には前記関数鍵生成手段により生成した関数鍵を選択する
ことを特徴とする請求項２に記載の暗号化データ通信装置。
【請求項４】
タイマ手段を有し、
前記鍵選択手段は、前記タイマ手段により所定時間を計数した場合に、前記関数鍵から前記鍵管理手段により記憶されたグループ鍵に切り替えること
を特徴とする請求項３に記載の暗号化データ通信装置。
【請求項５】
前記閾値判定手段によって前記差が所定の閾値を超えていると判定された場合に、前記関数鍵生成手段により生成された関数鍵を前記通信機器に配布する鍵交換配布手段を有することを特徴とする請求項２に記載の暗号化データ通信装置。
【請求項６】
タイマ手段を有し、
前記鍵交換配布手段は、前記タイマ手段により所定時間を計数した場合に、前記関数鍵から乱数鍵としてのグループ鍵に切り替えて前記通信機器に配布すること
を特徴とする請求項５に記載の暗号化データ通信装置。
【請求項７】
前記通信機器にグループ鍵を設定する時に、前記通信機器にユニキャスト通信によってグループ鍵の初期鍵を送信することを特徴とする請求項１乃至請求項６の何れか一項に記載の暗号化データ通信装置。
【請求項８】
前記通信手段は、前記受信した鍵識別子を含むメッセージを前記関数鍵生成手段により生成した関数鍵により暗号化した暗号化データを送信することを特徴とする請求項１乃至請求項７の何れか一項に記載の暗号化データ通信装置。
【請求項９】
鍵情報制御装置と複数の通信機器とを含むネットワークにおいて使用されるグループ鍵を用いて暗号化データを通信する暗号化データ通信方法であって、
前記グループ鍵により暗号化された暗号化データを受信するステップと、
予め記憶された最新のグループ鍵に対応した鍵識別子と、前記受信した暗号化データと共に受信した鍵識別子とを比較するステップと、
前記比較した双方の識別子が同じ場合に、予め記憶された最新のグループ鍵により前記受信した暗号化データを復号するステップと、
前記比較した双方の識別子が異なる場合に、予め記憶されたグループ鍵の初期鍵と、前記受信した暗号化データと共に受信した鍵識別子とを用いて関数鍵を生成し、前記生成した関数鍵により前記受信した暗号化データを復号するステップと
を有することを特徴とする暗号化データ通信方法。
【請求項１０】
鍵情報制御装置と複数の通信機器とを含むネットワークにおいて使用されるグループ鍵を用いて暗号化データを通信する暗号化データ通信プログラムであって、
コンピュータに、
前記グループ鍵により暗号化された暗号化データを受信するステップと、
予め記憶された最新のグループ鍵に対応した鍵識別子と、前記受信した暗号化データと共に受信した鍵識別子とを比較するステップと、
前記比較した双方の識別子が同じ場合に、予め記憶された最新のグループ鍵により前記受信した暗号化データを復号するステップと、
前記比較した双方の識別子が異なる場合に、予め記憶されたグループ鍵の初期鍵と、前記受信した暗号化データと共に受信した鍵識別子とを用いて関数鍵を生成し、前記生成した関数鍵により前記受信した暗号化データを復号するステップと
を実行させるための暗号化データ通信プログラム。
【請求項１１】
鍵情報制御装置と複数の通信機器とを含むネットワークにおいて使用されるグループ鍵を用いて暗号化データを通信する暗号化データ通信プログラムを記録したコンピュータ読み取り可能な記録媒体であって、
コンピュータに、
前記グループ鍵により暗号化された暗号化データを受信するステップと、
予め記憶された最新のグループ鍵に対応した鍵識別子と、前記受信した暗号化データと共に受信した鍵識別子とを比較するステップと、
前記比較した双方の識別子が同じ場合に、予め記憶された最新のグループ鍵により前記受信した暗号化データを復号するステップと、
前記比較した双方の識別子が異なる場合に、予め記憶されたグループ鍵の初期鍵と、前記受信した暗号化データと共に受信した鍵識別子とを用いて関数鍵を生成し、前記生成した関数鍵により前記受信した暗号化データを復号するステップと
を実行させるための暗号化データ通信プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１２】
複数の通信機器を含むネットワークにおいて使用されるグループ鍵を用いて暗号化データを通信する暗号化データ通信方法であって、
データ送信側の通信機器が、予め記憶されたグループ鍵の初期鍵と自己が記憶する最新の鍵識別子とを用いて生成した関数鍵によりメッセージを暗号化した暗号化データを送信するステップと、
データ受信側の通信機器が、前記暗号化データを受信するステップと、
データ受信側の通信機器が、予め記憶された最新のグループ鍵に対応した鍵識別子と、前記受信した暗号化データと共に受信した鍵識別子とを比較するステップと、
前記比較した双方の識別子が同じ場合に、予め記憶された最新のグループ鍵により前記受信した暗号化データを復号するステップと、
前記比較した双方の識別子が異なる場合に、予め記憶されたグループ鍵の初期鍵と、前記受信した暗号化データと共に受信した鍵識別子とを用いて関数鍵を生成し、前記生成した関数鍵により前記受信した暗号化データを復号するステップと
を有することを特徴とする暗号化データ通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化したデータを通信する暗号化データ通信装置、暗号化データ通信方法、プログラム、及び、記録媒体に関する。
【背景技術】
【０００２】
従来より、マルチキャスト通信用のグループ鍵を交換する技術として、下記の非特許文献１、２が知られている。
【０００３】
この鍵交換技術は、先ず、通信機器の固有鍵を用いて鍵暗号化鍵を制御装置と通信機器とで共有する。その後、制御装置は、マルチキャスト通信を用いてグループ鍵の更新をする。このとき、制御装置は、鍵暗号化鍵を用いてグループ鍵を暗号化する。
【０００４】
このグループ鍵は、暗号メッセージにおけるノンス空間に含まれるＥＰＯＣＨ値という鍵識別子によって管理される。このグループ鍵は、所定の条件（暗号通信回数、時間）となると鍵更新が行われる。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Multicast Extensions to the Security Architecture for the Internet Protocol(RFC5374)
【非特許文献２】The Multicast Group Security Architecture（RFC3740）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、制御装置から複数の通信機器に通信メッセージをマルチキャスト通信しても、全ての通信機器に通信メッセージが送信されない場合がある。
【０００７】
例えば、通信機器が無線機器である場合にはノイズによって無線通信状態が悪化して通信メッセージが送信されない。また、複数の通信機器のうち何れかの通信機器がスリープ状態である場合には通信メッセージが通信路上で消失してしまう。この場合、さらに他の通信機器にも通信メッセージが送信できない恐れがある。
【０００８】
そこで、本発明は、上述した実情に鑑みて提案されたものである。本発明の目的は、グループ鍵の更新に失敗した場合であっても通信を行うことができる暗号化データ通信装置、暗号化データ通信方法、プログラム、及び、記録媒体を提供するものである。
【課題を解決するための手段】
【０００９】
本発明の第１の態様に係る暗号化データ通信装置は、鍵情報制御装置と複数の通信機器とを含むネットワークにおいて使用されるグループ鍵を用いて暗号化データを通信する暗号化データ通信装置であって、前記グループ鍵により暗号化された暗号化データを送受信する通信手段と、前記通信機器のグループ鍵を前記鍵情報制御装置から送信されたグループ鍵に更新して記憶する鍵管理手段と、前記鍵管理手段により記憶されたグループ鍵の初期鍵と、前記通信手段により受信した暗号化データと共に受信した鍵識別子とを用いて関数鍵を生成する関数鍵生成手段と、前記鍵管理手段により記憶された最新のグループ鍵に対応した鍵識別子と、前記通信手段により受信した暗号化データと共に受信した鍵識別子とを比較する識別子比較手段と、前記識別子比較手段により比較された双方の識別子が同じ場合に、前記鍵管理手段により記憶されたグループ鍵により前記通信手段により受信した暗号化データを復号し、前記識別子比較手段により比較された双方の識別子が異なる場合に、前記関数鍵生成手段により生成した関数鍵により前記通信手段により受信した暗号化データを復号する復号手段とを備える。
【００１０】
本発明の第２の態様に係る暗号化データ通信装置は、第１の態様の暗号化データ通信装置であって、前記鍵管理手段により記憶された最新のグループ鍵に対応した鍵識別子と、前記通信手段により受信した暗号データと共に受信した鍵識別子との差が所定の閾値を超えているか否かを判定する閾値判定手段を有する。
【００１１】
本発明の第３の態様に係る暗号化データ通信装置は、第２の態様の暗号化データ通信装置であって、前記鍵管理手段は、記憶したグループ鍵のうち何れかのグループ鍵を選択する鍵選択手段を有し、前記鍵選択手段は、前記閾値判定手段によって前記差が所定の閾値を超えていないと判定された場合には前記鍵管理手段により記憶されたグループ鍵を選択し、前記閾値判定手段によって前記差が所定の閾値を超えていると判定された場合には前記関数鍵生成手段により生成した関数鍵を選択することを特徴とする。
【００１２】
本発明の第４の態様に係る暗号化データ通信装置は、第３の態様の暗号化データ通信装置であって、タイマ手段を有し、前記鍵選択手段は、前記タイマ手段により所定時間を計数した場合に、前記関数鍵から前記鍵管理手段により記憶されたグループ鍵に切り替えることを特徴とする。
【００１３】
本発明の第５の態様に係る暗号化データ通信装置は、第２の態様の暗号化データ通信装置であって、前記閾値判定手段によって前記差が所定の閾値を超えていると判定された場合に、前記関数鍵生成手段により生成された関数鍵を前記通信機器に配布する鍵交換配布手段を有することを特徴とする。
【００１４】
本発明の第６の態様に係る暗号化データ通信装置は、第５の態様の暗号化データ通信装置であって、タイマ手段を有し、前記鍵交換配布手段は、前記タイマ手段により所定時間を計数した場合に、前記関数鍵から乱数鍵としてのグループ鍵に切り替えて前記通信機器に配布することを特徴とする。
【００１５】
本発明の第７の態様に係る暗号化データ通信装置は、第１乃至第６の何れかの態様の暗号化データ通信装置であって、前記通信機器にグループ鍵を設定する時に、前記通信機器にユニキャスト通信によってグループ鍵の初期鍵を送信することを特徴とする。
【００１６】
本発明の第８の態様に係る暗号化データ通信装置は、第１乃至第７の何れかの態様の暗号化データ通信装置であって、前記通信手段は、前記受信した鍵識別子を含むメッセージを前記関数鍵生成手段により生成した関数鍵により暗号化した暗号化データを送信することを特徴とする。
【００１７】
本発明の第９の態様に係る暗号化データ通信方法は、鍵情報制御装置と複数の通信機器とを含むネットワークにおいて使用されるグループ鍵を用いて暗号化データを通信する暗号化データ通信方法であって、前記グループ鍵により暗号化された暗号化データを受信するステップと、予め記憶された最新のグループ鍵に対応した鍵識別子と、前記受信した暗号化データと共に受信した鍵識別子とを比較するステップと、前記比較した双方の識別子が同じ場合に、予め記憶された最新のグループ鍵により前記受信した暗号化データを復号するステップと、前記比較した双方の識別子が異なる場合に、予め記憶されたグループ鍵の初期鍵と、前記受信した暗号化データと共に受信した鍵識別子とを用いて関数鍵を生成し、前記生成した関数鍵により前記受信した暗号化データを復号するステップとを有することを特徴とする。
【００１８】
本発明の第１０の態様に係る暗号化データ通信プログラムは、鍵情報制御装置と複数の通信機器とを含むネットワークにおいて使用されるグループ鍵を用いて暗号化データを通信する暗号化データ通信プログラムであって、コンピュータに、前記グループ鍵により暗号化された暗号化データを受信するステップと、予め記憶された最新のグループ鍵に対応した鍵識別子と、前記受信した暗号化データと共に受信した鍵識別子とを比較するステップと、前記比較した双方の識別子が同じ場合に、予め記憶された最新のグループ鍵により前記受信した暗号化データを復号するステップと、前記比較した双方の識別子が異なる場合に、予め記憶されたグループ鍵の初期鍵と、前記受信した暗号化データと共に受信した鍵識別子とを用いて関数鍵を生成し、前記生成した関数鍵により前記受信した暗号化データを復号するステップとを実行させる。
【００１９】
本発明の第１１の態様に係る暗号化データ通信プログラムを記録したコンピュータ読み取り可能な記録媒体は、鍵情報制御装置と複数の通信機器とを含むネットワークにおいて使用されるグループ鍵を用いて暗号化データを通信する暗号化データ通信プログラムを記録したコンピュータ読み取り可能な記録媒体であって、コンピュータに、前記グループ鍵により暗号化された暗号化データを受信するステップと、予め記憶された最新のグループ鍵に対応した鍵識別子と、前記受信した暗号化データと共に受信した鍵識別子とを比較するステップと、前記比較した双方の識別子が同じ場合に、予め記憶された最新のグループ鍵により前記受信した暗号化データを復号するステップと、前記比較した双方の識別子が異なる場合に、予め記憶されたグループ鍵の初期鍵と、前記受信した暗号化データと共に受信した鍵識別子とを用いて関数鍵を生成し、前記生成した関数鍵により前記受信した暗号化データを復号するステップとを実行させる。
【００２０】
本発明の第１２の態様に係る暗号化データ通信方法は、複数の通信機器を含むネットワークにおいて使用されるグループ鍵を用いて暗号化データを通信する暗号化データ通信方法であって、データ送信側の通信機器が、予め記憶されたグループ鍵の初期鍵と自己が記憶する最新の鍵識別子とを用いて生成した関数鍵によりメッセージを暗号化した暗号化データを送信するステップと、データ受信側の通信機器が、前記暗号化データを受信するステップと、データ受信側の通信機器が、予め記憶された最新のグループ鍵に対応した鍵識別子と、前記受信した暗号化データと共に受信した鍵識別子とを比較するステップと、前記比較した双方の識別子が同じ場合に、予め記憶された最新のグループ鍵により前記受信した暗号化データを復号するステップと、前記比較した双方の識別子が異なる場合に、予め記憶されたグループ鍵の初期鍵と、前記受信した暗号化データと共に受信した鍵識別子とを用いて関数鍵を生成し、前記生成した関数鍵により前記受信した暗号化データを復号するステップとを有することを特徴とする。
【発明の効果】
【００２１】
本発明によれば、グループ鍵の更新に失敗した場合であっても通信を行うことができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施形態として示す暗号化データ通信システムの構成を示すブロック図である。
【図２】本発明の実施形態として示す暗号化データ通信システムにおいて送受信するパケットの構成を示す図である。
【図３】本発明の実施形態として示す暗号化データ通信システムにおける通信機器の内部構成を示すブロック図である。
【図４】本発明の実施形態として示す暗号化データ通信システムにおける鍵情報制御装置の内部構成を示すブロック図である。
【図５】本発明の実施形態として示す暗号化データ通信システムにおいて、パケットロスがないときの通信手順を示すシーケンス図である。
【図６】本発明の実施形態として示す暗号化データ通信システムにおいて、パケットロスが発生したときの通信手順を示すシーケンス図である。
【図７】本発明の実施形態として示す暗号化データ通信システムにおいて、パケットロスが発生し、関数鍵を用いて受信するときの通信手順を示すシーケンス図である。
【図８】本発明の実施形態として示す暗号化データ通信システムにおいて、パケットロスが発生し、関数鍵を用いて送信するときの通信手順を示すシーケンス図である。
【図９】本発明の実施形態として示す暗号化データ通信システムにおいて、パケットロスが発生し、鍵更新がされない状態で通信機器が送信を行ったときの通信手順を示すシーケンス図である。
【図１０】本発明の実施形態として示す暗号化データ通信システムにおいて、パケットロスが発生し、鍵情報制御装置と通信機器の双方で関数鍵を用いて送受信するときの通信手順を示すシーケンス図である。
【図１１】本発明の実施形態として示す暗号化データ通信システムにおける通信機器の動作を示すフローチャートである。
【図１２】本発明の実施形態として示す暗号化データ通信システムにおける鍵情報制御装置の動作を示すフローチャートである。
【発明を実施するための形態】
【００２３】
以下、本発明の実施の形態について図面を参照して説明する。
【００２４】
本発明を適用した暗号化データ通信システムは、例えば図１に示すように構成されている。
【００２５】
暗号化データ通信システムは、複数の通信機器Ｎ１，Ｎ２、Ｎ３（以下、総称する場合には単に通信機器Ｎと呼ぶ。）を含む。これら通信機器Ｎのうち、通信機器Ｎ１、通信機器Ｎ２は、通信機器Ｎ３と暗号化データの通信が可能となっている。
【００２６】
通信機器Ｎは、例えば家庭内に設置された各種の機器である。本実施形態において、通信機器Ｎ１は、他の通信機器Ｎや鍵情報制御装置Ｍとの間で無線信号を授受する無線通信機器である。通信機器Ｎ２は、他の通信機器Ｎや鍵情報制御装置Ｍと通信線で有線接続されている。
【００２７】
本実施形態において、通信機器Ｎは、有線通信又は無線通信を行うものであってもよい。無線通信は、一般的に、有線通信よりも通信品質が低い。また、通信機器Ｎは、任意のタイミングでスリープ状態となり、一定期間又は何らかの外部トリガーにより起動するものであってもよい。このスリープ状態は、最低限の電力のみで動作し、通信が行えないような状態を含む。なお、通信機器Ｎは、３つ以上であってもよい。
【００２８】
なお、図１の暗号化データ通信システムにおいて、通信機器Ｎ１と通信機器Ｎ３の通信路はパケットロスが起こる通信環境にあるか、通信機器Ｎ１はスリープデバイスであるとする。また、通信機器Ｎ２と通信機器Ｎ３はパケットロスがほとんどない通信路の環境とする。
【００２９】
鍵情報制御装置Ｍは、複数の通信機器Ｎとの間で通信を行い、複数の通信機器Ｎを制御する。鍵情報制御装置Ｍは、通信機器Ｎとの間で暗号化通信を行う。このために、鍵情報制御装置Ｍは、各通信機器Ｎとの間で認証処理、鍵配布処理を行う。さらに、鍵情報制御装置Ｍは、複数の通信機器Ｎを含むネットワークにおいて使用されるグループ鍵を更新する。グループ鍵の寿命はメッセージのノンス空間にあるＥＰＯＣＨ値で管理され、暗号通信の回数や時間といった任意の条件を満たすとグループ鍵の更新が行われるものとする。
【００３０】
本実施形態において、通信機器Ｎ１、Ｎ２は、通信機器Ｎ３から鍵情報が配布される。本実施形態において、通信機器Ｎ３は、鍵情報制御装置Ｍとも呼ぶ。この鍵情報制御装置Ｍは、通信機器Ｎ１、Ｎ２がネットワークに参加する認証時において鍵情報を配布する。この鍵情報は、複数の通信機器Ｎを含むネットワークにおいて使用されるグループ鍵ＫＧｎである。このグループ鍵ＫＧｎは、鍵暗号化鍵ＫＥＫによって暗号化され、暗号化データＥ（グループ鍵ＫＧｎ）として配布される。
【００３１】
暗号化データ通信システムにおいて通信されるパケットには、図２に示すような各種情報が含まれている。
【００３２】
暗号化データ通信システムにおいて通信するパケットヘッダには、ＩＰアドレスやＵＤＰに加え、ノンス（ＮＯＮＣＥ）が含まれている。このノンスには、鍵情報制御装置Ｍ及び通信機器Ｎが生成したメッセージを暗号化した暗号化データが付加される。暗号化データには、誤り訂正用のＭＡＣが付加される。
【００３３】
ノンスは、データの暗号化時のパラメータの一つとして使用し、送信データメッセージのヘッダー部に付加される。ノンスには、ＥＰＯＣＨ値及びカウンタ値が含まれている。なお、ノンスには、ノードＩＤが含まれていてもよい。
【００３４】
ＥＰＯＣＨ値は、グループ鍵ＫＧｎの識別子である。ＥＰＯＣＨ値は、鍵情報制御装置Ｍによって、グループ鍵ＫＧｎが更新される度に変更される。鍵情報制御装置Ｍは、グループ鍵ＫＧｎを新たなものとする度に、ＥＰＯＣＨ値をインクリメントする。
【００３５】
カウンタ値は、ＥＰＯＣＨ値で識別されるグループ鍵ＫＧｎを用いて暗号化マルチキャストのパケット通信を行った回数を表す。このカウンタ値は、鍵情報制御装置Ｍ及び通信機器Ｎのそれぞれによって管理される。カウンタ値は、鍵情報制御装置Ｍ及び通信機器Ｎがデータを送信するごとにカウントアップされる。グループ鍵ＫＧｎの更新は、鍵情報制御装置Ｍによって、カウンタ値が最大値に達する前に実施される。
【００３６】
通信機器Ｎは、例えば図３に示すような機能的な各部を有している。通信機器Ｎは、プログラムを読み込んで実行可能なコンピュータである。通信機器Ｎは、コンピュータによってプログラムを実行することにより、図３に示すような各部として機能する。このプログラムは、本実施形態において、鍵情報制御装置Ｍと複数の通信機器Ｎとを含むネットワークにおいて使用されるグループ鍵を用いて暗号化データを通信する暗号化データ通信プログラム１５ａである。
【００３７】
通信機器Ｎは、送受信部１１、識別子検出部１２、鍵管理部１３、データ暗号処理部１４、記憶部１５、及び、乱数鍵テーブル１６を有する。
【００３８】
送受信部１１は、鍵情報制御装置Ｍとの間で通信を行う。送受信部１１は、受信したパケットに含まれるＩＰヘッダ、ＵＤＰヘッダを処理する受信処理を行う。また、送受信部１１は、送信する暗号化データにノンス値、ＵＤＰヘッダ、ＩＰヘッダを付加する。この送受信部１１は、マルチキャスト通信方式及びユニキャスト通信方式の何れかを選択して鍵情報制御装置Ｍと通信が可能である。
【００３９】
識別子検出部１２は、送受信部１１によって受信したパケットから識別子を検出する。識別子検出部１２は、ノンス値から、グループ鍵ＫＧｎを識別する鍵識別子（ＥＰＯＣＨ値）を検出する。識別子検出部１２は、識別子比較部１２ａ、閾値判定部１２ｂを有する。
【００４０】
識別子比較部１２ａは、鍵管理部１３により記憶された最新のグループ鍵ＫＧｎに対応したＥＰＯＣＨ値と、送受信部１１により受信した暗号化データと共に受信したＥＰＯＣＨ値とを比較する（識別子比較手段）。この識別子比較部１２ａによる比較結果は、鍵管理部１３によって参照される。
【００４１】
閾値判定部１２ｂは、鍵管理部１３により記憶された最新のグループ鍵ＫＧｎに対応したＥＰＯＣＨ値と、送受信部１１により受信した暗号データと共に受信したＥＰＯＣＨ値との差が所定の閾値を超えているか否かを判定する（閾値判定手段）。この所定の閾値は、後述するようにネットワークにおけるパケットロスの頻度が高いと判断できる値を設定してもよい。この閾値判定部１２ｂの判定結果は、鍵管理部１３によって参照される。この閾値判定部１２ｂの判定結果は、後述するように関数鍵を生成するかの判断基準となる。
【００４２】
鍵管理部１３は、鍵情報を管理する。鍵管理部１３は、通信機器Ｎのグループ鍵ＫＧｎを鍵情報制御装置Ｍから送信されたグループ鍵ＫＧｎに更新して記憶する（鍵管理手段）。このとき、鍵管理部１３は、グループ鍵ＫＧｎを乱数鍵テーブル１６に記憶させる。
【００４３】
鍵管理部１３は、自身の公開鍵及び秘密鍵、他の通信機器Ｎごとの固有秘密鍵（Ｋｎ）、鍵暗号化鍵ＫＥＫ（Key Encryption Key）、グループ鍵ＫＧｎを管理する。また、鍵管理部１３は、グループ鍵ＫＧｎに対応したＥＰＯＣＨ値を取得して乱数鍵テーブル１６に記憶しておく。さらに、鍵管理部１３は、自身で生成した関数鍵を乱数鍵テーブル１６に記憶しておく。
【００４４】
通信機器Ｎごとの固有秘密鍵（Ｋｎ）（ノード鍵）は、鍵情報制御装置Ｍから鍵暗号化鍵ＫＥＫを得るための鍵情報である。固有秘密鍵（Ｋｎ）は、事前に通信機器ＮのＩＤｎと同時に設定される。このノード鍵で、鍵交換配送部１３ａによって鍵暗号化鍵ＫＥＫを取得し、乱数鍵テーブル１６に記憶される。
【００４５】
鍵暗号化鍵ＫＥＫは、鍵の暗号化用の鍵である。鍵暗号化鍵ＫＥＫは、鍵情報制御装置Ｍが導出する。鍵暗号化鍵ＫＥＫは、通信機器Ｎとの認証、鍵配布時に全通信機器Ｎと鍵情報制御装置Ｍとで共有される。
【００４６】
グループ鍵ＫＧｎは、鍵情報制御装置Ｍ及び全ての通信機器Ｎ間で暗号化したマルチキャスト通信を行うための鍵情報である。グループ鍵ＫＧｎは、鍵情報制御装置Ｍが導出する。グループ鍵ＫＧｎは、鍵暗号化鍵ＫＥＫで暗号化され、マルチキャスト通信によって全ての通信機器Ｎに配布される。なお、グループ鍵ＫＧｎにおけるｎは鍵のバージョンである。鍵情報制御装置Ｍの鍵管理部１３によって新たに生成するごとに、ｎ＝１，２，３，・・・と増加される。
【００４７】
このグループ鍵ＫＧｎのうち、初期のグループ鍵ＫＧ１は、初期グループ鍵ＫＧ１として乱数鍵テーブル１６に保存される。このグループ鍵ＫＧ１は、関数鍵を生成するためのシード（Ｓｅｅｄ）として使用される。
【００４８】
ノード鍵Ｋｎ、初期グループ鍵ＫＧ１、グループ鍵ＫＧｎ、鍵暗号化鍵ＫＥＫは、鍵情報制御装置Ｍの乱数発生器により生成した乱数鍵である。この乱数鍵は、全単射を行う暗号化関数や一方向関数などの関数func(secret_seed) によって得た値が使用される。又は、乱数鍵は物理乱数が使用される。なお、通信機器Ｎは乱数発生器を持たない。
【００４９】
これに対し、鍵情報制御装置Ｍ及び通信機器Ｎにおいて関数鍵K'(g)は下記の関数funcを演算して生成される。
【００５０】
関数鍵K'(g)＝func（ＥＰＯＣＨ値，初期グループ鍵ＫＧ１)
すなわち、関数鍵K'(g)は、乱数鍵テーブル１６に記憶しているＥＰＯＣＨ値と初期グループ鍵ＫＧ１とをパラメータとして所定の関数によって演算した得た符号列となる。
【００５１】
鍵交換配送部１３ａは、鍵情報制御装置Ｍとの認証処理及び鍵配布処理において、鍵情報制御装置Ｍとの間で鍵配布を行う。鍵交換配送部１３ａは、乱数鍵テーブル１６に保存するために鍵暗号化鍵（ＫＥＫ）を得る。鍵交換配送部１３ａは、機器のＩＤｎに対応する固有秘密鍵Ｋｎで暗号化したデータＥＫｎ（ＫＥＫ）を機器の固有秘密鍵Ｋｎで復号化して、鍵暗号化鍵ＫＥＫを得る。また、鍵交換配送部１３ａは、鍵情報制御装置Ｍが導出した初期グループ鍵ＫＧ１、鍵暗号化鍵ＫＥＫを受信して乱数鍵テーブル１６に記憶させる。さらに、鍵交換配送部１３ａは、更新されたグループ鍵ＫＧｎ、ＥＰＯＣＨ値を取得して乱数鍵テーブル１６に記憶させる。
【００５２】
関数鍵生成部１３ｂは、所定の関数によって関数鍵K'(g)を生成する。関数鍵生成部１３ｂは、乱数鍵テーブル１６により記憶された初期グループ鍵ＫＧ１と、送受信部１１により受信した暗号化データと共に受信したＥＰＯＣＨ値とを用いて関数鍵K'(g)を生成する。
【００５３】
この関数鍵生成部１３ｂによって使用する関数は、一方向関数又は全単射等を行う暗号化関数であってもよい。このとき、関数鍵生成部１３ｂは、初期グループ鍵ＫＧ１（seed）と、受信したＥＰＯＣＨ値を入力する。そして、関数鍵生成部１３ｂは、一方向関数又は全単射系の暗号関数（DES、AES等）の関数で同鍵識別子（ＥＰＯＣＨ値）のグループ鍵ＫＧｎを導出する。なお、一方向関数としてはMD５、SHA-1、SHA２等が使用可能である。また、全単射系の暗号関数としては、DES、AES等が使用可能である。
【００５４】
関数鍵生成部１３ｂは、送受信部１１により受信した暗号化データの復号に失敗し、且つ、識別子比較部１２ａの比較結果又は閾値判定部１２ｂの判定結果に基づいて、関数鍵K'(g)を生成する。関数鍵生成部１３ｂは、識別子比較部１２ａにより比較された双方の識別子が異なる場合に関数鍵K'(g)を生成してもよい。又は、関数鍵生成部１３ｂは、関数鍵生成部１３ｂによる判定結果によって双方のＥＰＯＣＨ値の差が所定の閾値を超えた場合に関数鍵K'(g)を生成してもよい。
【００５５】
鍵選択部１３ｃは、乱数鍵テーブル１６に記憶したグループ鍵ＫＧｎのうち何れかのグループ鍵ＫＧｎを選択する。鍵選択部１３ｃは、閾値判定部１２ｂの判定結果を参照する。鍵選択部１３ｃは、閾値判定部１２ｂが判定したＥＰＯＣＨ値の差が所定の閾値を超えていないと判定された場合には乱数鍵テーブル１６に記憶されたグループ鍵ＫＧｎを選択する。鍵選択部１３ｃは、閾値判定部１２ｂが判定したＥＰＯＣＨ値の差が所定の閾値を超えていると判定された場合には関数鍵K'(g)を選択する。
【００５６】
データ暗号処理部１４は、鍵管理部１３における鍵選択部１３ｃにより選択された鍵情報を用いて暗号化処理を行う。また、データ暗号処理部１４は、乱数鍵テーブル１６に記憶された鍵情報のうち、何れかの鍵情報を用いて送受信部１１により受信した暗号化データを復号する。
【００５７】
なお、本実施形態において、グループ鍵ＫＧｎの暗号化処理は任意であればよい。例えば、グループ鍵ＫＧｎを鍵暗号化鍵ＫＥＫで暗号化する場合、鍵暗号化鍵ＫＥＫとグループ鍵ＫＧｎとのＸＯＲ処理を行ってもよい。また、暗号化処理、復号処理は、ＸＯＲ処理に限らず、ＡＥＳ（Advanced Encryption Standard）などの暗号化関数を使って暗号化することも可能である。
【００５８】
鍵情報制御装置Ｍは、例えば図４に示すような機能的な各部を有する。
【００５９】
鍵情報制御装置Ｍは、上述した通信機器Ｎに加え、鍵管理部１３に、乱数鍵生成部１３ｅを含む。乱数鍵生成部１３ｅは、通信機器Ｎとの認証処理及び鍵配布処理において、初期グループ鍵ＫＧ１を生成する。これにより、鍵情報制御装置Ｍは、自身の乱数鍵テーブル１６及び通信機器Ｎの乱数鍵テーブル１６に記憶しておく初期グループ鍵ＫＧ１を生成する。
【００６０】
また、乱数鍵生成部１３ｅは、所定期間ごとに、グループ鍵ＫＧｎを更新する。このとき、乱数鍵生成部１３ｅは、例えば温度といった物理事象から物理乱数を作ってもよく、簡易的に関数を用いて入力となる秘密の値（secret_seed）を乱数の種（シード（Seed）として用いてもよい。
【００６１】
なお、鍵情報制御装置Ｍは、関数鍵K'(g)を事前に鍵を生成してもよい。しかし、耐タンパー性の機能を持たない場合は、乱数鍵生成部１３ｅと同じ仕組みを使って、鍵情報制御装置Ｍでないデバイスを悪意のユーザがリバースエンジニアリングなどを用いグループ鍵を推測できてしまう。
【００６２】
そこで、悪意のデバイスに関数鍵K'(g)を推測されにくいように、通常、鍵情報制御装置Ｍは、関数鍵K'(g)を事前に生成せず、鍵識別子（EPOCH）の値がある閾値（例えば１０カウント）を相違がある場合に、関数鍵K'(g)を生成してもよい。また、鍵情報制御装置Ｍは、所定の時間以外には、関数鍵K'(g)の計算を禁止してもよい。
【００６３】
つぎに、上述した暗号化データ通信システムによる動作を説明する。
【００６４】
先ず、鍵情報制御装置Ｍと通信機器Ｎとの間でパケットロスが発生しない場合の動作について、図５を参照して説明する。なお、この動作説明においては、鍵情報制御装置Ｍ（通信機器Ｎ３）と通信機器Ｎ１と間の動作を説明する。
【００６５】
通信開始時において、通信機器Ｎ１は、ノード鍵としてのＫ１を乱数鍵テーブル１６に記憶している。鍵情報制御装置Ｍは、通信機器Ｎ１のノード鍵としてのＫ１を乱数鍵テーブル１６に記憶している。また、鍵情報制御装置Ｍは、鍵暗号化鍵ＫＥＫを生成して乱数鍵テーブル１６に記憶している。
【００６６】
先ず、セットアッププロセスにおいて、鍵情報制御装置Ｍは、鍵暗号化鍵ＫＥＫを通信機器Ｎ１のＫ１で暗号化したパケットを生成し、ユニキャスト通信によって通信機器Ｎ１に送信する。このパケットは通信機器Ｎ１により受信される。通信機器Ｎ１は、自身のノード鍵としてのＫ１を用いてパケットを復号する。これにより、通信機器Ｎ１は、鍵暗号化鍵ＫＥＫを受信できる。
【００６７】
次に鍵情報制御装置Ｍは、初期グループ鍵ＫＧ１を生成する。鍵情報制御装置Ｍは、鍵暗号化鍵ＫＥＫによって初期グループ鍵ＫＧ１を暗号化する。鍵情報制御装置Ｍは、暗号化した初期グループ鍵ＫＧ１とＥＰＯＣＨ値（１）を含むパケットを生成する。鍵情報制御装置Ｍは、生成したデータパケットをグループ鍵ＫＧ１〜ＫＧｎで暗号化したマルチキャスト通信によって送信する。
【００６８】
なお、通信機器Ｎ１は、鍵暗号化鍵ＫＥＫの有効期間内に他の通信機器Ｎから要求が発生した場合には、セットアッププロセスにて同じ鍵暗号化鍵ＫＥＫを機器のノード鍵（Ｋｎ）で暗号化してユニキャスト通信してもよい。
【００６９】
通信機器Ｎ１は、鍵情報制御装置Ｍから送信されたマルチキャストパケットを受信すると、鍵暗号化鍵ＫＥＫを用いて初期グループ鍵ＫＧ１を復号する。さらに、マルチキャストパケットからＥＰＯＣＨ値（１）を得ることができる。
【００７０】
次に鍵情報制御装置Ｍは、初期グループ鍵ＫＧ１によりデータ（１）を暗号化する。暗号化データは、ＥＰＯＣＨ値（１）と共に、マルチキャスト通信によって送信される。通信機器Ｎは、マルチキャストパケットを受信する。通信機器Ｎは、マルチキャストパケットの暗号化データを初期グループ鍵ＫＧ１により復号して、データ（１）を得る。
【００７１】
同様に、鍵情報制御装置Ｍは、データ（２）を初期グループ鍵ＫＧ１により暗号化し、マルチキャスト通信によって送信する。通信機器Ｎは、マルチキャストパケットを受信すると、乱数鍵テーブル１６からグループ鍵ＫＧ１を取り出し、暗号化データを復号して、データ（２）を得る。
【００７２】
通信機器Ｎ１からデータ（３）を送信する場合、通信機器Ｎ１は、グループ鍵ＫＧ１を用いてデータ（３）を暗号化する。この暗号化データは、マルチキャスト通信によって配信される。
【００７３】
鍵情報制御装置Ｍは、通信機器Ｎ１から送信されたマルチキャストパケットを受信する。鍵情報制御装置Ｍは、グループ鍵ＫＧ１を用いて暗号化データを復号する。これにより、鍵情報制御装置Ｍは通信機器Ｎ１により生成したデータ（３）を得ることができる。
【００７４】
初期グループ鍵ＫＧ１を用いた通信が繰り返されて、通信回数が所定の上限値に達すると、鍵情報制御装置Ｍは、新たなグループ鍵ＫＧ２を生成する。このとき、鍵情報制御装置Ｍは、例えばカウンタ値が全てビットが１になっている（例えば３２ビットなら２＾３２−１）か否かを判定し、上限値となっているか否かを判定する。カウンタ値が上限値である場合、鍵更新（Rekey）処理を実行する。鍵情報制御装置Ｍは、鍵暗号化鍵ＫＥＫによってグループ鍵ＫＧ２を暗号化し、ＥＰＯＣＨ値（２）を含むマルチキャストパケットを送信する。
【００７５】
通信機器Ｎ１は、マルチキャストパケットを受信すると、暗号化データを鍵暗号化鍵ＫＥＫにより復号して、グループ鍵ＫＧ２を得る。また、通信機器Ｎ１は、ノンス値からＥＰＯＣＨ値（２）を取得する。
【００７６】
これにより、鍵情報制御装置Ｍからグループ鍵ＫＧ２により暗号化したデータ（ｋ）とＥＰＯＣＨ値（２）を含むマルチキャストパケットを送信しても、通信機器Ｎ１は、グループ鍵ＫＧ２により復号して、データ（ｋ）を受信できる。また、通信機器Ｎ１は、自身が生成したデータ（ｋ＋１）をグループ鍵ＫＧ２により暗号化し、ＥＰＯＣＨ値（２）を含むマルチキャストパケットを送信できる。このマルチキャストパケットは、鍵情報制御装置Ｍにより受信され、グループ鍵ＫＧ２によって復号される。これによって鍵情報制御装置Ｍはデータ（ｋ＋１）を取得できる。
【００７７】
このような通信を行う暗号化データ通信システムにおいて、ノイズや通信機器Ｎのスリープ動作によって、図６に示すように、鍵情報制御装置Ｍから通信機器Ｎに送信したマルチキャストパケットが通信機器Ｎ１に届かないことがある。図６の例では、ＥＰＯＣＨ値（２）、鍵暗号化鍵ＫＥＫにより暗号化したグループ鍵ＫＧ２が通信機器Ｎ１に届く前に消失したとする。
【００７８】
この後、図６に示すように、鍵情報制御装置Ｍからデータ（ｋ）を含むマルチキャストパケットを送信し、通信機器Ｎ１は、マルチキャストパケットを受信できとする。しかし、通信機器Ｎ１は、乱数鍵テーブル１６に記憶している初期グループ鍵ＫＧ１を用いてマルチキャストパケットを復号できない。
【００７９】
これに対し、図７に示すように、通信機器Ｎ１は、識別子比較部１２ａによって自身の乱数鍵テーブル１６に記憶しているＥＰＯＣＨ値（１）とマルチキャストパケットに含まれたＥＰＯＣＨ値（２）とを比較する。この比較の結果、識別子検出部１２は、双方のＥＰＯＣＨ値が異なると判定する。この場合、通信機器Ｎ１は、関数鍵生成部１３ｂによって関数鍵K'(g)を生成する。このとき、通信機器Ｎ１は、初期グループ鍵ＫＧ１と受信したマルチキャストパケットに含まれるＥＰＯＣＨ値（２）とを用いて関数鍵K'(g)を生成する（ここではＫＧ２=Ｋ´）。
【００８０】
その後、図８に示すように、鍵情報制御装置Ｍによって関数鍵K'(g)を生成する。鍵情報制御装置Ｍは、関数鍵K'(g)によってデータ（ｋ）を暗号化し、最新のＥＰＯＣＨ値（２）を含むマルチキャストパケットを送信する。
【００８１】
通信機器Ｎ１は、マルチキャストパケットを受信すると、自身で生成した関数鍵K'(g)によってマルチキャストパケットを復号する。このとき、マルチキャストパケットは関数鍵K'(g)によって暗号化されているので、データ暗号処理部１４は、マルチキャストパケットの復号に成功できる。
【００８２】
通信機器Ｎ１は、図８に示すように、関数鍵K'(g)に切り替えて暗号化データを復号して、マルチキャストパケットの受信を完了すると、データ（ｋ＋１）を関数鍵K'(g)を用いて暗号化して送信できる。
【００８３】
鍵情報制御装置Ｍは、通信機器Ｎ１から送信されたマルチキャストを受信すると、先に生成した関数鍵K'(g)を用いてマルチキャストに含まれた暗号化データを復号できる。これにより鍵情報制御装置Ｍは、通信機器Ｎ１が生成したデータ（ｋ＋１）を取得できる。
【００８４】
一方、関数鍵K'(g)は、図９に示すように、通信機器Ｎ１が鍵情報制御装置Ｍにデータ（ｋ）を送信した場合にも、鍵情報制御装置Ｍによって認識される。このとき、鍵情報制御装置Ｍは、通信機器Ｎ１から送信されたマルチキャストパケットに含まれた暗号化データを、グループ鍵ＫＧ２を用いて復号しようとしても、失敗する。
【００８５】
これに応じ、鍵情報制御装置Ｍは、識別子比較部１２ａによって自身の乱数鍵テーブル１６に記憶しているＥＰＯＣＨ値（２）とマルチキャストパケットに含まれたＥＰＯＣＨ値（１）とを比較する。この比較の結果、識別子検出部１２は、双方のＥＰＯＣＨ値が異なると判定する。この場合、鍵情報制御装置Ｍは、関数鍵生成部１３ｂによって関数鍵K'(g)を生成する。このとき、鍵情報制御装置Ｍは、初期グループ鍵ＫＧ１と受信したマルチキャストパケットに含まれるＥＰＯＣＨ値（１）とを用いて関数鍵K'(g)を生成する。その後、図８のＫ´の鍵を鍵暗号化鍵ＫＥＫで暗号化して送信する。これを通信機器Ｎ１が受け取れば図８のプロセスで通信が成功する。
【００８６】
また、この暗号化データ通信システムにおいて、図１０に示すように、最新のグループ鍵ＫＧ２が通信機器Ｎ１により受信できない場合、通信機器Ｎ１は、古いＥＰＯＣＨ値（１）及び初期グループ鍵ＫＧ１によりデータ（ｋ）を送信してしまう。この場合、鍵情報制御装置Ｍは、受信したＥＰＯＣＨ値（１）が最新のＥＰＯＣＨ値（２）とはずれていることを検出する。すると、鍵情報制御装置Ｍは、関数鍵生成部１３ｂの関数鍵K'(g)用いるように切り替える。鍵情報制御装置Ｍは、ＥＰＯＣＨ値を更新し、ＥＰＯＣＨ値（３）と初期グループ鍵ＫＧ１とを用いて関数鍵K'(g)を生成する。
【００８７】
鍵情報制御装置Ｍは、生成した関数鍵K'(g)を用いる場合に、新たなＥＰＯＣＨ値（３）に切り替え、鍵暗号化鍵ＫＥＫによって関数鍵K'(g)を暗号化してマルチキャストパケットを送信する。このマルチキャストパケットが通信機器Ｎ１に届かない場合であっても、鍵情報制御装置Ｍは、以降の通信を、関数鍵K'(g)を用いて行う。
【００８８】
この後、通信機器Ｎ１に鍵情報制御装置Ｍ又は他の通信機器Ｎからマルチキャストパケットが送信され、通信機器Ｎ１に受信された場合、通信機器Ｎ１は、自身のＥＰＯＣＨ値（１）が最新のＥＰＯＣＨ値（３）とは異なることを検出する。これにより、通信機器Ｎ１は、最新のＥＰＯＣＨ値（３）と初期グループ鍵ＫＧ１とを用いて関数鍵K'(g)を生成できる。
【００８９】
その後、鍵情報制御装置Ｍから関数鍵K'(g)を用いて暗号化した暗号化データを含むマルチキャストパケットが送信されると、通信機器Ｎ１は、暗号化鍵を乱数鍵から関数鍵K'(g)に切り替えて復号できる。
【００９０】
つぎに、上述した暗号化データ通信システムにおける通信機器Ｎ１の内部処理について、図１１を参照して説明する。
【００９１】
先ずステップＳ１において、通信機器Ｎ１は、送受信部１１により、自己のノード鍵Ｋ１で鍵暗号化鍵ＫＥＫを暗号化したパケットを受信する。通信機器Ｎ１は、データ暗号処理部１４により、乱数鍵テーブル１６からノード鍵Ｋ１を取り出して復号する。これにより、通信機器Ｎ１は、鍵暗号化鍵ＫＥＫを得る。
【００９２】
次のステップＳ２において、通信機器Ｎ１は、送受信部１１により、鍵暗号化鍵ＫＥＫにより暗号化された初期グループ鍵ＫＧ１を受信する。
【００９３】
次のステップＳ３において、通信機器Ｎ１は、データ暗号処理部１４により復号を行って、初期グループ鍵ＫＧ１を得る。初期動作以外において、通信機器Ｎ１は、最新のグループ鍵ＫＧｎを得ることができる。また、通信機器Ｎ１は、暗号化データと共に送信された最新のＥＰＯＣＨ値を得ることができる。また、ステップＳ３において、通信機器Ｎ１は、データ（ｋ）を配信するマルチキャストパケットを受信した場合、最新のＥＰＯＣＨ値に加えて、最新のグループ鍵ＫＧｎで暗号化されたデータ（ｋ）を得る。
【００９４】
ここで、鍵情報制御装置Ｍから送信された最新のグループ鍵ＫＧｎを受信できていない場合、通信機器Ｎ１は、ステップＳ３でグループ鍵ＫＧｎを用いて復号しても失敗してしまう。
【００９５】
次のステップＳ４において、通信機器Ｎ１は、閾値判定部１２ｂにより、乱数鍵テーブル１６に記憶しているＥＰＯＣＨ値とステップＳ３にて得た最新のＥＰＯＣＨ値の相違（差）が、所定の閾値ＶＴＨを超えているか否かを判定する。双方のＥＰＯＣＨ値の相違が所定の閾値ＶＴＨを超えている場合にはステップＳ５に処理を進め、双方のＥＰＯＣＨ値の相違が所定の閾値ＶＴＨを超えていない場合にはステップＳ７に処理を進める。
【００９６】
ステップＳ７において、通信機器Ｎ１は、鍵選択部１３ｃにより、乱数鍵テーブル１６に記憶している乱数鍵としてのグループ鍵ＫＧｎを選択する。これにより、通信機器Ｎ１は、以降に送信されたパケットに含まれる暗号化データを、グループ鍵ＫＧｎにより復号する設定となる。
【００９７】
ステップＳ５において、通信機器Ｎ１は、閾値判定部１２ｂの判定結果に応じて、関数鍵生成部１３ｂにより関数鍵K'(g)の計算を行う。このとき、関数鍵生成部１３ｂは、ステップＳ３で得た最新のＥＰＯＣＨ値と乱数鍵テーブル１６に記憶している初期グループ鍵ＫＧ１とを用いて新たな関数鍵K'(g)を生成する。
【００９８】
次のステップＳ６において、通信機器Ｎ１は、ステップＳ５にて生成した関数鍵K'(g)を用いて復号を行い、データ（ｋ）を受信する。
【００９９】
次のステップＳ８において、通信機器Ｎ１は、送信すべきデータがある場合に、データ暗号処理部１４により、ステップＳ３で受信した最新のグループ鍵ＫＧｎ又はステップＳ５で計算した関数鍵K'(g)で暗号化を行う。通信機器Ｎ１は、暗号化データに最新のＥＰＯＣＨ値を含めたパケットを生成し、送受信部１１により送信する。
【０１００】
つぎに、上述した暗号化データ通信システムにおける鍵情報制御装置Ｍの内部処理について、図１２を参照して説明する。
【０１０１】
先ずステップＳ１１において、鍵情報制御装置Ｍは、送受信部１１により、送信相手に応じたノード鍵Ｋ１で鍵暗号化鍵ＫＥＫを暗号化したパケットを送信する。このとき、通信機器Ｎ１は、データ暗号処理部１４により、乱数鍵テーブル１６からノード鍵Ｋ１を取り出して暗号化する。
【０１０２】
次のステップＳ１２において、鍵情報制御装置Ｍは、タイマ部１３ｄにより計時しているタイマ値が、所定の閾値ＴＨｉｂｒｉｄ＿Ａｌｌｏｗよりも小さいか否かを判定する。この所定の閾値は、暗号化に使用する鍵として、乱数鍵としてのグループ鍵ＫＧｎと関数鍵K'(g)とを併用する期間が設定されている。この関数鍵K'(g)を使用する期間は、セキュリティの観点より、できる限り短い方が好ましい。タイマ値が所定の閾値よりも小さい場合にはステップＳ１３に処理を進め、そうでない場合にはステップＳ１５に処理を進める。
【０１０３】
ステップＳ１３において、鍵情報制御装置Ｍは、タイマ部１３ｄによりタイマ値をインクリメントする。
【０１０４】
次のステップＳ１４において、鍵情報制御装置Ｍは、鍵選択部１３ｃにより、関数鍵K'(g)を計算する。このとき、鍵選択部１３ｃは、最新のＥＰＯＣＨ値と初期グループ鍵ＫＧ１とを用いて関数鍵K'(g)を演算する。
【０１０５】
ステップＳ１５において、鍵情報制御装置Ｍは、タイマ部１３ｄにより計時しているタイマ値をクリアする。
【０１０６】
次のステップＳ１６において、鍵情報制御装置Ｍは、乱数鍵生成部１３ｅにより新たな乱数鍵としてのグループ鍵ＫＧｎを生成する。このとき、乱数鍵生成部１３ｅは、所定の関数Funcによりシード（Secret_Seed）を演算して、グループ鍵ＫＧｎを生成する。
【０１０７】
次のステップＳ１７において、鍵情報制御装置Ｍは、鍵交換配送部１３ａの制御により、データ暗号処理部１４によってステップＳ１６にて生成したグループ鍵ＫＧｎを鍵暗号化鍵ＫＥＫにより暗号化する。そして、鍵情報制御装置Ｍは、送受信部１１によって、暗号化データを含むパケットをマルチキャスト通信により送信する。
【０１０８】
次のステップＳ１８において、鍵情報制御装置Ｍは、送受信部１１により、最新のＥＰＯＣＨ値と、グループ鍵ＫＧｎにより暗号化したデータを送信する。また、鍵情報制御装置Ｍは、送受信部１１によりパケットを受信した場合、ＥＰＯＣＨ値を取り出し、グループ鍵ＫＧｎにより復号する。
【０１０９】
次のステップＳ１９において、鍵情報制御装置Ｍは、閾値判定部１２ｂにより、乱数鍵テーブル１６に記憶しているＥＰＯＣＨ値と最新のＥＰＯＣＨ値の相違（差）が、所定の閾値ＶＴＨを超えているか否かを判定する。双方のＥＰＯＣＨ値の相違が所定の閾値ＶＴＨを超えている場合にはステップＳ２０に処理を進め、双方のＥＰＯＣＨ値の相違が所定の閾値ＶＴＨを超えていない場合にはステップＳ２３に処理を進める。
【０１１０】
ステップＳ２３において、鍵情報制御装置Ｍは、鍵選択部１３ｃにより、乱数鍵テーブル１６に記憶している乱数鍵としてのグループ鍵ＫＧｎを選択する。これにより、鍵情報制御装置Ｍは、以降に送信されたパケットに含まれる暗号化データを、グループ鍵ＫＧｎにより復号する設定となる。
【０１１１】
ステップＳ２０において、鍵情報制御装置Ｍは、閾値判定部１２ｂの判定結果に応じて、関数鍵生成部１３ｂにより関数鍵K'(g)の計算を行う。このとき、関数鍵生成部１３ｂは、最新のＥＰＯＣＨ値と乱数鍵テーブル１６に記憶している初期グループ鍵ＫＧ１とを用いて新たな関数鍵K'(g)を生成する。
【０１１２】
次のステップＳ２１において、鍵情報制御装置Ｍは、ステップＳ２０にて生成した関数鍵K'(g)を用いて復号を行い、データ（ｋ）を受信する。
【０１１３】
次のステップＳ２２において、鍵情報制御装置Ｍは、送信すべきデータがある場合に、データ暗号処理部１４により、ステップＳ３で受信した最新のグループ鍵ＫＧｎ又はステップＳ５で計算した関数鍵K'(g)で暗号化を行う。通信機器Ｎ１は、暗号化データに最新のＥＰＯＣＨ値を含めたパケットを生成し、送受信部１１により送信する。
【０１１４】
以上のように、鍵情報制御装置Ｍ及び通信機器Ｎ（暗号化データ通信装置）は、鍵情報制御装置Ｍと複数の通信機器Ｎとを含むネットワークにおいて使用されるグループ鍵を用いて暗号化データを通信する。鍵情報制御装置Ｍ及び通信機器Ｎは、グループ鍵により暗号化された暗号化データを送受信する通信手段(11)を有する。鍵情報制御装置Ｍ及び通信機器Ｎは、通信機器Ｎのグループ鍵を鍵情報制御装置Ｍから送信されたグループ鍵に更新して記憶する鍵管理手段(13,16)を有する。さらに、鍵情報制御装置Ｍ及び通信機器Ｎは、鍵管理手段により記憶されたグループ鍵の初期鍵と、通信手段により受信した暗号化データと共に受信した鍵識別子とを用いて関数鍵を生成する関数鍵生成手段(13b)を有する。さらに鍵情報制御装置Ｍ及び通信機器Ｎは、鍵管理手段により記憶された最新のグループ鍵に対応した鍵識別子と、通信手段により受信した暗号化データと共に受信した鍵識別子とを比較する識別子比較手段(12a)を有する。さらに、鍵情報制御装置Ｍ及び通信機器Ｎは、識別子比較手段により比較された双方の識別子が同じ場合に、鍵管理手段により記憶されたグループ鍵により通信手段により受信した暗号化データを復号する復号手段(14)を有する。さらに鍵情報制御装置Ｍ及び通信機器Ｎは、識別子比較手段により比較された双方の識別子が異なる場合に、関数鍵生成手段により生成した関数鍵により通信手段により受信した暗号化データを復号する復号手段(14)を有する。
【０１１５】
この暗号化データ通信システムによれば、ＥＰＯＣＨ値が自己のＥＰＯＣＨ値とは異なる場合に、関数鍵K'(g)を計算して暗号データを復号できる。また、以降の通信を、新たなＥＰＯＣＨ値を用い、計算した関数鍵K'(g)で暗号化した暗号化データを含めることができる。
【０１１６】
この暗号化データ通信システムによれば、パケット損出の多いネットワーク環境(Lossy)やスリープデバイスが存在するネットワーク構成であっても、鍵配送回数の増加を抑制して暗号データ通信を継続することができる。
【０１１７】
例えば、暗号化データ通信システムが複数の通信機器Ｎとしてエネルギー管理のデバイスであり電力消費を制御するシステムであるとする。電力は同時同量を確保するという課題があり、緊急性の高いエネルギー削減命令が発生する可能性がある。この緊急時において暗号鍵の不整合といった通信トラブルが発生すると、システムとして機能しないこととなる。
【０１１８】
これに対し、本実施形態の暗号化データ通信システムによれば、パケットロスに起因するグループ鍵ＫＧｎが不整合となる通信トラブルを解決できる。すなわち、暗号化データ通信システムによれば、グループ鍵ＫＧｎが不整合な通信機器Ｎが存在する場合には、一時的に欄数鍵から関数鍵K'(g)に切り替えて通信ができる。これにより、この暗号化データ通信システムによれば、緊急性の高い暗号メッセージを取りこぼすことを抑制し、制御系の即時性を担保できる。
【０１１９】
また、この暗号化データ通信システムによれば、最新のグループ鍵に対応したＥＰＯＣＨ値と、受信した暗号データと共に受信したＥＰＯＣＨ値との差が所定の閾値を超えているか否かを判定する。これにより、この暗号化データ通信システムによれば、ＥＰＯＣＨ値の差の度合いに応じて、関数鍵K'(g)を使用するか否かを判断できる。すなわち、パケットロスが激しいと判断しない場合には、関数鍵K'(g)を使わずに、安全な乱数ベースのグループ鍵ＫＧｎを用いて鍵配布を行うことができる。
【０１２０】
さらに、この暗号化データ通信システムによれば、乱数等（シードを秘密にする関数を使った乱数生成又は物理乱数）で生成したグループ鍵ＫＧｎを用いることで鍵の推測の困難性を高めることができる。
【０１２１】
さらに、この暗号化データ通信システムによれば、鍵選択部１３ｃにより、ＥＰＯＣＨ値の差が所定の閾値を超えていない場合にはグループ鍵ＫＧｎを選択し、ＥＰＯＣＨ値の差が所定の閾値を超えている場合には関数鍵K'(g)を選択できる。この暗号化データ通信システムによれば、より安全な乱数鍵を鍵配布し、可能な限りグループ鍵ＫＧｎを用いて、システムとしての安全性を高めることができる。
【０１２２】
さらに、この暗号化データ通信システムによれば、鍵選択部１３ｃにより、関数鍵K'(g)を使用して所定時間を計数した場合に、関数鍵K'(g)からグループ鍵ＫＧｎに戻すことができる。これにより、関数鍵K'(g)の許容時間を設定して緊急性の高い通信が必要な場合に関数鍵K'(g)を使用し、所定時間の経過によって自動的にグループ鍵ＫＧｎに戻すことができ、セキュリティ性の低下を抑制できる。
【０１２３】
さらに、暗号化データ通信システムによれば、鍵情報制御装置Ｍによって、ＥＰＯＣＨ値の差が所定の閾値を超えている場合に、鍵交換配送部１３ａにより関数鍵K'(g)を通信機器Ｎに配布する。これにより、この暗号化データ通信システムによれば、鍵情報制御装置Ｍ自体が乱数鍵と関数鍵K'(g)とを切り替えることを判断でき、セキュリティ性の低下を抑制できる。
【０１２４】
さらに、この暗号化データ通信システムによれば、鍵情報制御装置Ｍの鍵交換配送部１３ａにより、所定時間を計数した場合に、関数鍵K'(g)から乱数鍵としてのグループ鍵ＫＧｎに切り替えて通信機器Ｎに配布できる。これにより、鍵情報制御装置Ｍによれば、緊急性の高い通信の許容時間を設定し、関数鍵K'(g)を使用することによるセキュリティ性の低下を抑制できる。
【０１２５】
さらに、この暗号化データ通信システムによれば、鍵情報制御装置Ｍによって通信機器Ｎにグループ鍵ＫＧｎを設定する時に、通信機器Ｎにユニキャスト通信によって初期グループ鍵ＫＧ１を送信する。これにより、暗号化データ通信システムのパケットロスが激しい場合であっても、初期グループ鍵ＫＧ１を確実に通信機器Ｎに送信できる。したがって、この暗号化データ通信システムによれば、緊急時に初期グループ鍵ＫＧ１を用いた関数鍵K'(g)を生成する動作を全ての通信機器Ｎで行うことができる。
【０１２６】
さらに、この暗号化データ通信システムによれば、関数鍵K'(g)を生成して暗号化データを復号した後、関数鍵K'(g)を用いて暗号化した暗号化データを含むパケットを送信できる。これにより、緊急性の高い暗号メッセージを受信側の通信機器Ｎで復号できるのみならず、メッセージの送信側も緊急性の高い応答としての暗号メッセージを即座に同期して通信できる。特に双方向通信の場合、送信に対する返信をスムースに処理するために送信側で最新のＥＰＯＣＨ値に調整して送ることは通信の応答性能を向上させる。
【０１２７】
なお、上述の実施の形態は本発明の一例である。このため、本発明は、上述の実施形態に限定されることはなく、この実施の形態以外であっても、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能であることは勿論である。
【符号の説明】
【０１２８】
Ｍ  鍵情報制御装置
Ｎ、Ｎ１、Ｎ２、Ｎ３  全通信機器
１１  送受信部
１２  識別子検出部
１２ａ  識別子比較部
１２ｂ  閾値判定部
１３  鍵管理部
１３ａ  鍵交換配送部
１３ｂ  関数鍵生成部
１３ｃ  鍵選択部
１３ｄ  タイマ部
１３ｅ  乱数鍵生成部
１４  データ暗号処理部
１５  記憶部
１５ａ  暗号化データ通信プログラム
１６  乱数鍵テーブル
【図１】
2015133573.tif 000003
【図２】
2015133573.tif 000004
【図３】
2015133573.tif 000005
【図４】
2015133573.tif 000006
【図５】
2015133573.tif 000007
【図６】
2015133573.tif 000008
【図７】
2015133573.tif 000009
【図８】
2015133573.tif 000010
【図９】
2015133573.tif 000011
【図１０】
2015133573.tif 000012
【図１１】
2015133573.tif 000013
【図１２】
2015133573.tif 000014