(57)【特許請求の範囲】
【請求項１】
クライアント・デバイスによって暗号鍵を生成するための方法であって、前記クライアント・デバイスが、ネットワーク内の複数のクライアント・デバイスのうちの１つであり、各クライアント・デバイスが、導出方法および導出インデックス調整を実行するためのコンピュータ実行可能命令を含む鍵生成情報を提供され、
認証サーバと前記クライアント・デバイスとの間に安全なチャネルを確立するステップと、
導出鍵、導出インデックス、満了したことが前記クライアント・デバイスが有するデバイス時間に基づき判断される最初の満了期間および満了間隔を含む、鍵セットアップ情報を前記安全なチャネルを介して前記認証サーバから受信するステップと、
前記クライアント・デバイスが前記鍵セットアップ情報を受信するのに応答して、前記クライアント・デバイスのプロセッサが、前記導出方法を行うための前記コンピュータ実行可能命令を実行すると共に、前記導出鍵、および前記導出インデックスを使用して最初の暗号鍵を生成するステップであり、前記クライアント・デバイスが、前記最初の暗号鍵を使用して、前記最初の満了期間の終了に先立って前記ネットワークにわたる前記複数のクライアント・デバイスのうちの少なくとも１つへのメッセージを暗号化する、ステップと、
前記クライアント・デバイスが前記最初の満了期間が終了したと判定するのに応答して、
前記導出インデックス調整によって前記認証サーバから前もって受信された前記導出インデックスを調整することによって現在の導出インデックスを生成するステップと、
前記最初の満了期間および前記認証サーバから前もって受信された前記満了間隔に基づいて現在の満了期間を生成するステップと、
前記導出方法、前記認証サーバから前もって受信された前記導出鍵、および前記現在の導出インデックスを使用して後続の暗号鍵を生成するステップであり、前記後続の暗号鍵が、前記現在の満了期間が終了するまで有効である、ステップと
を含む、方法。
【請求項２】
前記現在の満了期間が終了したと前記クライアント・デバイスが判定するのに応答して、
前記導出インデックス調整によって前記現在の導出インデックスを調整するステップと、
前記認証サーバから前もって受信された前記満了間隔によって前記現在の満了期間を更新するステップと、
前記導出方法、前記認証サーバから前もって受信された前記導出鍵、および前記現在の導出インデックスを使用して次の後続の暗号鍵を生成するステップであり、前記次の後続の暗号鍵が、前記現在の満了期間が終了するまで有効である、ステップと
をさらに含む、請求項１に記載の方法。
【請求項３】
前記クライアント・デバイスが、公共事業メータである、請求項１に記載の方法。
【請求項４】
前記導出方法および前記導出インデックス調整が、インストールまたは製造中に各々の前記クライアント・デバイスに提供される、請求項１に記載の方法。
【請求項５】
前記導出方法が、疑似ランダム関数に基づく、請求項１に記載の方法。
【請求項６】
前記最初の暗号鍵および前記後続の暗号鍵が、それらが所定の長さを超えるときに、前記クライアント・デバイスによって前記所定の長さに切り詰められる、請求項１に記載の方法。
【請求項７】
前記鍵セットアップ情報が、反復の回数をさらに含み、前記最初の暗号鍵または前記後続の暗号鍵を生成するステップが、前記反復の回数前記疑似ランダム関数を繰り返すステップをさらに含む、請求項５に記載の方法。
【請求項８】
前記疑似ランダム関数が、ＳＨＡ−２５６ベースのＨＭＡＣである、請求項７に記載の方法。
【請求項９】
前記導出インデックスが整数であり、前記クライアント・デバイスが、前記導出方法で前記導出インデックスを使用する前に前記整数を２進列に変換する、請求項１に記載の方法。
【請求項１０】
前記最初の暗号鍵を生成するステップが、前記導出方法でラベルを使用するステップをさらに含む、請求項１に記載の方法。
【請求項１１】
停電を経験し、現在のデバイス時間を有さないクライアント・デバイスによって現在の暗号鍵を更新するための方法であって、前記クライアント・デバイスが、導出方法および導出インデックス調整を実行するためのコンピュータ実行可能命令を含む鍵生成情報と、導出鍵、現在の導出インデックス、満了したことが前記クライアント・デバイスが有するデバイス時間に基づき判断される現在の満了期間および満了間隔を含む鍵セットアップ情報とを記憶し、
現在の時間を含む暗号化されたメッセージを受信するステップと、
前記暗号化されたメッセージが、前記現在の暗号鍵を使用して検証できないという判定に応答して、
受信された前記現在の時間、前記現在の満了期間、および前記満了間隔を使用して、前記停電以降に経験された間隔の数を判定するステップと、
前記停電以降に終了した前記間隔の数によって前記現在の導出インデックスを調整するステップと、
前記クライアント・デバイスのプロセッサが、前記導出方法を行うための前記コンピュータ実行可能命令を実行すると共に、前記導出鍵および前記現在の導出インデックスを使用して後続の暗号鍵を生成するステップと、
前記暗号化されたメッセージが、前記後続の暗号鍵を使用して検証することができたという判定に応答して、前記現在のデバイス時間を受信された前記現在の時間にセットするステップと、前記現在の暗号鍵を前記後続の暗号鍵に更新するステップと、終了した前記間隔の数に基づいて前記現在の満了期間を調整するステップと
を含む、方法。
【請求項１２】
前記暗号化されたメッセージが、前記後続の暗号鍵を使用して検証できないという判定に応答して、
ランダムな時間に前記クライアント・デバイスと認証サーバとの間に安全なチャネルを確立するステップと、
前記安全なチャネルを介して鍵セットアップ情報を前記認証サーバから受信するステップと、
前記認証サーバから受信された前記鍵セットアップ情報を使用して前記現在の暗号鍵を生成するステップと
をさらに含む、請求項１１に記載の方法。
【請求項１３】
プロセッサおよびプロセッサ・ユニット・メモリを含むプロセッサ・ユニットであり、前記プロセッサ・ユニット・メモリが、クライアント・デバイスの初期化のためのコンピュータ実行可能命令と導出方法および導出インデックス調整を実行するためのコンピュータ実行可能命令を含む鍵生成情報とを含み、
前記プロセッサが、
認証サーバからの鍵セットアップ情報であり、導出鍵、導出インデックス、満了したことが当該プロセッサ・ユニットが有するデバイス時間に基づき判断される最初の満了期間、および満了間隔を含む前記鍵セットアップ情報を含む通信であって、ネットワーク上の安全なチャネルを介する前記通信を受信することと、
鍵セットアップ情報の受信に応答して、前記プロセッサが、前記導出方法を行うための前記コンピュータ実行可能命令を実行すると共に、前記導出鍵、および前記導出インデックスを使用して、前記最初の満了期間の終了に先立って前記ネットワークにわたる複数のクライアント・デバイスのうちの少なくとも１つのクライアント・デバイスへのメッセージを暗号化するために使用される最初の暗号鍵を生成することと、
前記最初の満了期間が終了したという判定に応答して、
前記導出インデックス調整によって前記認証サーバから前もって受信された導出インデックスを調整することによって現在の導出インデックスを生成することと、
前記最初の満了期間および前記認証サーバから前もって受信された前記満了間隔に基づいて、満了したことが前記クライアント・デバイスが有するデバイス時間に基づき判断される現在の満了期間を生成することと、
前記導出方法、前記認証サーバから前もって受信された前記導出鍵、および前記現在の導出インデックスを使用して、前記現在の満了期間が終了するまで有効な後続の暗号鍵を生成することと
を行うために前記プロセッサ・ユニット・メモリからの前記導出方法および前記導出インデックス調整を行うためのコンピュータ実行可能命令を実行するように動作可能である、クライアント・デバイス。
【請求項１４】
前記現在の満了期間が終了したという判定に応答して、
前記導出インデックス調整によって前記現在の導出インデックスを調整することと、
前記認証サーバから前もって受信された前記満了間隔によって前記現在の満了期間を更新することと、
前記現在の満了期間が終了するまで有効な次の後続の暗号鍵を、前記導出方法、前記認証サーバから前もって受信された前記導出鍵、および前記現在の導出インデックスを使用して生成することと
をさらに備える、請求項１３に記載のクライアント・デバイス。
【請求項１５】
前記導出インデックス調整が１であり、前記現在の導出インデックスが、前記導出インデックス調整による前記現在の導出インデックスのインクリメントに基づく、請求項１４に記載のクライアント・デバイス。
【請求項１６】
前記鍵生成情報が、前記クライアント・デバイスの初期化または製造のいずれかで提供される、請求項１３に記載のクライアント・デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本願は、参照により本明細書に組み込まれている、２０１３年１１月１５日に出願された、Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｕｐｄａｔｉｎｇ  ａｎ  Ｅｎｃｒｉｐｔｉｏｎ  Ｋｅｙ  Ａｃｒｏｓｓ  ａ  Ｎｅｔｗｏｒｋという名称の米国特許出願第６１／９０４，８２９号の優先権を主張する。
【０００２】
本開示は、概してネットワーク内のデバイスにわたって暗号鍵を更新することに関し、より詳細には、デバイスで生成された鍵を更新された暗号鍵として使用することを対象とする。
【背景技術】
【０００３】
暗号鍵は、ネットワーク内のデバイスの間で安全に通信するために使用することができる。安全性を高めるために、暗号鍵は、現在の暗号鍵からは容易に判らない方式で定期的に変更される必要がある。いくつかのネットワークで、認証サーバは、デバイスに最初の暗号鍵を提供し、次いで、各デバイスに更新された暗号鍵を送信することによって、鍵を定期的に更新する。他のネットワークで、認証サーバは、デバイスに最初の暗号鍵を提供し、次いで、ネットワーク内のデバイスにコマンドを定期的に送信して、所定の方式で暗号鍵を更新するようにデバイスに指示する。これらの状況のいずれでも、暗号鍵の更新は、認証サーバからネットワークをわたってすべてのデバイスに至る通信を必要とする。大きなネットワークで、これは、大きな帯域幅を必要とし、ネットワークの性能に悪影響を及ぼす。
【発明の概要】
【課題を解決するための手段】
【０００４】
暗号鍵を生成し、クライアント・デバイスによってそれを更新するためのシステムおよび方法が開示される。暗号鍵は、定期的な間隔で各クライアント・デバイスによって独立して生成および更新されるが、それらの暗号鍵は、ネットワーク上のクライアント・デバイスにわたって共通であり続ける。
【０００５】
例示的な方法で、各クライアント・デバイスは、導出方法および導出インデックス調整を含む鍵生成情報を提供される。安全なチャネルが、認証サーバとクライアント・デバイスとの間に確立される。認証サーバは、導出鍵、導出インデックス、最初の満了期間、および満了間隔を含む、鍵セットアップ情報を安全なチャネルを介して送信する。クライアント・デバイスは、それぞれの鍵生成情報および鍵セットアップ情報を保持および記憶するが、この情報は、クライアント・デバイスと認証サーバとの間の追加の通信なしにネットワーク内のデバイスにわたる安全な通信のために使用される後続の暗号鍵の生成を可能にするために、ネットワーク内のデバイスにわたり共通であり続ける。
【０００６】
クライアント・デバイスが鍵セットアップ情報を受信するのに応答して、クライアント・デバイスは、提供された導出方法と、導出鍵および導出インデックスを含む認証サーバから前もって受信された鍵セットアップ情報と、の少なくとも一部に基づいて、最初の暗号鍵を生成する。最初の暗号鍵は、ネットワークにわたる複数のクライアント・デバイスに共通であり、認証サーバから前もって受信された最初の満了期間の終了まで有効である。
【０００７】
最初の満了期間が終了したというクライアント・デバイスの判定に応答して、クライアント・デバイスは、認証サーバから前もって受信された導出インデックスおよび導出インデックス調整に基づいて現在の導出インデックスを生成する。また、クライアント・デバイスは、最初の満了期間と認証サーバから受信された満了間隔とに基づいて、現在の満了期間を生成する。ここで、後続の暗号鍵が、提供された導出方法、認証サーバから前もって受信された導出鍵、および現在の導出インデックス、の少なくとも一部に基づいて、クライアント・デバイスによって生成される。各々の後続の暗号鍵は、暗号鍵がそのネットワークにわたるクライアント・デバイスに共通であり、現在の満了期間が終了するまで有効であるように、同様の方式で生成される。
【０００８】
クライアント・デバイスが現在の満了期間が終了したと判定するのに応答して、クライアント・デバイスは、現在の満了期間および認証サーバから前もって受信された満了間隔に基づく値に現在の満了期間をリセットする。加えて、現在の導出インデックスが、現在の導出インデックスおよび導出インデックス調整に基づいて更新される。次の後続の暗号鍵が、更新された現在の導出インデックスを使用して生成され、現在の満了期間の終了まで有効である。
【０００９】
また、認証サーバへのまたは認証サーバからの通信なしにクライアント・デバイスによって現在の暗号鍵を回復するための方法も開示される。例示的な方法は、クライアント・デバイスが、有効な現在の暗号鍵を生成するために、ネットワーク上のデバイスによって現在使用されている有効な現在の導出インデックスおよび有効な現在の満了期間にクライアント・デバイスの現在の導出インデックスおよびクライアント・デバイスの現在の満了期間を同期させるステップを含む。別の例示的な方法は、クライアント・デバイスが、現在の時間を含むメッセージを受信することによって、有効な現在の導出インデックス、現在の満了期間、および有効な現在の暗号鍵を生成するステップを含む。
【００１０】
これらの例示的な態様および特徴は、本発明を限定または定義するためにではなくて、本願で開示される本発明の概念の理解を助けるための例を提供するために記載される。本発明の他の態様、利点、および特徴は、本願全体を検討した後に明らかとなろう。
【００１１】
本開示のこれらのおよび他の特徴、態様、および利点は、以下のような添付の図面を参照して下記の発明を実施するための形態を読むときに、より深く理解される。
【図面の簡単な説明】
【００１２】
【図１】ネットワークを介する認証サーバおよびクライアント・デバイスの構成を示す図である。
【図２】暗号鍵の生成および保持において認証サーバおよびクライアント・デバイスによって使用される情報を示す図である。
【図３】最初の暗号鍵および後続の暗号鍵の生成を示すフローチャートである。
【図４Ａ】クライアント・デバイスが暗号鍵を回復するステップを示すフローチャートである。
【図４Ｂ】クライアント・デバイスが暗号鍵を回復するステップを示す図４Ａのフローチャートの続きを示す図である。
【図５】クライアント・デバイスが停電の後に暗号鍵を回復するステップを示すフローチャートである。
【発明を実施するための形態】
【００１３】
ネットワーク内のすべてのデバイスによって使用され得る、ネットワーク内のデバイスで最初の暗号鍵および後続の暗号鍵を生成するためのシステムおよび方法が提供される。ネットワーク上のこれらのデバイスの構成は、ネットワークを介して複数のクライアント・デバイスと通信する認証サーバを含む。ネットワークのデバイス（すなわち、認証サーバおよびクライアント・デバイス）は、有線および無線接続の両方を含む任意の既知の方式で接続することができ、ＩＰプロトコルなどの任意の種類の通信プロトコルを使用することができる。
【００１４】
複数のクライアント・デバイスは、ネットワークを介して互いにおよび認証サーバと通信する。ネットワーク内のデバイスは、同じ暗号鍵を使用し、したがって、デバイスにわたり共通の暗号鍵が、デバイス間の通信の安全性のために使用される。暗号鍵はまた、任意のクライアント・デバイスと認証サーバとの間の安全な通信のために使用され得る。
【００１５】
暗号鍵生成
ネットワーク内の各々のクライアント・デバイスは、プロセッサおよびメモリを備える。各クライアント・デバイスには、導出アルゴリズムまたは方法および導出インデックス調整を含むがこれらに限定されない鍵生成情報が提供される。一つの実装形態では、導出方法は、ＮＩＳＴ  ＳＰ  ８００−１０８に基づく。他の実装形態では、導出方法は、ＦＩＰＳ  １９８−１に記載されるようなＳＨＡ−２５６ベースのＨＭＡＣであることができる、疑似ランダム関数を使用することができる。しかし、他の疑似ランダム関数は、それらが暗号鍵の判定を困難にするのに十分なランダム化を提供する限り、使用され得る。たとえば、導出方法は、暗号鍵を生成するときにランダム化を導入するために、ストリングなどのラベルを使用することができる。鍵生成情報は、クライアント・デバイスの初期化の間にまたは製造中に提供されることができる。鍵生成情報は、各デバイスによってそれぞれのメモリ内に記憶される。
【００１６】
ネットワーク上の認証サーバは、導出鍵、導出インデックス、最初の満了期間、および満了間隔を含む鍵セットアップ情報を、安全なチャネルを介して各クライアント・デバイスに送信する。提供された鍵生成情報のように、各クライアント・デバイスによって受信される鍵セットアップ情報もまた、各デバイスによってそれぞれのメモリに記憶される。
【００１７】
クライアント・デバイスが鍵セットアップ情報を受信するのに応答して、クライアント・デバイスは、独立して、最初の暗号鍵を生成する。最初の暗号鍵は、クライアント・デバイスに提供された導出方法と、導出鍵および認証サーバから前もって受信された導出インデックスを含むがこれらに限定されない鍵セットアップ情報と、の少なくとも一部に基づいて、各クライアント・デバイスによって生成される。
【００１８】
各クライアント・デバイスは、同じ導出方法および同じ鍵セットアップ情報を提供されたので、各デバイスによって生成される最初の暗号鍵は、すべてのクライアント・デバイスについて共通または同一である。最初の暗号鍵は、各クライアント・デバイスに提供された最初の満了期間の終了まで有効である。直近に生成された暗号鍵は、メッセージを検証するために、そしてまたメッセージを暗号化および復号化するために、デバイスによって使用されるものであり、したがって、最初の暗号鍵が現在の暗号鍵でもよいことに留意されたい。「最初の暗号鍵」という専門用語が、異なる時間に生成される暗号鍵の生成の説明において容易に参照できるように本願では使用されている。
【００１９】
認証サーバは、プロセッサおよびメモリを備え、各クライアント・デバイスによって独立して生成される最初の暗号鍵と、生成されるときに同一である最初の暗号鍵もまた生成する。これを行うために、認証サーバは、各クライアント・デバイスに提供される同じ鍵生成情報を提供される。認証サーバは、それ自体のメモリに鍵生成情報を記憶する。加えて、認証サーバは、それ自体のメモリに同じ鍵セットアップ情報を保持する。したがって、認証サーバは、提供された導出方法および鍵セットアップ情報の少なくとも一部に基づいて、最初の暗号鍵を生成することができる。認証サーバによって生成される最初の暗号鍵は、各クライアント・デバイスによって生成されるのと同一であり、最初の満了期間の終了まで有効である。
【００２０】
複数のクライアント・デバイスおよび認証サーバを含むネットワーク上の各デバイスは、最初の暗号鍵を独立して生成する。各デバイスがそれぞれの最初の暗号鍵を独立して生成するが、すべてのデバイスの最初の暗号鍵は同一である。すべてのクライアント・デバイスによって受信され、認証サーバによって保持される最初の満了期間もまた同一であり、したがって、ネットワーク上のすべてのデバイスは同期され、最初の満了期間の最後まで最初の暗号鍵を使用して安全に通信することに留意されたい。
【００２１】
デバイス、クライアント・デバイスまたは認証サーバのいずれかのデバイスが、最初の満了期間が終了したと判定するのに応答して、そのデバイスは、新しい暗号鍵を生成する。すべてのデバイスが、同一の最初の満了期間を使用して満了を判定するので、すべてのデバイスは、最初の満了期間が終了したと同時に判定する。最初の満了期間が終了すると、後続の暗号鍵を生成するために、いくつかのステップがデバイスによって実行される。現在の導出インデックスが、認証サーバから前もって受信された導出インデックスおよび提供された導出インデックス調整を使用し、各デバイスによって生成される。後続の暗号鍵の現在の満了期間が、最初の満了期間および認証サーバから前もって受信された満了間隔に基づいて生成される。
【００２２】
現在の導出インデックスが生成されると、後続の暗号鍵が、提供された導出方法、認証サーバから前もって受信された導出鍵、および現在の導出インデックスの少なくとも一部に基づいて生成される。最初の暗号鍵のように、後続の暗号鍵が各デバイスによって独立して生成されたとしても、後続の暗号鍵はそのネットワーク内のデバイスにわたり同じである。直近に生成された後続の暗号鍵が、現在の暗号鍵になり得る。
【００２３】
最初の暗号鍵と同様に、現在の暗号鍵は、現在の満了期間の最後まで有効である。すべてのデバイスによって生成される現在の満了期間は、最初の満了期間と認証サーバによって提供された満了間隔とを使用して生成されることに留意されたい。この情報は、各デバイスによって独立して記憶および保持されるが、それはネットワーク上のクライアント・デバイスに認証サーバによって提供されるため、その情報はデバイスにわたって同じである。したがって、ネットワーク上のすべてのデバイスは同期化され、現在の満了期間の最後まで現在の暗号鍵を使用して安全に通信する。
【００２４】
デバイスが現在の満了期間が終了したと判定するのに応答して、そのデバイスは、前述と同じ方法を使用して別の新しい暗号鍵を生成する。これは導出インデックス調整によって現在の導出インデックスを更新するステップと、満了間隔によって現在の満了期間を更新するステップと、および導出方法、導出鍵、および更新された導出インデックスに基づいて次の後続の暗号鍵を生成するステップとを含む。次の後続の暗号鍵が現在の暗号鍵になり、更新された現在の満了期間まで有効になる。そして、再び、デバイスが更新された現在の満了期間が終了したと判定したとき、そのデバイスは、前述のように現在の暗号鍵になる次の後続の暗号鍵を生成する。
【００２５】
各デバイスが、鍵生成情報と、鍵セットアップ情報と、現在の導出インデックスおよび現在の満了期間などの各デバイスによって生成されるその他の情報とを記憶および保持するため、現在の暗号鍵になり、現在の満了期間まで有効な後続の暗号鍵の生成のこの反復は、無期限に継続することができ、各デバイスによって独立して実行される。
【００２６】
いくつかの実施形態で、最初の暗号鍵であっても後続の暗号鍵であっても、暗号鍵は、導出方法に基づいて生成される。すべてのデバイスは、一の導出方法を使用して共通の暗号鍵を生成することができる。当技術分野では知られているように、実行する反復の回数または生成する鍵の長さなど、追加情報が導出方法に提供され得る。使用される導出方法は、たとえ現在の暗号鍵が知られていても後続の暗号鍵の判定を困難にするのに十分なランダム化を提供しなくてはならない。追加情報が導出方法に提供される場合、各デバイスが暗号鍵を生成するために導出方法に提供することになる追加情報は、同一の暗号鍵がネットワーク上の複数のデバイスによって生成されることを保証するようなものでなければならない。
【００２７】
他の実施形態で、導出方法の出力の長さが暗号鍵の所望の長さを超える場合、そのとき、クライアント・デバイスは、その導出方法の出力の一部のみを使用することができる。たとえば、所望の長さが１２８ビットであり、導出方法からの出力が２５６ビットである場合、そのとき、最初の１２８ビットが暗号鍵として使用され得る。所望の長さがあらかじめ定められており、導出方法および導出インデックス調整とともにデバイスに提供することができる。
【００２８】
暗号鍵の回復
クライアント・デバイスのうちの１つが、現在の暗号鍵を使用して別のクライアント・デバイスからのメッセージを検証することができない場合、そのデバイスは現在の導出インデックスを同期させて有効な現在の暗号鍵を生成しようと試みることができる。現在の導出インデックスを同期させることによって、クライアント・デバイスは、認証サーバとのやり取りを必要とせずに、自身の現在の暗号鍵がその他のクライアント・デバイスの現在の暗号鍵と一致することを確実にすることができる。
【００２９】
たとえば、デバイスＡがメッセージをデバイスＢに送信し、デバイスＢがデバイスＡからのメッセージを検証することができない場合、以下のステップが実行されてデバイスＡおよびデバイスＢの現在の導出インデックスを同期させることができる。本例では、現在の導出インデックスは、導出インデックス調整の値によってインクリメントされ、したがって、後続の暗号鍵の生成の反復ごとに、現在の導出インデックスは所定の量によってインクリメントする。この所定の量が、導出インデックス調整である。ステップは、以下のとおりである：
【００３０】
＊  デバイスＢが、デバイスＡからメッセージを受信する。
【００３１】
＊  デバイスＢは、デバイスＢの現在の暗号鍵を使用してデバイスＡからのメッセージを検証することができない。
【００３２】
＊  デバイスＢは、導出インデックス調整によってインクリメントされた自身の現在の導出インデックスを使用して生成されたトライアル暗号鍵を使用して、メッセージの検証を試みる。したがって、デバイスＢは、導出インデックス調整によってインクリメントされたそれ自体の導出インデックスを使用してトライアル暗号鍵を生成する。デバイスＡからのメッセージの検証が、トライアル暗号鍵を使用して成功した場合、デバイスＢは、それ自身の現在の暗号鍵としてトライアル暗号鍵を採用し、自身の現在の導出インデックスとしてインクリメントされた導出インデックスを採用する。デバイスＢがデバイスＡから受信したメッセージが、Ｂの現在の導出インデックスを更新するための情報を含む場合、デバイスＢは、デバイスＡから受信されたメッセージの処理を停止する。
【００３３】
＊  Ａからのメッセージの検証が、Ｂの現在の導出インデックスをインクリメントすることによって生成されたトライアル暗号鍵を使用して成功しない場合、次いで、デバイスＢは、導出インデックス調整によってデクリメントされた自身の現在の導出インデックスを使用して異なるトライアル暗号鍵を生成する。したがって、Ｂは、導出インデックス調整によってデクリメントされたそれ自身の導出インデックスを使用してトライアル暗号鍵を生成する。このトライアル暗号鍵を使用するデバイスＡからのメッセージの検証の成功は、デバイスＡが、自身の現在の導出インデックスとして導出インデックスの前の値を使用していることを示す。デバイスＢは、デバイスＢの現在の暗号鍵で暗号化されたメッセージをデバイスＡに送信することになる。デバイスＡがこのメッセージをデバイスＢから受信するとき、デバイスＡはこのメッセージを検証することができないことになり、デバイスＡはそれ自身の暗号鍵回復を開始することになる。
【００３４】
＊  Ａからのメッセージの検証が、Ｂの現在の導出インデックスをデクリメントすることによって生成されたトライアル暗号鍵を使用して成功しない場合、次いで、デバイスＢは、前の導出鍵およびそれの現在の導出インデックスを使用して異なるトライアル暗号鍵を生成する。デバイスＢが前の導出鍵を有さない場合、デバイスＢは、デバイスＡからのメッセージを無視する。デバイスＡからのメッセージの検証が、前の導出鍵を使用して生成されたトライアル暗号鍵を使用して成功した場合、デバイスＡは、前の導出鍵を使用していることとなる。デバイスＢは、トライアル暗号鍵を使用して暗号化された自身の導出鍵を更新するために、デバイスＡにメッセージを送信し、従って、デバイスＡは、このメッセージを検証することができる。
【００３５】
＊  Ａからのメッセージの検証が、前の導出鍵および自身の現在の導出インデックスを使用して生成されたトライアル暗号鍵を使用して成功しなかった場合、デバイスＢは、デバイスＡからのメッセージを無視する。
【００３６】
また、クライアント・デバイスが電源喪失を経験した場合、暗号鍵回復を実行することができる。デバイスが電源喪失を経験すると、それの内部クロックは現在のデバイス時間をもはや有していないことがある。一実施形態では、機能停止を経験し、オンラインになったクライアント・デバイスは、現在の時間を含むメッセージを受信した場合、暗号化を回復することができる。そのようなメッセージは、現在の暗号鍵を使用して検証することができる認証コードを含むビーコン・メッセージでもよい。
【００３７】
オンラインになるデバイスが、ビーコン・メッセージを受信するとき、そのデバイスは、自身の現在の暗号鍵を使用してビーコン・メッセージの認証コードを検証しようと試みることになる。検証が成功した場合、そのデバイスは、自身の現在のデバイス時間としてビーコン・メッセージで指定された時間を受け入れることができる。それにより、そのデバイスは、現在の導出鍵、現在の導出インデックス、現在の満了期間および現在の暗号鍵を有する。
【００３８】
ビーコン・メッセージの検証が失敗した場合、デバイスは、そのデバイスが電力を失って以降に終了した満了間隔の数を計算する。これは、ビーコン・メッセージ内の時間、現在の満了期間および満了間隔を使用して計算することができる。ビーコン・メッセージが時間を含まない場合、デバイスは、それが電力を失って以降に終了した満了間隔の数として１を使用することができる。
【００３９】
現在の導出インデックスが、デバイスが電力を失って以降に終了した間隔の数によってインクリメントされる。後続の暗号鍵が、現在の導出鍵と停電以降に終了した間隔の数によってインクリメントされた現在の導出インデックスとを使用して生成される。ビーコン・メッセージの検証が、生成された後続の暗号鍵を使用して成功した場合、デバイスは、そのビーコン内の時間を受け入れる。加えて、そのデバイスは、現在の満了期間および満了間隔に基づいて現在の満了期間を生成する。そのデバイスはまた、現在の導出インデックスおよび現在の暗号鍵の自身の現在の値を生成されたばかりのものに更新する。
【００４０】
ビーコン・メッセージの検証が、生成されたばかりの後続の暗号鍵で失敗した場合、そのビーコン・メッセージは無視される。本例では、デバイスはビーコン・メッセージを受信したので、そのデバイスは、隣接するデバイスが存在することを理解している。所定の時間（すなわち、３０秒）の後に、デバイスが有効な時間を取得することができない場合、そのデバイスは、その後の２４時間にわたりランダムな時間を生成することができる。その生成された時間に、デバイスは、認証サーバと認証を開始する。すべてのデバイスが同時に認証をしようとしないように、認証サーバと認証を開始する時間は、ランダムである。
【００４１】
示された前の例では、クライアント・デバイスは、消費者による資源の消費を監視、制御、および測定するために公益事業会社および他の資源提供者によって使用され得るネットワーク内のメータでもよい。ここで、本発明の例示的実施形態が示された添付の図面を参照して、本発明を説明する。
【００４２】
図１は、ネットワークを介する認証サーバおよびクライアント・デバイスの構成の一例である。認証サーバ１２０は、ネットワーク１１０を介して様々なクライアント・デバイス１３１〜１３４と通信する。任意のクライアント・デバイス１３１〜１３４は、ネットワーク１１０を介して任意の他のクライアント・デバイス１３１〜１３４または認証サーバ１２０と通信することができる。通信は、任意の適切なプロトコルおよび任意の適切なネットワーク構成を使用し、進めることができる。プロトコルは、８０２．１５．４、ＰＲＩＭＥ、Ｇ３、およびＴＣＰ／ＩＰおよびＵＤＰ／ＩＰプロトコルを含むが、これらに限定されない。
【００４３】
ネットワーク上のデバイスは、認証サーバ１２０およびクライアント・デバイス１３１〜１３４を含むが、これらに限定されない。ネットワーク１１０内のデバイス１２０、１３１〜１３４の間の安全な通信のために、デバイスは、暗号鍵を使用して、送信されるメッセージを暗号化し、受信されたメッセージを復号化する。さらなる安全性を実現するために、暗号鍵は、各デバイスによって、定期的に更新される。しかし、更新された暗号鍵は、ネットワーク１１０内のすべてのデバイス１２０、１３１〜１３４にわたりメッセージの暗号化および復号化を可能にするために、デバイス１２０、１３１〜１３４にわたり同じである。
【００４４】
図２を参照すると、認証サーバ１２０は、プロセッサ２１１およびメモリ２１３を備える。認証サーバ１２０のプロセッサ２１１は、メモリ２１３に記憶された命令を実行する。認証サーバ１２０は、暗号鍵を生成するために自身のメモリ情報を保持する。その情報は、導出方法２４６および導出インデックス調整２４３を含むがこれらに限定されない鍵生成情報を含む。鍵生成情報は、インストールまたは製造時に認証サーバに提供され得る。
【００４５】
加えて、認証サーバは、暗号鍵を生成するための追加情報を自身のメモリに保持する。この追加情報は、導出鍵２４１、導出インデックス２４２、満了期間２４４および満了間隔２４５を含むがこれらに限定されない、鍵セットアップ情報を含む。鍵生成情報のように、鍵セットアップ情報は、インストールまたは製造時に認証サーバに提供され得る。認証サーバはまた、認証サーバの現在のデバイス時間を保持するクロック２５１を備える。認証サーバの現在のデバイス時間を保持するクロックは、認証サーバの初期化またはインストール中にセットすることができる。加えて、クロックは、現在の時間を含むメッセージの受信時にセットまたはリセットすることができる。
【００４６】
ネットワーク上に複数のクライアント・デバイス１３１〜１３３が存在してもよい。各クライアント・デバイス１３１〜１３３は、それぞれ、プロセッサ２２１、２２２、２２３およびメモリ２３１、２３２、２３３を備える。各プロセッサ２２１〜２２３は、クライアント・デバイス１３１〜１３３のそれぞれのメモリ２３１〜２３３に記憶された命令を実行する。本例では、クライアント・デバイス１３１、クライアント・デバイス１３２およびクライアント・デバイス１３３は同様であると仮定する。したがって、１つのクライアント・デバイスに関する説明は、すべてのクライアント・デバイス１３１〜１３３に適用可能である。
【００４７】
各クライアント・デバイス１３１〜１３３は、導出方法２４６’、２４６’’、および２４６’’’、導出インデックス調整２４３’、２４３’’、および２４３’’’を含むがこれらに限定されない鍵生成情報が提供される。認証サーバ１２０に提供される導出方法２４６、クライアント・デバイス１３１に提供される導出方法２４６’、クライアント・デバイス１３２に提供される導出方法２４６’’、およびクライアント・デバイス１３３に提供される導出方法２４６’’’は同一であることに留意されたい。同様に、認証サーバ１２０に提供される導出インデックス調整２４３、および、クライアント・デバイス１３１〜１３３の各々によって提供される導出インデックス調整２４３’、２４３’’、および２４３’’’は、同一である。各デバイス１２０、１３１、１３２、１３３は、ネットワーク１１０上のデバイス１２０、１３１、１３２、１３３にわたり共通である鍵生成情報を独立して記憶および保持する。加えて、各クライアント・デバイスは、各クライアント・デバイスの現在のデバイス時間を保持するクロック２５１’、２５１’’、および２５１’’’を備える。各デバイスの現在のデバイス時間は、クライアント・デバイスのインストールまたは初期化中に、最初にセットすることができる。また、各デバイスの現在のデバイス時間は、現在の時間を含むメッセージを受信したときに、セットすることができる。このメッセージは、認証サーバまたは別のクライアント・デバイスから受信することができる。現在の時間を含むメッセージの種類の一例は、ビーコン・メッセージである。
【００４８】
さらなる参照のために、図２のハッシュ・マークを有する共通の参照番号は、各デバイスに独立して記憶および保持された共通の情報を示す。たとえば、図２を参照すると、認証サーバ内の導出鍵２４１、クライアント・デバイス１３１の導出鍵２４１’、クライアント・デバイス１３２の導出鍵２４１’’、および、クライアント・デバイス１３３の導出鍵２４１’’’は、すべて同一である。しかし、各デバイスは、それぞれのメモリ２３１〜２３３にこの情報のそれぞれ自身のコピーを保持する。
【００４９】
ネットワーク１１０内のデバイスに共通の暗号鍵を生成するために、ネットワーク上の任意のクライアント・デバイス１３１〜１３３は、クライアント・デバイス１３１〜１３３と認証サーバ１２０との間の安全なチャネルの確立を要求する。たとえば、クライアント・デバイス１３１は、それ自体と認証サーバ１２０との間に安全なチャネルが確立されることを要求し得る。認証サーバ１２０は、次いで、クライアント・デバイス１３１にメッセージを送信する。このメッセージは、導出鍵２４１、導出インデックス２４２、満了期間２４４、および満了間隔２４５を含むがこれらに限定されない、鍵セットアップ情報を含む。クライアント・デバイス１３１は、自身のメモリ２３１に、この情報を導出鍵２４１’、導出インデックス２４２’、満了期間２４４’および満了間隔２４５’として、独立して記憶および保持する。認証サーバ１２０から任意のデバイス１３１〜１３３に送信される鍵セットアップ情報は同一であることに留意されたい。言い換えれば、各デバイスによって記憶および保持される鍵セットアップ情報は、すべてのデバイスに共通である。鍵生成情報のように、各デバイス１２０、１３１、１３２、１３３は、ネットワーク１１０上のデバイス１２０、１３１、１３２、１３３にわたり共通な鍵セットアップ情報を独立して記憶および保持する。
【００５０】
クライアント・デバイス１３１が、鍵セットアップ情報を受信したと判定すると、クライアント・デバイス１３１は、提供された導出方法２４６’と導出鍵２４１’および導出インデックス２４２’を含む前もって受信された鍵セットアップ情報との少なくとも一部に基づいて、最初の暗号鍵２４８’を生成する。最初の暗号鍵２５０’を生成するこのプロセスは、すべてのクライアント・デバイス１３１〜１３３に共通であり、したがって、クライアント・デバイス１３１〜１３３の各々が、認証サーバ１２０から鍵セットアップ情報を受信したと独立して判定すると、そのデバイスは、すべてのデバイス１３１〜１３３に共通のそれ自身の最初の暗号鍵２５０’、２５０’’、および２５０’’’を生成することになる。言い換えれば、クライアント・デバイス１３１によって独立して生成される最初の暗号鍵２５０’は、クライアント・デバイス１３２によって生成される最初の暗号鍵２５０’’と同一であり、クライアント・デバイス１３３によって生成される最初の暗号鍵２５０’’’と同一であることになる。各クライアント・デバイス１３１〜１３３は、それぞれ、それ自身のメモリ２３１〜２３３にそれ自身の最初の暗号鍵２５０’、２５０’’、および２５０’’’を記憶する。
【００５１】
最初の暗号鍵２５０’、２５０’’、および２５０’’’が現在の暗号鍵になることに留意されたい。すなわち、最初の暗号鍵は、満了期間２４４’、２４４’’、および２４４’’’まで、すべてのデバイスによって現在使用される暗号鍵である。各デバイスは、現在の暗号鍵２４８’、２４８’’、および２４８’’’と別個に最初の暗号鍵２５０’、２５０’’、および２５０’’’を記憶することができる。別法として、デバイスは、現在の暗号鍵として最初の暗号鍵を記憶および保持することができる。本実施形態では、図示はされていないが、最初の暗号鍵が現在の暗号鍵として記憶および保持されることになるので、デバイスのメモリは、最初の暗号鍵を含まないことになる。
【００５２】
認証サーバ１２０はまた、クライアント・デバイスがそれらの最初の暗号鍵を生成するのと同一の方法で、それ自身の最初の暗号鍵２５０を生成することができる。最初の暗号鍵を生成するために必要とされる情報はデバイスにわたり同一であるので、認証サーバによって生成される最初の暗号鍵２５０は、各クライアント・デバイス１３１〜１３３によって独立して生成される最初の暗号鍵２５０’、２５０’’、２５０’’’と同じ値を有する。同様に、認証サーバ１２０は、最初の暗号鍵を現在の暗号鍵として記憶および保持することができる。
【００５３】
最初の暗号鍵２５０は、それぞれ、認証サーバ１２０から受信され、各クライアント・デバイス１３１〜１３３によってそれ自身のメモリ２３１〜２３３に２４４’、２４４’’、２４４’’’として別個に記憶された、満了期間２４４の終了まで有効である。したがって、任意のクライアント・デバイス１３１〜１３３は、満了期間２４４が終了したかを判定することができる。クライアント・デバイス１３１が、満了期間２４４’が終了したと判定するとき、クライアント・デバイス１３１は、前もって提供された導出インデックス調整２４３’によって認証サーバ１２０から前もって受信された導出インデックス２４２’を修正することにより、現在の導出インデックス２４７’を生成することになる。他のクライアント・デバイス１３２、１３３もまた、それら自身の満了期間２４４’’、２４４’’’を使用し、いつ満了期間２４４が終了するかを判定することができ、それらはまた、デバイス１３１〜１３３にわたり同一であることになる現在の導出インデックス２４７’’および２４７’’’を生成することになる。
【００５４】
認証サーバ１２０はまた、自身の満了期間２４４が終了したかを判定することによって、いつ自身の最初の暗号鍵２５０が失効するかを判定することができる。したがって、満了期間２４４、２４４’、２４４’’、および２４４’’’は同一であるので、すべてのデバイスの最初の暗号鍵２５０、２５０’、２５０’’、および２５０’’’は、同時に失効する。
【００５５】
現在の導出インデックス２４７’の生成に加えて、クライアント・デバイス１３１は、認証サーバ１２０から前もって受信された満了期間２４４’および満了間隔２４５’に基づいて、現在の満了期間２４９’を生成することになる。同様に、認証サーバ１２０および他のデバイス１３２〜１３３はまた、同じ方式でそれらの現在の満了期間２４９、２４９’’、および２４９’’’を生成することになり、したがって、すべてのデバイスにわたり生成される現在の満了期間は、同じである。
【００５６】
現在の導出インデックス２４７’および現在の満了期間２４９’の生成とともに、満了期間２４４’が終了したと判定したとき、クライアント・デバイス１３１は、提供された導出方法２４６’、認証サーバ１２０から前もって受信された導出鍵２４１’、および、現在の導出インデックス２４７’の少なくとも一部に基づいて、後続の暗号鍵を生成する。最近に生成されたこの後続の暗号鍵は、現在の暗号鍵２４８’になり、現在の満了期間２４９’まで有効である。この同じ手順が、ネットワーク上のすべてのその他のデバイスによって実行されて、現在の満了期間２４９、２４９’’、および２４９’’’まで有効であることになるそれぞれの現在の暗号鍵２４８、２４８’’、２４８’’’を生成する。
【００５７】
認証サーバ１２０およびクライアント・デバイス１３１〜１３３を含むネットワーク１１０上のデバイスは、すべてのデバイスに共通な情報を有することにより、同期させられて暗号鍵を生成する。この共通の情報は、導出鍵２４１、導出インデックス２４２、導出インデックス調整２４３、満了期間２４４、満了間隔２４５、導出方法２４６、現在の導出インデックス２４７、現在の満了期間２４９を含むが、これらに限定されない。この情報は、各デバイスによって独立して保持されるが、デバイスの間で共通である。共通の情報の使用を介するこの同期化により、各デバイスは、ネットワーク内のデバイスの間で共通の現在の暗号鍵を独立して生成することができる。
【００５８】
現在の暗号鍵２４８は、現在の満了期間２４９まで有効である。デバイスが、現在の満了期間２４９が終了したと判定するとき、後続の暗号鍵が生成される。各後続の暗号鍵は、それぞれの満了期間について有効である。たとえば、デバイス１３１が、現在の満了期間が達せられたので、現在の暗号鍵２４８’はもはや有効でないと判定するとき、クライアント・デバイス１３１は、次の後続の暗号鍵と、生成された次の後続の暗号鍵のそれぞれの満了期間とを生成することになる。次の後続の暗号鍵が、現在の暗号鍵２４８’になり、それぞれの満了期間が、現在の満了期間２４９’になる。
【００５９】
次の後続の暗号鍵を生成するために、デバイス１３１は、それが導出インデックス調整２４３’によって自身のメモリ２３１に保持する現在の導出インデックス２４７’を修正することによって、新しい導出インデックスを生成する。たとえば、導出インデックス調整２４３’の値が１である場合、そのとき、新しい導出インデックスの値は、１インクリメントされた現在の導出インデックス２４７’の値であることになる。現在の導出インデックス２４７’は、新しい導出インデックスの値に更新され得る。したがって、クライアント・デバイス１３１は、次の後続の暗号鍵の生成で使用されることになる更新された現在の導出インデックス２４７’を有する。
【００６０】
加えて、デバイス１３１は、次の後続の暗号鍵のそれぞれの満了期間を生成する。それぞれの満了期間は、デバイス１３１が自身のメモリ２３１に保持する現在の満了期間２４９’と、認証サーバから前もって受信され、デバイス１３１のメモリ２３１に保持された満了間隔２４５’とに基づいて生成される。それぞれの満了期間は、以下に説明されるように、生成されることになる次の後続の暗号鍵の満了期間である。したがって、現在の満了期間２４９’は、それぞれの満了期間の値に更新される。ここで、クライアント・デバイス１３１は、更新された現在の導出インデックス２４７’および現在の満了期間２４９’を有する。
【００６１】
クライアント・デバイス１３１は、提供された導出方法２４６’、認証サーバから受信された導出鍵２４１’、および、クライアント・デバイスによって計算された現在の導出インデックス２４７’の少なくとも一部に基づいて、次の後続の暗号鍵を生成する。現在の暗号鍵２４８’の値が、次の後続の暗号鍵の値によって置き換えられる。言い換えれば、現在の暗号鍵２４８’が次の後続の暗号鍵に更新される。ここで、クライアント・デバイス１３１は、現在の満了期間２４９’が終了するまで有効な更新された現在の暗号鍵２４８’を有する。
【００６２】
現在の満了期間が終了すると、現在の導出インデックス２４７’の更新、現在の満了期間２４９’の更新、および現在の暗号鍵２４８’になる次の後続の暗号鍵の生成のサイクルが、繰り返される。ネットワーク上のあらゆるデバイスは、現在の満了期間２４９、２４９’、２４９’’および２４９’’’が終了するたびに、それ自身の現在の暗号鍵２４８、２４８’、２４８’’、および２４８’’の生成の本手順を踏む。これにより、ネットワーク上のデバイスが、それらのデバイスに共通であり、デバイスの間の安全な通信のために使用することができる、現在の暗号鍵２４８、２４８’、２４８’’、および２４８’’’を独立して生成することを可能にする。
【００６３】
図２は、導出インデックス２４２、２４２’、２４２’’、および２４２’’’と現在の導出インデックス２４７、２４７’、２４７’’、および２４７’’’とを有する各デバイスを示す。デバイスは、現在の暗号鍵を生成するために現在使用される導出インデックスであることになる１つの導出インデックスのみを記憶および保持することができることに留意されたい。したがって、導出インデックスが更新されるたびに、それは現在の導出インデックスとして記憶され、その結果、前の現在の導出インデックスを置き換えることになる。同様に、各デバイスは、満了期間２４４、２４４’、２４４’’、および２４４’’’と現在の満了期間２４９、２４９’、２４９’’、および２４９’’’との両方を保持してもしなくてもよい。本実施形態では、認証サーバから前もって受信された最初の満了期間は、現在の満了期間として記憶および保持され得る。また、満了期間が生成されるたびに、それは、前の現在の満了期間を置き換える現在の満了期間として記憶および保持されることになる。各デバイスはまた、現在の暗号鍵２４８、２４８’、２４８’’、および２４８’’’のみを記憶および保持することができる。同様に、各デバイスは、最初の暗号鍵２５０、２５０’、２５０’’、および２５０’’’と現在の暗号鍵２４８、２４８’、２４８’’、および２４８’’’とを保持してもしなくてもよい。本実施形態では、最初の暗号鍵は、現在の暗号鍵として記憶および保持することができる。後続の暗号鍵が生成されるとき、それは現在の暗号鍵を置き換えることになる。
【００６４】
図３は、ネットワーク上のデバイスに共通の最初の暗号鍵および後続の暗号鍵を生成するためのプロセス３００を示す。認証サーバとクライアント・デバイスとの間の安全なチャネルが、ステップ３１０で確立される。そのチャネルを確立するための要求は、サーバまたはクライアント・デバイスによって起こすことができる。
【００６５】
安全なチャネルが確立された後、認証サーバが、ステップ３２０で、導出鍵、導出インデックス、満了期間、および満了間隔を含むがこれらに限定されないセットアップ情報を安全なチャネルを介してクライアント・デバイスに送信する。
【００６６】
クライアント・デバイスが鍵セットアップ情報を受信するのに応答して、ステップ３３０で、クライアント・デバイスは、提供された導出方法と、ステップ３２０で認証サーバから受信された導出鍵および導出インデックスに基づいて、最初の暗号鍵を生成する。最初の暗号鍵は、満了期間の終了まで、有効であり、ネットワーク上のデバイスをわたる安全な通信のために使用することができる。
【００６７】
ステップ３４０で、クライアント・デバイスが、満了期間が終了したかを判定する。
満了期間が終了していない場合、最初の暗号鍵は有効であり、そのクライアント・デバイスは、ステップ３５０で最初の暗号鍵を使用し続ける。
【００６８】
満了期間が終了した場合、ステップ３６０で、クライアント・デバイスは、導出インデックス調整によって認証サーバから前もって受信された導出インデックスを修正することによって、現在の導出インデックスを生成する。加えて、クライアント・デバイスは、満了期間とステップ３２０で認証サーバから前もって受信された満了間隔の少なくとも一部に基づいて、ステップ３７０で現在の満了期間を生成する。ステップ３６０での現在の導出インデックスの生成のステップと、ステップ３７０での現在の満了期間の生成のステップは、異なる順番で実行することができる。一実施形態では、満了期間は、現在の導出インデックスの生成の前または後に生成することができる。
【００６９】
ステップ３８０では、最初の暗号鍵はもはや有効でないので、後続の暗号鍵が生成される。後続の暗号鍵は、提供された導出方法、ステップ３２０で認証サーバから前もって受信された導出鍵、および現在の導出インデックスの少なくとも一部に基づいて、生成される。各後続の暗号鍵は、ネットワークをわたってデバイスに共通であり、現在の満了期間の終了まで有効である。直近に生成された後続の暗号鍵が、現在の暗号鍵である。現在の暗号鍵になるこの最新の後続の暗号鍵は、現在の満了期間が終了するまで有効である。
【００７０】
クライアント・デバイスが、現在の満了期間が終了したと判定するとき、ステップ３６０〜３８０が繰り返されて後続の暗号鍵を定期的に生成する。後続の暗号鍵を生成するためにクライアント・デバイスによって必要とされるすべての情報は、クライアント・デバイスによって記憶および保持されるので、クライアント・デバイスは、ネットワーク上の他のデバイスとの安全な通信のために使用するのに有効な後続の暗号鍵を独立して生成する。
【００７１】
図４Ａ〜４Ｂは、ネットワーク内のデバイスの間で現在使用されている暗号鍵を回復するためのプロセス４００を示す。本プロセスは、トライアル暗号鍵を生成することによって認証サーバへのまたは認証サーバからの任意の通信が必要ない、クライアント・デバイスによる現在の暗号鍵の回復を目的とする。トライアル暗号鍵の使用を介して、デバイスは、有効な現在の暗号鍵を生成するために、自身の現在の導出インデックスおよび自身の現在の満了期間を、ネットワーク上のデバイスによって現在使用される有効な現在の導出インデックスおよび有効な現在の満了期間と同期させることができる。
【００７２】
たとえば、ステップ４１０で、デバイスＢは、デバイスＡからメッセージを受信する。デバイスＢは、デバイスＢの現在の暗号鍵を使用してデバイスＡから受信されたメッセージを検証することができない。
【００７３】
本例では、デバイスＢが自身の現在の暗号鍵を使用して受信されたメッセージを検証することができないことに応答して、デバイスＢは、ステップ４２０でトライアル暗号鍵を生成する。トライアル暗号鍵は、トライアル導出インデックスを使用して生成される。トライアル導出インデックスは、導出インデックス調整によって導出インデックスをインクリメントすることによって生成される。したがって、このトライアル暗号鍵は、現在の満了期間が終了するとデバイスＢが生成することになる後続の暗号鍵である。
【００７４】
ステップ４３０でのトライアル暗号鍵を使用するデバイスＢによるメッセージの検証の成功は、デバイスＢが、ステップ４７０で示すように、自身の現在の暗号鍵をそのトライアル暗号鍵で置き換え、自身の現在の導出インデックスをそのトライアル導出インデックスで置き換え、その満了間隔に基づいて自身の現在の満了期間を調整することを示す。ステップ４３０で、トライアル暗号鍵を使用するメッセージの検証が失敗した場合、デバイスＢは、ステップ４４０で第２のトライアル暗号鍵を生成することになる。第２のトライアル暗号鍵は、トライアル導出インデックスを使用して生成される。このトライアル導出インデックスは、導出インデックス調整によって導出インデックスをデクリメントすることによって生成される。したがって、このトライアル暗号鍵は、デバイスＢが生成した前の暗号鍵である。言い換えれば、このトライアル暗号鍵は、現在の暗号鍵が使用されるより前にデバイスＢによって使用された暗号鍵である。図４Ａのステップ４４０の後、プロセス４００は、図４Ｂのステップ４５０で継続する。
【００７５】
図４Ｂを参照すると、ステップ４５０での第２のトライアル暗号鍵を使用するデバイスＢによるメッセージの検証の成功は、デバイスＡが前の暗号鍵を使用している可能性を示す。したがって、デバイスＢは、ステップ４８０でデバイスＢの現在の暗号鍵で暗号化されたメッセージをデバイスＡに送信する。デバイスＡがデバイスＢからこのメッセージを受信するとき、デバイスＡは、それ自体の暗号鍵回復プロセスを開始することができる。第２のトライアル暗号鍵を使用するメッセージの検証が失敗した場合、ステップ４６０で、デバイスＢは、前の導出鍵を使用して第３のトライアル暗号鍵を生成することになる。前の導出鍵は、現在使用される導出鍵の前にデバイスＢによって使用された導出鍵でもよい。デバイスＢが前の導出鍵を記憶しない場合、デバイスＡからのメッセージは、無視または省略され得る。
【００７６】
ステップ４９０での第３のトライアル暗号鍵を使用するデバイスＢによるメッセージの検証の成功は、デバイスＡが前の導出鍵を使用している可能性を示す。したがって、デバイスＢは、ステップ４９５に示すように、デバイスＢの現在の導出鍵の値、デバイスＢの現在の導出インデックス、およびデバイスＢの現在の満了期間を含むメッセージをデバイスＡに送信する。デバイスＢからのこのメッセージは、第３のトライアル暗号鍵を使用して暗号化することができる。デバイスＡがこのメッセージを受信するとき、デバイスＡは、それを復号化してデバイスＡに示す値を取得して、自身の現在の導出鍵、自身の現在の導出インデックス、および自身の現在の満了期間をデバイスＢからのメッセージで受信されたものに更新する。
【００７７】
第３のトライアル暗号鍵を使用するデバイスＢによるメッセージの検証の成功がない場合、デバイスＢは、ステップ４８５に示すように、メッセージを無視することができる。
【００７８】
図５は、デバイスが、停電、またはデバイスが現在のデバイス時間を保持させないであろうその他の状態を経験したときに、暗号鍵を回復するためのプロセス５００を示す。本例では、ステップ５１０で、デバイスは、機能停止の後に電源を投入し、現在のデバイス時間を有さない。そのデバイスは、現在の時間を含むメッセージを受信する。このメッセージは、ビーコン・メッセージで受信されてもよい。ビーコン・メッセージは、現在の暗号鍵を使用して検証することができる認証コードを含む。
【００７９】
ステップ５２０で、オンラインになったデバイスがビーコン・メッセージを受信するとき、そのデバイスは、自身の現在の暗号鍵を使用してビーコン・メッセージを検証しようと試みることになる。検証が成功した場合、ステップ５７０で、デバイスは、そのデバイスの現在の時間として、ビーコン・メッセージで指定された時間を受け入れることができる。また、検証が成功したので、そのデバイスは、現在の導出鍵、現在の導出インデックス、現在の満了期間および現在の暗号鍵を有する。
【００８０】
ステップ５３０で、ビーコン・メッセージの検証が失敗した場合、デバイスは、それが電力を失って以降に終了した満了間隔の数を計算する。これは、ビーコン・メッセージで受信された時間、現在の満了期間および満了間隔を使用して計算することができる。ビーコン・メッセージがその時間を含まない場合、デバイスは、それが電力を失って以降に終了した満了間隔の数として１を使用することができる。
【００８１】
ステップ５４０で、デバイスは、それが電力を失って以降に終了した満了間隔の数によって、自身の現在の導出インデックスを調整する。現在の導出インデックスは、そのデバイスが電力を失って以降に終了した間隔の数によってインクリメントすることによって調整することができる。デバイスは、次いで、現在の導出鍵と調整されたばかりの現在の導出インデックスとを使用して後続の暗号鍵を生成する。ビーコン・メッセージの検証が、生成された後続の暗号鍵を使用して成功した場合、デバイスは、ステップ５８０で、自身の現在のデバイス時間としてビーコン・メッセージ内の時間を受け入れることができる。加えて、デバイスは、現在の満了期間および満了間隔に基づいて、現在の満了期間を生成することができる。デバイスは、現在の導出インデックスおよび現在の暗号鍵の自身の現在の値を生成されたばかりのものに更新する。
【００８２】
ビーコン・メッセージの検証が、生成されたばかりの後続の現在の暗号鍵で失敗した場合、ビーコン・メッセージは無視される。本例では、ステップ５６０で、デバイスはビーコン・メッセージを受信したので、そのデバイスは、隣接するデバイスが存在することを理解している。所定の時間（すなわち、３０秒）の後に、有効な時間を取得することができない場合、そのデバイスは、その後の２４時間にわたりランダムな時間を生成する。生成された時間に、そのデバイスは、認証サーバと認証を開始して鍵セットアップ情報を受信して現在の暗号鍵を生成する。認証サーバと認証を開始する時間は、すべてのデバイスが同時に認証をしようとしないように、ランダムであるべきである。
【００８３】
概論
与えられたこれらの例は、単に例示を目的とし、本発明をこれらのデバイスに限定するものではない。本主題は、特定の態様に関して詳細に説明されているが、当業者は、前述を理解したときに、そのような態様の改変形態、変更形態および同等物を容易に生み出し得ることが、理解されよう。したがって、本開示は、限定ではなくて例示を目的として提示されており、当業者に容易に明らかになるであろう本主題へのそのような修正形態、変更形態、および／または追加の包含を排除しない。特に、導出インデックスまたは満了期間または暗号鍵を生成するために実行されるステップは、必ずしも指定された順番で実行される必要はない。たとえば、満了期間は、導出インデックスが生成される前または後に生成または更新されてもよい。また、導出インデックスは、満了期間の終了時に生成または更新されてもよく、あるいは、暗号鍵が生成された後の任意の時間に生成または更新されてもよい。導出インデックス調整は、インクリメントまたはデクリメントに限定されず、他の方法で導出インデックスを調整してもよい。
【図１】
0006511443.tif 000002
【図２】
0006511443.tif 000003
【図３】
0006511443.tif 000004
【図４Ａ】
0006511443.tif 000005
【図４Ｂ】
0006511443.tif 000006
【図５】
0006511443.tif 000007