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