洪艷偉



摘要:針對目前網絡視頻傳輸過程靠單一方案實施加密處理且都是依靠計算機平臺的問題,設計了面向網絡視頻環境的采用綜合加密方案的高安全性嵌入式路由器。利用FPGA開發系統與uclinux將Qi超混沌、Logistic映射、Baker映射和Cat映射的算法應用于視頻加密與解密,綜合采用了在線加密、離線加密、隨機加密以及多重加密的方式使數據的安全性更強;創建分包協議解決了uclinux TCP/IP棧小的缺陷以及網絡丟包問題。經過長時間測試,系統能夠穩定運行且具有較高的安全性。系統所采用的處理器為87MHz,內存為10M,以較低的硬件成本實現了復雜的加密算法,性價比高,且具有很好的可移植性,平臺的應用前景廣闊。
關鍵詞:FPGA;Uclinux;混沌;加密;網絡視頻
隨著網絡化程度的日漸提高,在網絡環境中,通訊與資源共享使得人們的生產生活變得更為便捷、高效。視頻作為信息的載體,越來越受到人們的關注,然而,網絡視頻的安全性也成為一個亟待解決的問題,在網絡視頻環境中,因此設計具有高安全性能的嵌入式路由器具有重要的現實意義。
針對目前狀況,學者開始嘗試將對初態非常敏感的混沌系統應用到加密領域,發揮混沌系統的諸多優勢來保證交換數據信息的安全性和完整性,而且已獲得了實質性進展。文獻中就混沌理論應用于信息產品安全性保護領域的可行性做了詳細闡述,并說明了操作要求和方法步驟;文獻證實了Baker映射用于圖像加密的可行性與較高的安全性。文獻和文獻針對不同種類的混沌方程所取得的安全效果做了詳細對比,對各種保密方案進行了權衡。其中,文獻中的研究對象僅限于圖像;文獻是對影像視頻進行了實驗和分析,不足之處是僅僅使用單一方案實施加密處理,而且都是停留在計算機平臺上。
1設計方案
圖1為嵌入式路由器的典型應用。工作在以太網環境中,通訊雙方采用客戶端服務器模型。
從使用角度講,該路由器與普通路由器的使用方法一致:它擁有一個局域網接口和一個廣域網接口,只要將兩個接口的網絡參數設置在不同網段即可正常工作。
從功能角度來講,嵌入式路由器在實現數據轉發功能的前提下,還需要應對網絡視頻大數據量的特點,同時實現加密與解密功能。工作流程為:服務器將視頻數據壓縮后傳遞到網絡中,服務器端的嵌入式路由器得到數據之后利用加密算法將數據流加密之后再轉發到以太網:在客戶端,數據包首先被客戶端的嵌入式路由器獲得并進行相應的解密,這樣客戶端將得到的數據解壓后便可正常播放。
2平臺搭建
2.1 FPGA硬件系統設計
與傳統嵌入式開發相比,FPGA開發的區別之一在于芯片內部硬件系統的配置。Xilinx提供了許多IP核供用戶使用,這些IP核可以看作是硬件控制器,或者是為完成某一特定功能而專門設計的電路系統,FPGA的CPU需要通過這些IP核來實現對外部電路的控制。
系統使用32位處理器MicroBlaze,處理器連接兩個緩存控制器LMB BRAM Cntlr分別用作數據和指令緩存;系統總線使用Xilinx提供的PLB總線,PLB總線上掛接各個外設。對外設進行一下說明:MDMIP核將作為MicroBlaze與上位機的調試接口;MPMC核稱為內存控制器,將用來外接系統內存;DART核為串口控制IP核,負責外接串口設備,該設備在嵌入式開發中將作為系統的標準輸入輸出設備使用;Timer為定時器IP核,將作為uclinux的系統時鐘;GPIO核是一種總線控制IP核,負責與大多數的10設備連接,在本設計中,GPIO總線上將掛接指示燈以表示系統的工作狀態;兩個Ethernetlite核將負責對網卡的控制,Ethernetlite核內集成了MAC層協議。
3軟件開發
3.1通信程序設計
在成功移植uclinux的基礎上,利用交叉編譯環境編寫目標板通信程序,程序流程如圖2所示。
初始化網絡接口A和B:主要是對網卡的IP地址,子網掩碼等網絡信息的設置。在偵聽網卡過程中,當接到B口的握手信息時,便將一個標志位FLAG置位,表示將開始路由功能。當從端口讀到數據時,若此時FLAG已經置位,就加密或解密該數據包并轉發出去;如果標志位沒有置位則直接丟棄該包。當從A口得到結束信息時,復位FLAG標志位以結束路由功能。
3.2分包協議設計
分包協議主要是針對網絡的MTU問題而設計的:一般以太網的MTU值為1500,petalinux內部也設置自己的MTU為1500,但是petalinuxr包含的TCP/IP協議裝置不具備分片能力,從而導致petalinux對長度超過1500的信息實施轉發。針對這一問題,模仿分片協議的基本程序研制出分包協議用于功能調節。
分包協議一般在客戶端軟件中或服務器內發揮作用。當系統發送容量較大的信息時,需要使用圖5所示的分片形式把信息拆分成長度不大于1500的信息片,然后才能發送成功。數據包分片格式中,major部分表示需發送的數據的ID信息,minor部分的包含分片次序與其數量的信息。信息發送完成之后,終端將按照major與minor部分包含的信息重新組合成與原型相同的數據包,如表l所示。
另外客戶端還需要處理丟片的問題:由于種種原因丟失了部分分片的數據包必須被拋棄。對此,在客戶端建立一個如圖2所示大小為100*1500的存儲池,利用一個Point指針指向當前的分片。當收到一個新分片時,若不是最后一片則直接放到Point所指位置并將Point加1;否則遍歷存儲池找到該包的所有分片,若分片齊全則重組數據包,否則直接丟棄。經過這樣的設計,至多會在收到100個分片之后將丟失分片的數據包覆蓋。
此項協議內容的構建對嵌入式路由器來說具有公開性,它的正常使用對系統條件的要求很低,這將對系統整體功能的增強打下了基礎。由實驗效果可知:如果該協議建立完整并且功能正常,對應的數據終端可以經由嵌入式路由器接接受視頻信息而且能夠實現正常的放映。
4加密與解密算法實現
4.1加密與解密算法
混沌的很多基木特性如對初始條件和控制參量的敏感性,或正的Lyapunov指數,混合性,遍歷性,確定性及長期不可預測性,都可以與傳統密碼學中的基本特性混淆和擴散聯系起來,利用混沌系統加密視頻已成為一個熱點。
在進行加密操作時,它使用的算法原理是:在Qi系統平臺內,將logistic映射、Baker映射和cat映射結合起來發揮功能。置亂原理是指不改變數據的值,而是改變各值在幀內的位置。以二維離散Baker映射為例,對于N×N的矩形數據塊,ni為密鑰,且ni能被N整除,Baker映射的一般性公式:
對密鑰(n1,n2,…,nk),有:
4.2在線加密與離線加密
在線加密是指針對每一個分片動態生成一個密鑰,密鑰隨分片一同發送,加密與解密端都需要對每一個分片實時計算一組混沌序列。密鑰的不確定性在一定程度上提高了系統安全性。
然而在線方式的大量計算往往是嵌入式系統難以承受的,一個折中的方案是適當減少對每一分片的加密長度即對視頻數據進行部分加密。實驗表明對一個約為1300字節的分片,加密500字節便可獲得非常滿意的效果,同時也可保證嵌入式系統有效運行。表2中給出了在線部分加密方式中Cat映射和Baker映射對嵌入式系統CPU資源的占用情況(由于算法均原址加密,內存消耗很少,故重點考慮CPU的效率):表明在現有平臺的資源環境下可以順利實現基于數據置亂的加密解密算法。
在離線加密中,密鑰是固定的,在程序初始化階段即計算出所需的混沌序列并加以保存,以后的加密解密工作僅以查表方式獲得混沌序列值。離線方式徹底避免了混沌系統大量的計算,是在安全性與效率之間的一個折中。而且超混沌方程迭代過程中需對每一個值解一次龍格庫塔方程,計算量更大,因此離線方式對超混沌方程尤為適用。
表3給出了logistic映射和Qi超混沌分別在在線加密與離線加密方式卜的嵌入式路由器CPU消耗情況對比。
在離線加密方式下,基于數據混淆的加密算法對CPU的消耗有非常明顯的下降,而在在線方下式,在現有平臺上這2種加密算法幾乎是不可實現的。
綜合以上,此設計對Baker映射、Cat映射采用在線方式,對Logistic映射和Qi超混沌方程采用離線方式。
當采用并進行二次加密的方式時,系統內的在線與離線加密同時存在,其安全和穩定性大大增強。表4所示不同組合方式下,嵌入式系統CPU占用情況。
在各種組合方式下,CPU資源最大消耗也僅在百分之五十左右,加之uclinux內核經過裁剪之后,多余的系統負擔已經很少,因而完全能夠承擔雙重加密與解密工作,實驗證明在雙重加密解密方式下,可得到流暢的視頻效果。
6結語
針對于網絡視頻的傳輸,文章在充分考慮網絡安全性的情況下,實現了對嵌入式網絡路由器的設計。在使用上,與傳統的路由器完全一致,免去了一般用戶再學習的麻煩。提出了在線加密、離線加密、隨機加密以及多重加密方法,使得系統的安全性得到提高;利用較低頻率的處理器(87MhzMicroBlaze處理器)與較少的內存容量(10M)實現了各種復雜的混沌算法,具有較高的性價比;基于uclinux的設計使系統具有良好的可移植性。通過在局域網內對系統進行測試,結果顯示,該系統可以穩定累積運行48小時,具有較高的可靠性。