CN106656470A - 一种基于改进aes算法的数据加密方法 - Google Patents
一种基于改进aes算法的数据加密方法 Download PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution 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
【技术领域】:本发明涉及密码学以及算法领域。构建一个新的字节转换表,将输入的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算法相比,所需内存空间略微扩大,但是预算量大大减小,便于在微控制器上实现。
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 (6)
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 | 苏州中晟宏芯信息科技有限公司 | 一种高级加密标准运算电路及其加解密方法 |
CN115208650A (zh) * | 2022-07-05 | 2022-10-18 | 上海江宇信息科技有限公司 | 基于云平台的数据安全实现方法、设备、介质及产品 |
CN115484056A (zh) * | 2022-08-04 | 2022-12-16 | 上海智能网联汽车技术中心有限公司 | 一种车辆电子vin码防篡改安全系统 |
CN116431217A (zh) * | 2023-04-06 | 2023-07-14 | 中伏能源嘉兴股份有限公司 | 一种基于51系列单片机特殊寄存器的高速3des算法 |
-
2016
- 2016-12-16 CN CN201611185927.2A patent/CN106656470A/zh active Pending
Cited By (8)
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 | 苏州中晟宏芯信息科技有限公司 | 一种高级加密标准运算电路及其加解密方法 |
CN115208650A (zh) * | 2022-07-05 | 2022-10-18 | 上海江宇信息科技有限公司 | 基于云平台的数据安全实现方法、设备、介质及产品 |
CN115484056A (zh) * | 2022-08-04 | 2022-12-16 | 上海智能网联汽车技术中心有限公司 | 一种车辆电子vin码防篡改安全系统 |
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 |
---|---|---|
CN106656470A (zh) | 一种基于改进aes算法的数据加密方法 | |
CN106850221B (zh) | 信息加密、解密方法及装置 | |
CN107070630B (zh) | 一种aes算法的快速安全硬件结构 | |
CN107707343B (zh) | 加解密一致的sp网络结构轻量级分组密码实现方法 | |
CN107147487B (zh) | 对称密钥随机分组密码 | |
CN103812641A (zh) | 一种实现sm4分组对称密码算法的系统 | |
CN104270247A (zh) | 适用于量子密码系统的高效泛Hash函数认证方案 | |
CN105916141B (zh) | 一种自同步的祖冲之加解密算法的实现系统及其方法 | |
CN109033892B (zh) | 基于合成矩阵的轮变换复用电路及aes解密电路 | |
Li et al. | Keyed hash function based on a dynamic lookup table of functions | |
CN104320420A (zh) | 一种基于aes算法的scada文件加密方法 | |
CN108650072A (zh) | 一种支持多种对称密码算法芯片及其抗攻击电路实现方法 | |
CN109033847B (zh) | Aes加密运算单元、aes加密电路及其加密方法 | |
CN107835070B (zh) | 一种简单的嵌入式加密方法 | |
CN108566271B (zh) | 复用轮变换电路、aes加密电路及其加密方法 | |
JP5207153B2 (ja) | 擬似乱数発生システム | |
CN103209071A (zh) | Aes加密装置 | |
CN108989018B (zh) | 一种aes加密单元、aes加密电路及加密方法 | |
CN103051443B (zh) | Aes密钥扩展的方法 | |
CN105376052A (zh) | 对称迭代块编码方法和相应设备 | |
JP5449063B2 (ja) | Rijndael型192bitブロック暗号化装置、方法、及びそのプログラム | |
CN202998117U (zh) | Aes加密装置 | |
Kumar et al. | FPGA Implementation of High Performance Hybrid Encryption Standard | |
CN109150496B (zh) | Aes加密运算单元、aes加密电路及加密方法 | |
JP5268011B2 (ja) | 暗号化システム及び復号化システム |
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 |