(57)【要約】  更新要求の送信に関する時間遅延をコンピュータデバイスによって決定するための方法が記載されている。コンピュータデバイスによって第１のランダムな遅延時間の終わりに第１更新要求を送信する。第１負荷データを受信する。コンピュータデバイスによって最大更新パラメータの終わりに第２更新要求を送信する。第２負荷データを受信する。第１負荷データを第２負荷データと比較する。第１負荷データが第２負荷データと異なる場合、次の更新時間を調整する。
2010517333.tif 000002
【特許請求の範囲】
【請求項１】
鍵の更新要求の送信に関する時間遅延をコンピュータデバイスによって決定するための方法であって：
コンピュータデバイスによって第１のランダムな遅延時間の終わりに第１更新要求を送信すること；
第１負荷データを受信すること；
コンピュータデバイスによって最大更新パラメータの終わりに第２更新要求を送信すること；
第２負荷データを受信すること；
第１負荷データを第２負荷データと比較すること；および
第１負荷データが第２負荷データと異なる場合、次の更新時間を調整すること
を含んでいる方法。
【請求項２】
第１負荷データが第２負荷データと異なる場合、最大更新パラメータが、第１のランダムな遅延時間とは異なる遅延時間を含んでいる、請求項１に記載の方法。
【請求項３】
第１のランダムな遅延時間が、第１更新要求を送信する前の待機時間を示す時間遅延を含んでいる、請求項１に記載の方法。
【請求項４】
認証サーバに対して認証要求を送信することをさらに含んでいる、請求項１に記載の方法。
【請求項５】
認証サーバから認証鍵を受信することをさらに含んでいる、請求項４に記載の方法。
【請求項６】
認証鍵が、鍵交換鍵（ＫＥＫ）を含んでいる、請求項５に記載の方法。
【請求項７】
第１更新要求および第２更新要求が、ＫＥＫに対する変更の要求を含んでいる、請求項１に記載の方法。
【請求項８】
最大更新パラメータが、第２更新要求を送信する前にノードが待機する最大時間量を含んでいる、請求項１に記載の方法。
【請求項９】
第１更新要求が、最大更新パラメータによって示される時間より短い時間単位を含んでいる、請求項１に記載の方法。
【請求項１０】
第１負荷データおよび第２負荷データが、以前の時間単位の間に認証サーバが受けていた負荷を示すパラメータを含んでいる、請求項１に記載の方法。
【請求項１１】
鍵の更新要求の送信に関する時間遅延を決定するように構成されているコンピュータデバイスであって：
プロセッサと；
プロセッサと電子通信するメモリと；
メモリに格納されている命令と；を備えており、
上記命令は、
第１のランダムな遅延時間の終わりに第１更新要求を送信すること；
第１負荷データを受信すること；
最大更新パラメータの終わりに第２更新要求を送信すること；
第２負荷データを受信すること；
第１負荷データを第２負荷データと比較すること；および
第１負荷データが第２負荷データと異なる場合、次の更新時間を調整すること
を含むコンピュータデバイス。
【請求項１２】
第１負荷データが第２負荷データと異なる場合、最大更新パラメータが、第１のランダムな遅延時間とは異なる遅延時間を含んでいる、請求項１１に記載のコンピュータデバイス。
【請求項１３】
第１のランダムな遅延時間が、第１更新要求を送信する前の待機時間を示す時間遅延を含んでいる、請求項１１に記載のコンピュータデバイス。
【請求項１４】
認証サーバに送信される認証要求をさらに含んでいる、請求項１１に記載のコンピュータデバイス。
【請求項１５】
認証サーバから受信される認証鍵をさらに含んでいる、請求項１４に記載のコンピュータデバイス。
【請求項１６】
認証鍵が、鍵交換鍵（ＫＥＫ）を含んでいる、請求項１５に記載のコンピュータデバイス。
【請求項１７】
第１更新要求および第２更新要求が、ＫＥＫに対する変更の要求を含んでいる、請求項１１に記載のコンピュータデバイス。
【請求項１８】
鍵の更新要求の送信に関する時間遅延を決定するための実行可能な命令を含んでいるコンピュータ読み込み可能媒体であって、
上記命令は：
第１のランダムな遅延時間の終わりに第１更新要求を送信すること；
第１負荷データを受信すること；
最大更新パラメータの終わりに第２更新要求を送信すること；
第２負荷データを受信すること；
第１負荷データを第２負荷データと比較すること；および
第１負荷データが第２負荷データと異なる場合、次の更新時間を調整すること
を含むコンピュータ読み込み可能媒体。
【請求項１９】
第１負荷データが第２負荷データと異なる場合、最大更新パラメータが、第１のランダムな遅延時間とは異なる遅延時間を含んでいる、請求項１８に記載のコンピュータ読み込み可能媒体。
【請求項２０】
第１のランダムな遅延時間が、第１更新要求を送信する前の待機時間を示す時間遅延を含んでいる、請求項１８に記載のコンピュータ読み込み可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、コンピュータおよびコンピュータ関連技術に関する。より詳細には、本発明は、鍵の更新要求の送信に関する時間遅延を決定するためのシステムおよび方法に関連する。
【背景技術】
【０００２】
コンピュータおよび通信技術は、急速に進歩し続けている。実際、コンピュータおよび通信技術は、人々の日常における多くの局面に関与している。例えば、今日、消費者によって使用されている多くのデバイスは、そのデバイス内に、小型のコンピュータを備えている。これらの小型のコンピュータは、様々なサイズ、および、様々な程度の精巧さを備えた形で提供されている。これらの小型のコンピュータは、１つのマイクロコントローラから、十分な機能を有する完全なコンピュータシステムまでの全てを含んでいる。例えば、これらの小型のコンピュータは、マイクロコントローラなどのワンチップのコンピュータ、コントローラなどのワンボードタイプのコンピュータ、ＩＢＭ−ＰＣ互換機などの一般的なデスクトップコンピュータなどであってよい。
【０００３】
コンピュータは、一般的に、コンピュータの心臓部に１つ以上のプロセッサを有している。プロセッサは、通常、異なる外部入力部および外部出力部に相互接続されており、さらに、特定のコンピュータあるいはデバイスを管理するように機能する。例えば、サーモスタット内のプロセッサは、温度設定を選択するために使用されるボタン、温度を変化させる加熱炉あるいは空気調節装置、および、現在の温度を読み取ってディスプレイに表示する温度センサに接続されていてよい。
【０００４】
多くの電化製品やデバイスなどは１つ以上の小型のコンピュータを含んでいる。例えば、サーモスタット、加熱炉、空気調節システム、冷蔵庫、電話、タイプライタ、自動車、自動販売機、および多くの異なるタイプの工業設備は、現在では、一般的に、小型のコンピュータすなわちプロセッサをそれらの内部に有している。コンピュータソフトウェアは、これらのコンピュータのプロセッサを駆動し、プロセッサに対して、特定のタスクを実行する方法を指示する。例えば、サーモスタット上で起動しているコンピュータソフトウェアは、特定の温度に達したときに空気調節装置の駆動を停止する一方、必要なときにヒータのスイッチを入れることができる。
【０００５】
デバイス、電化製品、ツールなどの一部をなしている前記したタイプの小型のコンピュータは、しばしば、組み込みデバイスあるいは組み込みシステムと称される（これらの用語「組み込みデバイス」および「組み込みシステム」は、本明細書では、互換的に使用される）。組み込みシステムは、通常、より大きいシステムの一部をなすコンピュータハードウェアおよびソフトウェアを称する。組み込みシステムは、キーボード、マウスおよび／またはモニタなどの一般的な入出力デバイスを有さないこともある。通常、各組み込みシステムの心臓部には、１つ以上のプロセッサがある。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
組み込みシステムを使用して、多くの異なるシステム、リソース、製品などをモニタリングあるいは制御することができる。インターネットおよびワールドワイドウェブの成長に伴って、組み込みシステムは、遠隔的にモニタリングおよび／または制御され得るように次第にインターネットに接続されてきている。他の組み込みシステムを、ローカルエリアネットワーク、ワールドエリアネットワークなどを含むコンピュータネットワークに接続することができる。本明細書で使用されている「コンピュータネットワーク」という用語（あるいは、単なる「ネットワーク」）は、一連のノードが通信経路によって相互接続されている任意のシステムを称する。「ノード」という用語は、コンピュータネットワークの一部として接続され得る任意のデバイスを称する。
【０００７】
組み込みシステムには、コンピュータネットワークを使用する他のコンピュータデバイスにデータおよび／またはサービスを供給することができるものもある。あるいは、コンピュータネットワークを使用する他のコンピュータデバイスにデータおよび／またはサービスを供給する典型的なコンピュータあるいはコンピュータデバイスが存在する場合もある。安全な接続を維持するために必要な鍵の更新数を最小化することが有益である場合がある。使用する鍵の更新数を多くすることで、ネットワーク上に追加トラフィックを引き起こす場合がある。これらの状況は、他の状況と同様に、ネットワーク上の通信の非効率性を引き起こす場合がある。システムおよび方法が、鍵の更新要求の送信に関する時間遅延を決定するために有用であるなら、利点が実現され得る。
【課題を解決するための手段】
【０００８】
鍵の更新要求の送信に関する時間遅延をコンピュータデバイスによって決定するための方法が記載されている。コンピュータデバイスによって第１のランダムな遅延時間の終わりに第１更新要求を送信する。第１負荷データを受信する。コンピュータデバイスによって最大更新パラメータの終わりに第２更新要求を送信する。第２負荷データを受信する。第１負荷データを第２負荷データと比較する。第１負荷データが第２負荷データと異なる場合、次の更新時間を調整する。
【０００９】
第１負荷データが第２負荷データと異なる場合、最大更新パラメータは、第１のランダムな遅延時間とは異なる遅延時間を含み得る。第１のランダムな遅延時間は、第１更新要求を送信する前の待機時間を示す時間遅延を含み得る。認証サーバに認証要求を送信する。
【００１０】
一実施形態では、認証鍵を認証サーバから受信する。認証鍵は、鍵交換鍵（ＫＥＫ）を含み得る。第１更新要求および第２更新要求は、ＫＥＫに対する変更の要求を含み得る。最大更新パラメータは、第２更新要求を送信する前にノードが待機する最大時間量を含み得る。第１更新要求は、最大更新パラメータによって示される時間より短い時間単位を含み得る。第１負荷データおよび第２負荷データは、以前の時間単位の間に認証サーバが受けた負荷を示すパラメータを含み得る。
【００１１】
鍵の更新要求の送信に関する時間遅延を決定するように構成されているコンピュータデバイスも記載されている。コンピュータシステムは、プロセッサと、プロセッサと電子通信するメモリとを備えている。命令がメモリに格納されている。第１のランダムな遅延時間の終わりに第１更新要求を送信する。第１負荷データを受信する。最大更新パラメータの終わりに第２更新要求を送信する。第２負荷データを受信する。第１負荷データを第２負荷データと比較する。第１負荷データが第２負荷データと異なる場合、次の更新時間を調整する。
【００１２】
鍵の更新要求の送信に関する時間遅延を決定するための実行可能な命令を含んでいるコンピュータ読み込み可能媒体も記載されている。第１のランダムな遅延時間の終わりに第１更新要求を送信する。第１負荷データを受信する。最大更新パラメータの終わりに第２更新要求を送信する。第２負荷データを受信する。第１負荷データを第２負荷データと比較する。第１負荷データが第２負荷データと異なる場合、次の更新時間を調整する。
【００１３】
本発明の例示的な実施形態は、後述する説明および添付された請求項から、添付の図面と併用することによって完全に明らかになるはずである。これらの図面は、例示的な実施形態を示しているにすぎないこと、したがって、本発明の範囲を限定するものとはみなされるべきではないことを理解されたい。本発明の例示的な実施形態は、以下の添付図面を使用することによって、さらに具体的かつ詳細に説明されるはずである。
【図面の簡単な説明】
【００１４】
【図１】グループ内の１つ以上のノードに鍵交換鍵（ＫＥＫ）を伝えるサーバの一実施形態を示すブロック図である。
【図２】ノードを認証するサーバの一実施形態を示すブロック図である。
【図３】様々な時間におけるサーバの負荷に関連する負荷データを受信するノードの一実施形態を示すブロック図である。
【図４】異なる時間間隔でノードに負荷データを送信するサーバの一実施形態を示すブロック図である。
【図５】更新要求の送信に関する時間遅延を変更するか否かを判断するための方法の一実施形態を示すフロー図である。
【図６】ノードが既存のノードグループに参加することができるか否かを判断するための方法の一実施形態を示すフロー図である。
【図７】変動遅延関数の一実施形態を示すブロック図である。
【図８】実施形態にしたがって構成された組み込みデバイスにおいて使用され得るハードウェアコンポーネントのブロック図である。
【発明を実施するための形態】
【００１５】
本発明を実行するための最良の形態
ここで、本発明の様々な実施形態を、図面を参照して説明する。これらの図面では、同一の部材あるいは機能的に類似の要素を同一の参照番号によって示している。これらの図面において概して説明かつ例示されている本発明の実施形態については、広範な異なる構成にアレンジおよび設計することができる。したがって、図面に示されているような本発明におけるいくつかの例示的な実施形態に関する以下の詳細な説明は、特許請求されている本発明の範囲を限定することを意図しておらず、本発明の実施形態を単に代表しているだけである。
【００１６】
「例示的な」という語は、本明細書では、もっぱら、「実施例、事例または実例として機能すること」を意味するものとして使用される。本明細書で「例示的」と示されているいかなる実施形態についても、他の実施形態よりも好ましい、または有利であると解釈する必要はない。
【００１７】
本明細書に開示されている実施形態における多くの機能は、コンピュータソフトウェア、電子ハードウェア、あるいはこれらの組み合わせとして実現され得る。このハードウェアおよびソフトウェアの互換性を明確に示すために、様々なコンポーネントをそれらの機能性の観点から概して説明する。このような機能性がハードウェアあるいはソフトウェアのいずれとして実現されるかは、特定のアプリケーション、および、システム全体に課されている設計の制約に依存する。当業者なら、記載の機能性を、各特定のアプリケーションに関して様々な手法で実現することができ、そのような実現の決定は、本発明の範囲からの逸脱をもたらすように解釈されるべきではない。
【００１８】
記載の機能性がコンピュータソフトウェアとして実現されている場合には、このようなソフトウェアは、メモリデバイス内に配置されている且つ／またはシステムバスあるいはネットワーク上を電気的な信号として伝送される任意のタイプのコンピュータ命令あるいはコンピュータ実行可能なコードを含むことができる。本明細書に記載されているコンポーネントに関連する機能性を実現するソフトウェアは、単一の命令、あるいは多くの命令を含むことができ、さらに、異なるプログラム間において、また、複数のメモリデバイスにわたって、複数の異なるコードセグメントに分散され得る。
【００１９】
本明細書で使用されている「（１つの）実施形態」、「実施形態」、「（複数の）実施形態」、「この実施形態」、「これらの実施形態」、「１つ以上の実施形態」、「いくつかの実施形態」、「特定の実施形態」、「一実施形態」、「他の実施形態」という用語、およびその他の類似の用語は、明確に特記しない限り、「開示の発明における１つ以上の（ただし、必ずしも全てではない）実施形態」を意味する。
【００２０】
「決定」という用語（およびその文法上での変化形）は、極めて幅広い意味で使用される。「決定」という用語は、広範な行為を包含している。したがって、「決定」は、計算、演算、処理、導出、探索、検索（例えば、表、データベースあるいは他のデータ構造における検索）、究明、およびこれらに類似する行為を含み得る。また、「決定」は、受信（例えば、情報の受信）、アクセス（例えば、メモリ内のデータへのアクセス）、およびこれらに類似の行為を含み得る。また、「決定」は、解決、選択、選出、制定およびこれらに類似の行為を含み得る。
【００２１】
「〜に基づく」という句は、明確に特記しない限り、「〜だけに基づく」ということを意味しない。すなわち、「〜に基づく」という句は、「〜だけに基づく」と「少なくとも〜に基づく」との双方を示している。
【００２２】
安全なマルチキャストグループでは、グループは、グループのメンバーの間でマルチキャストされる情報を暗号化および復号化するためのグループ鍵を管理することができる。一実施形態では、認証サーバなどの集中型サーバは、グループのメンバー資格を制御するために使用される。グループに参加することを望んでいるノードに集中型サーバから鍵交換鍵（ＫＥＫ）を配信することができる。ＫＥＫは、「ノードが、グループ鍵を得るためにグループ内のノードと通信すること」を可能にすることができる。
【００２３】
いくつかの実施形態では、ノードがグループから除去されたとき、ＫＥＫを変更することができる。認証サーバは、「除去されたノードが古いＫＥＫを記憶しており、それを利用してグループに不正に再参加することができる」と想定することができる。これは、現存の各グループメンバーに変更されたＫＥＫを安全に配信することができることを意味している。
【００２４】
一実施形態では、集中型サーバは、ＫＥＫに対する変更をグループのメンバーにマルチキャストする能力を有さない場合がある。したがって、グループの各メンバーは、ＫＥＫが変更されていないことを確認するために、あるいは、変更が生じている場合には新しいＫＥＫを得るために定期的にサーバでチェックすることができる。例えば、グループのメンバーは、サーバに更新要求を送信することができる。複数の更新要求によって生じるサーバの負荷が時間的に分散されてサーバが一様な負荷を受けることは望ましいことであり得る。
【００２５】
以前の時間単位の間にサーバが受けていた過去の負荷を示すパラメータのセットを使用することによって、将来更新要求がサーバに送信される場合に負荷の一様な分散を容易にすることができる。これらのパラメータをノードが更新要求を送信するたびにノードに配信することができる。サーバは、通常のアップデート更新要求によって生じる負荷と、ＫＥＫの変更に起因する急速な更新要求によって生じる負荷とを識別することができる。急速な更新要求によって生じる負荷は、パラメータのセットによって示される過去の負荷の平均値を歪める場合がある。
【００２６】
以前の時間単位の間にサーバが受けていた過去の負荷を示すデータは、更新要求を送信するための時間の最初のランダムな選択肢をノードが選択することを支援し得る。しかしながら、パラメータがカバーしている以前の時間単位は、有益に利用できるほどの十分な時間には広がり得ない。例えば、特定のグループに属しているノードの最大要求期間は２４時間を含み得る。これは、２４時間に１回、ＫＥＫに対する変更の有無を各ノードがサーバに問い合わせるということを意味し得る。「次の２４時間のうち、サーバの負荷を一様に分散するために効果的な、特定のノードが更新要求を送信するべき時間はいつか」を予想するための十分に詳細な情報を入手することができない場合がある。このような詳細な負荷データ情報の維持は、サーバに大容量のメモリおよび高い演算能力を要求し得る。
【００２７】
図１は、グループＡ１０６内の１つ以上のノードに鍵交換鍵（ＫＥＫ）１０４を送信するサーバ１０２の一実施形態を示すブロック図である。一実施形態では、このサーバ１０２は、認証サーバである。認証サーバは、グループＡ１０６に参加することを望んでいるノードを認証するサーバであってよい。一実施形態では、サーバ１０２はノードを認証し、ノードはＫＥＫ１０４を受信する。ノードは、グループＡ１０６に既に属している他のノードに対してグループＡ１０６に参加できることを証明するＫＥＫ１０４を使用することによって、グループＡ１０６に参加することができる。一実施形態では、サーバ１０２は、グループＡ１０６の各ノードに関して最小状態を維持する。例えば、サーバ１０２は、ＫＥＫ１０４の状態を単に維持することができる。サーバ１０２は、ＫＥＫ１０４に対する変更をグループＡ１０６のノードに伝えることができる。
【００２８】
示されているように、グループＡ１０６は、ノードＡ１０８、ノードＢ１１０およびノードＣ１１２を含んでいる。グループＡ１０６は、３つのノードだけを有するように示されているが、グループＡ１０６は、より多くのノード、あるいはより少ないノードを含むこともできるということを理解するべきである。グループＡ１０６は、安全なマルチキャストグループとも称され得る。なぜならば、グループＡ１０６内のノードは、安全な手法で互いに情報をマルチキャストできるからである。例えば、グループＡ１０６のノード間でマルチキャストされる情報を、共有グループＡ鍵１１４を用いて暗号化することもできる。ノードは、ＫＥＫ１０４を使用してグループＡ１０６に関連するグループＡ鍵１１４を受信することができる。例えば、ノードＮ１１６は、グループＡ１０６の１つ以上のノードにグループ要求１１８を送信することによってグループＡ１０６のメンバーになることを要求することができる。グループＡ１０６の１つ以上のノードは、ノードＮ１１６がＫＥＫ１０４を含んでいるか否かを判断することができる。ノードＮ１１６がＫＥＫ１０４を含んでいる場合、１つ以上のノードは、ノードＮ１１６にグループＡ鍵１１４を配信することができる。グループＡ鍵１１４は、「ノードが、グループＡ１０６内の他のノードとの間で情報を送受信すること」を可能にすることができる。ノードは、グループＡ鍵１１４を使用してグループＡ１０６のノード間で通信される情報を暗号化あるいは復号化することができる。
【００２９】
ノードＮ１１６がＫＥＫ１０４を有していない場合、ノードＮ１１６は、「サーバ１０２がノードＮ１１６にＫＥＫ１０４を配信すること」を求めるＫＥＫ要求１２０をサーバ１０２に送信することができる。サーバ１０２は、ノードＮ１１６を認証し、ＫＥＫ１０４を配信することができる。しかしながら、ＫＥＫ１０４がノードＮ１１６に配信されない場合、ノードＮ１１６は、グループＡ１０６に参加すること、および、グループＡ鍵１１４を受信することができない。
【００３０】
サーバ１０２、グループＡ１０６およびノードＮ１１６の間の通信は、ネットワーク１２２上でなされ得る。ネットワーク１２２は、グローバル通信ネットワーク、インターネット、コンピュータネットワーク、電話ネットワーク、ポケットベルネットワーク、セルラーネットワーク、ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）などの（ただし、これらに限定されない）任意の通信ネットワークを含むこともできる。一実施形態では、サーバ１０２は、ネットワーク１２２上の多数のグループのノードを管理し、これらと通信することができる。サーバ１０２は、各ノードグループに固有のＫＥＫを配信することができる。
【００３１】
図２は、ノードＡ２０８を認証するサーバ２０２の一実施形態を示すブロック図である。一実施形態では、ノードＡ２０８は、グループＡ２０６に参加することを許可される前に認証される。ノードＡ２０８は、サーバ２０２にネットワーク２２２の接続を介してＫＥＫ要求２３０を送信することができる。ＫＥＫ要求２３０は、グループＡ２０６に関連するＫＥＫ２０４の配信を求める、サーバ２０２に対する要求を含むことができる。ノードＡ２０８は、それがグループＡ２０６に初めて参加しつつあるのか否か、あるいは、それがＫＥＫ２０４に対する変更の有無をサーバ２０２に単に問い合わせているだけなのか否かを知ることができる。
【００３２】
一実施形態では、サーバ２０２は、ノードＡ２０８に関する信用証明書２３２を受信する。認証器２３４は、信用証明書２３２を評価し、ノードＡ２０８がグループＡ２０６に参加するための適正な信用証明書を有しているか否かを判断する。信用証明書２３２は、ノードＡ２０８に関する情報を含むことができ、情報は、例えば、インターネットプロトコル（ＩＰ）アドレス、メディアアクセス制御（ＭＡＣ）アドレス、共有の秘密に関する知識などである。認証器２３４がノードＡ２０８を認証した場合、サーバ２０２は、ノードＡ２０８にＫＥＫ２０４を配信する。上記のように、ＫＥＫ２０４は、ノードＡ２０８がグループＡ鍵２１４を受信することを可能にすることができる。グループＡ鍵２１４は、グループＡ２０６内の他のノードにノードＡ２０８が情報をマルチキャストすることを可能にすることができる。さらに、グループＡ鍵２１４は、グループＡ２０６内の他のノードからノードＡ２０８が情報を受信することを可能にすることができる。例えば、グループＡ２０６のメンバーに対してマルチキャストされる情報を暗号化および復号化するために、グループＡ２０６のメンバーによってグループＡ鍵２１４を使用することができる。
【００３３】
ノードＡ２０８は、サーバ２０２に送信されるべき更新要求を生成する要求生成器２２６を含むこともできる。更新要求は、サーバ２０２に対して、ＫＥＫ２０４に対する変更の有無を問い合わせることができる。一実施形態では、サーバ２０２は、ノードがグループＡ２０６に関連するＫＥＫ２０４を今後は得られなくなるように修正される。例えば、ノードが危険にさらされた場合、サーバ２０２は、危険にさらされたノードがグループＡ２０６の完全性（ｉｎｔｅｇｒｉｔｙ）を危険にさらすことを防止するように修正される。サーバ２０２が前記のように修正される場合、ＫＥＫ２０４を変更する場合がある。サーバ２０２は、危険にさらされたノードには、新しい変更されたＫＥＫを配信することはない。これは、認証器２３４が、危険にさらされたノードを認証しないはずだからである。したがって、危険にさらされたノードが新しい変更されたＫＥＫを受信することはなく、危険にさらされたノードが引き続きグループＡ鍵２１４を受信することを防止することができる。グループＡ鍵２１４のない場合、破損したノードは、グループＡ２０６にまだ属しているノードとの間で情報をマルチキャストしたり情報を受信したりすることを阻まれる。一実施形態では、危険にさらされたノードは、グループＡ鍵２１４を有さないでグループＡ２０６のメンバー間でマルチキャストされる情報を暗号化または復号化することができない。危険にさらされたノードが除去された後にＫＥＫ２０４が変更されないとき、危険にさらされたノードはＫＥＫ１０４を再利用して、グループＡ鍵２１４を受信すること、および、グループＡ２０６に不正に再参加する（あるいは、メンバー資格を維持するため）ことができる。
【００３４】
一実施形態では、サーバ２０２は、最大更新パラメータ２２４を含んでいる。最大更新パラメータ２２４は、グループＡ２０６に固有であってよい。パラメータ２２４は、「ＫＥＫ２０４に対する変更の有無をチェックするための更新要求をサーバ２０２に送信することなく、グループＡ２０６内のノードがＫＥＫ２０４を信頼することができる最大時間量」示し得る。例えば、最大更新パラメータ２２４は２４時間を示し得、これは、「グループＡ２０６内の各ノードが、サーバ２０２に対して、２４時間に１回、更新要求を送信する」ということを意味している。一実施形態では、最大更新パラメータ２２４は、ノードが初めて認証されたとき、ＫＥＫ２０４を受信したとき、およびグループＡ２０６に参加したときにノードに配信される。他の実施形態では、最大更新パラメータ２２４は、更新されたＫＥＫ２０４の有無をノードがチェックするたびにノードに配信される。
【００３５】
要求生成器２２６は、ランダム遅延パラメータ２２８を含むことができる。これは、ノードがグループに参加した後、要求生成器２２６が第１更新要求を生成してサーバ２０２に送信するための時間をランダムに選択する。ランダム遅延パラメータ２２８は、最大更新パラメータ２２４よりも短い遅延時間をランダムに選択することができる。例えば、最大更新パラメータ２２４は２４時間を含み得る。ランダム遅延パラメータ２２８は６０分を選択することができる。一実施形態では、要求生成器２２６は、ノードＡ２０８が認証されてＫＥＫ２０４を受信してから６０分後に第１更新要求を生成する。そして、要求生成器２２６は、第１更新要求を生成してサーバ２０２に送信してから２４時間後に次の更新要求を生成して送信することができる。一実施形態では、ランダム遅延パラメータ２２８は、サーバ２０２に与えられ得る、多数のノードから多数の更新要求を同時に受信することによる負荷を減少する。
【００３６】
一実施形態では、第１更新要求を送信するために選択されたランダムな遅延時間は、一次の乱数発生器（ｆｉｒｓｔ  ｏｒｄｅｒ  ｒａｎｄｏｍｉｚｅｒ）として機能することができる。これは、第１更新要求を送信するタイミングの決定が効果的であったか否かに関するフィードバックがないことを意味する。最初のランダムな遅延時間が失効すると、最大更新パラメータ２２４の期間満了後に更新要求を送信することができる。
【００３７】
図３は、様々な時間におけるサーバ３０２の負荷に関連する負荷データを受信するノードの一実施形態を示すブロック図である。一実施形態では、ノードＡ３０８は認証され、ＫＥＫ３０４を受信し、そして、グループＡ３０６のメンバーになる。ノードＡ３０８は、ＫＥＫ３０４を使用してグループＡ鍵３１４を受信することができる。ノードＡ３０８は、サーバ３０２に更新要求３３６を送信して、ＫＥＫが変更されているか否かをチェックすることができる。一実施形態では、更新要求３３６は、ネットワーク３２２の接続を介してサーバ３０２に送信される。
【００３８】
サーバ３０２は、サーバ３０２が更新要求３３６を受信するとき、ノードＡ３０８に負荷データＡ３３８を送信することができる。他の実施形態では、サーバ３０２が最初のＫＥＫ要求２３０を受信するとき、サーバ３０２が負荷データＡ３３８を送信することもできる。負荷データＡ３３８は、以前の時間単位の間にサーバ３０２が受けていた過去の負荷を示すことができる。例えば、負荷データＡ３３８は、過去の負荷データＡ３４０、過去の負荷データＢ３４２、過去の負荷データＣ３４４などを含み得る。過去の負荷データＡ３４０は、過去の３０秒間にサーバ３０２が受けていた負荷を示し得る。過去の負荷データＢ３４２は、過去の５分間にサーバ３０２が受けていた負荷を示し得る。同様に、過去の負荷データＣ３４４は、過去の３０分間にサーバ３０２が受けていた負荷を示し得る。過去の負荷を示すこれらのパラメータは単なる例であり、本システムおよび本方法は過去の任意の時間単位の間にサーバ３０２が受けていた過去の任意の負荷数を示すデータを含み得ることを理解するべきである。
【００３９】
一実施形態では、サーバ３０２は負荷データ分析器３６０を含んでいる。分析器３６０は、「サーバ３０２の受けている負荷が、通常の更新要求３３６によって生じているのか、あるいは、急速な更新要求３３６によって生じているのか」を判断する。一実施形態では、通常の更新要求３３６は、定期的に送信されてＫＥＫ３０４が変化しているか否かをチェックするため。さらなる実施形態では、急速な更新要求３３６が短い周期でサーバ３０２に送信される。なぜなら、ＫＥＫが変化しているからである。分析器３６０は、これらの異なるタイプの負荷を負荷データＡ３３８に伝えることができる。
【００４０】
図４は、異なる時間間隔でノードに負荷データを送信するサーバ４０２の一実施形態を示すブロック図である。一実施形態では、ノードＡ４０８は、サーバ４０２に時間Ａ４００で更新要求４３６を送信することができる。時間Ａ４００は、ランダム遅延パラメータ２２８の満期を示し得る。ノードＡ４０８は、時間（Ａ＋Ｂ）４０１において追加更新要求４３６を送信することができる。時間（Ａ＋Ｂ）４０１は、最大更新パラメータ２２４の満期およびランダム遅延パラメータ２２８の満期を示し得る。例えば、最大更新パラメータ２２４は、２４時間というパラメータを含むことができる。これは、「ノードＡ４０８が、更新要求４３６を送信する前に、２４時間、ＫＥＫ４０４を信用することができる」ということを示している。サーバ４０２の受ける負荷を減少するために、グループ内の各ノードは、第１更新要求４３６を送信するための時間を、最大更新パラメータ２２４よりも短くなるように、ランダムに選択することができる。ノードＡ４０８は、６０分の時間をランダムに選択して第１更新要求４３６を送信することができる。一実施形態では、ノードＡ４０８は、ＫＥＫ４０４を受信してから６０分後に第１更新要求４３６を送信する。示した実施形態では、時間Ａ４００は、６０分を示し得る。第１更新要求４３６を送信した後、ノードＡ４０８は、追加更新要求４３６の送信を、最大更新パラメータ２２４によって指定される期間の満了まで待機することができる。この例では、ノードＡ４０８は、別の更新要求４３６を送信するまでに２４時間待機する。示した実施形態では、時間（Ａ＋Ｂ）４０１は２５時間を示し得、ここで、時間Ａは６０分を示し、時間Ｂは２４時間を示している。
【００４１】
一実施形態では、サーバ４０２が時間Ａ４００において第１更新要求４３６を受信したとき、サーバ４０２がノードＡ４０８に負荷データＡ４３８を送信する。上記のように、負荷データＡ４３８は、以前のいくらかの時間単位数（すなわち、３０秒、５分、３０分など）の間にサーバ４０２が受けていた負荷を示すパラメータセットを含み得る。一実施形態では、ノードＡ４０８は、時間（Ａ＋Ｂ）４０１において追加更新要求４３６を送信する。サーバ４０２は、ノードＡ４０８に負荷データＢ４５０を送信することができる。負荷データＢ４５０は、過去の負荷データＡ４４０、過去の負荷データＢ４４２、過去の負荷データＣ４４４などを含み得る。過去の負荷データＡ４４０、過去の負荷データＢ４４２および過去の負荷データＣ４４４は、以前の時間単位の間にサーバ４０２が負っていた負荷を示すパラメータを示し得る。一実施形態では、ノードＡ４０８は、負荷データＡ４３８を負荷データＢ４５０と比較する。ノードＡ４０８は、将来の更新要求４３６を送信するための時間を負荷履歴の比較に基づいて調整することができる。例えば、負荷データＢ４５０と負荷データＡ４３８との比較は、「追加更新要求４３６が送信された時間より前の、以前の時間単位における最近の単位ではサーバ４０２の負荷がより高いこと」を示している。しかしながら、同じ比較は、「後続する更新要求４３６を送信するために、ノードＡ４０８がより早い時間にシフトし得る、より早い時間単位の間に負荷が同様であること」を示している。すなわち、ノードＡ４０８は、最大更新パラメータ２２４によって示される期間の満期よりわずかに前に次の更新要求４３６を送信することができる。他の実施形態では、ノードＡ４０８は、最近の更新要求の間にサーバ４０２が受けていた負荷を評価して、後続する更新要求４３６を送信するための時間を修正すべきであるか否かを判断することができる。
【００４２】
図５は、更新要求の送信に関する時間遅延を変更するか否かを判断するための方法５００の一実施形態を示すフロー図である。方法５００は、ノードＡ１０８などのノードによって実現され得る。認証サーバにＫＥＫ要求を送信する（５０２）。一実施形態では、ＫＥＫ要求を、ノードグループに関連するグループ鍵を受信することを所望するノードによって送信する。一実施形態では、ＫＥＫ要求を送信（５０２）したノードは、認証サーバに信用証明書を送信することもできる。ノードが適正な信用証明書を有していないと判断された場合（５０４）、ノードは認証されず、その後に、サーバに対して、ＫＥＫ要求を再び送信することができる（５０２）。ノードが適正な信用証明書を有していると判断された場合（５０４）、ノードは認証され、ＫＥＫ１０４を受信する。一実施形態では、最大更新パラメータも受信される（５０６）。上記のように、最大更新パラメータは、「ＫＥＫ１０４に対する起こりうる変更に関する更新要求を送信する前に、ノードがＫＥＫ１０４を信用することができる最大時間量」示し得る。さらなる実施形態では、負荷データＡ３３８も受信する（５０６）。上記のように、負荷データは、以前の期間におけるサーバの負荷を示し得る。
【００４３】
第１のランダムな遅延時間を選択することができ（５０８）、第１のランダムな遅延時間の終わりに第１更新要求を送信することができる。第１のランダムな遅延時間は、最大更新パラメータよりも短くてよい。一実施形態では、第１負荷データを受信する（５１０）。第１負荷データは、以前の時間単位（すなわち、３０秒、５分、３０分など）の間に認証サーバが受けていた負荷を示すパラメータを含み得る。最大更新パラメータによって示される期間の終わりに第２更新要求を送信することができる（５１２）。一実施形態では、第２負荷データを受信する（５１４）。第２負荷データは、以前の時間単位の間に認証サーバが受けていた負荷を示すパラメータを含むこともできる。第１負荷データを第２負荷データと比較することができる（５１６）。第１負荷データと第２負荷データとを比較することによって（５１６）、第２更新要求の間における認証サーバの負荷が、第１更新要求の間におけるサーバの負荷と異なっているか否かについての判断がなされる（５１８）。第１負荷データと第２負荷データとの間に差が殆どないかまたはないとの判断（５１８）がなされた場合、方法５００は終了する。第１負荷データと第２負荷データとの間に差があるとの判断（５１８）がなされた場合、第２のランダムな遅延時間を選択し（５２０）、第２のランダムな遅延時間の終わりに第３更新応答を送信する。一実施形態では、第２のランダムな遅延時間は、第１のランダムな遅延時間と異なっている。概して、更新要求の間の遅延時間を調整する（５２０）ために受信された負荷データの任意の２つのセットの間で同じ比較（５１８）を実施することができる。
【００４４】
図６は、ノードグループにノードが参加することができるか否かを判断するための方法６００の一実施形態を示すフロー図である。一実施形態では、方法６００を、グループに属している個々のノードによって実現することができる。ノードグループに参加するための要求を受信することができる（６０２）。要求は、ＫＥＫに基づくパラメータを含むことができる。要求に含まれているパラメータがグループ内の各ノードに関連するＫＥＫ１０４に基づいているか否か（６０４）についての判断がなされる。例えば、グループＡ１０６のメンバーであるノードＡ１０８は、ノードＮ１１６がグループＡ１０６のメンバーになることを許可するためのノードＮ１１６からの要求を受信することができる（６０２）。要求は、ＫＥＫに基づくパラメータを含んでいる場合がある。ノードＡ１０８は、要求に含まれているパラメータがノードＡ１０８に関連するＫＥＫ１０４に基づいているか否かを判断することができる（６０４）。要求に含まれているパラメータがノードＡ１０８に関連するＫＥＫ１０４に基づいていない場合、方法６００は終了する。これらのＫＥＫが適合するという判断がなされた場合（６０４）、グループ鍵を、要求を送信したノードに配信する（６０６）。一実施形態では、グループ鍵により、ノードがグループに属している他のノードからマルチキャストを受信することを可能にする。また、グループ鍵により、ノードがグループ内の他のノードにデータをマルチキャストすることを可能にする。
【００４５】
図７は、変動遅延関数７０２の一実施形態を示すブロック図である。変動遅延関数７０２を使用して、サーバ１０２にノードが更新要求を送信するタイミングに関する時間変化量を決定することができる。例えば、ノードが負荷データを比較し、負荷データが十分に相違すると判断する場合、ノードは、後続する更新要求がサーバ１０２に送られる時間を調整することができる。一実施形態では、変動遅延関数７０２は、入力として現在のタイミング７０４を含み、これは、更新要求を送信するためにノードによって利用されている現在の時間パラメータを示し得る。例えば、現在のタイミング７０４は、上記のような最大更新パラメータ２２４を含み得る。
【００４６】
変動遅延関数７０２は、入力として以前の負荷データ７０６を含むこともできる。以前の負荷データ７０６は、以前の更新要求が受信されたときのサーバ１０２の負荷を示し得る。例えば、以前の負荷データ７０６は、上記のような負荷データＡ３３８を含み得る。さらに、変動遅延関数７０２は、入力として現在の負荷データ７０８を含み得、現在の負荷データ７０８は、現在の更新要求が受信されたときのサーバ１０２の負荷を示し得る。例えば、現在の負荷データ７０８は、上記のような負荷データＢ４５０を含み得る。一実施形態では、変動遅延関数７０２は、入力としてランダム化パラメータ７１０を受信することもできる。ランダム化パラメータ７１０により、変動遅延関数７０２がサーバ１０２に更新要求が送信される時間の変動をランダムに選択することを可能にする。変動遅延関数７０２は、「グループ内の全てのノードが、更新要求を送信する時間を同じように変更すること」を防止することができる。関数７０２は、上記のような入力を組み込むことができ、そして、ランダムな遅延変動７１２を出力することができる。ランダムな遅延変動７１２は、「後続する更新要求が、最大更新パラメータ２２４の満期の前にサーバ１０２に送信されること」を招来することができる。変動遅延関数７０２は、サーバ１０２の負荷を相対的に一定にすることができ、この場合、グループ内のノードは、時間的にほぼ均等な間隔で更新要求を送信する。
【００４７】
図８は、実施形態にしたがって構成された組み込みデバイス（ノードあるいはサーバ）８０２において使用され得るハードウェアコンポーネントのブロック図である。組み込みデバイス、ノードあるいはサーバは、図８のブロック図によって大まかに規定されるコンピュータデバイスであってよい。中央処理装置（ＣＰＵ）８０４すなわちプロセッサを設けて、組み込みデバイス８０２の操作を制御することができ、デバイス８０２は、バス８１０を介してＣＰＵ８０４に連結されている他のコンポーネントを含んでいる。ＣＰＵ８０４は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、あるいは、当該分野で既知の他のデバイスとしても具体化され得る。ＣＰＵ８０４は、メモリ内に格納されているプログラムコードに基づいて論理的かつ算術的な演算を実行する。特定の実施形態では、メモリ８０６は、ＣＰＵ８０４とともに含まれるオンボードメモリであってよい。例えば、マイクロコントローラは、多くの場合、一定量のオンボードメモリを含んでいる。
【００４８】
組み込みデバイス８０２は、ネットワークインターフェイス８０８も含み得る。ネットワークインターフェイス８０８は、組み込みデバイス８０２と、ネットワーク１３０に接続されている他のデバイスとの間の通信を容易にし、ネットワークは、ポケットベルネットワーク、セルラーネットワーク、グローバル通信ネットワーク、インターネット、コンピュータネットワーク、電話ネットワークなどであってよい。ネットワークインターフェイス８０８は、当該ネットワーク１３０に関する標準的なプロトコルにしたがって動作する。
【００４９】
組み込みデバイス８０２は、メモリ８０６も含み得る。メモリ８０６は、一時データを格納するために、ランダム・アクセス・メモリ（ＲＡＭ）を含み得る。代替的に、または加えて、メモリ８０６は、更なる不変データ（固定コードおよび構成データなど）を格納するために、リード・オンリー・メモリ（ＲＯＭ）を含み得る。メモリ８０６をハードディスクドライブなどの磁気記憶デバイスとして具体化することもできる。メモリ８０６は、電子情報を格納することができる任意のタイプの電子デバイスであってよい。
【００５０】
組み込みデバイス８０２は、他のデバイスとの通信を容易にする１つ以上の通信ポート８１２も含み得る。組み込みデバイス８０２は、キーボード、マウス、ジョイスティック、タッチスクリーン、モニタ、スピーカ、プリンタなどの入出力デバイス８１４も含み得る。
【００５１】
当然ながら、図８は、組み込みデバイス８０２の１つの可能な構成を示しているにすぎない。他の様々な構造およびコンポーネントを利用することができる。
【００５２】
情報および信号は、任意の様々な異なる技術および技法を用いて表され得る。例えば、先の説明の中で言及され得たデータ、命令、コマンド、情報、信号、ビット、符号およびチップを、電圧、電流、電磁波、磁場または磁気粒子、光場または光学粒子、あるいは、これらの任意の組み合わせによって表すこともできる。
【００５３】
本明細書に開示されている実施形態に関連して記載した種々な具体的な論理ブロック、モジュール、回路、アルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、あるいは、これらの組み合わせとして実現され得る。このようなハードウェアおよびソフトウェアの互換性を明確に示すために、様々な具体的なコンポーネント、ブロック、モジュール、回路およびステップが、ここまで、これらの機能性の観点から概して説明されてきた。このような機能性がハードウェアあるいはソフトウェアとして実現されるか否かは、特定のアプリケーション、および、システム全体に課される設計制約に依存する。当業者であれば、記載の機能性を、特定のアプリケーションに関して様々な方法で実現することができる。しかしながら、このような実現の判断は、本発明の範囲からの逸脱をもたらすように解釈されてはならない。
【００５４】
本明細書に開示されている実施形態に関連して記載した様々な具体的な論理ブロック、モジュールおよび回路は、本明細書に記載された機能を実施するように設計された、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ信号（ＦＰＧＡ）あるいは他のプログラム可能な論理デバイス、離散ゲートあるいはトランジスタロジック、離散ハードウェアコンポーネント、あるいは、これらの任意の組み合わせを用いて実現あるいは実施され得る。汎用プロセッサはマイクロプロセッサであってよいが、別の構成では、プロセッサは、任意の常套プロセッサ、コントローラ、マイクロコントローラあるいはステートマシンであってよい。プロセッサは、コンピュータデバイスの組み合わせ、例えば、ＤＳＰとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、ＤＳＰコアと連結されている１つ以上のマイクロプロセッサ、あるいは、任意の他のこのような構成として実現され得る。
【００５５】
本明細書に開示されている実施形態に関連して記載した方法あるいはアルゴリズムのステップを、ハードウェア、プロセッサによって実行されるソフトウェアモジュール、あるいは、これら２つの組み合わせにおいて直接に具体化することもできる。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、あるいは、当該分野で既知である、任意の他の形態の記憶媒体に備えることができる。例示的な記憶媒体はプロセッサに連結されているため、プロセッサは、記憶媒体から情報を読み出すことができるとともに、記憶媒体に対して情報を書き込むことが可能になる。別の構成では、記憶媒体をプロセッサと一体化することもできる。プロセッサと記憶媒体とをＡＳＩＣに備えることもできる。ＡＳＩＣは、ユーザ端末に備えることができる。別の構成では、プロセッサと記憶媒体とを離散コンポーネントとしてユーザ端末に備えることができる。
【００５６】
本明細書に開示されている方法は、記載の方法を達成するための１つ以上のステップあるいは動作を備えている。方法のステップおよび／または動作を、本発明の範囲から逸脱することなく互いに置き換えることもできる。すなわち、実施形態の適当な操作に関して特定の順序のステップあるいは動作が要求されない限り、特定のステップおよび／または動作の順序および／または使用を、本発明の範囲から逸脱することなく改変することができる。
【００５７】
特定の実施形態および本発明の適用を例示かつ記載したが、本発明は、本明細書に開示された構成およびコンポーネントそのものに限定されないことを理解するべきである。本明細書に開示されている本発明の方法およびシステムの構成、操作および詳細において、本発明の精神および範囲とから逸脱することなく、当業者にとって明らかであろう様々な修飾、変更、変形を行うことができる。
【図１】
2010517333.tif 000003
【図２】
2010517333.tif 000004
【図３】
2010517333.tif 000005
【図４】
2010517333.tif 000006
【図５】
2010517333.tif 000007
【図６】
2010517333.tif 000008
【図７】
2010517333.tif 000009
【図８】
2010517333.tif 000010
【国際調査報告】
2010517333.tif 000011