预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN106656470A(43)申请公布日2017.05.10(21)申请号201611185927.2(22)申请日2016.12.16(71)申请人南开大学地址300350天津市津南区同砚路38号南开大学津南新校区电光学院524室(72)发明人孙桂玲杨澎涛李洋洋周珮尧刘姜江(51)Int.Cl.H04L9/06(2006.01)权利要求书1页说明书6页附图1页(54)发明名称一种基于改进AES算法的数据加密方法(57)摘要本发明公开了一种数据加密方法,该方法基于AES算法改进而成。通过创建新的S盒,将原本AES算法中每个轮函数中的字节代换(ByteSub)、行移位(ShiftRow)、列混合(MixColumn)的运算过程简化查表的过程,在没有过多增加内存使用量的基础上,大大减小了计算量,使其可以在微控制器上快速实现,同时没有改变算法原本的数学结构,使其安全性更高。CN106656470ACN106656470A权利要求书1/1页1.一种基于改进AES算法的数据加密方法,其有以下三个主要特征:1)、输入数据为128位明文,经加密后输出为128位密文;2)、该方法是基于AES加密算法的优化,通过创建新的S盒,将原先每个轮函数中的字节代换(ByteSub)、行移位(ShiftRow)、列混合(MixColumn)的运算过程简化为查表和异或运算的过程;3)、该方法与原AES算法相比,所需内存空间略微扩大,但是预算量大大减小,便于在微控制器上实现。2CN106656470A说明书1/6页一种基于改进AES算法的数据加密方法[0001]【技术领域】:本发明涉及密码学以及算法领域。构建一个新的字节转换表,将输入的128位明文数据按照矩阵排列过后,查找表格相关位置所对应的数值,得到一个输出矩阵,将输出矩阵各列异或后再与扩展密钥相异或,由此得到128位密文。[0002]【背景技术】:本发明的数据加密方法是由AES算法改进而成,AES算法(即高级加密标准)是由美国国家标准技术研究所(NIST)于2000年10月通过公开招标并从众多候选算法中选择出来的一种效率高且加密强度大的对称加密算法。它具有加密程度强、数据处理速度快,可以在短时间内处理大量数据的特点。AES算法是一个可变数据块长和可变密钥长的迭代分组加密算法,数据块长和密钥长可分别为128,192或256比特,AES算法中最重要的操作为轮变换操作,改变换过程所应用的各种运算赋予很高的加密强度。而本发明通过创建新的S盒,将原本AES算法中每个轮函数中的字节代换(ByteSub)、行移位(ShiftRow)、列混合(MixColumn)的运算过程简化查表的过程,在没有过多增加内存使用量的基础上,大大减小了计算量,使其可以在微控制器上快速实现,同时没有改变算法原本的数学结构,使其安全性更高。【发明内容】:[0003]本发明将AES运算过程进行改进优化,提高了在终端微处理器上实现的速度。接下来首先介绍AES算法,然后通过矩阵运算得出其矩阵表示,最后说明了优化后的加密方法的运算过程:[0004](1)AES算法的简介[0005]AES算法是一个可变数据块长和可变密钥长的迭代分组加密算法,数据块长和密钥长可分别为128,192或256比特,AES算法中最重要的操作为轮变换操作,改变换过程所应用的各种运算赋予很高的加密强度。[0006]轮变换操作(解密过程与加密过程大同小异,为加密过程的逆运算):轮变换由4个不同的变换组成(S盒变换,行变换,列变换和轮密钥加),用伪C代码描述为:[0007]Round(State,RoundKey)[0008]{[0009]ByteSub(State);[0010]ShiftRow(State);[0011]MixColumn(State);[0012]AddRoundKey(State,RoundKey);[0013]}[0014]最后一轮稍有不同,少了MixColumn(State)函数,即为:[0015]FinalRound(State,RoundKey)[0016]{[0017]ByteSub(State);[0018]ShiftRow(State);3CN106656470A说明书2/6页[0019]AddRoundKey(State,RoundKey);[0020]}[0021](2)AES算法轮变换的矩阵表示[0022]AES算法主要由三大模块组成:加密模块、解密模块和密钥扩展模块。加密模块的每次轮变换均由字节代换(ByteSub)、行移位(ShiftRow)、列混合(MixColumn)和密钥加(AddRoundKey)四种运算构成,而解密模块也是由相似的四种运算构成,不同的是字