AES专用指令处理器的研究与实现.doc

上传人:创****公 文档编号:118022 上传时间:2018-07-08 格式:DOC 页数:12 大小:1.60MB
下载 相关 举报
AES专用指令处理器的研究与实现.doc_第1页
第1页 / 共12页
AES专用指令处理器的研究与实现.doc_第2页
第2页 / 共12页
AES专用指令处理器的研究与实现.doc_第3页
第3页 / 共12页
AES专用指令处理器的研究与实现.doc_第4页
第4页 / 共12页
AES专用指令处理器的研究与实现.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、 基金项目:国家自然科学基金项目 (90718032, 60903031),山东省自然科学基金项目 (ZR2010FM015),山东省优秀中青年科学家科研奖励基金项目 (BS2010DX017),山东大学研究生自主创新基金项目 (11150071613067) 通信作者:贾智平 E-mail: 1 AES 专用 指令 处理器 的 研究与 实现 夏辉 1 贾智平 1 张峰 1 李新 1 陈仁海 1 Edwin H. -M. Sha2 1(山东大学计算机科学与技术学院 山东济南 250101) 2(美国德州大学达拉斯分校计算机科学系 德克萨斯 75083) (sprit_) The Applic

2、ation Specific Instruction Processor for AES Xia Hui1, Jia Zhiping1, Zhang Feng1, Li Xin1, Chen Renhai1, and Edwin H.-M. Sha2 1(School of Computer Science and Technology, Shandong University, Jinan, Shandong 250101, China) 2(Department of Computer Science, University of Texas at Dallas, Richardson,

3、Texas 75083, USA) Abstract Encryption algorithm has been widely used in the embedded trusted computing domain, how to improve its execution efficiency has become an important issue. The Advanced Encryption Standard (AES) algorithm is a new encryption algorithm which has been widely adopted in the fi

4、eld of trust computat ion due to its high security, low cost and high enforceability. This paper employs a new instruction set architecture (ISA) extension method to optimize this algorithm Based on electronic system level (ESL) methodology, a commercial processor tool on the basis of language for i

5、nstruction-set architectures (LISA) is used to construct an efficient AES application specific instruction processor (AES_ASIP) with the objective to improve the AES algorithm execution efficiency Finally the AES_ASIP model is implemented to the FPGA (Field-Programmable Gate Array) platform A series

6、 of simulations have been conducted to evaluate the performance of the AES_ASIP model Experimental results show that our processor improves 58.4x% in the execution efficiency and saves 47.4x% in the code storage space compared to the ARM ISA processor Key words Advanced Encryption Standard; Electron

7、ic System Level; Instruction Set Architecture; Application Specific Instruction Processor; Field-Programmable Gate Array 摘 要 随着 加密 算法在嵌入式可信计算领域的广泛应用 , 如何提高其 执行效率 成为 研究的热点 问题 高级加密标准 (AES) 凭借其在安全性、 费用 开销 和可执行性等 方面的内在优势 , 成为 使用最为广泛的对称密钥 加密 算法 文 中 采用指令集架构 (ISA) 扩展优化的方法对 AES 算法进行指令扩展优化 基于 电子 系统级 (ESL) 方法

8、 设计流程 , 使用 基于 LISA 语言 的 处理器 生成 工具 构建 了一个 高效 AES 专用 指令 处 理器 (AES_ASIP) 模型 , 最终实现于 FPGA 中 经 过一系列的仿真和验证 , 对比 ARM 处理器 指令集架构 , 实验结果显示 AES_ASIP 以增加少许硬件资源为代价 , 提高 了 算法 58.4x%的执行效率并 节省 了 47.4x%的 指令 代码存储 空间 关键词 AES; 电子系统级 ; 指令集 架构 ; 专用指令处理器 ; FPGA 中图法分类号 TP391 文章类别:信息安全 0 引言 加密技术是一种保护秘密信息或敏感信息的重要手段加密算法被广泛应用于

9、可信路由、 TPM 可信根测量、实体认证、数字签名和数据加密传输等方面对称密钥加密技 术凭借其安 全性、高效性和灵活性, 已 广泛用于保证数据在传输过程中的机密性 在加 /解密过程中 通信双方使用共享的相同密钥,密码学界已经对该类加密技术进行了深入的研究此前最常用的对称密钥加密算法是数据加密标准 (DES), 它是一种使用 56位密钥的分组密码加密算法,自 1977年公布成为美国政府的商用加密标准以来已使用 30多年 DES2 的主要缺点 是密钥长度较短,已不再适合当今分布式开放网络对数据加密安全性的要求 新一代的数据加密标准 AES1是美国国家标准技术研究所 NIST 旨在取代 DES 的新

10、一代加密标准, Rijindael 算法最终被选作高级加密标准 AES 算法 汇聚了对数据加密的强安全性、高性能、高效率、易用和灵活等优点 然而由于加密与解密过程占用较多的处理器资源,处理器的性能成为加密算法高效运行的主要限制因素 虽然微处理器性能在不断提升,但在许多领域中加密算法的执行效率并不能符合所有的运算设计需求 , 尤其是在计算资源有限的嵌入式环境下由于嵌入式微处理器性能较低、运算速度较慢,加密算法在该类微处理器中运行的效率较低如何提高加密算法在嵌入式环境下的执行效率,保证数据高效安全传输成为国内外研究的热点问题 本文针对 AES 算法,基于 电子系统级方法学的设计流程, 采用指令集架

11、构扩展优化的方法,设计了该算法的专用指令处理器 (AES_ASIP)模型,并最终将该处理器模型实现于 FPGA中 论文其余部分组织如下,第一部分介绍了该领域的相关工作;第二 部分简单介绍 AES 加 /解密算法,并具体介绍 AES 加密 算法中复杂度较高的两个转换操作;第三部分详细分析指令集架构扩展优化设计方法;第四 部分针对 AES 算法提出 5 条优化扩展指令, 基于扩展后的指令集 构建 AES 专用指令处理器 模型,并设计新指令执行部件的硬件模型;第五 部分实验仿真结果分析;第六 部分对本 文工作进行总结 1 相关工作 目前学术界存在 三 种提高 密码 算法 执行效率 的方式 : 第 一

12、种是用 纯软件方式 优化 密码 算法 的程序流程 , 使算法流程更加合 理 , 运行 更加高效 Bertoni等人 2提出 AES算法的优化版本来加速该算法在内存受限的 32位处理器上的执行效率 随着嵌入式环境下 微处理器性能的不断提高 , 这种优化方式也相应地提高了 密码 算法的执行效率 这种 优化 方式 虽然灵活,但其 优化 空间非常狭隘 , 在同一类型的微处理器下优化幅度最多达到 21%左右 此外 纯 软件 优化 方式的实现 需 使用查找表 , 在 数据的查找过程中 , 查找表 容易受到 基于 cache的侧信道攻击 , 这种攻击方式致使加密算法运行过程中易将对称 密钥泄露给攻击者 ;

13、第二种 是用纯硬件 方式 实现 密码 算法 3, 将底层程序语言中一条或若干条连续指令用专门 的硬件电路实现 基于该优化方法 , Kuo等人 4提出基于 专用集成电路 (Application Special Integrated Circuit, ASIC)的方式来实现 AES算法 , 该方法仅用 10 cycles即可完成 AES-128算法 , 文章 同时讨论了执行算法的芯片架构 和 优化 设计 这种优化方 式 可以快速实现密码 算法 , 但其 可扩展性较弱 , 占用的 硬件资源 较多 , 致使微 处理器电路硬件 成本大幅上升 , 且 很难与其它运算模块相 融合 ; 第三种 是采用指令集

14、架构 (ISA)扩展的方式 对 密码 算法进行优化 5 其 面向特定的应用对处理器指令进行扩展 , 采用硬件实现影响密码算法性能的基本操作部件 , 并在指令集中添加相应的指令 ,最终生成专用指令处理器 (ASIP)6,7 基于该优化方法 , Wu等人 8介绍了一种快速灵活的加密处理器 协处理器 , 作者首先验证 了 协处理器作用于 3DES算法上的优质效果 , 在保持灵活性的同时 , 也可以支持多种加密算法 Sun等人 9为高效实现基于细粒度随机掩码操作分解的 AES算法定义了三种扩展指令, 并结合指令随机调度方法 给出了 AES算法完整的实现流程 该优化方 式 融合 了 纯软件 、 硬件方式

15、优化的优点 , 既保留 软件实现的灵活性 , 又进一步地提升 系统性 能, 以增加较少 的 硬件 资源为代价换取 算法 执行效率的大幅提升 和 指令代码占用空间的大幅降低 并且 其 扩展性较强 , 可以与其他运算模块相融合 本文 采用指令 集 架构 扩展的 方式 来 提高 AES算法的 执行效率 , 并 设计 出 针对该算法的专用指令处理器(AES_ASIP)模型 , 用 以满足 该 算法在运算速度 和内存空间 有限的嵌入式环境下的需 求 对比 ARM处理器指令集架构, 经过 一系列的 仿真 和 验证 , 实验结果显示 AES_ASIP以增加少许硬件资源为代价, 提 高 了 算法 58.4x%

16、的执行效率并节省了 47.4x%的 指令 代码 存储 空间 3 2 AES 算法分析 2.1 AES 算法简介 AES 算法属于分组密码算法 , 它的输入分组、输出分组以及加 解密过程中的中间分组都是 128 比特 ,使用 10、 12 或 14 个轮 (Nr 表示轮数 ), 与轮数相对应输入 密钥的长度 K 为 128, 192 或 256 比特 用 Nk=4,6, 8 代表密钥串的字数 (1 字 =32 比特 ), 每一轮都需要一个和输入分组具有同样长度 (128 比特 )的扩展密钥Key的参与 由于外部 输入的 密钥 K长度有限 , 所以在 AES 算法 操作过程中需 使 用密钥扩展 (

17、Key Expansion)例程 把外部密钥 K 扩展成更长的比特串 , 以生成各轮的加轮 密钥 . 第一个轮密钥用作预备轮转换 , 剩下的轮密钥用作每一轮结尾的最后一个转换 AES 算法 在操作过程中 运用四个转换 : S 盒 字节 置 换、行变换 、列 混淆 和密钥加 除最后一轮外 , 每一轮都使用四个可逆的转换 , 最后一轮仅用 三个转换 (无 列混合转换 ). 在解密方 , 使用的是可逆转换: S 盒置 换反演、行变换 反演、列混淆 反演和加轮密钥 (这个 转换 是自身可逆的 ) 图 1 表示 AES 加 解密流程 Figure 1 The description for AES al

18、grithm 图 1 AES 算法 加 解密 流程 (1) 加密变换 设 X 是 128 比特明文输入 , Y 是 128 比特的密文输出 , 则 AES 密文 Y 可以用下面的复合变换得出 : 1 2 1 0( ) ( ) ( ) ( ) ( )N r N r N rY A R S A C R S A C R S A C R S A X (1) 其中 表示复合运算 这里 ANi(X)表示对 X 的一个变换 ANi(X)= X xor KNi (KNi为 第 i 轮的子密钥 , 为比特串的异或运算 ) S: S-box 字节 置换 , 即对每一个字节用 S-box 做一个置换 为了提升算法执行

19、效率, S-box是一个指 定的转换表 R:行变换 C:列混淆 , 列混淆 中涉及到多项式乘法运算 (2) 解密变换 解密变换是加密变换的逆变换 , 这里不再详述 2.2 AES 加密算法 中 耗时 转换 操作 分析 (1) S 盒 字节 置 换 S-box SubBytes() 4 对输入矩阵的任一个元素 A 做如下变换 SA: (1)任意 一个元素 A 从存储角度看都 是一个八位的二进制数 算出前四位所代表的十六进制数 x 和后四位所代表的十六进制数 y 如 A=11000100 时 , x=c, y=4 (2)从 AES 算法给定的 S-box(16 行 16 列的矩阵 , 其中每个元素

20、为一个字节 )中找出 SA=Sx, y的值 如 A:11000100 时 , SA=Sx, y=Sc, 4=|29|=00101001 或直接通过下面的公式将 A=b7b6b5b4b3b2b1b0 变为SA=b7b6b5b4b3b2b1b0 ( 4 ) ( 5 ) m o d 8 ( 6 ) m o d 8 ( 7 ) m o d 8 m o d 8 ( 0 6 3 )i i i i i ib b b b b b x (2) (2) 列混淆 MixColumns() AES 加密 算法中列混淆是通过矩阵相乘实现的 (矩阵 A 为列混淆变换矩阵 ), 具体过程如下: 1 1 1 2 1 3 1

21、41 1 1 2 1 3 1 4 1 1 1 2 1 3 1 4 2 1 2 2 2 3 2 4 2 1 2 2 2 3 2 4 2 1 2 2 2 3 2 4 3 1 3 2 3 3 3 4 3 1 3 2 3 3 3 43 1 3 2 3 3 3 4 4 1 4 2 4 3 4 4 4 1 4 2 4 3 4 44 1 4 2 4 3 4 4s s s s a a a a s s s ss s s s a a a a s s s sa a a a s s s ss s s sa a a a s s s ss s s s 加密过程中列混淆变换矩阵 与解密过程列混淆变换矩阵分别是: 02 03

22、 01 0101 02 03 0101 01 02 0303 01 01 020 0 0 0 0 0 0 090 09 0 0 0 0 0 00 0 0 09 0 0 0 00 0 0 0 0 09 0 0x e x b x d xx x e x b x dx d x x e x bx b x d x x e列 混淆转换操作 即 把状态矩阵 state 的每一列转换成一个新的列 每 列当中的字节和常数变换矩阵都要化为带有 GF(28)中系数的 8 比特的字 (或多项式 ) 矩阵内 字节的乘法 是通过伽罗瓦域 GF(28)内的乘法即多项式相乘实现的 , 同时 为了保证相乘 后的元素仍然在域内 ,

23、 在 GF(28)中 需要用 模 m(x)=(10001101)或 (x8+ x4+ x3+ x+1)除 来实现 , 矩阵内的加法是 通过 异或操作 实现的 即对域内的任意一个八位的二进制数 A= b7b6b5b4b3b2b1b0, 转换成一个多项式 A=f(x) = b7x7 + b6x6 + b5x5 + b4x4 + b3x3 + b2x2+ b1x + b0与 x 相乘 10: 7 6 5 4 3 26 5 4 3 2 1 0 77 6 5 4 3 2 4 36 5 4 3 2 1 0 701()b x b x b x b x b x b x b x bb x b x b x b x

24、b x b x b x x x x bx f x 若( ) + ( + + + 1 ) 若(3) 对应 域内乘法为: A = 00000010 B = b7b6b5b4b3b2b1b0 6 5 4 3 2 1 0 76 5 4 3 2 1 0 700( 0 ) ( 0 0 0 1 1 0 1 1 ) 0b b b b b b b bb b b b b b b bAB 若 若 (4) 乘以高于一次的多项式可以循环 使用上式实现 , 因此 GF(28)乘法即为多个中间结果相加 3 指令 集架构 扩展 优化 分析 在设计新指令的过程中 必须保证 扩展后的指令 要兼容原有模 型 (如 ARM 处理器

25、指令集 )的指 令 格式 ,这样才能保证 译码部件的 正常 执行 例如: 32 位 处理器模型中 , 指令 操作码和操作数位数之 和最多 为 32位 , 设计 新指令时要考虑其 操作码和操作数位数之 和不能超过 32 同时 , 新指令的执行部件不能过 于复杂 ,如果 新指令的执行部件过于复杂 , 执行过程中会产生 较大时延 , 降低系统的运行速度 综上各方面因素考虑 , 得出 新指令 设计限制 条件 如下: (1) 新指令操作码长度和原有 处理器模型中 指令操作码长度相同 ; (2) 新指令的操作码和操作数总和不能超出原指令集的指令位数 ; (3) 新指令的执行部件 不能过于复杂 , 新指令

26、执行 过程不能降低 系统的运行速度 ; (4) 新扩展的指令条数不能过多,降低由此带来的硬件资源开销 5 在满足 上述条件基础上 , 针对特定算法进行 指令 集 架构 扩展优化 , 能够极大地 减少 取址 、译码的时间 ,使得原先 N 条指令的 取址 、译码过程现在仅需一条指令即可完成 , 即取址、译码过程 可 缩小 (N-1)2 个时钟周期 从执行单元考虑 , 指令扩展前需要多个执行单元在多个时钟周期内协同完成的功能 , 在指令扩展后仅需 一个新的执行单元在一个时钟周期内 就可以完成 同时 , 在一定程度上能够避免因指令相关而 产生的气泡效应 A l g o r i t h m D e s

27、c r i p t i o n i n C L a n g u a g eA l g o r i t h m D e s c r i p t i o n i n A s s e m b l y L a n g u a g eS y n t h e s i s , P b=a; a=b; 编译成 ARM 汇编 指令 , 具体含义为 : mov r2, r0 mov r0, r1 使用新指令 swap 替换 swap r1, r2 mov r1, r2 设计 新的汇编指令 swap , 替代 上面三条 指令 新 指令 的功能 是将源操作数 src1 和 src2 交换 ,即将源操作数 src1 的

28、数值赋给 src2 同时将 src2 的数值赋给 src1 4.2 AES_ASIP 模型 P i p e _ C t lP i p eF EI n s t r u c t i o n -F e t c hD CD e c o d e _C o m m o nE XD e c o d e _J u m pE XA L UD M E M_ R WA E S _ EXD e c o d e _A E S _ E XP r o g _ R A MR e g i s t e r sD a t a _ R A MFigure 3 The Architecture of AES_ASIP 图 3 AES

29、专用指令处理器模型架构 图 3 所示的是针对 AES 加密算法 设计的 AES_ASIP 处理器模型框图 , 模型指令集 架构 由 27 条指令构成如下表 1 所示 : Table 1 The AES_ASIP ISA 表 1 AES 专用指令处理器指令集架构 Different Types Instructions General Purpose Instructions mov, add, sub, or, and, xor, shl, shr, nop Jump Instructions jp, jeq, jne, jl, jle, ja, jae Memory Access Instr

30、uctions stb, sth, stw, ldb, ldh, ldw AES Specific Instructions getbit, xor_5, ifand, matrixpos, swap 模型硬件结构主要由数据存储器 (Data_RAM)、代码存储器 (Prog_RAM)、寄存器堆 (Registers)和流水线(Pipe)四部分组成 程序存储器地址空间定义在 0x0000-0x7FFF 范围内 , 大小 32K 代码存储器地址空间定义在 0x8000-0xFFFF范围内 , 大小 32K 寄存器堆由 32个通用寄存器 (GPR031) 、 1个取址 寄存器 (FPR)、1 个堆

31、栈指针寄存器 (SPR)和 1 个链接寄存器 (LR)组成 流水线部分采用三级流水线:取址 (FE)、译码 (DC)和执行 (EX) 流水线控制器 (Pipe_Ctl)主要负责对跳转指令进行控制 , 跳转指令只需要将跳转地址存储在取址 寄存器 (FPR)中 , 不需要经过执行部件 , 紧 接着对流水线的缓存部分进行刷新 , 防止执行部件执行跳转指令 在 AES_ASIP 处理器的译码、执行部件 , 添加了 针对 AES 算法的专用指令 译码器 (Decode_AES_EX)和执行器 (AES_EX), 对扩展的指令进行专门的译码和执行 表 2 表示新指令格式 8 Table 2 The AES

32、 Specific instructions 表 2 针对 AES 扩展的新指令 格式 Instruction Format getbit Opcode 010010 dest src2 bitpos xxxxxx 31 26 25 21 20 16 15 11 10 0 xor_5 Opcode 010010 src1 src2 src3 src4 src5 dest x 31 26 25 22 21 18 17 14 13 10 9 6 5 1 0 ifand Opcode 010010 src1 src2 xor_src1 xor_src2 xxxxxx 31 26 25 21 20 1

33、6 15 11 10 6 5 0 matrixpos Opcode 010010 dest src1 src2 src3 src4 x 31 26 25 21 20 16 15 11 10 6 5 1 0 swap Opcode 010010 src1 src2 xxxxxx 31 26 25 21 20 16 15 0 4.3 新指令执行部件 的硬件模型 图 4-8 分别 表示与 5 条 新指令 相 对应的执行部件 硬件模型 r s hrsd3 25r 0i01m u x53 20 x 0 0 0 10 * 55A _ g e t b i t _ E X _ i nr 1 _ a d d r

34、3 253 2a d d rd a t aR e g i s t e r sFigure 4 The Micro-architecture of getbit Instruction 图 4 getbit 指令执行部件硬件模型 图 4 表示 getbit 指令执行部件 图 中 r0, i, r1_addr 是输入信号 , 通过移位 部件 rsh, 将 r0 寄存器中的数据右移 i 位 , 然后通过与门将移位的结果与 0x0001 相与 , 只取移位后的最低有效位 输出结果根据多路选择器 mux 控制输出 , A_getbit_EX_in 是控制信号 , 由译码阶段控制输出 , 决定输入地址 r

35、1_addr 是否有效 如果 A_getbit_EX_in 为 1, 则多路选择器 mux 选择将与结果保存到 r1 寄存器中 ; 如果为 0 则多路选择器 mux 选择一个无效的地址 , 不进行任何寄存器存储操作 01m u x5r 2r 5r 4r 3r 63 23 20 * 5A _ x o r _ 5 _ E X _ i nr 1 _ a d d r55a d d rd a t aR e g i s t e r sFigure 5 The Micro-architecture of xor_5 Instruction 图 5 xor_5 指令执行部件硬件模型 图 5 表示 xor_5

36、指令执行部件 图 中 r2, r3, r4, r5, r6, r1_addr 是输入信号 , r2, r3, r4, r5, r6 寄存器的数据通过五元异或部件执行异或操作 A_xor_5_EX_in 是控制信号 , 由译码阶段控制输出 , 决定输入地址9 r1_addr 是否有效 如果 A_xor_5_EX_in 为 1, 则多路选择器 mux 选择将结果保存到 r1 寄存器中 ; 如果为0 则多路选择器 mux 选择一个无效的地址 , 不进行任何 寄存器存储操作 01m u x3 2 0 2 1 3 1 . . .3 23 20 * 55r 0r 1r 2r 3i f a n d _ e

37、x er 2 _ a d d ra d d rd a t aR e g i s t e r s3 23 2553 2Figure 6 The Micro-architecture of ifand Instruction 图 6 ifand 指令执行部件硬件模型 图 6 表示 ifand 指令执行部件 图 中 r0, r1, r2, r3, r2_addr 是 执行部件的 输入 信号 , 输出结果通过多路选择器 mux 选择输出 , ifand_exe 是控制信号 , 由译码阶段发出控制命令 , 决定是否执行 ifand 操作 从上图电路可以看出 , r0 与 r1 以及 ifand_exe

38、与操作的结果如果 为 1, 则多路选择器 mux 选择将 r2 和 r3 异或结果输出 到 r2 寄存器中 ; 与操作的结果如果为 0, 则多路选择器 mux 选择输出 一个无效地址 , 不进行任何存储操作 55in1 0+j 5r 13 21 6m u x1 60 * 1 6r 101A _ m a t i x p o s _ E X _ i n3 21 63 2a d d rD a t a _ R A Md a t aFigure 7 The Micro-architecture of matrixpos Instruction 图 7 matrixpos 指令执行部件硬件模型 图 7 表

39、示 matrixpos 指令执行部件 图 中 r1, i, n, j 是输入信号 , 经过一个乘法器和一个加法器 , 计算出矩阵的位置为 r1+i*n+j A_getbit_EX_in 是控制信号 , 由译码阶段控制输出 , 如果为 1 则多路选择器 mux选择将计算的有效地址传送到数据内存 Data_RAM 的地址线 , 根据地址将内存数据存储到寄存器 r1 中 ;如果为 0 则传送一个无效地址 , 不进行任何读操作 10 5m u x0 * 5015r 1 _ a d d r5m u x0 * 501r 2 _ a d d rr 1A _ s w a p _ E X _ i nr 23 2

40、A _ s w a p _ E X _ i n3 2555a d d rd a t aR e g i s t e r sa d d rd a t aR e g i s t e r sFigure 8 The Micro-architecture of swap Instruction 图 8 swap 指令执行部件硬件模型 图 8 表示 swap 指令执行部件 图 中 r1, r2, r1_addr, r2_addr 是输入信号 , A_swap_EX_in 是控制信号 ,由译码阶段控制输出 如果为 1 则多路选择器 mux 选择将 r1 寄存器的值存储到 r2 寄存器 , 同时将 r2 寄存

41、器的值存储到 r1 寄存器 ; 如果为 0 则传送一个无效地址 , 不进行任何读操作 5 实验 仿真 结果 分析 实验中以 Xilinx 的 Virtex5 LX110T 为目标芯片 , 对 AES(128)_ASIP 处理器模型进行 综合 模拟 仿真 ,得出的实验结果如下表 3、 4 所示: Table 3 AES-128 performance 表 3 AES-128 算法 实验 结果对比表 Platform Reference Cycles ARM9TDMI Bertoni 2 1764 CryptoManiac Wu 8 90 AES ASIC Kuo 4 10 32-bit PTLU

42、 Fiskiran 5 315 8051singlechip Sun9 14850 AES_ASIP Our paper 732 Table 4 Compared with ARM9 ISA 表 4 ARM9 与 AES_ASIP 实验结果对比表 AES Encryption Clock Cycles AES Encryption Data Block Size AES Decryption Clock Cycles AES Decryption Data Block Size ARM9TDMI 862 cycles 783 bytes 902 cycles 786 bytes AES_ASI

43、P 368 cycles 418 bytes 364 cycles 407 bytes Performance Reduce 57.3x% Reduce 46.6x% Reduce 59.6x% Reduce 48.2x% 由 表 3、 4 可以得出以下结论: (1) 执行效率 方面:以 AES 加密 算法为例 , 通过周期级仿真统计出 AES_ASIP 运行 AES 加密 算法所需要的时钟周期数 , 相对 ARM 处理器减少了 57.3x%, 极大地 提高了算法的执行效率 ; (2) 代码空间方面:以 AES 加密 算法为例 , 在 ARM 处理器 上指令代码 占 用 783bytes 内存空间 , 而在 AES_ASIP 上 指令 代码 仅占用 416bytes, 节省了 46.6x%的代码 内存空间 通过指令 集架构 扩展 的优化 方式进行算法 指令 优化 , 可以有效地 减少存储算法 代码 的内存 空间

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 >

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。