制約された暗号キー
制約された代理キーは、仲介のデバイスを介した2つのデバイス間の通信を安全にするために使用される。第1の代理キーは、共有秘密キー、第1の代理キーについての1又はそれより多くの制約、及びキー導出関数に基づいてホスト・デバイス(キー発生元デバイス)において生成される。少なくとも共有秘密キーとキー導出関数は、ホスト・デバイスとクライアント・デバイス(認証デバイス)とに既知である。第1代理キーは、クライアント・デバイスとの通信を認証する際に使用するために、代理デバイスに送られる。認証されたメッセージは、第1の代理キーを使用して代理デバイスにより生成され、そしてクライアント・デバイスに送られる。クライアント・デバイスは、代理デバイスを認証するために、キー導出関数、1又はそれより多くの制約、及び共有秘密キーを使用して第2の代理キーを生成する。クライアント・デバイスが第2の代理キーを使用して代理デバイスからの認証されたメッセージを良好にアクセスする場合に、代理デバイスは認証される。
【発明の詳細な説明】
【関連文献】
【0001】
[米国特許法35§119による優先権の主張]
特許に関する本出願は、米国特許仮出願番号第60/722,185号、名称“制約された暗号キー(Constrained Cryptographic Keys)”、2005年9月29日出願、及び米国特許仮出願番号第60/761,476号、名称“代理人による認証(Authentication By Proxy)”、2006年1月24日出願、に優先権を主張し、2つの仮出願は、本出願の譲受人に譲渡され、そして本明細書中に引用によってその全体が取り込まれている。
【技術分野】
【0002】
様々な実施形態は、安全な通信に関係し、特に、代理デバイスを介した2つのパーティ間の安全な通信を可能にする制約された暗号キーに関係する。
【背景技術】
【0003】
現在のところ、2つのパーティ間の安全にされた通信は、共有された秘密の使用によって多くの場合達成される。この共有の秘密は、2つのパーティがその共有の秘密に基づいた暗号化を使用することによりそれらの通信(例えば、データ・パケット、メッセージ、等)のコンテントを非公開に保つことを可能にする。それに加えて、共有の秘密は、通信が真に要求された送り手から来たことそして搬送中に変更されなかったことをあるパーティが認証することを可能にする。
【0004】
ある状況では、直接のそして安全な通信リンクは、2つのパーティ間で設定できないことがある。例えば、第1デバイスと第2デバイスとの間の安全な通信リンクが失われる又は切断されるとき、第3デバイスは、第2デバイスの問題解決をすること又は役に立つことを必要とすることがある。第2デバイスと通信するために、第3デバイス(例えば、フィールド技術者、等)は、第2デバイスと安全なリンクを確立する必要があるはずである。
【0005】
公開キー暗号化(非対称キー暗号化)が第1パーティと第2パーティとの間で使用されるアプリケーションでは、認定階層(certificate hierarchy)は、第1パーティと第2パーティとの間で代理として動作する第3パーティを介してこの問題を解決するために多くの場合に使用される。第1パーティは、(一般に第3パーティの公開キーを第1パーティの非公開キーを用いてディジタル・サインすることによって)第3パーティに代理認定書を発行することができ、それは第3パーティが第1パーティのための代理とし動作することを可能にする。第3パーティは、次に代理認定書とともに自身の公開キーを第2パーティに提示することができる。
【0006】
しかしながら、非対称キー暗号化アルゴリズムは、他の暗号法と比較して相対的に計算の費用がかかる。それに加えて、一旦、代理認定書が第3パーティに発行されると、第3パーティが第2パーティから受け取ることができる又はアクセスすることができる情報のタイプを制限すること、若しくは第3パーティが第1パーティの代理人としてどれだけ長く動作することができるかを制限することは、困難である。それゆえ、代理キー暗号アルゴリズムは、計算上の効率が良くそして代理キー発生元が代理キーに制約を与えることを可能にすることが必要とされている。
【発明の開示】
【サマリー】
【0007】
本方法は、クライアント・デバイスと代理デバイスとの間の安全な通信を可能にするために提供される。第1代理キーは、ホスト・デバイスとクライアント・デバイスとに知られている共有秘密キーに基づいてホスト・デバイスにおいて生成される。第1代理キーは、代理デバイスに送られる。第2代理キーは、クライアント・デバイスにおいて生成され、それは代理デバイスを認証するために第2代理キーを使用する。認証アルゴリズムの配布は、ホスト・デバイスとクライアント・デバイスとの間で事前に取り決められることができる。同様に、ホスト・デバイスとクライアント・デバイスとの間の秘密キーの配送も、事前に取り決められることができる。代理デバイスは、第1代理キーと第2代理キーとが同じときに認証されることができる。
【0008】
第1代理キーと第2代理キーは、キー導出関数(KDF:key derivation function)と共有秘密キーとを使用して独自に生成されることができる。KDFは、1又はそれより多くの制約と共有秘密キーとを入力として使用して、第1代理キーと第2代理キーとを取得する。共有秘密キーは、第1代理キーと、1又はそれより多くの制約と、そしてKDFの知識とを用いてのみ再生されることが可能である。
【0009】
本方法は、該ホスト・デバイスにおいて該第1の代理キーに関係する1又はそれより多くの制約を選択することをさらに含むことができ、ここにおいて、該第1の代理キーと該第2の代理キーは、該1又はそれより多くの制約に基づく。該1又はそれより多くの制約は、該代理デバイスから該クライアント・デバイスに送ることができ、ここにおいて、該クライアント・デバイスは、該制約を該第1の代理キーに適用する。あるいは、該1又はそれより多くの制約は、該ホスト・デバイスから該クライアント・デバイスに送られ、ここにおいて、該クライアント・デバイスは、該制約を該第2の代理キーに適用する。
【0010】
標識子は、代理キーがメッセージを安全にするために使用されようとしていることを該クライアント・デバイスに示すために、該代理デバイスから該クライアント・デバイスに送る該メッセージ中に設定されることができる。該第1の代理キーを導出するために使用される1又はそれより多くの制約は、該ホスト・デバイスにおいて定められることができ、そして、該クライアント・デバイスに伝達されることができる。該クライアント・デバイスの動作は、該1又はそれより多くの制約にしたがって該代理デバイスとの関係で制限されることがある。
【0011】
別の方法が、ホスト・デバイス上で代理キーを生成するために提供される。共有秘密キーは、取得され、そして、同じ共有秘密キーを有するクライアント・デバイスとの通信を安全にするために使用される。第1のキー導出関数は、同様に取得され、ここにおいて、該第1のキー導出関数は、該クライアント・デバイスに既知の第2のキー導出関数に関係する。代理キーは、該第1のキー導出関数と該共有秘密キーとに基づいて生成される。該代理キーは、代理デバイスに提供され、ここにおいて、該代理デバイスは、該クライアント・デバイスとの通信を認証するために該代理キーを使用することが可能である。該代理キーについての1又はそれより多くの制約は、該代理キーを生成する前に定められることができる。これらの制約は、該代理キーを生成するために使用され、そして該代理デバイスに送られる。該1又はそれより多くの制約は、該クライアント・デバイスに送られる。該代理キーを生成することは、該代理キーを取得するために該共有秘密キーとともに該第1のキー導出関数に対するパラメータとして1又はそれより多くの制約を使用することを含む。
【0012】
該共有秘密キーは、該ホスト・デバイスと該クライアント・デバイスとの間の対称キー・セキュリティ方式において使用されることができる。該第1のキー導出関数は、暗号化ブロック暗号法であることができる。
【0013】
本方法は、複数の暗号化関数を記憶すること、及び該複数の暗号化関数の中から該第1のキー導出関数を選択することを同様に含む。データは、送信されることができ、複数のキー導出関数のうちの1つを指定する。該1又はそれより多くの制約は、該代理キーがそのあいだ有効である期間を指示するタイムスタンプを含むことができる。
【0014】
キー発生元ホスト・デバイスが、同様に提供され、(a)他のデバイスと通信するための通信インターフェース;(b)共有秘密キーとキー導出関数とを記憶するための記憶デバイス、ここにおいて、該共有秘密キーとキー導出関数は、両方ともクライアント・デバイスに既知である;及び/又は(c)該通信インターフェース及び該記憶デバイスに接続された処理回路、を含む。該処理回路は、(1)該キー導出関数と共有秘密キーとに基づいて代理キーを生成するため、そして/又は(2)代理デバイスに該代理キーを送るために構成され、ここにおいて、該代理デバイスは、該クライアント・デバイスとの通信を認証するために該代理キーを使用することが可能である。該処理回路は、該代理キーを生成することの前に該代理キーについての1又はそれより多くの制約を定めるためにさら構成されることができる。該代理キーは、該1又はそれより多くの制約に基づいて生成されることができる。該制約は、該クライアント・デバイスと事前に取り決められることができる、そして/又は該代理デバイスに送られることができる。該制約のうちの1つは、ある長さの時間の後で該代理キーを失効させることができる。
【0015】
該キー導出関数は、暗号化ブロック暗号法であることができる。該記憶デバイスは、複数の暗号化関数を記憶し、そして該処理回路は、該複数の暗号化関数の中から該キー導出関数を選択するために構成される。該処理回路は、該代理キーの中へと1又はそれより多くの制約を取り込むために使用する該複数の暗号化関数から該選択されたキー導出関数を指定するデータを送信するためにさらに構成されることができる。
【0016】
代理発生デバイスが、同様に提供され、(a)同じ共有秘密キーを有するクライアント・デバイスとの安全な通信のために使用する共有秘密キーを取得するための手段;(b)キー導出関数を取得するための手段、ここにおいて、該キー導出関数は、該クライアント・デバイスにも既知である;(c)該キー導出関数と該共有秘密キーとに基づいて代理キーを生成するための手段;及び/又は(d)該代理キーを代理デバイスに送るための手段、を具備する、ここにおいて、該代理デバイスは、該クライアント・デバイスとの通信を認証するために該代理キーを使用することが可能である。
【0017】
プロセッサが、同様に提供され、ホスト・デバイス上で代理キーを生成するために構成され、(a)同じ共有秘密キーを有するクライアント・デバイスとの安全な通信のために使用する共有秘密キーを取得するため;(b)キー導出関数を取得するため、ここにおいて、該キー導出関数は、該クライアント・デバイスに既知の第2のキー導出関数に関係する;(c)該キー導出関数と該共有秘密キーとに基づいて代理キーを生成するため;及び(d)該代理キーを代理デバイスに提供するために構成された処理回路を具備する。該処理回路は、(e)該代理キーを生成することの前に該代理キーについての1又はそれより多くの制約を定めるために、(f)該1又はそれより多くの制約に基づいて該代理キーを生成するために、そして/又は(g)該1又はそれより多くの制約を該クライアント・デバイスに提供するためにさらに構成される。
【0018】
機械読み取り可能な媒体が、提供され、ホスト・デバイスにおいて代理キーを生成するための1又はそれより多くの命令を有する、該命令はプロセッサにより実行されるときに該プロセッサに:(a)同じ共有秘密キーを有するクライアント・デバイスとの安全な通信のために使用する共有秘密キーを取得すること;(b)キー導出関数を取得すること、ここにおいて、該キー導出関数は、該クライアント・デバイスに既知の第2のキー導出関数に関係する;(c)該キー導出関数と該共有秘密キーとに基づいて該代理キーを生成すること;及び(d)該代理キーを代理デバイスに提供すること、を実行させる。該機械読み取り可能な媒体は、該プロセッサにより実行されたときに該プロセッサに:(e)該代理キーについての1又はそれより多くの制約を定めること、(f)該1又はそれより多くの制約に基づいて該代理キーを生成すること、そして/又は(g)該クライアント・デバイスに該1又はそれより多くの制約を提供すること、を実行させる1又はそれより多くの命令をさらに含むことができる。
【0019】
代理デバイス上で動作する方法が提供され、(a)ホスト・デバイスから代理キーを取得すること;(b)そのクライアント・デバイスと該ホスト・デバイスがキー導出関数と秘密キーとを共有している該クライアント・デバイスと使用するための該代理キーを記憶すること;(c)該代理キーを用いてメッセージを認証すること;及び/又は(d)該クライアント・デバイスに該代理デバイスを認証させるために該クライアント・デバイスに該認証されたメッセージを送ること、を具備する。本方法は、(e)該クライアント・デバイスから認証されたメッセージを受け取ること;及び/又は(f)該クライアント・デバイスからの該メッセージを認証するために該代理キーを使用することにより該クライアント・デバイスを認証すること、を同様に含むことができる。1つのインプリメンテーションでは、該代理キーに該ホスト・デバイスにより課せられた1又はそれより多くの制約が、取得され、該クライアント・デバイスに送られる。該代理キーは、該1又はそれより多くの制約に基づいて生成される。標識子は、同様に該クライアント・デバイスに送られることができ、該認証されたメッセージが代理キーを使用して認証されることを示す。データは、同様に該クライアント・デバイスに送信されることができ、該代理キーを生成するために使用するキー導出関数を指定する。
【0020】
代理デバイスが同様に提供され、(a)ホスト・デバイス及びクライアント・デバイスと通信するための通信インターフェース;(b)記憶デバイス;及び/又は(c)該通信インターフェースと該記憶デバイスとに接続された処理回路、を具備する。該処理回路は、(1)該ホスト・デバイスから代理キーを取得するため、(2)該クライアント・デバイスと使用するために該記憶デバイス中に該代理キーを記憶するため、ここにおいて、該ホスト・デバイスと該クライアント・デバイスは、キー導出関数と秘密キーとを共有する、(3)該代理キーを使用してメッセージを認証するため、そして/又は(4)該クライアント・デバイスに該代理デバイスを認証させるために該クライアント・デバイスに該認証されたメッセージを送るため、に構成されることができる。
【0021】
別の代理デバイスが提供され、(a)ホスト・デバイスから代理キーを取得するための手段;(b)そのクライアント・デバイスと該ホスト・デバイスがキー導出関数と秘密キーとを共有する該クライアント・デバイスと使用するための該代理キーを記憶するための手段;該代理キーを用いてメッセージを認証するための手段;(c)該クライアント・デバイスに該代理デバイスを認証させるために該クライアント・デバイスに該認証されたメッセージを送るための手段;(d)該代理キーに対して該ホスト・デバイスにより課せられた1又はそれより多くの制約を取得するための手段;及び/又は(e)該クライアント・デバイスに該1又はそれより多くの制約を送るための手段、を具備する。
【0022】
クライアント・デバイス上で動作する方法が、代理デバイスを認証するために提供される。ホスト・デバイスと該クライアント・デバイスとの両方に既知の共有秘密キーが、取得される。該クライアント・デバイスと該ホスト・デバイスとの両方に既知のキー導出関数が、同様に取得される。認証されたメッセージは、該クライアント・デバイスにおいて代理デバイスから受け取られる。ローカル代理キーは、該キー導出関数と該共有秘密キーとを使用して生成される。該代理デバイスは、該ローカル代理キーを使用することにより該クライアント・デバイスにおいて認証される。1又はそれより多くの制約は、取得され、そして該代理デバイスにより実行されることが可能な動作は、該制約にしたがって制限される。該代理デバイスは、該ローカル代理キーが安全にされたメッセージを良好に逆暗号化する場合に、該クライアント・デバイスによって認証される。該代理デバイスは、該ローカル代理キーが安全にされたメッセージを良好に逆暗号化する場合に、該クライアント・デバイスによって認証される。
【0023】
キー認証クライアント・デバイスが同様に提供され、(a)代理デバイスと通信するための通信インターフェース;(b)共有秘密キーとキー導出関数とを記憶するための記憶デバイス、ここにおいて、該共有秘密キーと該キー導出関数は、ホスト・デバイスに両方とも既知である;及び/又は(c)該通信インターフェース及び該記憶デバイスに接続された処理回路、を具備する。該処理回路は、(1)該代理デバイスから安全なメッセージを受け取るため、(2)該キー導出関数と該共有秘密キーとを使用してローカル代理キーを生成するため、(3)該ローカル代理キーを使用することにより該代理デバイスを認証するため、そして/又は(4)該代理デバイスについての1又はそれより多くの制約を取得するため;そして/又は、該1又はそれより多くの制約にしたがって該代理デバイスにより実行されることが可能な動作を制限するため、に構成される。
【0024】
別のキー認証クライアント・デバイスが、同様に提供され:(a)同じ共有秘密キーを有する該クライアント・デバイスとの通信を認証するためにホスト・デバイスにより使用されることが可能である共有秘密キーを取得するための手段;(b)該ホスト・デバイスと該クライアント・デバイスとの両方に既知のキー導出関数を取得するための手段;(c)該クライアント・デバイスにおいて代理デバイスからの認証されたメッセージを受け取るための手段;(d)該キー導出関数と該共有秘密キーとを使用してローカル代理キーを生成するための手段;及び/又は(f)該ローカル代理キーを使用することにより該代理デバイスを認証するための手段、を具備する。該デバイスは、(g)1又はそれより多くの制約を取得するための手段;(h)該1又はそれより多くの制約を使用して該ローカル代理キーを生成するための手段;及び(i)該制約にしたがって該代理デバイスにより実行されることが可能である動作を制限するための手段、をさらに含む。
【0025】
クライアント・デバイス上で代理デバイスを認証するために構成されたプロセッサが、提供され、(1)同じ共有秘密キーを有する該クライアント・デバイスとの通信を認証するためにホスト・デバイスにより使用されることが可能である共有秘密キーを取得するため;(2)該クライアント・デバイスと該ホスト・デバイスとの両方に既知のキー導出関数を取得するため;(3)該クライアント・デバイスにおいて代理デバイスからの認証されたメッセージを受け取るため;(4)該キー導出関数と該共有秘密キーとを使用してローカル代理キーを生成するため;(5)該ローカル代理キーを使用することにより該クライアント・デバイスにおいて該代理デバイスを認証するため、(6)該代理デバイスについての1又はそれより多くの制約を取得するため;(7)該1又はそれより多くの制約に基づいて該ローカル代理キーを生成するため;そして/又は(8)該1又はそれより多くの制約に基づいて該クライアント・デバイスに関係する該代理デバイスの動作を制限するため、に構成された処理回路を含む。
【0026】
クライアント・デバイスにおいて代理キーを認証するための1又はそれより多くの命令を有する機械読み取り可能な媒体が同様に提供され、該命令はプロセッサにより実行されるときに該プロセッサに:(a)同じ共有秘密キーを有する該クライアント・デバイスとの通信を認証するためにホスト・デバイスにより使用されることが可能である共有秘密キーを取得すること;(b)該クライアント・デバイスと該ホスト・デバイスとの両方に既知のキー導出関数を取得すること;該クライアント・デバイスにおいて代理デバイスからの認証されたメッセージを受け取ること;(c)該キー導出関数と該共有秘密キーとを使用してローカル代理キーを生成すること;(d)該ローカル代理キーを使用することにより該クライアント・デバイスにおいて該代理デバイスを認証すること、(e)該代理キーについての1又はそれより多くの制約を取得すること;(f)該1又はそれより多くの制約に基づいて該ローカル代理キーを生成すること、そして/又は(g)該1又はそれより多くの制約に基づいて該クライアント・デバイスに関係する該代理デバイスの動作を制限すること、を実行させる。該代理デバイスは、該受け取られた認証メッセージが該ローカル代理キーを使用することにより適正に認証される場合に、認証される。
【詳細な説明】
【0027】
下記の記載では、特定の詳細が、複数の実施形態の十分な理解を与えるために与えられる。しかしながら、実施形態がこれらの具体的な詳細を用いずに実行されることができることは、当業者により理解されるであろう。例えば、回路は、不必要な詳細で実施形態を不明確にしないためにブロック図で示されないことがある。
【0028】
しかも、実施形態がフローチャート、フロー図、構造図、又はブロック図として図示されるプロセスとして記載されることは、注目される。フローチャートが一連のプロセスとして動作を説明することがあるとはいえ、動作の多くは、並列に又は同時に実行されることが可能である。それに加えて、動作の順番は、並べ替えられることができる。あるプロセスは、その動作が完了するときに終了される。プロセスは、方法、機能、サブルーチン、サブプログラム、等に対応することができる。プロセスが機能に対応するとき、その終了は、その機能が呼び出し機能又は主機能に戻ることに対応する。
【0029】
その上、記憶媒体は、データを記憶するための1又はそれより多くのデバイスを表すことができ、読み出し専用メモリ(read only memory)(ROM)、ランダム・アクセス・メモリ(random access memory)(RAM)、磁気ディスク記憶媒体、光学的記憶媒体、フラッシュ・メモリ・デバイス及び/又は情報を記憶するための別の“機械読み取り可能な媒体”を含む。用語“機械読み取り可能な媒体”は、携帯型記憶デバイス又は固定式記憶デバイス、光記憶デバイス、無線チャネル及び(複数の)命令及び/又はデータを記憶することか、包含することか、又は搬送することが可能な各種のその他の媒体、を含むが、これらに限定されることはない。
【0030】
さらに、複数の実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、又はこれらの任意の組み合わせにより与えられることができる。ソフトウェア、ファームウェア、ミドルウェア、又はマイクロコードにおいて与えられるとき、必要なタスクを遂行するためのプログラム・コード又はコード・セグメントは、記憶媒体、又は他の記憶手段のような機械読み取り可能な媒体中に記憶されることができる。プロセッサは、必要なタスクを実行することができる。コード・セグメントは、手順、機能、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェア・パッケージ、クラス、又は複数の命令、データ構造、又はプログラム・ステートメントの組み合わせを表すことができる。コード・セグメントは、情報、データ、主張(argument)、パラメータ、又はメモリ・コンテントを渡すことそして/又は受け取ることにより別のコード・セグメント又はハードウェア回路に接続されることができる。情報、主張、パラメータ、データ、及びその他は、他のものの中でメモリ分割方式、メッセージ伝達方式(passing)、トークン伝達方式、及びネットワー伝送を含む適当な手段を介して渡されるか、転送されるか、又は伝送されることができる。
【0031】
下記の記述では、ある種の用語は、1又はそれより多くのある種の特徴を説明するために使用される。用語“キー”(例えば、代理キー、秘密キー、制約されたキー、等)は、証明書(certificate)、識別子、暗号、若しくは別のタイプの数字、アルファベットと数字、又はシンボルを呼ぶ。
【0032】
1つの特徴は、対称キー暗号化方式を提供し、そこでは第3パーティ(代理人)は、第1パーティ(ホスト)によって代理キーを与えられ、その第1パーティ(ホスト)は第2パーティ(クライアント)と安全に通信するために使用することが可能である。代理キーは、その機能及び使用において制約されることがある。例えば、制約された代理キーは、特定の時間の区切りに制限されることがあり、そのあいだ第3パーティ(代理人)は第1パーティ(ホスト)の代わりに代理人として動作することができる。別の例では、制約された代理キーは、その第3パーティ(代理人)が送ることができるあるタイプのメッセージに制限されることがある。第3パーティ(代理人)と第2パーティ(クライアント)との間の全ての通信は、暗号化及び/又は認証のために使用される代理キーにより安全を保つ。さらに、1つのインプリメンテーションでは、代理キーは、第3パーティ(代理人)が第1パーティ(ホスト)によって既に認定されていることを第2パーティ(クライアント)に確信させるために十分な情報を含む。最終的に、秘密キーは、第1パーティ(ホスト)と第2パーティ(クライアント)とによって知られ、そして代理キーを生成するためにそして認証するために使用される。しかしながら、秘密キーは、第3パーティ(代理人)に知られず、その第3パーティは第1パーティ(ホスト)によりそれに与えられた制約を越えることが不可能である。
【0033】
図1と図2は、代理キーが別々のデバイスによって生成されそして認証されることが可能である機密保護方式を説明する。動作の1つのモードでは、ホスト・デバイスA102とクライアント・デバイスB104は、(複数の)暗号キー(例えば、非対称キー又は対称キー)を使用して安全な通信リンク108を設定し、そこでは共有秘密キーKは、ホスト・デバイスA102とクライアント・デバイスB104との両者によって知られる。あるインプリメンテーションでは、ホスト・デバイスA102は、安全な通信リンク108を経由して送るコマンドによりクライアント・デバイスB104の動作を制御することができる。共有秘密キーKは、クライアント・デバイスB104との通信に関係付けられることができ、そして安全な通信リンク108を経由するホスト・デバイスA102とクライアント・デバイスB104との間のメッセージを暗号化するため、安全にするため、そして/又は認証するために使用されることができる。他のデバイスと通信するとき、ホスト・デバイスA102は、異なる共有秘密キーを使用することができる。
【0034】
時折、代理デバイスC106がデバイスB104と通信する必要がある事情があり得る。共有秘密キーKはデバイスC106に明らかにさるべきでないが、クライアント・デバイスB104と代理デバイスC106との間の通信は、少なくとも安全にされそして認証されるべきである。この目的のために、ホスト・デバイスA102は、デバイスB104と通信するために、代理デバイスC106を認定する代理キーK’を代理デバイスC106に与えることができる。図2に説明されるように、ホスト・デバイスA102とクライアント・デバイスB104との間の安全な通信リンク108がないとき、ネットワーク・サービスの中断の期間のケースであるので、代理デバイスC106は、ホスト・デバイスA102からの代理キー110を使用して第2の安全な通信リンク202を設定することができる。秘密キーKを明らかにすることなくクライアント・デバイスB104へのアクセスを代理デバイスC106に与えるために、ホスト・デバイスA102は、秘密キーKから代理キーK’を生成し、そして代理デバイスC106に代理キーK’を送る。代理キーK’は、デバイスC106とデバイスB104との間のメッセージを暗号化するためそして/又は認証するために使用される。デバイスB102に代理キーK’を与えることによって、デバイスC106は、例えば、デバイスB104の動作を制御することができる。第2の通信リンク202は、第1の通信リンク108が動作しない場合でさえも動作する。
【0035】
代理デバイスC106がクライアント・デバイスB104に影響を及ぼすことができる制御を限定するために、暗号化関数、同様にキー導出関数(KDF:key derivation function)とも呼ばれる、は、デバイスA102とB104との間で事前に取り決められる。すなわち、KDFは、それらの共有秘密キー(K)から代理キー又は制約されたキーを導出するために使用されることができる。ある複数の実施形態では、デバイスA102とB104は、特定のKDFを事前に取り決めることができる。別のインプリメンテーションでは、複数のそのような暗号化関数は、デバイスA102とデバイスB104との両者に既知である。KDFは、代理キー又は制約されたキーに負わせるべき共有秘密Kといずれかの制約とを入力として選ぶ。ホスト・デバイスA102が代理デバイスC106の代理能力を許可しようと望むときに、それは、KDF(K)を使用して新たな代理キー(K’)110を生成し、そしてそれを代理デバイスC106に配信する。この代理キーK’110は、クライアント・デバイスB104とホスト・デバイスC106との間の通信を安全にするためそして/又は認証するためにここで使用されることができる。
【0036】
代理デバイスC106から来るメッセージを適正に認証する(例えば、逆暗号化する)ために、クライアント・デバイスB104は、代理キーが使用されようとしていることを通知される。これを実現するための1つの方法は、代理キーの使用を信号で送信するためにメッセージ毎に1ビット・フラッグを使用することである。クライアント・デバイスB104は、KDF及びその秘密キーKを使用することができ、代理キーK’のローカル版を生成し、それはその後、代理デバイスC106から受け取られる認証されたメッセージを認証するために使用される。もしメッセージが適正に認証される(例えば、逆暗号化される、等)場合には、デバイスC106は認証され、そして安全な通信が、代理キーK’を使用してクライアント・デバイスB104と代理デバイスC106との間で実行されることができる。
【0037】
クライアント・デバイスB104がホスト・デバイスA102と同じ代理キーを独自に生成するために、デバイスB104は、ホスト・デバイスA102が代理キーK’にどの制約を置いたかを知る必要がある。1つの実施形態では、ホスト・デバイスA102によって代理キーK’に課せられた制約のリストは、代理デバイスC106により送られるメッセージ毎に添えられることができる。別の1つの実施形態では、セッションの概念が導入されることができ、そして制約のリストは、セッション当り1回(好ましくは初めに)代理デバイスC106により送られることができる。さらに別の1つの実施形態では、制約は、事前にホスト・デバイスA102とクライアント・デバイスB104により取り決められることができる。例えば、ホスト・デバイスA102とクライアント・デバイスB104は、全ての代理キーが正確に1日、例えば、真夜中の12時から12時まで、のあいだ有効であることを事前に合意することができる。そのようなケースでは、KDFへの入力として使用される制約は、その代理キーが有効である日付であり得る。クライアント・デバイスB104が代理キーによって認証される又は保護されるメッセージを受け取るときはいつでも、それは、現在の日付を使用して代理キーを再生する。
【0038】
1つの例では、代理デバイスC106を使用することによって、ホスト・デバイスA102は、代理デバイスC106に対して利用可能なアクセス権利の制御を維持しつつ、代理デバイスC106に権限を委任することが可能である。その上、代理キーK’の発生元として、ホスト・デバイスA102は、代理デバイスC106による通信を傍受する又はモニタすることができる。
【0039】
1つの実施形態では、暗号化関数すなわちキー導出関数は、ブロック暗号法(block cipher)であり得て、そこでは共有秘密Kが、キー入力として使用され、そして代理制約(及び/又はその他のパラメータ)が、ブロック暗号法への平文入力として使用される。1つのインプリメンテーションでは、1又はそれより多くのビットは、代理メッセージで(例えば、クライアント・デバイスB104へのメッセージ毎に、又はクライアント・デバイスB104との各通信セッションの始めにおいてのいずれかで)送られ、キーが代理キー又は制約されたキーであることを指示する。別の1つの実施形態では、代理ビットが省略されることがあり、そのケースでは、各受け取ったメッセージに対して、クライアント・デバイスB104は、それを2回、ビットが設定されているとして1回、そして設定されていないとして1回、処理しようと試み、そして認証を通過する1つの版を選択する。
【0040】
別のインプリメンテーションでは、ホスト・デバイスA102は、複数の別の(有線接続された又は無線通信の)デバイスと通信できる。そのようなケースでは、ホスト・デバイスA102(例えば、ホスト・デバイス)は、複数の秘密キーKiを記憶し、各秘密キーKiは、複数の有線接続された又は無線通信するデバイスの1つに対応し、そして同様に記憶される。ホスト・デバイスA102は、第1デバイスMiに対応する秘密キーKiから代理キーKi’を生成し、そしてその代理キーKi’を代理デバイス(例えば、代理デバイスC106)に送る。代理キーKi’は、代理デバイスと第1デバイスMi(例えば、クライアント・デバイスB104)との間のメッセージを暗号化するためにそして/又は認証するために使用されることができる。同様に、1より多くの代理デバイスがあることがあり、そのケースでは、ホスト・デバイスA102(例えば、ホスト・デバイス)は、複数の代理デバイスに対して同じ又は異なる代理キーを生成することができる。最終的に、1より多くの代理キー発生元デバイス(例えば、複数のホスト・デバイスA102)があることさえある。
【0041】
様々なインプリメンテーションにおいて、通信リンク108、112及び/又は202は、無線であり得るそして/又は非無線であり得る。
【0042】
図3は、安全かつ制限された代理キーを生成するため、配送するため、そして認証するための方法を説明する。ホスト・デバイスA302とクライアント・デバイスB304は、キー暗号方式を使用する安全なそして/又は認証された通信手段を設定している。例えば、対称キー暗号方式は、共有秘密キーがホスト・デバイスAとクライアント・デバイスB304との両方に既知である場合に実行されることができる。1つの動作のモードでは、デバイスA302とB304は、その2つのデバイスの間の通信を安全にするためそして認証するために共有秘密キーを使用することができる。それに加えて、キー導出関数(KDF)が、しかも両方のデバイスAとBとに提供される。共有秘密キーとKDFは、ホスト・デバイスA302により使用されることができて、制約された代理キーを生成し308、それは代理デバイスC306に送られる310。例えば、ホスト・デバイスA302は、代理キー発生元として動作し、代理デバイスC306は、代理キーを受け取り、そしてホスト・デバイスAの代理人として動作し、そしてクライアント・デバイスB304は、認証者として動作し、それは代理デバイスC306と安全な通信を設定する前に代理キーを認証する。
【0043】
代理デバイスC306は、制約された代理キー312を記憶し、制約された代理キーを有するメッセージを認証し、そしてデバイスB304と通信リンクを設定するために認証されたメッセージを送る316。1つのインプリメンテーションでは、クライアント・デバイスB304は、受け取ったキーが代理キーであるかどうかを確認し318、そしてもしそうであれば、自身のKDFを使用してローカル代理キーを独自に生成する320。これは、例えば、認証されたメッセージ316の特定のビット又は受け取られたキーが設定されているかどうかを(それによって受け取ったキーが代理キーであることを示していることを)確認することによって行われることができる。クライアント・デバイスB304は、1又はそれより多くの非公開キーそして/又は公開キー、パラメータそして/又はローカル代理キーを生成するための制約とともに、KDFを使用することができる。
【0044】
クライアント・デバイスB304は、次に代理デバイスを認証する322。例えば、代理デバイスC306のそのような認証は、ローカルに生成された制約された代理キーを用いて受け取った認証メッセージを逆暗号化することを含むことができる。もしそのメッセージが適正に認証されている場合には、代理デバイスC306が同様に同じ制約された代理キーを有する(そしてそれゆえ認証されている)ことを意味する。安全な通信リンクは、次に、クライアント・デバイスB304とホスト・デバイスC306との間で設定されることができる324。受け取った認証メッセージの適正な認証は、例えば、クライアント・デバイスB304が1又はそれより多くの受け取ったパラメータを1又はそれより多くのパラメータと比較してそれらが同じであるかどうかを判断することによって確かめられることができる。
【0045】
クライアント・デバイスB304は、デバイスA302によって事前に取り決められたように、又は代理デバイスC306から受け取った代理制約情報によって規定されるように、代理キーの使用を制限することができる。例えば、クライアント・デバイスB304は、ある一定の長さの時間の後で、代理デバイスC306からの代理キーを失効させる又は無効にすることができる326。これは、ホスト・デバイスA302とクライアント・デバイスB304とが、同期された時計及び/又は日付を有するときに実現されることができ、その時計及び/又は日付は制約された代理キーを失効させるために使用される又は制約された代理キーを生成するためのパラメータとして使用される。例えば、もし制約された代理キーが、2006年1月1日の日付を使用してホスト・デバイスA302によって生成される場合には、認証のためにクライアント・デバイスBによって生成されるローカルな制約された代理キーは、2006年1月1日に符合するだけである。その日付の後で、(クライアント・デバイスB304において生成された)ローカルな制約された代理キーは、受け取られる制約された代理キーと最早符合しない。この特徴は、ホスト・デバイスA302によって使用されることができ、特定の日(例えば、代理デバイスC306がクライアント・デバイスB304と通信することを必要とすると予想される日)にだけその制約された代理キーを有効にさせることができる。
【0046】
図4は、代理キー発生元ホスト・デバイス(例えば、図3のホスト・デバイスA302)の1つの実施形態を説明するブロック図である。キー発生元デバイス402は、通信インターフェース404を含み、それを通して別のデバイスと安全な通信リンクを設定することができる。処理回路406は、キー発生元デバイス402への及び/又はそれからの通信を安全にするためにキー暗号法(例えば、対称キー又は非対称キー)を使用するように構成される。記憶デバイス408は、(例えば、対称暗号化方式のための)共有秘密キー及び代理キー暗号化関数又はキー導出関数(KDF)を記憶することができ、その関数は、事前に(例えば、独自の配送チャネルを経由して)別の安全なデバイスと共有されることができる。キー発生元デバイス402は、共有秘密キーを使用してメッセージを認証するために、そしてその共有秘密キーと代理キー導出関数とに基づいて代理キーを生成するために構成されることができる。
【0047】
図5は、キー発生元ホスト・デバイス402上で代理キーを生成しそして別のデバイスに配送するようになっている方法を説明する。同じ共有秘密キーを有するクライアント・デバイス(例えば、図12のキー認証デバイス1202)との安全な通信のために使用されることが可能な共有秘密キーが、得られる502。暗号化関数又はキー導出関数(KDF)が、得られ、それは代理キーを作り出すためにそして認証するためにホスト・デバイスにより使用されることが可能である、ここで、その暗号化関数は、同様にクライアント・デバイスにも既知である504。キー導出関数は、別の値を得るために値をランダム化する又は混合するために使用するハッシュ関数又は別のタイプの関数であり得る。代りの実施形態では、第1の一方向関数は、代理キーを作り出すために代理発生元デバイス402により得られ、一方で、別の第2の一方向関数が認証のためにクライアント・デバイスによって使用される。
【0048】
代理キーについての1又はそれより多くのパラメータ又は制約は、キー発生元ホスト・デバイス506により同様に規定される508。例えば、制約は、代理デバイスがクライアント・デバイスに送ることができるメッセージ又はコマンドのタイプ、若しくは代理キーが有効である時間の長さを制限することができる。これらの制約は、同様にクライアント・デバイスにも既知である。ホスト・デバイスは、キー導出関数と制約とに基づいて代理キーを生成する508。例えば、キー発生元ホスト・デバイス402は、制約された代理キーを取得するために、キー導出関数のための入力として共有秘密キー、現在の日付/時刻、及び/又は他のパラメータ/制約を使用することができる。代理キーは、次に代理デバイスに送られ、そこでは代理デバイスは、クライアント・デバイスとの通信を認証するために使用されることができる510。
【0049】
図6は、代理キー発生元ホスト・デバイス602(例えば、ホスト・デバイス)の別の一例を図示し、記憶媒体604、ユーザ・インターフェース606、パラメータ設定モジュール608、キー発生器610、出力モジュール612、及び暗号化モジュール614を含む。記憶媒体604は、クライアント・デバイスに関係する秘密キーKを記憶するように構成される。1つの特徴によれば、認証モジュール614は、メッセージを認証するために秘密キーKを使用することができ、そして出力モジュール612は、関係するクライアント・デバイスに認証されたメッセージを送信することができる。
【0050】
別の1つの特徴では、キー発生元ホスト・デバイス602は、秘密キーKに(少なくとも部分的に)基づいて代理キーKi’を生成する。代理キーKi’は、制限又は制約を有することができ、それはユーザ・インターフェース606を経由して選択されることができる又は入力されることができる、そしてパラメータは選択された制約に基づいてパラメータ設定モジュール608を通して設定されることができる。選択された制約は、例えば、あるレベルの権限又は限定された特権を認めるような機能において、及び/又は時間のある区切りの間に制約された代理キーが使用されることを認めるような時間において、制約された代理キーK’の使用を制限することができる。したがって、パラメータ/制約は、制約された代理キーの使用の制限及び/又はアクセスの制限を指示することができる。パラメータは、同様にタイムスタンプを備えることができ、それはその制約された代理キーを用いて暗号化されたメッセージがそのあいだ有効である時間の区切りを示す。
【0051】
キー発生器610は、パラメータと秘密キーKとの関数として制約された代理キーK’を生成する。キー発生器610は、キー導出関数とともに秘密キーKを使用してパラメータ/制約を暗号化することにより制約された代理キーK’を生成することができる。もし、パラメータがタイムスタンプを含む場合には、制約された代理キーK’は、次のように秘密キーKを使用してタイムスタンプを暗号化することによって生成されることができる:
K’=EK(Ts,Te) [1]
ここで、Eは秘密キーKに基づく暗号化関数又はキー導出関数であり、Tsは有効期間の始まりを示し、そしてTeは有効期間の終わりを示す。式1において、例えば、ハッシュ関数のような、任意の公知の暗号化関数又はキー導出関数が使用されることができる。あるインプリメンテーションでは、1より多くの暗号化関数/キー導出関数が使用されることができる。例えば、複数の暗号化関数のうちの1つが、制約された代理キーを生成するために使用されることができる。そのようなケースでは、どの(複数の)暗号化関数又は(複数の)キー導出関数がパラメータ/制約を暗号化するために使用されたかを指定するデータが、送信されることができる。
【0052】
制約された代理キーK’は、次に出力モジュール612を経由して第3エンティティ又は代理デバイスに送られる。制約された代理キーK’を生成するために使用するパラメータ/制約は、同様に出力モジュール612を経由して代理デバイスに送られる。制約された代理キーK’及び/又はパラメータは、非無線通信で又は無線通信で送信されることができる。それに加えて、制約された代理キーK’は、代理デバイスに送信することに先立って暗号化されることができる。別の特徴は、制約された代理キーが既に生成されていることを(受信機に)知らせる標識子を出力モジュール612を経由して送信することを含むことができる。
【0053】
キー発生元ホスト・デバイス602は一例の説明であり、そして他のエレメントを制御するために構成されたコントローラ及び/又は上に説明された動作の一部を含むことができる様々な機能を実行するように構成されたプロセッサのような追加のエレメントを含むことができる。複数のエレメントのうちの1つ又は組み合わせは、キー発生元ホスト・デバイス602の動作に影響を与えることなく事前に取り決められることができる。複数のエレメントのうちの1つ又は組み合わせは、同様に、キー発生元ホスト・デバイス602の動作に影響を与えることなく1つのエレメントへと統合されることができる。
【0054】
図7は、代理キーを生成するためにキー発生元ホスト・デバイス上で動作されることができる方法を説明する。秘密キーが、記憶され702、そしてパラメータ/制約は、選択された制約に基づいて設定される704。制約された代理キーは、次に、キー導出関数を使用して生成され706、そこにおいて、制約された代理キーは、パラメータ/制約及び秘密キーの関数である。制約された代理キーは、キー導出関数を使用して生成されることができて、秘密キーを使用してパラメータ/制約を暗号化する。あるインプリメンテーションでは、ホスト・デバイスは、複数の暗号化関数又はキー導出関数の中からそのキー導出関数を選択することができる。そのようなケースでは、本方法は、代理キーを生成するために使用する複数の暗号化関数又はキー導出関数のうちの1つを指定するデータを送信することを含むことができる708。
【0055】
制約された代理キー及び/又はパラメータ/制約は、第2のデバイス(例えば、代理デバイス)に送られる710及び712。制約された代理キーは、第2のデバイスに非無線通信で又は無線通信で送信されることができる。制約された代理キーは、送信の前に暗号化されることができる。パラメータ/制約は、制約された代理キーがその間有効である時間の区切りを指示するタイムスタンプを備えることができる。パラメータ/制約は、しかも制約された代理キーの使用制限を指示することができる。
【0056】
本方法は、関係するキーが制約された代理キーであることを受信機に知らせる標識子(例えば、メッセージ・フラッグ、等)を送信すること714を同様に含むことができる。本方法は、秘密キーを使用してメッセージを認証すること716、そして認証されたメッセージを送信すること718を追加として含むことができる。
【0057】
図8は、代理デバイス(例えば、図3の代理デバイスC306)の1つの実施形態を説明するブロック図である。代理デバイス802は、通信インターフェース804を含み、それを通して別のデバイスと通信リンクを設定することができる。処理回路806は、代理デバイス802へのそして/又はそれからの通信を安全にするための(複数の)暗号キー(例えば、対称キー又は非対称キー)を使用するように構成される。記憶デバイス808は、キー発生元ホスト・デバイスから受け取る代理キーを記憶することができ、その結果、それはクライアント・デバイスとの通信を認証するために使用されることができる。
【0058】
図9は、キーを取得するためそしてクライアント・デバイスとの通信を認証するためにそのキーを使用するために代理デバイス802上で動作するようになっている方法を説明する。代理キーは、キー発生元ホスト・デバイスから得られる902。この代理キーは、キー発生元ホスト・デバイスにより送られることができる又は代理デバイスにより要求されることができる。あるインプリメンテーションでは、代理キーは、暗号化関数又はキー導出関数と秘密キーとを使用してキー・ホスト発生元デバイスによって生成されることができる。代理キーは、認証クライアント・デバイスとの今後の使用のために(代理デバイスにより)記憶されることができ、キー発生元ホスト・デバイスは、そのクライアント・デバイスとキー導出関数及び/又は秘密キーを既に共有している904。メッセージは、代理キーを使用して認証される906。認証されたメッセージは、認証クライアント・デバイスに送られる908。あるインプリメンテーションでは、代理デバイスは、キー発生元ホスト・デバイスによりその代理デバイスに課せられた1又はそれより多くの制約を手に入れることができる910。これらの制約は、代理キーと共に、又はその一部として、キー発生元ホスト・デバイスにより送られることができる。1又はそれより多くの制約は、認証クライアント・デバイスに伝えられる912。代わりのインプリメンテーションでは、代理キーについての制約は、代理キー発生元ホスト・デバイス(例えば、図3のホスト・デバイスA302)と認証クライアント・デバイス(例えば、図3のクライアント・デバイスB304)との間で代わりに事前に取り決められることができる。
【0059】
別の特徴によれば、代理デバイスは、クライアント・デバイスから暗号化されたメッセージを受け取ることができる。それは次に、そのクライアント・デバイスからのメッセージを逆暗号化するために代理キーを使用することによりクライアント・デバイスを認証する。
【0060】
図10は、別の代理デバイス1000の一例を説明する。代理デバイス1000は、パラメータ受信機1002、キー受信機1004、暗号化モジュール1006及び出力モジュール1008を備える。パラメータ受信機1002は、選択された制約を指示するパラメータを受け取るように構成される。上に説明したように、選択された制約は、例えば、代理キーK’の使用を機能において及び/又は時間において制限することができる。したがって、パラメータ/制約は、制約された代理キーK’の使用制限を指示することができる。パラメータ/制約は、しかも制約された代理キーを用いて暗号化されたメッセージがその間有効である時間の区切りを指示するタイムスタンプを備えることができる。キー受信機1004は、キー発生元ホスト・デバイスから制約された代理キーK’を受け取るように構成される。制約された代理キーK’は、パラメータ/制約及び秘密キーKに関係する。制約されたキーは、暗号化関数への入力としてパラメータ/制約と秘密キーKとを使用することにより生成されることができる。例えば、制約された代理キーK’は、上記の式1に基づいて生成されることができる。制約された代理キーK’及び/又はパラメータは、非無線通信で又は無線通信で受信されることができる。それに加えて、制約された代理キーK’は、暗号化された形式で受け取られることができる。そのようなケースでは、暗号化された制約代理キーは、制約された代理キーK’を得るために逆暗号化される。
【0061】
認証モジュール1008は、制約された代理キーK’を使用してメッセージを認証し、暗号化し、そして/又は安全にする、そして出力モジュール1006は、認証されたメッセージを送る。ここで、メッセージは、データ及び受け取ったパラメータ/制約を含むことができる。出力モジュール1006は、同様に、暗号化することなく受け取ったパラメータ/制約を送ることもできる。別の態様は、出力モジュール1006を経由して標識子を送ることができ、その出力モジュール1006は制約されたキーが使用されようとしていることを(例えば、メッセージがそれを用いて認証されるキーが制約されたキーであることを)受け取るクライアント・デバイスに知らせる。
【0062】
受け取ったパラメータ/制約と同様に制約された代理キーK’を使用して認証された(例えば、暗号化された)パラメータ/制約を送ることによって、メッセージ認証コード(MAC:message authentication code)が、作り出される。したがって、クライアント・デバイス(例えば、認証デバイス)は、受け取ったパラメータをその同じ受け取ったパラメータに基づいて生成されるローカルに生成された制約代理キーK’を使用して再生したパラメータと比較することにより、代理デバイス又は第3エンティティから受け取ったメッセージの有効性、真正性、及び/又は完全性を判断することができる。
【0063】
代理デバイス1000は、1つの例示であり、そして追加のエレメントを含むことができ、例えば、代理デバイス1000の他のエレメントを制御するために構成されたコントローラ、ユーザ入力を受け取るために構成されたユーザ・インターフェース、記憶媒体、及び/又は上に説明した動作の一部を含むことができる様々な機能を実行するために構成されたプロセッサを含むことができる。エレメントのうちの1つ又はそれらの組み合わせは、代理デバイス1000の動作に影響を及ぼすことなく再配置される又は組み合わせられることができる。
【0064】
図11は、クライアント・デバイスとの通信を認証する際に代理デバイスによる使用のための別の方法を説明する。選択された制約を示すパラメータが受け取られ1102、そして制約された代理キーが受け取られる1104、ここにおいて、その制約された代理キーは、制約されたパラメータ/制約及び秘密キーに関係する。メッセージは、制約された代理キーを使用して認証される(例えば、暗号化される又は安全にされる)1106、ここにおいて、メッセージは、データ及びパラメータを含むことができる。認証されたメッセージと受け取られた制約パラメータは、その後、送られる又は送信される1108と1110。受け取られた制約された代理キーは、秘密キーを使用して制約パラメータを暗号化することにより生成されてきていることがある。制約された代理キーは、非無線通信で又は無線通信で受け取られることができる。制約された代理キーは、暗号化されることができる又はそうでなければ受け取られるときに安全にされることができる。もし暗号化されるならば、本方法は、制約された代理キーを逆暗号化することを含むはずである1112。
【0065】
受け取られたパラメータ/制約は、タイムスタンプを備えることができ、それはメッセージがその間有効である時間の区切りを指示する。パラメータは、制約された代理キーの使用制限を指示することができる。本方法は、しかもキーが制約された代理キーであることをクライアント受信機に知らせる代理標識子、例えば、フラッグ、を送ることを備えることができる1114。
【0066】
図12は、キー認証クライアント・デバイス(例えば、図3のクライアント・デバイスB304)の1つの実施形態を説明するブロック図である。キー認証クライアント・デバイス1202は、通信インターフェース1204を含み、それを経由してそのキー認証クライアント・デバイスは他のデバイス、例えば、キー発生元ホスト・デバイス(例えば、図4のホスト・デバイス402)及び代理デバイス(例えば、図8の代理デバイス802)、との安全な通信リンクを設定することができる。処理回路1206は、(複数の)暗号キー(例えば、対称キー又は非対称キー)を使用するように構成され、キー認証クライアント・デバイスへの及び/又はそれからの通信を認証する。記憶デバイスは、(例えば、対称暗号化方式のための)共有秘密キー及び暗号化関数(例えば、キー導出関数)を記憶することができ、それらは事前に(例えば、独自のそして/又は安全な配送チャネルを経由して)別の安全なデバイス(例えば、キー発生元ホスト・デバイス)と共有されることができる。
【0067】
図13は、安全な通信を確立するためそして/又は代理デバイスを認証するために代理デバイス(第3エンティティ)からの制約されたキーを認証するためそして使用するためにキー認証クライアント・デバイス1202上で動作するようになっている方法を説明する。共有秘密キーは、手に入れられることができ1302、それは同じ共有秘密キーを有するホスト・デバイス(例えば、図4のキー発生元デバイス402)との安全な通信のためにクライアント・デバイス(例えば、認証デバイス)によって使用されることができる。クライアント・デバイスとホスト・デバイスとの両方に既知であるキー導出関数が、手に入れられる1304。共有秘密キー及び/又はキー導出関数は、独自の配送チャネルを介してキー認証クライアント・デバイスに与えられることができる。認証されたメッセージは、代理デバイスから受け取られる1306、ここにおいて、そのメッセージは、ホスト・デバイスにより最初に生成された代理キーを使用して暗号化されていた。クライアント・デバイスは、しかもその代理キーに関係付けられた1又はそれより多くの制約を手に入れることができる1308。制約は、代理デバイスからそして/又はホスト・デバイスから得られることができる。ローカル代理キーは、キー導出関数、1又はそれより多くの制約、及び共有秘密キーを使用してクライアント・デバイスによって生成される1310。代理デバイスは、受け取ったメッセージにローカル代理キーを使用することにより認証される。すなわち、もし代理デバイスがそれを用いてそのメッセージを認証した代理キーとローカルに生成された代理キーとが同じである場合、クライアント・デバイスは、そのメッセージを適正に認証する(例えば、逆暗号化する)。
【0068】
代理デバイスにより実行される動作は、代理キーについての制約にしたがって制限されることがある1316。1つのインプリメンテーションでは、代理キーについての制約は、代理キーとともに受け取られることができる、又はその一部である。代わりのインプリメンテーションでは、代理キーについての制約は、その代わりに、ホスト・デバイス(例えば、代理キー発生元デバイス)とクライアント・デバイス(例えば、代理キー認証デバイス)との間で独自の配送チャネルを介して又はそれらの間の安全な通信リンクを介して事前に取り決められることができる。さらに別の実施形態では、代理キーについての制約は、暗示されることがある。例えば、クライアント・デバイス1202は、異なる通信インターフェース、例えば、代理キー発生元ホスト・デバイスと通信するための主インターフェース、と代理デバイスと通信する副インターフェースとを含むことができる。もし代理キーが副インターフェースを経由して受け取られる場合には、代理認証デバイスは、それが代理キーであると仮定し、したがってそれを認証する。別のタイプの受け取られる制約は、そのあいだ代理キーが有効である時間の区切りを示す1又はそれより多くのタイムスタンプであり得る。
【0069】
図14は、記憶媒体1402、パラメータ受信機1404、メッセージ受信機1406、キー発生器1408、及び認証モジュール1410を具備する一例の(認証)クライアント・デバイス1400を説明する。記憶媒体1402は、秘密キーKを記憶するように構成される。認証モジュール1410は、メッセージ受信機1406を経由して受け取られるメッセージを認証するために(例えば、逆暗号化するために)その秘密キーKを使用することができる。もしその秘密キーKを使用して受け取ったメッセージの認証が失敗する場合には、クライアント・デバイス1400は、次に、受け取ったメッセージを認証するために使用することが可能な制約された代理キーを生成する。あるインプリメンテーションでは、受け取られるメッセージが代理キーを使用して認証されることをクライアント・デバイス1400に知らせる標識子が、受け取られる。したがって、もし受け取られるメッセージが(制約された)代理キーを使用して認証されることをその標識子が指示する場合には、(認証)クライアント・デバイス1400は、指示された制約を使用してローカル代理キーを生成して、受け取られるメッセージを認証しそして受け取られるメッセージのそして/又はそのメッセージの送り手の認証性を検証する。
【0070】
パラメータ受信機1404は、選択された制約を指示するパラメータを受け取る。選択された制約は、例えば、制約された代理キーの使用を機能においてそして/又は時間において制限することができる。パラメータは、制約された代理キーの使用制限を指示することができる。そのパラメータは、その制約された代理キーを用いて暗号化されたメッセージがその期間有効である時間の区切りを示すタイムスタンプを同様に備えることができる。
【0071】
受け取られるメッセージを認証するために、キー発生器1408は、受け取られたパラメータ(すなわち、制約)及び秘密キーKの関数としてローカル代理キーを生成する。キー発生器1408は、図6のキー発生器610に類似の方法でローカル代理キーを生成する。そのように、キー発生器1408は、パラメータ/制約を取り込んでいるキー導出関数(一種の暗号キー)及び秘密キーKを使用することによってローカル代理キーを生成することができる。もしパラメータがタイムスタンプを含む場合には、代理キーは、式[1]におけるようにタイムスタンプを暗号化することによって生成されることができる。インプリメンテーションに応じて、1より多くのキー導出関数が使用されることができる。例えば、複数の暗号化関数のうちの1つが、ローカル制約キーを生成するために使用されることができる。そのようなケースでは、暗号化関数のうちの1つを指定するデータは、クライアント・デバイス1400により受け取られることができる。キー発生器1408は、パラメータ(制約)及び秘密キーを取り込むために指定されたキー導出関数を使用してローカル代理キーを生成することができる。一旦ローカル代理キーが生成されると、認証モジュール1410は、そのローカル代理キーを使用して受け取られるメッセージを認証し、その中のデータ及びパラメータ(制約)を再生するように構成される。
【0072】
クライアント・デバイス1400は、比較モジュール1412をさらに備えることができる。比較モジュール1412は、受け取ったパラメータ(制約)と再生したパラメータ(例えば、認証されたメッセージからの制約)を比較するために構成される。例えば、受け取ったパラメータ(制約)と再生したパラメータ(制約)が符合する場合には、代理デバイスは、認証される。例えば、パラメータがタイムスタンプである場合には、もしメッセージがそのパラメータにより指示される時間の区切り内に受け取られるのであれば、受け取られたメッセージは、認証される。
【0073】
代わりのインプリメンテーションでは、代理キーを生成するために使用するパラメータ(制約)は、クライアント・デバイスにより独自に手に入れられる。例えば、ホスト・デバイスは、事前にパラメータ(制約)を与えることができる。クライアント・デバイスは、次にこれらの制約を使用して、ローカル代理キーを生成しそして代理デバイスを認証する(例えば、代理デバイスから受け取ったメッセージを認証する)。
【0074】
クライアント・デバイス1400は、一例の例示であり、そして追加のエレメント、例えば、クライアント・デバイス1400の他のエレメントを制御するために構成されたコントローラ及び/又は上記の動作の一部を含むことができる様々な機能を実行するために構成されたプロセッサを含むことができる。クライアント・デバイス1400は、しかも電気通信のためのエレメント、同様に無線通信のためのエレメントを含むことができる。複数のエレメントのうちの1つ又はそれらの組み合わせは、クライアント・デバイス1400の動作に影響を与えることなく再配置されることができる。複数のエレメントのうちの1つ又はそれらの組み合わせは、しかもクライアント・デバイス1400の動作に影響を与えることなく1つのエレメントへと統合されることができる。
【0075】
図15は、クライアント・デバイスによる通信を認証するためのさらなる方法を説明する。安全な通信で使用するための秘密キーが、記憶される1502。この秘密キーは、ホスト・デバイスと共有されることができ、そのホスト・デバイスは制約されたキーを代理デバイスに与える。選択された制約を示すパラメータが受け取られ1504、そして制約されたキーを使用して認証されたメッセージが、クライアント・デバイスによって受け取られる1506。そのメッセージは、データ及びパラメータを備えることができる。受け取られるメッセージ1506は、秘密キーを使用して認証されることができる1516。もし受け取られるメッセージの認証が上手くいく場合には1518(例えば、メッセージは適正に逆暗号化される)、認証は完了する。すなわち、そのようなメッセージは、その秘密キーを知る別のデバイスにより認証された。そうでなければ、もし受け取られるメッセージの認証が失敗する場合には1518、制約された代理キーは、メッセージを認証するために1510、キー導出関数、秘密キー及び1又はそれより多くのパラメータ(制約)を使用してローカルに生成される1508。受け取られるメッセージは、ローカルに生成された代理キーを使用して認証され1510、データ及びパラメータを再生する。
【0076】
制約された代理キーは、暗号化関数、例えば、キー導出関数(KDF)を使用することにより受け取ったパラメータ及び秘密キーに基づいて生成されることができる。その方法は、しかも、受け取られるメッセージが(制約された)代理キーを用いて認証されている(例えば、暗号化されている)ことを受け取るクライアント・デバイスに知らせる標識子を受け取ることを含むことができる1512。(制約された)代理キーが受け取られるメッセージを認証するために使用されたことを標識子が示す場合には、制約された代理キーは、その後、秘密キーを用いて(認証を試みることよりはむしろ)直接生成されることができる。標識子は、例えば、フラッグであり得る。本方法は、追加として、複数の暗号化関数のうちの1つを指定しているデータを受け取ることを含むことができる1514。そのようなケースでは、制約された代理キーは、入力としてパラメータと秘密キーとを使用して指示された暗号化関数を使用して生成されることができる。
【0077】
本方法は、受け取ったパラメータと再生されたパラメータ(例えば、受け取られるメッセージから逆暗号化されたもの)とを比較することをさらに含むことができる。もし受け取ったパラメータと再生したパラメータとが符合する場合には、代理デバイスは、認証されることができる。受け取ったパラメータと再生したパラメータは、タイムスタンプを備えることができる。そのタイムスタンプは、メッセージがそのあいだ有効である時間の区切りを指示することができる。もし、メッセージが時間の区切り内に受け取られる場合には、メッセージは、その後、認証されることができる。受け取ったパラメータと再生したパラメータは、制約されたキーの使用制限をさらに示すことができる。
【0078】
図16は、(認証)クライアント・デバイスにより受け取られるメッセージに対して使用されることができるメッセージ・フォーマットを説明する。データ・フォーマットは、認証されたメッセージ・フィールド1110を備えるはずである。データ・フォーマットは、制約されたキーが生成されたかどうかを知らせる標識子のための標識子ビット・フィールド1604を同様に備えることができる。標識子ビットは、1ビット長フラッグであることができ、そこでは、例えば、ビット=0は制約されたキーがまだ生成されていないことを示すはずであり、そしてビット=1は制約されたキーが生成されていることを示すはずである、又はそれらの逆である。データ・フォーマットは、データのためのフィールド1606をさらに含むことができ、そのデータは制約されたキーを生成するために使用した複数の暗号化関数のうちの1つを指定する。このデータ・フィールド1606の長さは、暗号化関数の数に依存することができる。例えば、もし3又は4の暗号化関数がある場合には、このデータ・フィールド1606は、4つの状態、00,01,10と11を有する2ビットであることができ、それぞれが3つの暗号化関数(1つの状態は使用されないはずである)又は4つの暗号化関数のうちの1つに対応する。データ・フィールド1604と1606とは、移動デバイスに通信されるメッセージのヘッダ中に存在し得る。データ・フィールド1602は、クライアント・デバイスに通信されるメッセージのペイロード中に存在し得る。
【0079】
図17は、代理キー発生元デバイスにおいて1つのタイプの暗号化関数(例えば、代理キー導出関数)としてブロック暗号法がどのように使用されることができるかを説明する。ブロック暗号法1702は、秘密キー1704及び1又はそれより多くの制約と認証キー1710(平文テキスト)を受け取って、代理キー1708(暗号文テキスト)を生成する。このインプリメンテーションでは、代理キー発生元ホスト・デバイスは、代理キー1708の一部として代理制約と認証キーとをエンコードする。
【0080】
図18は、代理キー認証クライアント・デバイスにおいて1つのタイプの暗号化関数(例えば、キー導出関数)としてブロック暗号法がどのように使用されることができるかを説明する。ブロック暗号法1802は、秘密キー1804(認証デバイスに予め知られる)と代理デバイスから受け取る代理キー1806(暗号文テキスト)とを使用して、代理制約1808と認証キー1810(平文テキスト)とを手に入れる。認証キー1810は、次に認証デバイスによって使用されることができ、代理キーを送った代理デバイスが代理として動作することを認可されているかどうかを判断する。
【0081】
本明細書中に記載された様々な例が対称キー暗号方式(例えば、共有秘密キー、暗号法ブロック、等)を使用しているが、代理キー方式は、同様に非対称キー暗号方式を使用して実行されることもできる。
【0082】
図1−18に例示された1又はそれより多くの構成要素、ステップ、そして/又は機能は、本発明から乖離することなく単一の構成要素、ステップ、又は機能へと再構成される又は統合されることができる、又は複数の構成要素、ステップ、又は機能に組み込まれることができる。増設のエレメント、構成要素、ステップ、及び/又は機能は、本発明から逸脱することなく同様に追加されることができる。図1,2,3,4,6,8,10,12,14,17及び/又は18に図示された装置、デバイス、及び/又は構成要素は、図3,5,7,9,11,13及び/又は15に説明される1又はそれより多くの方法、フィーチャ、又はステップを実行するように構成されることができる。
【0083】
本明細書中に開示された実施形態に関連して説明された様々な例示的な論理ブロック、モジュール、回路及びアルゴリズムのステップが、電子ハードウェア、コンピュータ・ソフトウェア、又は両者の組み合わせとして与えられることができることを、当業者は、さらに認識するはずである。ハードウェアとソフトウェアのこの互換性を明確に説明するために、様々な例示的な複数の構成要素、ブロック、モジュール、回路、及びステップが、それらの機能性の面から一般的に上に説明されてきている。そのような機能性が、ハードウェア又はソフトウェアとして与えられるかどうかは、特定のアプリケーション及びシステム全体に課せられた設計の制約に依存する。
【0084】
上記の複数の実施形態が単に例であり、そして本発明を制限するものとして解釈されるべきでないことを、注意すべきである。複数の実施形態の説明は、例示であるように意図され、そして特許請求の範囲を限定しないように意図されている。その意味で、本教示は、別のタイプの装置に容易に適用されることができ、そして多くの代案、修正、及び変形が当業者に明白である。
【図面の簡単な説明】
【0085】
【図1】図1は、代理キーが別々のデバイスによって生成されそして認証されることが可能である機密保護方式を説明する。
【図2】図2は、代理キーが別々のデバイスによって生成されそして認証されることが可能である機密保護方式を説明する。
【図3】図3は、安全かつ制限された代理キーを生成するため、配布するため、そして認証するための方法を説明する。
【図4】図4は、代理キー発生元ホスト・デバイスの1つの実施形態を説明するブロック図である。
【図5】図5は、代理発生元ホスト・デバイス上で代理キーを生成しそして別のデバイスに配送するようになっている方法を説明する。
【図6】図6は、代理キー発生元ホスト・デバイスの別の一例を説明する。
【図7】図7は、代理キーを生成するためにホスト・デバイス上で動作されることができる方法を説明する。
【図8】図8は、代理デバイスの1つの実施形態を説明するブロック図である。
【図9】図9は、代理キーを取得するためそして別のデバイスとの通信を認証するためにそれを使用するために代理デバイス上で動作するようになっている方法を説明する。
【図10】図10は、別の代理デバイスの一例を説明する。
【図11】図11は、クライアント・デバイスとの通信を認証する際に代理デバイスによる使用のための別の方法を説明する。
【図12】図12は、キー認証クライアント・デバイスの1つの実施形態を説明するブロック図である。
【図13】図13は、安全な通信を確立するためそして/又は代理デバイスを認証するために代理デバイスからの制約されたキーを認証するためそして使用するためにキー認証クライアント・デバイス上で動作するようになっている方法を説明する。
【図14】図14は、記憶媒体、パラメータ受信機、メッセージ受信機、キー発生器、及び逆暗号化モジュールを具備する一例のクライアント・デバイスを説明する。
【図15】図15は、クライアント・デバイスによる通信を認証するためのさらなる方法を説明する。
【図16】図16は、(認証)クライアント・デバイスによって受け取られるメッセージに対して使用されることができるメッセージ・フォーマットを説明する。
【図17】図17は、ブロック暗号法が代理キー発生デバイスにおいて1つのタイプの代理キー導出関数としてどのように使用されることができるかを説明する。
【図18】図18は、ブロック暗号法が代理キー認証デバイスにおいて1つのタイプの代理キー導出関数としてどのように使用されることができるかを説明する。
【関連文献】
【0001】
[米国特許法35§119による優先権の主張]
特許に関する本出願は、米国特許仮出願番号第60/722,185号、名称“制約された暗号キー(Constrained Cryptographic Keys)”、2005年9月29日出願、及び米国特許仮出願番号第60/761,476号、名称“代理人による認証(Authentication By Proxy)”、2006年1月24日出願、に優先権を主張し、2つの仮出願は、本出願の譲受人に譲渡され、そして本明細書中に引用によってその全体が取り込まれている。
【技術分野】
【0002】
様々な実施形態は、安全な通信に関係し、特に、代理デバイスを介した2つのパーティ間の安全な通信を可能にする制約された暗号キーに関係する。
【背景技術】
【0003】
現在のところ、2つのパーティ間の安全にされた通信は、共有された秘密の使用によって多くの場合達成される。この共有の秘密は、2つのパーティがその共有の秘密に基づいた暗号化を使用することによりそれらの通信(例えば、データ・パケット、メッセージ、等)のコンテントを非公開に保つことを可能にする。それに加えて、共有の秘密は、通信が真に要求された送り手から来たことそして搬送中に変更されなかったことをあるパーティが認証することを可能にする。
【0004】
ある状況では、直接のそして安全な通信リンクは、2つのパーティ間で設定できないことがある。例えば、第1デバイスと第2デバイスとの間の安全な通信リンクが失われる又は切断されるとき、第3デバイスは、第2デバイスの問題解決をすること又は役に立つことを必要とすることがある。第2デバイスと通信するために、第3デバイス(例えば、フィールド技術者、等)は、第2デバイスと安全なリンクを確立する必要があるはずである。
【0005】
公開キー暗号化(非対称キー暗号化)が第1パーティと第2パーティとの間で使用されるアプリケーションでは、認定階層(certificate hierarchy)は、第1パーティと第2パーティとの間で代理として動作する第3パーティを介してこの問題を解決するために多くの場合に使用される。第1パーティは、(一般に第3パーティの公開キーを第1パーティの非公開キーを用いてディジタル・サインすることによって)第3パーティに代理認定書を発行することができ、それは第3パーティが第1パーティのための代理とし動作することを可能にする。第3パーティは、次に代理認定書とともに自身の公開キーを第2パーティに提示することができる。
【0006】
しかしながら、非対称キー暗号化アルゴリズムは、他の暗号法と比較して相対的に計算の費用がかかる。それに加えて、一旦、代理認定書が第3パーティに発行されると、第3パーティが第2パーティから受け取ることができる又はアクセスすることができる情報のタイプを制限すること、若しくは第3パーティが第1パーティの代理人としてどれだけ長く動作することができるかを制限することは、困難である。それゆえ、代理キー暗号アルゴリズムは、計算上の効率が良くそして代理キー発生元が代理キーに制約を与えることを可能にすることが必要とされている。
【発明の開示】
【サマリー】
【0007】
本方法は、クライアント・デバイスと代理デバイスとの間の安全な通信を可能にするために提供される。第1代理キーは、ホスト・デバイスとクライアント・デバイスとに知られている共有秘密キーに基づいてホスト・デバイスにおいて生成される。第1代理キーは、代理デバイスに送られる。第2代理キーは、クライアント・デバイスにおいて生成され、それは代理デバイスを認証するために第2代理キーを使用する。認証アルゴリズムの配布は、ホスト・デバイスとクライアント・デバイスとの間で事前に取り決められることができる。同様に、ホスト・デバイスとクライアント・デバイスとの間の秘密キーの配送も、事前に取り決められることができる。代理デバイスは、第1代理キーと第2代理キーとが同じときに認証されることができる。
【0008】
第1代理キーと第2代理キーは、キー導出関数(KDF:key derivation function)と共有秘密キーとを使用して独自に生成されることができる。KDFは、1又はそれより多くの制約と共有秘密キーとを入力として使用して、第1代理キーと第2代理キーとを取得する。共有秘密キーは、第1代理キーと、1又はそれより多くの制約と、そしてKDFの知識とを用いてのみ再生されることが可能である。
【0009】
本方法は、該ホスト・デバイスにおいて該第1の代理キーに関係する1又はそれより多くの制約を選択することをさらに含むことができ、ここにおいて、該第1の代理キーと該第2の代理キーは、該1又はそれより多くの制約に基づく。該1又はそれより多くの制約は、該代理デバイスから該クライアント・デバイスに送ることができ、ここにおいて、該クライアント・デバイスは、該制約を該第1の代理キーに適用する。あるいは、該1又はそれより多くの制約は、該ホスト・デバイスから該クライアント・デバイスに送られ、ここにおいて、該クライアント・デバイスは、該制約を該第2の代理キーに適用する。
【0010】
標識子は、代理キーがメッセージを安全にするために使用されようとしていることを該クライアント・デバイスに示すために、該代理デバイスから該クライアント・デバイスに送る該メッセージ中に設定されることができる。該第1の代理キーを導出するために使用される1又はそれより多くの制約は、該ホスト・デバイスにおいて定められることができ、そして、該クライアント・デバイスに伝達されることができる。該クライアント・デバイスの動作は、該1又はそれより多くの制約にしたがって該代理デバイスとの関係で制限されることがある。
【0011】
別の方法が、ホスト・デバイス上で代理キーを生成するために提供される。共有秘密キーは、取得され、そして、同じ共有秘密キーを有するクライアント・デバイスとの通信を安全にするために使用される。第1のキー導出関数は、同様に取得され、ここにおいて、該第1のキー導出関数は、該クライアント・デバイスに既知の第2のキー導出関数に関係する。代理キーは、該第1のキー導出関数と該共有秘密キーとに基づいて生成される。該代理キーは、代理デバイスに提供され、ここにおいて、該代理デバイスは、該クライアント・デバイスとの通信を認証するために該代理キーを使用することが可能である。該代理キーについての1又はそれより多くの制約は、該代理キーを生成する前に定められることができる。これらの制約は、該代理キーを生成するために使用され、そして該代理デバイスに送られる。該1又はそれより多くの制約は、該クライアント・デバイスに送られる。該代理キーを生成することは、該代理キーを取得するために該共有秘密キーとともに該第1のキー導出関数に対するパラメータとして1又はそれより多くの制約を使用することを含む。
【0012】
該共有秘密キーは、該ホスト・デバイスと該クライアント・デバイスとの間の対称キー・セキュリティ方式において使用されることができる。該第1のキー導出関数は、暗号化ブロック暗号法であることができる。
【0013】
本方法は、複数の暗号化関数を記憶すること、及び該複数の暗号化関数の中から該第1のキー導出関数を選択することを同様に含む。データは、送信されることができ、複数のキー導出関数のうちの1つを指定する。該1又はそれより多くの制約は、該代理キーがそのあいだ有効である期間を指示するタイムスタンプを含むことができる。
【0014】
キー発生元ホスト・デバイスが、同様に提供され、(a)他のデバイスと通信するための通信インターフェース;(b)共有秘密キーとキー導出関数とを記憶するための記憶デバイス、ここにおいて、該共有秘密キーとキー導出関数は、両方ともクライアント・デバイスに既知である;及び/又は(c)該通信インターフェース及び該記憶デバイスに接続された処理回路、を含む。該処理回路は、(1)該キー導出関数と共有秘密キーとに基づいて代理キーを生成するため、そして/又は(2)代理デバイスに該代理キーを送るために構成され、ここにおいて、該代理デバイスは、該クライアント・デバイスとの通信を認証するために該代理キーを使用することが可能である。該処理回路は、該代理キーを生成することの前に該代理キーについての1又はそれより多くの制約を定めるためにさら構成されることができる。該代理キーは、該1又はそれより多くの制約に基づいて生成されることができる。該制約は、該クライアント・デバイスと事前に取り決められることができる、そして/又は該代理デバイスに送られることができる。該制約のうちの1つは、ある長さの時間の後で該代理キーを失効させることができる。
【0015】
該キー導出関数は、暗号化ブロック暗号法であることができる。該記憶デバイスは、複数の暗号化関数を記憶し、そして該処理回路は、該複数の暗号化関数の中から該キー導出関数を選択するために構成される。該処理回路は、該代理キーの中へと1又はそれより多くの制約を取り込むために使用する該複数の暗号化関数から該選択されたキー導出関数を指定するデータを送信するためにさらに構成されることができる。
【0016】
代理発生デバイスが、同様に提供され、(a)同じ共有秘密キーを有するクライアント・デバイスとの安全な通信のために使用する共有秘密キーを取得するための手段;(b)キー導出関数を取得するための手段、ここにおいて、該キー導出関数は、該クライアント・デバイスにも既知である;(c)該キー導出関数と該共有秘密キーとに基づいて代理キーを生成するための手段;及び/又は(d)該代理キーを代理デバイスに送るための手段、を具備する、ここにおいて、該代理デバイスは、該クライアント・デバイスとの通信を認証するために該代理キーを使用することが可能である。
【0017】
プロセッサが、同様に提供され、ホスト・デバイス上で代理キーを生成するために構成され、(a)同じ共有秘密キーを有するクライアント・デバイスとの安全な通信のために使用する共有秘密キーを取得するため;(b)キー導出関数を取得するため、ここにおいて、該キー導出関数は、該クライアント・デバイスに既知の第2のキー導出関数に関係する;(c)該キー導出関数と該共有秘密キーとに基づいて代理キーを生成するため;及び(d)該代理キーを代理デバイスに提供するために構成された処理回路を具備する。該処理回路は、(e)該代理キーを生成することの前に該代理キーについての1又はそれより多くの制約を定めるために、(f)該1又はそれより多くの制約に基づいて該代理キーを生成するために、そして/又は(g)該1又はそれより多くの制約を該クライアント・デバイスに提供するためにさらに構成される。
【0018】
機械読み取り可能な媒体が、提供され、ホスト・デバイスにおいて代理キーを生成するための1又はそれより多くの命令を有する、該命令はプロセッサにより実行されるときに該プロセッサに:(a)同じ共有秘密キーを有するクライアント・デバイスとの安全な通信のために使用する共有秘密キーを取得すること;(b)キー導出関数を取得すること、ここにおいて、該キー導出関数は、該クライアント・デバイスに既知の第2のキー導出関数に関係する;(c)該キー導出関数と該共有秘密キーとに基づいて該代理キーを生成すること;及び(d)該代理キーを代理デバイスに提供すること、を実行させる。該機械読み取り可能な媒体は、該プロセッサにより実行されたときに該プロセッサに:(e)該代理キーについての1又はそれより多くの制約を定めること、(f)該1又はそれより多くの制約に基づいて該代理キーを生成すること、そして/又は(g)該クライアント・デバイスに該1又はそれより多くの制約を提供すること、を実行させる1又はそれより多くの命令をさらに含むことができる。
【0019】
代理デバイス上で動作する方法が提供され、(a)ホスト・デバイスから代理キーを取得すること;(b)そのクライアント・デバイスと該ホスト・デバイスがキー導出関数と秘密キーとを共有している該クライアント・デバイスと使用するための該代理キーを記憶すること;(c)該代理キーを用いてメッセージを認証すること;及び/又は(d)該クライアント・デバイスに該代理デバイスを認証させるために該クライアント・デバイスに該認証されたメッセージを送ること、を具備する。本方法は、(e)該クライアント・デバイスから認証されたメッセージを受け取ること;及び/又は(f)該クライアント・デバイスからの該メッセージを認証するために該代理キーを使用することにより該クライアント・デバイスを認証すること、を同様に含むことができる。1つのインプリメンテーションでは、該代理キーに該ホスト・デバイスにより課せられた1又はそれより多くの制約が、取得され、該クライアント・デバイスに送られる。該代理キーは、該1又はそれより多くの制約に基づいて生成される。標識子は、同様に該クライアント・デバイスに送られることができ、該認証されたメッセージが代理キーを使用して認証されることを示す。データは、同様に該クライアント・デバイスに送信されることができ、該代理キーを生成するために使用するキー導出関数を指定する。
【0020】
代理デバイスが同様に提供され、(a)ホスト・デバイス及びクライアント・デバイスと通信するための通信インターフェース;(b)記憶デバイス;及び/又は(c)該通信インターフェースと該記憶デバイスとに接続された処理回路、を具備する。該処理回路は、(1)該ホスト・デバイスから代理キーを取得するため、(2)該クライアント・デバイスと使用するために該記憶デバイス中に該代理キーを記憶するため、ここにおいて、該ホスト・デバイスと該クライアント・デバイスは、キー導出関数と秘密キーとを共有する、(3)該代理キーを使用してメッセージを認証するため、そして/又は(4)該クライアント・デバイスに該代理デバイスを認証させるために該クライアント・デバイスに該認証されたメッセージを送るため、に構成されることができる。
【0021】
別の代理デバイスが提供され、(a)ホスト・デバイスから代理キーを取得するための手段;(b)そのクライアント・デバイスと該ホスト・デバイスがキー導出関数と秘密キーとを共有する該クライアント・デバイスと使用するための該代理キーを記憶するための手段;該代理キーを用いてメッセージを認証するための手段;(c)該クライアント・デバイスに該代理デバイスを認証させるために該クライアント・デバイスに該認証されたメッセージを送るための手段;(d)該代理キーに対して該ホスト・デバイスにより課せられた1又はそれより多くの制約を取得するための手段;及び/又は(e)該クライアント・デバイスに該1又はそれより多くの制約を送るための手段、を具備する。
【0022】
クライアント・デバイス上で動作する方法が、代理デバイスを認証するために提供される。ホスト・デバイスと該クライアント・デバイスとの両方に既知の共有秘密キーが、取得される。該クライアント・デバイスと該ホスト・デバイスとの両方に既知のキー導出関数が、同様に取得される。認証されたメッセージは、該クライアント・デバイスにおいて代理デバイスから受け取られる。ローカル代理キーは、該キー導出関数と該共有秘密キーとを使用して生成される。該代理デバイスは、該ローカル代理キーを使用することにより該クライアント・デバイスにおいて認証される。1又はそれより多くの制約は、取得され、そして該代理デバイスにより実行されることが可能な動作は、該制約にしたがって制限される。該代理デバイスは、該ローカル代理キーが安全にされたメッセージを良好に逆暗号化する場合に、該クライアント・デバイスによって認証される。該代理デバイスは、該ローカル代理キーが安全にされたメッセージを良好に逆暗号化する場合に、該クライアント・デバイスによって認証される。
【0023】
キー認証クライアント・デバイスが同様に提供され、(a)代理デバイスと通信するための通信インターフェース;(b)共有秘密キーとキー導出関数とを記憶するための記憶デバイス、ここにおいて、該共有秘密キーと該キー導出関数は、ホスト・デバイスに両方とも既知である;及び/又は(c)該通信インターフェース及び該記憶デバイスに接続された処理回路、を具備する。該処理回路は、(1)該代理デバイスから安全なメッセージを受け取るため、(2)該キー導出関数と該共有秘密キーとを使用してローカル代理キーを生成するため、(3)該ローカル代理キーを使用することにより該代理デバイスを認証するため、そして/又は(4)該代理デバイスについての1又はそれより多くの制約を取得するため;そして/又は、該1又はそれより多くの制約にしたがって該代理デバイスにより実行されることが可能な動作を制限するため、に構成される。
【0024】
別のキー認証クライアント・デバイスが、同様に提供され:(a)同じ共有秘密キーを有する該クライアント・デバイスとの通信を認証するためにホスト・デバイスにより使用されることが可能である共有秘密キーを取得するための手段;(b)該ホスト・デバイスと該クライアント・デバイスとの両方に既知のキー導出関数を取得するための手段;(c)該クライアント・デバイスにおいて代理デバイスからの認証されたメッセージを受け取るための手段;(d)該キー導出関数と該共有秘密キーとを使用してローカル代理キーを生成するための手段;及び/又は(f)該ローカル代理キーを使用することにより該代理デバイスを認証するための手段、を具備する。該デバイスは、(g)1又はそれより多くの制約を取得するための手段;(h)該1又はそれより多くの制約を使用して該ローカル代理キーを生成するための手段;及び(i)該制約にしたがって該代理デバイスにより実行されることが可能である動作を制限するための手段、をさらに含む。
【0025】
クライアント・デバイス上で代理デバイスを認証するために構成されたプロセッサが、提供され、(1)同じ共有秘密キーを有する該クライアント・デバイスとの通信を認証するためにホスト・デバイスにより使用されることが可能である共有秘密キーを取得するため;(2)該クライアント・デバイスと該ホスト・デバイスとの両方に既知のキー導出関数を取得するため;(3)該クライアント・デバイスにおいて代理デバイスからの認証されたメッセージを受け取るため;(4)該キー導出関数と該共有秘密キーとを使用してローカル代理キーを生成するため;(5)該ローカル代理キーを使用することにより該クライアント・デバイスにおいて該代理デバイスを認証するため、(6)該代理デバイスについての1又はそれより多くの制約を取得するため;(7)該1又はそれより多くの制約に基づいて該ローカル代理キーを生成するため;そして/又は(8)該1又はそれより多くの制約に基づいて該クライアント・デバイスに関係する該代理デバイスの動作を制限するため、に構成された処理回路を含む。
【0026】
クライアント・デバイスにおいて代理キーを認証するための1又はそれより多くの命令を有する機械読み取り可能な媒体が同様に提供され、該命令はプロセッサにより実行されるときに該プロセッサに:(a)同じ共有秘密キーを有する該クライアント・デバイスとの通信を認証するためにホスト・デバイスにより使用されることが可能である共有秘密キーを取得すること;(b)該クライアント・デバイスと該ホスト・デバイスとの両方に既知のキー導出関数を取得すること;該クライアント・デバイスにおいて代理デバイスからの認証されたメッセージを受け取ること;(c)該キー導出関数と該共有秘密キーとを使用してローカル代理キーを生成すること;(d)該ローカル代理キーを使用することにより該クライアント・デバイスにおいて該代理デバイスを認証すること、(e)該代理キーについての1又はそれより多くの制約を取得すること;(f)該1又はそれより多くの制約に基づいて該ローカル代理キーを生成すること、そして/又は(g)該1又はそれより多くの制約に基づいて該クライアント・デバイスに関係する該代理デバイスの動作を制限すること、を実行させる。該代理デバイスは、該受け取られた認証メッセージが該ローカル代理キーを使用することにより適正に認証される場合に、認証される。
【詳細な説明】
【0027】
下記の記載では、特定の詳細が、複数の実施形態の十分な理解を与えるために与えられる。しかしながら、実施形態がこれらの具体的な詳細を用いずに実行されることができることは、当業者により理解されるであろう。例えば、回路は、不必要な詳細で実施形態を不明確にしないためにブロック図で示されないことがある。
【0028】
しかも、実施形態がフローチャート、フロー図、構造図、又はブロック図として図示されるプロセスとして記載されることは、注目される。フローチャートが一連のプロセスとして動作を説明することがあるとはいえ、動作の多くは、並列に又は同時に実行されることが可能である。それに加えて、動作の順番は、並べ替えられることができる。あるプロセスは、その動作が完了するときに終了される。プロセスは、方法、機能、サブルーチン、サブプログラム、等に対応することができる。プロセスが機能に対応するとき、その終了は、その機能が呼び出し機能又は主機能に戻ることに対応する。
【0029】
その上、記憶媒体は、データを記憶するための1又はそれより多くのデバイスを表すことができ、読み出し専用メモリ(read only memory)(ROM)、ランダム・アクセス・メモリ(random access memory)(RAM)、磁気ディスク記憶媒体、光学的記憶媒体、フラッシュ・メモリ・デバイス及び/又は情報を記憶するための別の“機械読み取り可能な媒体”を含む。用語“機械読み取り可能な媒体”は、携帯型記憶デバイス又は固定式記憶デバイス、光記憶デバイス、無線チャネル及び(複数の)命令及び/又はデータを記憶することか、包含することか、又は搬送することが可能な各種のその他の媒体、を含むが、これらに限定されることはない。
【0030】
さらに、複数の実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、又はこれらの任意の組み合わせにより与えられることができる。ソフトウェア、ファームウェア、ミドルウェア、又はマイクロコードにおいて与えられるとき、必要なタスクを遂行するためのプログラム・コード又はコード・セグメントは、記憶媒体、又は他の記憶手段のような機械読み取り可能な媒体中に記憶されることができる。プロセッサは、必要なタスクを実行することができる。コード・セグメントは、手順、機能、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェア・パッケージ、クラス、又は複数の命令、データ構造、又はプログラム・ステートメントの組み合わせを表すことができる。コード・セグメントは、情報、データ、主張(argument)、パラメータ、又はメモリ・コンテントを渡すことそして/又は受け取ることにより別のコード・セグメント又はハードウェア回路に接続されることができる。情報、主張、パラメータ、データ、及びその他は、他のものの中でメモリ分割方式、メッセージ伝達方式(passing)、トークン伝達方式、及びネットワー伝送を含む適当な手段を介して渡されるか、転送されるか、又は伝送されることができる。
【0031】
下記の記述では、ある種の用語は、1又はそれより多くのある種の特徴を説明するために使用される。用語“キー”(例えば、代理キー、秘密キー、制約されたキー、等)は、証明書(certificate)、識別子、暗号、若しくは別のタイプの数字、アルファベットと数字、又はシンボルを呼ぶ。
【0032】
1つの特徴は、対称キー暗号化方式を提供し、そこでは第3パーティ(代理人)は、第1パーティ(ホスト)によって代理キーを与えられ、その第1パーティ(ホスト)は第2パーティ(クライアント)と安全に通信するために使用することが可能である。代理キーは、その機能及び使用において制約されることがある。例えば、制約された代理キーは、特定の時間の区切りに制限されることがあり、そのあいだ第3パーティ(代理人)は第1パーティ(ホスト)の代わりに代理人として動作することができる。別の例では、制約された代理キーは、その第3パーティ(代理人)が送ることができるあるタイプのメッセージに制限されることがある。第3パーティ(代理人)と第2パーティ(クライアント)との間の全ての通信は、暗号化及び/又は認証のために使用される代理キーにより安全を保つ。さらに、1つのインプリメンテーションでは、代理キーは、第3パーティ(代理人)が第1パーティ(ホスト)によって既に認定されていることを第2パーティ(クライアント)に確信させるために十分な情報を含む。最終的に、秘密キーは、第1パーティ(ホスト)と第2パーティ(クライアント)とによって知られ、そして代理キーを生成するためにそして認証するために使用される。しかしながら、秘密キーは、第3パーティ(代理人)に知られず、その第3パーティは第1パーティ(ホスト)によりそれに与えられた制約を越えることが不可能である。
【0033】
図1と図2は、代理キーが別々のデバイスによって生成されそして認証されることが可能である機密保護方式を説明する。動作の1つのモードでは、ホスト・デバイスA102とクライアント・デバイスB104は、(複数の)暗号キー(例えば、非対称キー又は対称キー)を使用して安全な通信リンク108を設定し、そこでは共有秘密キーKは、ホスト・デバイスA102とクライアント・デバイスB104との両者によって知られる。あるインプリメンテーションでは、ホスト・デバイスA102は、安全な通信リンク108を経由して送るコマンドによりクライアント・デバイスB104の動作を制御することができる。共有秘密キーKは、クライアント・デバイスB104との通信に関係付けられることができ、そして安全な通信リンク108を経由するホスト・デバイスA102とクライアント・デバイスB104との間のメッセージを暗号化するため、安全にするため、そして/又は認証するために使用されることができる。他のデバイスと通信するとき、ホスト・デバイスA102は、異なる共有秘密キーを使用することができる。
【0034】
時折、代理デバイスC106がデバイスB104と通信する必要がある事情があり得る。共有秘密キーKはデバイスC106に明らかにさるべきでないが、クライアント・デバイスB104と代理デバイスC106との間の通信は、少なくとも安全にされそして認証されるべきである。この目的のために、ホスト・デバイスA102は、デバイスB104と通信するために、代理デバイスC106を認定する代理キーK’を代理デバイスC106に与えることができる。図2に説明されるように、ホスト・デバイスA102とクライアント・デバイスB104との間の安全な通信リンク108がないとき、ネットワーク・サービスの中断の期間のケースであるので、代理デバイスC106は、ホスト・デバイスA102からの代理キー110を使用して第2の安全な通信リンク202を設定することができる。秘密キーKを明らかにすることなくクライアント・デバイスB104へのアクセスを代理デバイスC106に与えるために、ホスト・デバイスA102は、秘密キーKから代理キーK’を生成し、そして代理デバイスC106に代理キーK’を送る。代理キーK’は、デバイスC106とデバイスB104との間のメッセージを暗号化するためそして/又は認証するために使用される。デバイスB102に代理キーK’を与えることによって、デバイスC106は、例えば、デバイスB104の動作を制御することができる。第2の通信リンク202は、第1の通信リンク108が動作しない場合でさえも動作する。
【0035】
代理デバイスC106がクライアント・デバイスB104に影響を及ぼすことができる制御を限定するために、暗号化関数、同様にキー導出関数(KDF:key derivation function)とも呼ばれる、は、デバイスA102とB104との間で事前に取り決められる。すなわち、KDFは、それらの共有秘密キー(K)から代理キー又は制約されたキーを導出するために使用されることができる。ある複数の実施形態では、デバイスA102とB104は、特定のKDFを事前に取り決めることができる。別のインプリメンテーションでは、複数のそのような暗号化関数は、デバイスA102とデバイスB104との両者に既知である。KDFは、代理キー又は制約されたキーに負わせるべき共有秘密Kといずれかの制約とを入力として選ぶ。ホスト・デバイスA102が代理デバイスC106の代理能力を許可しようと望むときに、それは、KDF(K)を使用して新たな代理キー(K’)110を生成し、そしてそれを代理デバイスC106に配信する。この代理キーK’110は、クライアント・デバイスB104とホスト・デバイスC106との間の通信を安全にするためそして/又は認証するためにここで使用されることができる。
【0036】
代理デバイスC106から来るメッセージを適正に認証する(例えば、逆暗号化する)ために、クライアント・デバイスB104は、代理キーが使用されようとしていることを通知される。これを実現するための1つの方法は、代理キーの使用を信号で送信するためにメッセージ毎に1ビット・フラッグを使用することである。クライアント・デバイスB104は、KDF及びその秘密キーKを使用することができ、代理キーK’のローカル版を生成し、それはその後、代理デバイスC106から受け取られる認証されたメッセージを認証するために使用される。もしメッセージが適正に認証される(例えば、逆暗号化される、等)場合には、デバイスC106は認証され、そして安全な通信が、代理キーK’を使用してクライアント・デバイスB104と代理デバイスC106との間で実行されることができる。
【0037】
クライアント・デバイスB104がホスト・デバイスA102と同じ代理キーを独自に生成するために、デバイスB104は、ホスト・デバイスA102が代理キーK’にどの制約を置いたかを知る必要がある。1つの実施形態では、ホスト・デバイスA102によって代理キーK’に課せられた制約のリストは、代理デバイスC106により送られるメッセージ毎に添えられることができる。別の1つの実施形態では、セッションの概念が導入されることができ、そして制約のリストは、セッション当り1回(好ましくは初めに)代理デバイスC106により送られることができる。さらに別の1つの実施形態では、制約は、事前にホスト・デバイスA102とクライアント・デバイスB104により取り決められることができる。例えば、ホスト・デバイスA102とクライアント・デバイスB104は、全ての代理キーが正確に1日、例えば、真夜中の12時から12時まで、のあいだ有効であることを事前に合意することができる。そのようなケースでは、KDFへの入力として使用される制約は、その代理キーが有効である日付であり得る。クライアント・デバイスB104が代理キーによって認証される又は保護されるメッセージを受け取るときはいつでも、それは、現在の日付を使用して代理キーを再生する。
【0038】
1つの例では、代理デバイスC106を使用することによって、ホスト・デバイスA102は、代理デバイスC106に対して利用可能なアクセス権利の制御を維持しつつ、代理デバイスC106に権限を委任することが可能である。その上、代理キーK’の発生元として、ホスト・デバイスA102は、代理デバイスC106による通信を傍受する又はモニタすることができる。
【0039】
1つの実施形態では、暗号化関数すなわちキー導出関数は、ブロック暗号法(block cipher)であり得て、そこでは共有秘密Kが、キー入力として使用され、そして代理制約(及び/又はその他のパラメータ)が、ブロック暗号法への平文入力として使用される。1つのインプリメンテーションでは、1又はそれより多くのビットは、代理メッセージで(例えば、クライアント・デバイスB104へのメッセージ毎に、又はクライアント・デバイスB104との各通信セッションの始めにおいてのいずれかで)送られ、キーが代理キー又は制約されたキーであることを指示する。別の1つの実施形態では、代理ビットが省略されることがあり、そのケースでは、各受け取ったメッセージに対して、クライアント・デバイスB104は、それを2回、ビットが設定されているとして1回、そして設定されていないとして1回、処理しようと試み、そして認証を通過する1つの版を選択する。
【0040】
別のインプリメンテーションでは、ホスト・デバイスA102は、複数の別の(有線接続された又は無線通信の)デバイスと通信できる。そのようなケースでは、ホスト・デバイスA102(例えば、ホスト・デバイス)は、複数の秘密キーKiを記憶し、各秘密キーKiは、複数の有線接続された又は無線通信するデバイスの1つに対応し、そして同様に記憶される。ホスト・デバイスA102は、第1デバイスMiに対応する秘密キーKiから代理キーKi’を生成し、そしてその代理キーKi’を代理デバイス(例えば、代理デバイスC106)に送る。代理キーKi’は、代理デバイスと第1デバイスMi(例えば、クライアント・デバイスB104)との間のメッセージを暗号化するためにそして/又は認証するために使用されることができる。同様に、1より多くの代理デバイスがあることがあり、そのケースでは、ホスト・デバイスA102(例えば、ホスト・デバイス)は、複数の代理デバイスに対して同じ又は異なる代理キーを生成することができる。最終的に、1より多くの代理キー発生元デバイス(例えば、複数のホスト・デバイスA102)があることさえある。
【0041】
様々なインプリメンテーションにおいて、通信リンク108、112及び/又は202は、無線であり得るそして/又は非無線であり得る。
【0042】
図3は、安全かつ制限された代理キーを生成するため、配送するため、そして認証するための方法を説明する。ホスト・デバイスA302とクライアント・デバイスB304は、キー暗号方式を使用する安全なそして/又は認証された通信手段を設定している。例えば、対称キー暗号方式は、共有秘密キーがホスト・デバイスAとクライアント・デバイスB304との両方に既知である場合に実行されることができる。1つの動作のモードでは、デバイスA302とB304は、その2つのデバイスの間の通信を安全にするためそして認証するために共有秘密キーを使用することができる。それに加えて、キー導出関数(KDF)が、しかも両方のデバイスAとBとに提供される。共有秘密キーとKDFは、ホスト・デバイスA302により使用されることができて、制約された代理キーを生成し308、それは代理デバイスC306に送られる310。例えば、ホスト・デバイスA302は、代理キー発生元として動作し、代理デバイスC306は、代理キーを受け取り、そしてホスト・デバイスAの代理人として動作し、そしてクライアント・デバイスB304は、認証者として動作し、それは代理デバイスC306と安全な通信を設定する前に代理キーを認証する。
【0043】
代理デバイスC306は、制約された代理キー312を記憶し、制約された代理キーを有するメッセージを認証し、そしてデバイスB304と通信リンクを設定するために認証されたメッセージを送る316。1つのインプリメンテーションでは、クライアント・デバイスB304は、受け取ったキーが代理キーであるかどうかを確認し318、そしてもしそうであれば、自身のKDFを使用してローカル代理キーを独自に生成する320。これは、例えば、認証されたメッセージ316の特定のビット又は受け取られたキーが設定されているかどうかを(それによって受け取ったキーが代理キーであることを示していることを)確認することによって行われることができる。クライアント・デバイスB304は、1又はそれより多くの非公開キーそして/又は公開キー、パラメータそして/又はローカル代理キーを生成するための制約とともに、KDFを使用することができる。
【0044】
クライアント・デバイスB304は、次に代理デバイスを認証する322。例えば、代理デバイスC306のそのような認証は、ローカルに生成された制約された代理キーを用いて受け取った認証メッセージを逆暗号化することを含むことができる。もしそのメッセージが適正に認証されている場合には、代理デバイスC306が同様に同じ制約された代理キーを有する(そしてそれゆえ認証されている)ことを意味する。安全な通信リンクは、次に、クライアント・デバイスB304とホスト・デバイスC306との間で設定されることができる324。受け取った認証メッセージの適正な認証は、例えば、クライアント・デバイスB304が1又はそれより多くの受け取ったパラメータを1又はそれより多くのパラメータと比較してそれらが同じであるかどうかを判断することによって確かめられることができる。
【0045】
クライアント・デバイスB304は、デバイスA302によって事前に取り決められたように、又は代理デバイスC306から受け取った代理制約情報によって規定されるように、代理キーの使用を制限することができる。例えば、クライアント・デバイスB304は、ある一定の長さの時間の後で、代理デバイスC306からの代理キーを失効させる又は無効にすることができる326。これは、ホスト・デバイスA302とクライアント・デバイスB304とが、同期された時計及び/又は日付を有するときに実現されることができ、その時計及び/又は日付は制約された代理キーを失効させるために使用される又は制約された代理キーを生成するためのパラメータとして使用される。例えば、もし制約された代理キーが、2006年1月1日の日付を使用してホスト・デバイスA302によって生成される場合には、認証のためにクライアント・デバイスBによって生成されるローカルな制約された代理キーは、2006年1月1日に符合するだけである。その日付の後で、(クライアント・デバイスB304において生成された)ローカルな制約された代理キーは、受け取られる制約された代理キーと最早符合しない。この特徴は、ホスト・デバイスA302によって使用されることができ、特定の日(例えば、代理デバイスC306がクライアント・デバイスB304と通信することを必要とすると予想される日)にだけその制約された代理キーを有効にさせることができる。
【0046】
図4は、代理キー発生元ホスト・デバイス(例えば、図3のホスト・デバイスA302)の1つの実施形態を説明するブロック図である。キー発生元デバイス402は、通信インターフェース404を含み、それを通して別のデバイスと安全な通信リンクを設定することができる。処理回路406は、キー発生元デバイス402への及び/又はそれからの通信を安全にするためにキー暗号法(例えば、対称キー又は非対称キー)を使用するように構成される。記憶デバイス408は、(例えば、対称暗号化方式のための)共有秘密キー及び代理キー暗号化関数又はキー導出関数(KDF)を記憶することができ、その関数は、事前に(例えば、独自の配送チャネルを経由して)別の安全なデバイスと共有されることができる。キー発生元デバイス402は、共有秘密キーを使用してメッセージを認証するために、そしてその共有秘密キーと代理キー導出関数とに基づいて代理キーを生成するために構成されることができる。
【0047】
図5は、キー発生元ホスト・デバイス402上で代理キーを生成しそして別のデバイスに配送するようになっている方法を説明する。同じ共有秘密キーを有するクライアント・デバイス(例えば、図12のキー認証デバイス1202)との安全な通信のために使用されることが可能な共有秘密キーが、得られる502。暗号化関数又はキー導出関数(KDF)が、得られ、それは代理キーを作り出すためにそして認証するためにホスト・デバイスにより使用されることが可能である、ここで、その暗号化関数は、同様にクライアント・デバイスにも既知である504。キー導出関数は、別の値を得るために値をランダム化する又は混合するために使用するハッシュ関数又は別のタイプの関数であり得る。代りの実施形態では、第1の一方向関数は、代理キーを作り出すために代理発生元デバイス402により得られ、一方で、別の第2の一方向関数が認証のためにクライアント・デバイスによって使用される。
【0048】
代理キーについての1又はそれより多くのパラメータ又は制約は、キー発生元ホスト・デバイス506により同様に規定される508。例えば、制約は、代理デバイスがクライアント・デバイスに送ることができるメッセージ又はコマンドのタイプ、若しくは代理キーが有効である時間の長さを制限することができる。これらの制約は、同様にクライアント・デバイスにも既知である。ホスト・デバイスは、キー導出関数と制約とに基づいて代理キーを生成する508。例えば、キー発生元ホスト・デバイス402は、制約された代理キーを取得するために、キー導出関数のための入力として共有秘密キー、現在の日付/時刻、及び/又は他のパラメータ/制約を使用することができる。代理キーは、次に代理デバイスに送られ、そこでは代理デバイスは、クライアント・デバイスとの通信を認証するために使用されることができる510。
【0049】
図6は、代理キー発生元ホスト・デバイス602(例えば、ホスト・デバイス)の別の一例を図示し、記憶媒体604、ユーザ・インターフェース606、パラメータ設定モジュール608、キー発生器610、出力モジュール612、及び暗号化モジュール614を含む。記憶媒体604は、クライアント・デバイスに関係する秘密キーKを記憶するように構成される。1つの特徴によれば、認証モジュール614は、メッセージを認証するために秘密キーKを使用することができ、そして出力モジュール612は、関係するクライアント・デバイスに認証されたメッセージを送信することができる。
【0050】
別の1つの特徴では、キー発生元ホスト・デバイス602は、秘密キーKに(少なくとも部分的に)基づいて代理キーKi’を生成する。代理キーKi’は、制限又は制約を有することができ、それはユーザ・インターフェース606を経由して選択されることができる又は入力されることができる、そしてパラメータは選択された制約に基づいてパラメータ設定モジュール608を通して設定されることができる。選択された制約は、例えば、あるレベルの権限又は限定された特権を認めるような機能において、及び/又は時間のある区切りの間に制約された代理キーが使用されることを認めるような時間において、制約された代理キーK’の使用を制限することができる。したがって、パラメータ/制約は、制約された代理キーの使用の制限及び/又はアクセスの制限を指示することができる。パラメータは、同様にタイムスタンプを備えることができ、それはその制約された代理キーを用いて暗号化されたメッセージがそのあいだ有効である時間の区切りを示す。
【0051】
キー発生器610は、パラメータと秘密キーKとの関数として制約された代理キーK’を生成する。キー発生器610は、キー導出関数とともに秘密キーKを使用してパラメータ/制約を暗号化することにより制約された代理キーK’を生成することができる。もし、パラメータがタイムスタンプを含む場合には、制約された代理キーK’は、次のように秘密キーKを使用してタイムスタンプを暗号化することによって生成されることができる:
K’=EK(Ts,Te) [1]
ここで、Eは秘密キーKに基づく暗号化関数又はキー導出関数であり、Tsは有効期間の始まりを示し、そしてTeは有効期間の終わりを示す。式1において、例えば、ハッシュ関数のような、任意の公知の暗号化関数又はキー導出関数が使用されることができる。あるインプリメンテーションでは、1より多くの暗号化関数/キー導出関数が使用されることができる。例えば、複数の暗号化関数のうちの1つが、制約された代理キーを生成するために使用されることができる。そのようなケースでは、どの(複数の)暗号化関数又は(複数の)キー導出関数がパラメータ/制約を暗号化するために使用されたかを指定するデータが、送信されることができる。
【0052】
制約された代理キーK’は、次に出力モジュール612を経由して第3エンティティ又は代理デバイスに送られる。制約された代理キーK’を生成するために使用するパラメータ/制約は、同様に出力モジュール612を経由して代理デバイスに送られる。制約された代理キーK’及び/又はパラメータは、非無線通信で又は無線通信で送信されることができる。それに加えて、制約された代理キーK’は、代理デバイスに送信することに先立って暗号化されることができる。別の特徴は、制約された代理キーが既に生成されていることを(受信機に)知らせる標識子を出力モジュール612を経由して送信することを含むことができる。
【0053】
キー発生元ホスト・デバイス602は一例の説明であり、そして他のエレメントを制御するために構成されたコントローラ及び/又は上に説明された動作の一部を含むことができる様々な機能を実行するように構成されたプロセッサのような追加のエレメントを含むことができる。複数のエレメントのうちの1つ又は組み合わせは、キー発生元ホスト・デバイス602の動作に影響を与えることなく事前に取り決められることができる。複数のエレメントのうちの1つ又は組み合わせは、同様に、キー発生元ホスト・デバイス602の動作に影響を与えることなく1つのエレメントへと統合されることができる。
【0054】
図7は、代理キーを生成するためにキー発生元ホスト・デバイス上で動作されることができる方法を説明する。秘密キーが、記憶され702、そしてパラメータ/制約は、選択された制約に基づいて設定される704。制約された代理キーは、次に、キー導出関数を使用して生成され706、そこにおいて、制約された代理キーは、パラメータ/制約及び秘密キーの関数である。制約された代理キーは、キー導出関数を使用して生成されることができて、秘密キーを使用してパラメータ/制約を暗号化する。あるインプリメンテーションでは、ホスト・デバイスは、複数の暗号化関数又はキー導出関数の中からそのキー導出関数を選択することができる。そのようなケースでは、本方法は、代理キーを生成するために使用する複数の暗号化関数又はキー導出関数のうちの1つを指定するデータを送信することを含むことができる708。
【0055】
制約された代理キー及び/又はパラメータ/制約は、第2のデバイス(例えば、代理デバイス)に送られる710及び712。制約された代理キーは、第2のデバイスに非無線通信で又は無線通信で送信されることができる。制約された代理キーは、送信の前に暗号化されることができる。パラメータ/制約は、制約された代理キーがその間有効である時間の区切りを指示するタイムスタンプを備えることができる。パラメータ/制約は、しかも制約された代理キーの使用制限を指示することができる。
【0056】
本方法は、関係するキーが制約された代理キーであることを受信機に知らせる標識子(例えば、メッセージ・フラッグ、等)を送信すること714を同様に含むことができる。本方法は、秘密キーを使用してメッセージを認証すること716、そして認証されたメッセージを送信すること718を追加として含むことができる。
【0057】
図8は、代理デバイス(例えば、図3の代理デバイスC306)の1つの実施形態を説明するブロック図である。代理デバイス802は、通信インターフェース804を含み、それを通して別のデバイスと通信リンクを設定することができる。処理回路806は、代理デバイス802へのそして/又はそれからの通信を安全にするための(複数の)暗号キー(例えば、対称キー又は非対称キー)を使用するように構成される。記憶デバイス808は、キー発生元ホスト・デバイスから受け取る代理キーを記憶することができ、その結果、それはクライアント・デバイスとの通信を認証するために使用されることができる。
【0058】
図9は、キーを取得するためそしてクライアント・デバイスとの通信を認証するためにそのキーを使用するために代理デバイス802上で動作するようになっている方法を説明する。代理キーは、キー発生元ホスト・デバイスから得られる902。この代理キーは、キー発生元ホスト・デバイスにより送られることができる又は代理デバイスにより要求されることができる。あるインプリメンテーションでは、代理キーは、暗号化関数又はキー導出関数と秘密キーとを使用してキー・ホスト発生元デバイスによって生成されることができる。代理キーは、認証クライアント・デバイスとの今後の使用のために(代理デバイスにより)記憶されることができ、キー発生元ホスト・デバイスは、そのクライアント・デバイスとキー導出関数及び/又は秘密キーを既に共有している904。メッセージは、代理キーを使用して認証される906。認証されたメッセージは、認証クライアント・デバイスに送られる908。あるインプリメンテーションでは、代理デバイスは、キー発生元ホスト・デバイスによりその代理デバイスに課せられた1又はそれより多くの制約を手に入れることができる910。これらの制約は、代理キーと共に、又はその一部として、キー発生元ホスト・デバイスにより送られることができる。1又はそれより多くの制約は、認証クライアント・デバイスに伝えられる912。代わりのインプリメンテーションでは、代理キーについての制約は、代理キー発生元ホスト・デバイス(例えば、図3のホスト・デバイスA302)と認証クライアント・デバイス(例えば、図3のクライアント・デバイスB304)との間で代わりに事前に取り決められることができる。
【0059】
別の特徴によれば、代理デバイスは、クライアント・デバイスから暗号化されたメッセージを受け取ることができる。それは次に、そのクライアント・デバイスからのメッセージを逆暗号化するために代理キーを使用することによりクライアント・デバイスを認証する。
【0060】
図10は、別の代理デバイス1000の一例を説明する。代理デバイス1000は、パラメータ受信機1002、キー受信機1004、暗号化モジュール1006及び出力モジュール1008を備える。パラメータ受信機1002は、選択された制約を指示するパラメータを受け取るように構成される。上に説明したように、選択された制約は、例えば、代理キーK’の使用を機能において及び/又は時間において制限することができる。したがって、パラメータ/制約は、制約された代理キーK’の使用制限を指示することができる。パラメータ/制約は、しかも制約された代理キーを用いて暗号化されたメッセージがその間有効である時間の区切りを指示するタイムスタンプを備えることができる。キー受信機1004は、キー発生元ホスト・デバイスから制約された代理キーK’を受け取るように構成される。制約された代理キーK’は、パラメータ/制約及び秘密キーKに関係する。制約されたキーは、暗号化関数への入力としてパラメータ/制約と秘密キーKとを使用することにより生成されることができる。例えば、制約された代理キーK’は、上記の式1に基づいて生成されることができる。制約された代理キーK’及び/又はパラメータは、非無線通信で又は無線通信で受信されることができる。それに加えて、制約された代理キーK’は、暗号化された形式で受け取られることができる。そのようなケースでは、暗号化された制約代理キーは、制約された代理キーK’を得るために逆暗号化される。
【0061】
認証モジュール1008は、制約された代理キーK’を使用してメッセージを認証し、暗号化し、そして/又は安全にする、そして出力モジュール1006は、認証されたメッセージを送る。ここで、メッセージは、データ及び受け取ったパラメータ/制約を含むことができる。出力モジュール1006は、同様に、暗号化することなく受け取ったパラメータ/制約を送ることもできる。別の態様は、出力モジュール1006を経由して標識子を送ることができ、その出力モジュール1006は制約されたキーが使用されようとしていることを(例えば、メッセージがそれを用いて認証されるキーが制約されたキーであることを)受け取るクライアント・デバイスに知らせる。
【0062】
受け取ったパラメータ/制約と同様に制約された代理キーK’を使用して認証された(例えば、暗号化された)パラメータ/制約を送ることによって、メッセージ認証コード(MAC:message authentication code)が、作り出される。したがって、クライアント・デバイス(例えば、認証デバイス)は、受け取ったパラメータをその同じ受け取ったパラメータに基づいて生成されるローカルに生成された制約代理キーK’を使用して再生したパラメータと比較することにより、代理デバイス又は第3エンティティから受け取ったメッセージの有効性、真正性、及び/又は完全性を判断することができる。
【0063】
代理デバイス1000は、1つの例示であり、そして追加のエレメントを含むことができ、例えば、代理デバイス1000の他のエレメントを制御するために構成されたコントローラ、ユーザ入力を受け取るために構成されたユーザ・インターフェース、記憶媒体、及び/又は上に説明した動作の一部を含むことができる様々な機能を実行するために構成されたプロセッサを含むことができる。エレメントのうちの1つ又はそれらの組み合わせは、代理デバイス1000の動作に影響を及ぼすことなく再配置される又は組み合わせられることができる。
【0064】
図11は、クライアント・デバイスとの通信を認証する際に代理デバイスによる使用のための別の方法を説明する。選択された制約を示すパラメータが受け取られ1102、そして制約された代理キーが受け取られる1104、ここにおいて、その制約された代理キーは、制約されたパラメータ/制約及び秘密キーに関係する。メッセージは、制約された代理キーを使用して認証される(例えば、暗号化される又は安全にされる)1106、ここにおいて、メッセージは、データ及びパラメータを含むことができる。認証されたメッセージと受け取られた制約パラメータは、その後、送られる又は送信される1108と1110。受け取られた制約された代理キーは、秘密キーを使用して制約パラメータを暗号化することにより生成されてきていることがある。制約された代理キーは、非無線通信で又は無線通信で受け取られることができる。制約された代理キーは、暗号化されることができる又はそうでなければ受け取られるときに安全にされることができる。もし暗号化されるならば、本方法は、制約された代理キーを逆暗号化することを含むはずである1112。
【0065】
受け取られたパラメータ/制約は、タイムスタンプを備えることができ、それはメッセージがその間有効である時間の区切りを指示する。パラメータは、制約された代理キーの使用制限を指示することができる。本方法は、しかもキーが制約された代理キーであることをクライアント受信機に知らせる代理標識子、例えば、フラッグ、を送ることを備えることができる1114。
【0066】
図12は、キー認証クライアント・デバイス(例えば、図3のクライアント・デバイスB304)の1つの実施形態を説明するブロック図である。キー認証クライアント・デバイス1202は、通信インターフェース1204を含み、それを経由してそのキー認証クライアント・デバイスは他のデバイス、例えば、キー発生元ホスト・デバイス(例えば、図4のホスト・デバイス402)及び代理デバイス(例えば、図8の代理デバイス802)、との安全な通信リンクを設定することができる。処理回路1206は、(複数の)暗号キー(例えば、対称キー又は非対称キー)を使用するように構成され、キー認証クライアント・デバイスへの及び/又はそれからの通信を認証する。記憶デバイスは、(例えば、対称暗号化方式のための)共有秘密キー及び暗号化関数(例えば、キー導出関数)を記憶することができ、それらは事前に(例えば、独自のそして/又は安全な配送チャネルを経由して)別の安全なデバイス(例えば、キー発生元ホスト・デバイス)と共有されることができる。
【0067】
図13は、安全な通信を確立するためそして/又は代理デバイスを認証するために代理デバイス(第3エンティティ)からの制約されたキーを認証するためそして使用するためにキー認証クライアント・デバイス1202上で動作するようになっている方法を説明する。共有秘密キーは、手に入れられることができ1302、それは同じ共有秘密キーを有するホスト・デバイス(例えば、図4のキー発生元デバイス402)との安全な通信のためにクライアント・デバイス(例えば、認証デバイス)によって使用されることができる。クライアント・デバイスとホスト・デバイスとの両方に既知であるキー導出関数が、手に入れられる1304。共有秘密キー及び/又はキー導出関数は、独自の配送チャネルを介してキー認証クライアント・デバイスに与えられることができる。認証されたメッセージは、代理デバイスから受け取られる1306、ここにおいて、そのメッセージは、ホスト・デバイスにより最初に生成された代理キーを使用して暗号化されていた。クライアント・デバイスは、しかもその代理キーに関係付けられた1又はそれより多くの制約を手に入れることができる1308。制約は、代理デバイスからそして/又はホスト・デバイスから得られることができる。ローカル代理キーは、キー導出関数、1又はそれより多くの制約、及び共有秘密キーを使用してクライアント・デバイスによって生成される1310。代理デバイスは、受け取ったメッセージにローカル代理キーを使用することにより認証される。すなわち、もし代理デバイスがそれを用いてそのメッセージを認証した代理キーとローカルに生成された代理キーとが同じである場合、クライアント・デバイスは、そのメッセージを適正に認証する(例えば、逆暗号化する)。
【0068】
代理デバイスにより実行される動作は、代理キーについての制約にしたがって制限されることがある1316。1つのインプリメンテーションでは、代理キーについての制約は、代理キーとともに受け取られることができる、又はその一部である。代わりのインプリメンテーションでは、代理キーについての制約は、その代わりに、ホスト・デバイス(例えば、代理キー発生元デバイス)とクライアント・デバイス(例えば、代理キー認証デバイス)との間で独自の配送チャネルを介して又はそれらの間の安全な通信リンクを介して事前に取り決められることができる。さらに別の実施形態では、代理キーについての制約は、暗示されることがある。例えば、クライアント・デバイス1202は、異なる通信インターフェース、例えば、代理キー発生元ホスト・デバイスと通信するための主インターフェース、と代理デバイスと通信する副インターフェースとを含むことができる。もし代理キーが副インターフェースを経由して受け取られる場合には、代理認証デバイスは、それが代理キーであると仮定し、したがってそれを認証する。別のタイプの受け取られる制約は、そのあいだ代理キーが有効である時間の区切りを示す1又はそれより多くのタイムスタンプであり得る。
【0069】
図14は、記憶媒体1402、パラメータ受信機1404、メッセージ受信機1406、キー発生器1408、及び認証モジュール1410を具備する一例の(認証)クライアント・デバイス1400を説明する。記憶媒体1402は、秘密キーKを記憶するように構成される。認証モジュール1410は、メッセージ受信機1406を経由して受け取られるメッセージを認証するために(例えば、逆暗号化するために)その秘密キーKを使用することができる。もしその秘密キーKを使用して受け取ったメッセージの認証が失敗する場合には、クライアント・デバイス1400は、次に、受け取ったメッセージを認証するために使用することが可能な制約された代理キーを生成する。あるインプリメンテーションでは、受け取られるメッセージが代理キーを使用して認証されることをクライアント・デバイス1400に知らせる標識子が、受け取られる。したがって、もし受け取られるメッセージが(制約された)代理キーを使用して認証されることをその標識子が指示する場合には、(認証)クライアント・デバイス1400は、指示された制約を使用してローカル代理キーを生成して、受け取られるメッセージを認証しそして受け取られるメッセージのそして/又はそのメッセージの送り手の認証性を検証する。
【0070】
パラメータ受信機1404は、選択された制約を指示するパラメータを受け取る。選択された制約は、例えば、制約された代理キーの使用を機能においてそして/又は時間において制限することができる。パラメータは、制約された代理キーの使用制限を指示することができる。そのパラメータは、その制約された代理キーを用いて暗号化されたメッセージがその期間有効である時間の区切りを示すタイムスタンプを同様に備えることができる。
【0071】
受け取られるメッセージを認証するために、キー発生器1408は、受け取られたパラメータ(すなわち、制約)及び秘密キーKの関数としてローカル代理キーを生成する。キー発生器1408は、図6のキー発生器610に類似の方法でローカル代理キーを生成する。そのように、キー発生器1408は、パラメータ/制約を取り込んでいるキー導出関数(一種の暗号キー)及び秘密キーKを使用することによってローカル代理キーを生成することができる。もしパラメータがタイムスタンプを含む場合には、代理キーは、式[1]におけるようにタイムスタンプを暗号化することによって生成されることができる。インプリメンテーションに応じて、1より多くのキー導出関数が使用されることができる。例えば、複数の暗号化関数のうちの1つが、ローカル制約キーを生成するために使用されることができる。そのようなケースでは、暗号化関数のうちの1つを指定するデータは、クライアント・デバイス1400により受け取られることができる。キー発生器1408は、パラメータ(制約)及び秘密キーを取り込むために指定されたキー導出関数を使用してローカル代理キーを生成することができる。一旦ローカル代理キーが生成されると、認証モジュール1410は、そのローカル代理キーを使用して受け取られるメッセージを認証し、その中のデータ及びパラメータ(制約)を再生するように構成される。
【0072】
クライアント・デバイス1400は、比較モジュール1412をさらに備えることができる。比較モジュール1412は、受け取ったパラメータ(制約)と再生したパラメータ(例えば、認証されたメッセージからの制約)を比較するために構成される。例えば、受け取ったパラメータ(制約)と再生したパラメータ(制約)が符合する場合には、代理デバイスは、認証される。例えば、パラメータがタイムスタンプである場合には、もしメッセージがそのパラメータにより指示される時間の区切り内に受け取られるのであれば、受け取られたメッセージは、認証される。
【0073】
代わりのインプリメンテーションでは、代理キーを生成するために使用するパラメータ(制約)は、クライアント・デバイスにより独自に手に入れられる。例えば、ホスト・デバイスは、事前にパラメータ(制約)を与えることができる。クライアント・デバイスは、次にこれらの制約を使用して、ローカル代理キーを生成しそして代理デバイスを認証する(例えば、代理デバイスから受け取ったメッセージを認証する)。
【0074】
クライアント・デバイス1400は、一例の例示であり、そして追加のエレメント、例えば、クライアント・デバイス1400の他のエレメントを制御するために構成されたコントローラ及び/又は上記の動作の一部を含むことができる様々な機能を実行するために構成されたプロセッサを含むことができる。クライアント・デバイス1400は、しかも電気通信のためのエレメント、同様に無線通信のためのエレメントを含むことができる。複数のエレメントのうちの1つ又はそれらの組み合わせは、クライアント・デバイス1400の動作に影響を与えることなく再配置されることができる。複数のエレメントのうちの1つ又はそれらの組み合わせは、しかもクライアント・デバイス1400の動作に影響を与えることなく1つのエレメントへと統合されることができる。
【0075】
図15は、クライアント・デバイスによる通信を認証するためのさらなる方法を説明する。安全な通信で使用するための秘密キーが、記憶される1502。この秘密キーは、ホスト・デバイスと共有されることができ、そのホスト・デバイスは制約されたキーを代理デバイスに与える。選択された制約を示すパラメータが受け取られ1504、そして制約されたキーを使用して認証されたメッセージが、クライアント・デバイスによって受け取られる1506。そのメッセージは、データ及びパラメータを備えることができる。受け取られるメッセージ1506は、秘密キーを使用して認証されることができる1516。もし受け取られるメッセージの認証が上手くいく場合には1518(例えば、メッセージは適正に逆暗号化される)、認証は完了する。すなわち、そのようなメッセージは、その秘密キーを知る別のデバイスにより認証された。そうでなければ、もし受け取られるメッセージの認証が失敗する場合には1518、制約された代理キーは、メッセージを認証するために1510、キー導出関数、秘密キー及び1又はそれより多くのパラメータ(制約)を使用してローカルに生成される1508。受け取られるメッセージは、ローカルに生成された代理キーを使用して認証され1510、データ及びパラメータを再生する。
【0076】
制約された代理キーは、暗号化関数、例えば、キー導出関数(KDF)を使用することにより受け取ったパラメータ及び秘密キーに基づいて生成されることができる。その方法は、しかも、受け取られるメッセージが(制約された)代理キーを用いて認証されている(例えば、暗号化されている)ことを受け取るクライアント・デバイスに知らせる標識子を受け取ることを含むことができる1512。(制約された)代理キーが受け取られるメッセージを認証するために使用されたことを標識子が示す場合には、制約された代理キーは、その後、秘密キーを用いて(認証を試みることよりはむしろ)直接生成されることができる。標識子は、例えば、フラッグであり得る。本方法は、追加として、複数の暗号化関数のうちの1つを指定しているデータを受け取ることを含むことができる1514。そのようなケースでは、制約された代理キーは、入力としてパラメータと秘密キーとを使用して指示された暗号化関数を使用して生成されることができる。
【0077】
本方法は、受け取ったパラメータと再生されたパラメータ(例えば、受け取られるメッセージから逆暗号化されたもの)とを比較することをさらに含むことができる。もし受け取ったパラメータと再生したパラメータとが符合する場合には、代理デバイスは、認証されることができる。受け取ったパラメータと再生したパラメータは、タイムスタンプを備えることができる。そのタイムスタンプは、メッセージがそのあいだ有効である時間の区切りを指示することができる。もし、メッセージが時間の区切り内に受け取られる場合には、メッセージは、その後、認証されることができる。受け取ったパラメータと再生したパラメータは、制約されたキーの使用制限をさらに示すことができる。
【0078】
図16は、(認証)クライアント・デバイスにより受け取られるメッセージに対して使用されることができるメッセージ・フォーマットを説明する。データ・フォーマットは、認証されたメッセージ・フィールド1110を備えるはずである。データ・フォーマットは、制約されたキーが生成されたかどうかを知らせる標識子のための標識子ビット・フィールド1604を同様に備えることができる。標識子ビットは、1ビット長フラッグであることができ、そこでは、例えば、ビット=0は制約されたキーがまだ生成されていないことを示すはずであり、そしてビット=1は制約されたキーが生成されていることを示すはずである、又はそれらの逆である。データ・フォーマットは、データのためのフィールド1606をさらに含むことができ、そのデータは制約されたキーを生成するために使用した複数の暗号化関数のうちの1つを指定する。このデータ・フィールド1606の長さは、暗号化関数の数に依存することができる。例えば、もし3又は4の暗号化関数がある場合には、このデータ・フィールド1606は、4つの状態、00,01,10と11を有する2ビットであることができ、それぞれが3つの暗号化関数(1つの状態は使用されないはずである)又は4つの暗号化関数のうちの1つに対応する。データ・フィールド1604と1606とは、移動デバイスに通信されるメッセージのヘッダ中に存在し得る。データ・フィールド1602は、クライアント・デバイスに通信されるメッセージのペイロード中に存在し得る。
【0079】
図17は、代理キー発生元デバイスにおいて1つのタイプの暗号化関数(例えば、代理キー導出関数)としてブロック暗号法がどのように使用されることができるかを説明する。ブロック暗号法1702は、秘密キー1704及び1又はそれより多くの制約と認証キー1710(平文テキスト)を受け取って、代理キー1708(暗号文テキスト)を生成する。このインプリメンテーションでは、代理キー発生元ホスト・デバイスは、代理キー1708の一部として代理制約と認証キーとをエンコードする。
【0080】
図18は、代理キー認証クライアント・デバイスにおいて1つのタイプの暗号化関数(例えば、キー導出関数)としてブロック暗号法がどのように使用されることができるかを説明する。ブロック暗号法1802は、秘密キー1804(認証デバイスに予め知られる)と代理デバイスから受け取る代理キー1806(暗号文テキスト)とを使用して、代理制約1808と認証キー1810(平文テキスト)とを手に入れる。認証キー1810は、次に認証デバイスによって使用されることができ、代理キーを送った代理デバイスが代理として動作することを認可されているかどうかを判断する。
【0081】
本明細書中に記載された様々な例が対称キー暗号方式(例えば、共有秘密キー、暗号法ブロック、等)を使用しているが、代理キー方式は、同様に非対称キー暗号方式を使用して実行されることもできる。
【0082】
図1−18に例示された1又はそれより多くの構成要素、ステップ、そして/又は機能は、本発明から乖離することなく単一の構成要素、ステップ、又は機能へと再構成される又は統合されることができる、又は複数の構成要素、ステップ、又は機能に組み込まれることができる。増設のエレメント、構成要素、ステップ、及び/又は機能は、本発明から逸脱することなく同様に追加されることができる。図1,2,3,4,6,8,10,12,14,17及び/又は18に図示された装置、デバイス、及び/又は構成要素は、図3,5,7,9,11,13及び/又は15に説明される1又はそれより多くの方法、フィーチャ、又はステップを実行するように構成されることができる。
【0083】
本明細書中に開示された実施形態に関連して説明された様々な例示的な論理ブロック、モジュール、回路及びアルゴリズムのステップが、電子ハードウェア、コンピュータ・ソフトウェア、又は両者の組み合わせとして与えられることができることを、当業者は、さらに認識するはずである。ハードウェアとソフトウェアのこの互換性を明確に説明するために、様々な例示的な複数の構成要素、ブロック、モジュール、回路、及びステップが、それらの機能性の面から一般的に上に説明されてきている。そのような機能性が、ハードウェア又はソフトウェアとして与えられるかどうかは、特定のアプリケーション及びシステム全体に課せられた設計の制約に依存する。
【0084】
上記の複数の実施形態が単に例であり、そして本発明を制限するものとして解釈されるべきでないことを、注意すべきである。複数の実施形態の説明は、例示であるように意図され、そして特許請求の範囲を限定しないように意図されている。その意味で、本教示は、別のタイプの装置に容易に適用されることができ、そして多くの代案、修正、及び変形が当業者に明白である。
【図面の簡単な説明】
【0085】
【図1】図1は、代理キーが別々のデバイスによって生成されそして認証されることが可能である機密保護方式を説明する。
【図2】図2は、代理キーが別々のデバイスによって生成されそして認証されることが可能である機密保護方式を説明する。
【図3】図3は、安全かつ制限された代理キーを生成するため、配布するため、そして認証するための方法を説明する。
【図4】図4は、代理キー発生元ホスト・デバイスの1つの実施形態を説明するブロック図である。
【図5】図5は、代理発生元ホスト・デバイス上で代理キーを生成しそして別のデバイスに配送するようになっている方法を説明する。
【図6】図6は、代理キー発生元ホスト・デバイスの別の一例を説明する。
【図7】図7は、代理キーを生成するためにホスト・デバイス上で動作されることができる方法を説明する。
【図8】図8は、代理デバイスの1つの実施形態を説明するブロック図である。
【図9】図9は、代理キーを取得するためそして別のデバイスとの通信を認証するためにそれを使用するために代理デバイス上で動作するようになっている方法を説明する。
【図10】図10は、別の代理デバイスの一例を説明する。
【図11】図11は、クライアント・デバイスとの通信を認証する際に代理デバイスによる使用のための別の方法を説明する。
【図12】図12は、キー認証クライアント・デバイスの1つの実施形態を説明するブロック図である。
【図13】図13は、安全な通信を確立するためそして/又は代理デバイスを認証するために代理デバイスからの制約されたキーを認証するためそして使用するためにキー認証クライアント・デバイス上で動作するようになっている方法を説明する。
【図14】図14は、記憶媒体、パラメータ受信機、メッセージ受信機、キー発生器、及び逆暗号化モジュールを具備する一例のクライアント・デバイスを説明する。
【図15】図15は、クライアント・デバイスによる通信を認証するためのさらなる方法を説明する。
【図16】図16は、(認証)クライアント・デバイスによって受け取られるメッセージに対して使用されることができるメッセージ・フォーマットを説明する。
【図17】図17は、ブロック暗号法が代理キー発生デバイスにおいて1つのタイプの代理キー導出関数としてどのように使用されることができるかを説明する。
【図18】図18は、ブロック暗号法が代理キー認証デバイスにおいて1つのタイプの代理キー導出関数としてどのように使用されることができるかを説明する。
【特許請求の範囲】
【請求項1】
クライアント・デバイスと代理デバイスとの間の安全な通信を可能にする方法であって、
ホスト・デバイス及び該クライアント・デバイスに既知の共有秘密キーに基づいて該ホスト・デバイスにおいて第1の代理キーを生成すること;
該代理デバイスに該第1の代理キーを送ること;
該クライアント・デバイスにおいて第2の代理キーを生成すること;及び
該第1の代理キーと該第2の代理キーとを使用することにより該クライアント・デバイスにおいて該代理デバイスを認証すること
を具備する方法。
【請求項2】
該ホスト・デバイスと該クライアント・デバイスとの間で認証アルゴリズムの配送を事前に取り決めること;及び
該ホスト・デバイスと該クライアント・デバイスとの間で秘密キーの配送を事前に取り決めること
をさらに具備する、請求項1の方法。
【請求項3】
該代理デバイスは、該第1の代理キーと該第2の代理キーとが同じであるときに認証される、請求項2の方法。
【請求項4】
該第1の代理キー及び該第2の代理キーは、キー導出関数(KDF)と該共有秘密キーとを使用して独自に生成される、請求項1の方法。
【請求項5】
該KDFは、該第1の代理キーと該第2の代理キーとを取得するために1又はそれより多くの制約と該共有秘密キーとを入力として採用する、請求項4の方法。
【請求項6】
該共有秘密キーは、該第1の代理キーと、該1又はそれより多くの制約と、そして該KDFの知識とを用いてのみ再生されることができる、請求項4の方法。
【請求項7】
該ホスト・デバイスにおいて該第1の代理キーに関係する1又はそれより多くの制約を選択することをさらに具備する、ここにおいて、該第1の代理キーと該第2の代理キーは、該1又はそれより多くの制約に基づく、請求項1の方法。
【請求項8】
該代理デバイスから該クライアント・デバイスに該1又はそれより多くの制約を送ることをさらに具備する、ここにおいて、該クライアント・デバイスは、該制約を該第1の代理キーに適用する、請求項7の方法。
【請求項9】
該ホスト・デバイスから該クライアント・デバイスに該1又はそれより多くの制約を送ることをさらに具備する、ここにおいて、該クライアント・デバイスは、該制約を該第2の代理キーに適用する、請求項7の方法。
【請求項10】
代理キーがメッセージを安全にするために使用されようとしていることを該クライアント・デバイスに示すために、該代理デバイスから該クライアント・デバイスに送る該メッセージ中に標識子を設定すること
をさらに具備する、請求項1の方法。
【請求項11】
該ホスト・デバイスにおいて該第1の代理キーを導出するために使用される1又はそれより多くの制約を定めること;及び
該制約を該クライアント・デバイスに伝達すること
をさらに具備する、請求項1の方法。
【請求項12】
該1又はそれより多くの制約にしたがって該代理デバイスに関係する該クライアント・デバイスの動作を制限すること
をさらに具備する、請求項11の方法。
【請求項13】
ホスト・デバイス上で代理キーを生成するための方法であって、
同じ共有秘密キーを有するクライアント・デバイスとの通信を安全にするために使用する共有秘密キーを取得すること;
第1のキー導出関数を取得すること、ここにおいて、該第1のキー導出関数は、該クライアント・デバイスに既知の第2のキー導出関数に関係する;
該第1のキー導出関数と該共有秘密キーとに基づいて代理キーを生成すること;及び
該代理キーを代理デバイスに提供すること、ここにおいて、該代理デバイスは、該クライアント・デバイスとの通信を認証するために該代理キーを使用することが可能である
ことを具備する方法。
【請求項14】
該代理キーを生成する前に該代理キーについての1又はそれより多くの制約を定めること
をさらに具備する、請求項13の方法。
【請求項15】
該制約は、該代理キーを生成するために、そして該代理デバイスに送るために使用される、請求項14の方法。
【請求項16】
該1又はそれより多くの制約は、該クライアント・デバイスに送られる、請求項14の方法。
【請求項17】
該共有秘密キーは、該ホスト・デバイスと該クライアント・デバイスとの間の対称キー・セキュリティ方式において使用される、請求項13の方法。
【請求項18】
該第1のキー導出関数は、暗号化ブロック暗号法である、請求項13の方法。
【請求項19】
複数の暗号化関数を記憶すること;及び
該複数の暗号化関数の中から該第1のキー導出関数を選択すること
をさらに具備する、請求項13の方法。
【請求項20】
該代理キーを生成することは、該代理キーを取得するために該共有秘密キーとともに該第1のキー導出関数に対するパラメータとして1又はそれより多くの制約を使用することを含む、請求項13の方法。
【請求項21】
複数のキー導出関数のうちの1つを指定するデータを送信すること、
をさらに具備する、請求項20の方法。
【請求項22】
該1又はそれより多くの制約は、該代理キーがそのあいだ有効である期間を指示するタイムスタンプを含む、請求項20の方法。
【請求項23】
キー発生元ホスト・デバイスであって、
他のデバイスと通信するための通信インターフェース;
共有秘密キーとキー導出関数とを記憶するための記憶デバイス、ここにおいて、該共有秘密キーとキー導出関数は、両方ともクライアント・デバイスに既知である;及び
該通信インターフェース及び該記憶デバイスに接続された処理回路、
を具備し、該処理回路は;
該キー導出関数と共有秘密キーとに基づいて代理キーを生成するため、そして
代理デバイスに該代理キーを送るために構成され、ここにおいて、該代理デバイスは該クライアント・デバイスとの通信を認証するために該代理キーを使用することが可能である
処理回路である、キー発生元ホスト・デバイス。
【請求項24】
該処理回路は、
該代理キーを生成することの前に該代理キーについての1又はそれより多くの制約を定めるために
さら構成される、請求項23のデバイス。
【請求項25】
該制約は、該クライアント・デバイスと事前に取り決められる、請求項24のデバイス。
【請求項26】
該制約のうちの1つは、ある長さの時間の後で該代理キーを失効させる、請求項24のデバイス。
【請求項27】
該処理回路は、
該1又はそれより多くの制約を該代理デバイスに送るために
さらに構成される、請求項24のデバイス。
【請求項28】
該代理キーは、該1又はそれより多くの制約に基づいて生成される、請求項24のデバイス。
【請求項29】
該キー導出関数は、暗号化ブロック暗号法である、請求項23のデバイス。
【請求項30】
該記憶デバイスは、複数の暗号化関数を記憶し、そして該処理回路は、該複数の暗号化関数の中から該キー導出関数を選択するために構成される、請求項23のデバイス。
【請求項31】
該処理回路は、
該代理キーの中へと1又はそれより多くの制約を取り込むために使用する該複数の暗号化関数から該選択されたキー導出関数を指定するデータを送信するために
さらに構成される、請求項30のデバイス。
【請求項32】
代理発生デバイスであって、
同じ共有秘密キーを有するクライアント・デバイスとの安全な通信のために使用する共有秘密キーを取得するための手段;
キー導出関数を取得するための手段、ここにおいて、該キー導出関数は、該クライアント・デバイスにも既知である;
該キー導出関数と該共有秘密キーとに基づいて代理キーを生成するための手段;及び
該代理キーを代理デバイスに送るための手段、を具備する、ここにおいて、該代理デバイスは、該クライアント・デバイスとの通信を認証するために該代理キーを使用することが可能である、
代理発生デバイス。
【請求項33】
該ホスト・デバイスにおいて該代理キーについての1又はそれより多くの制約を定めるための手段;及び
該クライアント・デバイスに該制約を伝達するための手段、をさらに具備する、
ここにおいて、該キー導出関数は、該代理キーを生成するために該1又はそれより多くの制約と該共有秘密キーとを使用する
請求項32のデバイス。
【請求項34】
ホスト・デバイス上で代理キーを生成するために構成されたプロセッサであって、
処理回路を具備し、該処理回路は、
同じ共有秘密キーを有するクライアント・デバイスとの安全な通信のために使用する共有秘密キーを取得するため;
キー導出関数を取得するため、ここにおいて、該キー導出関数は、該クライアント・デバイスに既知の第2のキー導出関数に関係する;
該キー導出関数と該共有秘密キーとに基づいて代理キーを生成するため;及び
該代理キーを代理デバイスに提供するため
に構成された処理回路である、プロセッサ。
【請求項35】
該処理回路は、該代理キーを生成することの前に該代理キーについての1又はそれより多くの制約を定めるためにさらに構成される、請求項34のプロセッサ。
【請求項36】
該処理回路は、該1又はそれより多くの制約に基づいて該代理キーを生成するためにさらに構成される、請求項35のプロセッサ。
【請求項37】
該処理回路は、該1又はそれより多くの制約を該クライアント・デバイスに提供するためにさらに構成される、請求項35のプロセッサ。
【請求項38】
ホスト・デバイスにおいて代理キーを生成するための1又はそれより多くの命令を有する機械読み取り可能な媒体であって、該命令は、プロセッサにより実行されたときに該プロセッサに:
同じ共有秘密キーを有するクライアント・デバイスとの安全な通信のために使用する共有秘密キーを取得すること;
キー導出関数を取得すること、ここにおいて、該キー導出関数は、該クライアント・デバイスに既知の第2のキー導出関数に関係する;
該キー導出関数と該共有秘密キーとに基づいて該代理キーを生成すること;及び
該代理キーを代理デバイスに提供すること
を実行させる命令である、機械読み取り可能な媒体。
【請求項39】
該プロセッサにより実行されたときに該プロセッサに:
該代理キーについての1又はそれより多くの制約を定めること、
該1又はそれより多くの制約に基づいて該代理キーを生成すること
を実行させる1又はそれより多くの命令をさらに有する、請求項38の機械読み取り可能な媒体。
【請求項40】
該プロセッサにより実行されたときに該プロセッサに:
該クライアント・デバイスに該1又はそれより多くの制約を提供すること
を実行させる1又はそれより多くの命令をさらに有する、請求項39の機械読み取り可能な媒体。
【請求項41】
代理デバイス上で動作する方法であって、
ホスト・デバイスから代理キーを取得すること;
そのクライアント・デバイスと該ホスト・デバイスがキー導出関数と秘密キーとを共有している該クライアント・デバイスと使用するための該代理キーを記憶すること;
該代理キーを用いてメッセージを認証すること;及び
該クライアント・デバイスに該代理デバイスを認証させるために該クライアント・デバイスに該認証されたメッセージを送ること
を具備する方法。
【請求項42】
該クライアント・デバイスから認証されたメッセージを受け取ること;及び
該クライアント・デバイスからの該メッセージを認証するために該代理キーを使用することにより該クライアント・デバイスを認証すること
をさらに具備する、請求項41の方法。
【請求項43】
該代理キーに該ホスト・デバイスにより課せられた1又はそれより多くの制約を取得すること;及び
該クライアント・デバイスに該1又はそれより多くの制約を送ること
をさらに具備する、請求項41の方法。
【請求項44】
該代理キーは、該1又はそれより多くの制約に基づいて生成される、請求項43の方法。
【請求項45】
該認証されたメッセージが代理キーを使用して認証されることを示す標識子を該クライアント・デバイスに送ること
をさらに具備する、請求項41の方法。
【請求項46】
該代理キーを生成するために使用するキー導出関数を指定するデータを該クライアント・デバイスに送信すること
をさらに具備する、請求項41の方法。
【請求項47】
代理デバイスであって、
ホスト・デバイス及びクライアント・デバイスと通信するための通信インターフェース;
記憶デバイス;及び
該通信インターフェースと該記憶デバイスとに接続された処理回路、
を具備し、該処理回路は、
該ホスト・デバイスから代理キーを取得するため、
該クライアント・デバイスと使用するために該記憶デバイス中に該代理キーを記憶するため、ここにおいて、該ホスト・デバイスと該クライアント・デバイスは、キー導出関数と秘密キーとを共有する、
該代理キーを使用してメッセージを認証するため、そして
該クライアント・デバイスに該代理デバイスを認証させるために該クライアント・デバイスに該認証されたメッセージを送るため
に構成される、上記処理回路である、代理デバイス。
【請求項48】
該処理回路は、
該代理キーに対して該ホスト・デバイスにより課せられた1又はそれより多くの制約を取得するため;そして
該クライアント・デバイスに該1又はそれより多くの制約を送るため
にさらに構成される、請求項47の代理デバイス。
【請求項49】
該処理回路は、
該認証されたメッセージが制約されたキーを使用して安全にされることを示す標識子を該クライアント・デバイスに送るため、そして
該代理キーを生成するために使用するキー導出関数を指定するデータを該クライアント・デバイスに送るため
にさらに構成される、請求項47の代理デバイス。
【請求項50】
代理デバイスであって、
ホスト・デバイスから代理キーを取得するための手段;
そのクライアント・デバイスと該ホスト・デバイスがキー導出関数と秘密キーとを共有する該クライアント・デバイスと使用するための該代理キーを記憶するための手段;
該代理キーを用いてメッセージを認証するための手段;及び
該クライアント・デバイスに該代理デバイスを認証させるために該クライアント・デバイスに該認証されたメッセージを送るための手段
を具備する代理デバイス。
【請求項51】
該代理キーに対して該ホスト・デバイスにより課せられた1又はそれより多くの制約を取得するための手段;及び
該クライアント・デバイスに該1又はそれより多くの制約を送るための手段
をさらに具備する、請求項50の代理デバイス。
【請求項52】
代理デバイスを認証するためにクライアント・デバイス上で動作する方法であって、
ホスト・デバイスと該クライアント・デバイスとの両方に既知の共有秘密キーを取得すること;
該クライアント・デバイスと該ホスト・デバイスとの両方に既知のキー導出関数を取得すること;
該クライアント・デバイスにおいて代理デバイスからの認証されたメッセージを受け取ること;
該キー導出関数と該共有秘密キーとを使用してローカル代理キーを生成すること;及び
該ローカル代理キーを使用することにより該クライアント・デバイスにおいて該代理デバイスを認証すること
を具備する方法。
【請求項53】
1又はそれより多くの制約を取得すること;及び
該制約にしたがって該代理デバイスにより実行されることが可能な動作を制限すること
をさらに具備する、請求項52の方法。
【請求項54】
該1又はそれより多くの制約を使用して該ローカル代理キーを生成すること
をさらに具備する、請求項53の方法。
【請求項55】
該制約のうちの1又はそれより多くは、ある長さの時間の後で該代理キーの該認証を失効させるようにする、請求項52の方法。
【請求項56】
該受け取られるメッセージが第2の代理キーにより認証される標識子を受け取ることをさらに具備する、請求項52の方法。
【請求項57】
該第2の代理キーを生成するために使用するキー導出関数の標識子を受け取ることをさらに具備する、請求項56の方法。
【請求項58】
該代理デバイスは、該ローカル代理キーが安全にされたメッセージを良好に逆暗号化する場合に、該クライアント・デバイスによって認証される、請求項52の方法。
【請求項59】
キー認証クライアント・デバイスであって、
代理デバイスと通信するための通信インターフェース;
共有秘密キーとキー導出関数とを記憶するための記憶デバイス、ここにおいて、該共有秘密キーと該キー導出関数は、ホスト・デバイスに両方とも既知である;及び
該通信インターフェース及び該記憶デバイスに接続された処理回路、
を具備し、該処理回路は、
該代理デバイスから安全なメッセージを受け取るため、
該キー導出関数と該共有秘密キーとを使用してローカル代理キーを生成するため、及び
該ローカル代理キーを使用することにより該代理デバイスを認証するため
に構成される、キー認証クライアント・デバイス。
【請求項60】
該処理回路は、該代理デバイスについての1又はそれより多くの制約を取得するため;そして
該1又はそれより多くの制約にしたがって該代理デバイスにより実行されることが可能な動作を制限するため
にさらに構成される、請求項59のデバイス。
【請求項61】
該制約のうちの1つは、ある長さの時間の後で該代理キーの該認証を失効させるようにする、請求項59のデバイス。
【請求項62】
該処理回路は、
該受け取られるメッセージが代理キーにより認証されるようにする標識子を受け取るため;そして
該受け取られるメッセージを安全にするために使用するキー導出関数の標識子を受け取るため
にさらに構成される、請求項59のデバイス。
【請求項63】
キー認証クライアント・デバイスであって、
同じ共有秘密キーを有する該クライアント・デバイスとの通信を認証するためにホスト・デバイスにより使用されることが可能である共有秘密キーを取得するための手段;
該ホスト・デバイスと該クライアント・デバイスとの両方に既知のキー導出関数を取得するための手段;
該クライアント・デバイスにおいて代理デバイスからの認証されたメッセージを受け取るための手段;
該キー導出関数と該共有秘密キーとを使用してローカル代理キーを生成するための手段;及び
該ローカル代理キーを使用することにより該代理デバイスを認証するための手段
を具備する、キー認証クライアント・デバイス。
【請求項64】
1又はそれより多くの制約を取得するための手段;
該1又はそれより多くの制約を使用して該ローカル代理キーを生成するための手段;及び
該制約にしたがって該代理デバイスにより実行されることが可能である動作を制限するための手段
をさらに具備する、請求項63のデバイス。
【請求項65】
クライアント・デバイス上で代理デバイスを認証するために構成されたプロセッサであって、
処理回路、
を具備し、該処理回路は:
同じ共有秘密キーを有する該クライアント・デバイスとの通信を認証するためにホスト・デバイスにより使用されることが可能である共有秘密キーを取得するため;
該クライアント・デバイスと該ホスト・デバイスとの両方に既知のキー導出関数を取得するため;
該クライアント・デバイスにおいて代理デバイスからの認証されたメッセージを受け取るため;
該キー導出関数と該共有秘密キーとを使用してローカル代理キーを生成するため;及び
該ローカル代理キーを使用することにより該クライアント・デバイスにおいて該代理デバイスを認証するため
に構成された処理回路である、プロセッサ。
【請求項66】
該処理回路は、
該代理デバイスについての1又はそれより多くの制約を取得するため;そして
該1又はそれより多くの制約に基づいて該ローカル代理キーを生成するため
にさらに構成される、請求項65のプロセッサ。
【請求項67】
該処理回路は、
該1又はそれより多くの制約に基づいて該クライアント・デバイスに関係する該代理デバイスの動作を制限するため
にさらに構成される、請求項66のプロセッサ。
【請求項68】
クライアント・デバイスにおいて代理キーを認証するための1又はそれより多くの命令を有する機械読み取り可能な媒体であって、該命令はプロセッサにより実行されたときに該プロセッサに:
同じ共有秘密キーを有する該クライアント・デバイスとの通信を認証するためにホスト・デバイスにより使用されることが可能である共有秘密キーを取得すること;
該クライアント・デバイスと該ホスト・デバイスとの両方に既知のキー導出関数を取得すること;
該クライアント・デバイスにおいて代理デバイスからの認証されたメッセージを受け取ること;
該キー導出関数と該共有秘密キーとを使用してローカル代理キーを生成すること;及び
該ローカル代理キーを使用することにより該クライアント・デバイスにおいて該代理デバイスを認証すること
を実行させる上記命令である、機械読み取り可能な媒体。
【請求項69】
該プロセッサにより実行されたときに該プロセッサに:
該代理キーについての1又はそれより多くの制約を取得すること;そして
該1又はそれより多くの制約に基づいて該ローカル代理キーを生成すること
を実行させる1又はそれより多くの命令をさらに有する、請求項68の機械読み取り可能な媒体。
【請求項70】
該プロセッサにより実行されたときに該プロセッサに:
該1又はそれより多くの制約に基づいて該クライアント・デバイスに関係する該代理デバイスの動作を制限すること
を実行させる1又はそれより多くの命令をさらに有する、請求項69の機械読み取り可能な媒体。
【請求項71】
該受け取られた認証メッセージが該ローカル代理キーを使用することにより適正に認証される場合に、該代理デバイスは認証される、請求項68の機械読み取り可能な媒体。
【請求項1】
クライアント・デバイスと代理デバイスとの間の安全な通信を可能にする方法であって、
ホスト・デバイス及び該クライアント・デバイスに既知の共有秘密キーに基づいて該ホスト・デバイスにおいて第1の代理キーを生成すること;
該代理デバイスに該第1の代理キーを送ること;
該クライアント・デバイスにおいて第2の代理キーを生成すること;及び
該第1の代理キーと該第2の代理キーとを使用することにより該クライアント・デバイスにおいて該代理デバイスを認証すること
を具備する方法。
【請求項2】
該ホスト・デバイスと該クライアント・デバイスとの間で認証アルゴリズムの配送を事前に取り決めること;及び
該ホスト・デバイスと該クライアント・デバイスとの間で秘密キーの配送を事前に取り決めること
をさらに具備する、請求項1の方法。
【請求項3】
該代理デバイスは、該第1の代理キーと該第2の代理キーとが同じであるときに認証される、請求項2の方法。
【請求項4】
該第1の代理キー及び該第2の代理キーは、キー導出関数(KDF)と該共有秘密キーとを使用して独自に生成される、請求項1の方法。
【請求項5】
該KDFは、該第1の代理キーと該第2の代理キーとを取得するために1又はそれより多くの制約と該共有秘密キーとを入力として採用する、請求項4の方法。
【請求項6】
該共有秘密キーは、該第1の代理キーと、該1又はそれより多くの制約と、そして該KDFの知識とを用いてのみ再生されることができる、請求項4の方法。
【請求項7】
該ホスト・デバイスにおいて該第1の代理キーに関係する1又はそれより多くの制約を選択することをさらに具備する、ここにおいて、該第1の代理キーと該第2の代理キーは、該1又はそれより多くの制約に基づく、請求項1の方法。
【請求項8】
該代理デバイスから該クライアント・デバイスに該1又はそれより多くの制約を送ることをさらに具備する、ここにおいて、該クライアント・デバイスは、該制約を該第1の代理キーに適用する、請求項7の方法。
【請求項9】
該ホスト・デバイスから該クライアント・デバイスに該1又はそれより多くの制約を送ることをさらに具備する、ここにおいて、該クライアント・デバイスは、該制約を該第2の代理キーに適用する、請求項7の方法。
【請求項10】
代理キーがメッセージを安全にするために使用されようとしていることを該クライアント・デバイスに示すために、該代理デバイスから該クライアント・デバイスに送る該メッセージ中に標識子を設定すること
をさらに具備する、請求項1の方法。
【請求項11】
該ホスト・デバイスにおいて該第1の代理キーを導出するために使用される1又はそれより多くの制約を定めること;及び
該制約を該クライアント・デバイスに伝達すること
をさらに具備する、請求項1の方法。
【請求項12】
該1又はそれより多くの制約にしたがって該代理デバイスに関係する該クライアント・デバイスの動作を制限すること
をさらに具備する、請求項11の方法。
【請求項13】
ホスト・デバイス上で代理キーを生成するための方法であって、
同じ共有秘密キーを有するクライアント・デバイスとの通信を安全にするために使用する共有秘密キーを取得すること;
第1のキー導出関数を取得すること、ここにおいて、該第1のキー導出関数は、該クライアント・デバイスに既知の第2のキー導出関数に関係する;
該第1のキー導出関数と該共有秘密キーとに基づいて代理キーを生成すること;及び
該代理キーを代理デバイスに提供すること、ここにおいて、該代理デバイスは、該クライアント・デバイスとの通信を認証するために該代理キーを使用することが可能である
ことを具備する方法。
【請求項14】
該代理キーを生成する前に該代理キーについての1又はそれより多くの制約を定めること
をさらに具備する、請求項13の方法。
【請求項15】
該制約は、該代理キーを生成するために、そして該代理デバイスに送るために使用される、請求項14の方法。
【請求項16】
該1又はそれより多くの制約は、該クライアント・デバイスに送られる、請求項14の方法。
【請求項17】
該共有秘密キーは、該ホスト・デバイスと該クライアント・デバイスとの間の対称キー・セキュリティ方式において使用される、請求項13の方法。
【請求項18】
該第1のキー導出関数は、暗号化ブロック暗号法である、請求項13の方法。
【請求項19】
複数の暗号化関数を記憶すること;及び
該複数の暗号化関数の中から該第1のキー導出関数を選択すること
をさらに具備する、請求項13の方法。
【請求項20】
該代理キーを生成することは、該代理キーを取得するために該共有秘密キーとともに該第1のキー導出関数に対するパラメータとして1又はそれより多くの制約を使用することを含む、請求項13の方法。
【請求項21】
複数のキー導出関数のうちの1つを指定するデータを送信すること、
をさらに具備する、請求項20の方法。
【請求項22】
該1又はそれより多くの制約は、該代理キーがそのあいだ有効である期間を指示するタイムスタンプを含む、請求項20の方法。
【請求項23】
キー発生元ホスト・デバイスであって、
他のデバイスと通信するための通信インターフェース;
共有秘密キーとキー導出関数とを記憶するための記憶デバイス、ここにおいて、該共有秘密キーとキー導出関数は、両方ともクライアント・デバイスに既知である;及び
該通信インターフェース及び該記憶デバイスに接続された処理回路、
を具備し、該処理回路は;
該キー導出関数と共有秘密キーとに基づいて代理キーを生成するため、そして
代理デバイスに該代理キーを送るために構成され、ここにおいて、該代理デバイスは該クライアント・デバイスとの通信を認証するために該代理キーを使用することが可能である
処理回路である、キー発生元ホスト・デバイス。
【請求項24】
該処理回路は、
該代理キーを生成することの前に該代理キーについての1又はそれより多くの制約を定めるために
さら構成される、請求項23のデバイス。
【請求項25】
該制約は、該クライアント・デバイスと事前に取り決められる、請求項24のデバイス。
【請求項26】
該制約のうちの1つは、ある長さの時間の後で該代理キーを失効させる、請求項24のデバイス。
【請求項27】
該処理回路は、
該1又はそれより多くの制約を該代理デバイスに送るために
さらに構成される、請求項24のデバイス。
【請求項28】
該代理キーは、該1又はそれより多くの制約に基づいて生成される、請求項24のデバイス。
【請求項29】
該キー導出関数は、暗号化ブロック暗号法である、請求項23のデバイス。
【請求項30】
該記憶デバイスは、複数の暗号化関数を記憶し、そして該処理回路は、該複数の暗号化関数の中から該キー導出関数を選択するために構成される、請求項23のデバイス。
【請求項31】
該処理回路は、
該代理キーの中へと1又はそれより多くの制約を取り込むために使用する該複数の暗号化関数から該選択されたキー導出関数を指定するデータを送信するために
さらに構成される、請求項30のデバイス。
【請求項32】
代理発生デバイスであって、
同じ共有秘密キーを有するクライアント・デバイスとの安全な通信のために使用する共有秘密キーを取得するための手段;
キー導出関数を取得するための手段、ここにおいて、該キー導出関数は、該クライアント・デバイスにも既知である;
該キー導出関数と該共有秘密キーとに基づいて代理キーを生成するための手段;及び
該代理キーを代理デバイスに送るための手段、を具備する、ここにおいて、該代理デバイスは、該クライアント・デバイスとの通信を認証するために該代理キーを使用することが可能である、
代理発生デバイス。
【請求項33】
該ホスト・デバイスにおいて該代理キーについての1又はそれより多くの制約を定めるための手段;及び
該クライアント・デバイスに該制約を伝達するための手段、をさらに具備する、
ここにおいて、該キー導出関数は、該代理キーを生成するために該1又はそれより多くの制約と該共有秘密キーとを使用する
請求項32のデバイス。
【請求項34】
ホスト・デバイス上で代理キーを生成するために構成されたプロセッサであって、
処理回路を具備し、該処理回路は、
同じ共有秘密キーを有するクライアント・デバイスとの安全な通信のために使用する共有秘密キーを取得するため;
キー導出関数を取得するため、ここにおいて、該キー導出関数は、該クライアント・デバイスに既知の第2のキー導出関数に関係する;
該キー導出関数と該共有秘密キーとに基づいて代理キーを生成するため;及び
該代理キーを代理デバイスに提供するため
に構成された処理回路である、プロセッサ。
【請求項35】
該処理回路は、該代理キーを生成することの前に該代理キーについての1又はそれより多くの制約を定めるためにさらに構成される、請求項34のプロセッサ。
【請求項36】
該処理回路は、該1又はそれより多くの制約に基づいて該代理キーを生成するためにさらに構成される、請求項35のプロセッサ。
【請求項37】
該処理回路は、該1又はそれより多くの制約を該クライアント・デバイスに提供するためにさらに構成される、請求項35のプロセッサ。
【請求項38】
ホスト・デバイスにおいて代理キーを生成するための1又はそれより多くの命令を有する機械読み取り可能な媒体であって、該命令は、プロセッサにより実行されたときに該プロセッサに:
同じ共有秘密キーを有するクライアント・デバイスとの安全な通信のために使用する共有秘密キーを取得すること;
キー導出関数を取得すること、ここにおいて、該キー導出関数は、該クライアント・デバイスに既知の第2のキー導出関数に関係する;
該キー導出関数と該共有秘密キーとに基づいて該代理キーを生成すること;及び
該代理キーを代理デバイスに提供すること
を実行させる命令である、機械読み取り可能な媒体。
【請求項39】
該プロセッサにより実行されたときに該プロセッサに:
該代理キーについての1又はそれより多くの制約を定めること、
該1又はそれより多くの制約に基づいて該代理キーを生成すること
を実行させる1又はそれより多くの命令をさらに有する、請求項38の機械読み取り可能な媒体。
【請求項40】
該プロセッサにより実行されたときに該プロセッサに:
該クライアント・デバイスに該1又はそれより多くの制約を提供すること
を実行させる1又はそれより多くの命令をさらに有する、請求項39の機械読み取り可能な媒体。
【請求項41】
代理デバイス上で動作する方法であって、
ホスト・デバイスから代理キーを取得すること;
そのクライアント・デバイスと該ホスト・デバイスがキー導出関数と秘密キーとを共有している該クライアント・デバイスと使用するための該代理キーを記憶すること;
該代理キーを用いてメッセージを認証すること;及び
該クライアント・デバイスに該代理デバイスを認証させるために該クライアント・デバイスに該認証されたメッセージを送ること
を具備する方法。
【請求項42】
該クライアント・デバイスから認証されたメッセージを受け取ること;及び
該クライアント・デバイスからの該メッセージを認証するために該代理キーを使用することにより該クライアント・デバイスを認証すること
をさらに具備する、請求項41の方法。
【請求項43】
該代理キーに該ホスト・デバイスにより課せられた1又はそれより多くの制約を取得すること;及び
該クライアント・デバイスに該1又はそれより多くの制約を送ること
をさらに具備する、請求項41の方法。
【請求項44】
該代理キーは、該1又はそれより多くの制約に基づいて生成される、請求項43の方法。
【請求項45】
該認証されたメッセージが代理キーを使用して認証されることを示す標識子を該クライアント・デバイスに送ること
をさらに具備する、請求項41の方法。
【請求項46】
該代理キーを生成するために使用するキー導出関数を指定するデータを該クライアント・デバイスに送信すること
をさらに具備する、請求項41の方法。
【請求項47】
代理デバイスであって、
ホスト・デバイス及びクライアント・デバイスと通信するための通信インターフェース;
記憶デバイス;及び
該通信インターフェースと該記憶デバイスとに接続された処理回路、
を具備し、該処理回路は、
該ホスト・デバイスから代理キーを取得するため、
該クライアント・デバイスと使用するために該記憶デバイス中に該代理キーを記憶するため、ここにおいて、該ホスト・デバイスと該クライアント・デバイスは、キー導出関数と秘密キーとを共有する、
該代理キーを使用してメッセージを認証するため、そして
該クライアント・デバイスに該代理デバイスを認証させるために該クライアント・デバイスに該認証されたメッセージを送るため
に構成される、上記処理回路である、代理デバイス。
【請求項48】
該処理回路は、
該代理キーに対して該ホスト・デバイスにより課せられた1又はそれより多くの制約を取得するため;そして
該クライアント・デバイスに該1又はそれより多くの制約を送るため
にさらに構成される、請求項47の代理デバイス。
【請求項49】
該処理回路は、
該認証されたメッセージが制約されたキーを使用して安全にされることを示す標識子を該クライアント・デバイスに送るため、そして
該代理キーを生成するために使用するキー導出関数を指定するデータを該クライアント・デバイスに送るため
にさらに構成される、請求項47の代理デバイス。
【請求項50】
代理デバイスであって、
ホスト・デバイスから代理キーを取得するための手段;
そのクライアント・デバイスと該ホスト・デバイスがキー導出関数と秘密キーとを共有する該クライアント・デバイスと使用するための該代理キーを記憶するための手段;
該代理キーを用いてメッセージを認証するための手段;及び
該クライアント・デバイスに該代理デバイスを認証させるために該クライアント・デバイスに該認証されたメッセージを送るための手段
を具備する代理デバイス。
【請求項51】
該代理キーに対して該ホスト・デバイスにより課せられた1又はそれより多くの制約を取得するための手段;及び
該クライアント・デバイスに該1又はそれより多くの制約を送るための手段
をさらに具備する、請求項50の代理デバイス。
【請求項52】
代理デバイスを認証するためにクライアント・デバイス上で動作する方法であって、
ホスト・デバイスと該クライアント・デバイスとの両方に既知の共有秘密キーを取得すること;
該クライアント・デバイスと該ホスト・デバイスとの両方に既知のキー導出関数を取得すること;
該クライアント・デバイスにおいて代理デバイスからの認証されたメッセージを受け取ること;
該キー導出関数と該共有秘密キーとを使用してローカル代理キーを生成すること;及び
該ローカル代理キーを使用することにより該クライアント・デバイスにおいて該代理デバイスを認証すること
を具備する方法。
【請求項53】
1又はそれより多くの制約を取得すること;及び
該制約にしたがって該代理デバイスにより実行されることが可能な動作を制限すること
をさらに具備する、請求項52の方法。
【請求項54】
該1又はそれより多くの制約を使用して該ローカル代理キーを生成すること
をさらに具備する、請求項53の方法。
【請求項55】
該制約のうちの1又はそれより多くは、ある長さの時間の後で該代理キーの該認証を失効させるようにする、請求項52の方法。
【請求項56】
該受け取られるメッセージが第2の代理キーにより認証される標識子を受け取ることをさらに具備する、請求項52の方法。
【請求項57】
該第2の代理キーを生成するために使用するキー導出関数の標識子を受け取ることをさらに具備する、請求項56の方法。
【請求項58】
該代理デバイスは、該ローカル代理キーが安全にされたメッセージを良好に逆暗号化する場合に、該クライアント・デバイスによって認証される、請求項52の方法。
【請求項59】
キー認証クライアント・デバイスであって、
代理デバイスと通信するための通信インターフェース;
共有秘密キーとキー導出関数とを記憶するための記憶デバイス、ここにおいて、該共有秘密キーと該キー導出関数は、ホスト・デバイスに両方とも既知である;及び
該通信インターフェース及び該記憶デバイスに接続された処理回路、
を具備し、該処理回路は、
該代理デバイスから安全なメッセージを受け取るため、
該キー導出関数と該共有秘密キーとを使用してローカル代理キーを生成するため、及び
該ローカル代理キーを使用することにより該代理デバイスを認証するため
に構成される、キー認証クライアント・デバイス。
【請求項60】
該処理回路は、該代理デバイスについての1又はそれより多くの制約を取得するため;そして
該1又はそれより多くの制約にしたがって該代理デバイスにより実行されることが可能な動作を制限するため
にさらに構成される、請求項59のデバイス。
【請求項61】
該制約のうちの1つは、ある長さの時間の後で該代理キーの該認証を失効させるようにする、請求項59のデバイス。
【請求項62】
該処理回路は、
該受け取られるメッセージが代理キーにより認証されるようにする標識子を受け取るため;そして
該受け取られるメッセージを安全にするために使用するキー導出関数の標識子を受け取るため
にさらに構成される、請求項59のデバイス。
【請求項63】
キー認証クライアント・デバイスであって、
同じ共有秘密キーを有する該クライアント・デバイスとの通信を認証するためにホスト・デバイスにより使用されることが可能である共有秘密キーを取得するための手段;
該ホスト・デバイスと該クライアント・デバイスとの両方に既知のキー導出関数を取得するための手段;
該クライアント・デバイスにおいて代理デバイスからの認証されたメッセージを受け取るための手段;
該キー導出関数と該共有秘密キーとを使用してローカル代理キーを生成するための手段;及び
該ローカル代理キーを使用することにより該代理デバイスを認証するための手段
を具備する、キー認証クライアント・デバイス。
【請求項64】
1又はそれより多くの制約を取得するための手段;
該1又はそれより多くの制約を使用して該ローカル代理キーを生成するための手段;及び
該制約にしたがって該代理デバイスにより実行されることが可能である動作を制限するための手段
をさらに具備する、請求項63のデバイス。
【請求項65】
クライアント・デバイス上で代理デバイスを認証するために構成されたプロセッサであって、
処理回路、
を具備し、該処理回路は:
同じ共有秘密キーを有する該クライアント・デバイスとの通信を認証するためにホスト・デバイスにより使用されることが可能である共有秘密キーを取得するため;
該クライアント・デバイスと該ホスト・デバイスとの両方に既知のキー導出関数を取得するため;
該クライアント・デバイスにおいて代理デバイスからの認証されたメッセージを受け取るため;
該キー導出関数と該共有秘密キーとを使用してローカル代理キーを生成するため;及び
該ローカル代理キーを使用することにより該クライアント・デバイスにおいて該代理デバイスを認証するため
に構成された処理回路である、プロセッサ。
【請求項66】
該処理回路は、
該代理デバイスについての1又はそれより多くの制約を取得するため;そして
該1又はそれより多くの制約に基づいて該ローカル代理キーを生成するため
にさらに構成される、請求項65のプロセッサ。
【請求項67】
該処理回路は、
該1又はそれより多くの制約に基づいて該クライアント・デバイスに関係する該代理デバイスの動作を制限するため
にさらに構成される、請求項66のプロセッサ。
【請求項68】
クライアント・デバイスにおいて代理キーを認証するための1又はそれより多くの命令を有する機械読み取り可能な媒体であって、該命令はプロセッサにより実行されたときに該プロセッサに:
同じ共有秘密キーを有する該クライアント・デバイスとの通信を認証するためにホスト・デバイスにより使用されることが可能である共有秘密キーを取得すること;
該クライアント・デバイスと該ホスト・デバイスとの両方に既知のキー導出関数を取得すること;
該クライアント・デバイスにおいて代理デバイスからの認証されたメッセージを受け取ること;
該キー導出関数と該共有秘密キーとを使用してローカル代理キーを生成すること;及び
該ローカル代理キーを使用することにより該クライアント・デバイスにおいて該代理デバイスを認証すること
を実行させる上記命令である、機械読み取り可能な媒体。
【請求項69】
該プロセッサにより実行されたときに該プロセッサに:
該代理キーについての1又はそれより多くの制約を取得すること;そして
該1又はそれより多くの制約に基づいて該ローカル代理キーを生成すること
を実行させる1又はそれより多くの命令をさらに有する、請求項68の機械読み取り可能な媒体。
【請求項70】
該プロセッサにより実行されたときに該プロセッサに:
該1又はそれより多くの制約に基づいて該クライアント・デバイスに関係する該代理デバイスの動作を制限すること
を実行させる1又はそれより多くの命令をさらに有する、請求項69の機械読み取り可能な媒体。
【請求項71】
該受け取られた認証メッセージが該ローカル代理キーを使用することにより適正に認証される場合に、該代理デバイスは認証される、請求項68の機械読み取り可能な媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公表番号】特表2009−510978(P2009−510978A)
【公表日】平成21年3月12日(2009.3.12)
【国際特許分類】
【出願番号】特願2008−542310(P2008−542310)
【出願日】平成18年9月29日(2006.9.29)
【国際出願番号】PCT/US2006/038110
【国際公開番号】WO2008/054375
【国際公開日】平成20年5月8日(2008.5.8)
【出願人】(595020643)クゥアルコム・インコーポレイテッド (7,166)
【氏名又は名称原語表記】QUALCOMM INCORPORATED
【Fターム(参考)】
【公表日】平成21年3月12日(2009.3.12)
【国際特許分類】
【出願日】平成18年9月29日(2006.9.29)
【国際出願番号】PCT/US2006/038110
【国際公開番号】WO2008/054375
【国際公開日】平成20年5月8日(2008.5.8)
【出願人】(595020643)クゥアルコム・インコーポレイテッド (7,166)
【氏名又は名称原語表記】QUALCOMM INCORPORATED
【Fターム(参考)】
[ Back to top ]