0AASRI Procedia 5(2013)209-21302212-6716 © 2013 The Authors. Published by Elsevier B.Vunder responsibility of American Applied Science Research Institute doi:10.1016/j.aasri.2013.10.0800ScienceDirect02013年AASRI并行与分布式计算系统会议0基于FPGA的DES加密算法的实现0蔡红梅等人0西北民族大学0中国甘肃兰州0摘要0基于FPGA的数据加密标准算法的实现是非常必要的。基于硬件的DES算法实现是一种低成本、灵活和高效的加密解决方案。本文采用循环迭代的方法,使用128位密钥大小,并基于S盒的查找表进行实现。仿真波形表明FPGA的结果满足要求。01. 引言0数据加密标准使用密钥进行自定义转换,因此可以进行解密。他们知道0对于嵌入式应用程序来说,保护重要数据非常重要。本文介绍了基于FPGA的数据加密标准(DES)算法的实现。基于硬件的DES算法实现是一种低成本、灵活和高效的加密解决方案。本文采用循环迭代的方法,使用128位密钥大小,并基于S盒的查找表进行实现。仿真波形表明FPGA的结果满足要求。0*通讯作者。电话:1-399-318-9468;电子邮件地址:cindyliu888@qq.com。0在线提供:www.sciencedirect.com0根据CC BY-NC-ND许可证开放访问。0根据CC BY-NC-ND许可证开放访问。0根据CC BY-NC-ND许可证开放访问。 0210 蔡红梅等人 / AASRI Procedia 5(2013)209-2130与其他分组密码一样,数据加密标准不是一种安全的加密方式。它必须通过一种操作模式来代替。该密钥通常作为八个字节传输或存储。密钥的每个八位中的1位可以用于密钥分配、生成和存储中的错误检查。位8、16、……、64用于确保每位都是奇校验。02. FPGA特点0FPGA是一种半导体器件。它可以在生产后进行编程。不受任何特定硬件功能的限制。FPGA允许您的程序产品可变。因此,它被称为“现场可编程”。FPGA可以实现任何逻辑功能。它可以通过ASIC执行。但它可以在超过许多应用程序的情况下更新功能。与较早一代FPGA相比,今天的FPGA和以前的FPGA有所不同。具体而言,FPGA包含称为LE的可编程逻辑组件。可重构互连的层次结构使LE能够在物理上相关。并且可以配置LE以执行复杂的组合功能,或仅执行ANDOR等简单逻辑门。大多数FPGA逻辑块还包含内存元素,可以是简单的触发器或更完整的内存块。随着FPGA的不断增加,设备变得更加集成。内置到FPGA结构中的硬件IP块使产品具有差异。使用硬件嵌入式处理器生产的新型FPGA系列将设备改变为SOC。03. DES原理0置换和代换的组合称为产品密码。算法包括在密钥和要加密的文本之间执行的代换,组合和置换的实现,以确保操作可以在各个方向上执行。算法的主要部分如下:将文本的一部分分成64位块;对块进行置换;将块分成两个部分:右部和左部;代换和置换步骤将重复十六次;重新组合右部和左部,然后进行反向置换,如图1所示。0图1. DES加密算法064位输入0初始排列IP0L1 = R0 R1 = L0 + f(R0,K1)0L15 = R14 R15 = L14 + f(R14,K15)0L16 = R16 R16 = L15 + f(R15,K16)064位输出 0211 蔡红梅等人 / AASRI Procedia 5(2013)209-21304. 使用VHDL实现DES算法0代表性设计流程包括在转换为最终硬件时需要进行多个阶段的验证的实施。设计阶段包括在软件和硬件之间选择适当的项目部分,然后根据在不同工具和不同语言中实现的适应性对软件和硬件组成部分进行划分。DES算法每次迭代的内部操作可以通过组合逻辑来实现。系统控制部分应由迭代次数控制。DES算法的整体图示如图2所示。0图2. DES总体图0迭代的逻辑操作是在组合逻辑电路中完成的。组合逻辑电路由以下模块组成:扩展运算、加密算法、压缩算法、替换操作和异或操作。迭代过程的管理和控制是在时序逻辑电路中完成的。时序电路被描述为状态机,如图3所示。0图3. 状态流程图0等待 密钥 等待 数据0最终轮 重复轮0key_ready='00key_ready='10lddata='0'0lddata='1'0roundcounter<150roundcounter=150无条件传输0组合逻辑电路0E_expression0S盒 add_key P盒0add_left0key_schedule原始密钥0生成 0212 蔡红梅等人 / AASRI Procedia 5(2013)209-2130对于使用数百个基本门进行设计的大型设计,使用示意图很难对设计电路进行说明。硬件描述语言提供了电路行为和框架的标准文本表达方式。因此,硬件描述语言是在FPGA中设计逻辑的首选方式。VHDL是一种用于描述FPGA行为的语言,用于电气设计中的应用特定电路系统。VHDL在许多领域中描述了电子组件的功能。为了提高电路的精确性,创建了VHDL仿真模型。构建更大电路的基础由原理图、系统级描述和仿真模型组成。一些设计示例:stim_proc:进程 重置<= '1';等待30 ns;重置<= '0';等待20 ns;ldkey <= '1';key_in <=x"FFFFFFFFFFFFFFFF";等待20 ns;lddata <= '1';data_in <= x"7359B2163E4EDC58";等待;结束进程;05. 结论0在设计完成后,为了检查设计的正确性,第一步是进行仿真,然后将结果编程到板上的FPGA芯片中。为了确保其正确性,有必要进行仿真。可以使用名为QuartusII的软件来模拟设计的行为。仿真器的结果通过示波器图显示。本文表明,一轮子密钥预计算技术可以实现更快的设计,并为加密和解密生成子密钥而不会影响性能。所有设计均在FPGA上实现。0致谢0本工作得到青年学者研究基金重点项目资助,项目编号:zyz2012080.本工作得到青年学者研究基金学院基金资助,项目编号:X2010-23 XBMU-2010-BD-140.0通讯作者0通讯作者的联系方式必须包括:刘彩虹,cindyliu888@qq.com,13993189468 0213 刘彩虹等 / AASRI Procedia 5 ( 2013 ) 209 – 2130参考文献0[1]McLoone, Máire. 一种FPGA高性能DES实现. 2000 IEEE ;374-383. [2] 刘彩虹,季晋水,陈秀萍.基于FPGA的步进电机控制模块,2010年国际电子产品、电子服务和电子娱乐会议,2010. [3] 陈秀萍.基于FPGA的ADC控制模块设计,2011年IEEE计算机科学与自动化工程国际会议,2011.