加密密鑰生成的制作方法
【專利摘要】本發(fā)明提供了一種用于生成加密密鑰(120)的技術。該技術尤其適用于保護協(xié)作運行分布式安全操作的兩個實體(202、302;204、304)之間的通信。該技術包括:提供至少兩個參數(shù)(106、108),第一參數(shù)(106)包括第一實體(202、302)通過運行該安全操作而計算的一些加密密鑰(110、112),或者第一參數(shù)(106)是根據(jù)所述加密密鑰(110、112)導出的;以及第二參數(shù)(108)包括令牌(116)或者是根據(jù)所述令牌(116)導出的,每次第二實體(204、304)針對所述第一實體(202、302)發(fā)起安全(114)操作時,所述令牌(116)具有不同的值。對所提供的參數(shù)(106、108)應用密鑰導出函數(shù),以生成所需的加密密鑰(120)。
【專利說明】加密密鑰生成
[0001]本申請是2010年12月3日(申請日:2008年7月21日)向中國專利局遞交并進入中國國家階段的題為“加密密鑰生成”的發(fā)明專利申請N0.200880129636.9 (PCT國際申請 N0.PCT/EP2008/005960)的分案申請。
【技術領域】
[0002]本發(fā)明總體涉及用于生成加密密鑰的技術。具體地,本發(fā)明涉及提供高等級安全性的加密密鑰生成技術。
【背景技術】
[0003]認證和密鑰協(xié)商協(xié)議(AKA)是一種基于質詢-響應的、使用對稱加密的協(xié)議。AKA的主要目的包括兩個彼此通信的實體進行互相認證以及建立用于保護其間交換的通信的加密密鑰。AKA的一個變型是UMTS AKA,包括在技術規(guī)范3G TS33.102中由3GPP針對3G移動通信網絡而標準化的安全架構中。
[0004]UMTS AKA的基本概念如圖1所示。參照該圖,UMTS AKA協(xié)議在用戶設備(UE)與網絡實體(NE)之間運行。網絡實體通過向UE發(fā)送用戶認證請求來發(fā)起AKA。將隨機質詢或隨機碼(RAND)和認證令牌(AUTN)與該請求一起發(fā)送至UE。在接收到RAND和AUTN時,UE計算密碼密鑰(CK)和完整性密鑰(IK)等等,然后使用CK和IK用于密碼處理和完整性功能。
[0005]3GPP還在進行所謂“超3G”通信網絡的標準化。系統(tǒng)架構演進(SAE)和長期演進(LTE)是超3G網絡的兩個密切相關的方面。與傳統(tǒng)3G網絡相比,基于SAE/LTE的網絡可以施加更高和/或更多安全要求。例如,可能需要以不同等級來保護通信的更多加密密鑰。在另一標準相關文獻3GPP TR33.821中,3GPP推薦了一種密鑰層級,用于導出在SAE/LTE中使用的更多加密密鑰。
[0006]圖2示出了這種密鑰層級。在該層級的最頂部是密鑰K,密鑰K是在UE的全球訂戶標識模塊(USM)與位于網絡中的認證中心(AuC)之間共享的長期加密密鑰。向下一級是一對加密密鑰CK和IK,CK和IK是由UE (具體由UE的USM)以與上述UMTS AKA操作相同或相似的方式導出的。該層級中的再下一級是密鑰Kasme,密鑰Kasme是由UE從CK、IK以及(如果需要)一些其他參數(shù)導出的。一旦導出,就將KasmeWAuC傳送至接入網,具體而言傳送至SAE/LTE網絡的接入安全管理實體(ASME),然后在UE與網絡之間共享。當接入網是基于LTE技術時,ASME的功能由移動性管理實體(MME)來處理。
[0007]可以通過應用特定加密函數(shù)來導出密鑰Kasme以及該層級中位于其“下層”的密鑰。例如,
[0008]Kasme=KDF (CKI IK, 0x02 PLMN_ID <other_parameter>)其中 KDF 基于通用自舉架構(GBA)密鑰導出函數(shù)(KDF)。在3G TS33.220中規(guī)定了一個GBAKDF。
[0009]GBA KDF可以利用加密散列函數(shù),如安全散列算法(SHA)散列函數(shù)。在許多SHA散列函數(shù)中,SHA-256是一種高度安全的變型,因為它被認為能夠防沖突并且如偽隨機函數(shù)一樣工作。顧名思義,SHA-256是具有256比特摘要(輸出)長度的安全散列算法散列函數(shù)。PLMN_ID是向UE提供服務的網絡的標識符。
[0010]已經認識到,為了實現(xiàn)高等級安全性,GBA KDF函數(shù)僅僅主要基于CK和IK是不夠的。其原因在于以下風險:給定UE可能兩次得到相同CK,或者兩個不同UE可能得到相同CK。在這種情況下,破壞了對KDF的輸入的“唯一性”,不同UE(使用相同Kasme)之間可能發(fā)生沖突。
[0011]總而言之,盡管如果x=y,則KDF(X)肯定產生與KDF(y)相同的密鑰,但是反之則可能不一定成立。即,即使X古y,仍可能發(fā)生KDF(X)=KDF(y)。然而,由于建議KDF基于SHA-256,如上所述,SHA-256被設計為能夠防沖突,因此這是不太可能發(fā)生的事件。因此,對于本文描述的技術,可以安全的假定:當且僅當x=y,KDF(x)=KDF(y)。這種假定允許本文描述的技術集中關注確保對KDF的輸入的“唯一性”。
[0012]GBA KDF規(guī)范的標準化團體(ETSI/SAGE,特別算法專家組)已經注意到上述問題,并建議將UE的私有用戶標識(MPI)包括在<other_parameter>中,以避免不同UE之間的沖突。作為另一建議,還可以將隨機碼(如RAND)包括在<other_parameter>中。這在從ETSI/SAGE至3GPP SA3的聯(lián)絡函(在3GPP文獻中編號S3-030219)中進行描述。
[0013]然而,已經發(fā)現(xiàn),上述建議仍不能保證對KDF的輸入的“唯一性”。從以下對GBAKDF函數(shù)的安全屬性及其在SAE/LTE中針對同一 UE (例如同一 MPI)的使用的分析中可以看出這一點。
[0014]首先,考慮以下基本構造:
[0015]KDF (CK, IMPI)
[0016]由于已經假定MPI = IMPI?(當UE固定時),當且僅當CK=CK’時,該基本構造將導致兩個輸入(CK, MPI)、(CKMMPI')的沖突。
[0017]其次,考慮另一構造,該構造更接近實際GBA KDF:
[0018]KDF (CKI I IK, MPI)
[0019]然而,與起初可能認為的不同,將IK包括在輸入中不改變上述沖突屬性。即,當且僅當 CK=CK,時,KDF (CKI I IK, IMP I)將等于 KDF (CK,| | IK’,IMP I)。為了理解包括 IK 為何無用,需要考慮在UE上執(zhí)行的加密算法如何生成CK和IK。
[0020]典型的UE側加密算法是如圖9所示的Milenage算法。在圖9中,Ek表示高級加密標準(AES)算法,也稱為Rijndael算法,使用密鑰K (存儲在AuC和UE的USM中)。現(xiàn)在考慮如果CK=CK’將發(fā)生何種情況。由于AES是一種置換(permutation,一對一映射),這意味著,中間值(在寬箭頭處出現(xiàn))由f3的結果(正巧為CK)唯一確定。但是,這意味著,在產生CK時,寬箭頭處的值必須與產生CK’時在相同位置出現(xiàn)的值相同。這繼而意味著,作為對f4的輸入而出現(xiàn)的值必須相同,因此,相同的f4值必須出現(xiàn)。恰好f4是IK。因此,已經示出,當且僅當IK=IK’時,CK=CK’。
[0021]接下來,考慮根據(jù)標準化團體(SAGE)的建議的一種“改進”構造,即將RAND包括在輸入中:
[0022]KDF (CKI I IK, RAND | | IMP I)
[0023]假定CK=CK’(從而IK=IK’)。希望使用RAND將保證唯一性。然而并非如此。再次考慮Milenage算法中根據(jù)RAND來產生CK和IK的“相關”部分:如圖9所示,存在以下情形,在寬箭頭處與RAND相對應的值與對應于RAND’的值相同。但是再次,AES(Ek)是一種置換,使得輸入必須也相等,即RAND=RAND’。(因為假定固定UE,并且因此在兩種情況下都將出現(xiàn)相同的K,因此AES依賴于K的事實無濟于事。)
[0024]換言之,已經示出,當且僅當RAND=RAND’ 時,(CK | | IK, RAND | MPI) = (CK,| | IK’,RAND’ IlMPI)。在SAE/LTE的情況下,輸入中也可以包括PLMN_ID,但是由于UE很可能保持在相同網絡中多次,因此不能依賴于該參數(shù)PLMN_ID來實現(xiàn)保證唯一性的目的。
[0025]嘗試避免沖突的一種備選方式可以是使用不同于AES的另一算法來進行f3和f4算法的加密處理。具體地,上述分析基于AES是置換的事實。因此可以使用非置換(多對一映射)來取代AES。由于兩個原因,這是有問題的。首先,必須將現(xiàn)有USM調整為適合3GPP SAE架構。其次,通過選擇非置換函數(shù),實際上增大了例如f3的兩個輸出相沖突的概率。
[0026]缺乏輸入唯一性可能是一個嚴重的安全問題。由于當且僅當RAND=RAND’時,將出現(xiàn)沖突,并且由于RAND是128比特,預期該沖突將在約2~ (128/2) =2~64次認證之后出現(xiàn)(這是所謂的“生日悖論”)。顯然,這低于GBA(128比特)的目標安全等級。對于LTE,情況甚至更糟,因為需要LTE提供256比特的安全等級。因此,高沖突概率是在SAE/LTE中提供所需安全等級的重大障礙。
【發(fā)明內容】
[0027]相應地,需要一種避免上述沖突的方案。該方案還應當理想地與已經部署的USM一起工作,并且不需要替換所有USM。
[0028]根據(jù)第一方面,提供了一種用于生成加密密鑰的方法。加密密鑰用于保護兩個實體之間的通信等等。該方法由第一實體執(zhí)行。該方法形成由第二實體發(fā)起的分布式安全操作的一部分。該方法包括:提供至少兩個參數(shù),其中,第一參數(shù)包括第一實體通過運行該安全操作而計算的加密密鑰集合,或者第一參數(shù)是根據(jù)所述加密密鑰集合導出的;以及第二參數(shù)包括令牌或者是根據(jù)令牌導出的,每次第二實體針對第一實體發(fā)起安全操作時,所述令牌具有不同的值(換言之,對于任何兩次安全操作,該令牌的值永不相同);以及應用密鑰導出函數(shù),以基于所提供的參數(shù)來生成加密密鑰。
[0029]表述“參數(shù)包括X”可以意味著具有字符串格式的變量X形成該參數(shù)或該參數(shù)的一部分。表述“參數(shù)是根據(jù)X導出的”可以意味著該參數(shù)是將特定函數(shù)(如數(shù)學函數(shù))至少應用至變量X的結果。函數(shù)的示例包括但不限于:算術運算、邏輯運算、字符串運算、及其任何組合。算術運算可以是加法、減法、乘法等等,及其任何有意義的組合。邏輯運算可以是與(AND)、或(0R)、異或(xOR)、非(NOT)等等,及其任何有意義的組合。字符串運算可以是連接、反轉、替換等等,及其任何有意義的組合。此外,可以將算術運算、邏輯運算和字符串運算進行組合。
[0030]具體地,上述令牌可以包括序號(SQN)或根據(jù)SQN導出,所述SQN指示第二實體已經針對第一實體發(fā)起安全操作的次數(shù)。對于每次發(fā)起,第二實體可以增大SQN。這種機制確保針對所發(fā)起的每次安全操作,令牌具有不同的值。
[0031]令牌可以具有許多形式。在一種情況下,SQN本身可以是令牌。備選地,可以使用涉及特定數(shù)學運算(如算術運算、邏輯運算和字符串運算中的至少一個)的算法從所述SQN導出令牌。例如,令牌可以包括由第二實體基于SQN來構造并傳送給第一實體的認證令牌(AUTN),或者根據(jù)該AUTN導出。這種構造和傳送可以是安全操作的一部分。
[0032]具體地,令牌可以包括SQN與匿名密鑰(AK)的異或。更具體地,令牌可以是以下各項的級聯(lián)連接:SQN與匿名密鑰(AK)的異或、認證和密鑰管理字段(AMF)以及消息認證碼(MAC)??梢詫⒃摷壜?lián)連接表示為:
[0033]令牌=AUTN=(SQN xOR AK) | | AMF | | MAC
[0034]或者
[0035]令牌=函數(shù)(AUTN)=函數(shù)((SQNxOR AK) | AMF MAC)
[0036]第二參數(shù)還可以包括隨機質詢或隨機碼(RAND),或者根據(jù)隨機質詢或隨機碼(RAND)導出。RAND可以由第二實體生成,并傳送至第一實體,作為安全操作的一部分。第二參數(shù)還可以包括第一實體的標識符,或根據(jù)第一實體的標識符導出。該標識符可以是私有用戶標識(MPI)或者國際移動訂戶標識(MSI)。此外,第二參數(shù)可以包括通信網絡(具體為第一實體的服務網絡)的標識符,或者根據(jù)通信網絡的標識符導出。例如,該標識符可以是公共陸地移動網絡標識符(PLMN_ID)。
[0037]具體地,第二參數(shù)可以包括0x02、PLMN_ID、RAND、IMPI或MSI以及令牌的級聯(lián)連接,或根據(jù)該級聯(lián)連接導出??梢詫⑵浔硎緸?
[0038]0x02 I I PLMN_ID | | RAND | | IMPI | | 令牌
[0039]當令牌是SQN自身時,以上變?yōu)?
[0040]0x02 I I PLMN_ID | | RAND | | IMPI | | SQN
[0041]當令牌是AUTN時,以上變?yōu)?
[0042]0x02 I IPLMN_ID| |RAND| |IMPI| |AUTN
[0043]關于方法中使用的第一參數(shù),該參數(shù)包括第一實體通過運行安全操作而獲得的加密密鑰集合,或根據(jù)該加密密鑰集合導出。該加密密鑰集合可以包括密碼密鑰(CK)和完整性密鑰(IK),或者根據(jù)所述CK和所述IK導出。
[0044]CK和IK可以是第一實體基于AUTN和RAND計算的密碼密鑰和完整性密鑰??梢詮牡诙嶓w傳送AUTN和RAND。該計算以及AUTN和RAND的傳送可以形成安全操作的一部分。
[0045]在一個實施中,第一參數(shù)可以包括CK和IK的級聯(lián)連接,或者根據(jù)CK和IK的級聯(lián)連接導出。數(shù)學上可以將其表示為:
[0046]CK I I IK
[0047]本文所述的方法生成加密密鑰。該密鑰可以至少由第一實體和第二實體在它們之間的任何后續(xù)通信中共享。在特定實施中,該密鑰可以是圖2的“密鑰層級”中的Kasme,可以由第一實體和第二實體的接入安全管理實體(ASME)共享該密鑰。
[0048]可以將該方法擴展為包括:應用一個或多個其他密鑰導出函數(shù),以生成更多加密密鑰。這種生成基于或者利用上述基本的、未擴展的方法中生成的加密密鑰,例如KASME。
[0049]由擴展方法生成的加密密鑰可以包括以下至少一項:用于保護非接入層(NAS)業(yè)務的加密密鑰集合;用于保護無線資源控制(RRC)業(yè)務的加密密鑰集合;用于保護用戶平面(UP)業(yè)務的加密密鑰集合;以及用于導出保護RRC業(yè)務的加密密鑰和/或保護UP業(yè)務的加密密鑰的中間加密密鑰,如ΚεΝΒ。為了更容易理解這些密鑰,參照圖2,圖2示出了 SAE/LTE中使用的密鑰層級。
[0050]具體地,用于保護NAS業(yè)務的加密密鑰集合可以包括:用于使用加密算法來保護NAS業(yè)務的密鑰(KNASen。)和/或用于使用完整性算法來保護NAS業(yè)務的另一密鑰(KNASint)。類似地,用于保護RRC業(yè)務的加密密鑰集合可以包括:用于使用加密算法來保護RRC業(yè)務的密鑰(K—)和/或用于使用完整性算法來保護RRC業(yè)務的另一密鑰(Kraffiint)。此外,用于保護UP業(yè)務的加密密鑰集合可以包括用于使用加密算法來保護UP業(yè)務的密鑰(Kupenc)。
[0051]對于本文描述的技術,“第一實體”可以是用戶設備,如移動臺。“第二實體”可以是位于通信網絡內的實體,因此是“網絡實體”。具體地,第二實體可以位于SAE/LTE網絡中。
[0052]第二實體可以包括認證中心(AuC)/歸屬地訂戶服務器(HSS)和移動性管理實體(MME)。MME可以負責發(fā)起針對第一實體的安全操作。所生成的加密密鑰可以由AuC/HSS生成,并由第一實體和MME共享。AuC/HSS可以增大SQN,具體在每次針對第一實體發(fā)起安全操作時增大SQN。此外,AuC/HSS也可以基于SQN來構造AUTN0
[0053]可以由第一和第二實體以協(xié)作方式來執(zhí)行本文涉及的安全操作。例如,安全操作可以基于AKA過程,如UMTS AKA協(xié)議。
[0054]該方法涉及的密鑰導出函數(shù)可以是通用自舉架構(GBA)密鑰導出函數(shù)。通用自舉架構密鑰導出函數(shù)可以采用安全散列算法(SHA)散列函數(shù)。具體地,可以采用具有256比特長度的摘要的安全散列算法散列函數(shù)(SHA-256)。
[0055]根據(jù)另一方面,提供了一種計算機程序產品。所述計算機程序產品包括程序代碼部分,當在計算設備的計算機系統(tǒng)上執(zhí)行計算機程序產品時,所述程序代碼部分用于執(zhí)行本文所述的方法的步驟??梢栽谟嬎銠C可讀報告介質上存儲所述計算機程序產品。
[0056]一般而言,可以通過硬件、軟件或組合的硬件/軟件方法來實現(xiàn)該方案。
[0057]對于硬件實現(xiàn),提供了一種適于生成用于通信實體的加密密鑰的設備。所述設備可以執(zhí)行安全操作,加密密鑰的生成可以是安全操作的一部分。所述設備包括:第一組件,適于提供至少兩個參數(shù),其中,第一參數(shù)可以包括通信實體通過運行該安全操作而計算的加密密鑰集合,或者第一參數(shù)是根據(jù)所述加密密鑰集合導出的;以及第二參數(shù)可以包括令牌或者是根據(jù)令牌導出的,每次針對通信實體發(fā)起安全操作時,所述令牌具有不同的值。所述設備還包括:第二組件,適于執(zhí)行密鑰導出函數(shù),以基于所提供的參數(shù)來生成加密密鑰。如上所述,令牌可以采取許多可能形式。
[0058]令牌可以包括SQN或根據(jù)SQN導出,SQN指示已經針對通信實體發(fā)起安全操作的次數(shù)。在一個實施中,SQN本身是令牌。備選地,可以使用涉及算術運算、邏輯運算和字符串運算中的至少一個的算法基于所述SQN構造令牌。例如,令牌可以包括基于SQN構造并傳送給通信實體的AUTN,或者根據(jù)該AUTN導出,其中,這種構造和傳送形成安全操作的一部分。例如,令牌可以是以下各項的級聯(lián)連接:SQN與匿名密鑰(AK)的異或、認證和密鑰管理字段(AMF)以及消息認證碼(MAC)??梢詫⒃摷壜?lián)連接表示為:
[0059]令牌=AUTN=(SQN xOR AK) | | AMF | | MAC
[0060]除了令牌之外,第二參數(shù)還可以包括RAND,或者根據(jù)RAND導出??梢詫AND傳送至通信實體,作為安全操作的一部分。此外,第二參數(shù)可以包括通信實體的標識符,或根據(jù)通信實體的標識符導出。該標識符的示例是通信實體的私有用戶標識αΜΡ?)。此外,第二參數(shù)可以包括通信實體的服務網絡的標識符,或者根據(jù)通信實體的服務網絡的標識符導出。該標識符可以是公共陸地移動網絡標識符(PLMN_ID)。
[0061]第二參數(shù)的具體示例可以包括0x02、PLMN_ID、RAND、IMPI或MSI以及令牌的級聯(lián)連接,或根據(jù)該級聯(lián)連接導出。例如,可以將第二參數(shù)表示為:
[0062]0x02 I I PLMN_ID | | RAND | | IMPI | | 令牌
[0063]當令牌是SQN時,以上變?yōu)?
[0064]0x02 I I PLMN_ID | | RAND | | IMPI | | SQN
[0065]當令牌是AUTN時,以上變?yōu)?
[0066]0x02 I IPLMN_ID| |RAND| |IMPI| |AUTN
[0067]如上所述,第一參數(shù)可以包括加密密鑰集合,或根據(jù)加密密鑰集合導出。具體地,該加密密鑰集合可以包括由通信實體作為安全操作的一部分而計算的密碼密鑰(CK)和完整性密鑰(IK)。備選地,加密密鑰集合可以根據(jù)密碼密鑰和完整性密鑰導出。
[0068]作為一個具體實施,第一參數(shù)可以包括CK和IK的級聯(lián)連接,或者根據(jù)所述CK和所述IK的級聯(lián)連接導出,可以將該級聯(lián)連接表示為:
[0069]CKI IIK
[0070]該設備不僅可以基于所提供的第一和第二參數(shù)來生成加密密鑰,還可以基于所生成的加密密鑰來生成更多加密密鑰。因此,該設備可以適于應用一個或多個其他密鑰導出函數(shù),以基于已經生成的加密密鑰來生成更多加密密鑰。
[0071]這些“更多加密密鑰”可以包括以下至少一項:用于保護非接入層(NAS)業(yè)務的加密密鑰集合;用于保護無線資源控制(RRC)業(yè)務的加密密鑰集合;用于保護用戶平面(UP)業(yè)務的加密密鑰集合;用于導出保護RRC業(yè)務的加密密鑰和/或保護UP業(yè)務的加密密鑰的中間加密密鑰K.。
[0072]上述通信實體可以是用戶設備,如移動臺(例如移動電話或網卡)。
[0073]根據(jù)另一方面,提供了一種包括上述設備的用戶設備。該用戶設備可以是移動臺。
[0074]根據(jù)另一方面,提供了一種包括上述用戶設備的系統(tǒng)。所述系統(tǒng)還包括網絡實體。該網絡實體可以用于SAE/LTE網絡內。該網絡實體可以包括AuC/HSS和MME。MME可以負責發(fā)起針對用戶設備的安全操作。AuC/HSS可以生成加密密鑰??梢杂捎脩粼O備和MME共享所生成的加密密鑰。AuC/HSS可以增大SQN,具體地,在每次針對用戶設備發(fā)起安全操作時增大SQN。此外,AuC/HSS也可以基于SQN來構造AUTN。
【專利附圖】
【附圖說明】
[0075]以下參照附圖中示出的示例實施例來描述加密密鑰生成技術,其中:
[0076]圖1是示出了 UMTS AKA協(xié)議的基本概念的圖;
[0077]圖2是示出了針對SAE/LTE系統(tǒng)提出的密鑰層級的框圖;
[0078]圖3是示出了設備實施例的框圖;
[0079]圖4是示出了系統(tǒng)實施例的框圖;
[0080]圖5是示出了方法實施例的框圖;
[0081]圖6是示出了網絡實體生成認證向量的UMTS AKA操作過程的框圖;
[0082]圖7是示出了認證和密鑰建立的另一 UMTS AKA操作過程的框圖;
[0083]圖8是示出了 UE執(zhí)行的、作為UMTS AKA操作的一部分的一般認證功能的框圖;[0084]圖9是示出了在UE處執(zhí)行上述認證功能的特定加密算法的框圖;以及
[0085]圖10是示出了上述加密算法的特定細節(jié)的框圖。
【具體實施方式】
[0086]在以下描述中,為了解釋而非限制的目的,闡述了具體細節(jié),如步驟的特定序列、接口和配置,以提供對加密密鑰生成技術的透徹理解。對本領域技術人員而言顯而易見地,在脫離這些具體細節(jié)的其他實施例中,可以實現(xiàn)該技術。例如,盡管主要在UMTS AKA協(xié)議和SAE/LTE網絡環(huán)境的上下文中描述該技術,但是對本領域技術人員而言顯而易見地,可以通過其他安全協(xié)議、架構或環(huán)境相結合實現(xiàn)該技術。
[0087]此外,本領域技術人員可以理解,可以使用與編程的微處理器或通用計算機結合工作的軟件來實現(xiàn)在下文中解釋的功能。還可以理解,盡管主要以方法和設備的形式來描述該技術,但是還可以將該技術嵌入計算機程序產品中以及包括計算機處理器和耦合至處理器的存儲器在內的系統(tǒng)中,其中,使用可以執(zhí)行本文公開的功能的一個或更多程序來對存儲器進行編碼。
[0088]圖3示出了設備100的實施例,設備100適于生成用于通信實體(圖3中未示出)的加密密鑰。該通信實體適于運行安全操作。設備100包括第一組件102和第二組件104。第一組件102適于提供至少兩個參數(shù),象征性地在箭頭106和108處示出。
[0089]第一參數(shù)106包括加密密鑰110和112的集合,或根據(jù)加密密鑰110和112的集合的導出(盡管圖中示出了兩個密鑰,但是加密密鑰集合可以包括任何數(shù)目的密鑰)。已經由通信實體通過運行安全操作來計算加密密鑰集合。將加密密鑰110和112的集合導出為第一參數(shù)106的操作象征性地示出為塊114。第二參數(shù)108包括令牌116,或根據(jù)令牌116導出。每次針對通信實體發(fā)起安全操作時,令牌116具有不同的值。將令牌116導出為第二參數(shù)108的操作象征性地示出為塊118。設備100的第二組件104適于運行密鑰導出函數(shù),以基于所提供的參數(shù)106和108來生成加密密鑰120。
[0090]參照圖4,示出了包括上述設備100的系統(tǒng)200的實施例。通信實體202可以包括設備100,通信實體202可以是UE,如移動臺。當然,通信實體202可以是能夠容納設備100的任何合適類型的通信實體。此外,系統(tǒng)包括網絡實體204,網絡實體204可以位于SAE/LTE網絡中。網絡實體204可以包括AuC或HSS和MME。它還可以是SAE/LTE網絡中的另一通信實體。
[0091]與圖3和4所示的加密密鑰生成設備100相對應,圖5中示出了圖300,圖300示出了用于生成加密密鑰的方法的實施例。所生成的密鑰用于保護兩個實體之間的通信。第一實體302可以與圖4所示的通信實體202相對應,并且第二實體304可以與圖4的網絡實體204相對應。第一實體可以是UE。然而,該實施例不限于UE-網絡實體場景。而是可以應用與一般的任何兩個通信實體。
[0092]MME可以負責發(fā)起針對通信實體202的安全操作。所生成的加密密鑰可以由MME和通信實體202共享。
[0093]具體地,該方法實施例可以由第一實體302執(zhí)行,作為在箭頭300’處象征性地示出的安全操作的一部分,該安全操作由第二實體304(具體由其MME)針對第一實體302發(fā)起。該實施例本身包括兩個步驟:306和308。步驟306提供至少兩個參數(shù)(圖3的106和108)。第一參數(shù)包括第一實體302通過運行安全操作300’計算的加密密鑰(圖3中所示的110和112)的集合,或根據(jù)加密密鑰集合導出。第二參數(shù)包括令牌(圖3中所示的116),或根據(jù)令牌導出,每次第二實體304針對第一實體302發(fā)起安全操作300’時,令牌具有不同的值。在第二步驟308,應用密鑰導出函數(shù),基于所提供的參數(shù)(圖3中所示的106和108)來生成加密密鑰(圖3中所示的120)。
[0094]以下給出實質細節(jié),以解釋加密密鑰生成技術,其中特別強調該技術如何可以成功避免兩個UE之間的密鑰沖突,或者更重要地,如何避免針對同一 UE的安全操作的兩次不同執(zhí)行之間的密鑰沖突。
[0095]加密密鑰生成可以是UMTS AKA操作的一部分。UMTS AKA基于以下實施:UE(尤其是其USM)與UE的歸屬地環(huán)境(HE)中的AuC/HSS共享用戶專有密鑰K、特定消息認證函數(shù)
H、f2和特定加密密鑰生成函數(shù)f3、f4、f5。此外,USIM和AuC/HSS跟蹤計數(shù)器,或分別跟蹤序號SQNue和SQNhe,以支持網絡認證。例如,AuC/HSS可以增大SQNhe,具體地,每次針對第一實體發(fā)起安全操作時增大SQNhe。UMTS AKA操作包括多個過程,包括認證向量(AV)的生成以及認證和密鑰建立。
[0096]AV過程的目的是向SN/VLR (或MME)提供來自UE的HE的新AV的數(shù)組,以執(zhí)行多個用戶認證。圖6示出了 HE生成認證向量的操作。參照該圖,在從SN/VLR接收到請求時,AuC/HSS向SN/VLR發(fā)送η個認證向量AV (1...η)的有序數(shù)組。每個AV包括隨機數(shù)(或隨機質詢)RAND、期望響應XRES、密碼密鑰CK、完整性密鑰IK和認證令牌AUTN。
[0097]AuC/HSS從生成新序號SQN和不可預測的質詢RAND開始操作。隨后,計算以下值:
[0098]-消息認證碼MAC=fI (SQN | | RAND | | AMF),其中f I是消息認證函數(shù);
[0099]-期望響應XRES=f2(RAND),其中f2是(可能截斷的)消息認證函數(shù);
[0100]-密碼密鑰CK=f3(RAND),其中f3是密鑰生成函數(shù);
[0101]-完整性密鑰IK=f4(RAND),其中f4是密鑰生成函數(shù);以及
[0102]-匿名密鑰AK=f5(RAND),其中f5是密鑰生成函數(shù)。
[0103]最終,構造認證令牌AUTN = (SQN xOR AK) | | AMF | | MAC??梢杂葾uC/HSS來構造它。這里,AK是用于隱藏SQN的匿名密鑰,因為SQN可能暴露UE的標識和位置。隱藏SQN是為了抵御被動攻擊。AK的使用可以是可選的。當不使用AK時,可以象征性地代之以值AK=OO0...0。
[0104]在認證響應中,將AV的數(shù)組發(fā)送回進行請求的SN/VLR。每個AV對SN/VLR與USM之間的一個(并且僅有一個)認證和密鑰協(xié)商有效。
[0105]UMTS AKA操作的下一過程,認證和密鑰建立,是用于在SN/VLR與UE之間互相認證和建立新的密碼密鑰和完整性密鑰。圖7中示出了該過程。參照該圖,當SN/VLR發(fā)起認證和密鑰協(xié)商時,SN/VLR從數(shù)組中選擇下一 AV,并將參數(shù)RAND和AUTN發(fā)送至UE。USM檢查是否可以接受AUTN,如果是,則產生發(fā)送回SN/VLR的響應RES。具體地,在圖8中示出了UE的過程。
[0106]參照圖8,在接收到RAND和AUTN時,UE首先計算匿名密鑰AK=f5 (RAND)(或使用AK=OO0...0),并取回序號SQN= (SQN xOR AK) xOR AK。接下來,UE計算XMAC=fl (SQN RAND AMF),并將其與AUTN中包括的MAC進行比較。如果它們不同,則UE將具有原因指示的用戶認證拒絕發(fā)送回SN/VLR,UE放棄該過程。否則,UE驗證接收的SQN在正確范圍內。
[0107]如果認為SQN在正確范圍內,則UE計算RES=f 2 (RAND),并將該參數(shù)包括在返回SN/VLR的用戶認證響應中。最終,UE計算密碼密鑰CK=f3 (RAND)和完整性密鑰IK=f4(RAND)0為了提高效率,也可以在接收RAND之后的任何時間,更早地計算RES、CK和IK0 UE可以存儲RAND用于同步目的。
[0108]在接收用戶認證響應之后,SN/VLR將RES與來自所選認證向量的期望響應XRES進行比較。如果XRES與RES相等,則用戶的認證已經被接受。然后,USIM和SN/VLR將新計算的密鑰CK和IK傳送至執(zhí)行密碼和完整性功能的實體。[0109]從以上內容可以看到,UMTS AKA操作基于(RAND,AUTN)對,AUTN包括序號SQN或根據(jù)序號SQN導出,如:
[0110]AUTN= (SQN xOR AK) | | AMF | | MAC
[0111]其中AK是匿名密鑰,可以通過Milenage (見圖9)根據(jù)上述輸出“f5”來產生。
[0112]以下函數(shù)是對上述沖突問題的第一解決方案:
[0113]KDF (CF I I IK, RAND | | IMPI | | SQN)
[0114]其中輸入已經包括SQN?,F(xiàn)在,即使兩個RAND相同,即RAND=RAND’,SQN始終增大(例如增大I)的事實將確保輸入不同、唯一或獨特。
[0115]備選解決方案使用:
[0116]KDF (CKI I IK, RAND | | IMPI | | AUTN)
[0117]該方案更容易實現(xiàn),因為可以“原樣”使用來自AKA信令的AUTN。然而,在這種情況下,輸入的“唯一性”可能不明顯,因為:
[0118]AUTN= (SQN xOR AK) | AMF MAC
[0119]即使SQN Φ SQN’,可能不能直接看出(SQN xOR AK)、(SQN’xOR AK’)將不同,因為AK可能潛在地“消除”了差異。然而,以下,可以證明(SQN xOR AK)的獨特性。
[0120]假定:
[0121](CKI I IK, RAND | IMPI | AUTN) = (CK’ | | IK,,RAND,| | IMPI | AUTN’)
[0122]已經表明,這意味著CK=CK’,IK=IK’W&RAND=RAND’。因此,仍要檢查 AUTN=AUTN’是否成立。這種檢查可以轉換為檢查以下是否成立:
[0123](SQN xOR AK) | AMF MAC= (SQN,xOR AK’) | AMF,| MAC,
[0124]不失一般性,假定AMF=AMF’,MAC=MAC’。此時,只要檢查以下是否成立:
[0125]SQN xOR AK=SQN ’ xOR AK ’
[0126]回想期望RAND=RAND ’。參照圖9所示的Milenage算法,這意味著AK=AK’ (由于它們是由相同的RAND產生的)。因此,必須有:
[0127]SQN=SQN’
[0128]這是一個矛盾,因為如上所述,SQN始終“逐步增大”,因此SNQ ? SQN’。
[0129]因此,正明第二方案也保正了對KDF函數(shù)的輸入的唯一性。
[0130]作為一般方案,取代使用SQN或AUTN來實現(xiàn)唯一性,每次網絡針對UE發(fā)起UMTSAKA操作時具有不同值的任何令牌都是可行的。例如,可以使用SQN xOR AK(形成AUTN的一部分),由于它(通過上述分析)具有所需的唯一性屬性。
[0131]這里,上述加密密鑰生成技術表現(xiàn)出許多優(yōu)點。例如,它保證了 KDF輸入的唯一性。因此,它成功地避免了可能的相同輸入所帶來的問題。使用這種技術,所生成的加密密鑰應當能夠滿足例如SAE/LTE系統(tǒng)中的高等級安全性要求。作為另一優(yōu)點,該技術可以基于已經部署的USM來實現(xiàn),無需任何USM替換。使用AUTN而不是SQN的另一具體優(yōu)點在于,可以在移動終端中(在USM之外)實施本發(fā)明。
[0132]盡管已經在附圖中示出了并在前述描述中描述了加密密鑰生成技術的實施例,但是可以理解,該技術不限于本文公開的實施例。在不脫離本發(fā)明范圍的前提下,能夠對該技術進行許多重新配置、修改和替換。
【權利要求】
1.一種用于生成加密密鑰(120)的方法,所述加密密鑰用于保護第一實體(202、302)和第二實體(204、304)之間的通信,其中所述方法由包括在第一實體(202、302)中的加密密鑰生成設備(100)執(zhí)行,作為由第二實體(204、304)發(fā)起的認證和密鑰協(xié)商協(xié)議AKA過程的一部分,所述方法包括以下步驟: -提供(306)至少兩個參數(shù)(106、108),其中,第一參數(shù)(106)包括所述第一實體(202、302)通過運行所述AKA過程而計算的加密密鑰集合(110、112),或者所述第一參數(shù)(106)是根據(jù)所述加密密鑰集合導出的;以及第二參數(shù)包括令牌(116)或者是根據(jù)令牌(116)導出的,所述令牌(116)包括序號SQN和匿名密鑰AK的異或;以及 -應用(308)密鑰導出函數(shù),以基于所提供的參數(shù)(106、108)來生成加密密鑰(120)。
2.根據(jù)權利要求1所述的方法,其中,所述SQN指示所述第二實體(204、304)已經針對所述第一實體(202、302)發(fā)起的所述AKA過程的次數(shù)。
3.根據(jù)權利要求1所述的方法,其中,所述令牌(116)是所述SQN與所述匿名密鑰AK的異或、認證和密鑰管理字段AMF以及消息認證碼MAC的級聯(lián)連接。
4.根據(jù)權利要求1所述的方法,其中,所述第一參數(shù)(106)中包括的所述加密密鑰集合(110、112)或者用于導出所述第一參數(shù)(106)的所述加密密鑰集合(110、112)包括密碼密鑰CK(IlO)和完整性密鑰IK (112),或者是根據(jù)所述CK和所述IK導出的。
5.根據(jù)權利要求1所述的方法,還包括以下步驟: -應用一個或更多其他密鑰導出函數(shù),以基于所生成的加密密鑰(120)來生成更多加密密鑰。
6.根據(jù)權利要求5所述的方法,其中,所述更多加密密鑰包括以下至少一項: -用于保護非接入層NAS業(yè)務的加密密鑰集合;` -用于保護無線資源控制RRC業(yè)務的加密密鑰集合; -用于保護用戶平面UP業(yè)務的加密密鑰集合;以及 -用于導出保護RRC業(yè)務的加密密鑰和/或保護UP業(yè)務的加密密鑰的中間加密密鑰KeNB。
7.根據(jù)權利要求1所述的方法,其中,所述第一實體(202、302)是用戶設備。
8.根據(jù)權利要求1所述的方法,其中,所述第二實體(204、304)是網絡實體。
9.根據(jù)權利要求8所述的方法,其中,所述第二實體(204、304)位于系統(tǒng)架構演進SAE/長期演進LTE網絡中。
10.根據(jù)權利要求8所述的方法,其中,所述第二實體(204、304)包括認證中心AuC/歸屬地訂戶服務器HSS和移動性管理實體MME。
11.根據(jù)權利要求1所述的方法,其中,所述安全操作是由所述第一實體(202、302)和第二實體(204、304)協(xié)作執(zhí)行的。
12.根據(jù)權利要求1所述的方法,其中,所述AKA過程是UMTSAKA協(xié)議。
13.根據(jù)權利要求1所述的方法,其中,每次所述第二實體(204、304)針對所述第一實體(202、302)發(fā)起所述AKA過程時,所述至少兩個參數(shù)(106、108)的組合具有不同的值。
14.一種配置用于生成用于通信實體(202、302)的加密密鑰的設備(100),所述通信實體(202、302)配置用于運行認證和密鑰協(xié)商協(xié)議AKA過程,所述設備(100)包括: -第一組件(102),配置用于提供至少兩個參數(shù)(106、108),其中,第一參數(shù)(106)包括所述通信實體(202、302)通過運行所述AKA過程而計算的加密密鑰集合(110、112),或者所述第一參數(shù)是根據(jù)所述加密密鑰集合(110、112)導出的;以及第二參數(shù)(108)包括令牌(116)或者是根據(jù)令牌(116)導出的,所述令牌(116)包括序號SQN和匿名密鑰AK的異或;以及 -第二組件(104),配置用于運行密鑰導出函數(shù),以基于所提供的參數(shù)(106、108)來生成加密密鑰(120)。
15.根據(jù)權利要求14所述的設備(100),其中,所述SQN指示已經針對所述通信實體(202.302)發(fā)起所述AKA過程的次數(shù)。
16.根據(jù)權利要求14所述的設備(100),其中,所述第一參數(shù)(106)中包括的所述加密密鑰集合(110、112)或者用于導出所述第一參數(shù)(106)的所述加密密鑰集合(110、112)包括密碼密鑰CK(IlO)和完整性密鑰IK (112),或者是根據(jù)CK和IK導出的,所述CK和所述IK是所述通信實體(202、302)作為所述AKA過程的一部分來計算的。
17.根據(jù)權利要求14所述的設備(100),還配置用于:應用一個或更多其他密鑰導出函數(shù),以基于所生成的加密密鑰(120)來生成更多加密密鑰。
18.根據(jù)權利要求14所述的設備(100),其中,每次針對所述通信實體(202、302)發(fā)起所述AKA過程時,所述至少兩個參數(shù)(106、108)的組合具有不同的值。
19.一種用戶設備(202),配置用于運行認證和密鑰協(xié)商協(xié)議AKA過程,并包括根據(jù)權利要求14至18中任一項所述的設備(100)。
20.一種系統(tǒng)(200),包括網絡實體(204、304)和根據(jù)權利要求19所述的用戶設備(202.302)。
21.根據(jù)權利要求20所述的系統(tǒng)(200),其中,所述網絡實體(204、304)用于系統(tǒng)架構演進SAE/長期演進LTE網絡。
【文檔編號】H04L9/06GK103746794SQ201310606861
【公開日】2014年4月23日 申請日期:2008年7月21日 優(yōu)先權日:2008年6月6日
【發(fā)明者】卡爾·諾曼, 馬茨·內斯隆德 申請人:艾利森電話股份有限公司