《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > FPGA實現(xiàn)安全可靠的藍牙通信
FPGA實現(xiàn)安全可靠的藍牙通信
摘要: 藍牙技術注定會成為一項通用的低成本無線技術,,可適用于一系列范圍廣泛的數(shù)據(jù)通信應用。但仍有兩個主要方面需要進一步的考慮,,即有關藍牙通信中的數(shù)據(jù)安全性和數(shù)據(jù)完整性的問題,。這兩個方面會限制藍牙技術的適用范圍。在設計無線產品時,,通過采用可編程邏輯,,可以使藍牙技術同時滿足數(shù)據(jù)安全性和完整性的要求。
關鍵詞: FPGA 藍牙 通信
Abstract:
Key words :

  藍牙技術注定會成為一項通用的低成本無線技術,,可適用于一系列范圍廣泛的數(shù)據(jù)通信應用。但仍有兩個主要方面需要進一步的考慮,,即有關藍牙通信中的數(shù)據(jù)安全性和數(shù)據(jù)完整性的問題,。這兩個方面會限制藍牙技術的適用范圍,。在設計無線產品時,通過采用可編程邏輯,,可以使藍牙技術同時滿足數(shù)據(jù)安全性和完整性的要求。

  藍牙數(shù)據(jù)安全性 

  藍牙標準定義了一系列安全機制,,要求每個藍牙設備都要實現(xiàn)密鑰管理,、認證以及加密等功能,從而為近距離無線通信提供基本的保護,。此外,,藍牙技術所采用的跳頻通信方式本身也是一個防止竊聽的有效安全手段,。 

  密鑰管理 

  藍牙設備在高層軟件中采用幾種不同的密鑰來保證數(shù)據(jù)的安全傳輸,。 

  加密 

  藍牙設備中采用加密的方法來保證連接的保密性,。但在數(shù)據(jù)加密之前,需要存在一條經過認證的已建立連接,。藍牙加密采用8位至128位的密鑰對藍牙分組中的數(shù)據(jù)載荷進行加密,,但不對藍牙接入碼和分組頭進行加密,。載荷加密的具體細節(jié)依賴于所需要的加密強度以及產品最終應用國家的地區(qū)性法規(guī)要求,。 

  
       藍牙系統(tǒng)采用稱為E0的序列加密算法對數(shù)據(jù)進行加密,。對每一數(shù)據(jù)載荷(payload)E0算法都進行重新同步,。E0序列加密包含三個部分: 
  
      ●初始化部分,生成載荷密鑰,;  

 

  ●密鑰流比特生成器 ,; 

  ●加密與解密硬件電路。 

  有三種加密模式: 

  ● 加密模式1:不對任何數(shù)據(jù)進行加密,; 

  ● 加密模式2:點對多點(廣播)數(shù)據(jù)流不加密,點對點數(shù)據(jù)流進行加密,; 

  ● 加密模式3:所有數(shù)據(jù)流均進行加密,。 

  物理層數(shù)據(jù)安全性-跳頻擴展頻譜 

  除了藍牙標準所采取的其它安全手段以外,藍牙通信所采取的跳頻通信這一機制也使竊聽變得極困難,。 
  
       如前所述,,藍牙射頻工作在2.4GHz頻段。在北美和歐洲的大部分,,藍牙設備工作于從2.402至2.480GHz的頻帶,,整個頻帶被分成 79個1MHz帶寬的子信道,。在跳頻通信中,,數(shù)據(jù)信號被窄帶載波信號調制,而這些窄帶載波信號則做為時間的函數(shù)不斷從一個頻率跳到另一個頻率,。藍牙標準采用的是每秒跳躍1600次的跳頻序列,。 
  
       收發(fā)雙方都知道的跳頻碼決定了射頻載波的頻率以及跳頻的順序,。為正確地進行信號接收,接收器必須設置成與發(fā)送方一樣的跳頻碼,,并在恰當?shù)臅r間和正確的頻率點監(jiān)聽載波信號,。只有正確同步時,才能維持一個邏輯信道,。其它接收器看到的FHSS信號僅是持續(xù)時間極短的脈沖噪聲。 
  
      FHSS依靠頻率的變化來對抗干擾,。如果射頻單元在某個頻率遇到干擾,,則會在下一步跳到另一頻率點時重傳受到干擾的信號。因此總的干擾可變得很低,,位錯誤很少或幾乎沒有,。 

  藍牙數(shù)據(jù)完整性 

  前向糾錯(FEC) 

  藍牙采用的錯誤校正有三種類型: 

  ●1/3編碼率FEC 

  ●2/3 編碼率 FEC 

  ●數(shù)據(jù)的自動重發(fā)請求(ARQ)方案 

  FEC(前向糾錯)的目的是為了減少數(shù)據(jù)載荷重發(fā)的次數(shù)。但是,,采用FEC的缺點是會明顯地降低可達到的實際數(shù)據(jù)傳輸速率,。  

  數(shù)據(jù)白化 

  所有的分組頭和載荷信息在發(fā)送前都要利用數(shù)據(jù)白化位進行白化處理。這主要是為了避免在傳輸過程中出現(xiàn)過長的連續(xù)0或1的位流模式,?;鶐幚砥餍枰獜慕邮盏降哪M數(shù)據(jù)信號中判斷數(shù)據(jù)是0還是1,但過長的連續(xù)0或1位流會造成問題,。因為在接收到的模擬數(shù)據(jù)信號中并不存在象直流信號中那樣的參考點,,因此必須依靠接收到的最后幾個傳輸信號進行校正。任何連續(xù)的0或1的長序列位流串都可能導致校正失敗,。因此需要采用數(shù)據(jù)白化技術對信號進行擾碼處理,,以大大降低出現(xiàn)長序列0或1位流串的可能性。

       用于高級數(shù)據(jù)安全可編程解決方案

  對于大多數(shù)需要將保密放在首位來考慮的應用來說,,藍牙所提供的數(shù)據(jù)安全性是不夠的,。總的來說,,就藍牙安全性來說,,還存在一些問題需要解決。藍牙所提供的數(shù)據(jù)安全性措施對小型應用來說看起來已足夠了,,但任何敏感數(shù)據(jù)或會產生問題的數(shù)據(jù)都不應直接通過藍牙傳輸,。例如,藍牙所采用的加密方案本身就有某些弱點,。128位密鑰長度的E0序列加密在某些情況下可通過O(2^64)方式破解,。 
  
       設想一種可能的情況,攻擊者設法獲取了用來保證兩個設備間通信的加密密鑰,,然后即可竊聽這兩個設備間互相發(fā)送的消息,。而且,,攻擊者還可以冒充其中的某個設備插入錯誤的信息。朗訊公司認為,,避免這一問題的一個方法是用戶采用較長的個人識別碼(PIN碼)而不是用短的PIN碼,,從而增加攻擊者獲取加密密鑰的難度。而這又意味著要人工輸入PIN號碼,。這實在令人覺得非常不方便,,因為每次建立安全連接都需要輸入PIN碼。 
  
      克服這種安全性問題的另一個方法是采用更強健的加密算法,,如數(shù)字加密標準(DES),,甚至三次DES來代替E0序列加密算法。DES是一種塊加密方法,,這意味著加密過程是針對一個數(shù)據(jù)塊一個數(shù)據(jù)塊地進行的,。在DES算法中,原始信息被分成64位的固定長度數(shù)據(jù)塊,,然后利用56位的加密密鑰通過置換和組合方法生成64位的加密信息,。圖2示出的是DES加密處理的框圖。 
  
       與藍牙序列加密算法不同,,數(shù)學上可以證明塊加密算法是完全安全的,。DES塊密碼是高度隨機的、非線性的,,生成的加密密文與明文和密鑰的每一位都相關,。DES的可用加密密鑰數(shù)量多達72 x 1015個。應用于每一

 

明文信息的密鑰都是從這一巨大數(shù)量的密鑰中隨機產生的,。DES算法已被廣泛采用并被認為是非??煽康模椰F(xiàn)在出現(xiàn)了一種更為安全的DES算法變種--稱為三次DES(TDES),,它采用不同的密鑰對信息連續(xù)進行三次DES加密處理,。  
   
       所有這些加密算法都可以采用低成本的可編程邏輯器件和現(xiàn)成可用的用于高級加密處理的智力產權(IP)產品實現(xiàn)。如圖2所示的DES功能,,僅需要2美元成本的芯片邏輯資源即可實現(xiàn),。目前,大批量時只用10美元即可購買到10萬系統(tǒng)門的可編程邏輯器件,,而且是現(xiàn)貨,,立即可以使用。這些器件還允許在設計中增加其它功能,,如高級錯誤糾正,。因此可編程邏輯器件可大幅度降低系統(tǒng)級的成本。 
  
       基于軟件的加密解決方案具有極好的靈活性,,然而性能較低,。另一方面,,基于硬件的加密解決方案性能很高,但一旦設計完成后靈活性很差,。而基于可編程邏輯的加密解決方案則可同時提供前述兩種方案的優(yōu)點,,即具有很高水平的靈活性也具有很高的性能。 
  
       采用一個更強鍵的加密算法允許藍牙技術安全地應用到范圍廣泛的安全性具有最重要地位的應用中去,。這些應用包括:金融電子交易:ATM,、智能卡;安全電子商務交易,;安全辦公通信,;安全視頻監(jiān)視系統(tǒng);數(shù)字機頂盒,;高清晰度電視(HDTV)及其它消費電子設備。 

  用于高級數(shù)據(jù)完整性可編程解決方案 

  藍牙標準定義了可有效防止隨機錯誤的方法,,即采用數(shù)據(jù)白化和錯誤校驗方法進行數(shù)據(jù)傳輸,。然而,從理論上仍然存在這樣的特定數(shù)據(jù)流,,它可能會持續(xù)地造成藍牙傳輸錯誤,,雖然這種情況在通常的藍牙傳輸中很難碰到。 
  
       而且在更為惡劣的環(huán)境,,如工業(yè)環(huán)境,、辦公大樓、機場和城市公共交通廠所等,,仍然存在傳輸過程中產生差錯的危險,。在這些地方,來自其它多種藍牙設備,、無線網(wǎng)絡,、手機系統(tǒng)或其它工作在相同頻段的電子設備的噪聲和干擾都會導致問題。針對這些情況,,可以再次采用可編程邏輯和高級糾錯IP來實現(xiàn)無錯通信,。對惡劣的通信環(huán)境,可以采用一種更為強大的前向糾錯技術,,如Turbo卷積編碼,。 
  
       urbo編碼是一種高級前向糾錯算法,它是第三代無線通信系統(tǒng)(如WCDMA中實現(xiàn)的)的標準糾錯算法,。Turbo編碼的原理是由編碼器生成包含兩上獨立編碼比特序列和一個未編碼比特序列的數(shù)據(jù)流,。由于經過交織處理,兩組校驗比特序列是弱相關的,。在Turbo解碼器中,,兩組校驗比特序列分別利用稱為外部信息的軟判決輸出進行解碼,。Turbo解碼的效率來自一系列譯碼循環(huán)過程中對外部信息的共享。外部信息從一個校驗解碼步驟傳遞到另一個,,從一個循環(huán)傳遞到另一個,。已經有此類Turbo卷積碼的現(xiàn)成IP可用,并且可容易地采用低成本可編程邏輯實現(xiàn),。這一解決方案可以在惡劣和容易出錯的環(huán)境中保證藍牙數(shù)據(jù)完整性,。   

  藍牙應用中的可編程邏輯解決方案

  目前,實現(xiàn)這一美好前景所面臨的挑戰(zhàn)集中于如何將藍牙應用到下一代產品中,。這可能是一個困難的任務,,特別是當面對現(xiàn)有的產品結構時。如何集成藍牙子系統(tǒng),?如何最小化軟件開發(fā)開銷和對系統(tǒng)的影響,?如何創(chuàng)造針對特定應用的設備配置? 
  
       可編程邏輯的一個巨大優(yōu)點是可以根據(jù)特殊的要求調整系統(tǒng)配置,。例如,,目前提供的藍牙器件最大性能僅721Kbps,并且僅能同時支持幾個并發(fā)的網(wǎng)絡(微微網(wǎng)),。對公共廠所的接入點(如機場休息室或企業(yè)會議室等),,可能需要匯接大量的此類設備,以支持大量用戶的高帶寬連接,。 
  
       可編程邏輯可以許多方式為設計提供靈活性,,無論是連接一個不同的射頻部分到所選擇的基帶控制器,還是象上面的例子一樣集成更多的用戶接口外設,,或如圖3那樣實現(xiàn)數(shù)據(jù)安全性和完整性等增值功能,。在所有情況下,您都會發(fā)現(xiàn)硬件設計會更快,,并且可以多次進行設計修正,,從而保證系統(tǒng)可以在更短的時間內達到正常工作,而所有這一切都沒有采用ASIC時的NRE費用,。 

 

 
此內容為AET網(wǎng)站原創(chuàng),,未經授權禁止轉載。