一种AES算法与ElGamal算法相结合的加密文件传输方法与流程

文档序号:11234648阅读:558来源:国知局
一种AES算法与ElGamal算法相结合的加密文件传输方法与流程

本方法涉及信息技术领域的加密文件的传输方法,特别是一种aes算法与elgamal算法相结合的加密文件传输方法。



背景技术:

一、aes算法

高级加密标准(英语:advancedencryptionstandard,缩写:aes)是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的des,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(nist)于2001年11月26日发布于fipspub197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。

aes的区块长度固定为128比特,密钥长度则可以是128,192或256比特。大多数aes计算是在一个特别的有限域完成的。

aes加密过程是在一个4×4的字节矩阵上运作,这个矩阵又称为“状态(state)”,其初值就是一个明文区块(矩阵中一个元素大小就是明文区块中的一个byte)。加密时,各轮aes加密循环(除最后一轮外)均包含4个步骤:

addroundkey—矩阵中的每一个字节都与该次轮秘钥(roundkey)做xor运算;每个子密钥由密钥生成方案产生。

subbytes—通过非线性的替换函数,用查找表的方式把每个字节替换成对应的字节。

shiftrows—将矩阵中的每个横列进行循环式移位。

mixcolumns—为了充分混合矩阵中各个直行的操作。这个步骤使用线性转换来混合每列的四个字节。

最后一个加密循环中省略mixcolumns步骤,而以另一个addroundkey取代。

其存在的问题在于传统的逻辑门存在一定位上的扇出,即两个输入,却只有一个输出。这样便有利于边信道攻击中的功耗分析进行破解。

二、可逆逻辑线路

可逆逻辑线路是由一系列可逆逻辑门搭建而成的具有一定函数功能的逻辑电路。它具有如下特点:

(1)输入数等于输出数;

(2)没有扇入与扇出;

(3)没有反馈;

(4)网络分层级联,有时为了保证网络可逆,需要添加一些无用的输出或输入信息位,即垃圾信息位;

(5)n输入、输出向量的可逆网络共有2n!种。

三、elgamal算法

elgamal公钥密码体质基于有限域上的离散对数困难问题。它既能用于数据加密也能用于数字签名,在现代密码学中应用十分广泛,是目前应用最为广泛的数字签名方案,这些方案可以应用于数字签名、认证、加密以及各种安全协议中,在金融系统中,广泛地使用到elgamal签名体质,同时在通信系统中,也大量使用基于elgamal签名算法的认证和通信协议

elgamal的加密过程如下:

(1)参数产生:设g为有限域zp上的乘法群,p是一个素数,α是zp上的一个生成元

(2)密钥生成:选取α∈[1,p-2],计算β=αamodp,那么得到私钥为a,公钥为(p,α,β)。

(3)加密过程:对于加密消息m可以任意选取随机数k∈[1,p-2],计算γ=akmodp和δ=mβkmodp,可以得到密文为c=(γ,δ)。

(4)解密过程:接受着收到密文c=(γ,δ)后,使用私钥a,计算γ-aδ=(αk)-aδ=α-ka(mβk)=α-kaakmodp=mmodp=m,得到明文m。

利用以上参数和密钥,数字签名算法dsa(digitalsignaturealgorithm)如下:

签名过程:对消息m,任意选取随机数k∈[1,p-2],计算r=αkmodp,s=k-1(h(m)+ar)mod(p-1),其中h为hash函数。那么(r,s)为消息m的签名。

信息安全不仅体现在文件存储的环节,文件在传输过程中的安全也同样至关重要。市场上大多数的文件传输会根据相应的公共协议对传输的消息进行加解密,但在用户将消息发送到信道的过程中,信息的安全性却备受考验,存在着截流的风险。同时,对称加解密采用同样的密钥也加大了对密钥传输安全性的考验,通常的加密系统,用户会将密钥交给第三方安全机构来授予,通过数字签名等对身份、属性的验证来派发。第三方的公信力就显得至关重要,公信力的缺失和用户个人信息的泄漏同样威胁着安全。如何管理密钥,如何确保传输消息的安全引起了广泛的思考。



技术实现要素:

本发明的目的是为了克服以上不足,提供一种aes算法与elgamal算法相结合的文件传输加密方法,既保证了文件的加密效果,又保证了文件及密钥传输过程中的安全性。

本发明的目的通过以下技术方案来实现:一种aes算法与elgamal算法相结合的加密文件传输方法,具体步骤包括:

a、文件在发送端采用aes算法进行加密处理,然后运用发送端提供的elgamal公钥对aes密钥进行加密处理,并将加密后的文件与密钥发送至接收端;

b、文件在接收端运用本地保存的elgamal私钥先对接收到的aes密钥进行解密处理,然后将还原后的密钥对接收到的aes密文进行解密处理,得到发送端发送的原文。

在本发明一个较佳实施例中,用户在注册时自动调用elgamal算法,生成对应的公钥publickey和私钥privatekey,分别存储在服务器和本地数据库。

在本发明一个较佳实施例中,所述aes算法为基于可逆逻辑的aes算法。

在本发明一个较佳实施例中,所述可逆逻辑的aes算法,具体为:

a、运用可逆逻辑门的可逆特性,构造相应的可逆逻辑电路来替换、改造传统aes算法中列混合过程的电路构造,达到运用可逆逻辑门来替代传统逻辑门的效果,从而实现aes算法中的加密过程;

b、运用可逆逻辑门的可逆特性,构造相应的可逆逻辑电路来替换、改造传统aes算法中逆列混合过程的电路构造,达到运用可逆逻辑门来替代传统逻辑门的效果,从而实现aes算法中的解密过程。

在本发明一个较佳实施例中,所述步骤a中的所述列混合过程的具体步骤如下:

列混合的操作是通过矩阵相乘来实现的,在算法中,矩阵的乘法和加法都是定义基于z2[x]的不可约多项式m(x)=x8+x4+x3+x+1构造的有限域gf(28)上的运算,所涉及到的加法和乘法运算具体如下:

列混合是针对字、字节和位的操作,到最终列混合是针对位的操作,写成多项式相乘的形式,令其中w(x)是迦罗瓦域上的多项式,记为:

w(x)={03}x3+{01}x2+{01}x+{02}

为了便于计算操作,写成如下的形式:

所以

经过该乘法计算后,每一列中的一个字有下述结果取代:

通过构造可逆逻辑可逆电路来实现;

其中b7b6b5b4b3b2b1b0输入的相应的字节,也即是状态矩阵中每个元素的值,其中b(x)为一个字节;

而一个状态中共含有16个元素,即含有16个字节,每一个字节都需要进行上述的操作,为了简化电路,我们将迦罗瓦域中2·b(x)的运算封装成一个小的可逆逻辑模块电路。

在本发明一个较佳实施例中,所述步骤b中所述逆列混合过程的具体步骤如下:

逆列混合变换是列混合变换的逆变换,逆混合变换是在状态上对每一列进行运算,将每一列看作是4次多项式,将状态的列看作gf(28)上的多项式且被一个固定的多项式w-1(x)模x4+1,其中w-1(x)为:

w-1(x)={03}x3+{01}x2+{01}x+{02}

同样,这里可以写成矩阵乘法,令

经过该乘法计算后,一列中的4个字节将由下述结果取代:

本发明aes算法与elgamal算法相结合的文件传输加密方法与现有技术相比具有以下优点:

1、双重加密:

本文件传输加密方法先运用了aes算法进行第一重加密,然后在其基础上对aes的密钥也运用elgamal算法进行第二重加密,在不降低效率的前提下保证了文件的传输安全。

2、aes算法基于可逆逻辑线路构造:

基于可逆逻辑构造的原理,通过增加可构造密钥的种类提升了加密线路的抗攻击性。在n条线路上的有限域内可以构造的密钥种类多达2n!种,而传统的线路构造方法可以实现的密钥种类仅有2n!种。

3、私钥在本地保管:

在整个文件传输过程中,只有拥有私钥才能将文件进行解密,而接收端的私钥仅在本地保存而不参与传输过程,提升了接收端的安全度,防止在传输过程中的密钥泄露。

附图说明

图1是aes与elgamal结合的传输结构图;

图2是aes与elgamal结合的用例图;

图3是加密文件传输过程的流程图;

图4是加密文件传输过程的时序图;

图5是aes算法的加密流程图;

图6是为实现aes算法中的列混合过程而设计的可逆逻辑电路;

图7是可逆逻辑电路数乘2的电路构造;

图8是u器件;

图9是可逆逻辑电路;

图10是逆列混合的电路构造图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。在本发明的一种实施方式中描述的元素和特征可以与一个或更多个其它实施方式中示出的元素和特征相结合。应当注意,为了清楚的目的,说明中省略了与本发明无关的、本领域普通技术人员已知的部件和处理的表示和描述。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

结合图1-4,本发明公开了一种aes算法与elgamal算法相结合的加密文件传输方法,具体步骤包括:

(1)用户在注册时自动调用elgamal算法,生成一个对应的公钥publickey,和私钥privatekey,分别存储在服务器和本地数据库。

(2)发送方a首先调用aes算法对原文件plaintext进行加密,生成密文ciphertext。

(3)发送方a根据接收方b的用户id访问服务器数据库,取得接收方b存储在服务器上的公钥qu_b,利用获取的接收方b的公钥qu_b,对aes加密时生成的密钥aeskey调用elgamal算法进行加密,将加密后的文件和密钥打包发送给接收方b。

(4)接收方b在收到文件后,解析出其中的密钥部分,首先调用elgamal算法还原出aes加密所使用的密钥aeskey。

(5)然后利用还原出的aeskey调用aes算法对密文ciphertext解密,最终还原出明文plaintext。

优选地,所述aes算法采用基于可逆逻辑的aes算法。

结合图5所示,所述基于可逆逻辑的aes算法具体步骤如下:

(1)、运用可逆逻辑门的可逆特性,构造特殊的可逆逻辑电路来替换、改造传统aes算法中列混合过程的电路构造,达到运用可逆逻辑门来替代传统逻辑门的效果,从而实现aes算法中的加密过程。

(2)、运用可逆逻辑门的可逆特性,构造特殊的可逆逻辑电路来替换、改造传统aes算法中逆列混合过程的电路构造,达到运用可逆逻辑门来替代传统逻辑门的效果,从而实现aes算法中的解密过程。

列混合过程改造:

列混合是整个加密过程中最为重要的一个部分,本质上来讲列混合的操作是通过矩阵相乘来实现的,在算法中,矩阵的乘法和加法都是定义基于z2[x]的不可约多项式m(x)=x8+x4+x3+x+1构造的有限域gf(28)上的运算,所涉及到的加法和乘法运算的详细介绍见下面所述。

列混合是针对字,字节和位的操作,到最终列混合说到底是针对位的操作,之前提到列混合的操作相当于是通过矩阵相乘来实现的,我们可以用来写成多项式相乘的形式,令其中w(x)是迦罗瓦域上的多项式,记为:

w(x)={03}x3+{01}x2+{01}x+{02}

为了便于计算操作,可以写成如下的形式:

所以

经过该乘法计算后,每一列中的一个字有下述结果取代:

这里我们通过构造可逆逻辑可逆电路来实现,见图6。

其中b7b6b5b4b3b2b1b0输入的相应的字节,也即是状态矩阵中每个元素的值,图7就表示迦罗瓦域中2·b(x)的运算,其中b(x)为一个字节。

而一个状态中共含有16个元素,即含有16个字节,每一个字节都需要进行上面的操作,为了简化电路,我们将图7封装成一个小的可逆逻辑模块电路图,见图8所示。

而针对每一列所进行的操作,我们构造如下的可逆逻辑电路图,见图9。

逆列混合过程改造:

逆列混合变换是列混合变换的逆变换。逆混合变换是在状态上对每一列进行运算。将每一列看作是4次多项式。将状态的列看作gf(28)上的多项式且被一个固定的多项式w-1(x)模x4+1,其中w-1(x)为:

w-1(x)={03}x3+{01}x2+{01}x+{02}

同样这里可以写成矩阵乘法。令

经过该乘法计算后,一列中的4个字节将由下述结果取代:

构造的可逆逻辑电路图见图10。

最后应说明的是:虽然以上已经详细说明了本发明及其优点,但是应当理解在不超出由所附的权利要求所限定的本发明的精神和范围的情况下可以进行各种改变、替代和变换。而且,本发明的范围不仅限于说明书所描述的过程、设备、手段、方法和步骤的具体实施例。本领域内的普通技术人员从本发明的公开内容将容易理解,根据本发明可以使用执行与在此所述的相应实施例基本相同的功能或者获得与其基本相同的结果的、现有和将来要被开发的过程、设备、手段、方法或者步骤。因此,所附的权利要求旨在在它们的范围内包括这样的过程、设备、手段、方法或者步骤。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1