当前位置:首页 > 通信技术 > 通信技术
[导读]1 引 言 AES算法是由美国国家标准和技术研究所(NIST)用时3年,历经2轮评估,选出的高级加密算法。AES的所有设计原则都是公开的,没有专利权方面的问题,任何人都可以通过正常渠道得到并使用这种算法。作为新一代的

1 引 言

AES算法是由美国国家标准和技术研究所(NIST)用时3年,历经2轮评估,选出的高级加密算法。AES的所有设计原则都是公开的,没有专利权方面的问题,任何人都可以通过正常渠道得到并使用这种算法。作为新一代的数据加密标准,AES汇聚了强安全性、高性能、高效率、易用和灵活等优点,加密速度快,对内存要求低,非常适合应用在嵌入式平台上。本文在分析AES加密算法原理的基础上,着重说明算法的实现步骤,用C语言完整地实现了AES算法的加/解密操作,并在PVR机顶盒中实现应用。

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

AES算法属于分组密码算法,它的输入分组、输出分组及加/解密的中间分组长度都是128 b。密钥长度有3种:128,192和256 b。

AES算法基于置换和代换运算。置换是对数据重新进行排列,代换是将一个数据单元替换为另一个。本文采用的AES-128算法输入为128位数据,密钥长度也是128位。每一轮都需要1个与输入分组具有相同长度的扩展密钥参与。

AES算法主要由3部分组成:轮变化、圈数和密钥扩展。本文详细介绍AES加/解密算法中各部分的实现步骤;结合C语言,实现高级加密算法AES在PVR数字电视机顶盒中的应用。所采用的AES-128算法的加/解密模块程序流程图如图1所示。
 


 

2.1 加密变换

AES加密算法的每一轮加密都使用代替和混叠并行地处理整个数据分组状态。主要是通过对5个子模块SubBytes,ShiftRows,MixColumns,AddRounke和GetNewEncrypt的循环调用实现。

Subbyte变换即s盒置换,是AES算法中是惟一的非线性变换。它对状态中的每个字节用S-box做一个置换。每个字节的前4位指定s盒的行值,后4位指定了S盒的列值,然后取出S盒中对应行和列的元素作为输出代替该字节。

ShiftRow完成基于行的循环移位操作。它将状态中的行按照不同的偏移量进行循环移位,一般情况下,第0行不动,第1行循环左移1个字节,第2行循环左移2个字节,第3行循环左移3个字节。

MixColumn对状态列进行混淆变换。将ShiftRow的变换结果看作GF(28)域上的多项式,乘以c(x)=03x3+01x2+01x+02,然后模上不可约多项式x8+x4+x3+x+1。本文根据GF(28)有限域的运算规则,将列变换改进为简单的移位和异或操作。设1个字节为(b7b6b5b4b3b2b1b0),则:



 


 

AddRounkey是将列混合后的结果与子密钥进行简单的按字节异或逻辑运算。

GetNewEncrypt生成下一轮变换所需密钥,它是按矩阵的列进行分组的,产生方法如下:如果第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]。实现方式如下:

将W(i-1)的元素左移一位,即[b,C,d,a]。将这4个字节输入到S盒,得到新的4个字节[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轮的密钥矩阵。

在计算轮常量时,当加密轮数大于或等于9时,8位不足以表示其值,此时将mod(x8+x4+x3+x+1),值为0x1b,之后的值就是0x1b得倍数。即r(i)大于等于256时,r(i)的值为0x1b*(turn-8)。

AddRounkey变换将MixColumn变换的结果和GetNewEncrypt变换的结果按对应字节异或,所得结果作为下一轮变换的输入。

上述的5个步骤完成了一轮AES加密变换,根据加密轮数重复上述过程,直到最后一轮变换。最后一轮变换的不同之处在于没有进行列混叠变换MixCol-umn,AddRounkey变换直接将ShiftRow变换后的结果和GetNewEncrypt变换的结果按对应字节异或,结果作为AES变换的输出,即得到密文。
2.2 解密变换

AES解密变换是加密变换的逆变换,它们结构类似,只需将操作逆序进行。操作SubBytes,ShiftRows和Mixcolumns均需使用它们的逆操作InvSubBytes,InvShiftRows和InvMixcolumns代替,而操作AddRounkey的逆操作就是其本身。

解密变换的第一步只需进行AddRounkey,Inv-ShiftRows和InvSubBytes变换得到下一级输入。最后一轮仅需AddRounkey即可得到明文,完成解密。中间的解密操作重复以下步骤:

(1)InvGetNewEncrypt:生成新的解密密钥;
(2)AddRounkey:将该轮的密文同该轮的密钥相异或;
(3)InvMixcolumns:逆列变换;
(4)InvShiftRows:逆行移位变换;
(5)InvSubBytes:逆S-盒变换。

AES算法是一个非对称密码体制,所以尽管解密算法与加密算法结构相近,但是它的解密过程要比加密过程复杂和费时。主要原因在于InvMixcolumns变换中运算的固定多项式变为C(x)=0Bx3+0Dx2+09x+0E。同样将逆列变换改进为简单的移位和异或操作。设1个字节为(b7b6b5b4b3b2b1b0),则:
 

 


 

3 PVR功能介绍及内容保护关键技术

具有PVR功能的机顶盒除具有收看数字电视等的基本功能外,还具有增强的手动录放像功能、时移播放、智能录像、边看边录、画中画等新功能,是数字电视新的发展趋势。

本文采用ST公司的单片信源解码芯片STi7109实现高清晰度数字电视解码,其内嵌的ATAPI接口实现了与SATA硬盘的无缝连接,为机顶盒实现PVR功能提供了条件。机顶盒PVR功能的原理框图如图2所示。信号下TUNER经过QAM解调后,以TS流的形式传人STi7109,通过PID滤波器选出指定的一路节目。由于硬盘的读写速度较慢,在系统中开辟一个BUFFER来缓冲数据。当BUFFER中的数据达到门限时,将其所存的数据写入硬盘。



 


 

记录方式有2种:可以只使用1个TS缓存器,将缓存器中的数据存入硬盘,并反馈回STi7109,经过解复用将其分解为音、视频PES包,PES包即可以被送往音/视频解码器解码;也可以使用2个不同的缓存器,一个存放将要存入硬盘的TS数据,一个存放即将被解码的PES包。

PVR机顶盒将高清的节目流存储在通用硬盘中,将录制的能力赋予用户,这就使得对节目的非法复制、传播成为可能。由此,对于节目著作权的保护形成挑战。而且节目是以数字格式被录制于硬盘之上。而硬盘有可能并且很容易被拆下来,连接到通用PC机上,节目就很容易被复制并广泛传播,而且还保持原来的高清晰质量。无疑,这将给提供商带来巨大的经济损失。

本文所采用的方法是在TS缓存器和硬盘之间增加AES模块。对即将存储的节目流先进行AES加密再保存。相应的,在播放存储节目时,先对节目流进行解密,再送人下一级操作。

 

数字电视系统中视音频数据流的比特传输率要比其他的数据类型高出许多,而且在传输时要求较高的实时性,对延时、抖动极其敏感。这意味着对视音频数据进行加密时,应该考虑加密算法的速度问题,以保证加解密所耗费的时间较少,满足观众对所收看节目的同步性要求。为了平衡多方面的性能,并且考虑到实际系统的需要,这里选择AES-128作为实际使用的算法。

在完成AES分组加/解密算法的基础上,将其应用到PVR机顶盒硬盘文件管理的加/解密模块中,操作步骤如下:

(1)读取待处理数据存放到大小为64 kB的TS缓存器1中;

(2)根据用户操作对TS缓存器中的数据进行加密或解密;

(3)用密钥扩展程序对密钥加以扩展;

(4)从缓存器中取出16个字节作为中间变量STATE;

(5)对STATE中的数据进行加密/解密。并写入缓存器2;

(6)如果读取到TS缓存器1中最后一个数据,将缓存器2中的全部内容存入硬盘并回到操作(1),否则回到操作(4);
(7)如果等待加/解密的TS流或文件已经结束,则关闭文件。

上述步骤实现对录制视音频数据流的加密/解密操作。

4 AES加密/解密算法在PVR机顶盒上的实验仿真

本设计使用的是ST公司的Sti7109芯片,基于ST21嵌入式操作系统完成。下表是AES模块分别在ST21和Windows XP两个平台下对视音频数据流进行加/解密操作所使用的时间。
 


 

由上表可以求出在资源相对有限的嵌入式环境中,本设计的加密速率约为6.0 Mb/s,解密速率约为5.2 Mb/s。可以满足视音频数据流的应用需求。

5 结语

AES高级数据加密算法不管是从安全性、灵活性还是效率等方面都优于传统数据加密算法,而且AES算法对内存的要求低,很适合应用于计算资源有限的领域,比如嵌入式产品和手持设备,具有很高的应用潜力。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭