加密密钥生成的制作方法

文档序号:7777698阅读:734来源:国知局
加密密钥生成的制作方法
【专利摘要】本发明提供了一种用于生成加密密钥(120)的技术。该技术尤其适用于保护协作运行分布式安全操作的两个实体(202、302;204、304)之间的通信。该技术包括:提供至少两个参数(106、108),第一参数(106)包括第一实体(202、302)通过运行该安全操作而计算的一些加密密钥(110、112),或者第一参数(106)是根据所述加密密钥(110、112)导出的;以及第二参数(108)包括令牌(116)或者是根据所述令牌(116)导出的,每次第二实体(204、304)针对所述第一实体(202、302)发起安全(114)操作时,所述令牌(116)具有不同的值。对所提供的参数(106、108)应用密钥导出函数,以生成所需的加密密钥(120)。
【专利说明】加密密钥生成
[0001]本申请是2010年12月3日(申请日:2008年7月21日)向中国专利局递交并进入中国国家阶段的题为“加密密钥生成”的发明专利申请N0.200880129636.9 (PCT国际申请 N0.PCT/EP2008/005960)的分案申请。
【技术领域】
[0002]本发明总体涉及用于生成加密密钥的技术。具体地,本发明涉及提供高等级安全性的加密密钥生成技术。
【背景技术】
[0003]认证和密钥协商协议(AKA)是一种基于质询-响应的、使用对称加密的协议。AKA的主要目的包括两个彼此通信的实体进行互相认证以及建立用于保护其间交换的通信的加密密钥。AKA的一个变型是UMTS AKA,包括在技术规范3G TS33.102中由3GPP针对3G移动通信网络而标准化的安全架构中。
[0004]UMTS AKA的基本概念如图1所示。参照该图,UMTS AKA协议在用户设备(UE)与网络实体(NE)之间运行。网络实体通过向UE发送用户认证请求来发起AKA。将随机质询或随机码(RAND)和认证令牌(AUTN)与该请求一起发送至UE。在接收到RAND和AUTN时,UE计算密码密钥(CK)和完整性密钥(IK)等等,然后使用CK和IK用于密码处理和完整性功能。
[0005]3GPP还在进行所谓“超3G”通信网络的标准化。系统架构演进(SAE)和长期演进(LTE)是超3G网络的两个密切相关的方面。与传统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以及(如果需要)一些其他参数导出的。一旦导出,就将KasmeWAuC传送至接入网,具体而言传送至SAE/LTE网络的接入安全管理实体(ASME),然后在UE与网络之间共享。当接入网是基于LTE技术时,ASME的功能由移动性管理实体(MME)来处理。
[0007]可以通过应用特定加密函数来导出密钥Kasme以及该层级中位于其“下层”的密钥。例如,
[0008]Kasme=KDF (CKI IK, 0x02 PLMN_ID <other_parameter>)其中 KDF 基于通用自举架构(GBA)密钥导出函数(KDF)。在3G TS33.220中规定了一个GBAKDF。
[0009]GBA KDF可以利用加密散列函数,如安全散列算法(SHA)散列函数。在许多SHA散列函数中,SHA-256是一种高度安全的变型,因为它被认为能够防冲突并且如伪随机函数一样工作。顾名思义,SHA-256是具有256比特摘要(输出)长度的安全散列算法散列函数。PLMN_ID是向UE提供服务的网络的标识符。
[0010]已经认识到,为了实现高等级安全性,GBA KDF函数仅仅主要基于CK和IK是不够的。其原因在于以下风险:给定UE可能两次得到相同CK,或者两个不同UE可能得到相同CK。在这种情况下,破坏了对KDF的输入的“唯一性”,不同UE(使用相同Kasme)之间可能发生冲突。
[0011]总而言之,尽管如果x=y,则KDF(X)肯定产生与KDF(y)相同的密钥,但是反之则可能不一定成立。即,即使X古y,仍可能发生KDF(X)=KDF(y)。然而,由于建议KDF基于SHA-256,如上所述,SHA-256被设计为能够防冲突,因此这是不太可能发生的事件。因此,对于本文描述的技术,可以安全的假定:当且仅当x=y,KDF(x)=KDF(y)。这种假定允许本文描述的技术集中关注确保对KDF的输入的“唯一性”。
[0012]GBA KDF规范的标准化团体(ETSI/SAGE,特别算法专家组)已经注意到上述问题,并建议将UE的私有用户标识(MPI)包括在<other_parameter>中,以避免不同UE之间的冲突。作为另一建议,还可以将随机码(如RAND)包括在<other_parameter>中。这在从ETSI/SAGE至3GPP SA3的联络函(在3GPP文献中编号S3-030219)中进行描述。
[0013]然而,已经发现,上述建议仍不能保证对KDF的输入的“唯一性”。从以下对GBAKDF函数的安全属性及其在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上执行的加密算法如何生成CK和IK。
[0020]典型的UE侧加密算法是如图9所示的Milenage算法。在图9中,Ek表示高级加密标准(AES)算法,也称为Rijndael算法,使用密钥K (存储在AuC和UE的USM中)。现在考虑如果CK=CK’将发生何种情况。由于AES是一种置换(permutation,一对一映射),这意味着,中间值(在宽箭头处出现)由f3的结果(正巧为CK)唯一确定。但是,这意味着,在产生CK时,宽箭头处的值必须与产生CK’时在相同位置出现的值相同。这继而意味着,作为对f4的输入而出现的值必须相同,因此,相同的f4值必须出现。恰好f4是IK。因此,已经示出,当且仅当IK=IK’时,CK=CK’。
[0021]接下来,考虑根据标准化团体(SAGE)的建议的一种“改进”构造,即将RAND包括在输入中:
[0022]KDF (CKI I IK, RAND | | IMP I)
[0023]假定CK=CK’(从而IK=IK’)。希望使用RAND将保证唯一性。然而并非如此。再次考虑Milenage算法中根据RAND来产生CK和IK的“相关”部分:如图9所示,存在以下情形,在宽箭头处与RAND相对应的值与对应于RAND’的值相同。但是再次,AES(Ek)是一种置换,使得输入必须也相等,即RAND=RAND’。(因为假定固定UE,并且因此在两种情况下都将出现相同的K,因此AES依赖于K的事实无济于事。)
[0024]换言之,已经示出,当且仅当RAND=RAND’ 时,(CK | | IK, RAND | MPI) = (CK,| | IK’,RAND’ IlMPI)。在SAE/LTE的情况下,输入中也可以包括PLMN_ID,但是由于UE很可能保持在相同网络中多次,因此不能依赖于该参数PLMN_ID来实现保证唯一性的目的。
[0025]尝试避免冲突的一种备选方式可以是使用不同于AES的另一算法来进行f3和f4算法的加密处理。具体地,上述分析基于AES是置换的事实。因此可以使用非置换(多对一映射)来取代AES。由于两个原因,这是有问题的。首先,必须将现有USM调整为适合3GPP SAE架构。其次,通过选择非置换函数,实际上增大了例如f3的两个输出相冲突的概率。
[0026]缺乏输入唯一性可能是一个严重的安全问题。由于当且仅当RAND=RAND’时,将出现冲突,并且由于RAND是128比特,预期该冲突将在约2~ (128/2) =2~64次认证之后出现(这是所谓的“生日悖论”)。显然,这低于GBA(128比特)的目标安全等级。对于LTE,情况甚至更糟,因为需要LTE提供256比特的安全等级。因此,高冲突概率是在SAE/LTE中提供所需安全等级的重大障碍。

【发明内容】

[0027]相应地,需要一种避免上述冲突的方案。该方案还应当理想地与已经部署的USM一起工作,并且不需要替换所有USM。
[0028]根据第一方面,提供了一种用于生成加密密钥的方法。加密密钥用于保护两个实体之间的通信等等。该方法由第一实体执行。该方法形成由第二实体发起的分布式安全操作的一部分。该方法包括:提供至少两个参数,其中,第一参数包括第一实体通过运行该安全操作而计算的加密密钥集合,或者第一参数是根据所述加密密钥集合导出的;以及第二参数包括令牌或者是根据令牌导出的,每次第二实体针对第一实体发起安全操作时,所述令牌具有不同的值(换言之,对于任何两次安全操作,该令牌的值永不相同);以及应用密钥导出函数,以基于所提供的参数来生成加密密钥。
[0029]表述“参数包括X”可以意味着具有字符串格式的变量X形成该参数或该参数的一部分。表述“参数是根据X导出的”可以意味着该参数是将特定函数(如数学函数)至少应用至变量X的结果。函数的示例包括但不限于:算术运算、逻辑运算、字符串运算、及其任何组合。算术运算可以是加法、减法、乘法等等,及其任何有意义的组合。逻辑运算可以是与(AND)、或(0R)、异或(xOR)、非(NOT)等等,及其任何有意义的组合。字符串运算可以是连接、反转、替换等等,及其任何有意义的组合。此外,可以将算术运算、逻辑运算和字符串运算进行组合。
[0030]具体地,上述令牌可以包括序号(SQN)或根据SQN导出,所述SQN指示第二实体已经针对第一实体发起安全操作的次数。对于每次发起,第二实体可以增大SQN。这种机制确保针对所发起的每次安全操作,令牌具有不同的值。
[0031]令牌可以具有许多形式。在一种情况下,SQN本身可以是令牌。备选地,可以使用涉及特定数学运算(如算术运算、逻辑运算和字符串运算中的至少一个)的算法从所述SQN导出令牌。例如,令牌可以包括由第二实体基于SQN来构造并传送给第一实体的认证令牌(AUTN),或者根据该AUTN导出。这种构造和传送可以是安全操作的一部分。
[0032]具体地,令牌可以包括SQN与匿名密钥(AK)的异或。更具体地,令牌可以是以下各项的级联连接:SQN与匿名密钥(AK)的异或、认证和密钥管理字段(AMF)以及消息认证码(MAC)。可以将该级联连接表示为:
[0033]令牌=AUTN=(SQN xOR AK) | | AMF | | MAC
[0034]或者
[0035]令牌=函数(AUTN)=函数((SQNxOR AK) | AMF MAC)
[0036]第二参数还可以包括随机质询或随机码(RAND),或者根据随机质询或随机码(RAND)导出。RAND可以由第二实体生成,并传送至第一实体,作为安全操作的一部分。第二参数还可以包括第一实体的标识符,或根据第一实体的标识符导出。该标识符可以是私有用户标识(MPI)或者国际移动订户标识(MSI)。此外,第二参数可以包括通信网络(具体为第一实体的服务网络)的标识符,或者根据通信网络的标识符导出。例如,该标识符可以是公共陆地移动网络标识符(PLMN_ID)。
[0037]具体地,第二参数可以包括0x02、PLMN_ID、RAND、IMPI或MSI以及令牌的级联连接,或根据该级联连接导出。可以将其表示为:
[0038]0x02 I I PLMN_ID | | RAND | | IMPI | | 令牌
[0039]当令牌是SQN自身时,以上变为:
[0040]0x02 I I PLMN_ID | | RAND | | IMPI | | SQN
[0041]当令牌是AUTN时,以上变为:
[0042]0x02 I IPLMN_ID| |RAND| |IMPI| |AUTN
[0043]关于方法中使用的第一参数,该参数包括第一实体通过运行安全操作而获得的加密密钥集合,或根据该加密密钥集合导出。该加密密钥集合可以包括密码密钥(CK)和完整性密钥(IK),或者根据所述CK和所述IK导出。
[0044]CK和IK可以是第一实体基于AUTN和RAND计算的密码密钥和完整性密钥。可以从第二实体传送AUTN和RAND。该计算以及AUTN和RAND的传送可以形成安全操作的一部分。
[0045]在一个实施中,第一参数可以包括CK和IK的级联连接,或者根据CK和IK的级联连接导出。数学上可以将其表示为:
[0046]CK I I IK
[0047]本文所述的方法生成加密密钥。该密钥可以至少由第一实体和第二实体在它们之间的任何后续通信中共享。在特定实施中,该密钥可以是图2的“密钥层级”中的Kasme,可以由第一实体和第二实体的接入安全管理实体(ASME)共享该密钥。
[0048]可以将该方法扩展为包括:应用一个或多个其他密钥导出函数,以生成更多加密密钥。这种生成基于或者利用上述基本的、未扩展的方法中生成的加密密钥,例如KASME。
[0049]由扩展方法生成的加密密钥可以包括以下至少一项:用于保护非接入层(NAS)业务的加密密钥集合;用于保护无线资源控制(RRC)业务的加密密钥集合;用于保护用户平面(UP)业务的加密密钥集合;以及用于导出保护RRC业务的加密密钥和/或保护UP业务的加密密钥的中间加密密钥,如ΚεΝΒ。为了更容易理解这些密钥,参照图2,图2示出了 SAE/LTE中使用的密钥层级。
[0050]具体地,用于保护NAS业务的加密密钥集合可以包括:用于使用加密算法来保护NAS业务的密钥(KNASen。)和/或用于使用完整性算法来保护NAS业务的另一密钥(KNASint)。类似地,用于保护RRC业务的加密密钥集合可以包括:用于使用加密算法来保护RRC业务的密钥(K—)和/或用于使用完整性算法来保护RRC业务的另一密钥(Kraffiint)。此外,用于保护UP业务的加密密钥集合可以包括用于使用加密算法来保护UP业务的密钥(Kupenc)。
[0051]对于本文描述的技术,“第一实体”可以是用户设备,如移动台。“第二实体”可以是位于通信网络内的实体,因此是“网络实体”。具体地,第二实体可以位于SAE/LTE网络中。
[0052]第二实体可以包括认证中心(AuC)/归属地订户服务器(HSS)和移动性管理实体(MME)。MME可以负责发起针对第一实体的安全操作。所生成的加密密钥可以由AuC/HSS生成,并由第一实体和MME共享。AuC/HSS可以增大SQN,具体在每次针对第一实体发起安全操作时增大SQN。此外,AuC/HSS也可以基于SQN来构造AUTN0
[0053]可以由第一和第二实体以协作方式来执行本文涉及的安全操作。例如,安全操作可以基于AKA过程,如UMTS AKA协议。
[0054]该方法涉及的密钥导出函数可以是通用自举架构(GBA)密钥导出函数。通用自举架构密钥导出函数可以采用安全散列算法(SHA)散列函数。具体地,可以采用具有256比特长度的摘要的安全散列算法散列函数(SHA-256)。
[0055]根据另一方面,提供了一种计算机程序产品。所述计算机程序产品包括程序代码部分,当在计算设备的计算机系统上执行计算机程序产品时,所述程序代码部分用于执行本文所述的方法的步骤。可以在计算机可读报告介质上存储所述计算机程序产品。
[0056]一般而言,可以通过硬件、软件或组合的硬件/软件方法来实现该方案。
[0057]对于硬件实现,提供了一种适于生成用于通信实体的加密密钥的设备。所述设备可以执行安全操作,加密密钥的生成可以是安全操作的一部分。所述设备包括:第一组件,适于提供至少两个参数,其中,第一参数可以包括通信实体通过运行该安全操作而计算的加密密钥集合,或者第一参数是根据所述加密密钥集合导出的;以及第二参数可以包括令牌或者是根据令牌导出的,每次针对通信实体发起安全操作时,所述令牌具有不同的值。所述设备还包括:第二组件,适于执行密钥导出函数,以基于所提供的参数来生成加密密钥。如上所述,令牌可以采取许多可能形式。
[0058]令牌可以包括SQN或根据SQN导出,SQN指示已经针对通信实体发起安全操作的次数。在一个实施中,SQN本身是令牌。备选地,可以使用涉及算术运算、逻辑运算和字符串运算中的至少一个的算法基于所述SQN构造令牌。例如,令牌可以包括基于SQN构造并传送给通信实体的AUTN,或者根据该AUTN导出,其中,这种构造和传送形成安全操作的一部分。例如,令牌可以是以下各项的级联连接:SQN与匿名密钥(AK)的异或、认证和密钥管理字段(AMF)以及消息认证码(MAC)。可以将该级联连接表示为:
[0059]令牌=AUTN=(SQN xOR AK) | | AMF | | MAC
[0060]除了令牌之外,第二参数还可以包括RAND,或者根据RAND导出。可以将RAND传送至通信实体,作为安全操作的一部分。此外,第二参数可以包括通信实体的标识符,或根据通信实体的标识符导出。该标识符的示例是通信实体的私有用户标识αΜΡ?)。此外,第二参数可以包括通信实体的服务网络的标识符,或者根据通信实体的服务网络的标识符导出。该标识符可以是公共陆地移动网络标识符(PLMN_ID)。
[0061]第二参数的具体示例可以包括0x02、PLMN_ID、RAND、IMPI或MSI以及令牌的级联连接,或根据该级联连接导出。例如,可以将第二参数表示为:
[0062]0x02 I I PLMN_ID | | RAND | | IMPI | | 令牌
[0063]当令牌是SQN时,以上变为:
[0064]0x02 I I PLMN_ID | | RAND | | IMPI | | SQN
[0065]当令牌是AUTN时,以上变为:
[0066]0x02 I IPLMN_ID| |RAND| |IMPI| |AUTN
[0067]如上所述,第一参数可以包括加密密钥集合,或根据加密密钥集合导出。具体地,该加密密钥集合可以包括由通信实体作为安全操作的一部分而计算的密码密钥(CK)和完整性密钥(IK)。备选地,加密密钥集合可以根据密码密钥和完整性密钥导出。
[0068]作为一个具体实施,第一参数可以包括CK和IK的级联连接,或者根据所述CK和所述IK的级联连接导出,可以将该级联连接表示为:
[0069]CKI IIK
[0070]该设备不仅可以基于所提供的第一和第二参数来生成加密密钥,还可以基于所生成的加密密钥来生成更多加密密钥。因此,该设备可以适于应用一个或多个其他密钥导出函数,以基于已经生成的加密密钥来生成更多加密密钥。
[0071]这些“更多加密密钥”可以包括以下至少一项:用于保护非接入层(NAS)业务的加密密钥集合;用于保护无线资源控制(RRC)业务的加密密钥集合;用于保护用户平面(UP)业务的加密密钥集合;用于导出保护RRC业务的加密密钥和/或保护UP业务的加密密钥的中间加密密钥K.。
[0072]上述通信实体可以是用户设备,如移动台(例如移动电话或网卡)。
[0073]根据另一方面,提供了一种包括上述设备的用户设备。该用户设备可以是移动台。
[0074]根据另一方面,提供了一种包括上述用户设备的系统。所述系统还包括网络实体。该网络实体可以用于SAE/LTE网络内。该网络实体可以包括AuC/HSS和MME。MME可以负责发起针对用户设备的安全操作。AuC/HSS可以生成加密密钥。可以由用户设备和MME共享所生成的加密密钥。AuC/HSS可以增大SQN,具体地,在每次针对用户设备发起安全操作时增大SQN。此外,AuC/HSS也可以基于SQN来构造AUTN。
【专利附图】

【附图说明】
[0075]以下参照附图中示出的示例实施例来描述加密密钥生成技术,其中:
[0076]图1是示出了 UMTS AKA协议的基本概念的图;
[0077]图2是示出了针对SAE/LTE系统提出的密钥层级的框图;
[0078]图3是示出了设备实施例的框图;
[0079]图4是示出了系统实施例的框图;
[0080]图5是示出了方法实施例的框图;
[0081]图6是示出了网络实体生成认证向量的UMTS AKA操作过程的框图;
[0082]图7是示出了认证和密钥建立的另一 UMTS AKA操作过程的框图;
[0083]图8是示出了 UE执行的、作为UMTS AKA操作的一部分的一般认证功能的框图;[0084]图9是示出了在UE处执行上述认证功能的特定加密算法的框图;以及
[0085]图10是示出了上述加密算法的特定细节的框图。
【具体实施方式】
[0086]在以下描述中,为了解释而非限制的目的,阐述了具体细节,如步骤的特定序列、接口和配置,以提供对加密密钥生成技术的透彻理解。对本领域技术人员而言显而易见地,在脱离这些具体细节的其他实施例中,可以实现该技术。例如,尽管主要在UMTS AKA协议和SAE/LTE网络环境的上下文中描述该技术,但是对本领域技术人员而言显而易见地,可以通过其他安全协议、架构或环境相结合实现该技术。
[0087]此外,本领域技术人员可以理解,可以使用与编程的微处理器或通用计算机结合工作的软件来实现在下文中解释的功能。还可以理解,尽管主要以方法和设备的形式来描述该技术,但是还可以将该技术嵌入计算机程序产品中以及包括计算机处理器和耦合至处理器的存储器在内的系统中,其中,使用可以执行本文公开的功能的一个或更多程序来对存储器进行编码。
[0088]图3示出了设备100的实施例,设备100适于生成用于通信实体(图3中未示出)的加密密钥。该通信实体适于运行安全操作。设备100包括第一组件102和第二组件104。第一组件102适于提供至少两个参数,象征性地在箭头106和108处示出。
[0089]第一参数106包括加密密钥110和112的集合,或根据加密密钥110和112的集合的导出(尽管图中示出了两个密钥,但是加密密钥集合可以包括任何数目的密钥)。已经由通信实体通过运行安全操作来计算加密密钥集合。将加密密钥110和112的集合导出为第一参数106的操作象征性地示出为块114。第二参数108包括令牌116,或根据令牌116导出。每次针对通信实体发起安全操作时,令牌116具有不同的值。将令牌116导出为第二参数108的操作象征性地示出为块118。设备100的第二组件104适于运行密钥导出函数,以基于所提供的参数106和108来生成加密密钥120。
[0090]参照图4,示出了包括上述设备100的系统200的实施例。通信实体202可以包括设备100,通信实体202可以是UE,如移动台。当然,通信实体202可以是能够容纳设备100的任何合适类型的通信实体。此外,系统包括网络实体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可以负责发起针对通信实体202的安全操作。所生成的加密密钥可以由MME和通信实体202共享。
[0093]具体地,该方法实施例可以由第一实体302执行,作为在箭头300’处象征性地示出的安全操作的一部分,该安全操作由第二实体304(具体由其MME)针对第一实体302发起。该实施例本身包括两个步骤:306和308。步骤306提供至少两个参数(图3的106和108)。第一参数包括第一实体302通过运行安全操作300’计算的加密密钥(图3中所示的110和112)的集合,或根据加密密钥集合导出。第二参数包括令牌(图3中所示的116),或根据令牌导出,每次第二实体304针对第一实体302发起安全操作300’时,令牌具有不同的值。在第二步骤308,应用密钥导出函数,基于所提供的参数(图3中所示的106和108)来生成加密密钥(图3中所示的120)。
[0094]以下给出实质细节,以解释加密密钥生成技术,其中特别强调该技术如何可以成功避免两个UE之间的密钥冲突,或者更重要地,如何避免针对同一 UE的安全操作的两次不同执行之间的密钥冲突。
[0095]加密密钥生成可以是UMTS AKA操作的一部分。UMTS AKA基于以下实施:UE(尤其是其USM)与UE的归属地环境(HE)中的AuC/HSS共享用户专有密钥K、特定消息认证函数
H、f2和特定加密密钥生成函数f3、f4、f5。此外,USIM和AuC/HSS跟踪计数器,或分别跟踪序号SQNue和SQNhe,以支持网络认证。例如,AuC/HSS可以增大SQNhe,具体地,每次针对第一实体发起安全操作时增大SQNhe。UMTS AKA操作包括多个过程,包括认证向量(AV)的生成以及认证和密钥建立。
[0096]AV过程的目的是向SN/VLR (或MME)提供来自UE的HE的新AV的数组,以执行多个用户认证。图6示出了 HE生成认证向量的操作。参照该图,在从SN/VLR接收到请求时,AuC/HSS向SN/VLR发送η个认证向量AV (1...η)的有序数组。每个AV包括随机数(或随机质询)RAND、期望响应XRES、密码密钥CK、完整性密钥IK和认证令牌AUTN。
[0097]AuC/HSS从生成新序号SQN和不可预测的质询RAND开始操作。随后,计算以下值:
[0098]-消息认证码MAC=fI (SQN | | RAND | | AMF),其中f I是消息认证函数;
[0099]-期望响应XRES=f2(RAND),其中f2是(可能截断的)消息认证函数;
[0100]-密码密钥CK=f3(RAND),其中f3是密钥生成函数;
[0101]-完整性密钥IK=f4(RAND),其中f4是密钥生成函数;以及
[0102]-匿名密钥AK=f5(RAND),其中f5是密钥生成函数。
[0103]最终,构造认证令牌AUTN = (SQN xOR AK) | | AMF | | MAC。可以由AuC/HSS来构造它。这里,AK是用于隐藏SQN的匿名密钥,因为SQN可能暴露UE的标识和位置。隐藏SQN是为了抵御被动攻击。AK的使用可以是可选的。当不使用AK时,可以象征性地代之以值AK=OO0...0。
[0104]在认证响应中,将AV的数组发送回进行请求的SN/VLR。每个AV对SN/VLR与USM之间的一个(并且仅有一个)认证和密钥协商有效。
[0105]UMTS AKA操作的下一过程,认证和密钥建立,是用于在SN/VLR与UE之间互相认证和建立新的密码密钥和完整性密钥。图7中示出了该过程。参照该图,当SN/VLR发起认证和密钥协商时,SN/VLR从数组中选择下一 AV,并将参数RAND和AUTN发送至UE。USM检查是否可以接受AUTN,如果是,则产生发送回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将具有原因指示的用户认证拒绝发送回SN/VLR,UE放弃该过程。否则,UE验证接收的SQN在正确范围内。
[0107]如果认为SQN在正确范围内,则UE计算RES=f 2 (RAND),并将该参数包括在返回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传送至执行密码和完整性功能的实体。[0109]从以上内容可以看到,UMTS AKA操作基于(RAND,AUTN)对,AUTN包括序号SQN或根据序号SQN导出,如:
[0110]AUTN= (SQN xOR AK) | | AMF | | MAC
[0111]其中AK是匿名密钥,可以通过Milenage (见图9)根据上述输出“f5”来产生。
[0112]以下函数是对上述冲突问题的第一解决方案:
[0113]KDF (CF I I IK, RAND | | IMPI | | SQN)
[0114]其中输入已经包括SQN。现在,即使两个RAND相同,即RAND=RAND’,SQN始终增大(例如增大I)的事实将确保输入不同、唯一或独特。
[0115]备选解决方案使用:
[0116]KDF (CKI I IK, RAND | | IMPI | | AUTN)
[0117]该方案更容易实现,因为可以“原样”使用来自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函数的输入的唯一性。
[0130]作为一般方案,取代使用SQN或AUTN来实现唯一性,每次网络针对UE发起UMTSAKA操作时具有不同值的任何令牌都是可行的。例如,可以使用SQN xOR AK(形成AUTN的一部分),由于它(通过上述分析)具有所需的唯一性属性。
[0131]这里,上述加密密钥生成技术表现出许多优点。例如,它保证了 KDF输入的唯一性。因此,它成功地避免了可能的相同输入所带来的问题。使用这种技术,所生成的加密密钥应当能够满足例如SAE/LTE系统中的高等级安全性要求。作为另一优点,该技术可以基于已经部署的USM来实现,无需任何USM替换。使用AUTN而不是SQN的另一具体优点在于,可以在移动终端中(在USM之外)实施本发明。
[0132]尽管已经在附图中示出了并在前述描述中描述了加密密钥生成技术的实施例,但是可以理解,该技术不限于本文公开的实施例。在不脱离本发明范围的前提下,能够对该技术进行许多重新配置、修改和替换。
【权利要求】
1.一种用于生成加密密钥(120)的方法,所述加密密钥用于保护第一实体(202、302)和第二实体(204、304)之间的通信,其中所述方法由包括在第一实体(202、302)中的加密密钥生成设备(100)执行,作为由第二实体(204、304)发起的认证和密钥协商协议AKA过程的一部分,所述方法包括以下步骤: -提供(306)至少两个参数(106、108),其中,第一参数(106)包括所述第一实体(202、302)通过运行所述AKA过程而计算的加密密钥集合(110、112),或者所述第一参数(106)是根据所述加密密钥集合导出的;以及第二参数包括令牌(116)或者是根据令牌(116)导出的,所述令牌(116)包括序号SQN和匿名密钥AK的异或;以及 -应用(308)密钥导出函数,以基于所提供的参数(106、108)来生成加密密钥(120)。
2.根据权利要求1所述的方法,其中,所述SQN指示所述第二实体(204、304)已经针对所述第一实体(202、302)发起的所述AKA过程的次数。
3.根据权利要求1所述的方法,其中,所述令牌(116)是所述SQN与所述匿名密钥AK的异或、认证和密钥管理字段AMF以及消息认证码MAC的级联连接。
4.根据权利要求1所述的方法,其中,所述第一参数(106)中包括的所述加密密钥集合(110、112)或者用于导出所述第一参数(106)的所述加密密钥集合(110、112)包括密码密钥CK(IlO)和完整性密钥IK (112),或者是根据所述CK和所述IK导出的。
5.根据权利要求1所述的方法,还包括以下步骤: -应用一个或更多其他密钥导出函数,以基于所生成的加密密钥(120)来生成更多加密密钥。
6.根据权利要求5所述的方法,其中,所述更多加密密钥包括以下至少一项: -用于保护非接入层NAS业务的加密密钥集合;` -用于保护无线资源控制RRC业务的加密密钥集合; -用于保护用户平面UP业务的加密密钥集合;以及 -用于导出保护RRC业务的加密密钥和/或保护UP业务的加密密钥的中间加密密钥KeNB。
7.根据权利要求1所述的方法,其中,所述第一实体(202、302)是用户设备。
8.根据权利要求1所述的方法,其中,所述第二实体(204、304)是网络实体。
9.根据权利要求8所述的方法,其中,所述第二实体(204、304)位于系统架构演进SAE/长期演进LTE网络中。
10.根据权利要求8所述的方法,其中,所述第二实体(204、304)包括认证中心AuC/归属地订户服务器HSS和移动性管理实体MME。
11.根据权利要求1所述的方法,其中,所述安全操作是由所述第一实体(202、302)和第二实体(204、304)协作执行的。
12.根据权利要求1所述的方法,其中,所述AKA过程是UMTSAKA协议。
13.根据权利要求1所述的方法,其中,每次所述第二实体(204、304)针对所述第一实体(202、302)发起所述AKA过程时,所述至少两个参数(106、108)的组合具有不同的值。
14.一种配置用于生成用于通信实体(202、302)的加密密钥的设备(100),所述通信实体(202、302)配置用于运行认证和密钥协商协议AKA过程,所述设备(100)包括: -第一组件(102),配置用于提供至少两个参数(106、108),其中,第一参数(106)包括所述通信实体(202、302)通过运行所述AKA过程而计算的加密密钥集合(110、112),或者所述第一参数是根据所述加密密钥集合(110、112)导出的;以及第二参数(108)包括令牌(116)或者是根据令牌(116)导出的,所述令牌(116)包括序号SQN和匿名密钥AK的异或;以及 -第二组件(104),配置用于运行密钥导出函数,以基于所提供的参数(106、108)来生成加密密钥(120)。
15.根据权利要求14所述的设备(100),其中,所述SQN指示已经针对所述通信实体(202.302)发起所述AKA过程的次数。
16.根据权利要求14所述的设备(100),其中,所述第一参数(106)中包括的所述加密密钥集合(110、112)或者用于导出所述第一参数(106)的所述加密密钥集合(110、112)包括密码密钥CK(IlO)和完整性密钥IK (112),或者是根据CK和IK导出的,所述CK和所述IK是所述通信实体(202、302)作为所述AKA过程的一部分来计算的。
17.根据权利要求14所述的设备(100),还配置用于:应用一个或更多其他密钥导出函数,以基于所生成的加密密钥(120)来生成更多加密密钥。
18.根据权利要求14所述的设备(100),其中,每次针对所述通信实体(202、302)发起所述AKA过程时,所述至少两个参数(106、108)的组合具有不同的值。
19.一种用户设备(202),配置用于运行认证和密钥协商协议AKA过程,并包括根据权利要求14至18中任一项所述的设备(100)。
20.一种系统(200),包括网络实体(204、304)和根据权利要求19所述的用户设备(202.302)。
21.根据权利要求20所述的系统(200),其中,所述网络实体(204、304)用于系统架构演进SAE/长期演进LTE网络。
【文档编号】H04L9/06GK103746794SQ201310606861
【公开日】2014年4月23日 申请日期:2008年7月21日 优先权日:2008年6月6日
【发明者】卡尔·诺曼, 马茨·内斯隆德 申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1