專利名稱:鑒權(quán)加密偏移的同步的制作方法
背景本發(fā)明涉及通信系統(tǒng),具體涉及通信實(shí)體之間的同步,這些通信實(shí)體在實(shí)時(shí)層和非實(shí)時(shí)層之間的接口中經(jīng)歷不可控制的延遲。
隨著常用的計(jì)算機(jī)化便攜設(shè)備數(shù)量的增長(zhǎng),越來越需要在這些設(shè)備之間進(jìn)行通信。結(jié)果,在各種數(shù)據(jù)共享方案和通信系統(tǒng)中實(shí)現(xiàn)了許多在這種設(shè)備之間提供通信的標(biāo)準(zhǔn)。
這種系統(tǒng)的一個(gè)例子就是藍(lán)牙系統(tǒng),最近引入它是為了提供普遍的連接性,尤其是像移動(dòng)電話、膝上電腦、個(gè)人數(shù)字助理(PDA)以及其他游動(dòng)設(shè)備等便攜設(shè)備之間的連接性。應(yīng)當(dāng)理解的是藍(lán)牙系統(tǒng)只是可以采用本發(fā)明的眾多系統(tǒng)之一。因此,盡管一些有待本發(fā)明解決的示例問題將在藍(lán)牙環(huán)境中給出,但本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)意識(shí)到這些示例僅用于說明,而且本發(fā)明可以用于解決其他類似系統(tǒng)中的類似問題。
藍(lán)牙系統(tǒng)應(yīng)使用跳頻技術(shù)以允許構(gòu)建有一個(gè)小覆蓋區(qū)的低功率、低成本的無線系統(tǒng)。這種系統(tǒng)支持?jǐn)?shù)據(jù)和話音。優(yōu)化后者可以應(yīng)用快速跳頻(FH)并結(jié)合魯棒話音編碼。在帶寬為80MHZ的整個(gè)2.4GHz ISM頻帶,快速跳頻的額定速率為1600跳每秒(hops/s),相應(yīng)的每個(gè)方向?yàn)?00hops/s。
基于藍(lán)牙系統(tǒng)概念的設(shè)備可以創(chuàng)建所謂的匹克網(wǎng)(piconet),它包括經(jīng)過FH匹克網(wǎng)信道相連的一個(gè)主設(shè)備以及一個(gè)或多個(gè)從設(shè)備。用于匹克網(wǎng)信道的FH序列完全決定于作為主的設(shè)備的地址或標(biāo)識(shí)。主設(shè)備的系統(tǒng)時(shí)鐘確定跳頻序列的相位(即指示序列中哪個(gè)可能的跳躍是“當(dāng)前”的跳躍)。在藍(lán)牙系統(tǒng)中,每個(gè)設(shè)備都有一個(gè)自由振蕩的系統(tǒng)時(shí)鐘。每個(gè)從設(shè)備向其時(shí)鐘加一個(gè)相應(yīng)的時(shí)間偏移量,使它能夠與主設(shè)備的時(shí)鐘對(duì)齊。通過使用主地址來選擇合適的跳躍序列并使用時(shí)間偏移量來對(duì)齊主時(shí)鐘,每個(gè)從設(shè)備能保持與主設(shè)備的跳躍同步;換句話說,主設(shè)備和從設(shè)備通過同步地跳到相同跳頻或跳躍載波而保持聯(lián)系。詳情參閱1997年9月18日以J.C.Haartsen的名義提交的美國(guó)專利申請(qǐng)No.08/932,911,題為《Frequency Hopping Piconets in anUncoordinated Wireless Multi-user System(在非協(xié)同的無線多用戶系統(tǒng)中的跳頻匹克網(wǎng))》,在此引入其整體。同樣要整體引入的是可以經(jīng)互聯(lián)網(wǎng)在以下統(tǒng)一資源定位器(URL)http//www.bluetooth.com上獲得的《Specification of the Bluetooth System(藍(lán)牙系統(tǒng)規(guī)范)》1.0A版。
在《藍(lán)牙系統(tǒng)規(guī)范》中已經(jīng)提出,兩種機(jī)制已經(jīng)被包括用于使低級(jí)的安全功能性便利鑒權(quán)和加密。鑒權(quán)過程每當(dāng)一個(gè)單元(這里表示為“單元A”)想要與之有藍(lán)牙無線連接的另一個(gè)單元(這里表示為“單元B”)的一些被要求身份的證明時(shí)被啟動(dòng)。一旦有關(guān)單元的被要求身份已被證實(shí)(或者單方面進(jìn)行或者在鏈路上運(yùn)行的應(yīng)用要求時(shí)相互進(jìn)行),則這些單元開始使用此鏈路進(jìn)行通信。成功鑒權(quán)的先決條件是這兩個(gè)單元都知道一個(gè)公用的秘密,也就是鏈路密鑰。
藍(lán)牙中的鑒權(quán)過程遵循詢問/響應(yīng)方案。簡(jiǎn)言之,驗(yàn)證者產(chǎn)生一個(gè)隨機(jī)數(shù)形式的詢問(這里表示為AU-RAND),把它發(fā)送給申請(qǐng)方。申請(qǐng)方一收到這個(gè)提問詢問就計(jì)算出一個(gè)簽署的響應(yīng)(這里表示為SRES),把它發(fā)送回驗(yàn)證者。如果給定該詢問和兩個(gè)藍(lán)牙單元所共享的秘密鏈路密鑰,則驗(yàn)證者可以獨(dú)立的計(jì)算出響應(yīng)應(yīng)該是什么(這里表示為SRES’)。如果所接收的SRES等于計(jì)算出的SRES’,則認(rèn)為鑒權(quán)成功。另一方面,如果這兩個(gè)數(shù)字并不相等,則申請(qǐng)方?jīng)]能證明其身份。這種詢問-響應(yīng)方案不必局限于藍(lán)牙系統(tǒng),而是可以應(yīng)用于各種需要鑒權(quán)的通信系統(tǒng)。在這種系統(tǒng)中,詢問-響應(yīng)格式可能以在此系統(tǒng)的各單元之間所傳輸?shù)念愃苹蛳嗤闹祦硎褂谩?br>
如果此應(yīng)用在某些點(diǎn)要求數(shù)據(jù)的機(jī)密性,則這些單元可以接通加密。這個(gè)過程也需要一個(gè)公用的秘密加密密鑰。加密密鑰不同于鏈路密鑰,但來源于它。通常,在連接建立的時(shí)候進(jìn)行鑒權(quán)。即便此后有可能重復(fù)鑒權(quán)過程,也并不是強(qiáng)制性的。因而自鑒權(quán)完成后已經(jīng)經(jīng)過了很長(zhǎng)時(shí)間且加密被接通。所以,在此期間不能真正保證這些單元中沒有一個(gè)單元被惡意的用戶所取代(除非頻繁地重復(fù)鑒權(quán)過程)。
希望的是,一但接通加密就立即關(guān)閉欺詐單元。因?yàn)槿魏芜@樣的單元都不應(yīng)擁有秘密鏈路密鑰,而這些密鑰應(yīng)由鏈路最初涉及的設(shè)備所使用。因而,該單元也不能推導(dǎo)出加密密鑰。為了針對(duì)惡意單元進(jìn)一步增加難度,加密密鑰的創(chuàng)建不僅依賴于鏈路密鑰,還依賴于一個(gè)稱為“鑒權(quán)加密偏移”(ACO)的數(shù)字。ACO是為每次調(diào)用產(chǎn)生SRES的函數(shù)而創(chuàng)建的一個(gè)數(shù)字。如果兩個(gè)單元用不同的ACO接通加密,則即使它們使用相同的鏈路密鑰,各自所產(chǎn)生的加密密鑰也會(huì)不同。
SRES和ACO的計(jì)算由表示為E1的算法來定義。形式上為E1{0,1}128×{0,1}128×{0,1}48→{0,1}32×{0,1}96,(1) 其中表達(dá)式{0,1}i表示了一個(gè)長(zhǎng)度為i的二進(jìn)制數(shù),K是128位的鏈路密鑰,AU_RAND是一個(gè)由驗(yàn)證者所發(fā)出的128位的詢問,BD_ADDR是申請(qǐng)方的48位藍(lán)牙設(shè)備地址,SRES是32位的簽署的響應(yīng),而X是一個(gè)與SRES同時(shí)計(jì)算出的96位數(shù)字。還要注意的是操作符“×”不是必定代表乘法,而是用于表示箭頭左邊參數(shù)一起應(yīng)用到產(chǎn)生箭頭右邊兩個(gè)參數(shù)的操作中。此函數(shù)在《藍(lán)牙系統(tǒng)規(guī)范》的第十四章中進(jìn)行了定義。但是本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解的是無論是在藍(lán)牙系統(tǒng)中還是在其他通信系統(tǒng)中都可以使用其他合適的算法。
目前,每次調(diào)用E1,每個(gè)設(shè)備都要更新它的ACO值。這樣,在傳統(tǒng)的系統(tǒng)中,ACO=X. (2)當(dāng)前的鑒權(quán)方案的問題在于難以同步ACO值。例如,問題可能由于這種事實(shí)而引起,即當(dāng)前藍(lán)牙基帶規(guī)范規(guī)定這些單元總要使用最近產(chǎn)生的ACO,但這又難以確定。對(duì)于這個(gè)問題的影響有兩個(gè)邏輯層面。首先,單元之間的通信會(huì)有一個(gè)未知的延遲。其次,由于同時(shí)發(fā)生或者幾乎同時(shí)發(fā)生傳輸,所以可能難于確定哪個(gè)是最新的傳輸。
圖1說明了在兩個(gè)單元之間可能要求鑒權(quán)和/或加密的一個(gè)可能通信方案。圖1可能有關(guān)藍(lán)牙系統(tǒng),或是涉及任何要求鑒權(quán)和/或加密的其他適當(dāng)通信系統(tǒng)。如圖1所示,在每個(gè)單元中,一個(gè)鏈路管理器(LM)101產(chǎn)生LM消息,一個(gè)基帶(BB)發(fā)送器103完成實(shí)際的編碼并向另一單元中的BB接收器105傳送消息。同樣,每個(gè)單元中的BB接收器105對(duì)所接收的比特流進(jìn)行解碼,并把它們傳送到上層的鏈路管理器101。鏈路管理器101完成消息的實(shí)際解釋。
不幸的是,由于實(shí)現(xiàn)上的問題,在鏈路管理器101產(chǎn)生消息的時(shí)刻與BB發(fā)送器103傳送那個(gè)消息的時(shí)刻之間可能會(huì)有一個(gè)未知的延遲。在接收側(cè)同樣如此BB接收器105接收消息,該消息由鏈路管理器101以某一不可預(yù)測(cè)的延遲進(jìn)行解釋和處理。上述情況對(duì)所有類型的LM消息,包括各種鑒權(quán)方案中的鑒權(quán)請(qǐng)求,都適用。
延遲的原因可能有下面幾種。顯而易見,內(nèi)部的硬件設(shè)計(jì)(如緩沖)和所提供的業(yè)務(wù)量負(fù)載影響這個(gè)延遲。而且,無線信道的特性(如干擾條件和信噪比)也有影響。例如,單元A可能積壓了由于無線信道較差而還未向單元B遞送的消息。如果單元A中的鏈路管理器101產(chǎn)生了一個(gè)新消息,則它會(huì)被放在一個(gè)傳送隊(duì)列中,而且直到所有的積壓消息都被發(fā)送后才能被傳送。
如果兩個(gè)單元同時(shí)(或者更為精確的說,在一個(gè)取決于實(shí)際延遲的“短”時(shí)間間隔中)開始請(qǐng)求對(duì)另一側(cè)的鑒權(quán),則可能引起問題。這是因?yàn)闊o法知道從一側(cè)產(chǎn)生某事件的時(shí)間點(diǎn)到另一側(cè)注冊(cè)此事件的后續(xù)時(shí)間點(diǎn)之間的延遲長(zhǎng)度。顯而易見,在這種情況下,每側(cè)都需要調(diào)用其加密密鑰產(chǎn)生算法E1兩次一次針對(duì)單元自身所產(chǎn)生的請(qǐng)求,另一次是對(duì)從另一側(cè)所接收的請(qǐng)求產(chǎn)生響應(yīng)。如示例所述,由于不同的延遲,A側(cè)最后的調(diào)用可能與B側(cè)最后的調(diào)用不同。因此,當(dāng)接通加密時(shí),單元A和B會(huì)產(chǎn)生不同的加密密鑰,結(jié)果造成它們不能明白地彼此通信。
圖2說明了一種雙方以相同ACO結(jié)束的情況,這使得它們即使在加密打開后仍可彼此通信。垂直線代表每個(gè)單元A和單元B中鏈路管理器101的時(shí)標(biāo),時(shí)間按下行方向推進(jìn)。在步驟201,單元A想要驗(yàn)證單元B的身份,因而產(chǎn)生了一個(gè)表示為AU-RANDA的詢問。這個(gè)詢問被傳送到單元B。在步驟203,單元B接收來自單元A的詢問,并通過調(diào)用E1來產(chǎn)生兩個(gè)參數(shù)SRESA和ACOA而響應(yīng)。(各參數(shù)中的下標(biāo)A表明它們有關(guān)單元A的詢問。)然后,單元B所產(chǎn)生的響應(yīng)參數(shù)SRESA被傳送回單元A。
在步驟205,單元A接收單元B的響應(yīng)參數(shù)SRESA,并以調(diào)用E1來計(jì)算所期望的響應(yīng)參數(shù)SRES’A和ACOA而響應(yīng)。然后單元A把期望的簽署的響應(yīng)SRES’A與實(shí)際的簽署的響應(yīng)SRESA進(jìn)行比較,來確定單元B是否可信。
在步驟207,單元B想要驗(yàn)證單元A的身份,因而產(chǎn)生一個(gè)表示為AU_RANDB的詢問。這個(gè)詢問被傳送到單元A。在步驟209,單元A接收來自單元B的詢問,并以調(diào)用E1來產(chǎn)生兩個(gè)參數(shù)SRESB和ACOB而響應(yīng)。(各參數(shù)的下標(biāo)B表明它們有關(guān)單元B的詢問。)然后,單元A所產(chǎn)生的響應(yīng)參數(shù)SRESB被傳送回單元B。
在步驟211,單元B接收單元A的響應(yīng)參數(shù)SRESB,并以調(diào)用E1來計(jì)算所期望的響應(yīng)參數(shù)SRES’B和ACOB而響應(yīng)。然后單元B把期望的簽署的響應(yīng)SRES’B與實(shí)際的簽署的響應(yīng)SRESB進(jìn)行比較,來確定單元A是否可信。
此后的某個(gè)時(shí)間,這些單元決定在它們彼此的通信中使用加密。相應(yīng)的,在步驟213,單元A打開加密,使用它最近產(chǎn)生的ACO值來產(chǎn)生將要用到的加密密鑰。與此類似,在步驟215,單元B打開加密,使用它最近產(chǎn)生的ACO值來產(chǎn)生將要用到的加密密鑰。假若這樣,在單元A和單元B中最近產(chǎn)生的ACO值是ACOB。因此,兩個(gè)單元將會(huì)產(chǎn)生相同的加密密鑰,并能夠繼續(xù)彼此的通信。
現(xiàn)在參考圖3,這里的示例說明了傳輸延遲使得兩個(gè)單元A和B結(jié)束于不同的ACO值,因而造成加密開始后不可能通信。具體而言,在步驟301,單元A想要驗(yàn)證單元B的身份,因而產(chǎn)生一個(gè)表示為AU_RANDA的詢問。這個(gè)詢問被傳送到單元B。但是單元B在接收來自單元A的詢問之前,就在步驟303也決定驗(yàn)證單元A的身份,因而產(chǎn)生自己的表示為AU_RANDB的詢問。
在步驟305,單元A接收單元B的詢問,并以調(diào)用E1來產(chǎn)生兩個(gè)參數(shù)SRESB和ACOB而響應(yīng)。(各參數(shù)的下標(biāo)B表明它們有關(guān)單元B的詢問。)然后,單元A所產(chǎn)生的響應(yīng)參數(shù)SRESB被傳送回單元B。
與此類似,在步驟307,單元B接收單元A的詢問(在步驟301傳送),并以調(diào)用E1來產(chǎn)生兩個(gè)參數(shù)SRESA和ACOA而響應(yīng)。(各參數(shù)的下標(biāo)A明它們有關(guān)單元A的詢問。)然后,單元B所產(chǎn)生的響應(yīng)參數(shù)SRESA被傳送回單元A。
在步驟309,單元B接收單元A的響應(yīng)參數(shù)SRESB,并以調(diào)用E1來計(jì)算所期望的響應(yīng)參數(shù)SRES’B和ACOB而響應(yīng)。然后單元B把期望的簽署的響應(yīng)SRES’B與實(shí)際的簽署的響應(yīng)SRESB進(jìn)行比較,來確定單元A是否可信。
與此類似,在步驟311,單元A接收單元B的響應(yīng)參數(shù)SRESA,并以調(diào)用E1來計(jì)算所期望的響應(yīng)參數(shù)SRES’A和ACOA而響應(yīng)。然后單元A把期望的簽署的響應(yīng)SRES’A與實(shí)際的簽署的響應(yīng)SRESA進(jìn)行比較,來確定單元B是否可信。
此后的某個(gè)時(shí)間,這些單元決定在它們彼此的通信中使用加密。相應(yīng)的,在步驟313,單元A打開加密,使用它最近產(chǎn)生的ACO值來產(chǎn)生將會(huì)用到的加密密鑰。與此類似,在步驟315,單元A打開加密,使用它最近產(chǎn)生的ACO值來產(chǎn)生將會(huì)用到的加密密鑰。假如這樣,在單元A中最近產(chǎn)生的ACO值是ACOA,而在單元B中最近產(chǎn)生的ACO值是ACOB。因此,單元A和單元B將會(huì)產(chǎn)生不同的加密密鑰,因而不可能繼續(xù)彼此的通信。
圖3所述的問題可以使用特定規(guī)則來避免。例如,在《藍(lán)牙基帶規(guī)范》的當(dāng)前版本中,提出了使用下述規(guī)則的解決方案在相互鑒權(quán)的情況下,保留來自第二鑒權(quán)的ACO值。但是,在某些情況下,鑒權(quán)事件可能在兩個(gè)設(shè)備中同時(shí)發(fā)起。當(dāng)發(fā)生這種情況時(shí)無法區(qū)分誰是第一和誰是第二事件。因此,兩個(gè)單元都應(yīng)使用由主設(shè)備產(chǎn)生的詢問引起的ACO。
當(dāng)從單元A收到一個(gè)詢問、卻又期待對(duì)先前從單元B起始的所發(fā)送詢問的響應(yīng)時(shí),第二單元(單元B)可以確定一個(gè)鑒權(quán)事件已在第一單元(單元A)中同時(shí)或者幾乎同時(shí)產(chǎn)生。在此情況下,單元B所發(fā)起的鑒權(quán)事件被認(rèn)為是開放的。始發(fā)側(cè)在收到響應(yīng)之前認(rèn)為鑒權(quán)事件是開放的。當(dāng)始發(fā)側(cè)已經(jīng)接收和處理此響應(yīng)時(shí),關(guān)閉此事件。因此,在與圖3類似地使用上述藍(lán)牙規(guī)則的情況下,單元B會(huì)觀察到在步驟307它已接收了一個(gè)鑒權(quán)請(qǐng)求,而不是所期望的在步驟303發(fā)送的、對(duì)先前所發(fā)送詢問的響應(yīng)。因此,由于單元B在步驟303所發(fā)起的請(qǐng)求可以認(rèn)為是開放的,故由主單元A在步驟301所產(chǎn)生詢問引起的ACOA,而非ACOB,會(huì)被單元B所使用。同樣,單元A也會(huì)收到一個(gè)鑒權(quán)請(qǐng)求(步驟305),而它在步驟301所發(fā)起的鑒權(quán)事件是開放的,并且會(huì)因而根據(jù)相同的規(guī)則也使用ACOA。通過使用這個(gè)規(guī)則,在藍(lán)牙系統(tǒng)中進(jìn)行通信的設(shè)備從而可以避免圖3中示出的問題。
現(xiàn)在參考圖4,這里的例子說明了藍(lán)牙系統(tǒng)在傳輸或者處理方面的延遲造成兩個(gè)單元A和B結(jié)束于不同的ACO值,因而在加密打開后不可能進(jìn)行通信。于是,盡管上述規(guī)則有助于在圖3所述情況下的通信,但延遲可能在使用相同規(guī)則的藍(lán)牙系統(tǒng)中造成通信困難。具體而言,單元A在步驟401想要驗(yàn)證單元B的身份,因而產(chǎn)生了一個(gè)表示為AU_RANDA的詢問。這個(gè)詢問被傳送到單元B。但是單元B在接收來自單元A的詢問之前,在步驟403也決定去驗(yàn)證單元A的身份,因而產(chǎn)生了它自己表示為AU_RANDB的詢問。
在步驟405,單元B接收單元A的(在步驟401所傳送的)詢問,并以調(diào)用E1來產(chǎn)生兩個(gè)參數(shù)SRESA和ACOA而響應(yīng)。(各參數(shù)的下標(biāo)A表明它們有關(guān)單元A的詢問。)然后,單元B所產(chǎn)生的響應(yīng)參數(shù)SRESA被傳送回單元A。單元B產(chǎn)生這個(gè)響應(yīng),知道它的鑒權(quán)請(qǐng)求是開放的,并將因此根據(jù)藍(lán)牙規(guī)范的規(guī)則而使用主單元A所產(chǎn)生的ACO值。
在步驟407,單元A在表示為tA的時(shí)刻收到單元B的響應(yīng)參數(shù)SRESA,并以調(diào)用E1來計(jì)算所期望的響應(yīng)參數(shù)SRES’A和ACOA而響應(yīng)。然后,單元A把期望的簽署的響應(yīng)SRES’A與實(shí)際的簽署的響應(yīng)SRESA進(jìn)行比較,來確定單元B是否可信。單元A執(zhí)行這個(gè)計(jì)算,但不知道幾乎同時(shí)已發(fā)生了鑒權(quán)事件,因?yàn)榻邮諉卧狟的請(qǐng)求在其對(duì)單元A請(qǐng)求的響應(yīng)之后,此時(shí)單元A的鑒權(quán)事件已經(jīng)被關(guān)閉。
在步驟409,單元A接收單元B的詢問,并以調(diào)用E1來產(chǎn)生兩個(gè)參數(shù)SRESB和ACOB而響應(yīng)。(各參數(shù)的下標(biāo)B表明它們有關(guān)單元B的詢問。)然后,單元A所產(chǎn)生的響應(yīng)參數(shù)SRESB被傳送回單元B。
在步驟411,單元B在表示為tB的時(shí)刻收到單元A的響應(yīng)參數(shù)SRESB,但是單元B沒有調(diào)用E1來計(jì)算所期望的響應(yīng)參數(shù)SRES’B和ACOB,而是根據(jù)藍(lán)牙規(guī)范的規(guī)則計(jì)算SRES’B,但保留來自主單元A的ACOA。
因?yàn)閬碜詥卧狟的、由單元B在步驟403所產(chǎn)生的鑒權(quán)請(qǐng)求AU_RANDB被單元A接收(步驟409)是在簽署的響應(yīng)SRESA的接收之后,該SRESA由單元B在步驟405所產(chǎn)生并由單元A在步驟407所接收,所以會(huì)引起圖4所述的問題。因此,由于單元A在收到單元B所產(chǎn)生的鑒權(quán)請(qǐng)求之前就在時(shí)間tA關(guān)閉了單元A的鑒權(quán)請(qǐng)求事件,所以單元A并不知道已經(jīng)幾乎同時(shí)產(chǎn)生了兩個(gè)鑒權(quán)請(qǐng)求。因此,單元A并不應(yīng)用要求兩個(gè)單元都使用主ACO值的藍(lán)牙規(guī)范規(guī)則,而改為使用ACOB。但是,單元B收到單元A的鑒權(quán)請(qǐng)求,這個(gè)請(qǐng)求是由單元A在步驟401產(chǎn)生并由單元B在步驟403產(chǎn)生了自己的鑒權(quán)請(qǐng)求之后才在步驟405接收。由于接收單元A所產(chǎn)生的鑒權(quán)請(qǐng)求是在單元B所產(chǎn)生的鑒權(quán)請(qǐng)求之后、但卻是先于在步驟411接收來自單元A的響應(yīng),故單元B意識(shí)到兩個(gè)鑒權(quán)請(qǐng)求幾乎是同時(shí)的,并且應(yīng)用藍(lán)牙規(guī)范規(guī)則,要求單元B使用主單元的ACO值或ACOA。
作為單元B鑒權(quán)請(qǐng)求時(shí)間延遲的后果,當(dāng)兩個(gè)設(shè)備后來打開加密時(shí),單元A如步驟413所示使用ACOB,而單元B如步驟415所示使用ACOA。結(jié)果,一旦兩個(gè)單元使用不同的ACO值打開加密,就不可能通信。
在上述示例中,假設(shè)每個(gè)單元僅在從另一單元收到實(shí)際簽署的響應(yīng)之后產(chǎn)生自己期望的簽署的響應(yīng)SRES’。但是,這不是必需的,因?yàn)橐粋€(gè)單元可以例如在產(chǎn)生詢問AU_RAND的同時(shí)產(chǎn)生出其所期望的簽署的結(jié)果(SRES’)。這樣的何時(shí)產(chǎn)生SRES’的確定可能取決于執(zhí)行此操作的系統(tǒng)。例如,《藍(lán)牙系統(tǒng)規(guī)范》把具體實(shí)現(xiàn)留給開發(fā)者。由于實(shí)現(xiàn)上沒有這樣做或那樣做的要求,所以可能出現(xiàn)第一制造商制造的一個(gè)單元在產(chǎn)生詢問的同時(shí)計(jì)算SRES’,而不同制造商制造的另一單元僅在從另一側(cè)收到簽署的響應(yīng)時(shí)產(chǎn)生它的SRES’。在這種情況下,兩個(gè)單元可能再次結(jié)束于不同的最近產(chǎn)生的ACO值,從而造成在加密打開時(shí)它們不可能產(chǎn)生相同的加密密鑰。
因此需要一種系統(tǒng)來避免有關(guān)現(xiàn)有技術(shù)的問題,如可能結(jié)束于不同ACO值,并因此使用不兼容的加密。
發(fā)明概述應(yīng)當(dāng)著重指出的是用在此說明書中的術(shù)語(yǔ)“包括”用于規(guī)定存在所述的特性、整體、步驟或組件;但是使用這些術(shù)語(yǔ)并不排除存在或增加一個(gè)或多個(gè)其他特性、整體、步驟、組件或其組合。
前述目的和其他目的可以由可用于通信系統(tǒng)的本發(fā)明而得到實(shí)現(xiàn)。一個(gè)這樣的系統(tǒng)就是藍(lán)牙系統(tǒng)。根據(jù)本發(fā)明的一個(gè)方面,鑒權(quán)加密偏移(ACO)被產(chǎn)生為一個(gè)或多個(gè)參數(shù)的函數(shù),其中該一個(gè)或多個(gè)參數(shù)中的至少一個(gè)參數(shù)是從先前所計(jì)算的ACO值中導(dǎo)出。這使每個(gè)設(shè)備能夠避免所產(chǎn)生的一個(gè)ACO值與另一通信設(shè)備所產(chǎn)生的對(duì)應(yīng)ACO值之間的不同步,從而避免了例如有關(guān)現(xiàn)有技術(shù)系統(tǒng)的不可控制延遲所造成的問題。
附圖簡(jiǎn)述通過閱讀下面結(jié)合附圖的詳述會(huì)理解本發(fā)明的目的和優(yōu)勢(shì),其中圖1是兩個(gè)單元的框圖,每個(gè)單元都有一個(gè)鏈路管理器、一個(gè)基帶發(fā)送器和一個(gè)基帶接收器;圖2是在兩個(gè)單元結(jié)束于相同ACO值的示例中鑒權(quán)信令的時(shí)序框圖;圖3是在兩個(gè)單元結(jié)束于不同ACO值的示例中現(xiàn)有技術(shù)鑒權(quán)信令的時(shí)序框圖4是在兩個(gè)單元由于延遲的信號(hào)而可能使用不同ACO值的示例中現(xiàn)有技術(shù)的鑒權(quán)信令的時(shí)序框圖;圖5是根據(jù)本發(fā)明的一個(gè)實(shí)施方案計(jì)算ACO值的流程圖;圖6是在通信系統(tǒng)中如何實(shí)現(xiàn)本發(fā)明的時(shí)序框圖;以及圖7是在應(yīng)用某些規(guī)則的通信系統(tǒng)中如何實(shí)現(xiàn)本發(fā)明的時(shí)序框圖。
發(fā)明詳述下面會(huì)結(jié)合多個(gè)示范實(shí)施方案并根據(jù)附圖,詳細(xì)描述本發(fā)明的各方面,其中相同的部分用相同的參考字符標(biāo)識(shí)。為了便于本發(fā)明的理解,本發(fā)明的許多方面會(huì)根據(jù)計(jì)算機(jī)系統(tǒng)中各元素將要執(zhí)行的動(dòng)作序列來描述。應(yīng)當(dāng)意識(shí)到的是,在每種實(shí)施方案中,可能通過專用電路(如為完成專用功能而相互連接起來的離散邏輯門)、由一個(gè)或多個(gè)處理器來執(zhí)行的程序指令、或者二者的結(jié)合,來執(zhí)行各種動(dòng)作。而且,本發(fā)明另外還可被認(rèn)為是整體地實(shí)現(xiàn)在任何形式的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,該介質(zhì)中存儲(chǔ)了適當(dāng)?shù)挠?jì)算機(jī)指令集,能使處理器完成上述的技術(shù)。于是,本發(fā)明的各方面可以用各種不同的形式來具體實(shí)現(xiàn),而且所有這些形式都被認(rèn)為是在本發(fā)明的范圍內(nèi)。對(duì)于本發(fā)明的不同方面的各個(gè)方面,任何這種形式的實(shí)施方案都可以稱之為“邏輯被配置以”執(zhí)行所述動(dòng)作。
克服有關(guān)現(xiàn)有技術(shù)的問題可以使用一種新函數(shù),產(chǎn)生“鑒權(quán)加密偏移”(ACO)為所有早先計(jì)算的ACO加上其他可能參數(shù)的函數(shù)。
如圖5所示,一個(gè)觸發(fā)事件(步驟501)觸發(fā)特定的設(shè)備或通信單元來計(jì)算一個(gè)ACO為預(yù)定義參數(shù)的函數(shù)(步驟503),其中至少一個(gè)參數(shù)是從早先計(jì)算的ACO值中導(dǎo)出。觸發(fā)事件501可能是多個(gè)內(nèi)部或外部觸發(fā)事件中的任意一個(gè)。例如,一個(gè)外部觸發(fā)事件可能是一個(gè)鑒權(quán)請(qǐng)求,或者一個(gè)從另一設(shè)備接收來的簽署的響應(yīng)。內(nèi)部觸發(fā)事件的例子可能包括某些定時(shí)的事件,等等。至于新ACO值的產(chǎn)生,任何可交換的二進(jìn)制函數(shù)足以基于先前的值創(chuàng)建一個(gè)ACO值,這不取決于順序。
在一個(gè)示例實(shí)施方案中,每個(gè)單元保持一個(gè)ACO值的運(yùn)行和(running sum)(按位模2),并把最近的ACO值與當(dāng)前產(chǎn)生的X值(調(diào)用E1來產(chǎn)生)結(jié)合起來。于是,在第K次調(diào)用E1后,ACO變?yōu)锳COk=Xk⊕ACOk-1=Σi=1kXi,......(3)]]>其中,在這個(gè)示例實(shí)施方案中,此和是按位模2。產(chǎn)生此和可以有利的使用異或(XOR)函數(shù)。計(jì)算Xk值可以用傳統(tǒng)的方式,使用表示為E1的函數(shù)。
由于此和中元素的順序是無關(guān)的,故兩個(gè)單元A和B只要滿足下面的結(jié)果就有等同的ACO值{Xi(A)|i=1...k}={Xi(B)|i=1...k}。結(jié)果,與圖3和圖4中所述示例相似的情況不會(huì)在加密接通時(shí)造成任何問題。
除了使用XOR操作對(duì)所有先前ACO值求和,還可以應(yīng)用其他技術(shù)。例如,只要所選的函數(shù)滿足交換律,任何使用先前ACO值的函數(shù)可以用于維護(hù)在兩個(gè)單元中相同的ACO。也可以使用諸如邏輯與、與非、或、異或、加、減和乘函數(shù)等簡(jiǎn)單的布爾函數(shù)。例如,可在Xk和ACOk-1之間使用任何可交換的二進(jìn)制運(yùn)算,如公式3中所示。另外也可以使用諸如卷積和函數(shù)等較為復(fù)雜的函數(shù)。
但是應(yīng)當(dāng)注意的是,除了XOR函數(shù)之外的簡(jiǎn)單二進(jìn)制函數(shù)可能并不是所期望的,因?yàn)樗鼈兛赡軇?chuàng)建一個(gè)在多次迭代之后傾向于一個(gè)特定值的ACO,從而產(chǎn)生一個(gè)可能可預(yù)測(cè)的ACO。此外,更為復(fù)雜的函數(shù)也不期望,因?yàn)樗鼈兛赡苊黠@增加算法的計(jì)算復(fù)雜性。但是,隨著處理速度的提高,較為復(fù)雜的算法或多種算法的結(jié)合可能正是所期望的,因?yàn)樗鼈兛梢缘贸龈与y以預(yù)測(cè)的ACO值。
圖6說明了一個(gè)在通信系統(tǒng)中如何應(yīng)用本發(fā)明來避免圖3所述問題的示例。在圖3中,由兩個(gè)單元幾乎同時(shí)產(chǎn)生的詢問造成兩個(gè)單元A和單元B結(jié)束于不同的ACO值,從而在加密打開后不可能進(jìn)行通信。但是在使用了本發(fā)明的圖6中,每個(gè)新ACO值用先前ACO值來計(jì)算,從而使得兩個(gè)單元能夠結(jié)束于相同的ACO值,并甚至在加密打開后仍能通信。在圖6所述的情況下,單元A和單元B開始于相等的ACO值。具體而言,單元A實(shí)際開始于ACOm,而單元B實(shí)際開始于ACOn(與ACOm相等)。
在步驟601,單元A想要驗(yàn)證單元B的身份,因而產(chǎn)生了一個(gè)表示為AU_RANDA的詢問。這個(gè)詢問被傳送到單元B。但是,單元B在接收來自單元A的詢問之前,就在步驟603也決定驗(yàn)證單元A的身份,因而產(chǎn)生了它自己的一個(gè)表示為AU_RANDB的詢問。
在步驟605,單元A接收單元B的(在步驟603所傳送的)詢問,并以調(diào)用E1來產(chǎn)生兩個(gè)參數(shù)SRESB和ACOm+1而響應(yīng)。在這個(gè)例子中,導(dǎo)出ACOm+1為AU_RANDB和先前ACO值的函數(shù)。計(jì)算ACOm+1可以用公式3所述的方式或者其他合適的可交換二進(jìn)制函數(shù)。然后,單元A所產(chǎn)生的響應(yīng)參數(shù)SRESB被傳送回單元B。
與此類似,在步驟607單元B接收單元A的(步驟601所傳送的)詢問,并以調(diào)用E1來產(chǎn)生兩個(gè)參數(shù)SRESA和ACOn+1而響應(yīng)。導(dǎo)出ACOn+1為AU_RANDA和先前ACO值的函數(shù)。產(chǎn)生ACOn+1可以使用任意可交換的二進(jìn)制算法,例如包括公式3中顯示的那個(gè)。然后,單元B所產(chǎn)生的響應(yīng)參數(shù)SRESA被傳送回單元A。
在步驟609,單元B接收單元A的響應(yīng)參數(shù)SRESB,并以調(diào)用E1來計(jì)算期望的響應(yīng)參數(shù)SRES’B和ACOn+2而響應(yīng),該ACOn+2是AU_RANDB和ACOn+1的函數(shù)。然后,單元B可以把期望的簽署的響應(yīng)SRES’B與實(shí)際的簽署的響應(yīng)SRESB進(jìn)行比較,來確定單元A是否可信。
與此類似,在步驟611,單元A接收單元B的響應(yīng)參數(shù)SRESA,并以調(diào)用E1來計(jì)算期望的響應(yīng)參數(shù)SRES’A和ACOm+2而響應(yīng),該ACOm+2是AU_RANDA和ACOm+1的函數(shù)。然后,單元A可以把期望的簽署的響應(yīng)SRES’A與實(shí)際的簽署的響應(yīng)SRESA進(jìn)行比較,來確定單元B是否可信。
在稍后的某個(gè)時(shí)間,該單元在預(yù)訂的時(shí)間或者通過開始加密請(qǐng)求來決定在它們彼此的通信中使用加密。相應(yīng)地,在步驟613,單元A打開加密,使用其最近產(chǎn)生的ACO值來產(chǎn)生將要使用的加密密鑰。與此類似,在步驟615,單元B打開加密,使用其最近產(chǎn)生的ACO值來產(chǎn)生將要使用的加密密鑰。假如這樣,則最近產(chǎn)生用于單元A的ACO值是ACOm+2,而最近產(chǎn)生用于單元B的ACO值是ACOn+2。但是,如果兩個(gè)單元開始于相等的值(即ACOm=ACOn)并且每次產(chǎn)生ACO值處執(zhí)行的操作(如公式3所述的可交換函數(shù))是可交換的以便操作順序并不改變計(jì)算結(jié)果,則ACOm+2和ACOn+2也會(huì)相等。于是,單元A和單元B將會(huì)結(jié)束于相等的ACO值,并且甚至在加密打開時(shí)仍能通信。此外,不管是未知的延遲還是同時(shí)的鑒權(quán)請(qǐng)求,相等的ACO值都會(huì)在兩個(gè)單元中維持。于是,本發(fā)明緩和了結(jié)合圖3所述的問題。
現(xiàn)在參考圖7,這里說明了一個(gè)使用本發(fā)明補(bǔ)救結(jié)合圖4所述問題的示例。在圖4中,藍(lán)牙系統(tǒng)中詢問的傳輸或處理延遲造成兩個(gè)單元使用不同的ACO值,使得一旦接通通信就不可能進(jìn)行通信。兩個(gè)單元都使用相等的ACO值(即ACOm=ACOn)來開始圖7中的情形。在圖7中,單元A在步驟701產(chǎn)生一個(gè)表示為AU_RANDA的鑒權(quán)請(qǐng)求或詢問,它被傳送到單元B。與此類似,單元B在步驟703向單元A傳送一個(gè)請(qǐng)求或詢問AU_RANDB。在步驟705,單元B接收由單元A在步驟701所產(chǎn)生的詢問,并產(chǎn)生簽署的響應(yīng)SRESA和ACOn+1。計(jì)算ACOn+1為AU_RANDA和的先前ACO值即ACOn的函數(shù)。然后,簽署的響應(yīng)SRESA被發(fā)送到單元A,單元A在步驟707所示的tA時(shí)刻收到它。然后,單元A產(chǎn)生ACOm+1,它是AU_RANDA和先前ACO值A(chǔ)COm的函數(shù)。在此步驟單元A還產(chǎn)生一個(gè)所期望的簽署的響應(yīng)SRES’A,以便驗(yàn)證單元B的可信性。在步驟709,單元A接收單元B在步驟703所產(chǎn)生的詢問,并在響應(yīng)中產(chǎn)生簽署的響應(yīng)SRESB,且計(jì)算ACOm+2,它是AU_RANDB和ACOm+1的函數(shù)。計(jì)算每個(gè)ACO值可以使用任意可交換的二進(jìn)制運(yùn)算,例如公式3所示的運(yùn)算來執(zhí)行。然后,單元A向單元B傳送簽署的響應(yīng),單元B在步驟711的tB時(shí)刻收到它。根據(jù)藍(lán)牙規(guī)范的規(guī)則,因?yàn)閮蓚€(gè)鑒權(quán)請(qǐng)求幾乎同時(shí)產(chǎn)生,所以單元B會(huì)保留ACOn+1供以后使用,單元B明白這點(diǎn)是由于在收到來自單元A的詢問的同時(shí),它具有一個(gè)開放的事件(開始于步驟703所產(chǎn)生的詢問)。但是,根據(jù)本發(fā)明,在步驟711的tB時(shí)刻一個(gè)新值A(chǔ)COn+2改而被計(jì)算為AU_RANDB和ACOn+1的函數(shù)。這個(gè)計(jì)算可以使用諸如公式3的運(yùn)算等的任何可交換二進(jìn)制運(yùn)算來實(shí)現(xiàn)。
由于使用了本發(fā)明,當(dāng)單元A和單元B分別在步驟713和步驟715決定打開加密時(shí),它們將會(huì)使用彼此相等的其最新的ACO值,來確定一個(gè)加密密鑰,因而它們即使在加密接通時(shí)仍能進(jìn)行通信。應(yīng)當(dāng)注意的是在圖7中某個(gè)單元對(duì)有關(guān)它所發(fā)起事件的每個(gè)ACO值的使用和計(jì)算被舉例說明為會(huì)延遲,一直到事件被關(guān)閉。但是,不必是這種情況,而且計(jì)算有關(guān)那個(gè)單元的ACO值可以在那個(gè)單元發(fā)出詢問的時(shí)刻,或者是任何其他適當(dāng)?shù)臅r(shí)刻。但是,如果在關(guān)閉該特定詢問事件之前使用與該事件相關(guān)的ACO值,則會(huì)引起潛在的問題,例如在事件丟失、沒有返回、或者超時(shí)等的情況中。
本發(fā)明實(shí)現(xiàn)了超越傳統(tǒng)方法的多種優(yōu)勢(shì),并解決了與之相關(guān)的問題。它消除了對(duì)保證的響應(yīng)時(shí)間的實(shí)時(shí)要求。它使ACO的計(jì)算順序無關(guān)緊要。在各層之間具有不同延遲的實(shí)時(shí)難題不成為問題。于是,本發(fā)明允許實(shí)時(shí)和非實(shí)時(shí)的設(shè)備用于相同的通信系統(tǒng),因?yàn)樗?jì)算ACO值獨(dú)立于其被接收的順序。計(jì)算ACO值還獨(dú)立于傳輸、接收、或處理方面的任何延遲。而且,本發(fā)明在計(jì)算上的復(fù)雜性可以忽略。相對(duì)于舊有解決方案它不需要額外的存儲(chǔ)空間。
本發(fā)明已就特定實(shí)施方案進(jìn)行了描述。但是,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)很容易意識(shí)到,有可能具體實(shí)現(xiàn)本發(fā)明使用的特定形式不同于上述優(yōu)選實(shí)施方案。這可以在不脫離本發(fā)明的精神的情況下進(jìn)行。
此外,關(guān)于克服通信中的延遲將會(huì)造成兩個(gè)單元之間的ACO參數(shù)不同步的問題,本發(fā)明參照特定實(shí)施方案進(jìn)行了描述。但是,在使一個(gè)參數(shù)至少部分地為其過去值的函數(shù)的相同原則可以應(yīng)用到延遲會(huì)造成任何這種參數(shù)不同步問題的任何系統(tǒng)中。一些這樣的系統(tǒng)可能包括但不局限于任意實(shí)時(shí)系統(tǒng),其中存在不可預(yù)測(cè)的延遲并可能造成潛在問題。這種系統(tǒng)的一些示例包括諸如移動(dòng)電話系統(tǒng)、無線尋呼系統(tǒng)、和無線互聯(lián)網(wǎng)系統(tǒng)等的無線系統(tǒng),以及諸如互聯(lián)網(wǎng)、陸線電話系統(tǒng)、撥號(hào)聯(lián)網(wǎng)系統(tǒng)、LAN、MAN等的有線系統(tǒng)。在交換數(shù)據(jù)的通信鏈路兩端有應(yīng)用(其中不可預(yù)測(cè)的延遲可能造成問題)的任何系統(tǒng)可以從使用本發(fā)明中獲益。
因此,優(yōu)選實(shí)施方案僅僅用于說明,不應(yīng)被認(rèn)為有任何形式的局限。本發(fā)明的范圍由附加的權(quán)利要求給出,而不是前面的描述給出,而且所有在權(quán)利要求范圍中的變化和等價(jià)物都打算包含在其中。
權(quán)利要求
1.一種在通信系統(tǒng)中產(chǎn)生鑒權(quán)加密偏移(ACO)的方法,該方法包括產(chǎn)生ACO為一個(gè)或多個(gè)參數(shù)的函數(shù),其中該一個(gè)或多個(gè)參數(shù)中的至少一個(gè)參數(shù)是從先前計(jì)算的ACO值中導(dǎo)出的。
2.根據(jù)權(quán)利要求1的方法,其中產(chǎn)生ACO為一個(gè)或多個(gè)參數(shù)的函數(shù)的步驟包括從該參數(shù)的一個(gè)或多個(gè)參數(shù)中產(chǎn)生第k個(gè)值Xk,并在Xk和先前值A(chǔ)COk-1之間應(yīng)用可交換的二進(jìn)制運(yùn)算。
3.根據(jù)權(quán)利要求1的方法,其中產(chǎn)生ACO為一個(gè)或多個(gè)參數(shù)的函數(shù)的步驟包括根據(jù)下式產(chǎn)生ACO的第k個(gè)值為運(yùn)行和ACOk=Xk⊕ACOk-1=Σi=1kXi,]]>其中產(chǎn)生Xi為一個(gè)或多個(gè)參數(shù)的函數(shù),該參數(shù)不包括從先前計(jì)算的ACO值導(dǎo)出的該一個(gè)或者多個(gè)參數(shù)中的該至少一個(gè)參數(shù)。
4.根據(jù)權(quán)利要求3的方法,其中該和是按位模2的和。
5.根據(jù)權(quán)利要求4的方法,其中按位模2的和是借助一個(gè)按位異或(XOR)運(yùn)算來執(zhí)行的。
6.一種在通信設(shè)備中產(chǎn)生鑒權(quán)加密偏移(ACO)的裝置,該裝置包括配置以產(chǎn)生ACO為一個(gè)或多個(gè)參數(shù)的函數(shù)的邏輯電路,其中該一個(gè)或者多個(gè)參數(shù)中的至少一個(gè)參數(shù)是從先前計(jì)算的ACO值中導(dǎo)出的。
7.根據(jù)權(quán)利要求6的裝置,其中配置以產(chǎn)生ACO為一個(gè)或多個(gè)參數(shù)的函數(shù)的邏輯電路包括配置以從該參數(shù)的一個(gè)或多個(gè)參數(shù)中產(chǎn)生第k個(gè)值Xk并在Xk和先前值A(chǔ)COk-1之間應(yīng)用可交換二進(jìn)制運(yùn)算的邏輯電路。
8.根據(jù)權(quán)利要求6的裝置,其中配置以產(chǎn)生ACO為一個(gè)或多個(gè)參數(shù)的函數(shù)的邏輯電路包括配置以根據(jù)下式產(chǎn)生ACO的第k個(gè)值為運(yùn)行和的邏輯電路ACOk=Xk⊕ACOk-1=Σi=1kXi,]]>其中產(chǎn)生Xi為該一個(gè)或多個(gè)參數(shù)的函數(shù),該參數(shù)不包括從先前計(jì)算的ACO值導(dǎo)出的該一個(gè)或者多個(gè)參數(shù)中的該至少一個(gè)參數(shù)。
9.根據(jù)權(quán)利要求8的裝置,其中配置以產(chǎn)生ACO的第k個(gè)值的邏輯電路包括配置以執(zhí)行按位模2和的邏輯電路。
10.根據(jù)權(quán)利要求9的裝置,其中配置以執(zhí)行按位模2和的邏輯電路包括配置以執(zhí)行按位異或(XOR)運(yùn)算的邏輯電路。
11.根據(jù)權(quán)利要求6的裝置,其中通信設(shè)備包括一個(gè)實(shí)時(shí)設(shè)備。
12.根據(jù)權(quán)利要求6的裝置,其中通信設(shè)備包括一個(gè)非實(shí)時(shí)設(shè)備。
全文摘要
在一個(gè)通信系統(tǒng)中,鑒權(quán)加密偏移(ACO)被生成為一個(gè)或多個(gè)參數(shù)的函數(shù),其中該一個(gè)或多個(gè)參數(shù)中的至少一個(gè)參數(shù)是從先前所計(jì)算的ACO值中導(dǎo)出。這使每個(gè)設(shè)備都能避免產(chǎn)生的ACO值與另一通信設(shè)備所產(chǎn)生的對(duì)應(yīng)ACO值之間的不同步。
文檔編號(hào)H04L9/08GK1433610SQ00818756
公開日2003年7月30日 申請(qǐng)日期2000年11月27日 優(yōu)先權(quán)日1999年12月2日
發(fā)明者J·佩爾松, B·斯梅茨, T·梅林 申請(qǐng)人:艾利森電話股份有限公司