基于结构共享和多级流水线的AES加密算法的研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2000 年 10 月,美国国家标准技术局(NIST )选择了两位比利时研 究者 Daemen 和 Rijmen 提出的 Rijndael 算法 , 即 AE S ( 高 级 加 密 标 准)。
它具有 128bits 的分组长度, 三种可选的密钥长度, 即 128bits 、 196bits 和 256bits 。
AES 可以抵抗所有设计中已知的攻击方法, 具有较高的安全强 度。
文中阐述了 AES 算法的原理,并对其加解密模块进行优化,提出
了一种基于结构共享和多级流水线的 AES 算法实现方案, 并重点阐
述了实现过程。
1 AES 算法介绍
AES 算法是一种迭代分组算法,采用 128bits 的分组长度,三种可
选密钥长度 128bits ,192bits 和 256bits 。
对于不同的密钥长度,所需的 加解密轮数不同。
本文主要讨论分组长度和密钥长度 128bits 的情况。
整个加密过程包括 11 轮迭代。
其中 Round0 只有 Add Round Key 操作。
Round1-R ound9 具有完全相同的操作,依次经过 SubBytes 、Shift Rows 、Mi x Columns 和 Add Round Key 四
种 操 作 。
Round10 只 包 括 SubBytes 、Shift Rows 和 Add Round Key 三种操作。
解密过程是加密过 程的逆过程。
关于 AES 算法的详细描述见参考文献[1]。
00e 09 0 002 01 0 0
05 00 0 0b 0e 09 0d 0d 0b 0e 09 03 02 01 01 01 03 02 01 00 05 00 04 04 00 05 00 0 0 0 0 0
0 0 0 0 0 0 0 009 0d 0 001 01 0 000 04 0 0 0= 0 0× 0 0 00d 0b 0 001 03 0 004 00 0 0 0 0 0 0 0 0 0 0 0 0 0 00b 0e 0 003 02 0 000
05 0
0 0 0 0 0 0 因此,在实现逆列混合变换时,只需在列混合变换之前先执行个
逻辑电路。
将列混合变换和逆列混合变换进行整合,使得列混合电路
可以复用于解密过程中,并由选择器来实现加密/解密操作,实现了硬
件资源的共享。
流水线结构的设计
3 3.1 AES
算法实现流水线的可行性
第一,AES 算法加解密过程的核心是 10 次轮操作,前一轮操作的 输出即为下一轮操作的输入。
第二,AES 算法每次对一个 128bits 的数
据块进行编码,当采用 ECB 工作模式时,前后进行编码的数据块间不
存在相关性。
由于上述特点,AES 算法完全能够以流水线的形式实现。
两类典型的流水线结构
AES 算法的流水线结构分为轮内流水线结构和轮间流水线结构
两种。
轮内流水线结构就是把在一个时钟周期内欲完成的运算划分为 若干子运算,采用寄存器输出模式。
轮间流水线结构就是在相邻的两 轮加解密模块之间加入寄存器,每个时钟周期各加解密模块都有一次
输出,从而实现轮间流水线设计。
轮内流水线结构被很多人讨论并使用,这种结构既可缩短延时路
径,提高时钟频率,又可使各子运算同时进行。
但是这种结构增加了控 制的复杂度同时占用大量的存储单元,对于 FPGA 实现来说将是很大 的负担。
另一方面,这种结构虽然能提高仿真频率,但是系统吞吐量并 没有明显的提高。
因此,本设计采用轮间流水线结构。
3.3 AES 算法的 5 级流水线设计
传统的 AES 算法流水线为 10 级流水线结构或 2 级流水线结构。
这两种设计结构都存在弊端。
10 级流水线结构能够最大限度的利用 流水线技术,提高系统的运行速度,但是要耗用大量 FPGA 的逻辑单
元和存储单元;而 2 级流水线结构设计,虽然占用 FPGA 资源较少,但 是没有有效的利用好流水线技术。
本文提出的 5 级流水线结构是上述 两种设计结构的折中方案,能够最大限度的利用 FPGA 资源来实现流 水线设计,从而提高系统运行速度。
具体实现为将原来的
0-10 轮循环迭代结构进行分解。
第 0 轮只
是实 现 了 Add Round Key 操 作 , 可以使用单独的 “ 异 或 电 路 ” 加
以 实 现。
将剩下的 1-10 轮通过 2 轮一组,组内循环的方式设计为 5 级流水 线结构。
如图 1 所示。
3.2 加解密模块的结构共享
2 2.1 字节变换(SubBytes ) 当前实现字节变化的方法有两种:一是有限域运算的方法;一是 查找表的方法。
前者运算复杂,后者容易实现,并且运行速度更快,但 是硬件开销较大。
考虑到可以利用 FPGA 自带的 Block RAM 资源,在 设计中采用了查找表的实现方式。
如果将用于加密的 Sbox 表和用于解密的 Inverse Sbox 表同时存 放在 FPGA 的 Block RAM 中,会造成 RAM 资源的大量消耗。
为降低 硬件资源的消耗,设计中采用重新配置的方法。
加密时一次性加载 16 个 Sbox 表,而在解密时,对存放这些 Sbox 表的 RAM 重新写入 Inverse
Sbox 表的数据。
2.2 行移位(Shift Rows )
本文采用 128bits 并行算法, 行移位变换可按照移位的方向和字 节数连线,几乎不占用硬件资源和产生延时,然后通过选通器选择正 向或逆向行移位变换。
2.3 列混合(Mix C olum ns )/逆列混合(Inv Mix Columns )
根据算法原理,列混合变换就是输入状态矩阵与一个系数矩阵相 乘。
列混合变换表示为:
0S ' 0 0
02 03 02 01 01 01 03 02 01 01 00
S 0 0 0c 0 0 00 0c 0
0 0 0 00 0 0S ' 0 001 01 00S 1c 0 0 1c 0= 0 00 0
0≤c ≤4 0S ' 0 0
01 03 00
S 0 0 2c 0 0 00 2c 0
0 0 0 00 0 0S ' 0 003 02 00S 0
0 3c 0 0
00 3c 0
逆列混合变换表示为:
0S ' 0 0
0e 09 00
S 0 0b 0e 09 0d
0d 0b 0e 09
0 0c 0 0 00 0c 0
0 0 0 00 0 0S ' 0 009 0d 00S 1c 0 0 1c 0= 0
00 0
0≤c ≤4 0S '
0 00d 0b 00
S 0 0 2c 0 0 00 2c 0
0 0 0
00 0 0S
'
0 00b
0e 00S 0
0 3c 0 0
00 3c 0
逆列混合变换的系数矩阵与列混合变换的系数矩阵存在如下关
图 1 AE S 算法 5 级流水线结构
2 “双转移”中存在一些的困难和问题
次主要集中在单项能力和初级工, 技能培训项目与市场需求匹配性 差,有的技能培训和企业用工、市场需求脱节,影响农民培训后转移就
业的质量,也影响到参与的积极性。
全省各培训机构培训的主要工种 是计算机、电工、餐厅服务员等,工种单一和趋同。
各类不同工种培训 所需成本不一,大部分市按照统一的 1400 元的标准拨付补助资金,致
使培训机构开展低端培训。
另一方面,部分国家工种标准开发滞后,与
当前培训需求不相适应,跟不上企业用工的要求,以致学员结业后找
不到适合的就业岗位。
转出地推动产业转移的主动性、积极性不够。
推动产业转移,珠 2.1 三角居主体地位,起主导作用。
资金、项目的转移可改善转入地硬环 境,管理、观念、人才、体制等的转移,能有效改善转入地软环境,形成 转入地的内生增长机制,这都需要珠三角的极大参与。
然而,目前多数
产业转移园的珠三角合作方为镇(区)级政府,地级市政府参与程度不 深, 而镇 ( 区) 级政府能力有限 , 在园区规划 、 资金投入 、 开发建设 、 管 理、招商引资和引导产业转移方面的主导作用有限;再加上转入地本 身财力不足而使园区建设受阻。
2.2 转出地对当前产业转移的趋势把握不足。
当前,产业转移已出现
产业链整体转移的趋势。
只有通过产业链的整体转移,才能解决转入 企业在当地无配套供应商的问题, 并迅速在转入地形成产业集群,从 而降低企业经营的综合成本。
但是由于粤东西北欠发达地区工业化水 平低,产业基础差,很多产业部门还未得到有效发展,产业配套严重不
足,而转出地在推动产业转移时,多是企业单家独户地转,这就造成企
业落户后仍需到较远地区采购原材料、零部件,运输成本高昂,生产成
本、交易成本上升,降低了投资收益率。
有些园区产业层次不高,劳动
密集型产业和加工环节多,大项目少,带动力弱,产业集聚发展效果不
明显。
2.3 产业转移园区基础配套设施建设滞后,对转移企业吸引力不足。
企业进行生产,必须具备的基础设施条件包括:水、电、厂房、道路、通
信、排污等,这些基本条件直接或间接影响着企业的开工投产、经营运 作。
由于粤东西北地区多地势起伏,多数产业转移园选址处丘陵地带, 土地平整、“三通一平”等前期投入巨大,有的园区仅承担土地平整费 已觉沉重压力,更无力负担其他基础设施配套建设资金,有的甚至连
首期规划土地尚未开发完。
虽然一些园区已在转出地的帮扶下,首期 规划土地已全部开发完,但由于园区内、外部基础设施建设建设滞后,
已严重影响企业的转移进程。
有些产业转移园不按规划建设开发,环
保基础设施建设滞后,有的甚至放低环保指标门槛,监管不到位。
2.4 转入地外部环境综合条件差,难以满足转移企业发展需要。
由于
山区及东西两翼现实上与珠三角仍存在较大的时空距离,交通通达能
力仍不理想,不少地方超过转移企业所能接受的 2 小时车程。
并且东
西北地区现代物流业发展落后,难以满足企业尤其是外企大公司采购 和分销对物流服务的需要。
再加上城市化进程缓慢,城镇化水平偏低, 产业、人口要素难以集聚,使得多数转移企业骨干及熟练技工不愿随
迁。
而转入地劳动力素质低,无法满足一些转入企业招收熟练员工的
需求。
有的地方投资营商环境仍有待改善,有些地方行政效率较低,服
务业等发展不配套不健全。
2.5 劳动力培训质量不高。
部分农村劳动力对培训和考试存在一定
的畏难情绪,不愿参加培训和考试。
有些村民因交通不便,补助资金不
能解决食宿交通,而不愿参加县里或镇里举办的培训班。
现有培训层
深入实施双转移战略的对策思考
3 从根本上看,推进“双转移”就是要优化区域产业布局,提升珠三
角产业竞争力,带动东西北地区加快发展。
目前推进“双转移”虽然取 得一些成效,需要继续努力,推动双转移取得更大成效。
为此:
一要进一步完善发展思路,着力构建有利于园区发展的体制机制
和开发建设模式。
要按照转变经济发展方式的要求,摒弃粗放式、资源
消耗型、低水平园区开发模式,加强规划引导和调控,保证园区招商引
资以及工程建设等过程能够按照总体规划有序健康发展。
二要强化招商引(选)资,着力形成有利于推动园区产业集聚发展
的环境氛围。
重点实行按产业链式招商,实现产业链的断层缝合、空白
填补;重点加强对大型项目和项目组的招商。
三要破解发展的瓶颈,不断完善投资营商环境。
综合地完善道路、 厂房、水、电、用地等硬环境以及金融、科技、人才、信息等软环境。
四要 加强产业对接 , 推动珠三角地区加快 “ 腾笼换鸟 ” 和产业结构转型升 级。
产业转出地和转入地要加强沟通联系,寻找合理的利益结合点和 合适的产业对接点。
另外,还要从宏观上重点地解决一些突出的难点问题,特别是积 极解决污染转移问题。
在我省东西北地区,是主要的产业转移目标地,
其中不少是广东水资源、森林、大气的涵养区,是珠三角的天然屏障生 态环境非常脆弱的地区。
在推进产业转移过程中,一定要走可持续发 展的产业转移之路,在推进工业化和生态环境保护间取得平衡。
产业
转移园及入园项目要严格执行环境评价制度,环保设施要与园区同时
规划、同时建设、同时投入运营● 【参考文献】
[1]王雪.国际产业转移理论及其研究[J].山东工商学院学报,2007(1).
[2]中共广东省委、广东省人民政府关于推进产业转移和劳动力转移的决定[R].
粤发[2008]4 号. [3]广东省人民政府关于我省山区及东西两翼与珠江三角洲联手推进产业转移
的意见:试行[R].粤府[2005]22 号.
[4]广东省统计局,国家统计局,广东调查总队.广东统计概要[M].2009.
[责任编辑:王洪泽]
(上接第 123 页)将第 9 轮和第 10 轮作为一组在控制上要使用不同的 控制信号。
通过状态机来对两轮的控制信号赋不同的值。
而 1-8 轮的 的运算模式是相同的,即其控制信号也是相同的。
因此前 4 组流水线 可以使用一组固定的控制值。
本设计是组内循环与轮间流水相结合的模式,必须要解决好输入 的问题,即要协调好来自上一级流水线的输入数据与本级流水线循环 反馈的数据,使系统正常工作。
这里通过设计一个 2 选 1(MUX2_1)选 择器来实现。
选择器的使能信号也是由状态机来实现。
轮密钥的匹配输入问题。
由于每级流水线包括两次加/解密的运 算,而每次加/解密运算所需的轮密钥各不相同。
要实现此操作就必须 为每级流水线设置一个寄存器堆。
寄存器堆中存放两次加/解密运算 所需的不同轮密钥。
对轮密钥的选择也是由状态机来实现。
混合变换之前执行个逻辑电路(PreInvmix ),来实现逆列混合变换。
从 而实现了逆列混合变换与列混合变换的结构共享。
采用水线结 构设计,实现了芯片面积的节省和系统工作频率的提高●
【参考文献】
[1]Fe d eral I nf o rm a tion Pro cess i ng Stand ard (FIPS ) f or the Advan ce d En cryp tio n Sta nd ard.FI PS -197. N o vem be r 26,2001.
[2]武玉华,李艳俊,周玉坤.基于 FPGA 的 AES _128 密码算法实现研究[J].微计 算机信息,2007(2).
[3]李雪梅,路而红,欧海文.AE S 算法的快速硬件设计与实现[J].电子技术应用, 2006(5).
[4]吴晓成,高琳.AE S I P Core 的一种高速流水线实现方法[C].西安电子科技大 学学术年会,2007.
结束语
4 作者简介:王群(1986—),男,汉族,山东莱芜人,青岛科技大学信息学院研
究生。
本文提出了一种基于结构共享和多级流水线的 AES 算法实现方 案。
字节变换采用可重构设计,用同一组 RAM 资源在加解密时,分别 加载 Sbox 表数据和 Inverse Sbox 表数据,节约了 RAM 资源。
通过在列
[责任编辑:常鹏飞]。