CN105959100B - 一种基于fpga的在线生成密钥的aes数据加密方法 - Google Patents

一种基于fpga的在线生成密钥的aes数据加密方法 Download PDF

Info

Publication number
CN105959100B
CN105959100B CN201610467088.7A CN201610467088A CN105959100B CN 105959100 B CN105959100 B CN 105959100B CN 201610467088 A CN201610467088 A CN 201610467088A CN 105959100 B CN105959100 B CN 105959100B
Authority
CN
China
Prior art keywords
key
wheel
round
invaddroundkey
fpga
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201610467088.7A
Other languages
English (en)
Other versions
CN105959100A (zh
Inventor
杨志欣
李�杰
倪红
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TIANJIN ZHONGANHUADIAN DATA SECURITY TECHNOLOGY Co Ltd
Original Assignee
TIANJIN ZHONGANHUADIAN DATA SECURITY TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by TIANJIN ZHONGANHUADIAN DATA SECURITY TECHNOLOGY Co Ltd filed Critical TIANJIN ZHONGANHUADIAN DATA SECURITY TECHNOLOGY Co Ltd
Priority to CN201610467088.7A priority Critical patent/CN105959100B/zh
Publication of CN105959100A publication Critical patent/CN105959100A/zh
Application granted granted Critical
Publication of CN105959100B publication Critical patent/CN105959100B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0457Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply dynamic encryption, e.g. stream encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

一种基于FPGA的在线生成密钥的AES数据加密方法
技术领域
本发明属于汽车涂装技术领域,具体涉及一种基于FPGA的在线生成密钥的AES数据加密方法。
背景技术
随着信息化的发展,计算机和互联网深入到生活工作生产中的方方面面。对应的,网络信息安全问题也随之成为目前至关重要的问题之一。
网络安全主是要针对网络攻击,防洪网络攻击。针对网络攻击,从网络结构上筑造坚固的堡垒进行防范和完善恶意行为监测机制是一方面,另一方面数据安全,即数据传输、数据存储的安全也至关重要。而数据的泄露主要是由于数据传输存储过程中采用明文或是仅采用简单加密方式导致的信息泄露。黑客攻击防不胜防,在数据的传输和存储过程中,对数据选取安全有效的加密加密算法进行加密是保证数据安全、防止信息泄露的最常见也是最重要的方式。
对数据加密采用的算法的安全有效性方面,AES(Advanced EncryptionStandard)算法已久经考验。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所示密钥扩展第一异或门、密钥扩展第二异或门、密钥扩展第三个异或门,前一个异或门的输出作为下一下异或门的输入进行处理,通过三个异或门最终完成该每轮的轮密钥架的操作。
需要说明的是,本发明中,每一轮的所述密钥在字循环移位、字节替换后具体可采用三个异或门ROX通过轮常量异或生成。
每一轮的密钥形成的步骤具体是,对上一轮密钥的最后一个字进行循环移位,然后进行字节替换以及轮常量异或而形成。
字节替换就是对循环移位产生的结果进行字节替换;
轮常量异或就是字节替换产生的结果需要与一个常量进行异或运算,该常量称为轮常量,该异或操作这里称为轮常量异或。十轮密钥扩展使用的轮常量各不相同,用一个数组来表示。
具体的,生产每轮所述密钥的三个异或门的处理过程分别分别对应于加密操作的列混合和轮密钥加的三个异或门的处理步骤,生成的每一轮密钥分别用于对应的每轮列混合和轮密钥加的步骤(其中,第10轮中无列混合步骤,只有轮密钥架的操作步骤)。
具体的,本发明中,每一轮的加密操作以及每一轮的密钥操作中的字节替换均是通过S盒查(S-BOX)找表的方式实现。
所述S盒采用FPGA的的可重构逻辑单元实现通过查找表的方式实现,通过可重构逻辑单元访问该查找表并不经过总线访存,该查找表同加密算法的其他模块之间有快速的交互通道,从而提高了处理的速度,减少了延时。
本发明中,每一轮的加密操作以及密钥中的字节替换采用S盒实现,所述S盒的作用是针对状态数组或密钥数组的每一个字节,找到它对应的非线性变换后的结果,在状态数组或密钥数组中对其进行替换。
需要说明的是,本发明中,所述FPGA器件可以采用为Altera公司的Stratix IV系列,该系列FPGA中ALM(High-performance adaptive logic modules,可重构单元)数量在23万至36万之间,一个ALM至少可以相当于一个256的RAM,相当于可以实现6-9Mbit的RAM,用于实现不在一个数量级的40Kbit或 400Kbit的S盒,并且不影响其他设计。
本发明方法运用在Altera的Stratix IV系列FPGA环境中,在线密钥生成时,反馈模式的吞吐率能够达到3.76Gbps。
可见,本发明提出的基于FPGA的AES数据加密方法,通过将预先分割形成的状态数组首先进行第0轮轮密钥加操作,之后再按加密算法的加密逻辑顺序输入按反馈工作模式通过在线方式依次顺序产生的1-10轮密钥对上一轮加密操作后形成的状态数组依次顺序加密形成相应密文输出,且1-9轮中每轮的列混合和轮密钥加的步骤合并形成一个步骤,第1轮的密钥的生成时刻与第0轮轮密钥加操作同步,大大提高了加密算法的加密处理的性能。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (7)

1.一种基于FPGA的在线生成密钥的AES数据加密方法,其特征在于,包括以下步骤:将待处理的数据流按预设的处理方法预处理,分割成多个预定长度的状态数组;将所述状态数组首先进行第0轮轮密钥加操作,之后再按加密算法的加密逻辑顺序输入按反馈工作模式的密钥形成方法通过在线方式依次顺序产生的1-10轮密钥对上一轮加密操作后形成的状态数组依次顺序加密形成相应密文输出;其中,第1-9轮的加密过程依次包括字节替换、行移位、列混合和轮密钥加的操作,且1-9轮中每轮的列混合和轮密钥加的步骤合并形成一个步骤,所述列混合和轮密钥加的步骤采用三个异或门依次进行完成每轮轮密钥加处理;第10轮的加密过程包括字节替换、行移位和轮密钥加的操作;其中,第1轮的密钥的生成时刻与第0轮轮密钥加操作同步。
2.根据权利要求1所述基于FPGA的在线生成密钥的AES数据加密方法,其特征在于,所述1-10轮密钥是利用输入的种子密钥和密钥扩展算法按逻辑顺序在线依次生成。
3.根据权利要求2所述基于FPGA的在线生成密钥的AES数据加密方法,其特征在于,所述种子密钥是AES加密算法的输入密钥,该输入密钥作为输入参与第0轮轮密钥加操作。
4.根据权利要求3所述基于FPGA的在线生成密钥的AES数据加密方法,其特征在于,所述1-10轮密钥的每一轮密钥的生成采用以下步骤:维护一个密钥调度表,用于存储种子密钥和十轮密钥;该密钥调度表为一个4行4×11列的二维数组,每个数组单元为一个字节,二维数组的每一列作为一个字;所述种子密钥被复制到密钥调度表的前四个字中,然后第一轮密钥扩展生成的密钥占据之后的四个字,依此编排,十轮扩展之后,密钥调度表会被填满,密钥扩展过程结束,其中,每一轮密钥生成是通过字循环移位、字节替换以及轮常量异或的步骤顺序操作形成。
5.根据权利要求4所述基于FPGA的在线生成密钥的AES数据加密方法,其特征在于,每一轮的加密操作以及每一轮的密钥扩展操作中的字节替换均是通过S盒查找表的方式实现。
6.根据权利要求5所述基于FPGA的在线生成密钥的AES数据加密方法,其特征在于,所述S盒采用FPGA的可重构逻辑单元通过查找表的方式实现。
7.根据权利要求4-6任一项所述基于FPGA的在线生成密钥的AES数据加密方法,其特征在于,所述1-10轮轮密钥在字循环移位、字节替换后,利用三个异或门依次处理后生成。
CN201610467088.7A 2016-06-23 2016-06-23 一种基于fpga的在线生成密钥的aes数据加密方法 Expired - Fee Related CN105959100B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610467088.7A CN105959100B (zh) 2016-06-23 2016-06-23 一种基于fpga的在线生成密钥的aes数据加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610467088.7A CN105959100B (zh) 2016-06-23 2016-06-23 一种基于fpga的在线生成密钥的aes数据加密方法

Publications (2)

Publication Number Publication Date
CN105959100A CN105959100A (zh) 2016-09-21
CN105959100B true CN105959100B (zh) 2019-04-16

Family

ID=56904692

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610467088.7A Expired - Fee Related CN105959100B (zh) 2016-06-23 2016-06-23 一种基于fpga的在线生成密钥的aes数据加密方法

Country Status (1)

Country Link
CN (1) CN105959100B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111400730B (zh) * 2020-03-11 2022-03-08 西南石油大学 一种基于弱关联性的aes密钥扩展方法
CN111600867B (zh) * 2020-05-12 2021-10-29 腾讯科技(深圳)有限公司 一种数据加密方法和相关设备
CN112733160A (zh) * 2020-12-30 2021-04-30 武汉海昌信息技术有限公司 一种基于数据库的加密读写方法、装置及存储介质
CN113452508B (zh) * 2021-08-27 2021-12-10 北京华云安信息技术有限公司 数据加密方法、装置、设备和计算机可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101009554A (zh) * 2007-01-17 2007-08-01 华中科技大学 一种抗功耗攻击的字节替换电路

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100246815A1 (en) * 2009-03-31 2010-09-30 Olson Christopher H Apparatus and method for implementing instruction support for the kasumi cipher algorithm

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101009554A (zh) * 2007-01-17 2007-08-01 华中科技大学 一种抗功耗攻击的字节替换电路

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"AES算法中密钥扩展和列混合单元的可重构设计";高娜娜,宋丽华;《北京信息科技大学学报》;20120815;第27卷(第4期);第51-55页
"一种AES密码算法的硬件实现";王赜坤,陈松涛;《集成电路设计》;20100815;第10-13页

Also Published As

Publication number Publication date
CN105959100A (zh) 2016-09-21

Similar Documents

Publication Publication Date Title
Yazdeen et al. FPGA implementations for data encryption and decryption via concurrent and parallel computation: A review
CN105959100B (zh) 一种基于fpga的在线生成密钥的aes数据加密方法
CN107070630B (zh) 一种aes算法的快速安全硬件结构
CN101383703B (zh) 基于广义信息域的动态加解密方法
CN102546157B (zh) 一种抵抗能量分析的随机混合加密系统及其实现方法
CN105939190A (zh) 基于fpga的离线生成密钥的aes数据加密方法
CN101394268B (zh) 基于广义信息域的高级加密系统及方法
CN105933108B (zh) 一种对sm4算法实现破解的方法
CN104618094B (zh) 一种增强抗攻击能力的密码Mask方法
CN108429613A (zh) 一种基于en-present算法的电网信息加密方法
CN103051442A (zh) 采用Feistel-PG结构的密码装置及加密方法
CN102710413A (zh) 一种抗dpa/spa攻击的系统和方法
CN105846814A (zh) 针对加密技术领域乘法运算的量子逻辑电路的构造方法
CN104360605B (zh) 一种基于延迟链复用的PUFs电路
CN101826959B (zh) 一种面向字节的密钥流生成方法及加密方法
CN108650072B (zh) 一种支持多种对称密码算法的芯片的抗攻击电路实现方法
CN101848078A (zh) 一种密钥流序列扰动方法及加密方法
CN103260154B (zh) 一种基于128-eia3的完整性保护增强方法
CN106936822A (zh) 针对sms4抗高阶旁路分析的掩码实现方法及系统
CN107835070B (zh) 一种简单的嵌入式加密方法
Kumar et al. Enhanced TACIT algorithm based on Charl’s table for secure routing in NoC architecture
CN102523085A (zh) 数据加密方法、装置及智能卡
CN101364868B (zh) 基于广义信息域的伪随机码发生器及其发生方法
CN104735652A (zh) 一种适用于无线传感器网络的混沌加密方法
CN101848079B (zh) 一种面向字、带记忆的序列扰动方法及加密方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190416

Termination date: 20210623