藍牙技術中加密算法研究論文

時間:2022-11-17 04:12:00

導語:藍牙技術中加密算法研究論文一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

藍牙技術中加密算法研究論文

摘要此文主要討論藍牙技術中的加密算法和安全措施,并進一步提出

了對于藍牙加密算法所存在的問題的解決方案。

關鍵字藍牙流加密分組加密DESAES

1引言

隨著計算機網絡技術的迅速發展,網絡中的信息安全問題越來越受到廣泛關注。信息安全主要涉及到用戶身份驗證、訪問控制、數據完整性、數據加密等問題。網絡安全產品大量涌現。雖然各種網絡安全產品的功能多種多樣,但它們無一例外地要使用加密技術。一個好的加密算法首先表現在它的安全性上,一個不安全的算法會使使用它的網絡變得更加脆弱;其次要考慮它在軟硬件方面實現的難易度,不易實現的加密算法是不現實的;第三要看使用此加密算法會不會降低數據傳輸速率。

藍牙技術是一種新興的無線網絡標準,它基于芯片提供短距離范圍的無線跳頻通信。它注定會成為一項通用的低成本無線技術,可適用于一系列范圍廣泛的數據通信應用。藍牙標準定義了一系列安全機制,從而為近距離無線通信提供了基本的保護。它要求每個藍牙設備都要實現密鑰管理、認證以及加密等功能。此外藍牙技術所采用的跳頻數據通信方式本身也是一個防止竊聽的有效安全手段。藍牙加密過程中所用到的加密算法是E0流密碼。但是這種算法存在有一些缺點,128位密鑰長度的E0流加密在某些情況下可通過0(2^64)方式破解。所以對于大多數需要將保密放在首位來考慮的應用來說,僅僅采用藍牙提供的數據安全性是不夠的。

2藍牙標準中的安全措施

藍牙技術中,物理層數據的安全性主要是采用了跳頻擴展頻譜,由于藍牙技術采用了跳頻技術從而使得竊聽變得極困難。藍牙射頻工作在2.4Hz頻段。在北美和歐洲的大部分國家,藍牙設備工作與從2.402到2.480Hz的頻帶,整個頻帶被分為79個1MHz帶寬的子信道。FHSS依靠頻率的變化來對抗干擾。如果射頻單元在某個頻率遇到干擾,則會在下一步跳到另一頻率點時重傳受到干擾的信號,因此總的干擾可變得很低。

為了得到完整的傳輸數據,藍牙技術使用以下三種糾錯方案:1/3比例前向糾錯碼(FEC),2/3比例前向糾錯碼(FEC),數據的自動重發請求(ARQ)方案。

藍牙技術產品的認證和加密服務一般由鏈路層提供,認證采用口令-應答方式進行。在連接過程中往往需要一兩次認證。為了確保通信安全,對藍牙技術產品進行認證是十分必要的,通過認證之后,可以允許用戶自行增添可信任的藍牙技術設備,例如,用戶自己的筆記本電腦經過認證之后,能夠確保只有用戶自己的這臺筆記本電腦,才可以借助用戶自己的移動電話手機進行通信。

若對于通信有更高的安全要求,那么通信中的藍牙技術產品就不必局限于采用物理層的提供,還可以采用更高級別的傳輸層和應用層安全機制,以確保基于藍牙技術產品的通信更加安全可靠。

3藍牙技術中的加密算法

在鏈路層中,藍牙系統提供了認證、加密和密鑰管理等功能,每一個用戶都有一個標識碼(PIN),藍牙設備中所用的PIN碼的長度可以在1到16個字節之間變化。通常4個字節的PIN碼已經可以滿足一般應用,但是更高安全級別的應用將需要更長的碼字。PIN碼可以是藍牙設備提供的一個固定碼,也可以由用戶任意指定,標識碼(PIN)會被一個128位鏈路密鑰來進行單雙向認證。一旦認證完畢,鏈路層會以不同長度的密鑰來加密。如圖1。

PINPIN

認證

鏈路密鑰

鏈路密鑰

加密

加密密鑰Kc

加密密鑰Kc

申請者校驗者

圖1:藍牙中鏈路層的加密過程

藍牙技術在加密過程中所采用的加密算法如下表1。

表1:藍牙加密過程中所用的加密算法

3.1認證算法

在認證過程中,用于藍牙認證的E1認證函數來計算出一個安全認證碼或被稱為MAC(媒體訪問控制地址)。E1所采用的算法是SAFER+,SAFER+算法是參與1997年美國國家標準技術研究所(NIST)征集AES(AdvancedEncryptionStandard)的候選算法之一。SAFER+是基于現有的64位分組密碼的SAFER-SK128,因此它的安全性可以說是經過了時間的考驗。

E1函數的輸入是linkkey,AU_RAND及BD_ADDR,它的定義如下:

E1:

在藍牙技術中,認證采用口令-應答方式。驗證方要求申請者鑒別隨機數AU_RAND并返回計算結果SRES,若雙方的計算結果相等則認證成功,并保留ACO(AuthenticatedCipheringOffset)值。若某次認證失敗,則必須等待一定的時間間隔才能進行再次認證

3.2加密算法

在藍牙技術中,用戶信息可采用分組有效載荷的加密進行保護,但識別碼和分組頭不加密。有效載荷的加密采用E0流密碼來實現。E0將對每一有效載荷重新同步。流密碼系統E0由三部分組成。第一部分執行初始化(生成有效載荷字),第二部分生成密鑰流,第三部分完成加密和解密,如圖2。

有效載荷字明碼文本/密碼文本

Kc

地址

時鐘Z密碼文本/明碼文本

RAND

圖2藍牙的E0流加密

有效載荷字發生器非常簡單,它僅僅以適當序列對輸入的位進行組合,然后將它們轉移到用于密鑰流發生器的四位LFSR中。加密機采用了四個線性反饋移位寄存器(LFSR),依次為LFSR1、LFSR2、LFSR3、LFSR4,其長度分別為25,31,33,39比特。LFSR的性質:加密機把四個LFSR的輸出結果輸入到一個有限狀態機中,經有限狀態機的組合運算輸出密鑰流序列,若在初始化階段則輸出一個隨機的初始化值。加密算法使用Kc、BD_ADDR、主時鐘CLK26-1及RAND這些參數。時鐘CLK26-1按時隙遞增,在任兩次發送中,CLK26-1至少有一位是不同的,因此在每次初始化后都將產生新的密鑰流。對占用多個時隙的分組來說,CLK26-1為分組所占的第一個時隙的時鐘值。

第二部分是該密碼系統的主要部分,并也將用于初始化過程中。密鑰流取自于Massey和Rueppel流密碼發生器的方法來生成。

最后就是流加密算法的加密過程。將數據流與密碼算法生成二進制流比特進行異或運算。對于加密規則,流密碼算法用于將加密位按位模2并加到數據流上,然后通過無線接口進行傳輸。對每一分組的有效載荷的加密是單獨進行的,它發生在CRC校驗之后,FEC編碼之前。由于加密是對稱的,解密使用完全和加密相同的密鑰和相同的方法實現。

4藍牙標準中加密算法存在的問題

藍牙所采用的E0流密碼算法的本身就有一些弱點。流密碼算法主要的缺點在于若一個偽隨機序列發生錯誤便會使整個密文發生錯誤,致使在解密過程中無法還原回明文。流加密算法系統的安全完全依靠密鑰流發生器的內部機制。如果它的輸出是無窮無盡的0序列,那么密文就是明文,這樣整個系統就一文不值;如果它的輸出是一個周期性的16-位模式,那么該算法僅是一個可忽略安全性的異或運算;如果輸出的是一系列無盡的隨機序列(是真正的隨機,非偽隨機),那么就有一次一密亂碼本和非常完美的安全。實際的流密碼算法的安全性依賴于簡單的異或運算和一次一密亂碼本。密鑰流發生器產生的看似隨機的密鑰流實際上是確定的,在解密的時候能很好的將其再現。密鑰流發生器輸出的密鑰越接近于隨機,對密碼分析者來說就越困難。然而,這種隨機的密鑰流卻不容易得到。

在藍牙E0流加密中用到的LFSR易受到相關攻擊和分割解決攻擊,且用軟件實現效率非常低。在實現過程中要避免稀疏的反饋多項式,因為它們易遭到相關攻擊,但稠密的反饋多項式效率也很低。事實上LFSR算法用軟件實現并不比DES快。

以上的這些問題會讓人認為藍牙的安全體系是高度不可靠的,然而一個不可忽略的事實是:通過藍牙連接傳輸的數據一般來說并不是非常重要的。目前藍牙標準考慮到的安全技術只適用于規模較小的網絡,如果網絡結點較多,拓撲復雜(如AdHoc網絡),現有的基于點對點的密鑰分配和認證機制不能滿足需求。藍牙所提供的數據安全性措施對小型應用來說看起來已足夠了,但任何敏感數據或會產生問題的數據都不應直接通過藍牙傳輸。為了使藍牙技術應用得更廣泛,我們可采用另外更強勁的加密算法,如DES算法。

5DES解決方案

5.1DES簡介

1977年1月,美國政府采納了由IBM研制的作為非絕密信息的正式標準乘積密碼。這激勵了一大批生產廠家實現這個在保密產業中成為數據加密標準DES(dataencrytionstandard)的加密算法。此算法有一個64比特的密鑰作為參數。明文按64比特分組加密,生成64比特的密文。

由于DES是一種塊加密方法,這意味著加密過程是針對一個數據塊一個數據塊地進行的。在DES算法中,原始信息被分成64位的固定長度數據塊,然后利用56位的加密密鑰通過置換和組合方法生成64位的加密信息。解密用的密鑰與加密密鑰相同,只是解密步驟正好相反。DES傳送數據的一般形式是以代入法密碼格式按塊傳送數據。DES采用的加密方法,一次加密一位或一個字節,形成密碼流。密碼流具有自同步的特點,被傳送的密碼文本中發生錯誤和數據丟失,將只影響最終的明碼文本的一小段(64位),這稱為密碼反饋。

與藍牙流密碼算法不同,數學上可以證明分組加密算法是完全安全的。DES塊密碼是高度隨機的、非線性的,生成的加密密文與明文和密鑰的每一位都相關。DES的可用加密密鑰數量多達72x1015個。應用于每一明文信息的密鑰都是從這一巨大數量的密鑰中隨機產生的。DES算法已被廣泛采用并被認為是非常可靠的。

5.2藍牙中用DES取代E0流密碼

如圖1,在兩個藍牙設備經過認證并已生成了加密密鑰Kc后就可進行加密了。因為Kc可在8~128比特變化,而DES加密算法使用長度為56比特的密鑰加密長度為64比特的明文從而獲得64比特的密文,所以這里可取Kc的長度為56比特。用DES加密藍牙數據分組的過程如下:

a)將來自藍牙分組分割成64比特的明文段。其中的一段記為x=DIN[63:0],先通過一個固定的初始置換IP,將x的比特置換為x0。即:x0=IP(x)=L0R0,這里L0是x0的前32比特,R0是x0的后32比特。

b)進行16輪完全相同的運算,在這里是數據與密鑰相結合,例計算LiRi,。

Li=Ri-1

Ri=Lif(Ri-1,Ki)

其中Ki是來自密鑰Kc=Key[63:0]的比特的一個置換結果。而f函數是實現代替、置換及密鑰異或的函數。

c)對R16L16進行初始置換IP的逆置換IP,獲得密文y=DOUT[63:0],即y=IP(R16L16)。最后一次迭代后,左邊和右邊未交換,將R16L16作為IP的輸入,目的是使算法可同時用于加密和解密。

無論是硬件還是軟件,此DES加密方案都易實現。其中DES的硬件實現如圖3。此硬件加密方案采用低成本的可編程邏輯器件和現成可用的用于高級加密處理的智力產權(IP)產品實現。目前,大批量時只用10美元即可購買到10萬系統門的可編程邏輯器件。這些器件還允許在設計中增加其它功能,如高級錯誤糾正。因此可編程邏輯器件可大幅度降低系統級的成本。

用軟件(這里選用C語言)來實現該加密算法。為了算法實現的方便,這里刪去了初始置換和末置換。

將此加密算法嵌入藍牙協議中的基帶部分以取代E0流密碼算法,可允許藍牙技術安全地應用到范圍廣泛的安全性具有最重要地位的應用中去。這些應用包括:金融電子交易:ATM、智能卡,安全電子商務交易,安全辦公通信,安全視頻監視系統,數字機頂盒,高清晰度電視(HDTV),其它消費電子設備等領域。

另外,對藍牙加密這個過程中,可發現DES加密算法在近距離無線局域網的特定環境下存在一些問題。進而優化算法,最終可為應用于各種近距離無線網絡通信的加密算法的選擇提供有實際意義的參考依據。

6結束語

藍牙是一項將會改變我們通信方式的令人激動的新技術。然而,藍牙技術在標準化過程中都未曾完整地考慮安全問題。作為以無線信道為傳輸媒體的通信網絡,藍牙網絡相對于固定網絡更容易受到攻擊。對于數據安全性處于首要地位的應用來說,實現高水平的數據安全性是必須的。目前藍牙標準所采用的E0流密碼算法存在著很多弊端,而DES和RSA算法相對來說更安全,而且較易實現。

參考文獻

[1]金純許光辰等編著《藍牙技術》[M](北京)電子工業出版社2001年3月

[2]于躍韓永飛藍牙技術的安全性[J]《電信技術》2001年第9期

[3]Andrew《ComputerNetwork》[M]S.TanenbaunPrenticeHall1998

[4]VainioJ.,BluetoothSecurity,www.niksula.cs.hut.fi/~jiitv/bluesec.html05-25-2000

[5]Bluetooth,TheBluetoothSpecification,v.1.0B

/developer/specification/specification.asp

[6]賴溪松韓亮張真誠著《計算機密碼學及其應用》[M](北京)國防工業出版社2001年7月

[7]盧鐵城編著《信息加密技術》[M](成都)四川科學技術出版1989年10月