(57)【特許請求の範囲】
【請求項１】
無線通信システムにおいて、機密共有データ（SSD ）を第一の装置で更新するための方法であって、
（ａ）第二の装置から乱数を第一のチャレンジとして受信するステップであって、該第一のチャレンジが前記第二の装置からのグローバルなチャレンジであり、該グローバルなチャレンジは全ての該装置に向けられる乱数であるステップ；
（ｂ）前記第一のチャレンジに応答して第二の乱数を生成するステップ；
（ｃ）二次キー（M-key）を用いてキー（鍵）付き暗号化関数（KCF）を前記第一のチャレンジおよび前記第二の乱数に遂行することにより第一のチャレンジ応答を生成するステップ；
（ｄ）第二のチャレンジとしての前記第二の乱数および前記第一のチャレンジ応答を前記第二の装置に送信するステップ；
（ｄ２）前記第一の装置を前記第二のチャレンジ及び前記第一のチャレンジ応答に基づいて認証するステップ；
（ｅ）前記第二の装置から第二のチャレンジ応答を受信するステップであって、該第二のチャレンジ応答が、前記二次キー（M-key）を用いて前記第二のチャレンジに前記KCFを遂行することにより得られているものであり、該二次キーはルートキー（A-key）から一方向関数を用いて導かれたものであって機密共有データではないものであるステップ；
（ｆ）前記第二の装置を、前記第二のチャレンジ及び前記第二のチャレンジ応答に基づいて認証するステップ；および
（ｇ）前記第一及び第二のチャレンジに基づいて前記ルートキー（A-key）を用いて前記SSD を確立するステップであって、前記ＳＳＤは該第一の装置がセッションキーを作成するために使用される構成であるステップ
を含むことを特徴とする方法。
【請求項２】
前記第一の装置が網であり、前記第二の装置が移動機であることを特徴とする請求項１の方法。
【請求項３】
前記ステップ（ａ）の前に、SSD 更新リクエストを前記移動機に送信するステップをさらに含み；
前記ステップ（ａ）において、前記SSD 更新リクエストに応答して前記第一のチャレンジが受信されることを特徴とする請求項２の方法。
【請求項４】
前記ステップ（ｃ）において、前記第一のチャレンジ応答が、前記KCFを前記第一のチャレンジ、前記第二のチャレンジ、および前記第一の装置の識別子に関して前記二次キーを用いて遂行することで生成されることを特徴とする請求項１の方法。
【請求項５】
前記ステップ（ｃ）において、前記二次キーを用いて前記第一のチャレンジ、前記第二のチャレンジおよびタイプデータに前記KCFを遂行することで前記第一のチャレンジ応答が生成され、前記タイプデータが前記第一及び第二の装置によって行なわれるSSD 更新プロトコルを示すデータであることを特徴とする請求項１の方法。
【請求項６】
前記ステップ（ｃ）において、前記二次キーを用いて前記第一のチャレンジ、前記第二のチャレンジ、前記第一の装置の識別子およびタイプデータに前記KCFを遂行することで前記第一のチャレンジ応答が生成され、前記タイプデータが前記第一及び第二の装置によって行なわれるSSD 更新プロトコルを示すデータであることを特徴とする請求項１の方法。
【請求項７】
前記第一の装置が移動機であり、前記第二の装置が網であることを特徴とする請求項１の方法。
【請求項８】
（ｋ）前記第一のチャレンジに応答してカウント値を増分するステップを更に含み；
前記ステップ（ｃ）において、前記二次キーを用いて前記第一のチャレンジ、前記第二のチャレンジおよび前記カウント値に前記KCFを遂行することで前記第一のチャレンジ応答が生成され；
前記ステップ（ｄ）において、前記第二のチャレンジ、前記第一のチャレンジ応答および前記カウント値が前記移動機から前記網に転送されることを特徴とする請求項１の方法。
【請求項９】
無線通信システムにおいて、機密共有データ（SSD）を第一の装置で更新するための方法であって、
（ａ）乱数を第一のチャレンジとして第二の装置に対してグローバルに出力するステップであって、該グローバルに出力することは同じ該乱数を全ての該装置に送信することであるステップ；
（ｂ）前記第二の装置から、第二のチャレンジとしての第二の乱数および第一のチャレンジ応答を受信するステップであって、該第一のチャレンジ応答が、二次キー（M-key）を用いて前記第一のチャレンジおよび前記第二の乱数にキー付き暗号化関数（KCF）を遂行することにより得られるものであり、該二次キーはルートキー（A-key）から一方向関数を用いて導かれたものであって機密共有データではないものであるステップ；
（ｃ）前記第二の装置を、前記第一と第二のチャレンジおよび前記第一のチャレンジ応答に基づいて認証するステップ；
（ｄ）第二のチャレンジ応答を、前記二次キーを用いて前記第二のチャレンジに対して前記KCFを遂行することで生成するステップ；
（ｅ）前記第二のチャレンジ応答を前記第二の装置に送信するステップ；
（ｆ）前記第二のチャレンジ応答に基づいて前記第一の装置を認証するステップ；及び
（ｇ）前記第一及び第二のチャレンジに基づいて、セッションキーの作成において使用されるように構成された前記SSD を確立するステップ
からなる方法。
【請求項１０】
前記第一の装置が移動機であり、前記第二の装置が網であることを特徴とする請求項９の方法。
【請求項１１】
前記ステップ（ａ）の前に、前記網からSSD 更新リクエストを受信するステップを更に含み；
前記ステップ（ａ）において、前記SSD 更新リクエストに応答して前記第一のチャレンジが送力されることを特徴とする請求項１０の方法。
【請求項１２】
前記第一の装置が網であり、前記第二の装置が移動機であることを特徴とする請求項９の方法。
【請求項１３】
前記ステップ（ｄ）において、前記二次キーを用いて前記第二のチャレンジ、および前記第一の装置の識別子に前記KCFを遂行することで前記第二のチャレンジ応答が生成されることを特徴とする請求項９の方法。
【請求項１４】
前記ステップ（ｄ）において、前記二次キーを用いて前記第二のチャレンジおよびタイプデータに前記KCFを遂行することで前記第二のチャレンジ応答が生成され、前記タイプデータが前記第一及び第二の装置によって行なわれるSSD更新プロトコルを示すデータであることを特徴とする請求項９の方法。
【請求項１５】
前記ステップ（ｄ）において、前記二次キーを用いて前記第二のチャレンジ、前記第一の装置の識別子およびタイプデータに前記KCF を遂行することで前記第二のチャレンジ応答が生成され、前記タイプデータが前記第一及び第二の装置によって行なわれるSSD 更新プロトコルを示すデータであることを特徴とする請求項９の方法。
【請求項１６】
前記第一の装置が網であり、前記第二の装置が移動機であり、
前記ステップ（ｂ）において、前記第二のチャレンジ、カウント値、および前記第一のチャレンジ応答が前記移動機から受信され、該第一のチャレンジ応答が、二次キーを用いて前記第一のチャレンジ、前記第二のチャレンジおよび前記カウント値に前記KCFを遂行することで得られ；
前記ステップ（ｄ）において、前記移動機が、前記第一のチャレンジ、前記第二のチャレンジ、前記第一のチャレンジ応答および前記カウント値に基づいて認証されることを特徴とする請求項９の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、無線通信システムにおいて機密共有データを更新するための方法に関する。
【０００２】
【従来の技術】
合衆国においては、現在、３つの主要な無線システムが利用されており、これらは異なる標準を用いる。第一のシステムは時分割多元アクセスシステム（TDMA）であり、これは、IS-136に準拠する。第二のシステムは符号分割多元アクセス（CDMA）システムであり、これは、IS-95に準拠する。第三のシステムは、Advanced Mobile Phone System （AMPS）である。これら３つの通信システムは、全て、システム間メッセージングのためのIS-41 標準を使用し、この標準は、機密共有データ（SSD）を更新する際の認証手続きを定義する。
【０００３】
図１は、無線システムを示す。図１に示すように、この無線システムは、認証センタ（AC）／ホーム位置レジスタ（HLR）１０、ビジティング位置レジスタ（VLR）１５、および移動機２０を含む。ある認証センタ（AC）とは複数のホーム位置レジスタ（HLR）を関連付けることもできるが、現時点では、一対一の対応が存在する。このため、図１においては、認証センタ（AC）とホーム位置レジスタ（HLR）は、単一のエンティティとして示される。ただし、これらは別個に設置しても構わない。さらに、簡単のために、この明細書の以降の部分においては、ホーム位置レジスタ（HLR）と認証センタ（AC）は、一緒に、AC/HLRとして言及される。さらに、ビジティング位置レジスタ（VLR）は情報をこれと関連する複数の移動体交換センタ（MSC）の一つに送信し、各移動体交換センタ（MSC）は情報を複数の基地局（BS）の一つに送信し、各基地局は情報を移動機に送信する。ただし、簡単のために、ビジティング位置レジスタ（VLR）、移動体交換センタ（MSC）および基地局（BS）は、以降は、一緒に、VLRとして言及される。これら認証センタ（AC）、ホーム位置レジスタ（HLR）、ビジティング位置レジスタ（VLR）、移動体交換センタ（MSC）、および基地局（BS）は、網プロバイダによって運用され、このため、一緒に、網として言及される。
【０００４】
ルートキーは、Ａ−キーとしても知られ、AC/HLR１０と移動機２０内にのみ格納される。二次キーも存在し、共有機密データ（Shared Secret Data、SSD）としても知られるが、このSSD は、移動機がローミングしているとき（つまり、移動機がそのホームカバレッジエリアの外にいるとき）、VLR １５に送られる。このSSD は、Ａ−キーおよび乱数シードRANDSSD から、暗号化アルゴリズム、すなわち暗号化関数を用いて生成される。暗号化関数は、所定の数のビットを持つ出力をあるレンジの可能な入力に基づいて生成する関数である。キー（鍵）付き暗号化関数（keyed cryptographic function、KCF）は、キー（鍵）に基づいて動作するタイプ；例えばその一つがキーである２つあるいはそれ以上の引数（つまり、入力）に基づいて（関して）動作する暗号化関数である。そして、このキーを知らない限り、出力並びに使用中のKCF についての知識のみでは、これら入力を決定することはできない。暗号化／解読アルゴリズム（encryption/decryption algorithm） は、暗号化関数（cryptographic function）の一種である。擬似乱数関数（pseudo random function、PRF）や、メッセージ認証コード（message authentication codes、MAC）等の一方向関数もこの一種である。KCFSK(RN')なる表現は、乱数RN'のセッションキー（session key、SK）をキーとして用いての暗号化（KCF）を表す。セッションキーSKとは、そのセッションを通じて持続するキーであり、セッションとは、時間のある期間、例えば、呼の長さである。
【０００５】
IS-41プロトコルにおいては、暗号化関数として、CAVE（Cellular Authentication and Voice Encryption）が用いられる。移動機２０がローミングしているときは、そのエリア内のVLR１５は、認証リクエストをAC/HLR１０に送信し、AC/HLR１０は、これに応答して、その移動機のSSDを返信する。いったん、VLR１５がこのSSD を入手すると、VLR１５は、AC/HLR１０とは独立に移動機２０を認証する。機密の理由からこのSSDは定期的に更新される。
【０００６】
図２は、このSSD を更新するためのAC/HLR１０、VLR １５、および移動機２０の間の通信を図解する。上述のように、AC/HLR１０は、乱数シードRANDSSD を生成し、この乱数シードRANDSSDを用い、CAVE（Cellular Authentication and Voice Encryption） アルゴリズムを使用して、新たなSSD を生成する。このSSD は１２８ビット長であり、最初の６４ビットは、第一のSSD として機能し、SSDAと呼ばれ、第二の６４ビットは、第二のSSD として機能し、SSDBと呼ばれる。図２に示すように、AC/HLR１０は、次に、この新たなSSD およびRANDSSD をVLR １５に供給する。すると、VLR １５は、このRANDSSDを、セッションリクエスト（session request、SR）と共に移動機２０に送信する。セッションリクエストSRは、移動機２０に対して、SSD 更新プロトコルを遂行するように指令するが、これについては後に詳細に説明する。移動機２０は、RANDSSD およびセッションリクエストSRを受信すると、このRANDSSD を用い、CAVEアルゴリズムを使用して、新たなSSD を生成し、乱数ジェネレータ（乱数生成プログラム）を使用して、乱数RMを生成する。移動機２０は、次に、この乱数RMをVLR１５に送信する。移動機２０は、加えて、この乱数RMに関してCAVEアルゴリズムをこの新たなSSDAをキーとして遂行する。この計算はCAVESSDA(RM)によって表される。
【０００７】
VLR １５あるいはAC/HLR１０のいずれか一方も、CAVESSDA(RM)を計算し、結果を移動機２０に送信する。移動機２０は、自身で計算したCAVESSDA(RM)が、こうして網から受信されるCAVESSDA(RM)と一致する場合は、網を認証する。
【０００８】
次に、通常は、移動機２０から認証されたことを示す信号を受信した後に、VLR １５が、乱数RNを生成し、この乱数RNを、移動機２０に送信する。移動機２０は、RNを受信すると、CAVESSDA(RN)を計算し、この結果をVLR１５に送信する。VLR１５は、自身が計算したCAVESSDA(RN)が、移動機２０から受信されたCAVESSDA(RN)と一致する場合は、移動機を認証する。これら乱数RMとRNは、チャレンジと呼ばれ、CAVESSDA(RM)とCAVESSDA(RN)はチャレンジ応答と呼ばれる。いったん認証が完了すると、移動機２０と網は、SSDBを用いてセッションキーを生成する。
【０００９】
【発明が解決しようとする課題】
このプロトコルでは、SSD 自体が移動機２０と網からのチャレンジに応答するために用いられる。このため、古いRANDSSD とSSD のペアを見破られた場合、アタックが可能となる。つまり、移動機２０に照会し、そのチャレンジに応答するためには、このペアを知ることで十分である。こうして、アタッカは、SSD 更新（リクエスト）を移動機２０に発行し、移動機からのチャレンジに応答することが可能となる。いったん見破られたSSD が受理されると、機密のセッションキー合意プロトコル（つまり、セッションキーを確立するための移動機と網との間の通信に関する機密のプロトコル）が用いられた場合でも、アタッカは、網のふりをして、偽の識別を用いて、移動機２０に呼を発行することが可能となる。例えば、アタッカ（偽装者）は、アタッカ自身の呼者ｉｄあるいは名前を挿入し、あたかも別人であるかのようなふりをすることができる。例えば、アタッカは、クレジットカード会社のふりをして、カード番号およびpin を認証するように求めることもできる。さらに、セルラ名フィード内に電話会社の名前を用い、発呼番号その他の認証を求めることもできる。
【００１０】
【課題を解決するための手段】
本発明による無線通信システムにおいて機密共有データ（SSD）を更新するための方法においては、第一のパーティは、第一の乱数を第一のチャレンジとして発行し、第二のパーティは、第一のチャレンジ応答を返信する。第一のパーティは、網か、移動機のいずれかである。第二のパーティは、第一のパーティが網である場合は、移動機であり、第一のパーティが移動機である場合は、網である。第二のパーティは、第二の乱数を生成し、次に、第一のチャレンジ応答を、キー（鍵）付き暗号化関数（keyed cryptograhic function、KCF）を、前記第一のチャレンジとこの第二の乱数に関して二次キーを用いて遂行することで生成する。ここで、この二次キーは、第一と第二のパーティによってルートキーから生成されるもので、SSD ではない。第二のパーティは、前記第二の乱数を、前記第一チャレンジの受信に応答して生成し、この第二の乱数を第二のチャレンジとして用いる。次に、第二のパーティは、第二のチャレンジとしての前記第二の乱数と、生成された第一のチャレンジ応答を、第一のパーティに送信する。第一のパーティは、前記第一のチャレンジ、並びに、受信された第二のチャレンジおよび前記第一のチャレンジ応答に基づいて第二のパーティを検証する。検証の後に、第一のパーティは、前記KCFを前記第二のチャレンジに関して前記二次キーを用いて遂行することで第二のチャレンジ応答を生成し、これを第二のパーティに送信する。第二のパーティは、前記第二のチャレンジ、並びに受信された前記第二のチャレンジ応答に基づいて、第一のパーティを検証する。その後、両方のパーティが、機密共有データ（SSD）をこれら第一と第二のチャレンジを用いて生成する。こうして、共有機密データ（SSD）キーとは異なるキー、すなわち前記二次キーがチャレンジの応答に用いられる。
【００１１】
【発明の実施の形態】
本発明のより良い理解を期するために、以下では、単に解説の目的で、本発明を付録の図面を参照しながら詳細に説明する。図面中、類似の参照符号は対応するパーツを示す。
【００１２】
本発明による機密共有データ（SSD）を更新するための方法、すなわちプロトコルは、図１に示すのと同一の無線システム内で採用される。ただし、本発明による方法においては、AC/HLR１０および移動機２０は、ルート、すなわちＡ−キーに基づいて、もう一つのＭ−キーと呼ばれるキーも生成する。Ｍ−キーは、例えば、Ａ−キーによってインデックスされる擬似乱数関数（pseudo random function、PRF）を既知に値に適用することで生成される。実用のPRFとしては、NIST (National Institute of Standards）から入手できる周知のData Encryption Standard-Cipher Block Chaining (DES-CBC）が用いられる。一つの好ましい実施例においては、６４−ビットのＡ−キーによってインデックスされるDES-CBC を網と移動機２０の両方に既知の値に適用することで６４ビットのＭ−キーが生成される。
【００１３】
図３は、本発明の一つの実施例による機密共有データ（SSD）を更新するためのAC/HLR１０、VLR １５、および移動機２０の間の通信を図解する。図３において、VLR １５は、単に、AC/HLR１０と移動機２０の間の通信に対するコンジットとして機能する。より詳細には、本発明による認証プロトコルは、ACと移動機２０との間で遂行される。
【００１４】
SSD を更新するためには、最初に、AC/HLR１０が、乱数RNを、乱数ジェネレータ（乱数生成プログラム）を用いて生成し、この乱数RNをセッションリクエスト（session request、SR）と共に移動機２０に送信する。セッションリクエストSRは、移動機２０に対して、SSD 更新プロトコルを遂行するように指令する。移動機２０は、このセッションリクエストSRに応答して、乱数RMを、乱数ジェネレータを用いて生成し、キー（鍵）付き暗号化アルゴリズム、すなわちキー（鍵）付き暗号化関数（KCF）をこれら乱数RNおよびRM、タイプデータType、およびｉｄに関してＭ−キーをキーとして用いて遂行する。この計算は、KCFM-Key(Type、0、RM、RN）として表される。好ましくは、このKFCとしては、HMAC等のキー（鍵）付きメッセージ認証コードを用いるが、ただし、DES-CBC等のPRFを用いることもできる。タイプデータは、遂行されるべきプロトコルのタイプ、つまり、ここでは、SSD 更新プロトコルを表す。他のプロトコルのタイプとしては、呼の発信、呼の終端、および移動機の登録等のプロトコルが含まれる。ｉｄデータが０であることは、通信が移動機から発行されたことを示し、ｉｄデータが１であることは、通信が網からのものであることを示す。
【００１５】
このSSD 更新プロトコルは、AC/HLR１０によって、セッションリクエストSRを用いて開始したものであるために、AC/HLR１０は、タイプデータTypeを知っており、加えて、移動機からの通信は０の同一のｉｄデータを含むために、AC/HRL１０は、この値も知っている。従って、AC/HRL１０は、RMを受信すると、KCFM-Key(Type、0、RM、RN)を計算し、AC/HLR１０は、次に、KCFM-Key(Type、0、RM、RN)の計算されたバージョンが移動機２０から受信されたバージョンと等しいか検証する。一致する場合は、AC/HLR１０は、移動機２０を認証する。次に、AC/HLR１０は、KCFM-Key(Type、1、RM）（ここで、１は網のｉｄデータであることを示す）を計算し、この計算結果を移動機２０に送信する。
【００１６】
移動機２０は、セッションリクエストSRからタイプデータを知っており、また、網からの通信は１なるｉｄデータを含むことを知っている。このため、移動機２０は、KCFM-Key(Type、1、RM）を計算し、移動機２０は、次に、KCFM-Key(Type、1、RM）の計算されたバージョンがAC/HLR１０から受信されたバージョンと一致するか検証する。一致する場合は、移動機２０は網を認証する。
【００１７】
網を認証した時点で、移動機２０とAC/HLR１０は、両方とも、乱数RNおよびRMを獲得している。こうして、移動機２０とAC/HLR１０は、両方とも、SSDを、PRFA-Key(RM、RN)として生成する。ここで、PRFとしては、好ましくは、DES-CBCを用いる。
【００１８】
代替として、AC/HLR１０によって、各移動機２０に、セッションリクエストSRと共に一意の乱数RNを送信する代わりに、グローバルな乱数を送信すること、つまり、全ての移動機に対して同一の乱数を生成することもできる。ただし、この代替の実施例は、網によってモニタされたときの移動機に対して期待される応答時間が、一意の乱数RNが送信された場合と同一に維持できる場合にしか適用できない。グローバルな乱数RNを使用したとき応答期間がこれより長くなる場合は、図５との関連で後に説明する代替の実現を用いることが望ましい。
【００１９】
IS41プロトコルでは、SSD の更新のために、VLR １５が共有される。つまり、AC/HLR１０は、SSD をVLR １５に送信し、VLR １５は、移動機２０にチャレンジを送り、あるいは、移動機２０からのチャレンジに応答する。本発明によるプロトコルでは、チャレンジに応答するために、SSD は用いられず、このため、IS41との関連で上で説明したアタッカ（第三者）が偽装して網に侵入する問題は防止できる。さらに、アタックによってＭ−キーを見破られた場合でも、Ｍ−キーを生成するために一方向関数が用いられているために、これからＡ−キーを得ることはできない。仮に、アタッカが古いRM、RNおよびSSD を見破った場合でも、この通信のどちらかのパーティがそれらの古い情報とは異なる情報をチャレンジに用いる確率が極めて高く、これら情報およびＭ−キー情報を用いて、見破ったSSD を網あるいは移動機２０に受理させることはできない。さらに、この新たなSDD は、PRF をこの新たなチャレンジに関してＡ−キーを用いて遂行することで生成され、アタッカは、このＡ−キーを知ることはできない。
【００２０】
ただし、図３との関連で上に説明してSSD 更新プロトコルでは、アタッカ（暗号解読者）が、Ｍ−キーに対して、選択平文アタック（chosen plaintext attack） を掛ける余地が残される。つまり、アタッカは、網のふりをして様々なチャレンジRNを送信することで、移動機２０に照会することができる。そして、アタッカが、これら応答を収集することで、Ｍ−キーを回復する可能性が残される。図４は、図３との関連で上に説明したSSD 更新プロトコルが抱えるこの問題を克服するための本発明のもう一つの実施例によるAC/HLR１０、VLR １５、および移動機２０の間の通信を図解する。この実施例においても、図４において、VLR １５は、AC/HLR１０と移動機２０の間の通信に対するコンジットとして機能する。つまり、本発明によるこの認証プロトコルは、ACと移動機２０の間で遂行される。
【００２１】
この代替実施例においては、SSD を更新するために、AC/HLR１０は、最初、SSD を更新するためのセッションリクエストSRを発行する。移動機２０は、これに応答して、乱数RMを生成し、この乱数RMをAC/HLR１０に返信する。これに応答して、AC/HLR１０は、乱数RNを生成し、KCFM-Key(Type、1、RM、RN)を生成し（ここで、１は網のｉｄデータであるとこを表す）、次に、乱数RNおよびKCFM-Key(Type、1、RM、RN)の両方を移動機２０に送信する。
【００２２】
移動機２０は、RNを受信すると、KCFM-Key(Type、1、RM、RN)を計算し、次に、KCFM-Key(Type、1、RM、RN)の計算されたバージョンがAC/HLR１０から受信されたバージョンと一致するか検証する。一致する場合は、移動機２０は、網を認証する。
【００２３】
次に、移動機２０は、KCFM-Key(Type、0、RN)（ここで、０は、移動機２０のｉｄデータであることを表す）を計算し、次に、この計算結果を、AC/HLR１０に送信する。AC/HLR１０も、KCFM-Key(Type、0、RN)を計算し、次に、このKCFM-Key(Type、0、RN)の計算されたバージョンが移動機２０から受信されたバージョンと一致するか検証する。一致する場合は、AC/HLR１０は移動機２０を認証する。
【００２４】
網を認証した時点で、移動機２０とAC/HLR１０は、両方とも、乱数RNおよびRMを獲得している。こうして、移動機２０とAC/HLR１０は、両方とも、SSD を、PRFA-Key(RM、RN) として生成する。ここで、PRF としては、好ましくは、DES-CBCを用いる。
【００２５】
図４の実施例では、アタッカは、選択されたテキストにて移動機に照会し、応答を期待することはできない。この更新の開始者、つまり、網は、第一のチャレンジを平文では送信しないため、アタッカに残された唯一の方法は、前のセッションから既知のテキストを収集することである。
【００２６】
図５は、本発明のもう一つの実施例による機密共有データを更新するためのAC/HLR１０、VLR１５、および移動機２０の間の通信を解説する。図５において、VLR １５は、単に、AC/HLR１０と移動機２０の間の通信に対するコンジットとして機能する。より詳細には、本発明の認証プロトコルは、ACと移動機２０の間で遂行される。
【００２７】
この実施例においては、SSD を更新するために、AC/HLR１０は、最初、グローバルな乱数RNを生成し、これをセッションリクエストSRと共に移動機２０に送信する。このセッションリクエストRは、移動機２０に対して、SSD 更新プロトコルを遂行するように指令する。図３の実施例の場合は、網によって最初に移動機２０に送信される乱数RNは移動機２０に対して一意である。つまり、他の移動機には、それらのSSD を更新するために、異なる乱数が生成され、送信される。ただし、図５の実施例においては、AC/HLR１０は、同一の乱数RNを全ての移動機２０に送信する。上述のように、図５の実施例は、移動機からのより長い応答時間を提供することが要求される場合は、図３の実施例においてグローバルな乱数RNを用いるより望ましい。
【００２８】
図５に示すように、AC/HLR１０から送信されたセッションリクエストSRおよびグローバルな乱数RNに応答して、移動機２０は、乱数RMと、カウント値CTを生成し、KCFM-Key(Type、0、RM、RN、CT）（ここで、０は、移動機２０に対するｉｄデータを示す）を計算する。より詳細には、移動機２０は、カウント値CTを生成するカウンタを含む。移動機２０は、各SSD 更新リクエストに対して、このカウント値を増分した後に、チャレンジ応答（つまり、KCFM-Key(Type、0、RM、RN、CT）を生成し、次に、このカウント値CT、乱数RM、およびKCFM-Key(Type、0、RM、RN、CT）を網に送信する。
【００２９】
AC/HLR１０は、乱数RMおよびカウント値CTを受信すると、カウント値CTを格納し、受信されたカウント値CTが、前に格納されているカウント値を超えるか否か決定する。受信されたカウント値CTが前に格納されているカウント値を超える場合は、AC/HLR１０は、移動機２０の検証のために先に進む。つまり、AC/HLR１０は、受信された乱数RMおよびカウント値CTに基づいて、KCFM-Key(Type、0、RM、RN、CT）を計算し、この計算されたバージョンが移動機２０から受信されたバージョンと一致するか検証する。一致する場合は、AC/HLR１０は、移動機２０を認証する。他方、受信されたカウント値CTが前に格納されているカウント値を超えない場合は、移動機２０の検証は行なわれない。
【００３０】
いったん移動機２０が認証されると、AC/HLR１０は、KCFM-Key(Type、1、RM）（ここで、１は網に対するｉｄデータを示す）を計算し、この計算結果を移動機２０に送信する。移動機２０も、KCFM-Key(Type、1、RM）を計算し、次に、KCFM-Key(Type、1、RM）の計算されたバージョンがAC/HLR１０から受信されたバージョンと一致するか検証する。一致する場合は、移動機２０は網を認証する。
【００３１】
網を認証した時点で、移動機２０とAC/HLR１０は、両方とも、乱数RNおよびRM、並びにカウント値CTを獲得している。移動機２０とAC/HLR１０は、両方とも、SSDを、PRFA-Key(RM、RN、CT)として生成する。ここで、PRFとしては、好ましくは、DES-CBCを用いる。
【００３２】
図３との関連で上で述べたように、アタッカは、アタックを試みる際に、古いチャレンジおよびチャレンジ応答を用いるために、図５のプロトコルに対して試みられた場合は失敗する。つまり、アタッカは古いカウント値に基づくチャレンジ応答を用るために、網はアタッカを認証せず、アタッカはSSD を生成することはできない。
【００３３】
本発明がこうして説明されたが、明らかなように、本発明は、様々な修正された形態にて実現することもでき、これらバリエーションも、本発明の精神および範囲から逸脱するものと見做されるべきではなく、これら全ての修正が特許請求の範囲に含まれるものである。
【図面の簡単な説明】
【図１】無線システムの基本要素を示すブロック図である。
【図２】  IS-41標準に従って機密共有データを更新する際の認証センタ／ホーム位置レジスタ、ビジティング位置レジスタ、および移動機の間の通信を示す図である。
【図３】本発明の一つの実施例による機密共有データ（SSD）を更新するための、認証センタ／ホーム位置レジスタ、ビジティング（訪問）位置レジスタおよび移動機の間の通信を示す図である。
【図４】本発明のもう一つの実施例による機密共有データ（SSD）を更新するための、認証センタ／ホーム位置レジスタ、ビジティング位置レジスタおよび移動機の間の通信を示す図である。
【図５】本発明のさらにもう一つの実施例による機密共有データ（SSD）を更新するための、認証センタ／ホーム位置レジスタ、ビジティング位置レジスタおよび移動機の間の通信を示す図である。
【符号の説明】
１０  認証センタ／ホーム位置レジスタ（AC/HLR）
１５  ビジティング位置レジスタ（VLT）
２０  移動機
【図１】
0004024432.tif 000002
【図２】
0004024432.tif 000003
【図３】
0004024432.tif 000004
【図４】
0004024432.tif 000005
【図５】
0004024432.tif 000006