CN111064562A - 一种fpga上的aes算法的实现方法 - Google Patents

一种fpga上的aes算法的实现方法 Download PDF

Info

Publication number
CN111064562A
CN111064562A CN201911271815.2A CN201911271815A CN111064562A CN 111064562 A CN111064562 A CN 111064562A CN 201911271815 A CN201911271815 A CN 201911271815A CN 111064562 A CN111064562 A CN 111064562A
Authority
CN
China
Prior art keywords
module
result obtained
aes
row
column
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
CN201911271815.2A
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.)
Beijing Institute of Computer Technology and Applications
Original Assignee
Beijing Institute of Computer Technology and Applications
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 Beijing Institute of Computer Technology and Applications filed Critical Beijing Institute of Computer Technology and Applications
Priority to CN201911271815.2A priority Critical patent/CN111064562A/zh
Publication of CN111064562A publication Critical patent/CN111064562A/zh
Pending legal-status Critical Current

Links

Images

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种FPGA上的AES算法的实现方法,其中,包括:包括AES密钥扩展模块,AES加密模块;AES解密模块;AES密钥扩展模块主要是为轮变换提供轮密钥并将轮密钥派送至指定轮变换,包括由循环移位模块,S盒变换模块,轮常数赋值模块,扩展密钥数组赋值模块组成;AES加密模块实现明文数据和密钥的加密操作并输出密文,包括由异或运算模块,S盒变换模块,行变化模块,列变化模块组成;AES解密模块实现密文数据和密钥的解密操作并输出明文,包括由反S盒变换模块,反行变化模块,反列变化模块组成。本发明逻辑资源占有量小,性能稳定可靠,模块本身的扩展性高,安全方便的升级方式等优点。

Description

一种FPGA上的AES算法的实现方法
技术领域
本发明涉及一种AES加解密算法技术,特别涉及一种FPGA上的AES算法的实现方法。
背景技术
AES算法属于分组密码算法,它的输入分组、输出分组以及K为128、192、256比特。用Nk=4、6、8代表密钥串的字数(1字=32比特)用Nr表示对一个数据分组加密的论数,每一轮读需要一个和输入分组具有相同长度的扩展密钥Ke的参与。由于外部输入的加密密钥K长度有限,所以在AES中要用一个密钥扩展程序把外部密钥K在扩展成更长的比特串,以生成各轮的加密密钥。
密钥(Key)是密码算法中参与运算的数值(或者数值集)。对报文进行加密,我们需要一个加密算法、一个加密密钥以及明文,并由此产生密文。对报文进行解密,我们需要一个解密算法、一个解密密钥以及密文,并由此复原原始的明文。
AES加密变换,设X是AES的明文输入,Y是密文输出,则AES的密文Y可以用下面的复合变换表示:
Figure BDA0002314410980000014
其中
Figure BDA0002314410980000015
表示复合运算。这里Aki:表示对X的一个变换
Figure BDA0002314410980000011
(ki为第i轮的子密钥,为比特串的异或运算)。S:S盒置换。即对每一个字节用S-Box做一个置换。S-Box是一个给定的转换表。R:行置换。C:列置换。
Figure BDA0002314410980000012
这里
Figure BDA0002314410980000013
是特殊的乘法运算。
AES算法的解密是加密的逆过程,由于AES算法的内部函数都是可逆的,因此解密过程仅仅是将密文作为初始化输入,按照轮子密钥相反的方向对输入的密文再进行加密的过程,该过程加密的最终结果就可以恢复出相应的明文。
发明内容
本发明涉及一种FPGA上的AES算法的实现方法,用于解决上述现有技术的问题。
本发明一种FPGA上的AES算法的实现方法,其中,包括:AES加密模块包括:步骤1:将输入的密文以8bit为一个单位,组成4x4矩阵,步骤2:将输入的密钥a按从高到底顺序分成4个32bit,分别为WN、WN+1、WN+2以及WN+3,将N、WN+1、WN+2以及WN+3组成的列矩阵与4x4矩阵做异或操作,设N=0;步骤3:对步骤2得到的结果做S盒替换操作;步骤4:对步骤3得到的结果做行变换操作,其中第一行不变,第二行循环左移1个字节,第3行循环左移2个字节,第4行循环左移3个字节;步骤5:对步骤4得到结果做列变换;步骤6:将步骤5得到的结果与WN+4、WN+5、WN+6以及WN+7异或;步骤7:将N=N+1,若N=9则继续,否则转回步骤3;步骤8:将步骤7得到结果经过S盒变化;步骤9:将步骤8得到结果经过行变化;步骤10:将W40、W41、W42以及W43异或,得到密文输出;(2)AES解密模块,包括:步骤11:将输入的密文以8bit为一个单位,组成4x4矩阵;步骤12:将W40、W41、W42以及W43组成的列矩阵与步骤11得到的4x4矩阵做异或操作;步骤13:对步骤12得到的结果做逆行变换操作,即向右偏移,第一行偏移量为0,第二行偏移量为1,第三行偏移量为2,第四行偏移量3;步骤14:对步骤13得到的结果做逆S盒替换操作;步骤15:将步骤14得到的结果与W40-4K、W40-4K+1、W40-4K+2以及40-4K+3异或,K=1;步骤16:对步骤15得到结果做逆列变换;步骤17:将K=K+1,若K=10则继续,否则转回步骤13;步骤18:对步骤17得到结果做逆行变换;步骤19:对步骤18得到结果做逆列变换;步骤20:将W0、W1、W2以及W3异或,得到明文输出。
根据本发明的FPGA上的AES算法的实现方法的一实施例,其中,在求取Wi的时候,如果i/4没有余数,Wi的求取过程如下:a:将Wi-1循环左移一个字节;b:将步骤a得到的结果经过S盒变换;c:用i/4得到的商j作为轮常数f(j)的输入,通过查找得出轮常数f(j)的结果,最后与b步骤得到的结果异或;d:将步骤c得到的结果与Wi-4异或,作为Wi的值;步骤3:如果k/4有余数,Wk的求解过程如下:Wk=Wk-1^Wk-4。
根据本发明的FPGA上的AES算法的实现方法的一实施例,其中,将初始输入的密钥a按从高到底顺序分成4个32bit,为[W0、W1、W2、W3]经过密钥扩展模块后,得到40个长度为32bit的子密钥,分别是:[W4、W5、W6、W7]、........至[W40、W41、W42、W43],参与到后续的加解密步骤中。
根据本发明的FPGA上的AES算法的实现方法的一实施例,其中,步骤骤5对步骤4得到结果做列变换包括:
Figure BDA0002314410980000031
为变化前任意一列;
Figure BDA0002314410980000032
为变化后;对
Figure BDA0002314410980000033
其进行列变化可以用公式1-1完成描述;
Figure BDA0002314410980000034
从式1-1中可以得出式1-2:
Figure BDA0002314410980000035
对式(1-2)中的·做出说明:
02·a=xtime(a)={a[6:0],1'b0}^(8'h1b&{8{a[7]}});
以此将4列全部实现列变化。
根据本发明的FPGA上的AES算法的实现方法的一实施例,其中,步骤6对步骤5得到结果做逆列变换,包括:
首先,设S0、S1、S2以及S3为状态矩阵的某一列,在解密过程中式(2-1):
Figure BDA0002314410980000041
其可拆分为式(2-2):
Figure BDA0002314410980000042
其中S'0、S'1、S'2、S'3的表示分别如式(2-3)、(2-4)、(2-5)、(2-6)
Figure BDA0002314410980000043
Figure BDA0002314410980000044
Figure BDA0002314410980000051
Figure BDA0002314410980000052
上式涉及到域GF(28)上的常数{02}运算,可以用下述xtime函数来实现,对于任一字节a,有式(2-7):
xtime(a)={02}·a={a[6:0],1'b0}∧(8'h1b&{8{a[7]}}) (2-7)
式(2-7)xtime(a)中的a为一个8bit的数,由公式可以看出,如果a的最高bit数字是0,其操作过程仅是将a向左移动一个bit,最低位补0,如果最高bit是1,操作过程是将a左移一个bit之后在与十六进制数字1b异或;
式中常数{04}运算可以表达为2个常数乘{02}运算的级联,记常数乘{04}运算为x2time,对于任一字节a,有式(2-8)。同样常数{08}运算可以表达为3个常数乘{02}运算的级联,记常数乘{08}运算为x3time,有式(2-9);
{04}·a=x2time(a)=xtime(xtime(a)) (2-8)
{08}·a={02·02·02}·a=x3time(a)=xtime(xtime(xtime(a))) (2-9)。
本发明涉及FPGA上一种AES算法的实现方法,可实现对称加密算法的加密速率及硬件逻辑资源的平衡;AES算法是一个典型的迭代型分组密码,其分组长度和密钥长度都可变,分组长度和密钥长度可以独立地指定为128位、192位和256位;被采用的AES算法加密轮数依赖于所选择的子密钥长度;选择128位的密钥长度,加密轮数为10轮,选择192位的密钥长度,加密轮数为12轮,选择256位的密钥长度,加密轮数为14轮;AES算法模块包含密钥扩展模块、加密模块、解密模块;密钥扩展模块实现将初始密钥进行密钥扩展后生成轮密钥,并传给加、解密算法模块;加密模块实现明文数据和密钥的加密操作并输出密文;解密模块实现密文数据和密钥的解密操作并输出明文。
本发明的FPGA上一种AES加解密算法的快速实现方式,该实现方式可根据AES加解密算法优化其相关步骤,达到合理清晰的模块化设计,逻辑资源占有量小,性能稳定可靠,模块本身的扩展性高,安全方便的升级方式等优点。
附图说明
图1为图1为AES算法整体框图;
图2为AES密钥扩展流程示意图;
图3为AES加密算法实现流程示意图;
图4为结果做行变换操作后的示意图;
图5为AES加密算法实现流程示意图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
本发明的目的是提供FPGA上一种AES加解密算法,该实现方式可根据AES加解密算法优化其相关步骤,达到合理清晰的模块化设计,逻辑资源占有量小,性能稳定可靠,模块本身的扩展性高,安全方便的升级方式等优点。
FPGA上一种AES算法的实现方法,其特征在于:
(1)AES加密模块,其步骤如下:
步骤1:将输入的明文以8bit为一个单位,组成4x4矩阵,
步骤2:将W0、W1、W2、W3组成的列矩阵与步骤1得到的矩阵做异或操作。
步骤3:对步骤2得到的结果做S盒替换操作。
步骤4:对步骤3得到的结果做行变换操作,其中第一行不变,第二行循环左移1个字节,第3行循环左移2个字节,第4行循环左移3个字节。
步骤5:对步骤4得到结果做列变换。
步骤6:将步骤5得到的结果与[W4、W5、W6、W7]第1次迭代)异或。(当第2此迭代时,将步骤5得到结果与[W8、W9、W10、W11]异或,以此类推迭代第3、4、5、6、7、8次,当第9次迭代时,将步骤5得到结果与[W36、W37、W38、W39]异或)。
步骤7:重复步骤3、4、5、6,迭代9次。
步骤8:将步骤7得到结果经过S盒变化。
步骤9:将步骤8得到结果经过行变化。
步骤10:将步骤9得到结果与[W40、W41、W42、W43]异或,得到密文输出。
(2)AES解密模块,其步骤如下:
步骤1:将输入的密文以8bit为一个单位,组成4x4矩阵,
步骤2:将W40、W41、W42、W43组成的列矩阵与步骤1得到的矩阵做异或操作。
步骤3:对步骤2得到的结果做逆行变换操作,即向右偏移,第一行偏移量为0,第二行偏移量为1,第三行偏移量为2,第四行偏移量3。
步骤4:对步骤3得到的结果做逆S盒替换操作。
步骤5:将步骤4得到的结果与([W36、W37、W38、W39]第1次迭代时)异或。(当第2次迭代时,将步骤4的得到结果与[W32、W33、W34、W35]异或,以此类推迭代第3、4、5、6、7、8次,当第9次迭代时,将步骤5得到结果与[W4、W5、W6、W7]异或)。
步骤6:对步骤5得到结果做逆列变换。
步骤7:重复步骤3、4、5、6,迭代9次。
步骤8:对步骤7得到结果做逆行变换。
步骤9:对步骤8得到结果做逆列变换。
步骤10:将步骤9得到结果[W0、W1、W2、W3]异或,得到明文输出。
(3)对于AES加解密算法,在进行FPGA逻辑设计时为了减少逻辑资源和提高算法速率,将加密和解密步骤中的步骤4、步骤5、步骤6合并在一起实现,可以有效减少逻辑资源并提升算法速率。
FPGA上一种高效AES算法的实现方法,图1所示是本发明的整体框图。该算法包括AES密钥扩展模块,AES加密模块;AES解密模块。
如图2所示,AES密钥扩展步骤如下:
步骤1:将输入的密钥a按从高到底顺序分成4个32bit(字),分别为W0、W1、W2、W3,(W0=a[127:96],以此类推)。
步骤2:在求取Wi的时候,如果i/4没有余数,Wi的求取过程如下:
a:将Wi-1循环左移一个字节。
b:将步骤a得到的结果经过S盒变换。
c:用i/4得到的商j,作为轮常数f(j)的输入,通过查找得出轮常数f(j)的结果,最后与b步骤得到的结果异或。
d:将步骤c得到的结果与Wi-4异或,作为Wi的值。
步骤3:如果k/4有余数,Wk的求解过程如下:
Wk=Wk-1^Wk-4。
通过上述的分析得到在已知W0、W1、W2、W3的情况下,如果要求取Wi,i=4,5,......,43时都需要得出上一个Wj的具体数值,所以在用FPGA实现密钥扩展时可以顺序的实现Wj数值的计算。
如图3所示,AES加密算法步骤如下:
加密过程可以分解为一下步骤:
步骤1:将输入的明文以8bit为一个单位,组成4x4矩阵,(其中a00=a[127:120],a33=a[7:0])。
步骤2:将W0、W1、W2、W3组成的列矩阵与步骤1得到的矩阵做亦或操作。
步骤3:对步骤2得到的结果做S盒替换操作。
步骤4:对步骤3得到的结果做行变换操作,其中第一行不变,第二行循环左移1个字节,第3行循环左移2个字节,第4行循环左移3个字节。图4为结果做行变换操作后的示意图。
步骤5:对步骤4得到结果做列变换。其具体过程如下:
Figure BDA0002314410980000091
为变化前任意一列。
Figure BDA0002314410980000092
为变化后。对
Figure BDA0002314410980000093
其进行列变化可以用公式1-1完成描述。
Figure BDA0002314410980000094
从式1-1中可以得出式1-2:
Figure BDA0002314410980000095
对式1.2中的·做出说明:
02·a=xtime(a)={a[6:0],1'b0}^(8'h1b&{8{a[7]}})。
以此将4列全部实现列变化。
步骤5:将步骤4得到的结果与(W4、W5、W6、W7)异或。(当第二轮迭代时,步骤4的得到结果与(W8、W9、W10、W11)异或以此类推)。
步骤6:重复步骤3、4、5,迭代9次。
步骤7:将步骤6得到结果经过S盒变化。
步骤8:将步骤7得到结果经过行变化。
步骤9:将步骤8得到结果(W40、W41、W42、W43)异或,得到密文输出。
如图5所示,AES解密算法步骤如下:
步骤1:将输入的密文以8bit为一个单位,组成4x4矩阵,
步骤2:将W40、W41、W42、W43组成的列矩阵与步骤1得到的矩阵做异或操作。
步骤3:对步骤2得到的结果做逆行变换操作,即向右偏移,第一行偏移量为0,第二行偏移量为1,第三行偏移量为2,第四行偏移量3。
步骤4:对步骤3得到的结果做逆S盒替换操作,逆S盒变换与加密过程的S盒变换一样,也是查表,查表的方式也一样,只不过查的是另外一个置换表(S-Box的逆表)。
步骤5:将步骤4得到的结果与(W4、W5、W6、W7)异或。
步骤6:对步骤5得到结果做逆列变换。
首先,设S0、S1、S2、S3为状态矩阵的某一列,在解密过程中式(2-1):
Figure BDA0002314410980000101
其可拆分为式(2-2):
Figure BDA0002314410980000102
Figure BDA0002314410980000111
其中S'0、S'1、S'2、S'3的表示分别如式(2-3)、(2-4)、(2-5)、(2-6)
Figure BDA0002314410980000112
Figure BDA0002314410980000113
Figure BDA0002314410980000114
Figure BDA0002314410980000115
上式涉及到域GF(28)上的常数{02}运算,可以用下述xtime函数来实现,对于任一字节a,有式(2-7):
xtime(a)={02}·a={a[6:0],1'b0}∧(8'h1b&{8{a[7]}}) (2-7)
说明:式(2-7)xtime(a)中的a为一个8bit的数,由公式可以看出,如果a的最高bit数字是0,其操作过程仅是将a向左移动一个bit,最低位补0,如果最高bit是1,操作过程是将a左移一个bit之后在与十六进制数字1b异或。
式中常数{04}运算可以表达为2个常数乘{02}运算的级联,记常数乘{04}运算为x2time,对于任一字节a,有式(2-8)。同样常数{08}运算可以表达为3个常数乘{02}运算的级联,记常数乘{08}运算为x3time,有式(2-9)。
{04}·a=x2time(a)=xtime(xtime(a))
(2-8)
{08}·a={02·02·02}·a=x3time(a)=xtime(xtime(xtime(a)))
(2-9)
步骤7:重复步骤3、4、5、6,迭代9次。
步骤8:对步骤7得到结果做逆行变换。
步骤9:对步骤8得到结果做逆列变换。
步骤10:将步骤9得到结果(W0、W1、W2、W3)异或,得到明文输出。
本发明涉及FPGA上一种AES算法的实现方法,可实现对称加密算法的加密速率及硬件逻辑资源的平衡;AES算法是一个典型的迭代型分组密码,其分组长度和密钥长度都可变,分组长度和密钥长度可以独立地指定为128位、192位和256位;被采用的AES算法加密轮数依赖于所选择的子密钥长度;选择128位的密钥长度,加密轮数为10轮,选择192位的密钥长度,加密轮数为12轮,选择256位的密钥长度,加密轮数为14轮;AES算法模块包含密钥扩展模块、加密模块、解密模块;密钥扩展模块实现将初始密钥进行密钥扩展后生成轮密钥,并传给加、解密算法模块;加密模块实现明文数据和密钥的加密操作并输出密文;解密模块实现密文数据和密钥的解密操作并输出明文。
本发明的设计方法通过优化AES密码算法模块,合并相关加解密步骤,达到合理清晰的模块化设计,逻辑资源占有量小,性能稳定可靠,模块本身的扩展性高,安全方便的升级方式等优点。
以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (5)

1.一种FPGA上的AES算法的实现方法,其特征在于,包括:
AES加密模块包括:
步骤1:将输入的密文以8bit为一个单位,组成4x4矩阵,
步骤2:将输入的密钥a按从高到底顺序分成4个32bit,分别为WN、WN+1、WN+2以及WN+3,将N、WN+1、WN+2以及WN+3组成的列矩阵与4x4矩阵做异或操作,设N=0;
步骤3:对步骤2得到的结果做S盒替换操作;
步骤4:对步骤3得到的结果做行变换操作,其中第一行不变,第二行循环左移1个字节,第3行循环左移2个字节,第4行循环左移3个字节;
步骤5:对步骤4得到结果做列变换;
步骤6:将步骤5得到的结果与WN+4、WN+5、WN+6以及WN+7异或;
步骤7:将N=N+1,若N=9则继续,否则转回步骤3;
步骤8:将步骤7得到结果经过S盒变化;
步骤9:将步骤8得到结果经过行变化;
步骤10:将W40、W41、W42以及W43异或,得到密文输出;
(2)AES解密模块,包括:
步骤11:将输入的密文以8bit为一个单位,组成4x4矩阵,
步骤12:将W40、W41、W42以及W43组成的列矩阵与步骤11得到的4x4矩阵做异或操作;
步骤13:对步骤12得到的结果做逆行变换操作,即向右偏移,第一行偏移量为0,第二行偏移量为1,第三行偏移量为2,第四行偏移量3;
步骤14:对步骤13得到的结果做逆S盒替换操作;
步骤15:将步骤14得到的结果与W40-4K、W40-4K+1、W40-4K+2以及40-4K+3异或,K=1;
步骤16:对步骤15得到结果做逆列变换;
步骤17:将K=K+1,若K=10则继续,否则转回步骤13;
步骤18:对步骤17得到结果做逆行变换;
步骤19:对步骤18得到结果做逆列变换;
步骤20:将W0、W1、W2以及W3异或,得到明文输出。
2.如权利要求1的FPGA上的AES算法的实现方法,其特征在于,在求取Wi的时候,如果i/4没有余数,Wi的求取过程如下:
a:将Wi-1循环左移一个字节;
b:将步骤a得到的结果经过S盒变换;
c:用i/4得到的商j作为轮常数f(j)的输入,通过查找得出轮常数f(j)的结果,最后与b步骤得到的结果异或;
d:将步骤c得到的结果与Wi-4异或,作为Wi的值;
步骤3:如果k/4有余数,Wk的求解过程如下:
Wk=Wk-1^Wk-4。
3.如权利要求1的FPGA上的AES算法的实现方法,其特征在于,将初始输入的密钥按从高到底顺序分成4个32bit,为[W0、W1、W2、W3]经过密钥扩展模块后,得到44个长度为32bit的子密钥,分别是:[W4、W5、W6、W7]、........至[W40、W41、W42、W43],参与到后续的加解密步骤中。
4.如权利要求1的FPGA上的AES算法的实现方法,其特征在于,
步骤骤5对步骤4得到结果做列变换包括:
Figure FDA0002314410970000021
为变化前任意一列;
Figure FDA0002314410970000022
为变化后;对
Figure FDA0002314410970000023
其进行列变化可以用公式1-1完成描述;
Figure FDA0002314410970000031
从式1-1中可以得出式1-2:
Figure FDA0002314410970000032
对式(1-2)中的·做出说明:
02·a=xtime(a)={a[6:0],1'b0}^(8'h1b&{8{a[7]}});
以此将4列全部实现列变化。
5.如权利要求1的FPGA上的AES算法的实现方法,其特征在于,步骤6对步骤5得到结果做逆列变换,包括:
首先,设S0、S1、S2以及S3为状态矩阵的某一列,在解密过程中式(2-1):
Figure FDA0002314410970000033
其可拆分为式(2-2):
Figure FDA0002314410970000034
Figure FDA0002314410970000041
其中S′0、S′1、S'2、S′3的表示分别如式(2-3)、(2-4)、(2-5)、(2-6)
Figure FDA0002314410970000042
Figure FDA0002314410970000043
Figure FDA0002314410970000044
Figure FDA0002314410970000045
上式涉及到域GF(28)上的常数{02}运算,可以用下述xtime函数来实现,对于任一字节a,有式(2-7):
xtime(a)={02}·a={a[6:0],1'b0}∧(8'h1b&{8{a[7]}}) (2-7)
式(2-7)xtime(a)中的a为一个8bit的数,由公式可以看出,如果a的最高bit数字是0,其操作过程仅是将a向左移动一个bit,最低位补0,如果最高bit是1,操作过程是将a左移一个bit之后在与十六进制数字1b异或;
式中常数{04}运算可以表达为2个常数乘{02}运算的级联,记常数乘{04}运算为x2time,对于任一字节a,有式(2-8)。同样常数{08}运算可以表达为3个常数乘{02}运算的级联,记常数乘{08}运算为x3time,有式(2-9);
{04}·a=x2time(a)=xtime(xtime(a)) (2-8)
{08}·a={02·02·02}·a=x3time(a)=xtime(xtime(xtime(a))) (2-9)。
CN201911271815.2A 2019-12-12 2019-12-12 一种fpga上的aes算法的实现方法 Pending CN111064562A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911271815.2A CN111064562A (zh) 2019-12-12 2019-12-12 一种fpga上的aes算法的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911271815.2A CN111064562A (zh) 2019-12-12 2019-12-12 一种fpga上的aes算法的实现方法

Publications (1)

Publication Number Publication Date
CN111064562A true CN111064562A (zh) 2020-04-24

Family

ID=70298883

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911271815.2A Pending CN111064562A (zh) 2019-12-12 2019-12-12 一种fpga上的aes算法的实现方法

Country Status (1)

Country Link
CN (1) CN111064562A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111934850A (zh) * 2020-06-29 2020-11-13 南京天际行云科技有限公司 组纲aes加解密方法
CN112235098A (zh) * 2020-09-17 2021-01-15 成都万江港利科技股份有限公司 一种简易快速的通信加解密算法
CN113158174A (zh) * 2021-04-06 2021-07-23 上海交通大学 基于图论的分组密码实际密钥信息的自动化搜索系统
CN113660620A (zh) * 2021-10-20 2021-11-16 北京卓建智菡科技有限公司 一种数据防伪加密方法、装置、计算机设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109245881A (zh) * 2018-09-14 2019-01-18 杭州嘀嗒科技有限公司 一种照片视频云端加密存储方法
WO2019024607A1 (zh) * 2017-07-31 2019-02-07 华为技术有限公司 安全编码方法、解码方法及设备
CN109376543A (zh) * 2018-08-28 2019-02-22 浙江工业大学 一种基于aes算法的数据库加密方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019024607A1 (zh) * 2017-07-31 2019-02-07 华为技术有限公司 安全编码方法、解码方法及设备
CN109376543A (zh) * 2018-08-28 2019-02-22 浙江工业大学 一种基于aes算法的数据库加密方法
CN109245881A (zh) * 2018-09-14 2019-01-18 杭州嘀嗒科技有限公司 一种照片视频云端加密存储方法

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
BRUCE李: "用verilog实现AES密码算法1---一些理论准备", 《HTTPS://WWW.PIANSHEN.COM/ARTICLE/53371788707/》 *
SHAWN_MICHAELS: "AES加密算法原理(加密过程)", 《HTTPS://WWW.CNBLOGS.COM/VEGETABLEDD/P/11866251.HTML》 *
SPWPUN: "AES算法xtime的理解", 《HTTPS://BLOG.CSDN.NET/LPLP9822/ARTICLE/DETAILS/80906583》 *
于松林等: "基于FPGA 的AES 硬件实现及优化", 《电子设计工程》 *
夜猫小聪仔: "[转]AES算法详解", 《HTTP://BLOG.SINA.COM.CN/S/BLOG_871CA62F0102XUSG.HTML》 *
峰子_仰望阳光: "AES涉及的有限域乘法及字节填充方法", 《HTTPS://WWW.CNBLOGS.COM/XIEHONGFENG100/P/4315395.HTML》 *
张慧霞等: "AES 密码算法的FPGA 实现与仿真", 《通 信 技 术》 *
张猛华等: "基于AES算法的DSP安全防护设计实现", 《微电子学与计算机》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111934850A (zh) * 2020-06-29 2020-11-13 南京天际行云科技有限公司 组纲aes加解密方法
CN112235098A (zh) * 2020-09-17 2021-01-15 成都万江港利科技股份有限公司 一种简易快速的通信加解密算法
CN113158174A (zh) * 2021-04-06 2021-07-23 上海交通大学 基于图论的分组密码实际密钥信息的自动化搜索系统
CN113660620A (zh) * 2021-10-20 2021-11-16 北京卓建智菡科技有限公司 一种数据防伪加密方法、装置、计算机设备及存储介质
CN113660620B (zh) * 2021-10-20 2022-01-21 北京卓建智菡科技有限公司 一种数据防伪加密方法、装置、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
McLoone et al. High performance single-chip FPGA Rijndael algorithm implementations
JP3992742B2 (ja) データブロックおよび鍵を非線形的に結合する暗号方法および装置
CN111064562A (zh) 一种fpga上的aes算法的实现方法
EP1246389B1 (en) Apparatus for selectably encrypting or decrypting data
WO2001067425A1 (fr) Systeme de chiffrage de blocs utilisant la conversion auxiliaire
US20030039355A1 (en) Computer useable product for generating data encryption/decryption apparatus
EP2975798B1 (en) Customizable encryption algorithm based on a sponge construction with authenticated and non-authenticated modes of operation
JP2005215688A (ja) S−box演算を用いるハードウェア暗号化/復号化装置及び、その方法
KR20180081559A (ko) 암호화 동작을 위한 키 시퀀스 생성
US10237066B1 (en) Multi-channel encryption and authentication
Gehlot et al. Implementation of Modified Twofish Algorithm using 128 and 192-bit keys on VHDL
Gangadari et al. FPGA implementation of compact S-box for AES algorithm using composite field arithmetic
Sideris et al. Hardware acceleration of the aes algorithm using nios-ii processor
Mandal et al. An adaptive neural network guided secret key based encryption through recursive positional modulo-2 substitution for online wireless communication (ANNRPMS)
Murtaza et al. Fortification of aes with dynamic mix-column transformation
CN109033847B (zh) Aes加密运算单元、aes加密电路及其加密方法
Singh et al. Study & analysis of cryptography algorithms: RSA, AES, DES, T-DES, blowfish
Yadav et al. Area and throughput analysis of different AES Architectures for FPGA implementations
Nadjia et al. Efficient implementation of AES S-box in LUT-6 FPGAs
Somasagar et al. Clefia-a encryption algorithm using novel s-box architecture
CN108989018B (zh) 一种aes加密单元、aes加密电路及加密方法
Barrera et al. Improved mix column computation of cryptographic AES
Bittencourt et al. CLEFIA implementation with full key expansion
Shylashree et al. FPGA implementations of advanced encryption standard: A survey
Islam et al. Data encryption standard

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

Application publication date: 20200424

RJ01 Rejection of invention patent application after publication