(57)【要約】共有される鍵システム（１００）におけるユーザのプライバシーを保護するための方法および装置。一態様によれば、ユーザ（１１４）は、鍵（１０２）とセッション変数に基づいて派生識別情報（１０８）を生成し、またアプリケーション（１１６）に派生識別情報を送る。一実施形態においては、キーサーバ（１２６）は、派生識別情報をアプリケーションから受信するために、また、ユーザとの通信を暗号化する場合に使用するようにアプリケーションにサブ鍵（１３８）を戻すために、使用されることができる。
2009523396.tif 000002
【特許請求の範囲】
【請求項１】
ユーザのプライバシーを保護するための方法であって、
鍵とセッション変数を備える少なくとも１つのパラメータとに基づいてユーザに関連する、派生識別情報を生成することと、
前記派生識別情報をアプリケーションに送信することと、
を備える方法。
【請求項２】
トラフィック鍵を生成することと、
前記トラフィック鍵を使用して前記アプリケーションと通信することと、
をさらに備える請求項１に記載の方法。
【請求項３】
前記ユーザは、少なくとも２セッションの間、前記の同じアプリケーションと通信する、請求項１に記載の方法。
【請求項４】
前記ユーザは、少なくとも２セッションの間、セッションごとに異なるアプリケーションと通信する、請求項１に記載の方法。
【請求項５】
前記セッション変数はカウンタ値を備える、請求項１に記載の方法。
【請求項６】
前記セッション変数はタイムスタンプを備える、請求項１に記載の方法。
【請求項７】
前記セッション変数は擬似乱数ジェネレータの出力を備える、請求項１に記載の方法。
【請求項８】
前記カウンタ値は、インクリメンタルカウンタの出力を備えており、前記出力は、セッションごとに異なっている、請求項５に記載の方法。
【請求項９】
前記少なくとも１つのパラメータは、前記ユーザと通信している前記アプリケーションに関連するアプリケーション識別情報、を備える、請求項１に記載の方法。
【請求項１０】
前記アプリケーション識別情報は、ワイルドカードアプリケーション識別情報を備え、前記ワイルドカードアプリケーション識別情報は、前記ユーザと通信している前記アプリケーションのアプリケーション識別情報が前記ユーザに知られていないときに、使用される、請求項９に記載の方法。
【請求項１１】
前記少なくとも１つのパラメータに基づいて派生識別情報を前記生成することは、ハッシュ関数を前記少なくとも１つのパラメータに適用すること、を備える、請求項１に記載の方法。
【請求項１２】
前記少なくとも１つのパラメータに基づいて派生識別情報を前記生成することは、前記少なくとも１つのパラメータのうちの少なくとも１つを、前記少なくとも1つのパラメータのうちの少なくとも１つに適用されるハッシュ関数の出力と連結すること、を備える、請求項１に記載の方法。
【請求項１３】
キーサーバを有するシステムにおいて、通信の間、ユーザのプライバシーを保護するための方法であって、前記方法は、
鍵とセッション変数を備える少なくとも１つのパラメータとから生成された派生識別情報を、ユーザから受信することと、
前記派生識別情報を、前記キーサーバに送信することと、
前記ユーザに関連する情報を、前記キーサーバから受信することと、
を備える方法。
【請求項１４】
前記ユーザと通信するために前記情報を使用すること、をさらに備える請求項１３に記載の方法。
【請求項１５】
前記ユーザに関連する前記情報は、派生鍵を備え、前記派生鍵は、前記ユーザと通信するために使用される、請求項１４に記載の方法。
【請求項１６】
前記キーサーバから受信した前記派生鍵は、前記少なくとも１つのパラメータのうちの少なくとも１つに基づいて生成される、請求項１５に記載の方法。
【請求項１７】
前記派生識別情報は、ハッシュ関数を前記少なくとも１つのパラメータに適用することによって、前記少なくとも１つのパラメータから生成される、請求項１３に記載の方法。
【請求項１８】
前記セッション変数はカウンタ値を備える、請求項１３に記載の方法。
【請求項１９】
前記少なくとも１つのパラメータは、前記ユーザによってリクエストされたアプリケーションに関連するアプリケーション識別情報、をさらに備える、請求項１３に記載の方法。
【請求項２０】
前記キーサーバは、もし前記アプリケーション識別情報がリクエストしているアプリケーションに関連するアプリケーション識別情報とマッチしない場合は、前記情報を提供しないように構成される、請求項１９に記載の方法。
【請求項２１】
前記ユーザとの次の通信セッションに関連する情報に関して前記ユーザに同意することと、
前記次の通信セッションに関連する前記情報を、前記キーサーバに、送信することと、
前記ユーザに関連するさらなる情報を、前記キーサーバから、受信することと、
前記ユーザとの次の通信セッションの間に前記ユーザと通信するために前記さらなる情報を使用することと、
をさらに備える請求項１３に記載の方法。
【請求項２２】
鍵とセッション変数を備える少なくとも１つのパラメータとから生成された派生鍵識別情報を、ユーザから、受信することと、
前記派生鍵識別情報から前記鍵を識別することと、
を備えるユーザのプライバシーを保護するための方法。
【請求項２３】
前記少なくとも１つのパラメータのうちの少なくとも１つに基づいて派生鍵を生成することと、
前記派生鍵を使用して、前記ユーザとの暗号化された通信に従事することと、
をさらに備える請求項２２に記載の方法。
【請求項２４】
前記セッション変数は、通信セッションに従事する前あるいは後にインクリメントされるカウンタ値を備える、請求項２２に記載の方法。
【請求項２５】
前記ユーザとの次の通信セッションに関連する情報に関して前記ユーザに同意することと、
前記ユーザとの次の通信セッションの間に、前記ユーザと通信するために前記情報を使用することと、
をさらに備える請求項２４に記載の方法。
【請求項２６】
キーサーバを有するシステムにおいて、通信の間、ユーザのプライバシーを保護するための方法であって、前記方法は、
鍵とセッション変数を備える少なくとも１つのパラメータとから生成された派生識別情報を、リクエストするアプリケーションから受信することと、
前記派生識別情報から前記ユーザを識別することと、
を備える方法。
【請求項２７】
、前記リクエストするアプリケーションに、前記ユーザに関連する情報を送信すること、をさらに備える請求項２６に記載の方法。
【請求項２８】
前記情報は、前記リクエストするアプリケーションと前記ユーザとの間で通信されるデータを、暗号化することおよび復号化することのために使用されるサブ鍵を備える、請求項２７に記載の方法。
【請求項２９】
前記セッション変数はカウンタ値を備える、請求項２６に記載の方法。
【請求項３０】
前記少なくとも１つのパラメータは、前記ユーザと通信している認証アプリケーションに関連する認証アプリケーション識別情報、を備える、請求項２６に記載の方法。
【請求項３１】
もし前記認証アプリケーション識別情報が、前記リクエストするアプリケーションの前記アプリケーション識別情報とマッチしない場合は、前記リクエストするアプリケーションに、前記ユーザに関連する前記情報を送信しないこと、をさらに備える請求項３０に記載の方法。
【請求項３２】
鍵とセッション変数を備える少なくとも１つのパラメータとに基づいてユーザに関連する派生識別情報を生成するための派生識別情報ジェネレータと、
アプリケーションに前記派生識別情報を送信するための送信機と、
を備えるユーザのプライバシーを保護するための装置。
【請求項３３】
鍵を生成するための鍵ジェネレータをさらに備えており、前記装置は、前記生成された鍵を使用して前記アプリケーションと通信する、請求項３２に記載の装置。
【請求項３４】
前記装置は、少なくとも２セッションの間、前記の同じアプリケーションと通信する、請求項３２に記載の装置。
【請求項３５】
前記ユーザは、少なくとも２セッションの間、セッションごとに異なるアプリケーションと通信する、請求項３２に記載の装置。
【請求項３６】
キーサーバを有するシステムにおいて、通信の間、ユーザのプライバシーを保護するための装置であって、前記装置は、
鍵とセッション変数を備える少なくとも１つのパラメータとから生成された、派生された識別情報を、ユーザから、受信するための受信機と、
前記キーサーバに、前記の派生されたユーザ識別情報を送信するための送信機と、
を備える装置。
【請求項３７】
前記受信機は、前記ユーザに関連する情報を、前記キーサーバから、受信するようにさらに構成され、そして、前記情報は、前記ユーザと通信するために前記装置によって使用される、請求項３６に記載の装置。
【請求項３８】
鍵とセッション変数を備える少なくとも１つのパラメータとから生成された派生識別情報を、ユーザから、受信するための受信機と、
前記派生鍵識別情報から前記鍵を識別するためのプロセッサと、
を備えるユーザのプライバシーを保護するための装置。
【請求項３９】
前記少なくとも１つのパラメータのうちの少なくとも１つに基づいて派生鍵を生成するためのジェネレータをさらに備えており、前記装置は、前記派生鍵を使用して前記ユーザと通信する、請求項３８に記載の装置。
【請求項４０】
キーサーバを有するシステムにおいて、通信の間、ユーザのプライバシーを保護するための装置であって、前記装置は、
鍵とセッション変数を備える少なくとも１つのパラメータとから生成されたユーザに関連する派生識別情報を、リクエストするアプリケーションから、受信するための受信機と、
前記派生識別情報から前記ユーザを識別するためのプロセッサと、
を備える装置。
【請求項４１】
前記リクエストするアプリケーションに、前記ユーザに関連する情報を送信するための送信機をさらに備える、請求項４０に記載の装置。
【請求項４２】
アプリケーションとの通信の間、ユーザのプライバシーを保護するための装置であって、前記装置は、
派生識別情報を生成するための手段と、
アプリケーションに前記派生識別情報を送るための手段と、
を備える装置。
【請求項４３】
鍵を生成するための手段をさらに備えており、前記装置は、前記生成された鍵を使用して前記アプリケーションと通信する、請求項４２に記載の装置。
【請求項４４】
キーサーバを有するシステムにおいて、通信の間、ユーザのプライバシーを保護するための装置であって、前記装置は、
鍵とセッション変数を備える少なくとも１つのパラメータとから生成された派生識別情報を、リクエストするアプリケーションから受信するための受信機と、
前記派生識別情報から前記ユーザを識別するための手段と、
前記リクエストするアプリケーションに、前記ユーザに関連する情報を送信するための送信機と、
を備える装置。
【発明の詳細な説明】
【優先権の主張】
【０００１】
（米国特許法第１１９条の下の優先権主張）
本願は、２００６年１月１３日に出願された仮出願第６０／７５８，９７１号、および、２００６年１月２７日に出願された仮出願第６０／７６２，７７１号の優先権を主張する、なお、両仮出願は、ここでの譲受人に譲渡されており、また、それらの全体の開示は、ここにおいて参照することにより、ここに明示的に組み込まれる。
【背景】
【０００２】
（分野）
本発明は、一般に通信に関し、さらに具体的には、通信システムにおいて、ユーザのプライバシーを保護すること(protecting)に関する。
【０００３】
（背景）
最近のデバイス(modern devices)が任意のアプリケーションサーバ(arbitrary application servers)と通信することが可能になるにつれ、そのような通信は、認証され(authenticated)、セキュリティ保護される(secured)必要がある。非対称あるいは公開の鍵システムにおいては、デバイス(device)（あるいは「ユーザ(user)」）は、アプリケーションサーバ(application server)（あるいは「アプリケーション(application)」）に、公開鍵(public key)を提示できるが、一方では、個別の秘密鍵(private key)を秘密にする。共有あるいは対称の鍵システムにおいては、ユーザは、ユーザ識別情報(user identity)を使用して、アプリケーションとの通信を行なうことができ、また、ユーザ識別情報が、ユーザが実際に誰であるかを明かさないかもしれない、という点で、それは「匿名」であり得る。このユーザ識別情報を受信すると、アプリケーションは、そのあと、ユーザとの暗号化された通信に従事するために、そのユーザ識別情報にリンクされた鍵を得ることができる。鍵(key)は、以前にアプリケーションに知られているものであってもよく、あるいは、それは、キーサーバ(key server)、例えば、ユーザとアプリケーションの両方によって信頼されている第三者、からフェッチされ(fetched)てもよい。
【０００４】
「匿名の」ユーザ識別情報が使用されるときでさえ、これらのシステムにおいては、ユーザのプライバシーが損なわれる(compromised)かもしれない、あるいくつかの状態(certain ways)がある。例えば、ユーザが、マルチプルセッションにわたってアプリケーションと、同じユーザ識別情報を交換する(exchanges)場合は、アプリケーションは、ユーザのセッションを互いにリンクすることによって、ユーザについての個人情報を推測する(infer)かもしれない。これは、「リンカビリティアタック」(“linkability attack”)と呼ばれる。例えば、無線ネットワークにおいて、いくつかの基地局にアクセスするために１つの識別情報を使用すれば、ユーザがネットワーク全体にわたって追跡されている(tracked)ことにいたることがあり得るであろう。あるいは、もしユーザが、同じユーザ識別情報を使用していくつかの異なるアプリケーションにアクセスする場合、そのときは、第三者は、アプリケーションとキーサーバとの間でユーザ識別情報の通信を受動的に盗聴する(eavesdropping)ことによって、ユーザがどのアプリケーションにアクセスしたか、また、ユーザがいつそれらアプリケーションにアクセスしたかを、確かめることができる。これは、ユーザのプリファランス(user’s preferences)についての個人情報を潜在的に暴露する。同じ情報は、アクセスされたアプリケーションを直接的にクエリする(querying)第三者によって得られるかもしれない。
【発明の開示】
【概要】
【０００５】
本発明の一態様は、鍵とセッション変数を備える少なくとも１つのパラメータとに基づいてユーザに関連する派生識別情報(derived identity)を生成すること、および、アプリケーションに派生識別情報を送信すること、を備える、ユーザのプライバシーを保護するための方法を提供する。
【０００６】
本発明の別の態様は、キーサーバを有するシステムにおいて、通信の間、ユーザのプライバシーを保護するための方法を提供し、該方法は、鍵とセッション変数を備える少なくとも１つのパラメータとから生成された派生識別情報をユーザから受信することと、派生識別情報をキーサーバに送信することと、ユーザに関連する情報をキーサーバから受信することと、を備える。
【０００７】
さらに、本発明の別の態様は、鍵とセッション変数を備える少なくとも１つのパラメータとから生成された派生鍵識別情報を、ユーザから、受信することと、派生鍵識別情報から鍵を識別することと、を備える、ユーザのプライバシーを保護するための方法を提供する。
【０００８】
さらに、本発明の別の態様は、キーサーバを有するシステムにおいて、通信の間、ユーザのプライバシーを保護するための方法を提供し、該方法は、鍵とセッション変数を備える少なくとも１つのパラメータとから生成された派生鍵識別情報をリクエストするアプリケーションから受信することと、派生ユーザ識別情報からユーザを識別することと、を備える。
【０００９】
さらに、本発明の別の態様は、鍵とセッション変数を備える少なくとも１つのパラメータとに基づいてユーザに関連する派生識別情報を生成するための派生識別情報ジェネレータと、アプリケーションに派生識別情報を送信するための送信機と、を備えるユーザのプライバシーを保護するための装置(apparatus)を提供する。
【００１０】
さらに、本発明の別の態様は、キーサーバを有するシステムにおいて、通信の間、ユーザのプライバシーを保護するための装置を提供し、該装置は、鍵とセッション変数を備える少なくとも１つのパラメータとから生成された派生識別情報をユーザから受信するための受信機と、派生ユーザ識別情報をキーサーバに送信するための送信機と、を備える。
【００１１】
さらに、本発明の別の態様は、鍵とセッション変数を備える少なくとも１つのパラメータとから生成された派生鍵識別情報をユーザから受信するための受信機と、派生鍵識別情報から鍵を識別するためのプロセッサと、を備える、ユーザのプライバシーを保護するための装置を提供する。
【００１２】
さらに、本発明の別の態様は、キーサーバを有するシステムにおいて、通信の間、ユーザのプライバシーを保護するための装置を提供し、該装置は、鍵とセッション変数を備える少なくとも１つのパラメータとから生成された派生識別情報をリクエストするアプリケーションから受信するための受信機と、派生鍵識別情報からユーザを識別するためのプロセッサと、を備える。
【００１３】
さらに、本発明の別の態様は、アプリケーションとの通信の間、ユーザのプライバシーを保護するための装置を提供し、該装置は、派生識別情報を生成するための手段と、アプリケーションに派生識別情報を送信するための手段と、を備える。
【００１４】
さらに、本発明の別の態様は、キーサーバを有するシステムにおいて、通信の間、ユーザのプライバシーを保護するための装置を提供し、該装置は、鍵とセッション変数を備える少なくとも１つのパラメータとから生成された派生鍵識別情報をリクエストするアプリケーションから受信するための受信機と、派生識別情報からユーザを識別するための手段と、リクエストするアプリケーションに、ユーザに関連する情報を送信するための送信機と、を備える。
【詳細な説明】
【００１５】
ユーザのプライバシーを保護するために、アプリケーションに対してあるいは通信上で盗聴する第三者に対してユーザの実際の識別情報を明らかにする(revealing)ことなしに、あるいは別の状況では、異なるセッションが同じユーザから始まることをアプリケーションが決定することを可能にすることなく、ユーザとアプリケーションとの間で安全な通信(secure communications)を提供する必要性がある。ここに開示される本発明は、この必要性に対処する。
【００１６】
いまから図１を参照すると、図１は、通信システム１００の一実施形態を示しており、ここでは、キーサーバが、ユーザとアプリケーションとの間の暗号化された通信を容易にするために使用されている。
【００１７】
通信システム１００は、例えば、ＷＣＤＭＡ（広帯域符号分割多元接続）、ｃｄｍａ２０００、あるいはＩＰ（インターネットプロトコル）標準規格、あるいは任意の他の適切な標準規格またはプロトコル、のような通信標準規格および／またはプロトコルの下で動作する、任意の音声、データあるいはマルチメディアシステムであることができる。実施形態は、例えば、様々な通信標準規格において規定される(specified)ような、包括的ブートストラッピングアーキテクチャ(the Generic Bootstrapping Architecture)に対する拡張(enhancement)として、利用されることができる。（例えば、「包括的認証アーキテクチャ(Generic Authentication Architecture）（ＧＡＡ）：包括的ブートストラッピングアーキテクチャ」３ＧＰＰ  ＴＳ  ３３．２２０、および、「包括的ブートストラッピングアーキテクチャ(Generic Bootstrapping Architecture)（ＧＢＡ）フレームワーク」３ＧＰＰ２  Ｓ．Ｓ０１０９−０バージョン１、を参照)
【００１８】
図１において示されるように、ユーザ１１４（ユーザ機器(user equipment)とも呼ばれる）は、システム１００において、アプリケーション１１６にアクセスすることができる。アプリケーション１１６は、特定のアプリケーションをサービス提供している(serving)ネットワークにおける専用サーバであってもよく、例えば、ＶｏＩＰ（ボイスオーバーインターネットプロトコル(Voice over Internet Protocol)）、あるいはネットワークエレメントそれ自体であってもよい。アプリケーション１１６はまた、ネットワーク上でサーバあるいは他のデバイスに保存されるソフトウェアアプリケーションであってもよい。一実施形態においては（示されてはいない）、アプリケーション１１６は、キーサーバ１２６と同じ物理的なデバイス(physical device)上で常駐できるであろう。各アプリケーションは、ユーザ１１４および／またはキーサーバ１２６と通信するために、それ自身の専用送信機／受信機回路（示されてはない）を有してもよく、あるいは、いくつかのアプリケーションは、共通の送信機／受信機回路を共有してもよい。アプリケーションは、いくつかの物理的エンティティ(physical entities)を含むことができ、例えば、アプリケーションは、マルチプル基地局を備える全体のモバイルネットワークであってもよい、ということに注目されることができる。
【００１９】
一実施形態において、ユーザ１１４は、そのメモリの中に鍵１０２を事前記憶(pre-store)してもよい。鍵１０２、および、それがユーザ１１４の中に保存されているという事実、の両方が、キーサーバ１２６に知られている。鍵１０２は、ユーザ１１４に対して、あるいはユーザ１１４を含むユーザのグループに対して、固有(unique)であることができる。鍵１０２は、永久に、あるいは特定の時間の期間の間(during a specific time period)のみ、使用されることができる。一実施形態においては、鍵１０２は、キーサーバ１２６およびユーザ１１４のような、許可された当事者(authorized parties)にのみ知られている。
【００２０】
一実施形態において、ユーザ１１４およびキーサーバ１２６の両方は、共通の式を使って、ｔｅｍｐ＿ＩＤ  １０８（派生識別情報(derived identity)とも呼ばれる）を以下のように生成することができる：
ｔｅｍｐ＿ｉｄ＝Ｆ（ｋｅｙ，ｍ）                            式（１）
式（１）において、Ｆは、暗号ハッシュ関数のようなあらかじめ決定されたアルゴリズム関数(predetermined algorithm function)である。あるいは、Ｆは、１つ以上のパラメータを１つ以上のハッシュ関数(hash functions)の出力と連続的に連結する関数であることができる。Ｆはまた、１つ以上の他のハッシュ関数の出力を備えた複数のパラメータの組み合わせに関するハッシュ(hash)を実行する関数であることができる。一実施形態においては、あらかじめ決定されたアルゴリズム関数は、安全なハッシュアルゴリズム(Secure Hash Algorithm)ＳＨＡ−１であることができる。（連邦情報処理規格公表(Federal Information Processing Standard Publication)１８０−１（１９９５年）参照）
【００２１】
また、式（１）において、ｍは、パラメータセット(parameter set)を示しており、そのパラメータセットは、例えば、ユーザ識別情報、１つ以上のセッション依存変数(session-dependent variable)、および／または他のパラメータを含むことができる。セッションは、同じｔｅｍｐ＿ＩＤが使用されるアプリケーションとユーザとの間の１セットの通信(a set of communications)を表わすことができる。一実施形態において、ｍは、一般に、ｔｅｍｐ＿ＩＤがアプリケーションと交換されるたびに、変わることができる少なくとも１つのセッション変数を含む。そのような変数は、デジタルでインクリメントされたユースカウンタ(use counter)、タイムスタンプ(time stamp)、あるいは、擬似乱数ジェネレータ(pseudorandom number generator)の出力、であってもよい。より大きなセッション変数は、より大きなインプリメンテーショナルな複雑性(implementational complexity)という犠牲を払って、より大きなセキュリティに使用されることができることが理解されるであろう。一実施形態においては、セッション変数は、１６ビットのカウンタ値(counter value)であることができる。
【００２２】
再び図１を参照すると、Ｆとｍの両方は、ユーザ１１４およびキーサーバ１２６に知られている。一実施形態においては、キーサーバ１２６は、与えられた鍵１０２に基づいたｔｅｍｐ＿ＩＤの値とパラメータｍのすべての可能性のある値とを前計算し(pre-calculate)、保存することができるので、与えられたｔｅｍｐ＿ＩＤ、それを生成するために使用される鍵１０２は、速く識別されることができる。
【００２３】
図２は、プロセスあるいは方法２００の一実施形態を示しており、ここでは、ユーザ１１４は、図１において示される実施形態に従ってアプリケーション１１６との安全な通信を確立することができる。まず、ステップ２０１において、ユーザ１１４は、鍵とパラメータセットｍからのｔｅｍｐ＿ＩＤ  １０８を計算し、アプリケーション１１６にｔｅｍｐ＿ＩＤ１０８を送る。
【００２４】
ステップ２０２において、それが、ユーザ１１４によって送られたｔｅｍｐ＿ＩＤ  １０８をいったん受け取ると、アプリケーション１１６は、キーサーバ１２６にｔｅｍｐ＿ＩＤ１０８を送る。
【００２５】
前に説明されたように、一実施形態において、キーサーバ１２６は、そのメモリの中に、１セットのｔｅｍｐ＿ＩＤｓおよび鍵を、事前記憶する。ステップ２０３において、キーサーバ１２６は、鍵１０２を識別するためにアプリケーション１１６から受け取ったｔｅｍｐ＿ＩＤ  １０８を使用する。前に述べたように、各鍵は固有のユーザに対応することができる。この例において、鍵１０２はユーザ１１４に対応する。それゆえに、ステップ２０３において示されるように、キーサーバ１２６は、ユーザ１１４とｔｅｍｐ＿ＩＤ  １０８をマッチする(match)ことができる。
【００２６】
ステップ２０３において、キーサーバ１２６は、鍵１０２に基づいてｓｕｂ＿ｋｅｙ  ２３８（ここではトラフィック鍵(traffic key)とも呼ばれる）をさらに生成することができる。このサブ鍵の生成は、別のアルゴリズム関数を使用してもよく、ユーザ１１４およびキーサーバ１２６にのみ知られているパラメータを含んでもよい。一実施形態において、ｔｅｍｐ＿ＩＤ  １０８自体の値は、関連するサブ鍵を生成することに使用されてもよい。代替実施形態においては、任意の数のサブ鍵２３８は、適切なシーケンスの数と鍵１０２のハッシュ関数（例えば、ＳＨＡ−１）を利用することにより生成されることができる。
【００２７】
ステップ２０４において、キーサーバ１２６は、アプリケーション１１６にｓｕｂ＿ｋｅｙ２３８を送る。キーサーバ１２６はまた、アプリケーション１１６に、ユーザ１１４についての他の情報を送ってもよい。
【００２８】
ユーザ１１４は、それに既に知られているパラメータからｓｕｂ＿ｋｅｙ  ２３８（あるいは「トラフィック鍵」）を独立して生成することができる。したがって、ｓｕｂ＿ｋｅｙ  ２３８がアプリケーション１１６およびユーザ１１４の両方に知られている状態で、両側は、ステップ２０５で図示されるように、それらの間で送られたデータ２４０を暗号化し復号化する(encrypt and decrypt)ためにｓｕｂ＿ｋｅｙ  ２３８を使用することができる。
【００２９】
図１に戻って参照すると、もしユーザ１１４が引き続いて別のアプリケーション１２２にアクセスする場合は、ｔｅｍｐ＿ＩＤ  １０８以外のｔｅｍｐ＿ＩＤは、上記に説明されたように、式（１）に従って計算されることができる。もし関数Ｆが、同じユーザによって異なるセッションの間に使用される他のｔｅｍｐ＿ＩＤｓとｔｅｍｐ＿ＩＤ  １０８との関係が容易に認識できないよう(discernible)に選ばれるのであれば、無認可の当事者(unauthorized party)が、傍受された(intercepted)ｔｅｍｐ＿ＩＤを、いずれかの特定ユーザと関連付ける(link)ことは困難であろう、したがって、ユーザの識別情報のプライバシーを保護する。
【００３０】
一実施形態において、式（１）で、ｔｅｍｐ＿ＩＤを生成するために使用されたパラメータセットｍは、アクセスされたアプリケーションに対応して、アプリケーション識別情報（ａｐｐ＿ＩＤ）を含むことができる。このようにして、キーサーバ１２６は、キーサーバ１２６からユーザ情報をリクエストするアプリケーション１１６がユーザ１１４によって実際にアクセスされたかどうかを、ｔｅｍｐ＿ＩＤ  １０８から分かる。セキュリティのために、キーサーバ１２６は、ユーザ識別情報と特定ユーザ向け鍵(user-specific key)とを含んでいるユーザ１１４についての情報を、ａｐｐ＿ＩＤがｔｅｍｐ＿ＩＤ  １０８を生成するために使用されるａｐｐ＿ＩＤとマッチするアプリケーション１１６のみに送信すること、を選ぶことができる。これは、ユーザ１１４によってアクセスされていない、アプリケーション１１８のような別のアプリケーションが、キーサーバ１２６からユーザ１１４に関する情報を得るのを防ぐ。
【００３１】
一実施形態においては、ユーザ１１４がアクセスしたいアプリケーションのａｐｐ＿ＩＤをユーザ１１４がまだ知らないとき、ユーザ１１４は、ｔｅｍｐ＿ＩＤを生成するよう要求されることさえあるかもしれない。このケースにおいては、ユーザは、それにもかかわらず、特定アプリケーション向けａｐｐ＿ＩＤ(application-specific app_ID)の代わりに、固定の「ワイルドカード(wildcard)」あるいは「デフォルト(default)」のａｐｐ＿ＩＤを使用することによって、ｔｅｍｐ＿ＩＤを生成することができる。この実施形態において、キーサーバは、例えば、「ワイルドカード」あるいは「デフォルト」のａｐｐ＿ＩＤを含むｔｅｍｐ＿ＩＤを認識するように、また、たとえワイルドカードａｐｐ＿ＩＤがリクエストするアプリケーションのａｐｐ＿ＩＤとマッチしなくても、アプリケーションに特定ユーザ向けデータを提供するように、構成されることができる。しばらく経って、一度ユーザがアプリケーションのａｐｐ＿ＩＤを確認したならば、ユーザは正しいａｐｐ＿ＩＤに基づいて新しいｔｅｍｐ＿ＩＤを生成することができる。
【００３２】
本発明の別の実施形態においては、もし、新しいパラメータセットｍ’が、セッションの間に、ユーザとアプリケーションとによって同意される(agreed upon)場合、そのときは、キーサーバをクエリすること(querying)によって、アプリケーションは、次のセッション(subsequent session)の間に使用されるべき新しいｔｅｍｐ＿ＩＤを決定できるであろう。これをするために、そのアプリケーションは、例えば、初めにユーザから受信されるｔｅｍｐ＿ＩＤに沿って、新しいパラメータセットｍ’を、キーサーバに供給できるであろう。このことは、ユーザを、新しいｔｅｍｐ＿ＩＤの使用が望まれるたびに、アプリケーションに新しいｔｅｍｐ＿ＩＤを送信しなければならない手間を省く(saves)。
【００３３】
図３は、キーサーバを使用せずに、ユーザ１１４がアプリケーション１１６と安全に(securely)通信することができるプロセスあるいは方法３００の実施形態を示す。この実施形態においては、ユーザ１１４およびアプリケーション１１６は、図３において図示された通信を始める前に、ある鍵の分配スキーム(some key distribution scheme)を通して、鍵Ｋを既に共有すると仮定される。一実施形態において、鍵Ｋは、ユーザとアプリケーションのような認可された当事者のみに知られている変数である。
【００３４】
ステップ３０１において、ユーザ１１４は、次のように、Ｄｅｒｉｖｅｄ＿Ｋｅｙ＿ＩＤ  ３１０を生成することができる：
【００３５】
Ｄｅｒｉｖｅｄ＿Ｋｅｙ＿ＩＤ＝Ｆ（Ｋ、セッション変数、他のパラメータ）  式（２）
【００３６】
ここで、Ｆは、この場合も先と同様に、あらかじめ決定されたアルゴリズム関数であり、セッション変数は、カウンタ値のようなセッション従属変数(session-dependent variable)であり、また、他のパラメータは、ここに明示的に列挙されていないがユーザ１１４およびアプリケーション１１６の両方に知られている任意のパラメータを含んでもよい。前に記したように、セッション変数は、ｔｅｍｐ＿ＩＤがアプリケーションと交換されるたびに変わることができ、また、デジタル的にインクリメントされるユースカウンタ(digitally incremented use counter)、タイムスタンプ、あるいは擬似乱数ジェネレータの出力、であってもよい。より大きなセッション変数が、より大きなインプリメンテーショナルな複雑性(implementational complexity)という犠牲を払って、より大きなセキュリティのために使用されることができる、ということが理解されるであろう。一実施形態においては、セッション変数は１６ビットのカウンタ値であることができる。
【００３７】
ステップ３０２において、ユーザ１１４は、アプリケーション１１６に、Ｄｅｒｉｖｅｄ＿Ｋｅｙ＿ＩＤ  ３１０を送る。ステップ３０３において、１セットのＤｅｒｉｖｅｄ＿Ｋｅｙ＿ＩＤの、鍵Ｋ、セッション変数、および他のパラメータの、全体にわたっての可能性のある値を前計算し、かつ、このセットをメモリの中に保存しているアプリケーション１１６が、受信されたＤｅｒｉｖｅｄ＿Ｋｅｙ＿ＩＤ  ３１０を生成するために使用される鍵Ｋ、セッション変数、および、関連づけられたユーザ１１４、を識別することができる。両サイドが、Ｋ、セッション変数３３１、および他のパラメータの値を知っている状態で、両サイドは共通の鍵Ｄｅｒｉｖｅｄ＿Ｋ  ３３２を次のように計算することができる：
【００３８】
Ｄｅｒｉｖｅｄ＿Ｋ＝Ｇ（Ｋ、セッション変数、他のパラメータ）          式（３）
【００３９】
ここで、Ｇは、別のあらかじめ決定されたアルゴリズム関数であり、また、セッション変数３３１は、式（２）におけるＤｅｒｉｖｅｄ＿Ｋｅｙ＿ＩＤ３１０を生成するために使用されるセッション変数に対応する。関数Ｇは、図２に関連して前に説明されたｓｕｂ＿ｋｅｙ  ２３８を生成するために使用されるものと同じであるように選ばれてもよい、ということに、注目されることができる。安全な通信は、ステップ３０４において示されるように、暗号化されたデータ３４０を送信し、受信するためにＤｅｒｉｖｅｄ＿Ｋ  ３３２を使用し、いま行なわれることができる。
【００４０】
本発明のさらなる実施形態において、もし新しいパラメータセットｍ’が、セッションの間に、ユーザとアプリケーションとによって同意される場合、そのときは、アプリケーションは、次のセッションの間にユーザによって使用されるべき新しいｔｅｍｐ＿ＩＤを、式（３）を使用して決定できるであろう。これは、第三者によるリンカビリティアタックに対する保護を提供するであろう。例えば、ユーザは、第三者の盗聴者(eavesdropper)によって追跡されることを避けるために、モバイルネットワークにおける異なる基地局とのセッションの間に、そのｔｅｍｐ＿ＩＤ(temp_ID’s)を変えることができるであろう。
【００４１】
上記の実施形態は、共有鍵(shared key)あるいは対称暗号システムのコンテクストにおいて説明されてきたけれども、公開鍵あるいは非対称暗号システムもまた、ユーザが繰り返し同じ公開鍵を使用するリンカビリティアタックの影響を受けやすい、ということに注目されることができる。本発明の態様はまた、セッション従属変数および／またはアプリケーション識別情報に応じて、秘密鍵を、そしてそれゆえに公開鍵を、変えるために適用されることができる。しかしながら、公開鍵システムにおいては、公開／秘密の鍵のペアが変更されるたびに必要とされる登録のオーバーヘッドと証明発行プロセス(certificate insurance processes)は、延長された時間の期間にわたって好んで使用される同じ公開／秘密の鍵のペアをもたらすことができる、ということに注目されることができる。
【００４２】
一実施形態によると、キーサーバ１２６およびユーザ１１４の各々におけるメモリは、磁気ハードドライブあるいはＲＡＭ（ランダムアクセスメモリ）回路のような、揮発性あるいは不揮発性のタイプであることができる。代替として、メモリは、他の回路のタイプ、例えば、ＥＥＰＲＯＭ（電気的消去可能ＲＯＭ）、ＥＰＲＯＭ（電気的プログラマブルリードオンリーメモリ）、ＲＯＭ（リードオンリーメモリ）、ＡＳＩＣ（特定用途向け集積回路）、磁気ディスク、光ディスク、および、当技術分野において知られている他のものなど、から作られることができる。
【００４３】
本発明は、プロセスあるいは方法として具現化されることができ、また当技術分野において知られている任意のコンピュータ可読メディア上で搬送されるコンピュータ可読インストラクションとしてコード化されることができる、ということに注目されるべきである。ここでは、用語「コンピュータ可読メディア(computer-readable medium)」は、図１において示されるキーサーバ１２６およびユーザ１１４の中にあるプロセッサのような、任意のプロセッサに、インストラクションを提供することに関与する任意のメディアを指す。そのようなメディアは、記憶装置タイプ(storage type)であることもでき、例えば、キーサーバ１２６およびユーザ１１４におけるメモリの記述において、前にも同様に説明されたように、揮発性あるいは不揮発性の記憶媒体の形態を取ることができる。そのようなメディアはまた、伝送タイプであることもでき、同軸ケーブル、銅線、光ケーブル、および、マシンあるいはコンピュータによって読み取ることができる信号を搬送することが可能な音波あるいは電磁波を搬送するエアーインターフェース(air interfaces)、を含むことができる。
【００４４】
当業者は、情報および信号は、様々な異なる技術および技法のいずれかを使用して表わされることができるということを、理解するであろう。例えば、上記の説明をとおして参照されることができる、データ、インストラクション、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場あるいは磁性粒子、光場あるいは光学粒子、あるいはそれらの任意の組合せによって表わされることができる。
【００４５】
当業者は、様々な説明のための論理ブロック、モジュール、回路、および、ここに開示された実施形態に関連して説明されたアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェアあるいは両方の組合せとしてインプリメントされることができる、ということをさらに理解するであろう。ハードウェアとソフトウェアのこの互換性を明瞭に説明するために、様々な説明のためのコンポーネント、ブロック、モジュール、回路およびステップが、一般に、それらの機能性という観点から、上記に説明されてきた。そのような機能性が、ハードウェアあるいはソフトウェアとしてインプリメントされるかどうかは、特定のアプリケーションと全体のシステムに課された設計制約(design constraints)に依存する。熟練職人は、各特定のアプリケーションについての様々な方法で、説明された機能性をインプリメントすることができるが、そのようなインプリメンテーションの決定は、本発明の範囲からの逸脱を生じさせるものとして解釈されるべきでない。
【００４６】
ここに開示された実施形態に関連して説明された様々な説明のための論理ブロック、モジュールおよび回路は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）あるいは他のプログラマブル論理デバイス、ディスクリートゲートあるいはトランジスタロジック、ディスクリートハードウェアコンポーネント、あるいはここに説明された機能を実行するために設計されたそれらの任意の組み合わせで、インプリメントあるいは実行されることができる。汎用プロセッサは、マイクロプロセッサであってもよいが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、あるいはステートマシン(state machine)であってもよい。プロセッサはまた、コンピューティングデバイス(computing devices)の組み合わせ、例えば、ＤＳＰとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、ＤＳＰコアと併用しての１つ以上のマイクロプロセッサ、あるいは任意の他のそのような構成のもの、としてインプリメントされてもよい。
【００４７】
ここに開示された実施形態に関連して説明された方法あるいはアルゴリズムのステップは、ハードウェアにおいて、プロセッサによって実行されたソフトウェアモジュールにおいて、あるいはこれら２つの組み合わせにおいて、直接的に具現化されることができる。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭあるいは当技術分野において知られている記憶媒体の任意の他の形態において常駐する(reside)ことができる。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取ることができ、また記憶媒体に情報を書き込むことができるように、プロセッサに結合される。別の方法では、記憶媒体は、プロセッサと一体化していてもよい。プロセッサと記憶媒体は、ＡＳＩＣにおいて常駐していてもよい。ＡＳＩＣは、ユーザ端末に常駐していてもよい。あるいは、プロセッサと記憶媒体は、ユーザ端末におけるディスクリートコンポーネントとして常駐することができる。
【００４８】
開示された実施形態の以上の説明は、いずれの当業者も本発明を作る、あるいは使用することを可能とするように提供される。これらの実施形態に対する様々な修正は、当業者にとって容易に明らかであろう、そして、ここにおいて定義された包括的な原理は、本発明の精神と範囲から逸脱することなく、他の実施形態に適用されることができる。したがって、本発明は、ここに示された実施形態に限定されるようには意図されてはおらず、ここに開示された原則と新規な特徴に整合する最も広い範囲が与えられるべきである。例示的な実施形態が説明されたが、形式上および細部においてのこれら及びその他の変更が、本発明の精神あるいは範囲から逸脱することなく、そこにおいて行われることができる、ということは当業者によって理解されるであろう。
【図面の簡単な説明】
【００４９】
【図１】図１は、ユーザとアプリケーションとの間の暗号化された通信を容易にするためにキーサーバが使用される、本発明の一実施形態を示す。
【図２】図２は、図１において示される実施形態に従って、ユーザがアプリケーションとの安全な通信を確立することができる、プロセスあるいは方法の一実施形態を示す。
【図３】図３は、キーサーバを使用せずに、ユーザがアプリケーションと安全に通信することができる、プロセスあるいは方法の一実施形態を示す。
【図１】
2009523396.tif 000003
【図２】
2009523396.tif 000004
【図３】
2009523396.tif 000005
【国際調査報告】
2009523396.tif 000006
2009523396.tif 000007
2009523396.tif 000008