CN106656470A - 一种基于改进aes算法的数据加密方法 - Google Patents

一种基于改进aes算法的数据加密方法 Download PDF

Info

Publication number
CN106656470A
CN106656470A CN201611185927.2A CN201611185927A CN106656470A CN 106656470 A CN106656470 A CN 106656470A CN 201611185927 A CN201611185927 A CN 201611185927A CN 106656470 A CN106656470 A CN 106656470A
Authority
CN
China
Prior art keywords
algorithm
aes
aes algorithm
byte
method based
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
CN201611185927.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.)
Nankai University
Original Assignee
Nankai 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 Nankai University filed Critical Nankai University
Priority to CN201611185927.2A priority Critical patent/CN106656470A/zh
Publication of CN106656470A publication Critical patent/CN106656470A/zh
Pending legal-status Critical Current

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

Landscapes

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

Abstract

本发明公开了一种数据加密方法,该方法基于AES算法改进而成。通过创建新的S盒,将原本AES算法中每个轮函数中的字节代换(ByteSub)、行移位(ShiftRow)、列混合(MixColumn)的运算过程简化查表的过程,在没有过多增加内存使用量的基础上,大大减小了计算量,使其可以在微控制器上快速实现,同时没有改变算法原本的数学结构,使其安全性更高。

Description

一种基于改进AES算法的数据加密方法
【技术领域】:本发明涉及密码学以及算法领域。构建一个新的字节转换表,将输入的128位明文数据按照矩阵排列过后,查找表格相关位置所对应的数值,得到一个输出矩阵,将输出矩阵各列异或后再与扩展密钥相异或,由此得到128位密文。
【背景技术】:本发明的数据加密方法是由AES算法改进而成,AES算法(即高级加密标准)是由美国国家标准技术研究所(NIST)于2000年10月通过公开招标并从众多候选算法中选择出来的一种效率高且加密强度大的对称加密算法。它具有加密程度强、数据处理速度快,可以在短时间内处理大量数据的特点。AES算法是一个可变数据块长和可变密钥长的迭代分组加密算法,数据块长和密钥长可分别为128,192或256比特,AES算法中最重要的操作为轮变换操作,改变换过程所应用的各种运算赋予很高的加密强度。而本发明通过创建新的S盒,将原本AES算法中每个轮函数中的字节代换(ByteSub)、行移位(ShiftRow)、列混合(MixColumn)的运算过程简化查表的过程,在没有过多增加内存使用量的基础上,大大减小了计算量,使其可以在微控制器上快速实现,同时没有改变算法原本的数学结构,使其安全性更高。
【发明内容】:
本发明将AES运算过程进行改进优化,提高了在终端微处理器上实现的速度。接下来首先介绍AES算法,然后通过矩阵运算得出其矩阵表示,最后说明了优化后的加密方法的运算过程:
(1)AES算法的简介
AES算法是一个可变数据块长和可变密钥长的迭代分组加密算法,数据块长和密钥长可分别为128,192或256比特,AES算法中最重要的操作为轮变换操作,改变换过程所应用的各种运算赋予很高的加密强度。
轮变换操作(解密过程与加密过程大同小异,为加密过程的逆运算):轮变换由4个不同的变换组成(S盒变换,行变换,列变换和轮密钥加),用伪C代码描述为:
Round(State,RoundKey)
{
ByteSub(State);
ShiftRow(State);
MixColumn(State);
AddRoundKey(State,RoundKey);
}
最后一轮稍有不同,少了MixColumn(State)函数,即为:
FinalRound(State,RoundKey)
{
ByteSub(State);
ShiftRow(State);
AddRoundKey(State,RoundKey);
}
(2)AES算法轮变换的矩阵表示
AES算法主要由三大模块组成:加密模块、解密模块和密钥扩展模块。加密模块的每次轮变换均由字节代换(ByteSub)、行移位(ShiftRow)、列混合(MixColumn)和密钥加(AddRoundKey)四种运算构成,而解密模块也是由相似的四种运算构成,不同的是字节代换、行移位、列混合为加密模块的逆运算。而密钥加中每轮使用的扩展密钥则由密钥扩展模块产生。加密模块和解密模块是AES算法的核心,它们均为轮变换的重复过程,因此精简轮函数可以提高AES算法的运算速度。
为便于描述,这里采用128比特分组(16字节),密钥也是128比特。
在ByteSub变换中,假设输入为A,A=[ai,j],(0≤i,j≤3),输出为B,B=[bi,j],(0≤i,j≤3)。可以用:
B=(A) (1)
来表示ByteSub变换,即:
bi,j=B(ai,j) (2)
实际中这个变换可以转换为查表操作,该表即为AES算法的字节变换表,也成为S盒,字节变换表如表1所示:
表1字节变换表
例如,假设ax,y为字节00,则由上表可得到bx,y=S(ax,y)=63。
在ShiftRow变换中,其原理图如图1所示。设输出为C,C=[ci,j],(0≤i,j≤3)。
则C可以用矩阵表示为
在MixColumn变换中,将ShiftRow中得到的状态阵列的每个列视为GF(28)上的多项式,再与一个固定的多项式03x3+01x2+01x+02进行模x4+1乘法。
设输出为D,D=[di,j],(0≤i,j≤3),则MixColumn也可以写成矩阵乘法:
在AddRoundKey变换中,由密钥扩展模块产生的扩展轮密钥开始作用,将该轮秘钥设为K,K=[ki,j],(0≤i,j≤3),输出结果为E,E=[ei,j],(0≤i,j≤3),则AddRoundKey用矩阵可以表示为:
将(2)、(3)、(4)带入(5)中可以得到
这样就得出了AES算法每一轮输入A与输出E之间的矩阵表示。
(3)优化的AES算法
在式(6)中,计算需要一次xtime运算,一次异或运算。因此,每得到轮变换结果E的一列向量,要进行四次xtime运算,八次异或(不考虑轮密钥的生成)。而通过观察可知,与S[a1,(j+1)%4]、S[a1,(j+1)%4]、S[a2,(j+2)%4]、S[a3,(j+3)%4]相乘的列向量中,只有01、02、03这三个元素,故可以创造一个新的S盒,使其可以通过查表直接得到 这四个列向量中每一个元素,这样就能省去四次xtime运算和四次异或运算,每得到轮变换结果E的一列向量只需要就行四次异或运算。通过将表1中数据分别与03,02,01这三个元素进行运算,得到新的字节变换表,如表2所示:
表2优化的AES算法的字节变换表
在使用C语言实现时,将其设为的二维数组Snew[256][3],这样就可以实现通过查表得到这四个列向量中每一个元素。例如的低四位高四位分别对应上表的横纵坐标,由此得到二维数组的行坐标,也就相当于在上表中确定了格子,列向量中2,1,1,3分别对应该二维数组列坐标的1,0,0,2,也就相当于上表格子中的第几个元素。
同样地,在解密时也可以建立一个相似的新的字节转换表,以实现解密的优化。
这种优化的AES加密算法,存储两个新的字节转换表需要256×3×2=1536B=1.5KB。而优化前的AES算法储存两个字节转换表需要256×2=512B=0.5KB,在内存资源的占用上并没有明显的提高,而速度却得到了明显的加快。
【本发明的优点和积极效果】:
本发明通过创建新的S盒,将原本AES算法中每个轮函数中的字节代换(ByteSub)、行移位(ShiftRow)、列混合(MixColumn)的运算过程简化查表的过程,在没有过多增加内存使用量的基础上,大大减小了计算量,使其可以在微控制器上快速实现,同时没有改变算法原本的数学结构,使其的安全性没有丝毫降低。
【附图说明】:
图1是算法整体框图;
图2是ShiftRow变换原理图。
【实例说明】:
在这里为了说明方便,只演示一轮轮变换中的一段16字节数据为例,并假设该段数据的128位均为0,则用矩阵表示为同时假设该轮轮密钥为设输出结果为E,E=[ei,j],(0≤i,j≤3)。则得到了该轮乱变换的结果,之后再用该结果作为输入进行下一轮,直至最后一轮最后得出密文。

Claims (1)

1.一种基于改进AES算法的数据加密方法,其有以下三个主要特征:
1)、输入数据为128位明文,经加密后输出为128位密文;
2)、该方法是基于AES加密算法的优化,通过创建新的S盒,将原先每个轮函数中的字节代换(ByteSub)、行移位(ShiftRow)、列混合(MixColumn)的运算过程简化为查表和异或运算的过程;
3)、该方法与原AES算法相比,所需内存空间略微扩大,但是预算量大大减小,便于在微控制器上实现。
CN201611185927.2A 2016-12-16 2016-12-16 一种基于改进aes算法的数据加密方法 Pending CN106656470A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611185927.2A CN106656470A (zh) 2016-12-16 2016-12-16 一种基于改进aes算法的数据加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611185927.2A CN106656470A (zh) 2016-12-16 2016-12-16 一种基于改进aes算法的数据加密方法

Publications (1)

Publication Number Publication Date
CN106656470A true CN106656470A (zh) 2017-05-10

Family

ID=58835080

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611185927.2A Pending CN106656470A (zh) 2016-12-16 2016-12-16 一种基于改进aes算法的数据加密方法

Country Status (1)

Country Link
CN (1) CN106656470A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109274482A (zh) * 2018-08-24 2019-01-25 广东工业大学 一种基于s盒优化的aes算法硬件电路实现方法
CN109409114A (zh) * 2018-11-05 2019-03-01 重庆邮电大学 基于易辛结构的可并行图加密方法
CN109818733A (zh) * 2019-03-27 2019-05-28 苏州中晟宏芯信息科技有限公司 一种高级加密标准运算电路及其加解密方法
CN116431217A (zh) * 2023-04-06 2023-07-14 中伏能源嘉兴股份有限公司 一种基于51系列单片机特殊寄存器的高速3des算法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109274482A (zh) * 2018-08-24 2019-01-25 广东工业大学 一种基于s盒优化的aes算法硬件电路实现方法
CN109409114A (zh) * 2018-11-05 2019-03-01 重庆邮电大学 基于易辛结构的可并行图加密方法
CN109818733A (zh) * 2019-03-27 2019-05-28 苏州中晟宏芯信息科技有限公司 一种高级加密标准运算电路及其加解密方法
CN109818733B (zh) * 2019-03-27 2022-04-26 苏州中晟宏芯信息科技有限公司 一种高级加密标准运算电路及其加解密方法
CN116431217A (zh) * 2023-04-06 2023-07-14 中伏能源嘉兴股份有限公司 一种基于51系列单片机特殊寄存器的高速3des算法
CN116431217B (zh) * 2023-04-06 2023-10-17 中伏能源嘉兴股份有限公司 一种基于51系列单片机特殊寄存器的高速3des算法

Similar Documents

Publication Publication Date Title
CN106850221B (zh) 信息加密、解密方法及装置
CN107707343B (zh) 加解密一致的sp网络结构轻量级分组密码实现方法
CN106656470A (zh) 一种基于改进aes算法的数据加密方法
CN107147487B (zh) 对称密钥随机分组密码
CN104065474B (zh) 一种轻量级Surge分组密码实现方法
CN103812641A (zh) 一种实现sm4分组对称密码算法的系统
CN110166223A (zh) 一种国密sm4的快速软件实现方法
CN106712930A (zh) 一种sm4加密方法及装置
CN105916141B (zh) 一种自同步的祖冲之加解密算法的实现系统及其方法
Li et al. Keyed hash function based on a dynamic lookup table of functions
CN108650072A (zh) 一种支持多种对称密码算法芯片及其抗攻击电路实现方法
CN104320420A (zh) 一种基于aes算法的scada文件加密方法
Gandh et al. FPGA implementation of enhanced key expansion algorithm for Advanced Encryption Standard
CN109033847B (zh) Aes加密运算单元、aes加密电路及其加密方法
CN108566271B (zh) 复用轮变换电路、aes加密电路及其加密方法
JP5207153B2 (ja) 擬似乱数発生システム
CN103209071A (zh) Aes加密装置
CN108989018B (zh) 一种aes加密单元、aes加密电路及加密方法
CN103051443B (zh) Aes密钥扩展的方法
Kun et al. An improved AES algorithm based on chaos
CN105376052A (zh) 对称迭代块编码方法和相应设备
JP5449063B2 (ja) Rijndael型192bitブロック暗号化装置、方法、及びそのプログラム
CN202998117U (zh) Aes加密装置
Kumar et al. FPGA Implementation of High Performance Hybrid Encryption Standard
CN109150496B (zh) Aes加密运算单元、aes加密电路及加密方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170510

WD01 Invention patent application deemed withdrawn after publication