<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

基于TMS320C6416T的IP視頻電話(huà)加密引擎

作者: 時(shí)間:2010-11-05 來(lái)源:網(wǎng)絡(luò ) 收藏

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

  2.1.2 數據方式

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

  2.2 通信機制和數據格式

  2.2.1 通信機制

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

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

  2.2.2 數據格式

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

  數據頭標志:長(cháng)度為2 B,表示一個(gè)數據包的起始。

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

  數據長(cháng)度:長(cháng)度為2 B,表示待處理數據的有效字節數。以太網(wǎng)幀的最大長(cháng)度是1 500 B,因此不能超過(guò)這個(gè)長(cháng)度。

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

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

  2.3 軟件設計要點(diǎn)

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

  2.3.1 AES算法優(yōu)化設計

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

  2.3.2 使用軟件流水技術(shù)

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

  2.3.3 合理設置CCS編譯器選項

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

  系統關(guān)鍵代碼如下:

  void main()

  { //初始化CSL

  CSL_init();

  //SPI配置

  McBSP_config(McBSPConfig);

  //乒乓方式EDMA配置

  EDMA_config(hEDMAPing, EDMAConfigRcv);

  EDMA_config(hEDMAPong, EDMAConfigSnd);

  //密鑰擴展



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>