一种明文数据加密方法及设备转让专利

申请号 : CN201710514725.6

文献号 : CN107257279B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨飞

申请人 : 广东浩云长盛网络股份有限公司

摘要 :

本发明提供了一种明文数据加密方法及设备,该方法应用于包括有处理器的设备,包括:将白化密钥k0与明文数据P按字节做异或运算得到运算结果X0,X0表示第一个中间态,对运算结果X0进行r‑1轮迭代变换得到运算结果Xi,其中每轮迭代变换包括混淆层SL变换、扩散层DL变换和密钥加变换RKA,其中1≤i≤r‑1,r表示轮数;将运算结果X(r‑1)通过第r轮变换,获得密文数据C,其中本发明对ARIA密码算法进行了改进,具有良好的抵抗滑动攻击性能,提升了信息的安全性。

权利要求 :

1.一种明文数据加密方法,应用于包括有处理器的设备,其特征在于,该方法包括:将白化密钥k0与明文数据P按字节做异或运算得到运算结果X0,X0表示第一个中间态,其中白化密钥k0为预先配置的主密钥K的最左边128比特;

对运算结果X0进行r-1轮迭代变换得到运算结果Xi,其中每轮迭代变换包括混淆层SL变换、扩散层DL变换和密钥加变换RKA,其中 1≤i≤r-1,r表示轮数,ki为第i轮轮密钥;

将运算结果X(r-1)通过第r轮变换,获得密文数据C,其中 kr为第r轮轮密钥;

其中,混淆层SL包括第一类混淆层和第二类混淆层,所述混淆层变换为非线性变换,采用4个S盒:S1、S2、S3和S4,其中 第一类混淆层变换在奇数轮中使用,第二类混淆层变换在偶数轮中使用;

对轮密钥ki进行编排;所述对轮密钥ki进行编排具体包括:主密钥K表示为:

对于i=1,2,……32,循环执行以下变换:

1)循环移位θ:即第j行循环左移j字节,(j=1,2,3,4);

2)S变换γ:即第j行前四个字节进行Sj变换;

3)前四列异或以下矩阵π:

4)输出 取最左边128比特作为轮密钥ki。

2.如权利要求1所述的方法,其特征在于,所述扩散层DL变换为线性变换,是将16字节状态(x0,x1,…,x15)映射为(y0,y1,…,y15),具体定义如下:(x0,x1,...,x15)→(y0,y1,...,y15)

3.如权利要求1所述的方法,其特征在于,所述密钥加RKA变换是将轮密钥ki与中间状态Xi-1进行逐字节异或运算,记为:

4.如权利要求1所述的方法,其特征在于,该方法还包括:对所述密文数据C进行解密操作,所述解密操作为加密操作的逆操作,所述解密操作过程包括:步骤一:将密文数据C与轮密钥K32按位异或操作;

步骤二:将步骤一异或结果进行第一类混淆层非线性变换;

步骤三:将步骤二非线性变换结果与轮密钥Ki按位异或,其中,i=31,30...,1;

步骤四:将步骤三的异或结果进行扩散层线性变化;

步骤五:将步骤四线性变换结果进行混淆层非线性变换,其中混淆层第一类变换在偶数轮中使用,混淆层第二类变换在奇数轮中使用;

步骤六:将步骤五的非线性变换结果作为下一轮迭代的输入变元,依次重复步骤三、四、五的操作,直至第1轮;

步骤七:将步骤六的结果与白化密钥k0的前128比特按位异或,从而得到明文数据P。

5.一种明文数据加密设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4中任一项所述的方法的步骤。

6.如权利要求5所述的设备,其特征在于,所述处理器包括图形处理器GPU;

所述GPU,用于将白化密钥k0与明文数据P按字节做异或运算得到运算结果X0,X0表示第一个中间态, 对运算结果X0进行r-1轮迭代变换得到运算结果Xi,其中每轮迭代变换 包括混 淆层 SL变 换、扩 散层D L变换 和密 钥加变换 RK A,其中

1≤i≤r-1,r表示轮数;将运算结果X(r-1)通过第r轮变换,获得密文数据C,其中

7.如权利要求5所述的设备,其特征在于,所述处理器包括中央处理器CPU;所述CPU,用于对轮密钥ki进行编排;所述对轮密钥ki进行编排具体包括:输出主密钥K的最左边128比特作为白化密钥k0,其中主密钥K表示为:对于i=1,2,……32,循环执行以下变换:

1)循环移位θ:即第j行循环左移j字节,(j=1,2,3,4);

2)S变换γ:即第j行前四个字节进行Sj变换;

3)前四列异或以下矩阵π:

4)输出 取最左边128比特作为轮密钥ki。

8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4中任一项所述的方法的步骤。

说明书 :

一种明文数据加密方法及设备

技术领域

[0001] 本发明涉及信息安全技术,尤指一种明文数据加密方法及设备。

背景技术

[0002] 随着计算机和通信技术的发展,用户对信息的安全存储、安全处理和安全传输的需求越来越迫切。特别地,随着Internet的广泛应用,以及个人通信、多媒体通信、办公自动化、电子邮件、电子自动转账支付系统和自动零售业务网的建立和实现,信息的安全保护问题就显得更加重要,解决这一问题的有效手段之一是使用现代密码技术。
[0003] 美国数据加密标准(DES,Data Encryption Standard)的颁布实施标志着现代密码学的诞生,从此揭开了商用密码研究的序幕。此后实用密码的研究基本上在沿着两个方向进行,即以公钥加密算法RSA为代表的公开密钥密码和以DES为代表的秘密密钥分组密码。其中,分组密码具有速度快,易于标准化和便于软硬件实现等特点,通常是信息与网络安全中实现数据加密、消息鉴别、认证及密钥管理的核心密码算法,它在计算机通信和信息系统安全领域有着广泛的应用。美国国家标准技术研究所在2001年发布了高级加密标准(AES)。AES是一个对称分组密码算法,旨在取代DES成为广泛使用的标准。韩国分组密码标准(ARIA算法)是目前广泛应用的分组加密算法之一,但其与AES算法相似的设计结构使得很多攻击AES算法的方法对ARIA产生威胁,如何优化ARIA算法,提升信息安全性是目前需要解决的问题之一。

发明内容

[0004] 针对上述技术问题,本发明提供了一种明文数据加密方法及设备,对ARIA算法进行了改进,能够抵抗滑动攻击,提升信息安全性。
[0005] 为了达到本发明目的,本发明提供了一种明文数据加密方法,应用于包括有处理器的设备,该方法包括:
[0006] 将白化密钥k0与明文数据P按字节做异或运算得到运算结果X0,X0表示第一个中间态, 其中白化密钥k0为预先配置的主密钥K的最左边128比特;
[0007] 对运算结果X0进行r-1轮迭代变换得到运算结果Xi,其中每轮迭代变换包括混淆层SL变换、扩散层DL变换和密钥加变换RKA,其中 1≤i≤r-1,r表示轮数;
[0008] 将运算结果X(r-1)通过第r轮变换,获得密文数据C,其中
[0009] 进一步地,混淆层SL包括第一类混淆层和第二类混淆层,所述混淆层变换为非线性变换,采用4个S盒:S1、S2、S3和S4,其中 第一类混淆层变换在奇数轮中使用,第二类混淆层变换在偶数轮中使用。
[0010] 进一步地,所述扩散层DL变换为线性变换,是将16字节状态(x0,x1,...,x15)映射为(y0,y1,...,y15),具体定义如下:
[0011]
[0012] (x0,x1,...,x15)→(y0,y1,...,y15)
[0013]
[0014] 进一步地,所述密钥加RKA变换是将轮密钥ki与中间状态Xi-1进行逐字节异或运算,记为:
[0015] 进一步地,该方法还包括:对轮密钥ki进行编排;所述对轮密钥ki进行编排具体包括:
[0016] 主密钥K表示为:
[0017]
[0018] 对于i=1,2,……32,循环执行以下变换:
[0019] 1)循环移位(θ):即第j行循环左移j字节,(j=1,2,3,4);
[0020]
[0021] 2)S变换(γ):即第j行前四个字节进行Sj变换;
[0022]
[0023] 3)前四列异或以下矩阵(π):
[0024]
[0025] 4)输出 取最左边128比特作为轮密钥ki。
[0026] 进一步地,该方法还包括:
[0027] 对所述密文数据C进行解密操作,所述解密操作为加密操作的逆操作,所述解密操作过程包括:
[0028] 步骤一:将密文数据C与轮密钥K32按位异或操作;
[0029] 步骤二:将步骤一异或结果进行第一类混淆层非线性变换;
[0030] 步骤三:将步骤二非线性变换结果与轮密钥Ki按位异或(i=31,30...,1);
[0031] 步骤四:将步骤三的异或结果进行扩散层线性变化;
[0032] 步骤五:将步骤四线性变换结果进行混淆层非线性变换,其中混淆层第一类变换在偶数轮中使用,混淆层第二类变换在奇数轮中使用;
[0033] 步骤六:将步骤五的非线性变换结果作为下一轮迭代的输入变元,依次重复步骤三、四、五的操作,直至第1轮;
[0034] 步骤七:将步骤六的结果与白化密钥k0的前128比特按位异或,从而得到明文数据P。
[0035] 为了达到本发明目的,本发明还提供了一种设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述明文数据加密方法的步骤。
[0036] 进一步地,所述处理器包括图形处理器GPU;
[0037] 所述GPU,用于将白化密钥k0与明文数据P按字节做异或运算得到运算结果X0,X0表示第一个中间态, 对运算结果X0进行r-1轮迭代变换得到运算结果Xi,其中每轮迭代变换包括混淆层SL变换、扩散层DL变换和密钥加变换RKA,其中1≤i≤r-1,r表示轮数;将运算结果X(r-1)通过第r轮变换,获得密
文数据C,其中
[0038] 进一步地,所述处理器包括中央处理器CPU;所述CPU,用于对轮密钥ki进行编排;所述对轮密钥ki进行编排具体包括:
[0039] 输出主密钥K的最左边128比特作为白化密钥k0。其中主密钥K表示为:
[0040]
[0041] 对于i=1,2,……32,循环执行以下变换:
[0042] 1)循环移位(θ):即第j行循环左移j字节,(j=1,2,3,4);
[0043]
[0044] 2)S变换(γ):即第j行前四个字节进行Sj变换;
[0045]
[0046] 3)前四列异或以下矩阵(π):
[0047]
[0048] 4)输出 取最左边128比特作为轮密钥ki。
[0049] 为了达到本发明目的,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述明文数据加密方法的步骤。
[0050] 本发明技术方案提供了一种明文数据加密方法及设备,该方法应用于包括有处理器的设备,包括:将白化密钥k0与明文数据P按字节做异或运算得到运算结果X0,X0表示第一个中间态, 对运算结果X0进行r-1轮迭代变换得到运算结果Xi,其中每轮迭代变换包括混淆层SL变换、扩散层DL变换和密钥加变换RKA,其中 1≤i≤r-1,r表示轮数;将运算结果X(r-1)通过第r轮变换,获得密文数据C,其中本发明对ARIA密码算法进行了改进,具有良好的抵抗滑动攻击性能,
提升了信息的安全性。

附图说明

[0051] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0052] 图1为本发明实施例提供的明文数据加密方法流程示意图;
[0053] 图2为本发明实施例一提供的明文数据加解密方法流程示意图;
[0054] 图3为本实施例二提供的加解密设备架构示意图;
[0055] 图4为本发明实施例二提供的加解密方法流程示意图。

具体实施方式

[0056] 下面将结合附图及实施例对本发明的技术方案进行更详细的说明。
[0057] 应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0058] 在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
[0059] 根据本发明的一个实施例,提供了一种明文数据加密方法。图1为本发明实施例提供的明文数据加密方法流程示意图,如图1所示,该明文数据加密方法,应用于包括有处理器的设备,包括:
[0060] 步骤101,将白化密钥k0与明文数据P按字节做异或运算得到运算结果X0,X0表示第一个中间态, 其中白化密钥k0为预先配置的主密钥K的最左边128比特;
[0061] 步骤102,对运算结果X0进行r-1轮迭代变换得到运算结果Xi,其中每轮迭代变换包括混 淆层 (SL) 变 换、扩散 层 (D L) 变换 和密 钥加变 换 (RK A) ,其中1≤i≤r-1,r表示轮数;
[0062] 步骤103,将运算结果X(r-1)通过第r轮变换,获得密文数据C,其中
[0063] 运算符 是表示两个函数的复合运算。
[0064] 白化密钥k0、轮密钥Ki以及Kr都可以通过对预先配置的主密钥K的编排而获得,主密钥K、轮密钥Ki以及Kr可以为256比特。主密钥K可以表示如下:
[0065]
[0066] 进一步地,混淆层(SL)包括第一类混淆层和第二类混淆层,所述混淆层变换为非线性变换,采用4个S盒:S1、S2、S3和S4,其中 第一类混淆层变换在奇数轮中使用,第二类混淆层变换在偶数轮中使用。
[0067] 进一步地,所述扩散层(DL)变换为线性变换,是将16字节状态(x0,x1,...,x15)映射为(y0,y1,...,y15),具体定义如下:
[0068]
[0069] (x0,x1,...,x15)→(y0,y1,...,y15)
[0070]
[0071] 进一步地,密钥加变换(RKA)是将轮密钥ki与中间状态Xi-1进行逐字节异或运算,记为:
[0072]
[0073] 进一步地,经如下步骤获得所述轮密钥ki:
[0074] 主密钥K表示为:(均为字节)
[0075]
[0076] 输出K的最左边128比特作为白化密钥k0
[0077] 对于i=1,2,……32,循环执行以下变换:
[0078] 1)循环移位(θ):即第j行循环左移j字节,(j=1,2,3,4);
[0079]
[0080] 2)S变换(γ):即第j行前四个字节进行Sj变换;
[0081]
[0082] 3)前四列异或以下矩阵(π):
[0083]
[0084] 4)输出 (即取最左边128比特):即取第3)步结果的前四列作为轮密钥Ki。
[0085] 进一步地,该方法还包括:对所述密文数据C进行解密操作,解密过程包括:
[0086] 步骤一:将密文数据C与轮密钥K32按位异或操作;
[0087] 步骤二:将步骤一异或结果进行第一类混淆层非线性变换;
[0088] 步骤三:将步骤二非线性变换结果与轮密钥Ki按位异或(i=31,30...,1);
[0089] 步骤四:将步骤三的异或结果进行扩散层线性变化;
[0090] 步骤五:将步骤四线性变换结果进行混淆层非线性变换,其中混淆层第一类变换在偶数轮中使用,混淆层第二类变换在奇数轮中使用;
[0091] 步骤六:将步骤五的非线性变换结果作为下一轮迭代的输入变元,依次重复步骤三、四、五的操作,直至第1轮;
[0092] 步骤七:将步骤六的结果与主密钥K0的前128比特按位异或,从而得到明文数据P。
[0093] 而本发明技术方案提供的新算法不仅结合了原ARIA算法的优势,并且在混淆层和秘钥编排上做了创新,具有良好的抗滑动攻击的能力。滑动攻击是指使用相同的轮函数,或几轮轮函数形成一个周期等弱点,寻找满足一定条件的明密对,从中可以获得密钥的部分信息。原有ARIA算法容易受到滑动攻击,本发明新算法与ARIA算法的不同点在于:
[0094] 第一,秘钥长度上新算法采用256bit,区别与ARIA算法的秘钥长度。
[0095] 第二,混淆层进行了变换。新算法的第一类替代变换SL采用S1、S2、 的顺序,而ARIA算法是采用S1、S2、 的顺序排列,其中新算法中的S2和ARIA算法中的S1都是采用AES算法中的S盒,而新算法中的S1和ARIA算法中的S2采用的是两种不同的S盒。
[0096] 第三,秘钥编排上也不相同,新算法经过循环移位(θ)和S变换(χ)、异或运算后只取前128bit作为轮秘钥,而ARIA算法是需要2个128bit的初始KL和KR,由种子秘钥MK生成,规则如下:
[0097] KL||KR=MK||0...0
[0098] 经过两轮的Feistel变换后生成4个128bit的秘钥字W0,W1,W2,W3,通过对它们进行移位和异或运算后来获取所需轮秘钥。
[0099] 实施例一
[0100] 本发明实施例一提供了一种明文数据加解密方法,本实施例一中明文数据分组长度为128比特,轮密钥Ki长度为256比特,对应的轮数r为32轮。
[0101] 图2为本发明实施例一提供的明文数据加解密方法流程示意图,如图2所示,一种明文数据加解密方法,应用于包括有处理器的设备,对明文数据进行加解密处理的方法步骤包括:
[0102] 流程如图2所示,加密流程:
[0103] 对明文数据进行初始白化过程,即将白化密钥k0与明文数据P按字节做异或运算:
[0104] 对X0进行如下r-1轮迭代变换,每轮迭代变换包括混淆层SL变换、扩散层DL变换和密钥加变换RKA,其中 1≤i≤r-1,;
[0105] 将r-1轮的输出结果Xr-1通过r轮变换,获得密文数据C,其中
[0106] r表示轮数,本实施例中r为32,RKA表示密钥加变换,X0表示第一个中间态。
[0107] 上述加密处理流程的整体结构为SP(subspace pursuit)结构,每一轮由以下3个操作构成。
[0108] 1、混淆层SL
[0109] 混淆层变换为非线性变换,本算法采用两类混淆层,即第一类混淆层和第二类混淆层,可参照图2和图3,两类替代变换共采用4个S盒:S1、S2、S3和S4,其中,混淆层第一类变换在奇数轮中使用,混淆层第二类变换在偶数轮中使用。
[0110] S1:
[0111]
[0112]
[0113] S2:
[0114]
[0115] S3:
[0116]
[0117]
[0118] S4:
[0119]
[0120] 2、扩散层DL:
[0121] 扩散层变换为线性变换,它将16字节状态(x0,x1,...,x15)映射为(y0,y1,...,y15),具体定义如下:
[0122]
[0123] (x0,x1,...,x15)→(y0,y1,...,y15)
[0124]
[0125] 3、密钥加变换RKA
[0126] 密钥加变换是将轮密钥ki与中间状态Xi-1进行逐字节异或运算,记为:
[0127] 进一步地,该方法还包括,在对明文数据进行初始白化过程之前,对轮密钥进行编排,其中密钥编排的具体过程如下:
[0128] 密钥扩展算法步骤如下:
[0129] 步骤一:输出K的最左边128比特作为轮子密钥(白化密钥)k0;
[0130] 主密钥K可以表示为:(均为字节)
[0131]
[0132] 步骤二:对于i=1,2,……32,循环执行以下变换:
[0133] 1)循环移位(θ):即第j行循环左移j字节,(j=1,2,3,4);
[0134]
[0135] 2)S变换(γ):即第j行前四个字节进行Sj变换;
[0136]
[0137] 3)前四列异或以下矩阵(π):
[0138]
[0139] 4)输出 (即取最左边128比特):即取第3)步结果的前四列作为轮密钥Ki。
[0140] 进一步地,该方法还包括:对密文数据C进行解密,流程如图2所示,解密流程如下:
[0141] 解密过程包括:
[0142] 步骤一:将密文与轮密钥K32按位异或操作;
[0143] 步骤二:将步骤一异或结果进行第一类混淆层非线性变换;
[0144] 步骤三:将步骤二非线性变换结果与轮密钥Ki按位异或(i=31,30...,1);
[0145] 步骤四:将步骤三的异或结果进行扩散层线性变化;
[0146] 步骤五:将步骤四线性变换结果进行混淆层非线性变换,其中混淆层第一类变换在偶数轮中使用,混淆层第二类变换在奇数轮中使用;
[0147] 步骤六:将步骤五的非线性变换结果作为下一轮迭代的输入变元,依次重复步骤三、四、五的操作,直至第1轮;
[0148] 步骤七:将步骤六的结果与白化密钥k0的前128比特按位异或,从而得到明文数据输出。
[0149] 其中,解密过程仍为32轮,每一轮的操作是加密操作的逆操作,其中采用的是S盒的逆运算查表,做逆变换时,密钥是从k32开始,而线性层也就是扩散层的逆就是线性层本身。
[0150] 根据本发明的另一实施例,提供了一种设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述的明文数据加密方法的步骤。
[0151] 进一步地,所述处理器包括图形处理器GPU;
[0152] 所述处理器包括图形处理器GPU;
[0153] 所述GPU,用于将白化密钥k0与明文数据P按字节做异或运算得到运算结果X0,X0表示第一个中间态, 对运算结果X0进行r-1轮迭代变换得到运算结果Xi,其中每轮迭代变换包括混淆层SL变换、扩散层DL变换和密钥加变换RKA,其中1≤i≤r-1,r表示轮数;将运算结果X(r-1)通过第r轮变换,获得密
文数据C,其中
[0154] 其中,明文数据P分组长度可以为128比特,轮密钥Ki长度可以为256比特,r可以为32。
[0155] 进一步地,所述处理器包括中央处理器CPU;所述CPU,用于对轮密钥ki进行编排;所述对轮密钥ki进行编排具体包括:
[0156] 输出主密钥K的最左边128比特作为白化密钥k0。其中主密钥K表示为:
[0157]
[0158] 对于i=1,2,……32,循环执行以下变换:
[0159] 1)循环移位(θ):即第j行循环左移j字节,(j=1,2,3,4);
[0160]
[0161] 2)S变换(γ):即第j行前四个字节进行Sj变换;
[0162]
[0163] 3)前四列异或以下矩阵(π):
[0164]
[0165] 4)输出 取最左边128比特作为轮密钥ki。
[0166] 实施例二
[0167] 本实施例二提供了一种明文数据加解密设备,图3为本实施例二提供的加解密设备架构示意图,图4为本发明实施例二提供的加解密方法流程示意图,如图3和图4所示,[0168] 本发明实施例提供了一种明文数据加解密设备,包括:中央处理器CPU和图形处理器GPU,其中GPU进行负责明文数据的加解密计算,CPU负责秘钥扩展算法,即密钥编排,存储器主要涉及到明文、密文、轮秘钥、S盒的存储。共享存储区可以被多个线程共享访问。
[0169] 在上述加解密设备中进行加解密操作的流程如图4所示,轮秘钥的产生在CPU中,处理结果传递到GPU相对应存储区域中后调用线程进行混淆、扩展等处理进行加解密。
[0170] 加密过程包括:
[0171] 步骤一:在计算开始前,将明文、密文、轮秘钥、S盒存储到GPU的全局存储区,在GPU中开辟32个线程,每个线程实现一个轮函数。
[0172] 步骤二:线程并行将分组密码算法的128比特明文与轮密钥Ki从全局存储区复制到共享存储区,将轮秘钥的前128比特按位异或操作;
[0173] 步骤三:对上一步运算结果再经过混淆层的非线性变换,其中混淆层第一类变换在奇数轮中使用,混淆层第二类变换在偶数轮中使用;
[0174] 步骤四:将步骤三非线性变换的结果再做扩散层线性变换;
[0175] 步骤五:将步骤四的线性变换结果与轮密钥Ki按位异或(i=1,2...,31);
[0176] 步骤六:将步骤五的异或结果作为下一轮迭代的输入变元,依次重复步骤三、四、五的操作,直至第31轮;
[0177] 步骤七:到第32轮时,将第31轮输出结果做第二类混淆层非线性变换,从而得到密文输出。
[0178] 解密过程包括:
[0179] 步骤一:将密文与轮密钥K32按位异或操作;
[0180] 步骤二:将步骤一异或结果进行第一类混淆层非线性变换;
[0181] 步骤三:将步骤二非线性变换结果与轮密钥Ki按位异或(i=31,30...,1);
[0182] 步骤四:将步骤三的异或结果进行扩散层线性变化;
[0183] 步骤五:将步骤四线性变换结果进行混淆层非线性变换,其中混淆层第一类变换在偶数轮中使用,混淆层第二类变换在奇数轮中使用;
[0184] 步骤六:将步骤五的非线性变换结果作为下一轮迭代的输入变元,依次重复步骤三、四、五的操作,直至第1轮;
[0185] 步骤七:将步骤六的结果与主密钥k0的前128比特按位异或,从而得到明文输出。
[0186] 本发明提供的分组密码加解密算法,其设计基于完善的数学理论,结合了ARIA密码算法的优点,设计安全合理,从而具有良好的抵抗滑动攻击性能,提升了信息的安全性。
[0187] 根据本发明的又一实施例,提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述明文数据加密方法的步骤。
[0188] 需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0189] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0190] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
[0191] 以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。