鉴权加密偏移的同步的制作方法

文档序号:7612870阅读:203来源:国知局
专利名称:鉴权加密偏移的同步的制作方法
背景本发明涉及通信系统,具体涉及通信实体之间的同步,这些通信实体在实时层和非实时层之间的接口中经历不可控制的延迟。
随着常用的计算机化便携设备数量的增长,越来越需要在这些设备之间进行通信。结果,在各种数据共享方案和通信系统中实现了许多在这种设备之间提供通信的标准。
这种系统的一个例子就是蓝牙系统,最近引入它是为了提供普遍的连接性,尤其是像移动电话、膝上电脑、个人数字助理(PDA)以及其他游动设备等便携设备之间的连接性。应当理解的是蓝牙系统只是可以采用本发明的众多系统之一。因此,尽管一些有待本发明解决的示例问题将在蓝牙环境中给出,但本领域的技术人员应当意识到这些示例仅用于说明,而且本发明可以用于解决其他类似系统中的类似问题。
蓝牙系统应使用跳频技术以允许构建有一个小覆盖区的低功率、低成本的无线系统。这种系统支持数据和话音。优化后者可以应用快速跳频(FH)并结合鲁棒话音编码。在带宽为80MHZ的整个2.4GHz ISM频带,快速跳频的额定速率为1600跳每秒(hops/s),相应的每个方向为800hops/s。
基于蓝牙系统概念的设备可以创建所谓的匹克网(piconet),它包括经过FH匹克网信道相连的一个主设备以及一个或多个从设备。用于匹克网信道的FH序列完全决定于作为主的设备的地址或标识。主设备的系统时钟确定跳频序列的相位(即指示序列中哪个可能的跳跃是“当前”的跳跃)。在蓝牙系统中,每个设备都有一个自由振荡的系统时钟。每个从设备向其时钟加一个相应的时间偏移量,使它能够与主设备的时钟对齐。通过使用主地址来选择合适的跳跃序列并使用时间偏移量来对齐主时钟,每个从设备能保持与主设备的跳跃同步;换句话说,主设备和从设备通过同步地跳到相同跳频或跳跃载波而保持联系。详情参阅1997年9月18日以J.C.Haartsen的名义提交的美国专利申请No.08/932,911,题为《Frequency Hopping Piconets in anUncoordinated Wireless Multi-user System(在非协同的无线多用户系统中的跳频匹克网)》,在此引入其整体。同样要整体引入的是可以经互联网在以下统一资源定位器(URL)http//www.bluetooth.com上获得的《Specification of the Bluetooth System(蓝牙系统规范)》1.0A版。
在《蓝牙系统规范》中已经提出,两种机制已经被包括用于使低级的安全功能性便利鉴权和加密。鉴权过程每当一个单元(这里表示为“单元A”)想要与之有蓝牙无线连接的另一个单元(这里表示为“单元B”)的一些被要求身份的证明时被启动。一旦有关单元的被要求身份已被证实(或者单方面进行或者在链路上运行的应用要求时相互进行),则这些单元开始使用此链路进行通信。成功鉴权的先决条件是这两个单元都知道一个公用的秘密,也就是链路密钥。
蓝牙中的鉴权过程遵循询问/响应方案。简言之,验证者产生一个随机数形式的询问(这里表示为AU-RAND),把它发送给申请方。申请方一收到这个提问询问就计算出一个签署的响应(这里表示为SRES),把它发送回验证者。如果给定该询问和两个蓝牙单元所共享的秘密链路密钥,则验证者可以独立的计算出响应应该是什么(这里表示为SRES’)。如果所接收的SRES等于计算出的SRES’,则认为鉴权成功。另一方面,如果这两个数字并不相等,则申请方没能证明其身份。这种询问-响应方案不必局限于蓝牙系统,而是可以应用于各种需要鉴权的通信系统。在这种系统中,询问-响应格式可能以在此系统的各单元之间所传输的类似或相同的值来使用。
如果此应用在某些点要求数据的机密性,则这些单元可以接通加密。这个过程也需要一个公用的秘密加密密钥。加密密钥不同于链路密钥,但来源于它。通常,在连接建立的时候进行鉴权。即便此后有可能重复鉴权过程,也并不是强制性的。因而自鉴权完成后已经经过了很长时间且加密被接通。所以,在此期间不能真正保证这些单元中没有一个单元被恶意的用户所取代(除非频繁地重复鉴权过程)。
希望的是,一但接通加密就立即关闭欺诈单元。因为任何这样的单元都不应拥有秘密链路密钥,而这些密钥应由链路最初涉及的设备所使用。因而,该单元也不能推导出加密密钥。为了针对恶意单元进一步增加难度,加密密钥的创建不仅依赖于链路密钥,还依赖于一个称为“鉴权加密偏移”(ACO)的数字。ACO是为每次调用产生SRES的函数而创建的一个数字。如果两个单元用不同的ACO接通加密,则即使它们使用相同的链路密钥,各自所产生的加密密钥也会不同。
SRES和ACO的计算由表示为E1的算法来定义。形式上为E1{0,1}128×{0,1}128×{0,1}48→{0,1}32×{0,1}96,(1) 其中表达式{0,1}i表示了一个长度为i的二进制数,K是128位的链路密钥,AU_RAND是一个由验证者所发出的128位的询问,BD_ADDR是申请方的48位蓝牙设备地址,SRES是32位的签署的响应,而X是一个与SRES同时计算出的96位数字。还要注意的是操作符“×”不是必定代表乘法,而是用于表示箭头左边参数一起应用到产生箭头右边两个参数的操作中。此函数在《蓝牙系统规范》的第十四章中进行了定义。但是本领域的技术人员应当理解的是无论是在蓝牙系统中还是在其他通信系统中都可以使用其他合适的算法。
目前,每次调用E1,每个设备都要更新它的ACO值。这样,在传统的系统中,ACO=X. (2)当前的鉴权方案的问题在于难以同步ACO值。例如,问题可能由于这种事实而引起,即当前蓝牙基带规范规定这些单元总要使用最近产生的ACO,但这又难以确定。对于这个问题的影响有两个逻辑层面。首先,单元之间的通信会有一个未知的延迟。其次,由于同时发生或者几乎同时发生传输,所以可能难于确定哪个是最新的传输。


图1说明了在两个单元之间可能要求鉴权和/或加密的一个可能通信方案。图1可能有关蓝牙系统,或是涉及任何要求鉴权和/或加密的其他适当通信系统。如图1所示,在每个单元中,一个链路管理器(LM)101产生LM消息,一个基带(BB)发送器103完成实际的编码并向另一单元中的BB接收器105传送消息。同样,每个单元中的BB接收器105对所接收的比特流进行解码,并把它们传送到上层的链路管理器101。链路管理器101完成消息的实际解释。
不幸的是,由于实现上的问题,在链路管理器101产生消息的时刻与BB发送器103传送那个消息的时刻之间可能会有一个未知的延迟。在接收侧同样如此BB接收器105接收消息,该消息由链路管理器101以某一不可预测的延迟进行解释和处理。上述情况对所有类型的LM消息,包括各种鉴权方案中的鉴权请求,都适用。
延迟的原因可能有下面几种。显而易见,内部的硬件设计(如缓冲)和所提供的业务量负载影响这个延迟。而且,无线信道的特性(如干扰条件和信噪比)也有影响。例如,单元A可能积压了由于无线信道较差而还未向单元B递送的消息。如果单元A中的链路管理器101产生了一个新消息,则它会被放在一个传送队列中,而且直到所有的积压消息都被发送后才能被传送。
如果两个单元同时(或者更为精确的说,在一个取决于实际延迟的“短”时间间隔中)开始请求对另一侧的鉴权,则可能引起问题。这是因为无法知道从一侧产生某事件的时间点到另一侧注册此事件的后续时间点之间的延迟长度。显而易见,在这种情况下,每侧都需要调用其加密密钥产生算法E1两次一次针对单元自身所产生的请求,另一次是对从另一侧所接收的请求产生响应。如示例所述,由于不同的延迟,A侧最后的调用可能与B侧最后的调用不同。因此,当接通加密时,单元A和B会产生不同的加密密钥,结果造成它们不能明白地彼此通信。
图2说明了一种双方以相同ACO结束的情况,这使得它们即使在加密打开后仍可彼此通信。垂直线代表每个单元A和单元B中链路管理器101的时标,时间按下行方向推进。在步骤201,单元A想要验证单元B的身份,因而产生了一个表示为AU-RANDA的询问。这个询问被传送到单元B。在步骤203,单元B接收来自单元A的询问,并通过调用E1来产生两个参数SRESA和ACOA而响应。(各参数中的下标A表明它们有关单元A的询问。)然后,单元B所产生的响应参数SRESA被传送回单元A。
在步骤205,单元A接收单元B的响应参数SRESA,并以调用E1来计算所期望的响应参数SRES’A和ACOA而响应。然后单元A把期望的签署的响应SRES’A与实际的签署的响应SRESA进行比较,来确定单元B是否可信。
在步骤207,单元B想要验证单元A的身份,因而产生一个表示为AU_RANDB的询问。这个询问被传送到单元A。在步骤209,单元A接收来自单元B的询问,并以调用E1来产生两个参数SRESB和ACOB而响应。(各参数的下标B表明它们有关单元B的询问。)然后,单元A所产生的响应参数SRESB被传送回单元B。
在步骤211,单元B接收单元A的响应参数SRESB,并以调用E1来计算所期望的响应参数SRES’B和ACOB而响应。然后单元B把期望的签署的响应SRES’B与实际的签署的响应SRESB进行比较,来确定单元A是否可信。
此后的某个时间,这些单元决定在它们彼此的通信中使用加密。相应的,在步骤213,单元A打开加密,使用它最近产生的ACO值来产生将要用到的加密密钥。与此类似,在步骤215,单元B打开加密,使用它最近产生的ACO值来产生将要用到的加密密钥。假若这样,在单元A和单元B中最近产生的ACO值是ACOB。因此,两个单元将会产生相同的加密密钥,并能够继续彼此的通信。
现在参考图3,这里的示例说明了传输延迟使得两个单元A和B结束于不同的ACO值,因而造成加密开始后不可能通信。具体而言,在步骤301,单元A想要验证单元B的身份,因而产生一个表示为AU_RANDA的询问。这个询问被传送到单元B。但是单元B在接收来自单元A的询问之前,就在步骤303也决定验证单元A的身份,因而产生自己的表示为AU_RANDB的询问。
在步骤305,单元A接收单元B的询问,并以调用E1来产生两个参数SRESB和ACOB而响应。(各参数的下标B表明它们有关单元B的询问。)然后,单元A所产生的响应参数SRESB被传送回单元B。
与此类似,在步骤307,单元B接收单元A的询问(在步骤301传送),并以调用E1来产生两个参数SRESA和ACOA而响应。(各参数的下标A明它们有关单元A的询问。)然后,单元B所产生的响应参数SRESA被传送回单元A。
在步骤309,单元B接收单元A的响应参数SRESB,并以调用E1来计算所期望的响应参数SRES’B和ACOB而响应。然后单元B把期望的签署的响应SRES’B与实际的签署的响应SRESB进行比较,来确定单元A是否可信。
与此类似,在步骤311,单元A接收单元B的响应参数SRESA,并以调用E1来计算所期望的响应参数SRES’A和ACOA而响应。然后单元A把期望的签署的响应SRES’A与实际的签署的响应SRESA进行比较,来确定单元B是否可信。
此后的某个时间,这些单元决定在它们彼此的通信中使用加密。相应的,在步骤313,单元A打开加密,使用它最近产生的ACO值来产生将会用到的加密密钥。与此类似,在步骤315,单元A打开加密,使用它最近产生的ACO值来产生将会用到的加密密钥。假如这样,在单元A中最近产生的ACO值是ACOA,而在单元B中最近产生的ACO值是ACOB。因此,单元A和单元B将会产生不同的加密密钥,因而不可能继续彼此的通信。
图3所述的问题可以使用特定规则来避免。例如,在《蓝牙基带规范》的当前版本中,提出了使用下述规则的解决方案在相互鉴权的情况下,保留来自第二鉴权的ACO值。但是,在某些情况下,鉴权事件可能在两个设备中同时发起。当发生这种情况时无法区分谁是第一和谁是第二事件。因此,两个单元都应使用由主设备产生的询问引起的ACO。
当从单元A收到一个询问、却又期待对先前从单元B起始的所发送询问的响应时,第二单元(单元B)可以确定一个鉴权事件已在第一单元(单元A)中同时或者几乎同时产生。在此情况下,单元B所发起的鉴权事件被认为是开放的。始发侧在收到响应之前认为鉴权事件是开放的。当始发侧已经接收和处理此响应时,关闭此事件。因此,在与图3类似地使用上述蓝牙规则的情况下,单元B会观察到在步骤307它已接收了一个鉴权请求,而不是所期望的在步骤303发送的、对先前所发送询问的响应。因此,由于单元B在步骤303所发起的请求可以认为是开放的,故由主单元A在步骤301所产生询问引起的ACOA,而非ACOB,会被单元B所使用。同样,单元A也会收到一个鉴权请求(步骤305),而它在步骤301所发起的鉴权事件是开放的,并且会因而根据相同的规则也使用ACOA。通过使用这个规则,在蓝牙系统中进行通信的设备从而可以避免图3中示出的问题。
现在参考图4,这里的例子说明了蓝牙系统在传输或者处理方面的延迟造成两个单元A和B结束于不同的ACO值,因而在加密打开后不可能进行通信。于是,尽管上述规则有助于在图3所述情况下的通信,但延迟可能在使用相同规则的蓝牙系统中造成通信困难。具体而言,单元A在步骤401想要验证单元B的身份,因而产生了一个表示为AU_RANDA的询问。这个询问被传送到单元B。但是单元B在接收来自单元A的询问之前,在步骤403也决定去验证单元A的身份,因而产生了它自己表示为AU_RANDB的询问。
在步骤405,单元B接收单元A的(在步骤401所传送的)询问,并以调用E1来产生两个参数SRESA和ACOA而响应。(各参数的下标A表明它们有关单元A的询问。)然后,单元B所产生的响应参数SRESA被传送回单元A。单元B产生这个响应,知道它的鉴权请求是开放的,并将因此根据蓝牙规范的规则而使用主单元A所产生的ACO值。
在步骤407,单元A在表示为tA的时刻收到单元B的响应参数SRESA,并以调用E1来计算所期望的响应参数SRES’A和ACOA而响应。然后,单元A把期望的签署的响应SRES’A与实际的签署的响应SRESA进行比较,来确定单元B是否可信。单元A执行这个计算,但不知道几乎同时已发生了鉴权事件,因为接收单元B的请求在其对单元A请求的响应之后,此时单元A的鉴权事件已经被关闭。
在步骤409,单元A接收单元B的询问,并以调用E1来产生两个参数SRESB和ACOB而响应。(各参数的下标B表明它们有关单元B的询问。)然后,单元A所产生的响应参数SRESB被传送回单元B。
在步骤411,单元B在表示为tB的时刻收到单元A的响应参数SRESB,但是单元B没有调用E1来计算所期望的响应参数SRES’B和ACOB,而是根据蓝牙规范的规则计算SRES’B,但保留来自主单元A的ACOA。
因为来自单元B的、由单元B在步骤403所产生的鉴权请求AU_RANDB被单元A接收(步骤409)是在签署的响应SRESA的接收之后,该SRESA由单元B在步骤405所产生并由单元A在步骤407所接收,所以会引起图4所述的问题。因此,由于单元A在收到单元B所产生的鉴权请求之前就在时间tA关闭了单元A的鉴权请求事件,所以单元A并不知道已经几乎同时产生了两个鉴权请求。因此,单元A并不应用要求两个单元都使用主ACO值的蓝牙规范规则,而改为使用ACOB。但是,单元B收到单元A的鉴权请求,这个请求是由单元A在步骤401产生并由单元B在步骤403产生了自己的鉴权请求之后才在步骤405接收。由于接收单元A所产生的鉴权请求是在单元B所产生的鉴权请求之后、但却是先于在步骤411接收来自单元A的响应,故单元B意识到两个鉴权请求几乎是同时的,并且应用蓝牙规范规则,要求单元B使用主单元的ACO值或ACOA。
作为单元B鉴权请求时间延迟的后果,当两个设备后来打开加密时,单元A如步骤413所示使用ACOB,而单元B如步骤415所示使用ACOA。结果,一旦两个单元使用不同的ACO值打开加密,就不可能通信。
在上述示例中,假设每个单元仅在从另一单元收到实际签署的响应之后产生自己期望的签署的响应SRES’。但是,这不是必需的,因为一个单元可以例如在产生询问AU_RAND的同时产生出其所期望的签署的结果(SRES’)。这样的何时产生SRES’的确定可能取决于执行此操作的系统。例如,《蓝牙系统规范》把具体实现留给开发者。由于实现上没有这样做或那样做的要求,所以可能出现第一制造商制造的一个单元在产生询问的同时计算SRES’,而不同制造商制造的另一单元仅在从另一侧收到签署的响应时产生它的SRES’。在这种情况下,两个单元可能再次结束于不同的最近产生的ACO值,从而造成在加密打开时它们不可能产生相同的加密密钥。
因此需要一种系统来避免有关现有技术的问题,如可能结束于不同ACO值,并因此使用不兼容的加密。
发明概述应当着重指出的是用在此说明书中的术语“包括”用于规定存在所述的特性、整体、步骤或组件;但是使用这些术语并不排除存在或增加一个或多个其他特性、整体、步骤、组件或其组合。
前述目的和其他目的可以由可用于通信系统的本发明而得到实现。一个这样的系统就是蓝牙系统。根据本发明的一个方面,鉴权加密偏移(ACO)被产生为一个或多个参数的函数,其中该一个或多个参数中的至少一个参数是从先前所计算的ACO值中导出。这使每个设备能够避免所产生的一个ACO值与另一通信设备所产生的对应ACO值之间的不同步,从而避免了例如有关现有技术系统的不可控制延迟所造成的问题。
附图简述通过阅读下面结合附图的详述会理解本发明的目的和优势,其中图1是两个单元的框图,每个单元都有一个链路管理器、一个基带发送器和一个基带接收器;图2是在两个单元结束于相同ACO值的示例中鉴权信令的时序框图;图3是在两个单元结束于不同ACO值的示例中现有技术鉴权信令的时序框图4是在两个单元由于延迟的信号而可能使用不同ACO值的示例中现有技术的鉴权信令的时序框图;图5是根据本发明的一个实施方案计算ACO值的流程图;图6是在通信系统中如何实现本发明的时序框图;以及图7是在应用某些规则的通信系统中如何实现本发明的时序框图。
发明详述下面会结合多个示范实施方案并根据附图,详细描述本发明的各方面,其中相同的部分用相同的参考字符标识。为了便于本发明的理解,本发明的许多方面会根据计算机系统中各元素将要执行的动作序列来描述。应当意识到的是,在每种实施方案中,可能通过专用电路(如为完成专用功能而相互连接起来的离散逻辑门)、由一个或多个处理器来执行的程序指令、或者二者的结合,来执行各种动作。而且,本发明另外还可被认为是整体地实现在任何形式的计算机可读存储介质中,该介质中存储了适当的计算机指令集,能使处理器完成上述的技术。于是,本发明的各方面可以用各种不同的形式来具体实现,而且所有这些形式都被认为是在本发明的范围内。对于本发明的不同方面的各个方面,任何这种形式的实施方案都可以称之为“逻辑被配置以”执行所述动作。
克服有关现有技术的问题可以使用一种新函数,产生“鉴权加密偏移”(ACO)为所有早先计算的ACO加上其他可能参数的函数。
如图5所示,一个触发事件(步骤501)触发特定的设备或通信单元来计算一个ACO为预定义参数的函数(步骤503),其中至少一个参数是从早先计算的ACO值中导出。触发事件501可能是多个内部或外部触发事件中的任意一个。例如,一个外部触发事件可能是一个鉴权请求,或者一个从另一设备接收来的签署的响应。内部触发事件的例子可能包括某些定时的事件,等等。至于新ACO值的产生,任何可交换的二进制函数足以基于先前的值创建一个ACO值,这不取决于顺序。
在一个示例实施方案中,每个单元保持一个ACO值的运行和(running sum)(按位模2),并把最近的ACO值与当前产生的X值(调用E1来产生)结合起来。于是,在第K次调用E1后,ACO变为ACOk=Xk⊕ACOk-1=Σi=1kXi,......(3)]]>其中,在这个示例实施方案中,此和是按位模2。产生此和可以有利的使用异或(XOR)函数。计算Xk值可以用传统的方式,使用表示为E1的函数。
由于此和中元素的顺序是无关的,故两个单元A和B只要满足下面的结果就有等同的ACO值{Xi(A)|i=1...k}={Xi(B)|i=1...k}。结果,与图3和图4中所述示例相似的情况不会在加密接通时造成任何问题。
除了使用XOR操作对所有先前ACO值求和,还可以应用其他技术。例如,只要所选的函数满足交换律,任何使用先前ACO值的函数可以用于维护在两个单元中相同的ACO。也可以使用诸如逻辑与、与非、或、异或、加、减和乘函数等简单的布尔函数。例如,可在Xk和ACOk-1之间使用任何可交换的二进制运算,如公式3中所示。另外也可以使用诸如卷积和函数等较为复杂的函数。
但是应当注意的是,除了XOR函数之外的简单二进制函数可能并不是所期望的,因为它们可能创建一个在多次迭代之后倾向于一个特定值的ACO,从而产生一个可能可预测的ACO。此外,更为复杂的函数也不期望,因为它们可能明显增加算法的计算复杂性。但是,随着处理速度的提高,较为复杂的算法或多种算法的结合可能正是所期望的,因为它们可以得出更加难以预测的ACO值。
图6说明了一个在通信系统中如何应用本发明来避免图3所述问题的示例。在图3中,由两个单元几乎同时产生的询问造成两个单元A和单元B结束于不同的ACO值,从而在加密打开后不可能进行通信。但是在使用了本发明的图6中,每个新ACO值用先前ACO值来计算,从而使得两个单元能够结束于相同的ACO值,并甚至在加密打开后仍能通信。在图6所述的情况下,单元A和单元B开始于相等的ACO值。具体而言,单元A实际开始于ACOm,而单元B实际开始于ACOn(与ACOm相等)。
在步骤601,单元A想要验证单元B的身份,因而产生了一个表示为AU_RANDA的询问。这个询问被传送到单元B。但是,单元B在接收来自单元A的询问之前,就在步骤603也决定验证单元A的身份,因而产生了它自己的一个表示为AU_RANDB的询问。
在步骤605,单元A接收单元B的(在步骤603所传送的)询问,并以调用E1来产生两个参数SRESB和ACOm+1而响应。在这个例子中,导出ACOm+1为AU_RANDB和先前ACO值的函数。计算ACOm+1可以用公式3所述的方式或者其他合适的可交换二进制函数。然后,单元A所产生的响应参数SRESB被传送回单元B。
与此类似,在步骤607单元B接收单元A的(步骤601所传送的)询问,并以调用E1来产生两个参数SRESA和ACOn+1而响应。导出ACOn+1为AU_RANDA和先前ACO值的函数。产生ACOn+1可以使用任意可交换的二进制算法,例如包括公式3中显示的那个。然后,单元B所产生的响应参数SRESA被传送回单元A。
在步骤609,单元B接收单元A的响应参数SRESB,并以调用E1来计算期望的响应参数SRES’B和ACOn+2而响应,该ACOn+2是AU_RANDB和ACOn+1的函数。然后,单元B可以把期望的签署的响应SRES’B与实际的签署的响应SRESB进行比较,来确定单元A是否可信。
与此类似,在步骤611,单元A接收单元B的响应参数SRESA,并以调用E1来计算期望的响应参数SRES’A和ACOm+2而响应,该ACOm+2是AU_RANDA和ACOm+1的函数。然后,单元A可以把期望的签署的响应SRES’A与实际的签署的响应SRESA进行比较,来确定单元B是否可信。
在稍后的某个时间,该单元在预订的时间或者通过开始加密请求来决定在它们彼此的通信中使用加密。相应地,在步骤613,单元A打开加密,使用其最近产生的ACO值来产生将要使用的加密密钥。与此类似,在步骤615,单元B打开加密,使用其最近产生的ACO值来产生将要使用的加密密钥。假如这样,则最近产生用于单元A的ACO值是ACOm+2,而最近产生用于单元B的ACO值是ACOn+2。但是,如果两个单元开始于相等的值(即ACOm=ACOn)并且每次产生ACO值处执行的操作(如公式3所述的可交换函数)是可交换的以便操作顺序并不改变计算结果,则ACOm+2和ACOn+2也会相等。于是,单元A和单元B将会结束于相等的ACO值,并且甚至在加密打开时仍能通信。此外,不管是未知的延迟还是同时的鉴权请求,相等的ACO值都会在两个单元中维持。于是,本发明缓和了结合图3所述的问题。
现在参考图7,这里说明了一个使用本发明补救结合图4所述问题的示例。在图4中,蓝牙系统中询问的传输或处理延迟造成两个单元使用不同的ACO值,使得一旦接通通信就不可能进行通信。两个单元都使用相等的ACO值(即ACOm=ACOn)来开始图7中的情形。在图7中,单元A在步骤701产生一个表示为AU_RANDA的鉴权请求或询问,它被传送到单元B。与此类似,单元B在步骤703向单元A传送一个请求或询问AU_RANDB。在步骤705,单元B接收由单元A在步骤701所产生的询问,并产生签署的响应SRESA和ACOn+1。计算ACOn+1为AU_RANDA和的先前ACO值即ACOn的函数。然后,签署的响应SRESA被发送到单元A,单元A在步骤707所示的tA时刻收到它。然后,单元A产生ACOm+1,它是AU_RANDA和先前ACO值ACOm的函数。在此步骤单元A还产生一个所期望的签署的响应SRES’A,以便验证单元B的可信性。在步骤709,单元A接收单元B在步骤703所产生的询问,并在响应中产生签署的响应SRESB,且计算ACOm+2,它是AU_RANDB和ACOm+1的函数。计算每个ACO值可以使用任意可交换的二进制运算,例如公式3所示的运算来执行。然后,单元A向单元B传送签署的响应,单元B在步骤711的tB时刻收到它。根据蓝牙规范的规则,因为两个鉴权请求几乎同时产生,所以单元B会保留ACOn+1供以后使用,单元B明白这点是由于在收到来自单元A的询问的同时,它具有一个开放的事件(开始于步骤703所产生的询问)。但是,根据本发明,在步骤711的tB时刻一个新值ACOn+2改而被计算为AU_RANDB和ACOn+1的函数。这个计算可以使用诸如公式3的运算等的任何可交换二进制运算来实现。
由于使用了本发明,当单元A和单元B分别在步骤713和步骤715决定打开加密时,它们将会使用彼此相等的其最新的ACO值,来确定一个加密密钥,因而它们即使在加密接通时仍能进行通信。应当注意的是在图7中某个单元对有关它所发起事件的每个ACO值的使用和计算被举例说明为会延迟,一直到事件被关闭。但是,不必是这种情况,而且计算有关那个单元的ACO值可以在那个单元发出询问的时刻,或者是任何其他适当的时刻。但是,如果在关闭该特定询问事件之前使用与该事件相关的ACO值,则会引起潜在的问题,例如在事件丢失、没有返回、或者超时等的情况中。
本发明实现了超越传统方法的多种优势,并解决了与之相关的问题。它消除了对保证的响应时间的实时要求。它使ACO的计算顺序无关紧要。在各层之间具有不同延迟的实时难题不成为问题。于是,本发明允许实时和非实时的设备用于相同的通信系统,因为它计算ACO值独立于其被接收的顺序。计算ACO值还独立于传输、接收、或处理方面的任何延迟。而且,本发明在计算上的复杂性可以忽略。相对于旧有解决方案它不需要额外的存储空间。
本发明已就特定实施方案进行了描述。但是,本领域的技术人员应当很容易意识到,有可能具体实现本发明使用的特定形式不同于上述优选实施方案。这可以在不脱离本发明的精神的情况下进行。
此外,关于克服通信中的延迟将会造成两个单元之间的ACO参数不同步的问题,本发明参照特定实施方案进行了描述。但是,在使一个参数至少部分地为其过去值的函数的相同原则可以应用到延迟会造成任何这种参数不同步问题的任何系统中。一些这样的系统可能包括但不局限于任意实时系统,其中存在不可预测的延迟并可能造成潜在问题。这种系统的一些示例包括诸如移动电话系统、无线寻呼系统、和无线互联网系统等的无线系统,以及诸如互联网、陆线电话系统、拨号联网系统、LAN、MAN等的有线系统。在交换数据的通信链路两端有应用(其中不可预测的延迟可能造成问题)的任何系统可以从使用本发明中获益。
因此,优选实施方案仅仅用于说明,不应被认为有任何形式的局限。本发明的范围由附加的权利要求给出,而不是前面的描述给出,而且所有在权利要求范围中的变化和等价物都打算包含在其中。
权利要求
1.一种在通信系统中产生鉴权加密偏移(ACO)的方法,该方法包括产生ACO为一个或多个参数的函数,其中该一个或多个参数中的至少一个参数是从先前计算的ACO值中导出的。
2.根据权利要求1的方法,其中产生ACO为一个或多个参数的函数的步骤包括从该参数的一个或多个参数中产生第k个值Xk,并在Xk和先前值ACOk-1之间应用可交换的二进制运算。
3.根据权利要求1的方法,其中产生ACO为一个或多个参数的函数的步骤包括根据下式产生ACO的第k个值为运行和ACOk=Xk⊕ACOk-1=Σi=1kXi,]]>其中产生Xi为一个或多个参数的函数,该参数不包括从先前计算的ACO值导出的该一个或者多个参数中的该至少一个参数。
4.根据权利要求3的方法,其中该和是按位模2的和。
5.根据权利要求4的方法,其中按位模2的和是借助一个按位异或(XOR)运算来执行的。
6.一种在通信设备中产生鉴权加密偏移(ACO)的装置,该装置包括配置以产生ACO为一个或多个参数的函数的逻辑电路,其中该一个或者多个参数中的至少一个参数是从先前计算的ACO值中导出的。
7.根据权利要求6的装置,其中配置以产生ACO为一个或多个参数的函数的逻辑电路包括配置以从该参数的一个或多个参数中产生第k个值Xk并在Xk和先前值ACOk-1之间应用可交换二进制运算的逻辑电路。
8.根据权利要求6的装置,其中配置以产生ACO为一个或多个参数的函数的逻辑电路包括配置以根据下式产生ACO的第k个值为运行和的逻辑电路ACOk=Xk⊕ACOk-1=Σi=1kXi,]]>其中产生Xi为该一个或多个参数的函数,该参数不包括从先前计算的ACO值导出的该一个或者多个参数中的该至少一个参数。
9.根据权利要求8的装置,其中配置以产生ACO的第k个值的逻辑电路包括配置以执行按位模2和的逻辑电路。
10.根据权利要求9的装置,其中配置以执行按位模2和的逻辑电路包括配置以执行按位异或(XOR)运算的逻辑电路。
11.根据权利要求6的装置,其中通信设备包括一个实时设备。
12.根据权利要求6的装置,其中通信设备包括一个非实时设备。
全文摘要
在一个通信系统中,鉴权加密偏移(ACO)被生成为一个或多个参数的函数,其中该一个或多个参数中的至少一个参数是从先前所计算的ACO值中导出。这使每个设备都能避免产生的ACO值与另一通信设备所产生的对应ACO值之间的不同步。
文档编号H04L9/08GK1433610SQ00818756
公开日2003年7月30日 申请日期2000年11月27日 优先权日1999年12月2日
发明者J·佩尔松, B·斯梅茨, T·梅林 申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1