基于DES加密算法的藍牙技術(shù)如何設(shè)計

藍牙技術(shù)是一項將會改變我們通信方式的令人激動的新技術(shù),作為以無線信道為傳輸媒體的通信網(wǎng)絡(luò),藍牙網(wǎng)絡(luò)相對于固定網(wǎng)絡(luò)更容易受到攻擊,對于數(shù)據(jù)安全性處于首要地位的應(yīng)用來說,實現(xiàn)高水平的數(shù)據(jù)安全性是必須的,目前藍牙標準所采用的EO流加密算法存在著很多弊端,為了使藍牙技術(shù)應(yīng)用得更加廣泛,我們可通過增大線性反饋移位寄存器LFSR的周期,改進流密碼的算法或采用分組密碼等其它較適合的算法來提高藍牙系統(tǒng)的通信安全性,使之滿足藍牙技術(shù)使用要求。

一、藍牙技術(shù)標準中采用的EO流加密算法

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

有效載荷字發(fā)生器非常簡單,它僅僅以適當序列對輸入的位進行組合,然后將它們轉(zhuǎn)移到用于字流發(fā)生器的四位LFSR中,第二部分是該密碼系統(tǒng)的主要部分,并也將用于初始化過程中,字流位取自于M as sey和Rueppel流密碼發(fā)生器的方法來生成,該方法已通過全面論證,其性能優(yōu)異,盡管組合流密碼發(fā)生器在抗相干攻擊方面存在缺陷,但采用頻繁同步的方法可瓦解相干攻擊,最后就是流加密算法的加密過程。將數(shù)據(jù)流與密碼算法生成二進制流比特Kcipher進行異或運算,對于加密規(guī)則,流密碼算法用于將加密位按位模2加到數(shù)據(jù)流上,然后通過無線接口進行傳輸,對每一分組的有效載荷的加密是單獨進行的,加密發(fā)生在CRC校驗之后,F(xiàn)EC編碼之前,由于加密是對稱的,解密使用完全和加密相同的密鑰和相同的方法實現(xiàn)。

二、藍牙標準中采用的加密算法存在的問題

1、EO流密碼算法的固有局限性

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

2、線性反饋寄存器LFSR的資源能力有限

藍牙技術(shù)標準中采用的加密算法也有些脆弱,它的EO流加密器雖然采用了128比特的密鑰,在某些情況其破譯復雜度僅為O。EO流加密的密鑰流生成器有4個LFSR組成,如果密鑰流產(chǎn)生器中某個LFSR(共有4個LFSR)產(chǎn)生的序列周期比密鑰短,則存在分別征服破譯攻擊(Divid and onquer)的威脅,而且LFSR的軟件實現(xiàn)效率非常低,在實現(xiàn)過程中要避免稀疏的反饋多項式,因為它們易遭到相關(guān)攻擊,但稠密的反饋多項式效率也很低,事實上LFSR算法用軟件實現(xiàn)并不比DES快。

3、PIN的低可信度

藍牙技術(shù)中使用不規(guī)范的4位數(shù)字PIN碼來和另外的一個變量來產(chǎn)生鏈路密鑰和加密密鑰,實際上4位數(shù)字PIN碼是唯一的真實密鑰產(chǎn)生變量,產(chǎn)生唯一的一個密鑰(一個隨機的數(shù)字)在空中傳輸.創(chuàng)建鏈路密鑰的過程中,入侵者截取第一次通信過程中的通信數(shù)據(jù)分組,為了推導出各種相關(guān)參數(shù)包括鏈路密鑰,對PIN嘗試強力攻擊(Brut e-force Attack)。這里的強力攻擊就是窮舉密鑰搜索攻擊,如果PIN是k位,那么在唯密文攻擊下,攻擊者搜索2k次就可以搜索到PIN的值了。所以PIN碼的可信度較低,4位的PIN碼僅有10000種可能性,一個解決的方法是選擇使用16字節(jié)的PIN碼,或者使用公開密鑰系統(tǒng),若采用較長的PIN碼可增加攻擊者獲取加密密鑰的難度,但這實在讓人覺得非常不方便,因為每次建立安全連接都需要輸入PIN碼。

4、非鏈路密鑰欺騙的高可能性

伴隨著鏈路密鑰的使用產(chǎn)生了新的問題.認證和加密是建立在鏈路密鑰的基礎(chǔ)上的,所有其它在這個連接中使用的信息通常情況下是公開的,然而,這會導致以下幾個問題:

(1)設(shè)設(shè)備A和B使用了設(shè)備A的密鑰作為鏈路密鑰。

(2)稍后或者與之同時,設(shè)備C可能與設(shè)備A通信并使用了A的密鑰作為他們的鏈路密鑰。

(3)設(shè)備B可以使用設(shè)備A的鏈路密鑰來解密設(shè)備A和設(shè)備C之間的通信信息。

正如以上所論述的,獲得設(shè)備A密鑰的設(shè)備B可以使用這個密鑰配合一個偽裝的BD_ ADDR來計算加密密鑰從而達到監(jiān)聽設(shè)備A與其他設(shè)備通信的效果,并且設(shè)備B可以偽裝為設(shè)備C通過設(shè)備A的認證,也可以偽裝為設(shè)備A通過設(shè)備C的認證。

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

三、基于DES加密算法的藍牙技術(shù)如何設(shè)計

1、DES加密算法

DES加密算法是一種使用密鑰加密的塊密碼,1976年被美國聯(lián)邦政府的國家標準局確定為聯(lián)邦資料處理標準(FIPS),隨后在國際上廣泛流傳開來。它基于使用56位密鑰的對稱算法。這個算法因為包含一些機密設(shè)計元素,相對短的密鑰長度以及被懷疑內(nèi)含美國國家安全局(NSA)的后門而在開始時是有爭議的,因此DES因此受到了強烈的學院派式的審查,并以此推動了現(xiàn)代的塊密碼及其密碼分析的發(fā)展。

分組加密算法DES算法綜合運用了置換、代替。代數(shù)多種密碼技術(shù),把信息分成64位大小的塊,使用56位密鑰,迭代輪數(shù)為16輪。此算法有一個64比特的密鑰作為參數(shù),在DES算法中,將64位的初始密鑰中的8個奇偶校驗位剔除掉而留下真正的56位初始密鑰。原始信息被分成64位的固定長度數(shù)據(jù)塊,然后利用56位的加密密鑰通過置換和組合方法生成64位的加密信息。解密用的密鑰與加密密鑰相同,只是解密步驟正好相反。DES采用的加密方法,一次加密一位或一個字節(jié),形成密碼流,密碼流具有自同步的特點。

與藍牙流密碼算法不同,數(shù)學上可以證明分組加密算法是完全安全的,DES的可用加密密鑰數(shù)量多達72x1015個。應(yīng)用于每一明文信息的密鑰都是從這一巨大數(shù)量的密鑰中隨機產(chǎn)生的,DES算法已被廣泛采用并被認為是非??煽康模⑶褼ES至今仍被公認是較安全的,所以研究在藍牙技術(shù)中采用DES加密算法來進行加密,是一件有意義的工作。

2、基于DES加密算法的藍牙技術(shù)如何設(shè)計

(1)適用于藍牙技術(shù)的DES算法描述

經(jīng)過對標準的DES算法的分析理解研究,我們設(shè)計了一個適用于藍牙技術(shù)的加密算法(以下簡稱BT_ DES),描述如下,作為進一步分析,仿真和具體實現(xiàn)的基礎(chǔ)。

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

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

2)進行16輪完全相同的運算,在這里是數(shù)據(jù)與密鑰相結(jié)合,例,計算LiRi,l≤i≤16 - Li= Ri-1=Li@f(Ri-l,Ki)其中,Ki是密鑰Kc=Key[63:0]的比特的一個置換結(jié)果;f函數(shù)是實現(xiàn)代替、置換及密鑰異或的函數(shù)。

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

(2)對BT-DES的軟件仿真

用軟件(用C++語言)實現(xiàn)該BT_DES加密算法:

1)各項參數(shù)的初始化。

2)選擇是進行加密或解密。

3)輸入外部密鑰,即藍牙認證過程完成后生成的加密密鑰Kc。

4)如果是加密,就調(diào)用des_key (&dc.key)子程序來生成加密子密鑰。

5)如果是解密,就調(diào)用des_key (&dc.key)子程序來生成解密子密鑰。

6)選擇合適的工作方式。

7)用des_enc (&dc,cp,1)子程序來完成加密。

用des_ dec(&dc,cp,1)子程序來完成解密。

(3)實現(xiàn)BT_DES算法的硬件模塊結(jié)構(gòu)

可用硬件描述語言對電路進行設(shè)計或描述,然后用可編程器件對電路進行硬件實現(xiàn),這是現(xiàn)在一種實用的電路設(shè)計方法。電路由初始變換電路IP、多路選擇電路、膨脹算法E處理電路、S盒數(shù)據(jù)轉(zhuǎn)換電路、P變換電路L寄存器、R寄存器、逆變換電路IP-1子密鑰生成電路及狀態(tài)機控制電路等構(gòu)成。

初始變換電路IP是一個64輸入、64輸出的數(shù)據(jù)置換電路,該電路只是完成信號在不同輸入輸出之間的切換,不占用 任何觸發(fā)器、門陣列資源,只占用布線資源l同理,膨脹算法E處理電路、P變換電路、逆變換電路IP-I也不占用任何觸發(fā)器、門陣列資源;多路選擇器L-M和R-M是兩個多位二選一數(shù)據(jù)選擇器,數(shù)據(jù)位寬32bit.選擇輸出結(jié)果受狀態(tài)機控制,分別為輸入信號和反饋信號fL寄存器、R寄存器是兩個32bit寬的寄存器,時鐘為外部CLK信號;狀態(tài)機是整個系統(tǒng)的控制中心,其核心是一個帶清除端的四位二進制可逆計數(shù)器,電路的16個狀態(tài)對應(yīng)BT_DES的16步迭代運算。

四、BT_EO與BT_DES加密算法的比較

通過對藍牙技術(shù)標準中采用的加密算法BT_EO及BT_DES的仿真,可以看出同BT_ EO相比較。BT_ DES在計算復雜度、速度等方面具有很大的優(yōu)勢,具體如下:

(1) BT_EO屬流加密,BT_DES屬分組加密算法;

(2) BT_DES的工作速度快、計算量小。使用BT_ DES每64位的明文加密算法僅執(zhí)行一次而BT-EO加密n位明文要調(diào)用n次加密函數(shù);

(3) BT-DES比BT_EO的計算復雜度要低,它加密沒有用到LFSR;

(4) BT_EO用軟件實現(xiàn)的效率較低,為了加密一個DES執(zhí)行一次迭代就能加密的數(shù)據(jù),用LFSR不得不重復64次;

(5)用BT-DES加密算法可以解決藍牙加密原算法中的地址欺騙問題。

小知識之藍牙技術(shù)

藍牙,是一種支持設(shè)備短距離通信(一般10m內(nèi))的無線電技術(shù)。能在包括移動電話、PDA、無線耳機、筆記本電腦、相關(guān)外設(shè)等之間進行無線信息交換。利用“藍牙”技術(shù),能夠有效地簡化移動通信終端設(shè)備之間的通信,也能夠簡化設(shè)備與因特網(wǎng)Internet之間的通信,從而數(shù)據(jù)傳輸變得更加迅速高效。藍牙采用分散式網(wǎng)絡(luò)結(jié)構(gòu)以及快跳頻和短包技術(shù),支持點對點及點對多點通信,工作在全球通用的2.4GHz ISM(即工業(yè)、科學、醫(yī)學)頻段。其數(shù)據(jù)速率為1Mbps。采用時分雙工傳輸方案實現(xiàn)全雙工傳輸。