説明

暗号鍵の生成

【課題】分散セキュリティ動作を連携して実行する2つのエンティティ間で、生成する鍵の衝突を避ける方法を提供する。
【解決手段】少なくとも2つのパラメータを提供することを有し、第1パラメータはセキュリティ動作を実行することによって第1エンティティ202により算出された暗号鍵の集合を備えるか、この集合から導出される。第2パラメータは第1エンティティ202について第2エンティティ204によりセキュリティ動作が開始されるごとに異なる値を有するトークンを備えるかこのトークンから導出される。所望の暗号鍵を生成するために、提供されたパラメータに基づいて鍵導出関数が適用される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は一般に暗号鍵を生成するための技術に関する。特に、本発明は高水準のセキュリティを提供する暗号鍵生成技術に関する。
【背景技術】
【0002】
認証/暗号鍵配送プロトコル(AKA)は対称暗号を用いるチャレンジ・レスポンス方式のプロトコルである。AKAの主目的は互いに通信する2つのエンティティによる相互認証と、これらの間で交換される通信を保護するための暗号鍵(cryptographic key)の確立とを含む。AKAの変形の1つがUMTS AKAであり、技術仕様である非特許文献1において3G移動体通信ネットワークについて3GPPによって標準化されたセキュリティ・アーキテクチャに含まれる。
【0003】
UMTS AKAの基本概念が図1に示される。この図を参照すると、UMTS AKAプロトコルはユーザ機器(UE)とネットワーク・エンティティ(NE)との間で実行される。ネットワーク・エンティティはユーザ認証要求をUEへ送信することによってAKAを開始する。要求とともに、乱数チャレンジまたは乱数コード(RAND)と認証トークン(AUTN)とがUEへ送信される。RANDとAUTNとを受信すると、UEはとりわけ秘匿鍵(CK、Cipher Key)と完全性鍵とを算出し、次いで、それらを秘匿機能および完全性機能のために用いる。
【0004】
3GPPはまた、いわゆる「3Gの先の」通信ネットワークの標準化に着手している。システムアーキテクチャレボリューション(SAE)およびロングタームエボリューション(LTE)は3Gの先のネットワークに密接に関連した2つの側面である。従来の3Gネットワークと比較すると、SAE/LTEに基づくネットワークは高度なおよび/または多くのセキュリティ要件を課しうる。例えば、様々な水準において通信を保護するために、より多くの暗号鍵が必要になりうる。別の標準関連文書である非特許文献2で、3GPPはSAE/LTEで用いられるより多くの暗号鍵を導出するために鍵階層を推奨している。
【0005】
図2はこの鍵階層を示す。階層の一番上にあるのは鍵Kであり、UEの汎用加入者識別モジュール(USIM)とネットワーク内に存在する認証センタ(AuC)との間で共有される長期暗号鍵である。1つ下のレベルは、上述のUMTS AKA動作と同一または同様の方法でUEによって、特にUE内のUSIMによって導出される暗号鍵CK、IKの組である。階層における更に下には、CKと、IKと、必要な場合にはいくつかの他のパラメータとからUEによって導出される鍵KASMEである。導出されると、KASMEはAuCからアクセス・ネットワークへ、特にSAE/LTEネットワークのアクセス・セキュアリング管理エンティティ(ASME)へ転送され、次いでUEとネットワークとの間で共有される。アクセス・ネットワークがLTE技術に基づく場合に、ASMEの機能はモビリティ管理エンティティ(MME)によって扱われる。
【0006】
鍵KASMEと階層におけるその「下の」鍵とは、ある暗号化関数を適用することによって導出されうる。例えば、
ASME=KDF(CK‖IK,0x02‖PMLN_ID‖<他のパラメータ>)
であり、ここで、KDFは汎用ブートストラッピング・アーキテクチャ(GBA)の鍵導出関数(KDF)に基づく。1つのGBA KDFは非特許文献3に規定される。
【0007】
GBA KDFはセキュア・ハッシュ・アルゴリズム(SHA)ハッシュ関数のような暗号化ハッシュ関数を利用しうる。多くのSHAハッシュ関数のなかで、SHA−256は高度にセキュアな変形である。なぜなら、衝突耐性が考慮されており、擬似乱数関数のように動作するからである。その名前が示唆するように、SHA−256は256ビットのダイジェスト(出力)長を有するセキュア・ハッシュ・アルゴリズムのハッシュ関数である。PLMN_IDはUEへサービスを提供するネットワークの識別子である。
【0008】
高水準のセキュリティを実現するためには、GBA KDF関数が主にCKおよびIKだけに基づくのは十分でないと認識されてきている。これに対する根拠は、所与のUEが同じCKを2度得るかも知れず、または2つの異なるUEが同じCKを得るかもしれないというリスクである。このような場合に、KDFへの入力の「一意性」は不確定であり、(同じKASMEを用いる)異なるUE間の衝突が生じうる。
【0009】
一般的な見解として、x=yならばKDF(x)はKDF(y)と同じ鍵を作り出すのは確かであるが、逆は常に成り立つとはかぎらない。すなわち、たとえx≠yだとしても、KDF(x)=KDF(y)となることが起こりうるかもしれない。しかしながら、KDFは上述されたように衝突耐性を有するように設計されているSHA−256に基づくことが推奨されているため、これは起こりそうもない出来事である。よって、本明細書で説明される技術について、x=yの場合かつその場合に限りKDF(x)=KDF(y)が成り立つことを支障なく仮定できる。この仮定によって、本明細書で説明される技術はKDFへの入力の「一意性」を保証することに焦点を合わせられる。
【0010】
GBA KDF仕様の標準化団体(ETSI/SAGE、特別アルゴリズム専門家グループ)は上記の問題に着目し、異なるUE間の衝突を避けるためにUEのプライベート・ユーザ識別子(IMPI)を<他のパラメータ>に含めることを推奨している。さらなる推奨として、RANDのような乱数コードも<他のパラメータ>に含まれうる。これは、ETSI/SAGEから3GPP SA3へのリエゾン声明において(非特許文献4に)説明される。
【0011】
しかしながら、上記の推奨はなおもKDFへの入力の「一意性」を保証できないことが発見されている。これはGBA KDF関数のセキュリティ特性と、1つ且つ同一のUE(例えば1つ且つ同一のIMPI)についてのSAE/LTEにおけるその使用法とに関する以下の分析からわかる。
【0012】
第一に、以下の基本的な構造が検討される:
KDF(CK,IMPI)。
【0013】
(UEが一定である場合に)IMPI=IMPI´であることが仮定されているため、この基本的な構造は、CK=CK´の場合且つその場合に限り、2つの入力(CK,IMPI)、(CK´,IMPI´)の衝突につながるだろう。
【0014】
第二に、別の構造が検討され、これは実際のGBA KDFにより近い:
KDF(CK‖IK,IMPI)。
【0015】
しかしながら、IKを入力へ含めることは、最初は信じられるかもしれないように上記の衝突特性を変えない。すなわち、CK=CK´の場合かつその場合に限り、KDF(CK‖IK,IMPI)はKDF(CK´‖IK´,IMPI)に等しくなるだろう。IKを含めることがなぜ助けにならないかを理解するために、UEで実行される暗号アルゴリズムによってCKおよびIKがどのように作り出されるかを検討する必要がある。
【0016】
典型的なUE側の暗号アルゴリズムは図9に示されるミレナージュ(Milenage)・アルゴリズムである。図9では、Ekはラインダール・アルゴリズムとしても知られるアドバンスド・エンクリプション・スタンダード(AES)アルゴリズムを示し、(AuCおよびUEのUSIMに記憶された)鍵Kを用いる。ここで、CK=CK´の場合に何が起こるかを検討する。AESは置換(1対1対応)であるため、これは、(太い矢印において生じる)中間値が、たまたまCKになるf3の出力によって一意に決定されることを暗示する。しかし、これは、CKを作り出す際に太い矢印における値が、CK´が作り出される場合と同じ場所において生じる値と同じでなければならないことを暗示する。同様に、これは、f4への入力として生じる値が同一でなければならず、その結果として同じf4の値が生じなければならないことを意味する。これが生じるため、f4はIKである。よって、IK=IK´である場合かつその場合に限り、CK=CK´であることが示される。
【0017】
次に、標準化団体(SAGE)の推奨に従う「改良された」構造、すなわち入力にRANDを含めることを検討する:
KDF(CK‖IK,RAND‖IMPI)。
【0018】
CK=CK´(よって、IK=IK´)であると仮定する。RANDを用いることによって一意性が保証されることが期待される。しかしながら、これは正しくない。ここでも、RANDからCKおよびIKを作り出したミレナージュ・アルゴリズムの「関連」部分を検討する。図9に示されるように、RANDに対応する太い矢印における値がRAND´に対応するものと同じである状況が存在する。しかしやはりAES(Ek)は置換であり、その結果、両方の入力はやはり等しくなるはずである。すなわちRAND=RAND´である。(AESはKに依存するという事実は助けにならない。なぜなら、一定のUEが仮定され、よって同じKが両方の場合で生じるだろうからである。)
【0019】
言い換えると、RAND=RAND´である場合かつその場合に限り、(CK‖IK,RAND‖IMPI)=(CK´‖IK´,RAND´‖IMPI)であることが示されている。SAE/LTEの場合に、PLMN_IDも入力に含まれるかもしれないが、UEが同じネットワーク内に何度か留まることが十分にありうるため、このパラメータPLMN_IDは一意性を保証する目的では頼りにできない。
【0020】
衝突を避けるための代替のアプローチはf3アルゴリズムおよびf4アルゴリズムの暗号処理についてAES以外の別のアルゴリズムを用いることでありうる。特に、上述の分析はAESが置換であるという事実に基づいた。したがって、AESの代わりに非置換(多対1対応)を用いることが可能でありうるだろう。これは2つの理由で問題になる。始めに、既存のUSIMが3GPP SAEアーキテクチャに適するように適合されなければならない。第二に、非置換関数を選択することによって、例えばf3の2つの出力が衝突する可能性が現実に増加する。
【0021】
入力の一意性の欠如は深刻なセキュリティ問題になりうる。RAND=RAND´である場合かつその場合に限り衝突は生じ、RANDは128ビットであるため、衝突は約2(128/2)=264回の認証の後に生じることが予想される(これはいわゆる「誕生日パラドックス」である)。明らかに、これは(128ビットである)GBAの目標とするセキュリティ水準よりも低い。LTEの場合は更に悪い。なぜなら、LTEでは256ビットのセキュリティ水準を提供することが必要だからである。よって、高い衝突確率はSAE/LTEにおいて要求されるセキュリティ水準を提供することへの重大な障害となる。
【先行技術文献】
【非特許文献】
【0022】
【非特許文献1】3G TS33.102
【非特許文献2】3GPP TR33.821
【非特許文献3】3G TS33.220
【非特許文献4】3GPP文書番号S3−030219
【発明の概要】
【発明が解決しようとする課題】
【0023】
従って、上述の衝突を避ける解決策が必要となる。解決策はまた、理想的にすでに配布されたUSIMで動作し、すべてのUSIMの置き換えを必要とするべきではない。
【課題を解決するための手段】
【0024】
第1側面によれば、暗号鍵を生成するための方法が提供される。暗号鍵はとりわけ2つのエンティティ間の通信を保護するために用いられる。本方法は第1エンティティによって実行される。本方法は第2エンティティによって開始される分散セキュリティ動作の一部を形成する。本方法は、少なくとも2つのパラメータを提供することを有し、第1パラメータはセキュリティ動作を実行することによって第1エンティティにより算出された暗号鍵の集合を備えるか、この集合から導出される。第2パラメータは第1エンティティについて第2エンティティによりセキュリティ動作が開始されるごとに異なる値を有するトークンを備えるかこのトークンから導出される(言い換えると、トークンの値は任意の2つのセキュリティ動作について決して同じにならない)。本方法は、提供されるパラメータに基づいて暗号鍵を生成するために鍵導出関数を適用することを有する。
【0025】
「パラメータがXを備える」という表現は、文字列形式において、変数Xがパラメータまたはその一部を形成することを意味しうる。「パラメータがXから導出される」という表現は、パラメータが少なくとも変数Xに数学関数のような所定の関数を適用した結果であることを意味しうる。関数の例は算術演算、論理演算、文字列演算、およびこれらの任意の組み合わせを含むがこれらに限定されない。算術演算は加算、減算、乗算などや、これらの任意の意味のある組み合わせでありうる。論理演算はAND、OR、排他的論理和(xOR)、NOTなどや、これらの任意の意味のある組み合わせでありうる。文字列演算は連結、反転、置換などや、これらの任意の意味のある組み合わせでありうる。さらに、算術演算、論理演算、および文字列演算は組み合わされうる。
【0026】
特に、上述のトークンは、第1エンティティについて第2エンティティにより開始されたセキュリティ動作の回数を示すシーケンス番号(SQN)を備えるか、またはこのシーケンス番号から導出されうる。開始ごとに、SQNは第2エンティティによって増やされうる。この仕組みは、開始されたセキュリティ動作ごとにトークンが異なる値を有することを保証する。
【0027】
トークンは多くの形式を取りうる。1つの場合に、SQNそのものがトークンになりえる。これに代えて、トークンは、算術演算、論理演算、および文字列演算のうちの少なくとも1つのような所定の数学演算を伴うアルゴリズムを用いてSQNから導出されうる。例えば、トークンは、SQNに基づいて第2エンティティにより作成されて第1エンティティへ配信される認証トークン(AUTN)を備えるか、または認証トークンから導出されうる。この作成および配信はセキュリティ動作の一部でありうる。
【0028】
特に、トークンはSQNと匿名鍵(AK、Anonymity Key)との排他的論理和を備えうる。更に具体的に、トークンは、SQNと匿名鍵(AK)との排他的論理和、認証・鍵管理フィールド(AMF)、およびメッセージ認証コード(MAC)の連結でありうる。この連結は、
トークン=AUTN=(SQN xOR AK)‖AMF‖MAC
または
トークン=function(AUTN)=function((SQN xOR AK)‖AMF‖MAC)
と表現されうる。
【0029】
第2パラメータはさらに、乱数チャレンジまたは乱数コード(RAND)を備えるか、またはRANDから導出されうる。RANDはセキュリティ動作の一部として第2エンティティにより生成されて第1エンティティへ配信されうる。第2パラメータはなおもさらに、第1エンティティの識別子を備えるか、またはこの識別子から導出されうる。この識別子はプライベート・ユーザ識別子(IMPI)または国際移動体加入識別子(IMSI)でありうる。なおもさらに、第2パラメータは通信ネットワークおよび特に第1エンティティのサービング・ネットワークの識別子を備えるか、またはこの識別子から導出されうる。例えば、この識別子は公衆地上波移動体ネットワーク識別子(PLMN_ID)でありうる。
【0030】
具体的に、第2パラメータは、0x02、PLMN_ID、RAND、IMPIまたはIMSI、およびトークンの連結を備えるか、またはこの連結から導出されうる。これは、
0x02‖PLMN_ID‖RAND‖IMPI‖トークン
と表現されうる。トークンがSQNそのものである場合に、上記は
0x02‖PLMN_ID‖RAND‖IMPI‖SQN
となり、トークンがAUTNである場合に、上記は
0x02‖PLMN_ID‖RAND‖IMPI‖AUTN
となる。
【0031】
本方法で用いられる第1パラメータに関して、このパラメータは、セキュリティ動作を実行することによって第1エンティティにより得られていた暗号鍵の集合を備えるか、またはこの集合から導出されうる。暗号鍵の集合は秘匿鍵(CK)および完全性鍵(IK)を備えるか、またはこれらから導出されうる。
【0032】
CKとIKとは、AUTNおよびRANDに基づいて第1エンティティにより算出された秘匿鍵と完全性鍵とでありうる。AUTNおよびRANDは第2エンティティから配信されうる。この算出だけでなくAUTNおよびRANDの配信はセキュリティ動作の一部を形成しうる。
【0033】
1つの実装では、第1パラメータはCKとIKとの連結を備えるか、またはこの連結から導出されうる。これは数学的にCK‖IKと表現されうる。
【0034】
本明細書で説明される方法は暗号鍵を生成する。この鍵は少なくとも第1エンティティと第2エンティティとによって、これらの間の任意の後続の通信において共有されうる。ある実装では、この鍵は図2の「鍵階層」において参照されるKASMEでありえ、第1エンティティと第2エンティティのアクセス・セキュリティ管理エンティティ(ASME)とによって共有されうる。
【0035】
本方法は、多くの暗号鍵を生成するように1つ以上の更なる鍵導出関数を適用することを有するように拡張されうる。このような生成は上述の基本的な非拡張の方法で生成された暗号鍵、例えばKASMEに基づくかこれを利用する。
【0036】
拡張された方法で生成される暗号鍵は、ノンアクセスストラタム(NAS)トラフィックを保護するための暗号鍵の集合、無線リソース制御(RRC)トラフィックの保護のための暗号鍵の集合、ユーザプレーン(UP)トラフィックの保護のための暗号鍵の集合、およびRRCトラフィックを保護するための暗号鍵とUPトラフィックを保護するための暗号鍵との少なくとも一方を導出するためのKeNBのような中間暗号鍵、のうちの少なくとも1つを含みうる。これらの鍵の理解を容易にするために、SAE/LTEで用いられる鍵階層を説明する図2が参照される。
【0037】
具体的に、NASトラフィックを保護するための暗号鍵の集合は暗号化アルゴリズムでNASトラフィックを保護するための鍵(KNASenc)と、完全性アルゴリズムでNASトラフィックを保護するための別の鍵(KNASint)とのうちの少なくとも一方を備えうる。同様に、RRCトラフィックの保護のための暗号鍵の集合は暗号化アルゴリズムでRRCトラフィックを保護するための鍵(KRRCenc)と、完全性アルゴリズムでRRCトラフィックを保護するための別の鍵(KRRCint)とのうちの少なくとも一方を備えうる。さらに、UPトラフィックの保護のための暗号鍵の集合は暗号化アルゴリズムでUPトラフィックを保護するための鍵(KUPenc)を備えうる。
【0038】
本明細書で説明される技術について、「第1エンティティ」は移動局のようなユーザ機器でありうる。「第2エンティティ」は通信ネットワーク内に位置するエンティティでありえ、それ故「ネットワーク・エンティティ」でありうる。特に、第2エンティティはSAE/LTEネットワーク内に位置しうる。
【0039】
第2エンティティは認証センタ(AuC)/ホーム加入者サーバ(HSS)とモビリティ管理エンティティ(MME)とを備えうる。MMEは第1エンティティについてセキュリティ動作を開始する責任を有しうる。生成される暗号鍵はAuC/HSSにより生成されて、第1エンティティとMMEとによって共有されうる。AuC/HSSは、特に第1エンティティについてセキュリティ動作が開始されるごとに、SQNを増分しうる。さらに、AuC/HSSはまた、SQNに基づいてAUTNを作成しうる。
【0040】
本明細書で参照されるセキュリティ動作は第1エンティティと第2エンティティとが連携して実行されうる。例えば、セキュリティ動作はUMTS AKAプロトコルのようなAKA手続きに基づきうる。
【0041】
本方法で参照される鍵導出関数は汎用ブートストラッピング・アーキテクチャ(GBA)鍵導出関数でありうる。汎用ブートストラッピング・アーキテクチャ鍵導出関数はセキュア・ハッシュ・アルゴリズム(SHA)ハッシュ関数を採用しうる。特に、256ビットの長さのダイジェストを有するセキュア・ハッシュ・アルゴリズムのハッシュ関数(SHA−256)が採用されうる。
【0042】
別の側面によれば、コンピュータプログラム製品が提供される。コンピュータプログラム製品は、コンピュータプログラム製品が計算装置のためのコンピュータシステムで実行される場合に本明細書で説明される方法のステップを実行するためのコンピュータコード部を備える。コンピュータプログラム製品はコンピュータで読み取り可能な記録媒体に格納されうる。
【0043】
一般に、本解決策は、ハードウェア、ソフトウェア、または統合ハードウェア/ソフトウェア・アプローチで実施されうる。
【0044】
ハードウェアによる実現に関して、通信エンティティのために暗号鍵を生成するように構成された装置が提供される。装置はセキュリティ動作を実行でき、暗号鍵の生成はその一部でありうる。本装置は、少なくとも2つのパラメータを提供するように構成された第1コンポーネントを備える。第1パラメータはセキュリティ動作を実行することによって通信エンティティにより算出された暗号鍵の集合を備えるか、この集合から導出される。第2パラメータは通信エンティティについてセキュリティ動作が開始されるごとに異なる値を有するトークンを備えるかこのトークンから導出される。本装置は、提供されるパラメータに基づいて暗号鍵を生成するために鍵導出関数を実行するように構成された第2コンポーネントをさらに備える。上述のように、トークンは多くの可能な形式をとりうる。
【0045】
トークンは、通信エンティティについて開始されたセキュリティ動作の回数を示すSQNを備えるか、またはこのSQNから導出されうる。1つの実装では、SQNそのものがトークンである。これに代えて、トークンは、算術演算、論理演算、および文字列演算のうちの少なくとも1つを伴うアルゴリズムを用いてSQNから導出されうる。例えば、トークンは、SQNに基づいて作成されて通信エンティティへ配信されたAUTNを備えるか、またはこのAUTNから導出されうる。ここで、この作成および配信はセキュリティ動作の一部を形成する。例えば、トークンは、SQNと匿名鍵(AK)との排他的論理和、認証・鍵管理フィールド(AMF)、およびメッセージ認証コード(MAC)の連結でありうる。特に、これは、
トークン=AUTN=(SQN xOR AK)‖AMF‖MAC
と表現されうる。
【0046】
トークンに加えて、第2パラメータはさらに、RANDを備えるか、またはこのRANDから導出されうる。RANDはセキュリティ動作の一部として通信エンティティへ配信されうる。さらに、第2パラメータは、通信エンティティの識別子を備えるか、またはこの識別子から導出されうる。この識別子の一例は通信エンティティのプライベート・ユーザ識別子(IMPI)である。なおもさらに、第2パラメータは通信エンティティのサービング・ネットワークの識別子を備えるか、またはこの識別子から導出されうる。この識別子は公衆地上波移動体ネットワーク識別子(PLMN_ID)でありうるだろう。
【0047】
第2パラメータの特定の例は、0x02、PLMN_ID、RAND、IMPIまたはIMSI、およびトークンの連結を備えるか、またはこの連結から導出されうる。例えば、第2パラメータは、
0x02‖PLMN_ID‖RAND‖IMPI‖トークン
と表現されうる。トークンがSQNである場合に、上記は
0x02‖PLMN_ID‖RAND‖IMPI‖SQN
となり、トークンがAUTNである場合に、上記は
0x02‖PLMN_ID‖RAND‖IMPI‖AUTN
となる。
【0048】
上述のように、第1パラメータは、暗号鍵の集合を備えるか、またはこの集合から導出されうる。特に、この暗号鍵の集合は、セキュリティ動作の一部として通信エンティティにより算出された秘匿鍵(CK)および完全性鍵(IK)を備えうる。これに代えて、暗号鍵の集合は秘匿鍵および完全性鍵から導出されうる。
【0049】
特定の実装として、第1パラメータはCK‖IKと表現されうるCKとIKとの連結を備えるか、またはこの連結から導出されうる。
【0050】
本装置は提供された第1パラメータおよび第2パラメータに基づいて暗号鍵を生成するだけでなく、生成された暗号鍵に基づいて更なる暗号鍵を生成できる。これを行う場合に、本装置は、生成された暗号鍵に基づいて更なる暗号鍵を生成するように1つ以上の更なる鍵導出関数を適用するように構成されうる。
【0051】
これらの「更なる暗号鍵」は、ノンアクセスストラタム(NAS)トラフィックの保護のための暗号鍵の集合、無線リソース制御(RRC)トラフィックの保護のための暗号鍵の集合、ユーザプレーン(UP)トラフィックの保護のための暗号鍵の集合、およびRRCトラフィックを保護するための暗号鍵とUPトラフィックを保護するための暗号鍵との少なくとも一方を導出するためのKeNBのような中間暗号鍵、のうちの少なくとも1つを備えうる。
【0052】
上記で参照される通信エンティティは移動局(例えば移動体電話やネットワーク・カード)のようなユーザ機器でありうる。
【0053】
更なる側面によれば、上記で提示された装置を備えるユーザ機器が提供される。ユーザ機器は移動局でありうる。
【0054】
なおも更なる側面によれば、上述のユーザ機器を備えるシステムが提供される。本システムはネットワーク・エンティティも備える。ネットワーク・エンティティはSAE/LTEネットワーク内で用いられうる。ネットワーク・エンティティはAuC/HSSとMMEとを備えうる。MMEはユーザ機器についてセキュリティ動作を開始する責任を有しうる。AuC/HSSは暗号鍵を生成しうる。生成される暗号鍵はユーザ機器とMMEとによって共有されうる。AuC/HSSは、特にユーザ機器についてセキュリティ動作が開始されるごとに、SQNを増分しうる。さらに、AuC/HSSはまた、SQNに基づいてAUTNを作成しうる。
【図面の簡単な説明】
【0055】
【図1】UMTS AKAプロトコルの基本概念を示す図である。
【図2】SAE/LTEシステムについて提案される鍵階層を説明するブロック図である。
【図3】装置の実施形態を示すブロック図である。
【図4】システムの実施形態を示すブロック図である。
【図5】方法の実施形態を示すブロック図である。
【図6】UMTS AKA動作の手続きであるネットワーク・エンティティによる認証ベクトル生成を示すブロック図である。
【図7】UMTS AKA動作の別の手続きである認証・鍵確立を示すブロック図である。
【図8】UMTS AKA動作の一部としてUEによって実行される汎用認証機能を示すブロック図である。
【図9】UEにおいて上述の認証機能を実行するための特定の暗号アルゴリズムを示すブロック図である。
【図10】上述の暗号アルゴリズムの特定の詳細を示すブロック図である。
【発明を実施するための形態】
【0056】
図面に説明される例示の実施形態を参照しつつ、以下に暗号鍵生成技術が説明される。
【0057】
以下の説明では、説明のためであって限定のためではなく、暗号鍵生成技術の完全な理解を提供するために、特定のステップ列、インタフェース、および構成のような個別の詳細が説明される。これらの個別の詳細から逸脱する他の実施形態で本技術が実施されうることが当業者には明らかだろう。例えば、本技術は主にUMTS AKAプロトコルの文脈でSAE/LTEネットワーク環境において説明されるものの、本技術はまた、他のセキュリティ・プロトコル、アーキテクチャ、または環境に関連して実施されうることが当業者に明らかだろう。
【0058】
さらに、本明細書で以下に説明される機能は、プログラムされたマイクロプロセッサまたは汎用コンピュータと連携して機能するソフトウェアを用いて実行されうることを当業者は理解するだろう。本技術は主に方法および装置の形式で説明されるが、本技術はまた、コンピュータプログラム製品に具現化されてもよいだけでなく、コンピュータプロセッサと本プロセッサに結合したメモリとを備えるシステムに具現化されてもよいことも理解されるだろう。ここで、本明細書で開示される機能を実行する1つ以上のプログラムでメモリが符号化される。
【0059】
図3は(図3に図示されない)通信エンティティについて暗号鍵を生成するように構成された装置100の実施形態を示す。通信エンティティはセキュリティ動作を実行するように構成される。装置100は、第1コンポーネント102と第2コンポーネント104とを備える。第1コンポーネント102は、矢印106、108で比喩的に示される少なくとも2つのパラメータを提供するように構成される。
【0060】
第1パラメータ106は暗号鍵110、112の集合を備えるか、またはこの集合から導出される。(図には2つの鍵が示されるものの、暗号鍵の集合は任意の個数の鍵を含みうる。)暗号鍵の集合はセキュリティ動作を実行することによって通信エンティティによって算出される。暗号鍵110、112の集合から第1パラメータ106を導出することは比喩的にブロック114として示される。第2パラメータ108はトークン116を備えるか、またはこのトークン116から導出される。トークン116は、セキュリティ動作が通信エンティティについて開始されるごとに異なる値を有する。トークン116から第2パラメータ108を導出することは比喩的にブロック118として示される。装置100の第2コンポーネント104は、提供されたパラメータ106、118に基づいて暗号鍵120を生成するために鍵導出関数を実行するように構成される。
【0061】
図4を参照して、上述の装置100を備えるシステム200の実施形態が示される。装置100は、移動局のような、UEでありうる通信エンティティ202に含まれうる。当然ながら、通信エンティティ202は装置100に適合可能な任意の適切な種類の通信エンティティでありうる。さらに、システムは、SAE/LTEネットワーク内に存在しうるネットワーク・エンティティ204を備える。ネットワーク・エンティティ204はAuCまたはHSSとMMEとを備えうる。これはまた、SAE/LTEネットワーク内の別の通信エンティティでありうる。
【0062】
図3、図4に示される暗号鍵生成装置100に対応して、暗号鍵を生成するための方法の実施形態を示す図300が図5に示される。生成される鍵は2つのエンティティ間の通信を保護するために用いられる。第1エンティティ302は図4に示される通信エンティティ202に対応してもよく、第2エンティティ304は図4のネットワーク・エンティティ204に対応してもよい。第1エンティティはUEでありうる。しかしながら、本実施形態はUE‐ネットワーク・エンティティ間のシナリオに限定されない。そうではなく、一般に任意の2つの通信エンティティに適用されうる。
【0063】
MMEは通信エンティティ202についてセキュリティ動作を開始する責任を有しうる。生成される暗号鍵はMMEと通信エンティティ202とによって共有されうる。
【0064】
特に、方法の実施形態は、矢印300´で比喩的に説明されるセキュリティ動作の一部として第1エンティティ302により実行される。セキュリティ動作は第1エンティティ302について第2エンティティ304により(特にそのMMEにより)開始される。実施形態自体は2つのステップ306、308を有する。ステップ306では少なくとも2つのパラメータ(図3の106と108)を提供する。第1パラメータは、セキュリティ動作300´を実行することによって第1エンティティ302により算出された暗号鍵(図3に示される110と112)の集合を備えるか、またはこの集合から導出される。第2パラメータは、第1エンティティ302についてセキュリティ動作300´が第2エンティティにより開始されるごとに異なる値を有するトークン(図3に示される116)を備えるか、またはこのトークンから導出される。第2ステップ308で、提供されたパラメータ(図3に示される116と118)に基づいて暗号鍵(図3に示される120)を生成するために鍵導出関数が適用される。
【0065】
以下に、2つのUE間の鍵衝突、またはさらに重要なものとして1つ且つ同一のUEについてのセキュリティ動作の2つの異なる実行間の鍵衝突を本技術がどのように首尾よく回避するかを特に強調しつつ、暗号鍵生成技術を説明するための実質的な詳細が与えられる。
【0066】
暗号鍵生成はUMTS AKA動作の一部でありうる。UMTS AKAは、UE特にそのUSIMと、UEのホーム環境(HE)内のAuC/HSSとが、ユーザ固有の秘密鍵K、所定のメッセージ認証関数f1、f2、および所定の暗号鍵生成関数f3、f4、f5を共有するという実装に基づく。さらに、USIMとAuC/HSSとは、ネットワーク認証をサポートするためにカウンタまたはシーケンス番号SQNUE、SQNHEをそれぞれ管理する。例えば、AuC/HSSは、特に第1エンティティについてセキュリティ動作が開始されるごとに、SQNHEを増分しうる。UMTS AKA動作は、認証ベクトル(AV)生成、認証・鍵確立を含む複数の手続きを有する。
【0067】
AV手続きの目的は、複数のユーザ認証を実行するために、UEのHEからSN/VLR(またはMME)に未使用の(fresh)AVの配列を提供することである。HEによる認証ベクトル生成が図6に説明される。この図を参照して、SN/VLRから要求を受信すると、AuC/HSSはn個の認証ベクトルAV(1…n)の順序配列をSN/VLRへ送信する。各AVは乱数(すなわち乱数チャレンジ)RAND、期待応答XRES、秘匿鍵CK、完全性鍵IK、および認証トークンAUTNを備える。
【0068】
AuC/HSSは、未使用のシーケンス番号SQNと予測不可能なチャレンジRANDとを生成することから始める。続いて、以下の値が算出される:
‐メッセージ認証コードMAC=f1(SQN‖RAND‖AMF)、ここでf1はメッセージ認証関数、
‐期待応答XRES=f2(RAND)、ここでf2は(場合によっては切り落とされた(truncated))メッセージ認証関数、
‐秘匿鍵CK=f3(RAND)、ここでf3は鍵生成関数、
‐完全性鍵IK=f4(RAND)、ここでf4は鍵生成関数、
‐匿名鍵AK=f5(RAND)、ここでf5は鍵生成関数。
【0069】
最後に、認証トークンAUTN=(SQN xOR AK)‖AMF‖MACが作成される。これはAUC/HSSにより作成されうる。ここで、AKはSQNを秘匿するために用いられる匿名鍵である。なぜなら、SQNはUEの識別子およびロケーションをさらしうるからである。SQNの隠匿は受動的攻撃から保護するためである。AKの使用はオプションでありうる。AKが用いられない場合に値AK=000...0がその代わりに比喩的に用いられうる。
【0070】
AVの配列は認証応答において要求元のSN/VLRへ返信される。各AVはSN/VLRとUSIMとの間の1つ(且つ唯1つ)の認証/暗号鍵配送について有効である。
【0071】
UMTS AKA動作の次の手続きである認証・鍵確立はSN/VLRとUEとの間で相互認証し、新たな秘匿鍵および完全性鍵を確立することである。この処理は図7に説明される。この図を参照して、SN/VLRが認証/暗号鍵配送を開始する場合に、それは配列から次のAVを選択し、パラメータであるRANDおよびAUTNをUEへ送信する。USIMはAUTNが受け入れ可能であるかどうかを調べ、そうであるならばSN/VLRへ返信される応答RESを作り出す。特にUE′の手続きが図8に示される。
【0072】
図8を参照して、RANDおよびAUTNを受信すると、UEはまず匿名鍵AK=f5(RAND)を算出し(またはAK=000...0を使用し)、シーケンス番号SQN=(SQN xOR AK) xOR AKを読み出す。次に、UEはXMAC=f1(SQN‖RAND‖AMF)を算出し、これをAUTNに含まれるMACと比較する。これらが異なるならば、UEはユーザ認証却下を理由の表示とともにSN/VLRへ返信し、UEは手続きを中止する。さもなければ、UEは受信されたSQNが正しい範囲内にあることを検証する。
【0073】
SQNが正しい範囲内にあると考えられるならば、UEはRES=f2(RAND)を算出し、SN/VLRへ戻されるユーザ認証応答にこのパラメータを含める。最後に、UEは秘匿鍵CK=f3(RAND)と完全性鍵IK=f4(RAND)とを算出する。効率性を向上するために、RES、CK、およびIKはまた、RANDを受信した後の任意の時点で早期に算出されうるだろう。UEは再同期のためにRANDを記憶しうる。
【0074】
ユーザ認証応答を受信すると、SN/VLRはRESと、選択された認証ベクトルからの期待応答XRESとを比較する。XRESがRESに等しいならば、ユーザの認証は受け入れられている。次いで、新たに算出された鍵CK、IKは秘匿機能および完全性機能を実行するエンティティへUSIMおよびSN/VLRによって転送されるだろう。
【0075】
上記から、UMTS AKA動作は組(RAND,AUTN)に基づき、AUTNは
AUTN=(SQN xOR AK)‖AMF‖MAC
として、シーケンス番号SQNを備えるか、またはこのSQNから導出されることが見て取れる。ここで、AKは匿名鍵であり、上記の出力”f5”からミレナージュ(図9参照)によって作り出されうる。
【0076】
以下の関数
KDF(CK‖IK,RAND‖IMPI‖SQN)
は上述の衝突問題への第1解決策である。ここで、SQNはこのように入力に含まれている。ここで、2つのRANDが同一、すなわちRAND=RAND´だとしても、SQNが常に(例えば1だけ)増加しているという事実は、入力が異なり、一意であり、または区別できることを保証するだろう。
【0077】
代替の解決策は、
KDF(CK‖IK,RAND‖IMPI‖AUTN)
を用いることである。この解決策は、AUTNがAKAシグナリングから「そのまま」用いられうるため、より単純に実装されうる。しかしながら、この場合の入力の「一意性」は明らかでないかもしれない。なぜなら、
AUTN=(SQN xOR AK)‖AMF‖MAC
であり、SQN≠SQN´だとしても、AKが場合によっては違いを「打ち消し」うるため、(SQN xOR AK)と(SQN´ xOR AK´)とが異なることはすぐには見て取れない。しかしながら、以下のように、(SQN xOR AK)が異なっていることが証明されうる。
【0078】
(CK‖IK,RAND‖IMPI‖AUTN)=(CK´‖IK´,RAND′‖IMPI‖AUTN´)
が成り立つと想定する。これがCK=CK´、IK=IK´、およびRAND=RAND´を暗示することがすでに示されている。よって、AUTN=AUTN´が成り立ちうるかどうかを調べることが残っている。これを調べることは、
(SQN xOR AK)‖AMF‖MAC=(SQN´ xOR AK´)‖AMF´‖MAC´
が成り立つかどうかを調べることに置き換えうる。
【0079】
一般性を失わずにAMF=AMF´かつMAC=MAC´であると仮定しよう。次いで、以下の
SQN xOR AK = SQN´ xOR AK´
が成り立ちうるかどうかを調べることだけが必要になる。
【0080】
RAND=RAND´が予想されることを再考しよう。図9に示されるミレナージュ・アルゴリズムを参照して、これはAK=AK´(なぜならこれらは同じRANDから作り出されたため)を暗示する。よって、
SQN=SQN´
となるべきであるが、これは矛盾する。なぜなら、前述のように、SQNは常に「ステップアップ」し、よってSQN≠SQN´であるからである。
【0081】
よって、第2解決策もKDF関数への入力の一意性が保証されることが証明される。
【0082】
一意性を達成するためにSQNまたはAUTNを用いる代わりの一般の解決策とて、UEについてネットワークによりUMTS AKA動作が開始されるごとに異なる値を有する任意のトークンが利用可能である。例えば、(上述の解析によって、)必要な一意性特性を有するため、(AUTNの一部を形成する)SQN xOR AKが用いられうる。
【0083】
上述の暗号鍵生成技術は数多くの利点を示す。例えば、これはKDF入力の一意性を保証する。従って、起こりえる同一の入力によってもたらされる衝突を首尾よく回避する。この技術を用いれば、生成される暗号鍵が例えばSAE/LTEシステムの高水準のセキュリティ要件を満たすことができるだろう。さらなる利点として、本技術はUSIMを交換する必要なく、すでに配備されたUSIMに基づいて実装されうる。SQNでなくAUTNを用いることによる別の個別の利点は、本発明が(USIM以外の)移動体端末において実施されうることである。
【0084】
暗号鍵生成技術の実施形態が添付の図面で説明され前述の明細書で記載されてきたが、本技術はここに開示された実施形態に限定されないことが理解されるだろう。本技術は本発明の範囲を逸脱することなく数多くの再構成、修正および置換が可能である。

【特許請求の範囲】
【請求項1】
2つのエンティティ(202,204)間の通信を保護するための暗号鍵(120)を生成するための方法であって、前記方法は第2エンティティ(204,304)により開始される分散セキュリティ動作の一部として第1エンティティ(202,302)により実行され、
前記セキュリティ動作を実行することによって前記第1エンティティ(202)により算出された暗号鍵(110,112)の集合を備えるか又は前記集合から導出される第1パラメータ(106)と、前記第1エンティティ(202,302)について前記セキュリティ動作が前記第2エンティティ(204,304)により開始されるごとに異なる値を有するトークン(116)を備えるか又は前記トークンから導出される第2パラメータとを含む少なくとも2つのパラメータ(106,108)を提供する工程(306)と、
前記提供されたパラメータ(106,108)に基づいて暗号鍵(120)を生成するために鍵導出関数を適用する工程(308)と
を有することを特徴とする方法。
【請求項2】
前記トークン(116)は、前記第1エンティティ(202,302)について前記セキュリティ動作が前記第2エンティティ(204,304)により開始された回数を示すシーケンス番号<SQN>を備えるか又は前記SQNから導出されることを特徴とする請求項1に記載の方法。
【請求項3】
前記トークン(116)は前記SQNそのものであることを特徴とする請求項2に記載の方法。
【請求項4】
前記トークン(116)は、算術演算、論理演算、及び文字列演算のうちの少なくとも1つを含むアルゴリズムを用いて前記SQNから導出されることを特徴とする請求項2に記載の方法。
【請求項5】
前記トークン(116)は、前記セキュリティ動作の一部として前記SQNに基づいて前記第2エンティティ(204,304)により作成されて前記第1エンティティ(202,302)へ配信された認証トークン<AUTN>を備えるか又は前記AUTNから導出されることを特徴とする請求項2乃至4の何れか1項に記載の方法。
【請求項6】
前記トークン(116)は前記SQNと匿名鍵<AK>との排他的論理和を備えることを特徴とする請求項4又は5に記載の方法。
【請求項7】
前記トークンは、前記SQNと匿名鍵<AK>との前記排他的論理和、認証・鍵管理フィールド<AMF>、及びメッセージ認証コード<MAC>の連結であることを特徴とする請求項6に記載の方法。
【請求項8】
前記第1パラメータ(106)が備えるか又は前記第1パラメータ(106)が導出される前記暗号鍵(110,112)の集合は、秘匿鍵<CK>(110)と完全性鍵<IK>(112)とを備えるか又は前記CKと前記IKとから導出されることを特徴とする請求項1乃至7の何れか1項に記載の方法。
【請求項9】
生成された前記暗号鍵(120)に基づいて更なる暗号鍵を生成するために1つ以上の更なる鍵導出関数を適用する工程をさらに有することを特徴とする請求項1乃至8の何れか1項に記載の方法。
【請求項10】
前記更なる暗号鍵は、
ノンアクセスストラタム<NAS>トラフィックの保護のための暗号鍵の集合、
無線リソース制御<RRC>トラフィックの保護のための暗号鍵の集合、
ユーザプレーン<UP>トラフィックの保護のための暗号鍵の集合、及び
RRCトラフィックの保護のための前記暗号鍵とUPトラフィックの保護のための前記暗号鍵との少なくとも一方を導出するための中間暗号鍵<KeNB
のうちの少なくとも1つを含むことを特徴とする請求項9に記載の方法。
【請求項11】
前記第1エンティティ(202、302)はユーザ機器であることを特徴とする請求項1乃至10の何れか1項に記載の方法。
【請求項12】
前記第2エンティティ(204,304)はネットワーク・エンティティであることを特徴とする請求項1乃至11の何れか1項に記載の方法。
【請求項13】
前記第2エンティティ(204,304)はシステムアーキテクチャエボリューション<SAE>/ロングタームエボリューション<LTE>のネットワーク内に存在することを特徴とする請求項12に記載の方法。
【請求項14】
前記第2エンティティ(204,304)は、認証センタ<AuC>/ホーム加入者サーバ<HSS>とモビリティ管理エンティティ<MME>とを備えることを特徴とする請求項12又は13に記載の方法。
【請求項15】
前記セキュリティ動作は前記第1エンティティ(202,302)と前記第2エンティティ(204,304)とにより連携して実行されることを特徴とする請求項1乃至14の何れか1項に記載の方法。
【請求項16】
前記セキュリティ動作はUMTSの認証/暗号鍵配送<AKA>プロトコルに基づくことを特徴とする請求項1乃至15の何れか1項に記載の方法。
【請求項17】
コンピュータシステムで実行された場合に請求項1乃至16の何れか1項に記載の方法の各工程を実行するコンピュータプログラムコード部を備えることを特徴とするコンピュータプログラム。
【請求項18】
コンピュータで読み取り可能な記録媒体に格納されることを特徴とする請求項17に記載のコンピュータプログラム。
【請求項19】
セキュリティ動作を実行するように構成された通信エンティティ(202,302)のために暗号鍵(120)を生成するように構成された装置(100)であって、
前記セキュリティ動作を実行することによって前記通信エンティティ(202、302)により算出された暗号鍵(110,112)の集合を備えるか又は前記集合から導出される第1パラメータ(106)と、前記通信エンティティ(202,302)について前記セキュリティ動作が開始されるごとに異なる値を有するトークン(116)を備えるか又は前記トークンから導出される第2パラメータ(108)とを含む少なくとも2つのパラメータ(106,108)を提供するように構成された第1コンポーネント(102)と、
前記提供されたパラメータ(106,108)に基づいて暗号鍵(120)を生成するために鍵導出関数を実行するように構成された第2コンポーネント(104)と
を備えることを特徴とする装置(100)。
【請求項20】
前記トークン(116)は、前記通信エンティティ(202,302)について前記セキュリティ動作が開始された回数を示すSQNを備えるか又は前記SQNから導出されることを特徴とする請求項19に記載の装置。
【請求項21】
前記トークン(116)は前記SQNそのものであることを特徴とする請求項20に記載の装置(100)。
【請求項22】
前記トークン(116)は、算術演算、論理演算、及び文字列演算のうちの少なくとも1つを含むアルゴリズムを用いて前記SQNに基づいて作成されることを特徴とする請求項20に記載の装置(100)。
【請求項23】
前記トークン(116)は、前記セキュリティ動作の一部として前記SQNに基づいて作成されて前記通信エンティティ(202,302)へ配信されたAUTNを備えるか又は前記AUTNから導出されることを特徴とする請求項20乃至22の何れか1項に記載の装置(100)。
【請求項24】
前記トークン(116)は前記SQNと匿名鍵<AK>との排他的論理和を備えることを特徴とする請求項23に記載の装置(100)。
【請求項25】
前記第1パラメータ(106)が備えるか又は前記第1パラメータ(106)が導出される前記暗号鍵(110,112)の集合は、前記セキュリティ動作の一部として前記通信エンティティ(202、302)により算出された秘匿鍵<CK>(110)と完全性鍵<IK>(112)とを備えるか又は前記CKと前記IKとから導出されることを特徴とする請求項19乃至24の何れか1項に記載の装置(100)。
【請求項26】
生成された前記暗号鍵(120)に基づいて更なる暗号鍵を生成するために1つ以上の更なる鍵導出関数を適用するようにさらに構成されたことを特徴とする請求項19乃至25の何れか1項に記載の装置(100)。
【請求項27】
請求項19乃至26の何れか1項に記載の装置(100)を備えることを特徴とするユーザ機器(202)。
【請求項28】
請求項27に記載のユーザ機器(202,302)とネットワーク・エンティティ(304)とを備えることを特徴とするシステム。
【請求項29】
前記ネットワーク・エンティティ(304)はSAE/LTEのネットワークで用いられることを特徴とする請求項28に記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2011−254512(P2011−254512A)
【公開日】平成23年12月15日(2011.12.15)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−161346(P2011−161346)
【出願日】平成23年7月22日(2011.7.22)
【分割の表示】特願2011−511982(P2011−511982)の分割
【原出願日】平成20年7月21日(2008.7.21)
【出願人】(598036300)テレフオンアクチーボラゲット エル エム エリクソン(パブル) (2,266)
【Fターム(参考)】