當(dāng)前位置:首頁 > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]1 引 言 AES算法是由美國國家標(biāo)準(zhǔn)和技術(shù)研究所(NIST)用時(shí)3年,歷經(jīng)2輪評(píng)估,選出的高級(jí)加密算法。AES的所有設(shè)計(jì)原則都是公開的,沒有專利權(quán)方面的問題,任何人都可以通過正常渠道得到并使用這種算法。作為新一代的

1 引 言

AES算法是由美國國家標(biāo)準(zhǔn)和技術(shù)研究所(NIST)用時(shí)3年,歷經(jīng)2輪評(píng)估,選出的高級(jí)加密算法。AES的所有設(shè)計(jì)原則都是公開的,沒有專利權(quán)方面的問題,任何人都可以通過正常渠道得到并使用這種算法。作為新一代的數(shù)據(jù)加密標(biāo)準(zhǔn),AES匯聚了強(qiáng)安全性、高性能、高效率、易用和靈活等優(yōu)點(diǎn),加密速度快,對(duì)內(nèi)存要求低,非常適合應(yīng)用在嵌入式平臺(tái)上。本文在分析AES加密算法原理的基礎(chǔ)上,著重說明算法的實(shí)現(xiàn)步驟,用C語言完整地實(shí)現(xiàn)了AES算法的加/解密操作,并在PVR機(jī)頂盒中實(shí)現(xiàn)應(yīng)用。

2 AES加密/解密算法原理簡介

AES算法屬于分組密碼算法,它的輸入分組、輸出分組及加/解密的中間分組長度都是128 b。密鑰長度有3種:128,192和256 b。

AES算法基于置換和代換運(yùn)算。置換是對(duì)數(shù)據(jù)重新進(jìn)行排列,代換是將一個(gè)數(shù)據(jù)單元替換為另一個(gè)。本文采用的AES-128算法輸入為128位數(shù)據(jù),密鑰長度也是128位。每一輪都需要1個(gè)與輸入分組具有相同長度的擴(kuò)展密鑰參與。

AES算法主要由3部分組成:輪變化、圈數(shù)和密鑰擴(kuò)展。本文詳細(xì)介紹AES加/解密算法中各部分的實(shí)現(xiàn)步驟;結(jié)合C語言,實(shí)現(xiàn)高級(jí)加密算法AES在PVR數(shù)字電視機(jī)頂盒中的應(yīng)用。所采用的AES-128算法的加/解密模塊程序流程圖如圖1所示。
 


 

2.1 加密變換

AES加密算法的每一輪加密都使用代替和混疊并行地處理整個(gè)數(shù)據(jù)分組狀態(tài)。主要是通過對(duì)5個(gè)子模塊SubBytes,ShiftRows,MixColumns,AddRounke和GetNewEncrypt的循環(huán)調(diào)用實(shí)現(xiàn)。

Subbyte變換即s盒置換,是AES算法中是惟一的非線性變換。它對(duì)狀態(tài)中的每個(gè)字節(jié)用S-box做一個(gè)置換。每個(gè)字節(jié)的前4位指定s盒的行值,后4位指定了S盒的列值,然后取出S盒中對(duì)應(yīng)行和列的元素作為輸出代替該字節(jié)。

ShiftRow完成基于行的循環(huán)移位操作。它將狀態(tài)中的行按照不同的偏移量進(jìn)行循環(huán)移位,一般情況下,第0行不動(dòng),第1行循環(huán)左移1個(gè)字節(jié),第2行循環(huán)左移2個(gè)字節(jié),第3行循環(huán)左移3個(gè)字節(jié)。

MixColumn對(duì)狀態(tài)列進(jìn)行混淆變換。將ShiftRow的變換結(jié)果看作GF(28)域上的多項(xiàng)式,乘以c(x)=03x3+01x2+01x+02,然后模上不可約多項(xiàng)式x8+x4+x3+x+1。本文根據(jù)GF(28)有限域的運(yùn)算規(guī)則,將列變換改進(jìn)為簡單的移位和異或操作。設(shè)1個(gè)字節(jié)為(b7b6b5b4b3b2b1b0),則:



 


 

AddRounkey是將列混合后的結(jié)果與子密鑰進(jìn)行簡單的按字節(jié)異或邏輯運(yùn)算。

GetNewEncrypt生成下一輪變換所需密鑰,它是按矩陣的列進(jìn)行分組的,產(chǎn)生方法如下:如果第i列不是4的倍數(shù),即(i%4==1),那么i列由如下等式確定:

W(i)=W(i-4)XORW(i-1)。

如果第i列是4的倍數(shù),即(i%4==0),則i列由如下等式確定:

W(i)=W(i-+4)XOR T[W(i-1)]

其中T[W(i-1)]是w(i-1)的一種轉(zhuǎn)換形式,設(shè)W(i-1)=[a,b,c,d]。實(shí)現(xiàn)方式如下:

將W(i-1)的元素左移一位,即[b,C,d,a]。將這4個(gè)字節(jié)輸入到S盒,得到新的4個(gè)字節(jié)[e,f,g,h]。計(jì)算新一輪的常量r(i)=2(i-4)/4。生成轉(zhuǎn)換后的列[e XOR r(i),f,g,h]。

 

第i輪的密鑰生成列W(4i),W(4i+1),W(4i+2),W(4i+3),于是得到第i+1輪的密鑰矩陣。

在計(jì)算輪常量時(shí),當(dāng)加密輪數(shù)大于或等于9時(shí),8位不足以表示其值,此時(shí)將mod(x8+x4+x3+x+1),值為0x1b,之后的值就是0x1b得倍數(shù)。即r(i)大于等于256時(shí),r(i)的值為0x1b*(turn-8)。

AddRounkey變換將MixColumn變換的結(jié)果和GetNewEncrypt變換的結(jié)果按對(duì)應(yīng)字節(jié)異或,所得結(jié)果作為下一輪變換的輸入。

上述的5個(gè)步驟完成了一輪AES加密變換,根據(jù)加密輪數(shù)重復(fù)上述過程,直到最后一輪變換。最后一輪變換的不同之處在于沒有進(jìn)行列混疊變換MixCol-umn,AddRounkey變換直接將ShiftRow變換后的結(jié)果和GetNewEncrypt變換的結(jié)果按對(duì)應(yīng)字節(jié)異或,結(jié)果作為AES變換的輸出,即得到密文。
2.2 解密變換

AES解密變換是加密變換的逆變換,它們結(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-盒變換。

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

 


 

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

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

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



 


 

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

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

本文所采用的方法是在TS緩存器和硬盤之間增加AES模塊。對(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)該考慮加密算法的速度問題,以保證加解密所耗費(fèi)的時(shí)間較少,滿足觀眾對(duì)所收看節(jié)目的同步性要求。為了平衡多方面的性能,并且考慮到實(shí)際系統(tǒng)的需要,這里選擇AES-128作為實(shí)際使用的算法。

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

(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)行加密/解密。并寫入緩存器2;

(6)如果讀取到TS緩存器1中最后一個(gè)數(shù)據(jù),將緩存器2中的全部內(nèi)容存入硬盤并回到操作(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ù)流的應(yīng)用需求。

5 結(jié)語

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉