(57)【要約】  制約された代理キーは、仲介のデバイスを介した２つのデバイス間の通信を安全にするために使用される。第１の代理キーは、共有秘密キー、第１の代理キーについての１又はそれより多くの制約、及びキー導出関数に基づいてホスト・デバイス（キー発生元デバイス）において生成される。少なくとも共有秘密キーとキー導出関数は、ホスト・デバイスとクライアント・デバイス（認証デバイス）とに既知である。第１代理キーは、クライアント・デバイスとの通信を認証する際に使用するために、代理デバイスに送られる。認証されたメッセージは、第１の代理キーを使用して代理デバイスにより生成され、そしてクライアント・デバイスに送られる。クライアント・デバイスは、代理デバイスを認証するために、キー導出関数、１又はそれより多くの制約、及び共有秘密キーを使用して第２の代理キーを生成する。クライアント・デバイスが第２の代理キーを使用して代理デバイスからの認証されたメッセージを良好にアクセスする場合に、代理デバイスは認証される。
2009510978.tif 000002
【特許請求の範囲】
【請求項１】
クライアント・デバイスと代理デバイスとの間の安全な通信を可能にする方法であって、
ホスト・デバイス及び該クライアント・デバイスに既知の共有秘密キーに基づいて該ホスト・デバイスにおいて第１の代理キーを生成すること；
該代理デバイスに該第１の代理キーを送ること；
該クライアント・デバイスにおいて第２の代理キーを生成すること；及び
該第１の代理キーと該第２の代理キーとを使用することにより該クライアント・デバイスにおいて該代理デバイスを認証すること
を具備する方法。
【請求項２】
該ホスト・デバイスと該クライアント・デバイスとの間で認証アルゴリズムの配送を事前に取り決めること；及び
該ホスト・デバイスと該クライアント・デバイスとの間で秘密キーの配送を事前に取り決めること
をさらに具備する、請求項１の方法。
【請求項３】
該代理デバイスは、該第１の代理キーと該第２の代理キーとが同じであるときに認証される、請求項２の方法。
【請求項４】
該第１の代理キー及び該第２の代理キーは、キー導出関数（ＫＤＦ）と該共有秘密キーとを使用して独自に生成される、請求項１の方法。
【請求項５】
該ＫＤＦは、該第１の代理キーと該第２の代理キーとを取得するために１又はそれより多くの制約と該共有秘密キーとを入力として採用する、請求項４の方法。
【請求項６】
該共有秘密キーは、該第１の代理キーと、該１又はそれより多くの制約と、そして該ＫＤＦの知識とを用いてのみ再生されることができる、請求項４の方法。
【請求項７】
該ホスト・デバイスにおいて該第１の代理キーに関係する１又はそれより多くの制約を選択することをさらに具備する、ここにおいて、該第１の代理キーと該第２の代理キーは、該１又はそれより多くの制約に基づく、請求項１の方法。
【請求項８】
該代理デバイスから該クライアント・デバイスに該１又はそれより多くの制約を送ることをさらに具備する、ここにおいて、該クライアント・デバイスは、該制約を該第１の代理キーに適用する、請求項７の方法。
【請求項９】
該ホスト・デバイスから該クライアント・デバイスに該１又はそれより多くの制約を送ることをさらに具備する、ここにおいて、該クライアント・デバイスは、該制約を該第２の代理キーに適用する、請求項７の方法。
【請求項１０】
代理キーがメッセージを安全にするために使用されようとしていることを該クライアント・デバイスに示すために、該代理デバイスから該クライアント・デバイスに送る該メッセージ中に標識子を設定すること
をさらに具備する、請求項１の方法。
【請求項１１】
該ホスト・デバイスにおいて該第１の代理キーを導出するために使用される１又はそれより多くの制約を定めること；及び
該制約を該クライアント・デバイスに伝達すること
をさらに具備する、請求項１の方法。
【請求項１２】
該１又はそれより多くの制約にしたがって該代理デバイスに関係する該クライアント・デバイスの動作を制限すること
をさらに具備する、請求項１１の方法。
【請求項１３】
ホスト・デバイス上で代理キーを生成するための方法であって、
同じ共有秘密キーを有するクライアント・デバイスとの通信を安全にするために使用する共有秘密キーを取得すること；
第１のキー導出関数を取得すること、ここにおいて、該第１のキー導出関数は、該クライアント・デバイスに既知の第２のキー導出関数に関係する；
該第１のキー導出関数と該共有秘密キーとに基づいて代理キーを生成すること；及び
該代理キーを代理デバイスに提供すること、ここにおいて、該代理デバイスは、該クライアント・デバイスとの通信を認証するために該代理キーを使用することが可能である
ことを具備する方法。
【請求項１４】
該代理キーを生成する前に該代理キーについての１又はそれより多くの制約を定めること
をさらに具備する、請求項１３の方法。
【請求項１５】
該制約は、該代理キーを生成するために、そして該代理デバイスに送るために使用される、請求項１４の方法。
【請求項１６】
該１又はそれより多くの制約は、該クライアント・デバイスに送られる、請求項１４の方法。
【請求項１７】
該共有秘密キーは、該ホスト・デバイスと該クライアント・デバイスとの間の対称キー・セキュリティ方式において使用される、請求項１３の方法。
【請求項１８】
該第１のキー導出関数は、暗号化ブロック暗号法である、請求項１３の方法。
【請求項１９】
複数の暗号化関数を記憶すること；及び
該複数の暗号化関数の中から該第１のキー導出関数を選択すること
をさらに具備する、請求項１３の方法。
【請求項２０】
該代理キーを生成することは、該代理キーを取得するために該共有秘密キーとともに該第１のキー導出関数に対するパラメータとして１又はそれより多くの制約を使用することを含む、請求項１３の方法。
【請求項２１】
複数のキー導出関数のうちの１つを指定するデータを送信すること、
をさらに具備する、請求項２０の方法。
【請求項２２】
該１又はそれより多くの制約は、該代理キーがそのあいだ有効である期間を指示するタイムスタンプを含む、請求項２０の方法。
【請求項２３】
キー発生元ホスト・デバイスであって、
他のデバイスと通信するための通信インターフェース；
共有秘密キーとキー導出関数とを記憶するための記憶デバイス、ここにおいて、該共有秘密キーとキー導出関数は、両方ともクライアント・デバイスに既知である；及び
該通信インターフェース及び該記憶デバイスに接続された処理回路、
を具備し、該処理回路は；
該キー導出関数と共有秘密キーとに基づいて代理キーを生成するため、そして
代理デバイスに該代理キーを送るために構成され、ここにおいて、該代理デバイスは該クライアント・デバイスとの通信を認証するために該代理キーを使用することが可能である
処理回路である、キー発生元ホスト・デバイス。
【請求項２４】
該処理回路は、
該代理キーを生成することの前に該代理キーについての１又はそれより多くの制約を定めるために
さら構成される、請求項２３のデバイス。
【請求項２５】
該制約は、該クライアント・デバイスと事前に取り決められる、請求項２４のデバイス。
【請求項２６】
該制約のうちの１つは、ある長さの時間の後で該代理キーを失効させる、請求項２４のデバイス。
【請求項２７】
該処理回路は、
該１又はそれより多くの制約を該代理デバイスに送るために
さらに構成される、請求項２４のデバイス。
【請求項２８】
該代理キーは、該１又はそれより多くの制約に基づいて生成される、請求項２４のデバイス。
【請求項２９】
該キー導出関数は、暗号化ブロック暗号法である、請求項２３のデバイス。
【請求項３０】
該記憶デバイスは、複数の暗号化関数を記憶し、そして該処理回路は、該複数の暗号化関数の中から該キー導出関数を選択するために構成される、請求項２３のデバイス。
【請求項３１】
該処理回路は、
該代理キーの中へと１又はそれより多くの制約を取り込むために使用する該複数の暗号化関数から該選択されたキー導出関数を指定するデータを送信するために
さらに構成される、請求項３０のデバイス。
【請求項３２】
代理発生デバイスであって、
同じ共有秘密キーを有するクライアント・デバイスとの安全な通信のために使用する共有秘密キーを取得するための手段；
キー導出関数を取得するための手段、ここにおいて、該キー導出関数は、該クライアント・デバイスにも既知である；
該キー導出関数と該共有秘密キーとに基づいて代理キーを生成するための手段；及び
該代理キーを代理デバイスに送るための手段、を具備する、ここにおいて、該代理デバイスは、該クライアント・デバイスとの通信を認証するために該代理キーを使用することが可能である、
代理発生デバイス。
【請求項３３】
該ホスト・デバイスにおいて該代理キーについての１又はそれより多くの制約を定めるための手段；及び
該クライアント・デバイスに該制約を伝達するための手段、をさらに具備する、
ここにおいて、該キー導出関数は、該代理キーを生成するために該１又はそれより多くの制約と該共有秘密キーとを使用する
請求項３２のデバイス。
【請求項３４】
ホスト・デバイス上で代理キーを生成するために構成されたプロセッサであって、
処理回路を具備し、該処理回路は、
同じ共有秘密キーを有するクライアント・デバイスとの安全な通信のために使用する共有秘密キーを取得するため；
キー導出関数を取得するため、ここにおいて、該キー導出関数は、該クライアント・デバイスに既知の第２のキー導出関数に関係する；
該キー導出関数と該共有秘密キーとに基づいて代理キーを生成するため；及び
該代理キーを代理デバイスに提供するため
に構成された処理回路である、プロセッサ。
【請求項３５】
該処理回路は、該代理キーを生成することの前に該代理キーについての１又はそれより多くの制約を定めるためにさらに構成される、請求項３４のプロセッサ。
【請求項３６】
該処理回路は、該１又はそれより多くの制約に基づいて該代理キーを生成するためにさらに構成される、請求項３５のプロセッサ。
【請求項３７】
該処理回路は、該１又はそれより多くの制約を該クライアント・デバイスに提供するためにさらに構成される、請求項３５のプロセッサ。
【請求項３８】
ホスト・デバイスにおいて代理キーを生成するための１又はそれより多くの命令を有する機械読み取り可能な媒体であって、該命令は、プロセッサにより実行されたときに該プロセッサに：
同じ共有秘密キーを有するクライアント・デバイスとの安全な通信のために使用する共有秘密キーを取得すること；
キー導出関数を取得すること、ここにおいて、該キー導出関数は、該クライアント・デバイスに既知の第２のキー導出関数に関係する；
該キー導出関数と該共有秘密キーとに基づいて該代理キーを生成すること；及び
該代理キーを代理デバイスに提供すること
を実行させる命令である、機械読み取り可能な媒体。
【請求項３９】
該プロセッサにより実行されたときに該プロセッサに：
該代理キーについての１又はそれより多くの制約を定めること、
該１又はそれより多くの制約に基づいて該代理キーを生成すること
を実行させる１又はそれより多くの命令をさらに有する、請求項３８の機械読み取り可能な媒体。
【請求項４０】
該プロセッサにより実行されたときに該プロセッサに：
該クライアント・デバイスに該１又はそれより多くの制約を提供すること
を実行させる１又はそれより多くの命令をさらに有する、請求項３９の機械読み取り可能な媒体。
【請求項４１】
代理デバイス上で動作する方法であって、
ホスト・デバイスから代理キーを取得すること；
そのクライアント・デバイスと該ホスト・デバイスがキー導出関数と秘密キーとを共有している該クライアント・デバイスと使用するための該代理キーを記憶すること；
該代理キーを用いてメッセージを認証すること；及び
該クライアント・デバイスに該代理デバイスを認証させるために該クライアント・デバイスに該認証されたメッセージを送ること
を具備する方法。
【請求項４２】
該クライアント・デバイスから認証されたメッセージを受け取ること；及び
該クライアント・デバイスからの該メッセージを認証するために該代理キーを使用することにより該クライアント・デバイスを認証すること
をさらに具備する、請求項４１の方法。
【請求項４３】
該代理キーに該ホスト・デバイスにより課せられた１又はそれより多くの制約を取得すること；及び
該クライアント・デバイスに該１又はそれより多くの制約を送ること
をさらに具備する、請求項４１の方法。
【請求項４４】
該代理キーは、該１又はそれより多くの制約に基づいて生成される、請求項４３の方法。
【請求項４５】
該認証されたメッセージが代理キーを使用して認証されることを示す標識子を該クライアント・デバイスに送ること
をさらに具備する、請求項４１の方法。
【請求項４６】
該代理キーを生成するために使用するキー導出関数を指定するデータを該クライアント・デバイスに送信すること
をさらに具備する、請求項４１の方法。
【請求項４７】
代理デバイスであって、
ホスト・デバイス及びクライアント・デバイスと通信するための通信インターフェース；
記憶デバイス；及び
該通信インターフェースと該記憶デバイスとに接続された処理回路、
を具備し、該処理回路は、
該ホスト・デバイスから代理キーを取得するため、
該クライアント・デバイスと使用するために該記憶デバイス中に該代理キーを記憶するため、ここにおいて、該ホスト・デバイスと該クライアント・デバイスは、キー導出関数と秘密キーとを共有する、
該代理キーを使用してメッセージを認証するため、そして
該クライアント・デバイスに該代理デバイスを認証させるために該クライアント・デバイスに該認証されたメッセージを送るため
に構成される、上記処理回路である、代理デバイス。
【請求項４８】
該処理回路は、
該代理キーに対して該ホスト・デバイスにより課せられた１又はそれより多くの制約を取得するため；そして
該クライアント・デバイスに該１又はそれより多くの制約を送るため
にさらに構成される、請求項４７の代理デバイス。
【請求項４９】
該処理回路は、
該認証されたメッセージが制約されたキーを使用して安全にされることを示す標識子を該クライアント・デバイスに送るため、そして
該代理キーを生成するために使用するキー導出関数を指定するデータを該クライアント・デバイスに送るため
にさらに構成される、請求項４７の代理デバイス。
【請求項５０】
代理デバイスであって、
ホスト・デバイスから代理キーを取得するための手段；
そのクライアント・デバイスと該ホスト・デバイスがキー導出関数と秘密キーとを共有する該クライアント・デバイスと使用するための該代理キーを記憶するための手段；
該代理キーを用いてメッセージを認証するための手段；及び
該クライアント・デバイスに該代理デバイスを認証させるために該クライアント・デバイスに該認証されたメッセージを送るための手段
を具備する代理デバイス。
【請求項５１】
該代理キーに対して該ホスト・デバイスにより課せられた１又はそれより多くの制約を取得するための手段；及び
該クライアント・デバイスに該１又はそれより多くの制約を送るための手段
をさらに具備する、請求項５０の代理デバイス。
【請求項５２】
代理デバイスを認証するためにクライアント・デバイス上で動作する方法であって、
ホスト・デバイスと該クライアント・デバイスとの両方に既知の共有秘密キーを取得すること；
該クライアント・デバイスと該ホスト・デバイスとの両方に既知のキー導出関数を取得すること；
該クライアント・デバイスにおいて代理デバイスからの認証されたメッセージを受け取ること；
該キー導出関数と該共有秘密キーとを使用してローカル代理キーを生成すること；及び
該ローカル代理キーを使用することにより該クライアント・デバイスにおいて該代理デバイスを認証すること
を具備する方法。
【請求項５３】
１又はそれより多くの制約を取得すること；及び
該制約にしたがって該代理デバイスにより実行されることが可能な動作を制限すること
をさらに具備する、請求項５２の方法。
【請求項５４】
該１又はそれより多くの制約を使用して該ローカル代理キーを生成すること
をさらに具備する、請求項５３の方法。
【請求項５５】
該制約のうちの１又はそれより多くは、ある長さの時間の後で該代理キーの該認証を失効させるようにする、請求項５２の方法。
【請求項５６】
該受け取られるメッセージが第２の代理キーにより認証される標識子を受け取ることをさらに具備する、請求項５２の方法。
【請求項５７】
該第２の代理キーを生成するために使用するキー導出関数の標識子を受け取ることをさらに具備する、請求項５６の方法。
【請求項５８】
該代理デバイスは、該ローカル代理キーが安全にされたメッセージを良好に逆暗号化する場合に、該クライアント・デバイスによって認証される、請求項５２の方法。
【請求項５９】
キー認証クライアント・デバイスであって、
代理デバイスと通信するための通信インターフェース；
共有秘密キーとキー導出関数とを記憶するための記憶デバイス、ここにおいて、該共有秘密キーと該キー導出関数は、ホスト・デバイスに両方とも既知である；及び
該通信インターフェース及び該記憶デバイスに接続された処理回路、
を具備し、該処理回路は、
該代理デバイスから安全なメッセージを受け取るため、
該キー導出関数と該共有秘密キーとを使用してローカル代理キーを生成するため、及び
該ローカル代理キーを使用することにより該代理デバイスを認証するため
に構成される、キー認証クライアント・デバイス。
【請求項６０】
該処理回路は、該代理デバイスについての１又はそれより多くの制約を取得するため；そして
該１又はそれより多くの制約にしたがって該代理デバイスにより実行されることが可能な動作を制限するため
にさらに構成される、請求項５９のデバイス。
【請求項６１】
該制約のうちの１つは、ある長さの時間の後で該代理キーの該認証を失効させるようにする、請求項５９のデバイス。
【請求項６２】
該処理回路は、
該受け取られるメッセージが代理キーにより認証されるようにする標識子を受け取るため；そして
該受け取られるメッセージを安全にするために使用するキー導出関数の標識子を受け取るため
にさらに構成される、請求項５９のデバイス。
【請求項６３】
キー認証クライアント・デバイスであって、
同じ共有秘密キーを有する該クライアント・デバイスとの通信を認証するためにホスト・デバイスにより使用されることが可能である共有秘密キーを取得するための手段；
該ホスト・デバイスと該クライアント・デバイスとの両方に既知のキー導出関数を取得するための手段；
該クライアント・デバイスにおいて代理デバイスからの認証されたメッセージを受け取るための手段；
該キー導出関数と該共有秘密キーとを使用してローカル代理キーを生成するための手段；及び
該ローカル代理キーを使用することにより該代理デバイスを認証するための手段
を具備する、キー認証クライアント・デバイス。
【請求項６４】
１又はそれより多くの制約を取得するための手段；
該１又はそれより多くの制約を使用して該ローカル代理キーを生成するための手段；及び
該制約にしたがって該代理デバイスにより実行されることが可能である動作を制限するための手段
をさらに具備する、請求項６３のデバイス。
【請求項６５】
クライアント・デバイス上で代理デバイスを認証するために構成されたプロセッサであって、
処理回路、
を具備し、該処理回路は：
同じ共有秘密キーを有する該クライアント・デバイスとの通信を認証するためにホスト・デバイスにより使用されることが可能である共有秘密キーを取得するため；
該クライアント・デバイスと該ホスト・デバイスとの両方に既知のキー導出関数を取得するため；
該クライアント・デバイスにおいて代理デバイスからの認証されたメッセージを受け取るため；
該キー導出関数と該共有秘密キーとを使用してローカル代理キーを生成するため；及び
該ローカル代理キーを使用することにより該クライアント・デバイスにおいて該代理デバイスを認証するため
に構成された処理回路である、プロセッサ。
【請求項６６】
該処理回路は、
該代理デバイスについての１又はそれより多くの制約を取得するため；そして
該１又はそれより多くの制約に基づいて該ローカル代理キーを生成するため
にさらに構成される、請求項６５のプロセッサ。
【請求項６７】
該処理回路は、
該１又はそれより多くの制約に基づいて該クライアント・デバイスに関係する該代理デバイスの動作を制限するため
にさらに構成される、請求項６６のプロセッサ。
【請求項６８】
クライアント・デバイスにおいて代理キーを認証するための１又はそれより多くの命令を有する機械読み取り可能な媒体であって、該命令はプロセッサにより実行されたときに該プロセッサに：
同じ共有秘密キーを有する該クライアント・デバイスとの通信を認証するためにホスト・デバイスにより使用されることが可能である共有秘密キーを取得すること；
該クライアント・デバイスと該ホスト・デバイスとの両方に既知のキー導出関数を取得すること；
該クライアント・デバイスにおいて代理デバイスからの認証されたメッセージを受け取ること；
該キー導出関数と該共有秘密キーとを使用してローカル代理キーを生成すること；及び
該ローカル代理キーを使用することにより該クライアント・デバイスにおいて該代理デバイスを認証すること
を実行させる上記命令である、機械読み取り可能な媒体。
【請求項６９】
該プロセッサにより実行されたときに該プロセッサに：
該代理キーについての１又はそれより多くの制約を取得すること；そして
該１又はそれより多くの制約に基づいて該ローカル代理キーを生成すること
を実行させる１又はそれより多くの命令をさらに有する、請求項６８の機械読み取り可能な媒体。
【請求項７０】
該プロセッサにより実行されたときに該プロセッサに：
該１又はそれより多くの制約に基づいて該クライアント・デバイスに関係する該代理デバイスの動作を制限すること
を実行させる１又はそれより多くの命令をさらに有する、請求項６９の機械読み取り可能な媒体。
【請求項７１】
該受け取られた認証メッセージが該ローカル代理キーを使用することにより適正に認証される場合に、該代理デバイスは認証される、請求項６８の機械読み取り可能な媒体。
【発明の詳細な説明】
【関連文献】
【０００１】
［米国特許法３５§１１９による優先権の主張］
特許に関する本出願は、米国特許仮出願番号第６０／７２２，１８５号、名称“制約された暗号キー（Constrained Cryptographic Keys）”、２００５年９月２９日出願、及び米国特許仮出願番号第６０／７６１，４７６号、名称“代理人による認証（Authentication By Proxy）”、２００６年１月２４日出願、に優先権を主張し、２つの仮出願は、本出願の譲受人に譲渡され、そして本明細書中に引用によってその全体が取り込まれている。
【技術分野】
【０００２】
様々な実施形態は、安全な通信に関係し、特に、代理デバイスを介した２つのパーティ間の安全な通信を可能にする制約された暗号キーに関係する。
【背景技術】
【０００３】
現在のところ、２つのパーティ間の安全にされた通信は、共有された秘密の使用によって多くの場合達成される。この共有の秘密は、２つのパーティがその共有の秘密に基づいた暗号化を使用することによりそれらの通信（例えば、データ・パケット、メッセージ、等）のコンテントを非公開に保つことを可能にする。それに加えて、共有の秘密は、通信が真に要求された送り手から来たことそして搬送中に変更されなかったことをあるパーティが認証することを可能にする。
【０００４】
ある状況では、直接のそして安全な通信リンクは、２つのパーティ間で設定できないことがある。例えば、第１デバイスと第２デバイスとの間の安全な通信リンクが失われる又は切断されるとき、第３デバイスは、第２デバイスの問題解決をすること又は役に立つことを必要とすることがある。第２デバイスと通信するために、第３デバイス（例えば、フィールド技術者、等）は、第２デバイスと安全なリンクを確立する必要があるはずである。
【０００５】
公開キー暗号化（非対称キー暗号化）が第１パーティと第２パーティとの間で使用されるアプリケーションでは、認定階層（certificate hierarchy）は、第１パーティと第２パーティとの間で代理として動作する第３パーティを介してこの問題を解決するために多くの場合に使用される。第１パーティは、（一般に第３パーティの公開キーを第１パーティの非公開キーを用いてディジタル・サインすることによって）第３パーティに代理認定書を発行することができ、それは第３パーティが第１パーティのための代理とし動作することを可能にする。第３パーティは、次に代理認定書とともに自身の公開キーを第２パーティに提示することができる。
【０００６】
しかしながら、非対称キー暗号化アルゴリズムは、他の暗号法と比較して相対的に計算の費用がかかる。それに加えて、一旦、代理認定書が第３パーティに発行されると、第３パーティが第２パーティから受け取ることができる又はアクセスすることができる情報のタイプを制限すること、若しくは第３パーティが第１パーティの代理人としてどれだけ長く動作することができるかを制限することは、困難である。それゆえ、代理キー暗号アルゴリズムは、計算上の効率が良くそして代理キー発生元が代理キーに制約を与えることを可能にすることが必要とされている。
【発明の開示】
【サマリー】
【０００７】
本方法は、クライアント・デバイスと代理デバイスとの間の安全な通信を可能にするために提供される。第１代理キーは、ホスト・デバイスとクライアント・デバイスとに知られている共有秘密キーに基づいてホスト・デバイスにおいて生成される。第１代理キーは、代理デバイスに送られる。第２代理キーは、クライアント・デバイスにおいて生成され、それは代理デバイスを認証するために第２代理キーを使用する。認証アルゴリズムの配布は、ホスト・デバイスとクライアント・デバイスとの間で事前に取り決められることができる。同様に、ホスト・デバイスとクライアント・デバイスとの間の秘密キーの配送も、事前に取り決められることができる。代理デバイスは、第１代理キーと第２代理キーとが同じときに認証されることができる。
【０００８】
第１代理キーと第２代理キーは、キー導出関数（ＫＤＦ:key derivation function）と共有秘密キーとを使用して独自に生成されることができる。ＫＤＦは、１又はそれより多くの制約と共有秘密キーとを入力として使用して、第１代理キーと第２代理キーとを取得する。共有秘密キーは、第１代理キーと、１又はそれより多くの制約と、そしてＫＤＦの知識とを用いてのみ再生されることが可能である。
【０００９】
本方法は、該ホスト・デバイスにおいて該第１の代理キーに関係する１又はそれより多くの制約を選択することをさらに含むことができ、ここにおいて、該第１の代理キーと該第２の代理キーは、該１又はそれより多くの制約に基づく。該１又はそれより多くの制約は、該代理デバイスから該クライアント・デバイスに送ることができ、ここにおいて、該クライアント・デバイスは、該制約を該第１の代理キーに適用する。あるいは、該１又はそれより多くの制約は、該ホスト・デバイスから該クライアント・デバイスに送られ、ここにおいて、該クライアント・デバイスは、該制約を該第２の代理キーに適用する。
【００１０】
標識子は、代理キーがメッセージを安全にするために使用されようとしていることを該クライアント・デバイスに示すために、該代理デバイスから該クライアント・デバイスに送る該メッセージ中に設定されることができる。該第１の代理キーを導出するために使用される１又はそれより多くの制約は、該ホスト・デバイスにおいて定められることができ、そして、該クライアント・デバイスに伝達されることができる。該クライアント・デバイスの動作は、該１又はそれより多くの制約にしたがって該代理デバイスとの関係で制限されることがある。
【００１１】
別の方法が、ホスト・デバイス上で代理キーを生成するために提供される。共有秘密キーは、取得され、そして、同じ共有秘密キーを有するクライアント・デバイスとの通信を安全にするために使用される。第１のキー導出関数は、同様に取得され、ここにおいて、該第１のキー導出関数は、該クライアント・デバイスに既知の第２のキー導出関数に関係する。代理キーは、該第１のキー導出関数と該共有秘密キーとに基づいて生成される。該代理キーは、代理デバイスに提供され、ここにおいて、該代理デバイスは、該クライアント・デバイスとの通信を認証するために該代理キーを使用することが可能である。該代理キーについての１又はそれより多くの制約は、該代理キーを生成する前に定められることができる。これらの制約は、該代理キーを生成するために使用され、そして該代理デバイスに送られる。該１又はそれより多くの制約は、該クライアント・デバイスに送られる。該代理キーを生成することは、該代理キーを取得するために該共有秘密キーとともに該第１のキー導出関数に対するパラメータとして１又はそれより多くの制約を使用することを含む。
【００１２】
該共有秘密キーは、該ホスト・デバイスと該クライアント・デバイスとの間の対称キー・セキュリティ方式において使用されることができる。該第１のキー導出関数は、暗号化ブロック暗号法であることができる。
【００１３】
本方法は、複数の暗号化関数を記憶すること、及び該複数の暗号化関数の中から該第１のキー導出関数を選択することを同様に含む。データは、送信されることができ、複数のキー導出関数のうちの１つを指定する。該１又はそれより多くの制約は、該代理キーがそのあいだ有効である期間を指示するタイムスタンプを含むことができる。
【００１４】
キー発生元ホスト・デバイスが、同様に提供され、（ａ）他のデバイスと通信するための通信インターフェース；（ｂ）共有秘密キーとキー導出関数とを記憶するための記憶デバイス、ここにおいて、該共有秘密キーとキー導出関数は、両方ともクライアント・デバイスに既知である；及び／又は（ｃ）該通信インターフェース及び該記憶デバイスに接続された処理回路、を含む。該処理回路は、（１）該キー導出関数と共有秘密キーとに基づいて代理キーを生成するため、そして／又は（２）代理デバイスに該代理キーを送るために構成され、ここにおいて、該代理デバイスは、該クライアント・デバイスとの通信を認証するために該代理キーを使用することが可能である。該処理回路は、該代理キーを生成することの前に該代理キーについての１又はそれより多くの制約を定めるためにさら構成されることができる。該代理キーは、該１又はそれより多くの制約に基づいて生成されることができる。該制約は、該クライアント・デバイスと事前に取り決められることができる、そして／又は該代理デバイスに送られることができる。該制約のうちの１つは、ある長さの時間の後で該代理キーを失効させることができる。
【００１５】
該キー導出関数は、暗号化ブロック暗号法であることができる。該記憶デバイスは、複数の暗号化関数を記憶し、そして該処理回路は、該複数の暗号化関数の中から該キー導出関数を選択するために構成される。該処理回路は、該代理キーの中へと１又はそれより多くの制約を取り込むために使用する該複数の暗号化関数から該選択されたキー導出関数を指定するデータを送信するためにさらに構成されることができる。
【００１６】
代理発生デバイスが、同様に提供され、（ａ）同じ共有秘密キーを有するクライアント・デバイスとの安全な通信のために使用する共有秘密キーを取得するための手段；（ｂ）キー導出関数を取得するための手段、ここにおいて、該キー導出関数は、該クライアント・デバイスにも既知である；（ｃ）該キー導出関数と該共有秘密キーとに基づいて代理キーを生成するための手段；及び／又は（ｄ）該代理キーを代理デバイスに送るための手段、を具備する、ここにおいて、該代理デバイスは、該クライアント・デバイスとの通信を認証するために該代理キーを使用することが可能である。
【００１７】
プロセッサが、同様に提供され、ホスト・デバイス上で代理キーを生成するために構成され、（ａ）同じ共有秘密キーを有するクライアント・デバイスとの安全な通信のために使用する共有秘密キーを取得するため；（ｂ）キー導出関数を取得するため、ここにおいて、該キー導出関数は、該クライアント・デバイスに既知の第２のキー導出関数に関係する；（ｃ）該キー導出関数と該共有秘密キーとに基づいて代理キーを生成するため；及び（ｄ）該代理キーを代理デバイスに提供するために構成された処理回路を具備する。該処理回路は、（ｅ）該代理キーを生成することの前に該代理キーについての１又はそれより多くの制約を定めるために、（ｆ）該１又はそれより多くの制約に基づいて該代理キーを生成するために、そして／又は（ｇ）該１又はそれより多くの制約を該クライアント・デバイスに提供するためにさらに構成される。
【００１８】
機械読み取り可能な媒体が、提供され、ホスト・デバイスにおいて代理キーを生成するための１又はそれより多くの命令を有する、該命令はプロセッサにより実行されるときに該プロセッサに：（ａ）同じ共有秘密キーを有するクライアント・デバイスとの安全な通信のために使用する共有秘密キーを取得すること；（ｂ）キー導出関数を取得すること、ここにおいて、該キー導出関数は、該クライアント・デバイスに既知の第２のキー導出関数に関係する；（ｃ）該キー導出関数と該共有秘密キーとに基づいて該代理キーを生成すること；及び（ｄ）該代理キーを代理デバイスに提供すること、を実行させる。該機械読み取り可能な媒体は、該プロセッサにより実行されたときに該プロセッサに：（ｅ）該代理キーについての１又はそれより多くの制約を定めること、（ｆ）該１又はそれより多くの制約に基づいて該代理キーを生成すること、そして／又は（ｇ）該クライアント・デバイスに該１又はそれより多くの制約を提供すること、を実行させる１又はそれより多くの命令をさらに含むことができる。
【００１９】
代理デバイス上で動作する方法が提供され、（ａ）ホスト・デバイスから代理キーを取得すること；（ｂ）そのクライアント・デバイスと該ホスト・デバイスがキー導出関数と秘密キーとを共有している該クライアント・デバイスと使用するための該代理キーを記憶すること；（ｃ）該代理キーを用いてメッセージを認証すること；及び／又は（ｄ）該クライアント・デバイスに該代理デバイスを認証させるために該クライアント・デバイスに該認証されたメッセージを送ること、を具備する。本方法は、（ｅ）該クライアント・デバイスから認証されたメッセージを受け取ること；及び／又は（ｆ）該クライアント・デバイスからの該メッセージを認証するために該代理キーを使用することにより該クライアント・デバイスを認証すること、を同様に含むことができる。１つのインプリメンテーションでは、該代理キーに該ホスト・デバイスにより課せられた１又はそれより多くの制約が、取得され、該クライアント・デバイスに送られる。該代理キーは、該１又はそれより多くの制約に基づいて生成される。標識子は、同様に該クライアント・デバイスに送られることができ、該認証されたメッセージが代理キーを使用して認証されることを示す。データは、同様に該クライアント・デバイスに送信されることができ、該代理キーを生成するために使用するキー導出関数を指定する。
【００２０】
代理デバイスが同様に提供され、（ａ）ホスト・デバイス及びクライアント・デバイスと通信するための通信インターフェース；（ｂ）記憶デバイス；及び／又は（ｃ）該通信インターフェースと該記憶デバイスとに接続された処理回路、を具備する。該処理回路は、（１）該ホスト・デバイスから代理キーを取得するため、（２）該クライアント・デバイスと使用するために該記憶デバイス中に該代理キーを記憶するため、ここにおいて、該ホスト・デバイスと該クライアント・デバイスは、キー導出関数と秘密キーとを共有する、（３）該代理キーを使用してメッセージを認証するため、そして／又は（４）該クライアント・デバイスに該代理デバイスを認証させるために該クライアント・デバイスに該認証されたメッセージを送るため、に構成されることができる。
【００２１】
別の代理デバイスが提供され、（ａ）ホスト・デバイスから代理キーを取得するための手段；（ｂ）そのクライアント・デバイスと該ホスト・デバイスがキー導出関数と秘密キーとを共有する該クライアント・デバイスと使用するための該代理キーを記憶するための手段；該代理キーを用いてメッセージを認証するための手段；（ｃ）該クライアント・デバイスに該代理デバイスを認証させるために該クライアント・デバイスに該認証されたメッセージを送るための手段；（ｄ）該代理キーに対して該ホスト・デバイスにより課せられた１又はそれより多くの制約を取得するための手段；及び／又は（ｅ）該クライアント・デバイスに該１又はそれより多くの制約を送るための手段、を具備する。
【００２２】
クライアント・デバイス上で動作する方法が、代理デバイスを認証するために提供される。ホスト・デバイスと該クライアント・デバイスとの両方に既知の共有秘密キーが、取得される。該クライアント・デバイスと該ホスト・デバイスとの両方に既知のキー導出関数が、同様に取得される。認証されたメッセージは、該クライアント・デバイスにおいて代理デバイスから受け取られる。ローカル代理キーは、該キー導出関数と該共有秘密キーとを使用して生成される。該代理デバイスは、該ローカル代理キーを使用することにより該クライアント・デバイスにおいて認証される。１又はそれより多くの制約は、取得され、そして該代理デバイスにより実行されることが可能な動作は、該制約にしたがって制限される。該代理デバイスは、該ローカル代理キーが安全にされたメッセージを良好に逆暗号化する場合に、該クライアント・デバイスによって認証される。該代理デバイスは、該ローカル代理キーが安全にされたメッセージを良好に逆暗号化する場合に、該クライアント・デバイスによって認証される。
【００２３】
キー認証クライアント・デバイスが同様に提供され、（ａ）代理デバイスと通信するための通信インターフェース；（ｂ）共有秘密キーとキー導出関数とを記憶するための記憶デバイス、ここにおいて、該共有秘密キーと該キー導出関数は、ホスト・デバイスに両方とも既知である；及び／又は（ｃ）該通信インターフェース及び該記憶デバイスに接続された処理回路、を具備する。該処理回路は、（１）該代理デバイスから安全なメッセージを受け取るため、（２）該キー導出関数と該共有秘密キーとを使用してローカル代理キーを生成するため、（３）該ローカル代理キーを使用することにより該代理デバイスを認証するため、そして／又は（４）該代理デバイスについての１又はそれより多くの制約を取得するため；そして／又は、該１又はそれより多くの制約にしたがって該代理デバイスにより実行されることが可能な動作を制限するため、に構成される。
【００２４】
別のキー認証クライアント・デバイスが、同様に提供され：（ａ）同じ共有秘密キーを有する該クライアント・デバイスとの通信を認証するためにホスト・デバイスにより使用されることが可能である共有秘密キーを取得するための手段；（ｂ）該ホスト・デバイスと該クライアント・デバイスとの両方に既知のキー導出関数を取得するための手段；（ｃ）該クライアント・デバイスにおいて代理デバイスからの認証されたメッセージを受け取るための手段；（ｄ）該キー導出関数と該共有秘密キーとを使用してローカル代理キーを生成するための手段；及び／又は（ｆ）該ローカル代理キーを使用することにより該代理デバイスを認証するための手段、を具備する。該デバイスは、（ｇ）１又はそれより多くの制約を取得するための手段；（ｈ）該１又はそれより多くの制約を使用して該ローカル代理キーを生成するための手段；及び（ｉ）該制約にしたがって該代理デバイスにより実行されることが可能である動作を制限するための手段、をさらに含む。
【００２５】
クライアント・デバイス上で代理デバイスを認証するために構成されたプロセッサが、提供され、（１）同じ共有秘密キーを有する該クライアント・デバイスとの通信を認証するためにホスト・デバイスにより使用されることが可能である共有秘密キーを取得するため；（２）該クライアント・デバイスと該ホスト・デバイスとの両方に既知のキー導出関数を取得するため；（３）該クライアント・デバイスにおいて代理デバイスからの認証されたメッセージを受け取るため；（４）該キー導出関数と該共有秘密キーとを使用してローカル代理キーを生成するため；（５）該ローカル代理キーを使用することにより該クライアント・デバイスにおいて該代理デバイスを認証するため、（６）該代理デバイスについての１又はそれより多くの制約を取得するため；（７）該１又はそれより多くの制約に基づいて該ローカル代理キーを生成するため；そして／又は（８）該１又はそれより多くの制約に基づいて該クライアント・デバイスに関係する該代理デバイスの動作を制限するため、に構成された処理回路を含む。
【００２６】
クライアント・デバイスにおいて代理キーを認証するための１又はそれより多くの命令を有する機械読み取り可能な媒体が同様に提供され、該命令はプロセッサにより実行されるときに該プロセッサに：（ａ）同じ共有秘密キーを有する該クライアント・デバイスとの通信を認証するためにホスト・デバイスにより使用されることが可能である共有秘密キーを取得すること；（ｂ）該クライアント・デバイスと該ホスト・デバイスとの両方に既知のキー導出関数を取得すること；該クライアント・デバイスにおいて代理デバイスからの認証されたメッセージを受け取ること；（ｃ）該キー導出関数と該共有秘密キーとを使用してローカル代理キーを生成すること；（ｄ）該ローカル代理キーを使用することにより該クライアント・デバイスにおいて該代理デバイスを認証すること、（ｅ）該代理キーについての１又はそれより多くの制約を取得すること；（ｆ）該１又はそれより多くの制約に基づいて該ローカル代理キーを生成すること、そして／又は（ｇ）該１又はそれより多くの制約に基づいて該クライアント・デバイスに関係する該代理デバイスの動作を制限すること、を実行させる。該代理デバイスは、該受け取られた認証メッセージが該ローカル代理キーを使用することにより適正に認証される場合に、認証される。
【詳細な説明】
【００２７】
下記の記載では、特定の詳細が、複数の実施形態の十分な理解を与えるために与えられる。しかしながら、実施形態がこれらの具体的な詳細を用いずに実行されることができることは、当業者により理解されるであろう。例えば、回路は、不必要な詳細で実施形態を不明確にしないためにブロック図で示されないことがある。
【００２８】
しかも、実施形態がフローチャート、フロー図、構造図、又はブロック図として図示されるプロセスとして記載されることは、注目される。フローチャートが一連のプロセスとして動作を説明することがあるとはいえ、動作の多くは、並列に又は同時に実行されることが可能である。それに加えて、動作の順番は、並べ替えられることができる。あるプロセスは、その動作が完了するときに終了される。プロセスは、方法、機能、サブルーチン、サブプログラム、等に対応することができる。プロセスが機能に対応するとき、その終了は、その機能が呼び出し機能又は主機能に戻ることに対応する。
【００２９】
その上、記憶媒体は、データを記憶するための１又はそれより多くのデバイスを表すことができ、読み出し専用メモリ（read only memory）（ＲＯＭ）、ランダム・アクセス・メモリ（random access memory）（ＲＡＭ）、磁気ディスク記憶媒体、光学的記憶媒体、フラッシュ・メモリ・デバイス及び／又は情報を記憶するための別の“機械読み取り可能な媒体”を含む。用語“機械読み取り可能な媒体”は、携帯型記憶デバイス又は固定式記憶デバイス、光記憶デバイス、無線チャネル及び（複数の）命令及び／又はデータを記憶することか、包含することか、又は搬送することが可能な各種のその他の媒体、を含むが、これらに限定されることはない。
【００３０】
さらに、複数の実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、又はこれらの任意の組み合わせにより与えられることができる。ソフトウェア、ファームウェア、ミドルウェア、又はマイクロコードにおいて与えられるとき、必要なタスクを遂行するためのプログラム・コード又はコード・セグメントは、記憶媒体、又は他の記憶手段のような機械読み取り可能な媒体中に記憶されることができる。プロセッサは、必要なタスクを実行することができる。コード・セグメントは、手順、機能、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェア・パッケージ、クラス、又は複数の命令、データ構造、又はプログラム・ステートメントの組み合わせを表すことができる。コード・セグメントは、情報、データ、主張（argument）、パラメータ、又はメモリ・コンテントを渡すことそして／又は受け取ることにより別のコード・セグメント又はハードウェア回路に接続されることができる。情報、主張、パラメータ、データ、及びその他は、他のものの中でメモリ分割方式、メッセージ伝達方式（passing）、トークン伝達方式、及びネットワー伝送を含む適当な手段を介して渡されるか、転送されるか、又は伝送されることができる。
【００３１】
下記の記述では、ある種の用語は、１又はそれより多くのある種の特徴を説明するために使用される。用語“キー”（例えば、代理キー、秘密キー、制約されたキー、等）は、証明書（certificate）、識別子、暗号、若しくは別のタイプの数字、アルファベットと数字、又はシンボルを呼ぶ。
【００３２】
１つの特徴は、対称キー暗号化方式を提供し、そこでは第３パーティ（代理人）は、第１パーティ（ホスト）によって代理キーを与えられ、その第１パーティ（ホスト）は第２パーティ（クライアント）と安全に通信するために使用することが可能である。代理キーは、その機能及び使用において制約されることがある。例えば、制約された代理キーは、特定の時間の区切りに制限されることがあり、そのあいだ第３パーティ（代理人）は第１パーティ（ホスト）の代わりに代理人として動作することができる。別の例では、制約された代理キーは、その第３パーティ（代理人）が送ることができるあるタイプのメッセージに制限されることがある。第３パーティ（代理人）と第２パーティ（クライアント）との間の全ての通信は、暗号化及び／又は認証のために使用される代理キーにより安全を保つ。さらに、１つのインプリメンテーションでは、代理キーは、第３パーティ（代理人）が第１パーティ（ホスト）によって既に認定されていることを第２パーティ（クライアント）に確信させるために十分な情報を含む。最終的に、秘密キーは、第１パーティ（ホスト）と第２パーティ（クライアント）とによって知られ、そして代理キーを生成するためにそして認証するために使用される。しかしながら、秘密キーは、第３パーティ（代理人）に知られず、その第３パーティは第１パーティ（ホスト）によりそれに与えられた制約を越えることが不可能である。
【００３３】
図１と図２は、代理キーが別々のデバイスによって生成されそして認証されることが可能である機密保護方式を説明する。動作の１つのモードでは、ホスト・デバイスＡ１０２とクライアント・デバイスＢ１０４は、（複数の）暗号キー（例えば、非対称キー又は対称キー）を使用して安全な通信リンク１０８を設定し、そこでは共有秘密キーＫは、ホスト・デバイスＡ１０２とクライアント・デバイスＢ１０４との両者によって知られる。あるインプリメンテーションでは、ホスト・デバイスＡ１０２は、安全な通信リンク１０８を経由して送るコマンドによりクライアント・デバイスＢ１０４の動作を制御することができる。共有秘密キーＫは、クライアント・デバイスＢ１０４との通信に関係付けられることができ、そして安全な通信リンク１０８を経由するホスト・デバイスＡ１０２とクライアント・デバイスＢ１０４との間のメッセージを暗号化するため、安全にするため、そして／又は認証するために使用されることができる。他のデバイスと通信するとき、ホスト・デバイスＡ１０２は、異なる共有秘密キーを使用することができる。
【００３４】
時折、代理デバイスＣ１０６がデバイスＢ１０４と通信する必要がある事情があり得る。共有秘密キーＫはデバイスＣ１０６に明らかにさるべきでないが、クライアント・デバイスＢ１０４と代理デバイスＣ１０６との間の通信は、少なくとも安全にされそして認証されるべきである。この目的のために、ホスト・デバイスＡ１０２は、デバイスＢ１０４と通信するために、代理デバイスＣ１０６を認定する代理キーＫ’を代理デバイスＣ１０６に与えることができる。図２に説明されるように、ホスト・デバイスＡ１０２とクライアント・デバイスＢ１０４との間の安全な通信リンク１０８がないとき、ネットワーク・サービスの中断の期間のケースであるので、代理デバイスＣ１０６は、ホスト・デバイスＡ１０２からの代理キー１１０を使用して第２の安全な通信リンク２０２を設定することができる。秘密キーＫを明らかにすることなくクライアント・デバイスＢ１０４へのアクセスを代理デバイスＣ１０６に与えるために、ホスト・デバイスＡ１０２は、秘密キーＫから代理キーＫ’を生成し、そして代理デバイスＣ１０６に代理キーＫ’を送る。代理キーＫ’は、デバイスＣ１０６とデバイスＢ１０４との間のメッセージを暗号化するためそして／又は認証するために使用される。デバイスＢ１０２に代理キーＫ’を与えることによって、デバイスＣ１０６は、例えば、デバイスＢ１０４の動作を制御することができる。第２の通信リンク２０２は、第１の通信リンク１０８が動作しない場合でさえも動作する。
【００３５】
代理デバイスＣ１０６がクライアント・デバイスＢ１０４に影響を及ぼすことができる制御を限定するために、暗号化関数、同様にキー導出関数（ＫＤＦ：key derivation function）とも呼ばれる、は、デバイスＡ１０２とＢ１０４との間で事前に取り決められる。すなわち、ＫＤＦは、それらの共有秘密キー（Ｋ）から代理キー又は制約されたキーを導出するために使用されることができる。ある複数の実施形態では、デバイスＡ１０２とＢ１０４は、特定のＫＤＦを事前に取り決めることができる。別のインプリメンテーションでは、複数のそのような暗号化関数は、デバイスＡ１０２とデバイスＢ１０４との両者に既知である。ＫＤＦは、代理キー又は制約されたキーに負わせるべき共有秘密Ｋといずれかの制約とを入力として選ぶ。ホスト・デバイスＡ１０２が代理デバイスＣ１０６の代理能力を許可しようと望むときに、それは、ＫＤＦ（Ｋ）を使用して新たな代理キー（Ｋ’）１１０を生成し、そしてそれを代理デバイスＣ１０６に配信する。この代理キーＫ’１１０は、クライアント・デバイスＢ１０４とホスト・デバイスＣ１０６との間の通信を安全にするためそして／又は認証するためにここで使用されることができる。
【００３６】
代理デバイスＣ１０６から来るメッセージを適正に認証する（例えば、逆暗号化する）ために、クライアント・デバイスＢ１０４は、代理キーが使用されようとしていることを通知される。これを実現するための１つの方法は、代理キーの使用を信号で送信するためにメッセージ毎に１ビット・フラッグを使用することである。クライアント・デバイスＢ１０４は、ＫＤＦ及びその秘密キーＫを使用することができ、代理キーＫ’のローカル版を生成し、それはその後、代理デバイスＣ１０６から受け取られる認証されたメッセージを認証するために使用される。もしメッセージが適正に認証される（例えば、逆暗号化される、等）場合には、デバイスＣ１０６は認証され、そして安全な通信が、代理キーＫ’を使用してクライアント・デバイスＢ１０４と代理デバイスＣ１０６との間で実行されることができる。
【００３７】
クライアント・デバイスＢ１０４がホスト・デバイスＡ１０２と同じ代理キーを独自に生成するために、デバイスＢ１０４は、ホスト・デバイスＡ１０２が代理キーＫ’にどの制約を置いたかを知る必要がある。１つの実施形態では、ホスト・デバイスＡ１０２によって代理キーＫ’に課せられた制約のリストは、代理デバイスＣ１０６により送られるメッセージ毎に添えられることができる。別の１つの実施形態では、セッションの概念が導入されることができ、そして制約のリストは、セッション当り１回（好ましくは初めに）代理デバイスＣ１０６により送られることができる。さらに別の１つの実施形態では、制約は、事前にホスト・デバイスＡ１０２とクライアント・デバイスＢ１０４により取り決められることができる。例えば、ホスト・デバイスＡ１０２とクライアント・デバイスＢ１０４は、全ての代理キーが正確に１日、例えば、真夜中の１２時から１２時まで、のあいだ有効であることを事前に合意することができる。そのようなケースでは、ＫＤＦへの入力として使用される制約は、その代理キーが有効である日付であり得る。クライアント・デバイスＢ１０４が代理キーによって認証される又は保護されるメッセージを受け取るときはいつでも、それは、現在の日付を使用して代理キーを再生する。
【００３８】
１つの例では、代理デバイスＣ１０６を使用することによって、ホスト・デバイスＡ１０２は、代理デバイスＣ１０６に対して利用可能なアクセス権利の制御を維持しつつ、代理デバイスＣ１０６に権限を委任することが可能である。その上、代理キーＫ’の発生元として、ホスト・デバイスＡ１０２は、代理デバイスＣ１０６による通信を傍受する又はモニタすることができる。
【００３９】
１つの実施形態では、暗号化関数すなわちキー導出関数は、ブロック暗号法（block cipher）であり得て、そこでは共有秘密Ｋが、キー入力として使用され、そして代理制約（及び／又はその他のパラメータ）が、ブロック暗号法への平文入力として使用される。１つのインプリメンテーションでは、１又はそれより多くのビットは、代理メッセージで（例えば、クライアント・デバイスＢ１０４へのメッセージ毎に、又はクライアント・デバイスＢ１０４との各通信セッションの始めにおいてのいずれかで）送られ、キーが代理キー又は制約されたキーであることを指示する。別の１つの実施形態では、代理ビットが省略されることがあり、そのケースでは、各受け取ったメッセージに対して、クライアント・デバイスＢ１０４は、それを２回、ビットが設定されているとして１回、そして設定されていないとして１回、処理しようと試み、そして認証を通過する１つの版を選択する。
【００４０】
別のインプリメンテーションでは、ホスト・デバイスＡ１０２は、複数の別の（有線接続された又は無線通信の）デバイスと通信できる。そのようなケースでは、ホスト・デバイスＡ１０２（例えば、ホスト・デバイス）は、複数の秘密キーＫｉを記憶し、各秘密キーＫｉは、複数の有線接続された又は無線通信するデバイスの１つに対応し、そして同様に記憶される。ホスト・デバイスＡ１０２は、第１デバイスＭｉに対応する秘密キーＫｉから代理キーＫｉ’を生成し、そしてその代理キーＫｉ’を代理デバイス（例えば、代理デバイスＣ１０６）に送る。代理キーＫｉ’は、代理デバイスと第１デバイスＭｉ（例えば、クライアント・デバイスＢ１０４）との間のメッセージを暗号化するためにそして／又は認証するために使用されることができる。同様に、１より多くの代理デバイスがあることがあり、そのケースでは、ホスト・デバイスＡ１０２（例えば、ホスト・デバイス）は、複数の代理デバイスに対して同じ又は異なる代理キーを生成することができる。最終的に、１より多くの代理キー発生元デバイス（例えば、複数のホスト・デバイスＡ１０２）があることさえある。
【００４１】
様々なインプリメンテーションにおいて、通信リンク１０８、１１２及び／又は２０２は、無線であり得るそして／又は非無線であり得る。
【００４２】
図３は、安全かつ制限された代理キーを生成するため、配送するため、そして認証するための方法を説明する。ホスト・デバイスＡ３０２とクライアント・デバイスＢ３０４は、キー暗号方式を使用する安全なそして／又は認証された通信手段を設定している。例えば、対称キー暗号方式は、共有秘密キーがホスト・デバイスＡとクライアント・デバイスＢ３０４との両方に既知である場合に実行されることができる。１つの動作のモードでは、デバイスＡ３０２とＢ３０４は、その２つのデバイスの間の通信を安全にするためそして認証するために共有秘密キーを使用することができる。それに加えて、キー導出関数（ＫＤＦ）が、しかも両方のデバイスＡとＢとに提供される。共有秘密キーとＫＤＦは、ホスト・デバイスＡ３０２により使用されることができて、制約された代理キーを生成し３０８、それは代理デバイスＣ３０６に送られる３１０。例えば、ホスト・デバイスＡ３０２は、代理キー発生元として動作し、代理デバイスＣ３０６は、代理キーを受け取り、そしてホスト・デバイスＡの代理人として動作し、そしてクライアント・デバイスＢ３０４は、認証者として動作し、それは代理デバイスＣ３０６と安全な通信を設定する前に代理キーを認証する。
【００４３】
代理デバイスＣ３０６は、制約された代理キー３１２を記憶し、制約された代理キーを有するメッセージを認証し、そしてデバイスＢ３０４と通信リンクを設定するために認証されたメッセージを送る３１６。１つのインプリメンテーションでは、クライアント・デバイスＢ３０４は、受け取ったキーが代理キーであるかどうかを確認し３１８、そしてもしそうであれば、自身のＫＤＦを使用してローカル代理キーを独自に生成する３２０。これは、例えば、認証されたメッセージ３１６の特定のビット又は受け取られたキーが設定されているかどうかを（それによって受け取ったキーが代理キーであることを示していることを）確認することによって行われることができる。クライアント・デバイスＢ３０４は、１又はそれより多くの非公開キーそして／又は公開キー、パラメータそして／又はローカル代理キーを生成するための制約とともに、ＫＤＦを使用することができる。
【００４４】
クライアント・デバイスＢ３０４は、次に代理デバイスを認証する３２２。例えば、代理デバイスＣ３０６のそのような認証は、ローカルに生成された制約された代理キーを用いて受け取った認証メッセージを逆暗号化することを含むことができる。もしそのメッセージが適正に認証されている場合には、代理デバイスＣ３０６が同様に同じ制約された代理キーを有する（そしてそれゆえ認証されている）ことを意味する。安全な通信リンクは、次に、クライアント・デバイスＢ３０４とホスト・デバイスＣ３０６との間で設定されることができる３２４。受け取った認証メッセージの適正な認証は、例えば、クライアント・デバイスＢ３０４が１又はそれより多くの受け取ったパラメータを１又はそれより多くのパラメータと比較してそれらが同じであるかどうかを判断することによって確かめられることができる。
【００４５】
クライアント・デバイスＢ３０４は、デバイスＡ３０２によって事前に取り決められたように、又は代理デバイスＣ３０６から受け取った代理制約情報によって規定されるように、代理キーの使用を制限することができる。例えば、クライアント・デバイスＢ３０４は、ある一定の長さの時間の後で、代理デバイスＣ３０６からの代理キーを失効させる又は無効にすることができる３２６。これは、ホスト・デバイスＡ３０２とクライアント・デバイスＢ３０４とが、同期された時計及び／又は日付を有するときに実現されることができ、その時計及び／又は日付は制約された代理キーを失効させるために使用される又は制約された代理キーを生成するためのパラメータとして使用される。例えば、もし制約された代理キーが、２００６年１月１日の日付を使用してホスト・デバイスＡ３０２によって生成される場合には、認証のためにクライアント・デバイスＢによって生成されるローカルな制約された代理キーは、２００６年１月１日に符合するだけである。その日付の後で、（クライアント・デバイスＢ３０４において生成された）ローカルな制約された代理キーは、受け取られる制約された代理キーと最早符合しない。この特徴は、ホスト・デバイスＡ３０２によって使用されることができ、特定の日（例えば、代理デバイスＣ３０６がクライアント・デバイスＢ３０４と通信することを必要とすると予想される日）にだけその制約された代理キーを有効にさせることができる。
【００４６】
図４は、代理キー発生元ホスト・デバイス（例えば、図３のホスト・デバイスＡ３０２）の１つの実施形態を説明するブロック図である。キー発生元デバイス４０２は、通信インターフェース４０４を含み、それを通して別のデバイスと安全な通信リンクを設定することができる。処理回路４０６は、キー発生元デバイス４０２への及び／又はそれからの通信を安全にするためにキー暗号法（例えば、対称キー又は非対称キー）を使用するように構成される。記憶デバイス４０８は、（例えば、対称暗号化方式のための）共有秘密キー及び代理キー暗号化関数又はキー導出関数（ＫＤＦ）を記憶することができ、その関数は、事前に（例えば、独自の配送チャネルを経由して）別の安全なデバイスと共有されることができる。キー発生元デバイス４０２は、共有秘密キーを使用してメッセージを認証するために、そしてその共有秘密キーと代理キー導出関数とに基づいて代理キーを生成するために構成されることができる。
【００４７】
図５は、キー発生元ホスト・デバイス４０２上で代理キーを生成しそして別のデバイスに配送するようになっている方法を説明する。同じ共有秘密キーを有するクライアント・デバイス（例えば、図１２のキー認証デバイス１２０２）との安全な通信のために使用されることが可能な共有秘密キーが、得られる５０２。暗号化関数又はキー導出関数（ＫＤＦ）が、得られ、それは代理キーを作り出すためにそして認証するためにホスト・デバイスにより使用されることが可能である、ここで、その暗号化関数は、同様にクライアント・デバイスにも既知である５０４。キー導出関数は、別の値を得るために値をランダム化する又は混合するために使用するハッシュ関数又は別のタイプの関数であり得る。代りの実施形態では、第１の一方向関数は、代理キーを作り出すために代理発生元デバイス４０２により得られ、一方で、別の第２の一方向関数が認証のためにクライアント・デバイスによって使用される。
【００４８】
代理キーについての１又はそれより多くのパラメータ又は制約は、キー発生元ホスト・デバイス５０６により同様に規定される５０８。例えば、制約は、代理デバイスがクライアント・デバイスに送ることができるメッセージ又はコマンドのタイプ、若しくは代理キーが有効である時間の長さを制限することができる。これらの制約は、同様にクライアント・デバイスにも既知である。ホスト・デバイスは、キー導出関数と制約とに基づいて代理キーを生成する５０８。例えば、キー発生元ホスト・デバイス４０２は、制約された代理キーを取得するために、キー導出関数のための入力として共有秘密キー、現在の日付／時刻、及び／又は他のパラメータ／制約を使用することができる。代理キーは、次に代理デバイスに送られ、そこでは代理デバイスは、クライアント・デバイスとの通信を認証するために使用されることができる５１０。
【００４９】
図６は、代理キー発生元ホスト・デバイス６０２（例えば、ホスト・デバイス）の別の一例を図示し、記憶媒体６０４、ユーザ・インターフェース６０６、パラメータ設定モジュール６０８、キー発生器６１０、出力モジュール６１２、及び暗号化モジュール６１４を含む。記憶媒体６０４は、クライアント・デバイスに関係する秘密キーＫを記憶するように構成される。１つの特徴によれば、認証モジュール６１４は、メッセージを認証するために秘密キーＫを使用することができ、そして出力モジュール６１２は、関係するクライアント・デバイスに認証されたメッセージを送信することができる。
【００５０】
別の１つの特徴では、キー発生元ホスト・デバイス６０２は、秘密キーＫに（少なくとも部分的に）基づいて代理キーＫｉ’を生成する。代理キーＫｉ’は、制限又は制約を有することができ、それはユーザ・インターフェース６０６を経由して選択されることができる又は入力されることができる、そしてパラメータは選択された制約に基づいてパラメータ設定モジュール６０８を通して設定されることができる。選択された制約は、例えば、あるレベルの権限又は限定された特権を認めるような機能において、及び／又は時間のある区切りの間に制約された代理キーが使用されることを認めるような時間において、制約された代理キーＫ’の使用を制限することができる。したがって、パラメータ／制約は、制約された代理キーの使用の制限及び／又はアクセスの制限を指示することができる。パラメータは、同様にタイムスタンプを備えることができ、それはその制約された代理キーを用いて暗号化されたメッセージがそのあいだ有効である時間の区切りを示す。
【００５１】
キー発生器６１０は、パラメータと秘密キーＫとの関数として制約された代理キーＫ’を生成する。キー発生器６１０は、キー導出関数とともに秘密キーＫを使用してパラメータ／制約を暗号化することにより制約された代理キーＫ’を生成することができる。もし、パラメータがタイムスタンプを含む場合には、制約された代理キーＫ’は、次のように秘密キーＫを使用してタイムスタンプを暗号化することによって生成されることができる：
Ｋ’＝ＥＫ（Ｔｓ，Ｔｅ）                                        ［１］
ここで、Ｅは秘密キーＫに基づく暗号化関数又はキー導出関数であり、Ｔｓは有効期間の始まりを示し、そしてＴｅは有効期間の終わりを示す。式１において、例えば、ハッシュ関数のような、任意の公知の暗号化関数又はキー導出関数が使用されることができる。あるインプリメンテーションでは、１より多くの暗号化関数／キー導出関数が使用されることができる。例えば、複数の暗号化関数のうちの１つが、制約された代理キーを生成するために使用されることができる。そのようなケースでは、どの（複数の）暗号化関数又は（複数の）キー導出関数がパラメータ／制約を暗号化するために使用されたかを指定するデータが、送信されることができる。
【００５２】
制約された代理キーＫ’は、次に出力モジュール６１２を経由して第３エンティティ又は代理デバイスに送られる。制約された代理キーＫ’を生成するために使用するパラメータ／制約は、同様に出力モジュール６１２を経由して代理デバイスに送られる。制約された代理キーＫ’及び／又はパラメータは、非無線通信で又は無線通信で送信されることができる。それに加えて、制約された代理キーＫ’は、代理デバイスに送信することに先立って暗号化されることができる。別の特徴は、制約された代理キーが既に生成されていることを（受信機に）知らせる標識子を出力モジュール６１２を経由して送信することを含むことができる。
【００５３】
キー発生元ホスト・デバイス６０２は一例の説明であり、そして他のエレメントを制御するために構成されたコントローラ及び／又は上に説明された動作の一部を含むことができる様々な機能を実行するように構成されたプロセッサのような追加のエレメントを含むことができる。複数のエレメントのうちの１つ又は組み合わせは、キー発生元ホスト・デバイス６０２の動作に影響を与えることなく事前に取り決められることができる。複数のエレメントのうちの１つ又は組み合わせは、同様に、キー発生元ホスト・デバイス６０２の動作に影響を与えることなく１つのエレメントへと統合されることができる。
【００５４】
図７は、代理キーを生成するためにキー発生元ホスト・デバイス上で動作されることができる方法を説明する。秘密キーが、記憶され７０２、そしてパラメータ／制約は、選択された制約に基づいて設定される７０４。制約された代理キーは、次に、キー導出関数を使用して生成され７０６、そこにおいて、制約された代理キーは、パラメータ／制約及び秘密キーの関数である。制約された代理キーは、キー導出関数を使用して生成されることができて、秘密キーを使用してパラメータ／制約を暗号化する。あるインプリメンテーションでは、ホスト・デバイスは、複数の暗号化関数又はキー導出関数の中からそのキー導出関数を選択することができる。そのようなケースでは、本方法は、代理キーを生成するために使用する複数の暗号化関数又はキー導出関数のうちの１つを指定するデータを送信することを含むことができる７０８。
【００５５】
制約された代理キー及び／又はパラメータ／制約は、第２のデバイス（例えば、代理デバイス）に送られる７１０及び７１２。制約された代理キーは、第２のデバイスに非無線通信で又は無線通信で送信されることができる。制約された代理キーは、送信の前に暗号化されることができる。パラメータ／制約は、制約された代理キーがその間有効である時間の区切りを指示するタイムスタンプを備えることができる。パラメータ／制約は、しかも制約された代理キーの使用制限を指示することができる。
【００５６】
本方法は、関係するキーが制約された代理キーであることを受信機に知らせる標識子（例えば、メッセージ・フラッグ、等）を送信すること７１４を同様に含むことができる。本方法は、秘密キーを使用してメッセージを認証すること７１６、そして認証されたメッセージを送信すること７１８を追加として含むことができる。
【００５７】
図８は、代理デバイス（例えば、図３の代理デバイスＣ３０６）の１つの実施形態を説明するブロック図である。代理デバイス８０２は、通信インターフェース８０４を含み、それを通して別のデバイスと通信リンクを設定することができる。処理回路８０６は、代理デバイス８０２へのそして／又はそれからの通信を安全にするための（複数の）暗号キー（例えば、対称キー又は非対称キー）を使用するように構成される。記憶デバイス８０８は、キー発生元ホスト・デバイスから受け取る代理キーを記憶することができ、その結果、それはクライアント・デバイスとの通信を認証するために使用されることができる。
【００５８】
図９は、キーを取得するためそしてクライアント・デバイスとの通信を認証するためにそのキーを使用するために代理デバイス８０２上で動作するようになっている方法を説明する。代理キーは、キー発生元ホスト・デバイスから得られる９０２。この代理キーは、キー発生元ホスト・デバイスにより送られることができる又は代理デバイスにより要求されることができる。あるインプリメンテーションでは、代理キーは、暗号化関数又はキー導出関数と秘密キーとを使用してキー・ホスト発生元デバイスによって生成されることができる。代理キーは、認証クライアント・デバイスとの今後の使用のために（代理デバイスにより）記憶されることができ、キー発生元ホスト・デバイスは、そのクライアント・デバイスとキー導出関数及び／又は秘密キーを既に共有している９０４。メッセージは、代理キーを使用して認証される９０６。認証されたメッセージは、認証クライアント・デバイスに送られる９０８。あるインプリメンテーションでは、代理デバイスは、キー発生元ホスト・デバイスによりその代理デバイスに課せられた１又はそれより多くの制約を手に入れることができる９１０。これらの制約は、代理キーと共に、又はその一部として、キー発生元ホスト・デバイスにより送られることができる。１又はそれより多くの制約は、認証クライアント・デバイスに伝えられる９１２。代わりのインプリメンテーションでは、代理キーについての制約は、代理キー発生元ホスト・デバイス（例えば、図３のホスト・デバイスＡ３０２）と認証クライアント・デバイス（例えば、図３のクライアント・デバイスＢ３０４）との間で代わりに事前に取り決められることができる。
【００５９】
別の特徴によれば、代理デバイスは、クライアント・デバイスから暗号化されたメッセージを受け取ることができる。それは次に、そのクライアント・デバイスからのメッセージを逆暗号化するために代理キーを使用することによりクライアント・デバイスを認証する。
【００６０】
図１０は、別の代理デバイス１０００の一例を説明する。代理デバイス１０００は、パラメータ受信機１００２、キー受信機１００４、暗号化モジュール１００６及び出力モジュール１００８を備える。パラメータ受信機１００２は、選択された制約を指示するパラメータを受け取るように構成される。上に説明したように、選択された制約は、例えば、代理キーＫ’の使用を機能において及び／又は時間において制限することができる。したがって、パラメータ／制約は、制約された代理キーＫ’の使用制限を指示することができる。パラメータ／制約は、しかも制約された代理キーを用いて暗号化されたメッセージがその間有効である時間の区切りを指示するタイムスタンプを備えることができる。キー受信機１００４は、キー発生元ホスト・デバイスから制約された代理キーＫ’を受け取るように構成される。制約された代理キーＫ’は、パラメータ／制約及び秘密キーＫに関係する。制約されたキーは、暗号化関数への入力としてパラメータ／制約と秘密キーＫとを使用することにより生成されることができる。例えば、制約された代理キーＫ’は、上記の式１に基づいて生成されることができる。制約された代理キーＫ’及び／又はパラメータは、非無線通信で又は無線通信で受信されることができる。それに加えて、制約された代理キーＫ’は、暗号化された形式で受け取られることができる。そのようなケースでは、暗号化された制約代理キーは、制約された代理キーＫ’を得るために逆暗号化される。
【００６１】
認証モジュール１００８は、制約された代理キーＫ’を使用してメッセージを認証し、暗号化し、そして／又は安全にする、そして出力モジュール１００６は、認証されたメッセージを送る。ここで、メッセージは、データ及び受け取ったパラメータ／制約を含むことができる。出力モジュール１００６は、同様に、暗号化することなく受け取ったパラメータ／制約を送ることもできる。別の態様は、出力モジュール１００６を経由して標識子を送ることができ、その出力モジュール１００６は制約されたキーが使用されようとしていることを（例えば、メッセージがそれを用いて認証されるキーが制約されたキーであることを）受け取るクライアント・デバイスに知らせる。
【００６２】
受け取ったパラメータ／制約と同様に制約された代理キーＫ’を使用して認証された（例えば、暗号化された）パラメータ／制約を送ることによって、メッセージ認証コード（ＭＡＣ：message authentication code）が、作り出される。したがって、クライアント・デバイス（例えば、認証デバイス）は、受け取ったパラメータをその同じ受け取ったパラメータに基づいて生成されるローカルに生成された制約代理キーＫ’を使用して再生したパラメータと比較することにより、代理デバイス又は第３エンティティから受け取ったメッセージの有効性、真正性、及び／又は完全性を判断することができる。
【００６３】
代理デバイス１０００は、１つの例示であり、そして追加のエレメントを含むことができ、例えば、代理デバイス１０００の他のエレメントを制御するために構成されたコントローラ、ユーザ入力を受け取るために構成されたユーザ・インターフェース、記憶媒体、及び／又は上に説明した動作の一部を含むことができる様々な機能を実行するために構成されたプロセッサを含むことができる。エレメントのうちの１つ又はそれらの組み合わせは、代理デバイス１０００の動作に影響を及ぼすことなく再配置される又は組み合わせられることができる。
【００６４】
図１１は、クライアント・デバイスとの通信を認証する際に代理デバイスによる使用のための別の方法を説明する。選択された制約を示すパラメータが受け取られ１１０２、そして制約された代理キーが受け取られる１１０４、ここにおいて、その制約された代理キーは、制約されたパラメータ／制約及び秘密キーに関係する。メッセージは、制約された代理キーを使用して認証される（例えば、暗号化される又は安全にされる）１１０６、ここにおいて、メッセージは、データ及びパラメータを含むことができる。認証されたメッセージと受け取られた制約パラメータは、その後、送られる又は送信される１１０８と１１１０。受け取られた制約された代理キーは、秘密キーを使用して制約パラメータを暗号化することにより生成されてきていることがある。制約された代理キーは、非無線通信で又は無線通信で受け取られることができる。制約された代理キーは、暗号化されることができる又はそうでなければ受け取られるときに安全にされることができる。もし暗号化されるならば、本方法は、制約された代理キーを逆暗号化することを含むはずである１１１２。
【００６５】
受け取られたパラメータ／制約は、タイムスタンプを備えることができ、それはメッセージがその間有効である時間の区切りを指示する。パラメータは、制約された代理キーの使用制限を指示することができる。本方法は、しかもキーが制約された代理キーであることをクライアント受信機に知らせる代理標識子、例えば、フラッグ、を送ることを備えることができる１１１４。
【００６６】
図１２は、キー認証クライアント・デバイス（例えば、図３のクライアント・デバイスＢ３０４）の１つの実施形態を説明するブロック図である。キー認証クライアント・デバイス１２０２は、通信インターフェース１２０４を含み、それを経由してそのキー認証クライアント・デバイスは他のデバイス、例えば、キー発生元ホスト・デバイス（例えば、図４のホスト・デバイス４０２）及び代理デバイス（例えば、図８の代理デバイス８０２）、との安全な通信リンクを設定することができる。処理回路１２０６は、（複数の）暗号キー（例えば、対称キー又は非対称キー）を使用するように構成され、キー認証クライアント・デバイスへの及び／又はそれからの通信を認証する。記憶デバイスは、（例えば、対称暗号化方式のための）共有秘密キー及び暗号化関数（例えば、キー導出関数）を記憶することができ、それらは事前に（例えば、独自のそして／又は安全な配送チャネルを経由して）別の安全なデバイス（例えば、キー発生元ホスト・デバイス）と共有されることができる。
【００６７】
図１３は、安全な通信を確立するためそして／又は代理デバイスを認証するために代理デバイス（第３エンティティ）からの制約されたキーを認証するためそして使用するためにキー認証クライアント・デバイス１２０２上で動作するようになっている方法を説明する。共有秘密キーは、手に入れられることができ１３０２、それは同じ共有秘密キーを有するホスト・デバイス（例えば、図４のキー発生元デバイス４０２）との安全な通信のためにクライアント・デバイス（例えば、認証デバイス）によって使用されることができる。クライアント・デバイスとホスト・デバイスとの両方に既知であるキー導出関数が、手に入れられる１３０４。共有秘密キー及び／又はキー導出関数は、独自の配送チャネルを介してキー認証クライアント・デバイスに与えられることができる。認証されたメッセージは、代理デバイスから受け取られる１３０６、ここにおいて、そのメッセージは、ホスト・デバイスにより最初に生成された代理キーを使用して暗号化されていた。クライアント・デバイスは、しかもその代理キーに関係付けられた１又はそれより多くの制約を手に入れることができる１３０８。制約は、代理デバイスからそして／又はホスト・デバイスから得られることができる。ローカル代理キーは、キー導出関数、１又はそれより多くの制約、及び共有秘密キーを使用してクライアント・デバイスによって生成される１３１０。代理デバイスは、受け取ったメッセージにローカル代理キーを使用することにより認証される。すなわち、もし代理デバイスがそれを用いてそのメッセージを認証した代理キーとローカルに生成された代理キーとが同じである場合、クライアント・デバイスは、そのメッセージを適正に認証する（例えば、逆暗号化する）。
【００６８】
代理デバイスにより実行される動作は、代理キーについての制約にしたがって制限されることがある１３１６。１つのインプリメンテーションでは、代理キーについての制約は、代理キーとともに受け取られることができる、又はその一部である。代わりのインプリメンテーションでは、代理キーについての制約は、その代わりに、ホスト・デバイス（例えば、代理キー発生元デバイス）とクライアント・デバイス（例えば、代理キー認証デバイス）との間で独自の配送チャネルを介して又はそれらの間の安全な通信リンクを介して事前に取り決められることができる。さらに別の実施形態では、代理キーについての制約は、暗示されることがある。例えば、クライアント・デバイス１２０２は、異なる通信インターフェース、例えば、代理キー発生元ホスト・デバイスと通信するための主インターフェース、と代理デバイスと通信する副インターフェースとを含むことができる。もし代理キーが副インターフェースを経由して受け取られる場合には、代理認証デバイスは、それが代理キーであると仮定し、したがってそれを認証する。別のタイプの受け取られる制約は、そのあいだ代理キーが有効である時間の区切りを示す１又はそれより多くのタイムスタンプであり得る。
【００６９】
図１４は、記憶媒体１４０２、パラメータ受信機１４０４、メッセージ受信機１４０６、キー発生器１４０８、及び認証モジュール１４１０を具備する一例の（認証）クライアント・デバイス１４００を説明する。記憶媒体１４０２は、秘密キーＫを記憶するように構成される。認証モジュール１４１０は、メッセージ受信機１４０６を経由して受け取られるメッセージを認証するために（例えば、逆暗号化するために）その秘密キーＫを使用することができる。もしその秘密キーＫを使用して受け取ったメッセージの認証が失敗する場合には、クライアント・デバイス１４００は、次に、受け取ったメッセージを認証するために使用することが可能な制約された代理キーを生成する。あるインプリメンテーションでは、受け取られるメッセージが代理キーを使用して認証されることをクライアント・デバイス１４００に知らせる標識子が、受け取られる。したがって、もし受け取られるメッセージが（制約された）代理キーを使用して認証されることをその標識子が指示する場合には、（認証）クライアント・デバイス１４００は、指示された制約を使用してローカル代理キーを生成して、受け取られるメッセージを認証しそして受け取られるメッセージのそして／又はそのメッセージの送り手の認証性を検証する。
【００７０】
パラメータ受信機１４０４は、選択された制約を指示するパラメータを受け取る。選択された制約は、例えば、制約された代理キーの使用を機能においてそして／又は時間において制限することができる。パラメータは、制約された代理キーの使用制限を指示することができる。そのパラメータは、その制約された代理キーを用いて暗号化されたメッセージがその期間有効である時間の区切りを示すタイムスタンプを同様に備えることができる。
【００７１】
受け取られるメッセージを認証するために、キー発生器１４０８は、受け取られたパラメータ（すなわち、制約）及び秘密キーＫの関数としてローカル代理キーを生成する。キー発生器１４０８は、図６のキー発生器６１０に類似の方法でローカル代理キーを生成する。そのように、キー発生器１４０８は、パラメータ／制約を取り込んでいるキー導出関数（一種の暗号キー）及び秘密キーＫを使用することによってローカル代理キーを生成することができる。もしパラメータがタイムスタンプを含む場合には、代理キーは、式［１］におけるようにタイムスタンプを暗号化することによって生成されることができる。インプリメンテーションに応じて、１より多くのキー導出関数が使用されることができる。例えば、複数の暗号化関数のうちの１つが、ローカル制約キーを生成するために使用されることができる。そのようなケースでは、暗号化関数のうちの１つを指定するデータは、クライアント・デバイス１４００により受け取られることができる。キー発生器１４０８は、パラメータ（制約）及び秘密キーを取り込むために指定されたキー導出関数を使用してローカル代理キーを生成することができる。一旦ローカル代理キーが生成されると、認証モジュール１４１０は、そのローカル代理キーを使用して受け取られるメッセージを認証し、その中のデータ及びパラメータ（制約）を再生するように構成される。
【００７２】
クライアント・デバイス１４００は、比較モジュール１４１２をさらに備えることができる。比較モジュール１４１２は、受け取ったパラメータ（制約）と再生したパラメータ（例えば、認証されたメッセージからの制約）を比較するために構成される。例えば、受け取ったパラメータ（制約）と再生したパラメータ（制約）が符合する場合には、代理デバイスは、認証される。例えば、パラメータがタイムスタンプである場合には、もしメッセージがそのパラメータにより指示される時間の区切り内に受け取られるのであれば、受け取られたメッセージは、認証される。
【００７３】
代わりのインプリメンテーションでは、代理キーを生成するために使用するパラメータ（制約）は、クライアント・デバイスにより独自に手に入れられる。例えば、ホスト・デバイスは、事前にパラメータ（制約）を与えることができる。クライアント・デバイスは、次にこれらの制約を使用して、ローカル代理キーを生成しそして代理デバイスを認証する（例えば、代理デバイスから受け取ったメッセージを認証する）。
【００７４】
クライアント・デバイス１４００は、一例の例示であり、そして追加のエレメント、例えば、クライアント・デバイス１４００の他のエレメントを制御するために構成されたコントローラ及び／又は上記の動作の一部を含むことができる様々な機能を実行するために構成されたプロセッサを含むことができる。クライアント・デバイス１４００は、しかも電気通信のためのエレメント、同様に無線通信のためのエレメントを含むことができる。複数のエレメントのうちの１つ又はそれらの組み合わせは、クライアント・デバイス１４００の動作に影響を与えることなく再配置されることができる。複数のエレメントのうちの１つ又はそれらの組み合わせは、しかもクライアント・デバイス１４００の動作に影響を与えることなく１つのエレメントへと統合されることができる。
【００７５】
図１５は、クライアント・デバイスによる通信を認証するためのさらなる方法を説明する。安全な通信で使用するための秘密キーが、記憶される１５０２。この秘密キーは、ホスト・デバイスと共有されることができ、そのホスト・デバイスは制約されたキーを代理デバイスに与える。選択された制約を示すパラメータが受け取られ１５０４、そして制約されたキーを使用して認証されたメッセージが、クライアント・デバイスによって受け取られる１５０６。そのメッセージは、データ及びパラメータを備えることができる。受け取られるメッセージ１５０６は、秘密キーを使用して認証されることができる１５１６。もし受け取られるメッセージの認証が上手くいく場合には１５１８（例えば、メッセージは適正に逆暗号化される）、認証は完了する。すなわち、そのようなメッセージは、その秘密キーを知る別のデバイスにより認証された。そうでなければ、もし受け取られるメッセージの認証が失敗する場合には１５１８、制約された代理キーは、メッセージを認証するために１５１０、キー導出関数、秘密キー及び１又はそれより多くのパラメータ（制約）を使用してローカルに生成される１５０８。受け取られるメッセージは、ローカルに生成された代理キーを使用して認証され１５１０、データ及びパラメータを再生する。
【００７６】
制約された代理キーは、暗号化関数、例えば、キー導出関数（ＫＤＦ）を使用することにより受け取ったパラメータ及び秘密キーに基づいて生成されることができる。その方法は、しかも、受け取られるメッセージが（制約された）代理キーを用いて認証されている（例えば、暗号化されている）ことを受け取るクライアント・デバイスに知らせる標識子を受け取ることを含むことができる１５１２。（制約された）代理キーが受け取られるメッセージを認証するために使用されたことを標識子が示す場合には、制約された代理キーは、その後、秘密キーを用いて（認証を試みることよりはむしろ）直接生成されることができる。標識子は、例えば、フラッグであり得る。本方法は、追加として、複数の暗号化関数のうちの１つを指定しているデータを受け取ることを含むことができる１５１４。そのようなケースでは、制約された代理キーは、入力としてパラメータと秘密キーとを使用して指示された暗号化関数を使用して生成されることができる。
【００７７】
本方法は、受け取ったパラメータと再生されたパラメータ（例えば、受け取られるメッセージから逆暗号化されたもの）とを比較することをさらに含むことができる。もし受け取ったパラメータと再生したパラメータとが符合する場合には、代理デバイスは、認証されることができる。受け取ったパラメータと再生したパラメータは、タイムスタンプを備えることができる。そのタイムスタンプは、メッセージがそのあいだ有効である時間の区切りを指示することができる。もし、メッセージが時間の区切り内に受け取られる場合には、メッセージは、その後、認証されることができる。受け取ったパラメータと再生したパラメータは、制約されたキーの使用制限をさらに示すことができる。
【００７８】
図１６は、（認証）クライアント・デバイスにより受け取られるメッセージに対して使用されることができるメッセージ・フォーマットを説明する。データ・フォーマットは、認証されたメッセージ・フィールド１１１０を備えるはずである。データ・フォーマットは、制約されたキーが生成されたかどうかを知らせる標識子のための標識子ビット・フィールド１６０４を同様に備えることができる。標識子ビットは、１ビット長フラッグであることができ、そこでは、例えば、ビット＝０は制約されたキーがまだ生成されていないことを示すはずであり、そしてビット＝１は制約されたキーが生成されていることを示すはずである、又はそれらの逆である。データ・フォーマットは、データのためのフィールド１６０６をさらに含むことができ、そのデータは制約されたキーを生成するために使用した複数の暗号化関数のうちの１つを指定する。このデータ・フィールド１６０６の長さは、暗号化関数の数に依存することができる。例えば、もし３又は４の暗号化関数がある場合には、このデータ・フィールド１６０６は、４つの状態、００，０１，１０と１１を有する２ビットであることができ、それぞれが３つの暗号化関数（１つの状態は使用されないはずである）又は４つの暗号化関数のうちの１つに対応する。データ・フィールド１６０４と１６０６とは、移動デバイスに通信されるメッセージのヘッダ中に存在し得る。データ・フィールド１６０２は、クライアント・デバイスに通信されるメッセージのペイロード中に存在し得る。
【００７９】
図１７は、代理キー発生元デバイスにおいて１つのタイプの暗号化関数（例えば、代理キー導出関数）としてブロック暗号法がどのように使用されることができるかを説明する。ブロック暗号法１７０２は、秘密キー１７０４及び１又はそれより多くの制約と認証キー１７１０（平文テキスト）を受け取って、代理キー１７０８（暗号文テキスト）を生成する。このインプリメンテーションでは、代理キー発生元ホスト・デバイスは、代理キー１７０８の一部として代理制約と認証キーとをエンコードする。
【００８０】
図１８は、代理キー認証クライアント・デバイスにおいて１つのタイプの暗号化関数（例えば、キー導出関数）としてブロック暗号法がどのように使用されることができるかを説明する。ブロック暗号法１８０２は、秘密キー１８０４（認証デバイスに予め知られる）と代理デバイスから受け取る代理キー１８０６（暗号文テキスト）とを使用して、代理制約１８０８と認証キー１８１０（平文テキスト）とを手に入れる。認証キー１８１０は、次に認証デバイスによって使用されることができ、代理キーを送った代理デバイスが代理として動作することを認可されているかどうかを判断する。
【００８１】
本明細書中に記載された様々な例が対称キー暗号方式（例えば、共有秘密キー、暗号法ブロック、等）を使用しているが、代理キー方式は、同様に非対称キー暗号方式を使用して実行されることもできる。
【００８２】
図１−１８に例示された１又はそれより多くの構成要素、ステップ、そして／又は機能は、本発明から乖離することなく単一の構成要素、ステップ、又は機能へと再構成される又は統合されることができる、又は複数の構成要素、ステップ、又は機能に組み込まれることができる。増設のエレメント、構成要素、ステップ、及び／又は機能は、本発明から逸脱することなく同様に追加されることができる。図１，２，３，４，６，８，１０，１２，１４，１７及び／又は１８に図示された装置、デバイス、及び／又は構成要素は、図３，５，７，９，１１，１３及び／又は１５に説明される１又はそれより多くの方法、フィーチャ、又はステップを実行するように構成されることができる。
【００８３】
本明細書中に開示された実施形態に関連して説明された様々な例示的な論理ブロック、モジュール、回路及びアルゴリズムのステップが、電子ハードウェア、コンピュータ・ソフトウェア、又は両者の組み合わせとして与えられることができることを、当業者は、さらに認識するはずである。ハードウェアとソフトウェアのこの互換性を明確に説明するために、様々な例示的な複数の構成要素、ブロック、モジュール、回路、及びステップが、それらの機能性の面から一般的に上に説明されてきている。そのような機能性が、ハードウェア又はソフトウェアとして与えられるかどうかは、特定のアプリケーション及びシステム全体に課せられた設計の制約に依存する。
【００８４】
上記の複数の実施形態が単に例であり、そして本発明を制限するものとして解釈されるべきでないことを、注意すべきである。複数の実施形態の説明は、例示であるように意図され、そして特許請求の範囲を限定しないように意図されている。その意味で、本教示は、別のタイプの装置に容易に適用されることができ、そして多くの代案、修正、及び変形が当業者に明白である。
【図面の簡単な説明】
【００８５】
【図１】図１は、代理キーが別々のデバイスによって生成されそして認証されることが可能である機密保護方式を説明する。
【図２】図２は、代理キーが別々のデバイスによって生成されそして認証されることが可能である機密保護方式を説明する。
【図３】図３は、安全かつ制限された代理キーを生成するため、配布するため、そして認証するための方法を説明する。
【図４】図４は、代理キー発生元ホスト・デバイスの１つの実施形態を説明するブロック図である。
【図５】図５は、代理発生元ホスト・デバイス上で代理キーを生成しそして別のデバイスに配送するようになっている方法を説明する。
【図６】図６は、代理キー発生元ホスト・デバイスの別の一例を説明する。
【図７】図７は、代理キーを生成するためにホスト・デバイス上で動作されることができる方法を説明する。
【図８】図８は、代理デバイスの１つの実施形態を説明するブロック図である。
【図９】図９は、代理キーを取得するためそして別のデバイスとの通信を認証するためにそれを使用するために代理デバイス上で動作するようになっている方法を説明する。
【図１０】図１０は、別の代理デバイスの一例を説明する。
【図１１】図１１は、クライアント・デバイスとの通信を認証する際に代理デバイスによる使用のための別の方法を説明する。
【図１２】図１２は、キー認証クライアント・デバイスの１つの実施形態を説明するブロック図である。
【図１３】図１３は、安全な通信を確立するためそして／又は代理デバイスを認証するために代理デバイスからの制約されたキーを認証するためそして使用するためにキー認証クライアント・デバイス上で動作するようになっている方法を説明する。
【図１４】図１４は、記憶媒体、パラメータ受信機、メッセージ受信機、キー発生器、及び逆暗号化モジュールを具備する一例のクライアント・デバイスを説明する。
【図１５】図１５は、クライアント・デバイスによる通信を認証するためのさらなる方法を説明する。
【図１６】図１６は、（認証）クライアント・デバイスによって受け取られるメッセージに対して使用されることができるメッセージ・フォーマットを説明する。
【図１７】図１７は、ブロック暗号法が代理キー発生デバイスにおいて１つのタイプの代理キー導出関数としてどのように使用されることができるかを説明する。
【図１８】図１８は、ブロック暗号法が代理キー認証デバイスにおいて１つのタイプの代理キー導出関数としてどのように使用されることができるかを説明する。
【図１】
2009510978.tif 000003
【図２】
2009510978.tif 000004
【図３】
2009510978.tif 000005
【図４】
2009510978.tif 000006
【図５】
2009510978.tif 000007
【図６】
2009510978.tif 000008
【図７】
2009510978.tif 000009
【図８】
2009510978.tif 000010
【図９】
2009510978.tif 000011
【図１０】
2009510978.tif 000012
【図１１】
2009510978.tif 000013
【図１２】
2009510978.tif 000014
【図１３】
2009510978.tif 000015
【図１４】
2009510978.tif 000016
【図１５】
2009510978.tif 000017
【図１６】
2009510978.tif 000018
【図１７】
2009510978.tif 000019
【図１８】
2009510978.tif 000020
【国際調査報告】
2009510978.tif 000021
2009510978.tif 000022