<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 設(shè)計(jì)應(yīng)用 > AES算法在PVR機(jī)頂盒中的應(yīng)用研究

          AES算法在PVR機(jī)頂盒中的應(yīng)用研究

          作者: 時(shí)間:2011-09-27 來(lái)源:網(wǎng)絡(luò) 收藏
          2.2 解密變換

          解密變換是加密變換的逆變換,它們結(jié)構(gòu)類似,只需將操作逆序進(jìn)行。操作SubBytes,ShiftRows和Mixcolumns均需使用它們的逆操作InvSubBytes,InvShiftRows和InvMixcolumns代替,而操作AddRounkey的逆操作就是其本身。

          解密變換的第一步只需進(jìn)行AddRounkey,Inv-ShiftRows和InvSubBytes變換得到下一級(jí)輸入。最后一輪僅需AddRounkey即可得到明文,完成解密。中間的解密操作重復(fù)以下步驟:

          (1)InvGetNewEncrypt:生成新的解密密鑰;
          (2)AddRounkey:將該輪的密文同該輪的密鑰相異或;
          (3)InvMixcolumns:逆列變換;
          (4)InvShiftRows:逆行移位變換;
          (5)InvSubBytes:逆S-盒變換。

          是一個(gè)非對(duì)稱密碼體制,所以盡管解密與加密結(jié)構(gòu)相近,但是它的解密過(guò)程要比加密過(guò)程復(fù)雜和費(fèi)時(shí)。主要原因在于InvMixcolumns變換中運(yùn)算的固定多項(xiàng)式變?yōu)镃(x)=0Bx3+0Dx2+09x+0E。同樣將逆列變換改進(jìn)為簡(jiǎn)單的移位和異或操作。設(shè)1個(gè)字節(jié)為(b7b6b5b4b3b2b1b0),則:

          本文引用地址:http://www.ex-cimer.com/article/155672.htm


          3 功能介紹及內(nèi)容保護(hù)關(guān)鍵技術(shù)

          具有功能的除具有收看數(shù)字電視等的基本功能外,還具有增強(qiáng)的手動(dòng)錄放像功能、時(shí)移播放、智能錄像、邊看邊錄、畫(huà)中畫(huà)等新功能,是數(shù)字電視新的發(fā)展趨勢(shì)。

          本文采用ST公司的單片信源解碼芯片STi7109實(shí)現(xiàn)高清晰度數(shù)字電視解碼,其內(nèi)嵌的ATAPI接口實(shí)現(xiàn)了與SATA硬盤(pán)的無(wú)縫連接,為實(shí)現(xiàn)功能提供了條件。PVR功能的原理框圖如圖2所示。信號(hào)下TUNER經(jīng)過(guò)QAM解調(diào)后,以TS流的形式傳人STi7109,通過(guò)PID濾波器選出指定的一路節(jié)目。由于硬盤(pán)的讀寫(xiě)速度較慢,在系統(tǒng)中開(kāi)辟一個(gè)BUFFER來(lái)緩沖數(shù)據(jù)。當(dāng)BUFFER中的數(shù)據(jù)達(dá)到門(mén)限時(shí),將其所存的數(shù)據(jù)寫(xiě)入硬盤(pán)。




          記錄方式有2種:可以只使用1個(gè)TS緩存器,將緩存器中的數(shù)據(jù)存入硬盤(pán),并反饋回STi7109,經(jīng)過(guò)解復(fù)用將其分解為音、視頻PES包,PES包即可以被送往音/視頻解碼器解碼;也可以使用2個(gè)不同的緩存器,一個(gè)存放將要存入硬盤(pán)的TS數(shù)據(jù),一個(gè)存放即將被解碼的PES包。

          PVR機(jī)頂盒將高清的節(jié)目流存儲(chǔ)在通用硬盤(pán)中,將錄制的能力賦予用戶,這就使得對(duì)節(jié)目的非法復(fù)制、傳播成為可能。由此,對(duì)于節(jié)目著作權(quán)的保護(hù)形成挑戰(zhàn)。而且節(jié)目是以數(shù)字格式被錄制于硬盤(pán)之上。而硬盤(pán)有可能并且很容易被拆下來(lái),連接到通用PC機(jī)上,節(jié)目就很容易被復(fù)制并廣泛傳播,而且還保持原來(lái)的高清晰質(zhì)量。無(wú)疑,這將給提供商帶來(lái)巨大的經(jīng)濟(jì)損失。

          本文所采用的方法是在TS緩存器和硬盤(pán)之間增加模塊。對(duì)即將存儲(chǔ)的節(jié)目流先進(jìn)行AES加密再保存。相應(yīng)的,在播放存儲(chǔ)節(jié)目時(shí),先對(duì)節(jié)目流進(jìn)行解密,再送人下一級(jí)操作。

          數(shù)字電視系統(tǒng)中視音頻數(shù)據(jù)流的比特傳輸率要比其他的數(shù)據(jù)類型高出許多,而且在傳輸時(shí)要求較高的實(shí)時(shí)性,對(duì)延時(shí)、抖動(dòng)極其敏感。這意味著對(duì)視音頻數(shù)據(jù)進(jìn)行加密時(shí),應(yīng)該考慮加密算法的速度問(wèn)題,以保證加解密所耗費(fèi)的時(shí)間較少,滿足觀眾對(duì)所收看節(jié)目的同步性要求。為了平衡多方面的性能,并且考慮到實(shí)際系統(tǒng)的需要,這里選擇AES-128作為實(shí)際使用的算法。

          在完成AES分組加/解密算法的基礎(chǔ)上,將其到PVR機(jī)頂盒硬盤(pán)文件管理的加/解密模塊中,操作步驟如下:

          (1)讀取待處理數(shù)據(jù)存放到大小為64 kB的TS緩存器1中;

          (2)根據(jù)用戶操作對(duì)TS緩存器中的數(shù)據(jù)進(jìn)行加密或解密;

          (3)用密鑰擴(kuò)展程序?qū)γ荑€加以擴(kuò)展;

          (4)從緩存器中取出16個(gè)字節(jié)作為中間變量STATE;

          (5)對(duì)STATE中的數(shù)據(jù)進(jìn)行加密/解密。并寫(xiě)入緩存器2;

          (6)如果讀取到TS緩存器1中最后一個(gè)數(shù)據(jù),將緩存器2中的全部?jī)?nèi)容存入硬盤(pán)并回到操作(1),否則回到操作(4);
          (7)如果等待加/解密的TS流或文件已經(jīng)結(jié)束,則關(guān)閉文件。

          上述步驟實(shí)現(xiàn)對(duì)錄制視音頻數(shù)據(jù)流的加密/解密操作。

          4 AES加密/解密算法在PVR機(jī)頂盒上的實(shí)驗(yàn)仿真

          本設(shè)計(jì)使用的是ST公司的Sti7109芯片,基于ST21嵌入式操作系統(tǒng)完成。下表是AES模塊分別在ST21和Windows XP兩個(gè)平臺(tái)下對(duì)視音頻數(shù)據(jù)流進(jìn)行加/解密操作所使用的時(shí)間。


          由上表可以求出在資源相對(duì)有限的嵌入式環(huán)境中,本設(shè)計(jì)的加密速率約為6.0 Mb/s,解密速率約為5.2 Mb/s。可以滿足視音頻數(shù)據(jù)流的需求。

          5 結(jié)語(yǔ)

          AES高級(jí)數(shù)據(jù)加密算法不管是從安全性、靈活性還是效率等方面都優(yōu)于傳統(tǒng)數(shù)據(jù)加密算法,而且AES算法對(duì)內(nèi)存的要求低,很適合于計(jì)算資源有限的領(lǐng)域,比如嵌入式產(chǎn)品和手持設(shè)備,具有很高的應(yīng)用潛力。


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();