一种数据混合加密方法与流程

文档序号:14914359发布日期:2018-07-11 00:18阅读:669来源:国知局

本发明涉及信息安全领域,具体涉及一种数据混合加密方法。



背景技术:

随着移动互联网和计算机技术的迅速发展,人们的生活水平正逐步提高,智能手机在日常生活中扮演着非常重要的角色。由于手机的轻便、快捷、功能全面等优点,人们越来越依赖于手机,并逐渐代替计算机进行各种通信和数据交换业务。因此,在移动端到服务器数据传输过程中的数据信息安全问题越来越受到重视,在信息化如此发达的社会,一旦移动互联网的安全保障和稳定制度受到威胁,将给运营商和用户带来巨大的经济损失。为了解决上述问题,现代密码学和网络安全技术逐步发展起来。

主流密码学分为对称密码学算法和非对称密码学算法,前者的典型代表算法有DES、AES等,后者主要支持RSA算法。DES算法加密速度相当快,可应用于大数据加密,但是由于其密钥长度过短和S盒的不确定性,信息安全性特别低,明文易受攻击,且DES的密钥管理非常消耗系统的开销;RSA算法虽然安全性高,但是,RSA算法存在素数检测和产生大素数等问题,且RSA的密钥生成较困难,很难对所有数据做到一次一密的效果,且加密速度不快,不适合于大数据加密。

鉴于上述缺陷,本发明创作者经过长时间的研究和实践终于获得了本发明。



技术实现要素:

为解决上述技术缺陷,本发明采用的技术方案在于,提供一数据混合加密方法,该方法包括以下步骤:

步骤S1:发送方发送明文P;

步骤S2:运用DES算法对明文P进行加密,表示为:CP=ED(K,P),其中,CP是明文P加密后的密文,ED代表DES算法的一系列加密转换公式,K是DES算法的密钥;

步骤S3:在数据传输过程中,运用RSA算法对密钥K进行加密,表示为:CK=ER(Ka,K),其中,CK是密钥K加密后的密文,ER代表RSA算法的加密公式,Ka是RSA算法的公钥;

步骤S4:在RSA算法的基础上,对CK进行解密,表示为:K=DR(Kb,CK),其中,DR代表RSA算法的解密公式,Ka是RSA算法的私钥;

步骤S5:用DES算法和密钥K对CP进行解密,表示为P=DD(K,CP),其中,DD代表DES算法的一系列解密转换公式;

步骤S6:接受方获取明文P。

较佳的,所述步骤S2具体包括:

步骤S21:输入64比特明文P,分别表示为p1,p2,…,p64;

步骤S22:对输入的64比特明文P进行初始置换IP,得到置换后的明文P0;

步骤S23:将明文P0等分成L0和R0左右两部分,分别表示明文P0的左32比特和右32比特;

步骤S24:进行16次相同的迭代步骤,再进行轮加密,将上一轮的Li-1和Ri-1作为下一轮的输入,下一轮的输出为Li和Ri;

步骤S25:进行逆置换IP-1,即初始置换的逆运算,得到密文CP;

步骤S26:输出64比特的密文C,分别表示为c1,c2,…c64。

较佳的,所述步骤S24中的迭代步骤为Li=Ri-1,其中,f是一个置换函数,其包括E变化、S盒和Q变换,Ki为轮密钥。

较佳的,所述轮密钥为实际输入的64比特密钥通过循环左移位和压缩置换得到的48比特轮密钥。

较佳的,所述步骤S3具体包括:

步骤S31:选择两个大素数p和q,且p≠q,计算n=p×q, 其中,是n的欧拉函数;

步骤S32:选取素数并且a与互素;

步骤S33:将(a,n)做为公钥Ka,对密钥K按公式CK≡Ka mod n进行加密。

较佳的,所述步骤S32通过Miller-Rabin算法检测随机生成的大整数中的素数,并在Miller-Rabin算法之前,在所述随机生成的大整数中,先去除明显合数。

较佳的,所述去除明显合数的具体步骤包括:

步骤S32-1:随机生成大整数m,并选取从2开始的一组长度为53的素数组,记为v[i];

步骤S32-2:设i=0;

步骤S32-3:当i<53时,计算的y=m mod v[i]值;

步骤S32-4:若y=0,则说明m可以整除,不是素数;否则,i=i+1,转到步骤S32-3。

较佳的,所述步骤S4根据Euclidean算法,计算私钥Kb为(b,n), 对密文进行解密,公式为K≡CKb mod n,从而得到DES的密钥。

与现有技术比较,本发明的有益效果在于:本发明提供了一种数据混合加 密方法,通过RSA加密DES的密钥,大大提高了数据传输过程中的安全性;本发明的混合加密算法综合DES和RSA的加密速度,用于处理大数据传输时,加密速度远快于RSA加密速度;本发明的混合加密算法中,RSA只需要执行一次,即对DEA密钥进行加密,不需要密钥多次生成,且密钥是经过RSA加密的,不存在密钥保密和管理的问题,因此,本发明的混合加密算法很好地解决了DES和RSA的密钥生成和管理的问题。

附图说明

为了更清楚地说明本发明各实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。

图1为本发明提供的一种数据混合加密方法的流程示意图;

图2为本发明提供的一种数据混合加密方法的流程框图;

图3为本发明的步骤S2的流程示意图;

图4为本发明的步骤S24的E变化扩展规则表;

图5为本发明的步骤S24的S盒之一的数据表;

图6为本发明的轮密钥生成装置示意图;

图7为本发明的步骤S3流程示意图;

图8为本发明的步骤S32中去除明显合数的流程示意图;

图9为本发明的Miller-Rabin算法的流程示意图。

具体实施方式

以下结合附图,对本发明上述的和另外的技术特征和优点作更详细的说明。

如图1和图2所示,为本发明提供的一种数据混合加密方法的流程框图和 流程示意图,该方法包括以下步骤:

步骤S1:发送方发送明文P。

步骤S2:运用DES算法对明文P进行加密,表示为CP=ED(K,P)。其中,CP是明文P加密后的密文,ED代表DES算法的一系列加密转换公式,K是DES算法的密钥。

如图3所示,为步骤S2的流程示意图,该步骤S2具体包括:

步骤S21:输入64比特明文P,分别为p1,p2,…,p64。

步骤S22:对输入的64比特明文P进行初始置换IP,得到置换后的明文P0。P0仍然为64比特,只是改变了明文信息额顺序比特置,提高了加密过程的安全性。

在步骤S22中,对于输入的64比特明文P,首先进行的操作是初始置换IP,这些置换只是改变了明文P中信息的排列。在轮加密后,对输出的结果进行逆置换IP-1,这样才能得到最终的密文CP。例如,输入的明文为p1p2L p64,根据初始置换后,变为p58p50L p8,即明文的第58比特变为第一比特,明文的第50比特变为第二比特,以此类推,明文的第8比特变为最后一比特,打乱了原始明文的排列顺序。

步骤S23:将明文P0等分成L0和R0左右两部分,分别表示明文P0的左32比特和右32比特。

步骤S24:进行16次相同的迭代步骤,再进行轮加密,将上一轮的Li-1和Ri-1作为下一轮的输入,下一轮的输出为Li和Ri。其中,i=1,2,L,16,最终输出L16和R16。

每一步的迭代步骤是Li=Ri-1,其中,f是一个置换函数,里面包括E变化、S盒和Q变换,符号表示异或逻辑运算,Ki为实际输入 的64比特密钥通过循环移位和压缩置换得到的48比特的轮密钥。

在步骤S24中,f是一个置换函数,设对于第i次轮加密,已知输入数据是32比特Li-1、32比特Ri-1和48比特的轮密钥Ki,具体的E变化、S盒和Q变换描述如下:

(1)E变化是将32比特的Ri-1扩展为48比特,然后再与48比特的轮密钥Ki进行异或运算,得到48比特的二进制数据,记为如表4所示,为具体的E变化扩展规则表,从第32位数据开始,每6位数据为一组,扩展后两位数据。

(2)S盒亦称换字盒,是DES算法中真正起到扰乱数据从而达到加密作用的关键步骤。一共有8个S盒,每个S盒可以说是4×16的取值为0~15的数字矩阵。如表5所示,为其中一个S盒,输入6比特的二进制数据,经过S盒运算,输出4比特的二进制数据。具体运算过程是:将48比特划分为8组,分别为B1,B2,L,B8,每组6比特,然后分别计算Si(Bi),i=1,2,L,8。若Bi=b1b2b3b4b5b6,将Bi映射到Si中第r行第c列对应的数据,其中,r=2b1+b6,c为b2b3b4b5转化的十进制数。再将所得数据转化为4比特的二进制数据,因此,最终输出32比特数据

(3)Q变换是直接换位盒,即按照一定的顺序重新排列。例如将 经Q变换,变为Li=t16t7L t25。

如图6所示,为本发明的轮密钥生成装置示意图。轮密钥生成器共生成16个轮密钥Ki,i=1,2,L,16,首先输入64比特的密钥K,去除奇偶比特(8,16,24,L,64)后,转化为56比特的输入,然后,每一轮的操作步骤都是左移位和压缩置换。

(1)左移位。将56比特密钥平均分为两部分,每部分占28比特,每部分 在每一轮都进行一次左移位,每一轮中移位的位数按图6中左侧的表格所示,然后将两部分合成一个56比特的整体。

(2)压缩置换。根据固定的压缩置换表,将56比特置换成48比特,所得到的48比特就是每一轮中加密所用的轮密钥。

步骤S25:进行逆置换IP-1,即初始置换的逆运算,得到密文CP。

步骤S26:输出64比特的密文C,分别为c1,c2,…c64。

步骤S3:在数据传输过程中,运用RSA算法对密钥K进行加密,表示为CK=ER(Ka,K)。其中,CK是密钥K加密后的密文,ER代表RSA算法的加密公式,Ka是RSA算法的公钥。

如图7所示,为步骤S3的流程示意图,步骤S3具体包括:

步骤S31:选择两个大素数p和q,且p≠q,计算n=p×q, 其中,是n的欧拉函数。

步骤S32:选取素数并且a与互素。

在步骤S32中,随机生成的大素数p和q的位数决定了RSA算法的安全等级。在实际应用中,一般采用512比特的和1024比特的n,首先生成比较大的随机数,然后检测是否为素数,检测是否为素数的方法有确定性算法和概率性算法。本发明的方法是在概率性算法Miller-Rabin算法之前,在先随机生成的大整数中,把一些比较明显的合数去除,从而能够减少判断时间。

如图8所示,为本发明的步骤S32中去除明显合数的流程示意图,其包括以下步骤:

步骤S32-1:随机生成大整数m,并选取从2开始的一组长度为53的素数组,记为v[i];

步骤S32-2:设i=0;

步骤S32-3:当i<53时,计算的y=m mod v[i]值;

步骤S32-4:若y=0,则说明m可以整除,不是素数;否则,i=i+1,转到步骤S32-3。

如图9所示,为本发明的Miller-Rabin算法的流程示意图,对于去除明显合数之后的大整数进行Miller-Rabin算法,步骤如下:

(1)随机选取待测数p,计算d、e,使得p-1=d*2e。其中d是正奇数,e是非负整数,并随机取一个k,k≥2;

(2)计算l=kd mod p,若l=1,则通过测试,即p是素数,返回步骤(1);

(3)若l≠1,则令j=1;

(4)若l=p-1,通过测试,返回步骤(1);

(5)停止条件为j=e,且p为非素数,此时结束测试;

(6)若均不是步骤(4)、(5)的情况,则令l=l2 mod p,j=j+1,转到步骤(3)。

步骤S33:将(a,n)做为公钥Ka,对密钥K按公式CK≡Ka mod n进行加密。其中,“≡”表示同余,“mod”表示模运算。

步骤S4:在RSA算法的基础上,对CK进行解密,表示为K=DR(Kb,CK)。其中,DR代表RSA算法的解密公式,Ka是RSA算法的私钥。

在步骤S4中,根据Euclidean算法,计算私钥Kb为(b,n),对密文进行解密,公式为K≡CKb mod n,从而得到DES算法的密钥。

步骤S5:用DES算法和密钥K对CP进行解密,表示为P=DD(K,CP)。其中,DD代表DES算法的一系列解密转换公式,即是ED的逆过程。

步骤S6:接受方获取明文P。

本发明提供的一种数据混合加密方法,通过RSA加密DES的密钥,大大提 高了数据传输过程中的安全性;本发明的混合加密算法综合DES和RSA的加密速度,用于处理大数据传输时,加密速度远快于RSA加密速度;本发明的混合加密算法中,RSA只需要执行一次,即对DEA密钥进行加密,不需要密钥多次生成,且密钥是经过RSA加密的,不存在密钥保密和管理的问题,因此,本发明的混合加密算法很好地解决了DES和RSA的密钥生成和管理的问题。

尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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