CN111385290A - 一种基于fpga的抗dpa攻击的aes加密方法 - Google Patents

一种基于fpga的抗dpa攻击的aes加密方法 Download PDF

Info

Publication number
CN111385290A
CN111385290A CN202010136860.3A CN202010136860A CN111385290A CN 111385290 A CN111385290 A CN 111385290A CN 202010136860 A CN202010136860 A CN 202010136860A CN 111385290 A CN111385290 A CN 111385290A
Authority
CN
China
Prior art keywords
mask
stable
key
data
unit
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.)
Pending
Application number
CN202010136860.3A
Other languages
English (en)
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.)
Hangzhou Dianzi University
Original Assignee
Hangzhou Dianzi University
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 Hangzhou Dianzi University filed Critical Hangzhou Dianzi University
Priority to CN202010136860.3A priority Critical patent/CN111385290A/zh
Publication of CN111385290A publication Critical patent/CN111385290A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/0435Network 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 symmetric encryption, i.e. same key used for encryption and decryption
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

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的抗DPA攻击AES加密方法,利用在初始加密时将明文异或上随机掩码,削弱原本加密过程中密钥和和FPGA动态功耗的强相关性,有效抵抗针对AES加密的DPA攻击。利用重新设计的sTable_mask和掩码解除操作,使输出的加密数据符合标准AES加密规则。将多个sTable_mask存放在一个ROM中,简化了查表操作逻辑。在系统架构上,采用全流水线设计,利用多个ROM查表方式简化级间逻辑复杂度,从而大大提高系统最大工作频率,进而提升系统吞吐量。

Description

一种基于FPGA的抗DPA攻击的AES加密方法
技术领域
本发明属于密码攻防领域,涉及一种基于FPGA的抗差分功耗分析攻击的AES加密方法。
背景技术
近年来,随着5G技术逐渐成熟,诸如车联网、远程医疗等依赖高实时性特点的应用场景逐步显现出来,在这些场景中既要保证数据的安全传输,又要满足数据的高吞吐低时延要求,利用FPGA进行数据加解密就成为了一种可行的方案。而传统的基于FPGA的AES加密方法容易受到差分功耗分析(DPA,Differential Power Analysis)攻击,因此需要一种满足高吞吐低时延的抗DPA攻击的FPGA架构。
发明内容
本发明针对现有技术的不足,提出一种基于FPGA的抗DPA攻击AES加密架构,利用在初始加密时将明文异或上随机掩码,削弱原本加密过程中密钥和和FPGA动态功耗的强相关性,有效抵抗针对AES加密的DPA攻击。利用重新设计的sTable_mask和掩码解除操作,使输出的加密数据符合标准AES加密规则。将多个sTable_mask存放在一个ROM中,简化了查表操作逻辑。在系统架构上,采用全流水线设计,利用多个ROM查表方式简化级间逻辑复杂度,从而大大提高系统最大工作频率,进而提升系统吞吐量。
为实现上述目的,本发明的技术方案为一种基于FPGA的抗DPA攻击的AES加密方法,包括以下步骤:
S10,掩码选择模块将明文与随机掩码进行明文掩码操作;
S20,送入数据加密流水线和密钥扩展流水线对数据进行加密;
S30,掩码解除模块解除随机掩码对加密数据的影响;
所述S10,S20,S30步骤中,明文m长度为固定128bit,密钥k长度为128bit或192bit或256bit;将m和k首先以Byte为单位划分为mi,ki,将mi和ki排列为以4Byte为一列的矩阵,将矩阵的第i列各记为Mi,Ki;
所述S10中,掩码选择模块包括计数器,和掩码选择器;其中计数器模拟随机数生成器;掩码选择器根据计数器的计数值,选择相应的掩码传送给掩码解除模块;
所述S20中,密钥扩展流水线为数据加密流水线提供轮密钥,其中数据加密流水线包括若干轮函数模块,每个轮函数模块包括字节替换单元、行移位单元、列混淆单元和轮密钥加单元;密钥扩展流水线包括若干轮密钥生成模块,每个轮密钥生成模块包括简单密钥扩展单元和复杂密钥扩展单元,密钥扩展轮数分为i mod 4!=0和i mod 4==0两部分;
所述S30中,掩码解除模块将S20的输出数据异或S10传送过来的掩码值,将数据还原为原始加密状态。
优选地,在所述S10包括随机数模拟和掩码生成,包括以下步骤:
S11,计数器模拟随机数,计数值为cnt。
S12,掩码生成单元根据cnt产生相应的128位掩码值mask_long和与mask_long一一对应的掩码号mask_num。
优选地,在所述S20中,包括轮函数和密钥扩展,轮函次数和密钥扩展次数由明文长度和密钥长度共同决定,字节替换单元根据mask_num选择相应的字节替换表sTable_mask,对密文c进行字节替换。
优选地,所述sTable_mask的计算方法为,假设待替换字节为x1i,则有sTable_mask(x1i⊕mask)=sTable_Origin(x1i)⊕mask,每个sTable_mask大小为256Byte。
优选地,将所述sTable_mask按x1i⊕mask自然增长的顺序存储在一个rom中,记为sTable_new,大小为掩码总数量*256Byte;根据mask_num和前级数据的值对sTable_new进行字节替换操作。
优选地,所述字节替换单元的替换方法为,根据mask_num值选定待查sTable_mask在sTable_new中的地址范围,再根据x1i作为sTable_new相应的地址,读rom。
优选地,所述行移位单元,将字节替换完成后的数据以Byte为单位排列为以4Byte为一列的矩阵,将矩阵的每行以字节单位循环移位。
优选地,所述列混淆单元,为矩阵H和X相乘,将所述矩阵H中的03元素进行拆分,即03=01+02,将相乘操作转换为移位异或操作,如果该值的最高位为1,则再将移位后的结果异或0x1b。
优选地,所述轮密钥加单元,将轮密钥值与前级输出的数据进行异或操作,得到本级数据;所述轮密钥生成模块,前4列密钥为种子密钥,对于之后的密钥,当i mod 4!=0时,有Ki=K(i-1)⊕K(i-3),反之有Ki=sTable_Origin(RotByte(K(i-1)))⊕K(i-3)。
优选地,所述RotByte(·)为循环上移1Byte操作;所述sTable_Origin(·)是以·的值为地址对sTable_Origin进行Rom查表操作。
本发明的有益效果如下:
利用在初始加密时将明文异或上随机掩码,削弱原本加密过程中密钥和和FPGA动态功耗的强相关性,有效抵抗针对AES加密的DPA攻击。利用重新设计的sTable_mask和掩码解除操作,使输出的加密数据符合标准AES加密规则。将多个sTable_mask存放在一个ROM中,简化了查表操作逻辑。在系统架构上,采用全流水线设计,利用多个ROM查表方式简化级间逻辑复杂度,从而大大提高系统最大工作频率,进而提升系统吞吐量。
附图说明
图1为本发明实施例的基于FPGA的AES加密抗DPA攻击方法的步骤流程图;
图2为本发明一个实施例的基于FPGA的AES加密抗DPA攻击方法的硬件顶层结构;
图3为本发明一个实施例的基于FPGA的AES加密抗DPA攻击方法的S10掩码选择模块硬件结构;
图4为本发明一个实施例的基于FPGA的AES加密抗DPA攻击方法的S21轮函数模块硬件结构;
图5为本发明一个实施例的基于FPGA的AES加密抗DPA攻击方法的S22轮密钥生成模块硬件结构;
图6为本发明一个实施例的基于FPGA的AES加密抗DPA攻击方法的S30掩码解除模块硬件结构。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
相反,本发明涵盖任何由权利要求定义的在本发明的精髓和范围上做的替代、修改、等效方法以及方案。进一步,为了使公众对本发明有更好的了解,在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。
参见图1,为本发明实施例的步骤流程图,本发明的技术方案为一种基于FPGA的抗DPA攻击的AES加密方法,包括以下步骤:
S10,掩码选择模块将明文与随机掩码进行明文掩码操作;
S20,送入数据加密流水线和密钥扩展流水线对数据进行加密;
S30,掩码解除模块解除随机掩码对加密数据的影响;
S20中,密钥扩展流水线为数据加密流水线提供轮密钥。
具体实施例中,规定S10,S20,S30中数据划分方式为:明文m长度为固定128bit,密钥k长度为128bit;将m和k首先以Byte为单位划分为mi,ki,进一步将mi和ki排列为以4Byte为一列的矩阵,将它们的第i列各记为Mi,Ki。
掩码选择模块S101包括计数器S201、掩码选择器S202、三输入异或门S203。计数器S201产生计数值cnt来模拟随机数生成器;掩码选择器S202中预先存取4种掩码值mask,根据cnt选择相应的mask输出,并输出与之对应的掩码号mask_num;S203将mask、m、key异或得到本单元输出数据data_out。
数据加密流水线包括10个轮函数模块S102,每个轮函数模块包括S301字节替换单元、S302行移位单元、S303列混淆单元、S304轮密钥加单元。
字节替换单元S301,包括8个双端口ROM,每个ROM大小为1024Byte,每个ROM按顺序存放4个sTable_mask,sTable_mask的计算方式为sTable_mask(x1i⊕mask)=sTable_Origin(x1i)⊕mask,每个sTable_mask大小为256Byte。输出数据为字节替换后的128bit值。
行移位单元S302,利用简单的硬线逻辑完成数据矩阵的行移位。第0行不移动,第1行循环左移1Byte,第2行循环左移2Byte,第3行循环左移3Byte。
列混淆单元S303,包含4个子列计算单元。根据矩阵相乘特点,数据采用逐列计算方式。对于每列的4Byte输入数据,首先将所有输入字节各左移1bit得到暂存数据wS_00、wS_01、wS_02、wS_03,分别检查它们的最高位是否为1,如果为1则将其做异或0x1b操作。根据03*wS=wS⊕02*wS将乘03操作转化为移位和异或操作,进而得到本列输出字节S’01、S’02、S’03、S’04。
轮密钥加单元S304,将列混淆单元S303输出与相应轮密钥异或即可得到轮函数模块的输出。
密钥扩展流水线包括10个轮密钥生成模块S103。每个轮密钥生成模块S103包括密钥字节替换单元S401,异或单元S402,简单密钥扩展单元S403。
密钥字节替换单元S401,将密钥矩阵的K0矩阵向上循环移位1Byte后进行字节替换操作。字节替换操作由两个双端ROM查表完成,每个ROM为256bit,sTable_Origin按顺序存放在ROM中。
异或单元S402,将异或单元S402的输出和常数Ron、K0异或得到本级轮密钥的输出K0,存放在colTmp中。
简单密钥扩展单元S403,利用异或单元S402输出的colTmp和前级输入密钥的K1、K2、K3计算得出本级密钥K1、K2、K3,连同本级K0存放在outKey中。
掩码解除模块S104,包含一个异或门,将数据加密模块的数据和掩码选择模块S101产生的掩码异或,得到符合标准AES加密的数据。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于FPGA的抗DPA攻击的AES加密方法,包括以下步骤:
S10,掩码选择模块将明文与随机掩码进行明文掩码操作;
S20,送入数据加密流水线和密钥扩展流水线对数据进行加密;
S30,掩码解除模块解除随机掩码对加密数据的影响;
所述S10,S20,S30步骤中,明文m长度为固定128bit,密钥k长度为128bit或192bit或256bit;将m和k首先以Byte为单位划分为mi,ki,将mi和ki排列为以4Byte为一列的矩阵,将矩阵的第i列各记为Mi,Ki;
所述S10中,掩码选择模块包括计数器,和掩码选择器;其中计数器模拟随机数生成器;掩码选择器根据计数器的计数值,选择相应的掩码传送给掩码解除模块;
所述S20中,密钥扩展流水线为数据加密流水线提供轮密钥,其中数据加密流水线包括若干轮函数模块,每个轮函数模块包括字节替换单元、行移位单元、列混淆单元和轮密钥加单元;密钥扩展流水线包括若干轮密钥生成模块,每个轮密钥生成模块包括简单密钥扩展单元和复杂密钥扩展单元,密钥扩展轮数分为i mod 4!=0和i mod 4==0两部分;
所述S30中,掩码解除模块将S20的输出数据异或S10传送过来的掩码值,将数据还原为原始加密状态。
2.根据权利要求1所述的方法,其特征在于,在所述S10包括随机数模拟和掩码生成,包括以下步骤:
S11,计数器模拟随机数,计数值为cnt。
S12,掩码生成单元根据cnt产生相应的128位掩码值mask_long和与mask_long一一对应的掩码号mask_num。
3.根据权利要求1所述的方法,其特征在于,在所述S20中,包括轮函数和密钥扩展,轮函次数和密钥扩展次数由明文长度和密钥长度共同决定,字节替换单元根据mask_num选择相应的字节替换表sTable_mask,对密文c进行字节替换。
4.根据权利要求3所述的方法,其特征在于,所述sTable_mask的计算方法为,假设待替换字节为x1i,则有
Figure FDA0002397626500000021
Figure FDA0002397626500000022
每个sTable_mask大小为256Byte。
5.根据权利要求4所述的方法,其特征在于,将所述sTable_mask按
Figure FDA0002397626500000023
Figure FDA0002397626500000024
自然增长的顺序存储在一个rom中,记为sTable_new,大小为掩码总数量*256Byte;根据mask_num和前级数据的值对sTable_new进行字节替换操作。
6.根据权利要求3所述的方法,其特征在于,所述字节替换单元的替换方法为,根据mask_num值选定待查sTable_mask在sTable_new中的地址范围,再根据x1i作为sTable_new相应的地址,读rom。
7.根据权利要求1所述的方法,其特征在于,所述行移位单元,将字节替换完成后的数据以Byte为单位排列为以4Byte为一列的矩阵,将矩阵的每行以字节单位循环移位。
8.根据权利要求1所述的方法,其特征在于,所述列混淆单元,为矩阵H和X相乘,将所述矩阵H中的03元素进行拆分,即03=01+02,将相乘操作转换为移位异或操作,如果该值的最高位为1,则再将移位后的结果异或0x1b。
9.根据权利要求1所述的方法,其特征在于,所述轮密钥加单元,将轮密钥值与前级输出的数据进行异或操作,得到本级数据;所述轮密钥生成模块,前4列密钥为种子密钥,对于之后的密钥,当i mod 4!=0时,有
Figure FDA0002397626500000025
Figure FDA0002397626500000026
反之有
Figure FDA0002397626500000027
10.根据权利要求9所述的方法,其特征在于,所述RotByte(·)为循环上移1Byte操作;所述sTable_Origin(·)是以·的值为地址对sTable_Origin进行Rom查表操作。
CN202010136860.3A 2020-03-02 2020-03-02 一种基于fpga的抗dpa攻击的aes加密方法 Pending CN111385290A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010136860.3A CN111385290A (zh) 2020-03-02 2020-03-02 一种基于fpga的抗dpa攻击的aes加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010136860.3A CN111385290A (zh) 2020-03-02 2020-03-02 一种基于fpga的抗dpa攻击的aes加密方法

Publications (1)

Publication Number Publication Date
CN111385290A true CN111385290A (zh) 2020-07-07

Family

ID=71222626

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010136860.3A Pending CN111385290A (zh) 2020-03-02 2020-03-02 一种基于fpga的抗dpa攻击的aes加密方法

Country Status (1)

Country Link
CN (1) CN111385290A (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107070633A (zh) * 2017-03-20 2017-08-18 江苏大学 一种抗高阶功耗分析的aes掩码加密方法
CN109617667A (zh) * 2018-09-17 2019-04-12 中国科学院信息工程研究所 一种针对aes算法线性部分的高效掩码防护方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107070633A (zh) * 2017-03-20 2017-08-18 江苏大学 一种抗高阶功耗分析的aes掩码加密方法
CN109617667A (zh) * 2018-09-17 2019-04-12 中国科学院信息工程研究所 一种针对aes算法线性部分的高效掩码防护方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MENG LI 等: ""Design of Lightweight AES Algorithm Based on Masked Lookup Table"", 《2019 IEEE 7TH INTERNATIONAL CONFERENCE ON COMPUTER SCIENCE AND NETWORK TECHNOLOGY (ICCSNT)》 *
郑新建 等: ""抗DPA攻击的AES算法研究与实现"", 《计算机科学与探索》 *

Similar Documents

Publication Publication Date Title
CN106656475B (zh) 一种用于高速加密的新型对称型密钥加密方法
CN112769551B (zh) 基于fpga的sm4-gcm网络加密传输系统实现方法
Wang et al. Multi-channel chaotic encryption algorithm for color image based on DNA coding
CN113206736A (zh) 一种基于aes加密算法的加密方法
Wong et al. Embedding compression in chaos-based cryptography
JP5652363B2 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
CN101826959B (zh) 一种面向字节的密钥流生成方法及加密方法
Patel et al. Hybrid security algorithms for data transmission using AES-DES
CN109936437B (zh) 一种基于d+1阶掩码的抗功耗攻击方法
CN116796345A (zh) 加解密方法、装置、设备及存储介质
Singh et al. Study & analysis of cryptography algorithms: RSA, AES, DES, T-DES, blowfish
CN111385290A (zh) 一种基于fpga的抗dpa攻击的aes加密方法
CN107493164B (zh) 一种基于混沌系统的des加密方法和系统
Chou et al. A high performance, low energy, compact masked 128-bit AES in 22nm CMOS technology
CN114428979A (zh) 一种数据处理方法及装置、设备和系统
JP2014153552A (ja) 暗号処理装置、暗号処理方法およびプログラム
CN109450618B (zh) 一种基于md5的加密方法及系统
Barrera et al. Improved mix column computation of cryptographic AES
RU2738321C1 (ru) Способ криптографического преобразования и устройство для его осуществления
CN112311527A (zh) 一种主密钥变换为多项式表格子密钥查表的加密方法
An et al. Meet-in-the-middle differential fault analysis on Midori
Pirzada et al. The parallel CMAC synthetic initialization vector algorithm implementation on FPGA
CN114337993B (zh) 一种应用于边缘物联代理的白盒sm4加解密方法及系统
CN111314051A (zh) 一种加解密方法和装置
Huang et al. Securing an Efficient Lightweight AES Accelerator

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200707