一种基于FPGA的在线生成密钥的AES数据加密方法技术

技术编号:13741293 阅读:355 留言:0更新日期:2016-09-22 22:36
本发明专利技术涉及一种基于FPGA的在线生成密钥的AES数据加密方法,包括:将预分割形成的状态数组首先进行第0轮轮密钥加操作,之后再按加密算法的加密逻辑顺序输入按反馈工作模式的密钥形成方法通过在线方式依次顺序产生的1‑10轮密钥对上一轮加密操作后形成的状态数组依次顺序加密形成相应密文输出;第1轮的密钥的生成时刻与第0轮轮密钥加操作同步。本发明专利技术提出的基于FPGA的AES数据加密方法,通过以上的技术方案,大大提高了加密算法的加密处理的性能。

【技术实现步骤摘要】

本专利技术属于汽车涂装
,具体涉及一种基于FPGA的在线生成密钥的AES数据加密方法
技术介绍
随着信息化的发展,计算机和互联网深入到生活工作生产中的方方面面。对应的,网络信息安全问题也随之成为目前至关重要的问题之一。网络安全主是要针对网络攻击,防洪网络攻击。针对网络攻击,从网络结构上筑造坚固的堡垒进行防范和完善恶意行为监测机制是一方面,另一方面数据安全,即数据传输、数据存储的安全也至关重要。而数据的泄露主要是由于数据传输存储过程中采用明文或是仅采用简单加密方式导致的信息泄露。黑客攻击防不胜防,在数据的传输和存储过程中,对数据选取安全有效的加密加密算法进行加密是保证数据安全、防止信息泄露的最常见也是最重要的方式。对数据加密采用的算法的安全有效性方面,AES(Advanced Encryption Standard)算法已久经考验。Rijndael算法是经过五年的甄选评估测试,由美国国家标准与技术研究院(NIST)最终选定的新一代数据加密标准,即AES。AES算法指的就是Rijndael算法,它是一种开放性对称分组加密算法。AES算法不仅对目前已知的密码分析攻击具备很强的抗攻击性,而且在实现方面,算法简单明了,计算量相对较小。作为目前最优秀的对称加密算法,其应用已深入各个安全领域,是事实标准。然而在针对目前大规模的高速数据流,数据加密性能方面,使用传统的软件加密来处理,不仅在实时性上会拖慢传输速度,而且大量占用主机的CPU,使得主机性能严重下降,若加密模块的实现采用专用高速硬件的实现方式,就能够绕开传统软件加密的缺点,更好地实现性能需求。但是在国内,针对高性能的硬件加密模块的研究却不多,更多的研究集中于低功耗的嵌入式设备中的加密模块设计。因此,设计能实现高性能硬件加密模块,对于应对我国目前的数据加密性能需求具有重要意义。
技术实现思路
本专利技术的目的在于解决上述的技术问题而提供一种基于FPGA的AES数据加密方法。为实现上述目的,本专利技术采用如下技术方案:一种基于FPGA的在线生成密钥的AES数据加密方法,包括以下步骤:将待处理的数据流按预设的处理方法预处理,分割成多个预定长度的状态数组;将所述状态数组首先进行第0轮轮密钥加操作,之后再按加密算法的加密逻辑顺序输入按反馈工作模式通过在线方式依次顺序产生的1-10轮密钥对上一轮加密操作后形成的状态数组依次顺序加密形成相应密文输出;其中,第1-9轮的加密过程依次包括字节替换、行移位、列混合和轮密钥加的操作,且1-9轮中每轮的列混合和轮密钥加的步骤合并形成一个步骤,所述列混合和轮密钥加的步骤采用三个异或门依次进行完成每轮轮密钥加处理;第10轮的加密过程包括字节替换、行移位和轮密钥加的操作;其中,第1轮的密钥的生成时刻与第0轮轮密钥加操作同步。所述1-10轮密钥是利用输入的种子密钥和密钥扩展算法按逻辑顺序在线依次生成。所述种子密钥是AES加密算法的输入密钥,该输入密钥作为输入参与第0轮轮密钥加操作。所述1-10轮密钥的每一轮密钥的生成采用以下步骤:维护一个密钥调度表,用于存储种子密钥和十轮密钥;该密钥调度表为一个4行4×11列的二维数组,每个数组单元为一个字节,二维数组的每一列作为一个字;所述种子密钥被复制到密钥调度表的前四个字中,然后第一轮密钥扩展生成的密钥占据之后的四个字,依此编排,十轮扩展之后,密钥调度表会被填满,密钥扩展过程结束,其中,每一轮密钥生成是通过字循环移位、字节替换以及轮常量异或的步骤顺序操作形成。每一轮的加密操作以及每一轮的密钥扩展操作中的字节替换均是通过S盒查找表的方式实现。所述S盒采用FPGA的的可重构逻辑单元实现通过查找表的方式实现。所述1-10轮密钥利用三个异或门依次处理后而形成。本专利技术提出的基于FPGA的AES数据加密方法,通过将预先分割形成的状态数组首先进行第0轮轮密钥加操作,之后再按加密算法的加密逻辑顺序输入按反馈工作模式通过在线方式依次顺序产生的1-10轮密钥对上一轮加密操作后形成的状态数组依次顺序加密形成相应密文输出,且1-9轮中每轮的列混合和轮密钥加的步骤合并形成一个步骤,第1轮的密钥的生成时刻与第0轮轮密钥加操作同步,大大提高了加密算法的加密处理的性能。附图说明图1为本专利技术实施例提供的基于FPGA的在线生成密钥的AES数据加密方法的加密流程示意图;图2为本专利技术实施例提供的基于FPGA的在线生成密钥的AES数据加密方法的密钥的形成流程示意图;图3为本专利技术实施例提供的基于FPGA的在线生成密钥的AES数据加密方法的电路原理示意图。具体实施方式下面,结合实例对本专利技术的实质性特点和优势作进一步的说明,但本专利技术并不局限于所列的实施例。参见图1-3所示, 一种基于FPGA的在线生成密钥的AES数据加密方法,包括以下步骤:将待处理的数据流按预设的处理方法预处理,分割成多个预定长度的状态数组;将所述状态数组首先进行第0轮轮密钥加操作,之后再按加密算法的加密逻辑顺序输入按反馈工作模式的密钥形成方法通过在线方式依次顺序产生的1-10轮密钥对上一轮加密操作后形成的状态数组依次顺序加密形成相应密文输出;其中,第1-9轮的加密过程依次包括字节替换、行移位、列混合和轮密钥加的操作,且1-9轮中每轮的列混合和轮密钥加的步骤合并形成一个步骤,所述列混合和轮密钥加的步骤采用三个异或门ROX依次进行完成每轮轮密钥加处理;第10轮的加密过程包括字节替换、行移位和轮密钥加的操作;其中,第1轮的密钥的生成时刻与第0轮轮密钥加操作同步。所述的列混合和轮密钥加的步骤采用三个异或门ROX,如图1所示,分别为列混合和轮密钥加第一个异或门ROX、列混合和轮密钥加第二个异或门ROX、列混合和轮密钥加第三个异或门ROX。所述1-10轮密钥是利用输入的种子密钥和密钥扩展算法按逻辑顺序在线依次生成。具体在对一组状态数组进行加密时,通过首先判断加密轮数R是否为0依次按上述的方法步骤进行10轮的加密处理操作,在加密轮数为11时结束,这样一组状态数组的加密完成,然后再按同样的加密操作处理方法进行下一组状态数组的加密,最后输出相应的密文。所述种子密钥是AES加密算法的输入密钥,该输入密钥作为输入参与第0轮轮密钥加操作,同时也是密钥扩展的唯一输入参数。本专利技术中,所述1-10轮密钥的每一轮密钥的生成采用以下步骤:维护一个密钥调度表,用于存储种子密钥和十轮密钥;该密钥调度表为一个4行4×11列的二维数组,每个数组单元为一个字节,二维数组的每一列作为一个字;所述种子密钥被复制到密钥调度表的前四个字中,然后第一轮密钥扩展生成的密钥占据之后的四个字,依此编排,十轮扩展之后,密钥调度表会被填满,密钥扩展过程结束,其中,每一轮密钥生成是通过上一轮密钥的四个字经过字循环移位、字节替换以及轮常量异或的步骤顺序操作形成。具体的,如一个128bit长度的初始密钥被视为一个分组,按照与数据分组相同的状态数组编排规则,将初始密钥分组编排成状态数组的形式,密钥以同样的状态数组形式存在,这样的设计使得密钥能够更加直观简便地参与到加密过程中。其中,所述1-10轮密钥利用三个异或门依次处理后而形成,如图2所示密钥扩展第一异或门、密钥扩展第二异或门、密钥扩展第三个异或门,前一个异或门的输出作为下一下异或门的输入进本文档来自技高网
...

【技术保护点】
一种基于FPGA的在线生成密钥的AES数据加密方法,其特征在于,包括以下步骤:将待处理的数据流按预设的处理方法预处理,分割成多个预定长度的状态数组;将所述状态数组首先进行第0轮轮密钥加操作,之后再按加密算法的加密逻辑顺序输入按反馈工作模式的密钥形成方法通过在线方式依次顺序产生的1‑10轮密钥对上一轮加密操作后形成的状态数组依次顺序加密形成相应密文输出;其中,第1‑9轮的加密过程依次包括字节替换、行移位、列混合和轮密钥加的操作,且1‑9轮中每轮的列混合和轮密钥加的步骤合并形成一个步骤,所述列混合和轮密钥加的步骤采用三个异或门依次进行完成每轮轮密钥加处理;第10轮的加密过程包括字节替换、行移位和轮密钥加的操作;其中,第1轮的密钥的生成时刻与第0轮轮密钥加操作同步。

【技术特征摘要】
1.一种基于FPGA的在线生成密钥的AES数据加密方法,其特征在于,包括以下步骤:将待处理的数据流按预设的处理方法预处理,分割成多个预定长度的状态数组;将所述状态数组首先进行第0轮轮密钥加操作,之后再按加密算法的加密逻辑顺序输入按反馈工作模式的密钥形成方法通过在线方式依次顺序产生的1-10轮密钥对上一轮加密操作后形成的状态数组依次顺序加密形成相应密文输出;其中,第1-9轮的加密过程依次包括字节替换、行移位、列混合和轮密钥加的操作,且1-9轮中每轮的列混合和轮密钥加的步骤合并形成一个步骤,所述列混合和轮密钥加的步骤采用三个异或门依次进行完成每轮轮密钥加处理;第10轮的加密过程包括字节替换、行移位和轮密钥加的操作;其中,第1轮的密钥的生成时刻与第0轮轮密钥加操作同步。2.根据权利要求1所述基于FPGA的在线生成密钥的AES数据加密方法,其特征在于,所述1-10轮密钥是利用输入的种子密钥和密钥扩展算法按逻辑顺序在线依次生成。3. 根据权利要求2所述基于FPGA的在线生成密钥的AES数据加密方法,其特征在于,所述种子密钥是AES加密算法的输入密钥,该输入密钥作为输入...

【专利技术属性】
技术研发人员:杨志欣李杰倪红
申请(专利权)人:天津中安华典数据安全科技有限公司
类型:发明
国别省市:天津;12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1