新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 基于TMS320C6416T的IP視頻電話加密引擎

        基于TMS320C6416T的IP視頻電話加密引擎

        作者: 時間:2010-11-05 來源:網絡 收藏

          AES算法有5種基本工作模式:ECB、CBC、OFB、CFB、CTR。考慮到數據包丟失問題,如采用反饋模式需考慮數據同步問題,因而降低了數據處理效率。而ECB模式簡單易操作,不存在數據丟失產生的通信同步問題S信令中的會話描述符SDP和音數據都沒有固定的格式,攻擊者也難以通過統計特性分析密文,因而采用ECB模式是安全易行的。

          2.1.2 數據方式

          在網絡中,和音頻數據是分類打包、分段傳輸的,因而對它們的處理也需單獨進行。目前針對數據主要有選擇性和完全加密2種方式[4]。選擇性加密利用視頻數據的數據結構,對視頻流中的部分數據(如I幀)加密,這有利于減小系統開銷,但安全性較差。而完全加密不考慮視頻數據結構,加密所有視頻碼流,雖然系統開銷較大,但安全性較高。本系統對視頻、音頻數據、SIP信令均采用完全加密方式。

          2.2 通信機制和數據格式

          2.2.1 通信機制

          DSP和IP視頻終端通過SPI總線通信,SPI作為一種串行同步通信方式,通信速率可達到4 Mb/s或者更高,適合音視頻數據傳輸。在本系統中,將DSP的多通道緩沖串行口McBSP[2]配置為SPI模式,IP視頻終端配置為主設備,DSP配置為從設備。

          采用中斷方式接收或發送數據會增加CPU的負擔。將增強型存儲器直接訪問EDMA[3]與McBSP結合使用,使得CPU加解密數據與EDMA數據接收或發送并行進行,將大大提高DSP的運行效率。具體流程為:(1)DSP通過McBSP接收待處理數據,將數據保存在指定映射的存儲器中,隨后EDMA通道搬運數據至片內L2緩存以供CPU提取并處理;(2)CPU加解密處理完成后,通過相反的路徑發送給IP視頻終端。為確保CPU數據處理和EDMA數據傳輸同步,在L2緩存開辟一對乒乓緩存(Ping-Pong Buffer),分別用于接收和發送數據。

          2.2.2 數據格式

          為了便于處理器之間的數據交互,定義通信數據格式如下:

          數據頭標志:長度為2 B,表示一個數據包的起始。

          數據類型:長度為2 B,定義0x0001為IP視頻電話終端發送的待加密數據,0x0010表示IP視頻電話終端發送的待解密數據,0x0100表示DSP回送給IP視頻電話終端的已加密數據,0x1000表示DSP回送給IP視頻電話終端的已解密數據,0x0101表示IP視頻電話終端發送的種子密鑰,0x1010表示其他控制數據。

          數據長度:長度為2 B,表示待處理數據的有效字節數。以太網幀的最大長度是1 500 B,因此不能超過這個長度。

          數據頭校驗和:長度為2 B,防止頭部因傳輸錯誤而執行誤操作。

          RTP數據載荷:小于1 500 B,表示加/解密數據、種子密鑰、控制數據等。

          2.3 軟件設計要點

          根據DSP系統架構,考慮AES算法和通信數據的特點,充分發揮DSP的數據處理能力是軟件設計的重點。

          2.3.1 AES算法優化設計

          AES的輪函數由字節變換、行位移、列混合、密鑰加4個部件組成[5]。(1)字節變換是非線性變換,獨立地對狀態的每個字節進行變換,可用代換表(S盒)的方式實現;(2)行移位是將狀態陣列的各行進行循環移位;(3)列混合使用有限域上的矩陣乘法,可以用查表操作實現;(4)密鑰加可以通過執行一個32位“異或”運算來實現。通過算法優化,可將有限域矩陣乘法和S盒簡化為查表和“異或”兩種基本運算,并充分利用DSP處理器32位總線結構特點,大大降低了算法復雜度。

          2.3.2 使用軟件流水技術

          AES是迭代分組密碼,共Nr輪迭代,一般采用C循環程序實現,循環是影響系統實時性的一個重要因素。軟件流水技術用于設置循環內指令的運行方式,使循環的多次迭代能夠并行執行。程序應該考慮合理的循環迭代次數,以保證軟件流水能夠順利進行。將循環展開可以增加及并行執行指令數,從而改進流水編排,提升循環性能。同時應該正確使用pragma指示和-ms、-mh等編譯選項。

          2.3.3 合理設置CCS編譯器選項

          使用const關鍵字定義變量可提高代碼性能和穩定性;聯合使用-pm與-o3選項可進行程序級優化并有效地消除相關性;-mt選項有利于消除存儲器相關性;這些選項都能大大提升代碼的執行速度[6]。測試表明,選擇C代碼優化選項,可使AES算法的執行速度提高近一倍。

          系統關鍵代碼如下:

          void main()

          { //初始化CSL

          CSL_init();

          //SPI配置

          McBSP_config(McBSPConfig);

          //乒乓方式EDMA配置

          EDMA_config(hEDMAPing, EDMAConfigRcv);

          EDMA_config(hEDMAPong, EDMAConfigSnd);

          //密鑰擴展



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 绥江县| 安龙县| 灵寿县| 三都| 德令哈市| 岐山县| 资阳市| 奎屯市| 兴城市| 宜宾县| 喀喇| 土默特右旗| 尼勒克县| 白河县| 涞源县| 昌江| 澄江县| 永仁县| 临朐县| 淮安市| 永德县| 烟台市| 云霄县| 康乐县| 杨浦区| 鸡泽县| 广元市| 喀喇沁旗| 阿克| 平阳县| 宜阳县| 皋兰县| 塘沽区| 吉安市| 彩票| 遂川县| 呈贡县| 临夏市| 米脂县| 灵武市| 渝北区|