<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è) > 手機與無(wú)線(xiàn)通信 > 設計應用 > AES算法在PVR機頂盒中的應用研究

AES算法在PVR機頂盒中的應用研究

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

1 引 言

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

2 AES加密/解密算法原理簡(jiǎn)介

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

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

AES算法主要由3部分組成:輪變化、圈數和密鑰擴展。本文詳細介紹AES加/解密算法中各部分的實(shí)現步驟;結合C語(yǔ)言,實(shí)現高級加密算法AES在數字電視中的。所采用的AES-128算法的加/解密模塊程序流程圖如圖1所示。

本文引用地址:http://dyxdggzs.com/article/155672.htm


2.1 加密變換

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

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

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

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




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

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

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

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

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

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

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

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

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

AddRounkey變換將MixColumn變換的結果和GetNewEncrypt變換的結果按對應字節異或,所得結果作為下一輪變換的輸入。

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


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

關(guān)鍵詞: 應用 研究 機頂盒 PVR 算法 AES

評論


相關(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>