基于aes的网络信息加密ip核的设计与实现方法

文档序号:10572467阅读:252来源:国知局
基于aes的网络信息加密ip核的设计与实现方法
【专利摘要】本发明公开了一种基于AES的网络信息加密IP核的设计与实现方法,本发明采用硬件实现的方式,采用高级加密标准,在数据链路层中对以太网络帧中的传输层数据进行加密,加密处理过程完全固化为硬件逻辑门电路,具备防止暴力破解、密码猜测和密钥的安全存储等功能,所以能够更好的解决微处理器串行工作时在速度上受限的问题和以太网络信息安全问题,从而使网络信息加密的速度和安全性得以进一步地提高。另外该方法中程序与集成电路工艺无关,可以移植到不同的半导体工艺中去生产集成电路芯片。传统的网络信息传输层加密的实现方式都是由软件实现的,相比于硬件加密实现的方式来说,安全性相对较低,速度较慢。
【专利说明】
基于AES的网络信息加密IP核的设计与实现方法
技术领域
[0001]本发明涉及网络信息加密的研究领域,特别涉及一种基于AES的网络信息加密IP核的设计与实现方法。
【背景技术】
[0002]伴随全球信息化步伐的加快,网络,尤其是有线,无线互联网络已与人们生活紧密相连,成为现代社会中信息交换不可或缺的载体,网络业务的普及,给人们生活带来了方便,但同时也带来了更多的安全隐患。今天,网络信息传递中产生的信息安全问题已经成为进一步推进信息化、加速网络应用中急需解决的关键问题之一。
[0003]如今,快速发展的网络安全技术能从不同角度来保证网络信息不受侵犯,网络安全的基本技术主要包括网络加密技术、防火墙技术、操作系统安全内核技术、身份验证技术、网络防病毒技术。网络加密技术是网络安全最有效的技术之一。一个加密网络,不但可以防止非授权用户的搭线窃听和入网,而且也是对付恶意软件的有效方法之一。网络信息加密的目的是保护网内的数据、文件、口令和控制信息,保护网上传输的数据。信息加密过程是由形形色色的加密算法来具体实施的,它以很小的代价提供很牢靠的安全保护。在多数情况下,信息加密是保证信息机密性的唯一方法。
[0004]目前,网络信息加密的实现方案大致分为两种:硬件加密的实现方式和软件加密的实现方式。
[0005]现有的网络信息硬件加密实现的方式主要采用的是链路加密,是针对链路层数据进行加密,经过一台网络节点设备的所有网络信息传输均需加、解密,每一个经过的节点都必须有密码装置,以便解密、加密报文;链路加密在这些网络节点处最易受到攻击。软件加密一般在应用层对数据进行加密,其对应的加密手段不仅需要相应的应用层协议支持,而且其安全性相对较低。在应用软件层可以使用暴力破解软件,不断的枚举密码就可以破解数据。相比之下,具有硬件加密功能的设备具备防止暴力破解,密码猜测和密钥的安全存储等功能,受到越来越多的欢迎。

【发明内容】

[0006]本发明的主要目的在于克服现有技术的缺点与不足,提供一种基于AES的网络信息加密IP核的设计与实现方法,相比于数据加密标准(DES),AES作为新一代的数据加密标准,其网络信息安全性将会获得进一步提高;AES算法硬件并行实现的速度大约是软件实现的3倍,用硬件实现了高速网络信息加密。
[0007]为了达到上述目的,本发明采用以下技术方案:
[0008]本发明基于AES的网络信息加密IP核的设计与实现方法,包括下述步骤:
[0009]S1、代码设计步骤:根据AES对称密码算法电子密码本模式的高级语言描述,严格按照其相应的时序实现并行运算的硬件语言描述;根据以太网络帧的封装格式,用硬件描述语言Verilog HDL实现在网络数据链路层解析以太网帧的类型,网络层报头信息,传输层报头信息等相关内容;根据解析到的以太网帧中传输层数据的起点,用Verilog HDL采用移位寄存器移入AES算法处理模块,对网络传输层中常用的协议帧进行加密处理,同时计算加密后数据的校验和checksum及帧校验序列FCS;
[0010]S2、功能仿真步骤:编写相应的testbench测试激励文件,分别对各个子模块进行逻辑功能的仿真验证,检验子模块设计的功能是否正确;对顶层模块进行逻辑功能的仿真验证,检验整体模块设计的功能是否正确;
[0011]S3、时序验证步骤:采用现场可编程门阵列FPGA器件,编写相应的顶层模块的工作时钟、输入输出延时和运行环境等约束脚本,把相应的Verilog模块和约束文件导入软件开发工具,进行综合布局布线和时序分析,把生成的配置数据文件下载到FPGA,进行硬件验证,检验模块设计是否达到时序要求。
[0012]作为优选的技术方案,步骤SI中,硬件描述语言程序具体的实现过程如下:
[0013]S1.1、AES密码算法电子密码本模式的编写中,采用的128bit的秘钥算法,在每轮变换中仿射变换过程采用的是ROM查表模式,AES密码算法的秘钥的存储采用的是安全的FLASH,可以通过配置接口配置秘钥信息;
[0014]S1.2、在处理以太网络帧中的类型时主要处理上层协议是网络层协议的帧,其他类型的帧直接转发;在处理网络层数据时主要处理网络层报头中上层协议字段是UDP协议和TCP协议的帧进行加密处理,其他类型的帧直接转发;传输层数据开始位置的定位是通过解析网络层报头的报头长度字段、协议字段,分段字段、数据偏移字段和TCP协议报头长度字段实现;在处理网络层分段的帧时,对于传输层使用的是UDP协议的帧时,第一段的含有UDP报头的checksum置为零,选择不校验数据和;对于传输层使用的是TCP协议的帧时,如果被传输层强制分段,则不经加密处理,选择直接转发。
[0015]作为优选的技术方案,在步骤SI中,所述常用传输层协议包括用户数据报协议UDP和传输控制协议TCP,针对使用这两种协议的传输层数据进行加解密处理,其他的协议不进行处理,直接转发。
[0016]作为优选的技术方案,所述步骤SI中,对以太网络协议数据处理的方法使用于IPv4和IPv6协议。
[0017]作为优选的技术方案,在所述步骤S2中,功能仿真具体的实现过程如下:对于各个子模块编写相应的时钟和数据激励文件,启动VCS仿真工具,在波形窗口中观察数据输出结果,借助计算机AES算法工具和网络协议分析工具等,验证数据波形输出的正确性。
[0018]作为优选的技术方案,步骤S2中,编写相应的testbench测试激励文,采用新思科技的verilog compiled simulator仿真工具进行模块的功能验证。
[0019]作为优选的技术方案,在所述步骤S3中,硬件验证具体的实现过程如下:
[0020]S3.1、步骤SI中用硬件描述语言实现的子模块可以被例化为多个实例,结合QuartusII中提供的先入先出IP核,连接成实际的工作门级电路,数据接收阶段边处理边缓存到FIFO中,发送的时候直接从FIFO中读出数据;在顶层模块中例化了一个缓存区调度模块和一个加密算法调度模块,实现多帧缓存区的调度,结合实际,例化了可以缓存两个以太网络帧的FIFO模块,实现边发送边接收缓存区乒乓块操作,提高网络数据处理的速度;
[0021 ] S3.2,在经过综合布局布线之后,配置数据流下载到FPGA配置芯片中,结合FPGA开发板网络接口,采用环路测试的方式,利用计算机辅助分析工具分析网络帧数据处理的正确性。
[0022]作为优选的技术方案,步骤S3中,把相应的Verilog模块和约束文件导入Altera公司综合性的PLD/FPGA开发软件Quartus II中,借助内嵌的综合器以及仿真器,完成从Veri log设计输入到硬件配置文件的生成。
[0023]本发明与现有技术相比,具有如下优点和有益效果:
[0024]1、本发明采用硬件实现的方式加密网络信息,具有防止暴力破解,密码猜测和密钥的安全存储等功能,可以减少终端设备微处理器的负担和系统内存占用。
[0025]2、本发明.采用新一代的高级加密标准,使用较少的硬件资源和安全的秘钥存储介质,网络终端设备的网络传输层信息的安全性得到进一步的提升。
[0026]3、本发明采用硬件直接加密网络传输层数据,具有很高的效率,处理后的数据可以被网络节点直接识别和转发,而网络节点处不需要添加额外的处理装置。
【附图说明】
[0027]图1是AES加密算法硬件描述语言程序经过synopsys公司的VCS仿真验证的时序波形图。
[0028]图2是借助SignalTap工具抓到的FPGA工作时的时序波形图。
[0029]图3是本发明的一种工作流程图。
[0030]图4是本发明的一种FPGA验证的结构框图。
【具体实施方式】
[0031]下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
[0032]实施例
[0033]本发明公开了一种基于AES的网络信息加密IP核的设计与实现,如图3所示,包括以下步骤:
[0034]步骤I,根据AES对称密码算法电子密码本模式数学原理,采用128bit秘钥,仿射变换采用ROM查表的方式实现,秘钥采用的是安全FLASH的进行配置储存,编写AES加解密的Verilog程序模块;根据IPv4以太网络帧的封装格式,用Verilog语言编写相应的数据链路层解析模块、网络层解析模块、传输层解析模块、加解密处理模块、多缓存区调度模块、数据发送模块和多缓存区加密算法调度模块等。
[0035]步骤1.1,先把网络串行数据流用移位寄存器转换成128bit的并行数据流,传送到AES密码算法模块,加解密处理后输出的数据转换成8bit位宽的串行数据流存入FIFO缓存中。
[0036]步骤1.2,网络帧的发送必须等到该帧数据缓存完以后再发送,发送该帧的时候下一帧的接收必须开始准备,因此必须实现多帧缓存的调度控制模块,以增加数据处理的吞吐量。
[0037]步骤1.3,多缓存接收数据时,根据所占用的数据缓存区,对加密算法进行调度控制,以实现接收到的网络传输层数据都能被加密算法处理。
[0038]步骤1.4经过处理后的网络帧在发送的阶段,启动FCS校验计算模块和计数器模块,通过计数器定位填充checksum数据,在缓存区为空的时候,数据发送结束的末尾填充32bit的CRC校验码。
[0039]步骤I.5硬件描述语言程序编写完成后,使用synopsys公司的Design Compiler(DC)逻辑综合优化工具对所有的硬件描述语言模块进行综合优化,得到顶层电路原理图和AES加密算法顶层模块电路原理图。
[0040]步骤2,编写各个程序模块的Testbench文件,采用VCS工具对各个子模块单独进行仿真验证,检查子模块设计功能的正确性;各个子模块验证结束以后,建立顶层(TOP)模块,例化各个模块,把各个子模块连接起来,组成一个完整的程序,编写顶层模块的Testbench文件,采用VCS工具对TOP模块单独进行仿真验证,检查该模块设计功能的正确性;
[0041]步骤2.1,子模块的Testbench模块的激励数据是从计算机网络协议辅助分析工具得到的,结合图3所示的本发明的工作流程图,根据数据产生的先后顺序依次输入各个子模块。
[0042]步骤2.2使用特定的秘钥和明文对AES加密算法模块进行仿真验证,在VCS工具中得到如图1所示的仿真验证的时序波形图。
[0043]步骤3,FPGA的硬件验证采用的是Altera公司的Cyclone IV系列可编程控制器件,验证的结构框图如图4所示,具体的器件型号EP4CE10F17C8,网络接口采用的RJ45接口,物理层PHY芯片采用的是Realtek RTL8201CP芯片;把所有子模块以及顶层模块的硬件描述语言程序全部导入到QuartusII工具中,结合FPGA的FIFO IP核,搭建完整的测试程序,选择正确的芯片型号,配置FPGA芯片的引脚,通过逻辑综合和布局布线,把最后生成的数据流配置文件通过Blaster下载器下载到FPGA的配置芯片中。
[0044]步骤3.1所有子模块以及顶层模块的硬件描述语言程序结合FIFO IP核导入到QuartusII工具中,经过正确的优化配置之后得到综合后的顶层模块原理图。
[0045]步骤4,实验数据测试的方案,采用的是网络回路测试的方案,结合计算机辅助处理软件,发送以太网络数据帧到FPGA开发板进行加密处理,处理后的数据通过网络转发到计算机,借助网络协议分析工具,查看协议字段和传出层数据的处理正确性;有关缓存区调度处理的过程和加密算法处理的实际工作状态,借助QuartusII的SignalTap工具抓取内部状态变量的实际工作波形,查看调度程序的正确性。图2即是借助SignalTap工具抓到的FPGA工作时的时序波形图。
[0046]本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
[0047]尽管本文较多地使用了以太网络1、网络信息2、AES密码算法3、硬件描述语言程序
4、仿真验证5、传输层6、多缓存7等术语,但并不排除使用其它术语的可能性。使用这些术语仅仅是为了更方便地描述和解释本发明的本质;把它们解释成任何一种附加的限制都是与本发明精神相违背的。
[0048]上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
【主权项】
1.基于AES的网络信息加密IP核的设计与实现方法,其特征在于,包括下述步骤: 51、代码设计步骤:根据AES对称密码算法电子密码本模式的高级语言描述,严格按照其相应的时序实现并行运算的硬件语言描述;根据以太网络帧的封装格式,用硬件描述语言Verilog HDL实现在网络数据链路层解析以太网帧的类型,网络层报头信息,传输层报头信息等相关内容;根据解析到的以太网帧中传输层数据的起点,用Verilog HDL采用移位寄存器移入AES算法处理模块,对网络传输层中常用的协议帧进行加密处理,同时计算加密后数据的校验和checksum及帧校验序列FCS; 52、功能仿真步骤:编写相应的testbench测试激励文件,分别对各个子模块进行逻辑功能的仿真验证,检验子模块设计的功能是否正确;对顶层模块进行逻辑功能的仿真验证,检验整体模块设计的功能是否正确; 53、时序验证步骤:采用现场可编程门阵列FPGA器件,编写相应的顶层模块的工作时钟、输入输出延时和运行环境等约束脚本,把相应的Verilog模块和约束文件导入软件开发工具,进行综合布局布线和时序分析,把生成的配置数据文件下载到FPGA,进行硬件验证,检验模块设计是否达到时序要求。2.根据权利要求1所述的基于AES的网络信息加密IP核的设计与实现方法,其特征在于,步骤SI中,硬件描述语言程序具体的实现过程如下: S1.1、AES密码算法电子密码本模式的编写中,采用的128b i t的秘钥算法,在每轮变换中仿射变换过程采用的是ROM查表模式,AES密码算法的秘钥的存储采用的是安全的FLASH,可以通过配置接口配置秘钥信息; S1.2、在处理以太网络帧中的类型时主要处理上层协议是网络层协议的帧,其他类型的帧直接转发;在处理网络层数据时主要处理网络层报头中上层协议字段是UDP协议和TCP协议的帧进行加密处理,其他类型的帧直接转发;传输层数据开始位置的定位是通过解析网络层报头的报头长度字段、协议字段,分段字段、数据偏移字段和TCP协议报头长度字段实现;在处理网络层分段的帧时,对于传输层使用的是UDP协议的帧时,第一段的含有UDP报头的checksum置为零,选择不校验数据和;对于传输层使用的是TCP协议的帧时,如果被传输层强制分段,则不经加密处理,选择直接转发。3.根据权利要求1或2所述的基于AES的网络信息加密IP核的设计与实现方法,其特征在于,在步骤SI中,所述常用传输层协议包括用户数据报协议UDP和传输控制协议TCP,针对使用这两种协议的传输层数据进行加解密处理,其他的协议不进行处理,直接转发。4.根据权利要求1或2所述的基于AES的网络信息加密IP核的设计与实现方法,其特征在于,所述步骤SI中,对以太网络协议数据处理的方法使用于IPv4和IPv6协议。5.根据权利要求1所述的基于AES的网络信息加密IP核的设计与实现方法,其特征在于,在所述步骤S2中,功能仿真具体的实现过程如下:对于各个子模块编写相应的时钟和数据激励文件,启动VCS仿真工具,在波形窗口中观察数据输出结果,借助计算机AES算法工具和网络协议分析工具等,验证数据波形输出的正确性。6.根据权利要求1所述的基于AES的网络信息加密IP核的设计与实现方法,其特征在于,步骤S2中,编写相应的testbench测试激励文,采用新思科技的verilog compiledsimulator仿真工具进行模块的功能验证。7.根据权利要求1所述的基于AES的网络信息加密IP核的设计与实现方法,其特征在于,在所述步骤S3中,硬件验证具体的实现过程如下: 53.1、步骤SI中用硬件描述语言实现的子模块可以被例化为多个实例,结合QuartusII中提供的先入先出IP核,连接成实际的工作门级电路,数据接收阶段边处理边缓存到FIFO中,发送的时候直接从FIFO中读出数据;在顶层模块中例化了一个缓存区调度模块和一个加密算法调度模块,实现多帧缓存区的调度,结合实际,例化了可以缓存两个以太网络帧的FIFO模块,实现边发送边接收缓存区乒乓块操作,提高网络数据处理的速度; 53.2,在经过综合布局布线之后,配置数据流下载到FPGA配置芯片中,结合FPGA开发板网络接口,采用环路测试的方式,利用计算机辅助分析工具分析网络帧数据处理的正确性。8.根据权利要求1所述的基于AES的网络信息加密IP核的设计与实现方法,其特征在于,步骤S3中,把相应的Veri log模块和约束文件导入Altera公司综合性的PLD/FPGA开发软件Quartus II中,借助内嵌的综合器以及仿真器,完成从Verilog设计输入到硬件配置文件的生成。
【文档编号】H04L9/06GK105933106SQ201610219348
【公开日】2016年9月7日
【申请日】2016年4月8日
【发明人】郭凯乐, 熊晓明
【申请人】广东工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1