淺析藍牙加密算法以及存在的問題
藍牙加密算法
藍牙加密算法為數(shù)據(jù)包中的凈荷加密。由于密鑰長度從8比特到128比特不等,信息交互雙方必須通過協(xié)商確定密鑰長度。
在藍牙技術中,用戶信息作為分組的有效載荷進行加密保護,這通過采用流密碼E0來實現(xiàn)。E0利用主節(jié)點地址、26bit的主節(jié)點實時時鐘和加密密鑰Kc作為輸入。它由三部分組成,第一部分執(zhí)行初始化(生成有效載荷字),第二部分生成密鑰流,第三部分完成加密和解密,如圖所示:

第二部分是該密碼系統(tǒng)的主要部分,并也將用于初始化過程中。密鑰流使用求和流密生成器產(chǎn)生,該流密算法由Massey和Rueppel提出,對其強度的評估也得到了很好的結(jié)果。
最后就是流加密算法的加密過程。將數(shù)據(jù)流與密碼算法生成二進制流比特進行異或運算。對于加密規(guī)則,流加密算法用于將加密位按位模2并加到數(shù)據(jù)流上,然后通過無線接口進行傳輸。對每一分組的有效載荷的加密是單獨進行的,它發(fā)生在CRC校驗之后,F(xiàn)EC編碼之前。由于加密是對稱的,解密使用完全和加密相同的密鑰和相同的方法實現(xiàn)。
藍牙加密算法的不足
藍牙所采用的E0流密碼算法主要的缺點在于若一個偽隨機序列發(fā)生錯誤便會使整個密文發(fā)生錯誤,致使在解密過程中無法還原回明文。流加密算法系統(tǒng)的安全完全依靠密鑰流發(fā)生器的內(nèi)部機制。如果它的輸出是無窮無盡的0序列,那么密文就是明文,這樣整個系統(tǒng)就一文不值;如果它的輸出是一個周期性的16位模式,那么該算法僅是一個可忽略安全性的異或運算。密鑰流發(fā)生器輸出的密鑰越接近于隨機,對密碼分析者來說就越困難。然而,這種隨機的密鑰流卻不容易得到。在藍牙E0流加密中用到的LFSR易受到相關攻擊和分割解決攻擊,且用軟件實現(xiàn)效率非常低。在實現(xiàn)過程中要避免稀疏的反饋多項式,因為它們易遭到相關攻擊,但稠密的反饋多項式效率也很低。事實上,LFSR算法用軟件實現(xiàn)并不比DES快。
上述問題會讓人認為藍牙的安全體系是高度不可靠的,然而一個不可忽略的事實是:通過藍牙連接傳輸?shù)臄?shù)據(jù)一般來說并不是非常重要的。目前藍牙標準考慮到的安全技術只適用于規(guī)模較小的網(wǎng)絡,如果網(wǎng)絡結(jié)點較多,拓撲復雜,現(xiàn)有的基于點對點的密鑰分配和認證機制不能滿足需求。藍牙所提供的數(shù)據(jù)安全性措施對小型應用來說看起來已足夠了,但任何敏感數(shù)據(jù)或會產(chǎn)生問題的數(shù)據(jù)都不應直接通過藍牙傳輸。為了使藍牙技術應用得更廣泛,所以要采用另外更強勁的藍牙加密算法。





