数据加密传输方法、系统

文档序号:30100965发布日期:2022-05-18 12:37阅读:104来源:国知局
数据加密传输方法、系统

1.本技术属于数据安全技术领域,具体涉及一种数据加密传输方法、系统。


背景技术:

2.随着社会信息化程度不断提高,信息交流越来越频繁化,信息安全问题日益凸显,为保证数据信息安全,通常会在数据传输过程通常会采用加密数据传输。加密数据传输中涉及的核心要素是密码学技术,为满足当今社会的需要,非对称加密技术的使用日渐广泛,rsa加密技术作为当前应用最广泛的公钥密码算法,以其易于理解和操作著称。
3.rsa的基本原理是依据大数分解的困难性制造陷门函数,达到加密容易、破解困难的效果,rsa算法中的大素数产生和模幂运算效率是决定制约rsa算法效率的核心因素。在实际应用中为了达到安全性要求,通常rsa密钥取值都非常高,但采用现有rsa算法进行该种实现,会导致加密解密过程整体效能不高,进而影响数据传输的效率。
4.上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。


技术实现要素:

5.为至少在一定程度上克服相关技术中存在的问题,本技术提供一种数据加密传输方法、系统,采用多素数rsa算法并引入蒙哥马利算法辅助进行加密解密计算,来提升rsa算法的整体效能,以有利于数据传输效率的保证。
6.为实现以上目的,本技术采用如下技术方案:
7.第一方面,
8.本技术提供一种数据加密传输方法,该方法包括:
9.基于多素数rsa算法,根据获取到的密钥生成参数生成公钥及私钥;
10.将所述公钥传输给数据发送方,以使该数据发送方根据所述公钥对明文进行加密并将加密得到密文进行发送;以及在接收到所述数据发送方发送的所述密文时,根据所述私钥对所述密文进行解密处理,得到所述明文;
11.其中,在加密及解密过程中,调用蒙哥马利算法模块进行辅助计算。
12.可选地,所述密钥生成参数包括,密钥生成所需素数个数t、小素数取值 min-prime以及密钥产生值范围key-limit;
13.所述基于多素数rsa算法,根据获取到的密钥生成参数生成公钥及私钥,包括:
14.调用素数生成模块生成多个互不相同的伪梅森素数pi,各所述伪梅森素数 pi可表示为,
15.pi=(2
k0
)k+c,i=1,2...t,p1*p2*...*pi<key-lim it,
16.其中,2
k0
表示素数的进制数,k和c为整数。
17.可选地,基于所述小素数取值min-prime,在所述伪梅森素数pi生成过程中,所述素数生成模块被配置为实现如下方法步骤:
18.产生伪梅森大随机数,以及采用欧式筛法得到不大于所述小素数取值 min-prime的所有小素数;
19.基于各所述小素数逐一试除所述产生的伪梅森大随机数,并将通过试除的伪梅森大随机数,采用miller-rabin和solovay-strassen综合算法进行素性检测,以筛选输出所述伪梅森素数pi。
20.可选地,所述根据获取到的密钥生成参数生成公钥及私钥,还包括,
21.根据各所述伪梅森素数pi,计算第一参数以及第二参数
22.根据所述第一参数和第二参数调用最大公约数算法模块计算得到质数e,且使其满足如下条件,
[0023][0024]
将(e,n)作为生成的所述公钥;
[0025]
以及根据质数e和第二参数调用扩展欧几里得算法模块计算得到数d,且使其满足如下条件,
[0026][0027]
将作为生成的所述私钥,其中,表示伪梅森素数pi的最高位数,表示伪梅森素数pi=(2
k0
)k+c中c的最高位数。
[0028]
可选地,所述最大公约数算法模块基于欧几里得算法和更相损减术结合来实现。
[0029]
可选地,所述扩展欧几里得算法模块基于非递归扩展欧几里得算法来实现。
[0030]
可选地,所述根据所述公钥对明文进行加密,具体为:
[0031]
根据所述公钥(e,n),调用所述蒙哥马利算法模块对所述明文m的加密处理进行辅助计算,得到所述密文c,其中,所述密文c=me%n。
[0032]
可选地,所述根据所述私钥对所述密文进行解密处理,得到所述明文,包括:
[0033]
采用中国剩余定理计算密文c在p1域至p
t
域的值,分别为c1,c2...c
t
,其中 ci=m(mod pi),i=1,2,...t;
[0034]
采用中国剩余定理计算私钥d在p1域至p
t
域的值,分别为d1,d2...d
t
,其中 di=m(mod(p
i-1)),i=1,2,...t;
[0035]
调用所述蒙哥马利算法模块辅助计算明文m在p1域至p
t
域的值,分别为 m1,m2...m
t
,其中,
[0036]
基于所述扩展欧几里得算法模块辅助计算得到ni,其中,
[0037]
根据所述ni,基于以下表达式计算得到所述明文m,
[0038][0039]
可选地,所述蒙哥马利算法模块基于位计算的蒙哥马利算法以及结合快速幂来实
现。
[0040]
第二方面,
[0041]
本技术提供一种数据加密传输系统,该系统包括数据接收方和数据发送方;
[0042]
所述数据发送方被配置为,接收所述数据接收方发送的公钥,并基于所述公钥对明文进行并将加密得到密文进行发送;
[0043]
所述数据接收方被配置为,
[0044]
基于多素数rsa算法,根据获取到的密钥生成参数生成私钥和所述公钥,并将所述公钥传输给所述数据发送方,以及在接收到所述数据发送方发送的所述密文时,根据所述私钥对所述密文进行解密处理,得到所述明文。
[0045]
本技术采用以上技术方案,至少具备以下有益效果:
[0046]
本技术的技术方案,在数据加密传输中,基于多素数rsa算法生成公钥和私钥,并在加密解密过程中引入蒙哥马利算法模块辅助进行加密解密计算,缩短了加解密时间,从而有效的提升rsa算法的整体效能,有利于保证数据加密传输的效率。
[0047]
本发明的其他优点、目标,和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书,权利要求书,以及附图中所特别指出的结构来实现和获得。
附图说明
[0048]
附图用来提供对本技术的技术方案或现有技术的进一步理解,并且构成说明书的一部分。其中,表达本技术实施例的附图与本技术的实施例一起用于解释本技术的技术方案,但并不构成对本技术技术方案的限制。
[0049]
图1为本技术一个实施例提供的数据加密传输方法的流程说明示意图;
[0050]
图2为本技术一个实施例中素数生成模块的实现逻辑示意说明图;
[0051]
图3为本技术一个实施例中蒙哥马利算法模块的并行计算结构示意说明图;
[0052]
图4为本技术一个实施例中图3所示并行计算结构的实现计算单元的说明示意图。
具体实施方式
[0053]
为使本技术的目的、技术方案和优点更加清楚,下面将对本技术的技术方案进行详细的描述。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本技术所保护的范围。
[0054]
如背景技术中所述,rsa的基本原理是依据大数分解的困难性制造陷门函数,达到加密容易、破解困难的效果,rsa算法中的大素数产生和模幂运算效率是决定制约rsa算法效率的核心因素。在实际应用中为了达到安全性要求,通常rsa密钥取值都非常高,但采用现有rsa算法进行该种实现,会导致加密解密过程整体效能不高,进而影响数据传输的效率。
[0055]
针对于此,本技术提出一种数据加密传输方法,采用多素数rsa算法并引入蒙哥马利算法辅助进行加密解密计算,来提升rsa算法的整体效能,以有利于数据传输效率的保
证。
[0056]
容易理解的是,本技术提出的数据加密传输方法的应用场景中,包括数据接收方和数据发送方。
[0057]
在一实施例中,本技术提出的数据加密传输方法应用于数据接收方,如图 1所示,该方法包括:
[0058]
步骤s110,基于多素数rsa算法,根据获取到的密钥生成参数生成公钥及私钥;
[0059]
步骤s120,将所述公钥传输给数据发送方,以使该数据发送方根据所述公钥对明文进行加密并将加密得到密文进行发送;
[0060]
步骤s130,以及在接收到所述数据发送方发送的所述密文时,根据所述私钥对所述密文进行解密处理,得到所述明文;
[0061]
其中,在上述加密(指数据发送方对明文的加密)及解密(指数据接收方对密文的解密)过程中,调用蒙哥马利算法模块进行辅助计算。
[0062]
本技术的技术方案,在数据加密传输中,基于多素数rsa算法生成公钥和私钥,并在加密解密过程中引入蒙哥马利算法辅助进行加密解密计算,缩短了加解密时间,从有效提升rsa算法的整体效能,有利于保证数据传输的效率。
[0063]
为便于理解本技术的技术方案,下面以另一实施例对本技术的技术方案进行介绍说明。
[0064]
该实施例中,数据加密传输方法应用于包括数据接收方和数据发送方的数据加密传输系统。
[0065]
与前文实施例类似,该实施例中,在数据接收方,进行如下方法步骤,
[0066]
步骤s210,基于多素数rsa算法,根据获取到的密钥生成参数生成公钥及私钥;
[0067]
该实施例中,由用户录入相关密钥生成参数,这里的密钥生成参数包括密钥生成所需素数个数t(例如该实施例中,t默认取3)、小素数取值min-prime (例如该实施例中,min-prime默认取100)以及密钥产生值范围key-limit;
[0068]
步骤s120中,基于多素数rsa算法,根据获取到的密钥生成参数生成公钥及私钥,包括:
[0069]
首先,通过调用素数生成模块生成多个互不相同的伪梅森素数pi,各伪梅森素数pi可表示为,
[0070]
pi=(2
k0
)k+c,i=1,2...t,p1*p2*...*pi<key-lim it,
[0071]
其中,2
k0
表示素数的进制数,k和c为整数。
[0072]
之后,根据各伪梅森素数pi,计算第一参数以及第二参数
[0073]
根据第一参数和第二参数调用最大公约数算法模块计算得到质数e,且使其满足如下条件,
[0074][0075]
将(e,n)作为生成的公钥;
[0076]
以及,根据质数e和第二参数调用扩展欧几里得算法模块计算得到数d,且使其满足如下条件,
[0077][0078]
将作为生成的所述私钥,其中,表示伪梅森素数pi的最高位数,表示伪梅森素数pi=(2
k0
)k+c中c的最高位数。
[0079]
作为一种优选,为进一步提升算法效能,上述过程中,最大公约数算法模块基于欧几里得算法和更相损减术结合来实现,该种方式降低了最大公约数计算的时间复杂度,减少了算法运行时间,举例而言,该实施例中,相关实现代码如下:
[0080]
//a,b表示两个二进制数,求a和b的最大公约数t,r为中间变量
[0081]
while(b!=0){
[0082]
if(b[0]==0&&a[0]==0)
[0083]
{t=2t;b=b/2;a=a/2;}
[0084]
else if(b[0]==1&&a[0]==1)
[0085]
a=a-b;
[0086]
else if(b[0]==1&&a[0]==0)
[0087]
a=a/2;
[0088]
else b=b/2;
[0089]
if(b》a){r=b;b=a;a=r;}}
[0090]
return t;
[0091]
作为一种优选,上述过程中,扩展欧几里得算法模块基于非递归扩展欧几里得算法来实现,该算法原理如下:
[0092]
应用中需求a关于模b的逆元x,即ax≡1(mod b),变形得ax+by≡gcd(a,b)。进而可运用非递归扩展欧几里得算法计算x,避免了递归方法中的堆栈溢出问题,同时节省了储存空间。举例而言,该实施例中,相关实现代码如下:
[0093]
//a为原数,x为a的逆元,b为模,y为中间参数,temp为中间变量
[0094]
x=0 y=1
[0095]
while(a!=0)
[0096]
{temp=y;
[0097]
y=x-y(a/b);
[0098]
x=temp;
[0099]
temp=a;
[0100]
a=b%a;
[0101]
b=temp;}
[0102]
if(x《0)x=x+b;return x;
[0103]
作为一种优选,该实施例中,在生成伪梅森素数pi的过程中,基于小素数取值min-prime,素数生成模块被配置为实现如下方法步骤:
[0104]
产生伪梅森大随机数,以及采用欧式筛法得到不大于所述小素数取值 min-prime的所有小素数;
[0105]
基于各所述小素数逐一试除所述产生的伪梅森大随机数,并将通过试除的伪梅森大随机数,采用miller-rabin和solovay-strassen综合算法进行素性检测,以筛选输出所
述伪梅森素数pi;
[0106]
具体的,这里的筛选输出,如图2所示,包括验证通过素性检测的伪梅森素数的积是否小于密钥产生范围key-limit,如不满足则进行重复进行上述相关过程,最终得到满足条件的伪梅森素数pi。
[0107]
结合图2所示的素数生成模块的实现逻辑示意说明图,实际中,采用 miller-rabin和solovay-strassen的综合算法的实现过程举例如下:
[0108]
(1)输入pi
[0109]
(2)随机产生整数a,符合1≤a≤pi-1
[0110]
(3)
[0111]
(4)if(x=0)then return(否)
[0112]
(5)pi-1=2su其中u是一个奇数
[0113]
(6)b≡au(mod pi)
[0114]
(7)if b≡1(mod pi)then return(是)
[0115]
(8)for(j=0to s-1)
[0116]
(9){if b≡1(mod pi)then return(是)
[0117]
(10)else b≡b2(mod pi)}
[0118]
(11)return(否)
[0119]
本技术该种实现方式中,使用基于miller-rabin和solovay-strassen算法的综合算法有利于提高素性检测的速度,且需要说明的是,上述过程中,(3) 中是勒让德符号,运用了二次反转定律计算。(6)中调用蒙哥马利算法模块进行计算。
[0120]
容易理解的是,图2中虚线框内与虚线外在实现中可采用不同的处理线程来进行并行计算处理,这样相比传统素数产生的串行计算处理方式,也利于提高计算效率。
[0121]
该实施例中,在生成公钥(e,n)及私钥之后;
[0122]
进行步骤s220,将公钥传输给数据发送方,以使该数据发送方根据公钥对明文进行加密并将加密得到密文进行发送;这里在对数据发送方侧的加密过程进行一下说明:
[0123]
具体的,在数据发送方侧,数据发送方接收到公钥,根据公钥对明文进行加密的具体过程,包括:
[0124]
根据公钥(e,n),调用蒙哥马利算法模块对明文m的加密处理进行辅助计算,得到密文c,其中,密文c=me%n。
[0125]
加密过程中,调用蒙哥马利算法模块参与辅助计算,有利于提高计算效率。
[0126]
得到密文c后,数据发送方将密文进行发送,该实施例中,为传输给数据接收方。
[0127]
进而在数据接收方侧,其可进行步骤s230,在接收到数据发送方发送的密文c时,根据本地保存的私钥对密文c进行解密处理,得到明文m;
[0128]
具体的,步骤s230中,根据私钥对密文进行解密处理包括:
[0129]
采用中国剩余定理计算密文c在p1域至p
t
域的值,分别为c1,c2...c
t
,其中ci=m
(mod pi),i=1,2,...t;
[0130]
采用中国剩余定理计算私钥d在p1域至p
t
域的值,分别为d1,d2...d
t
,其中 di=m(mod(p
i-1)),i=1,2,...t;
[0131]
调用蒙哥马利算法模块辅助计算明文m在p1域至p
t
域的值,分别为 m1,m2...m
t
,其中,
[0132]
基于扩展欧几里得算法模块辅助计算得到ni,其中,
[0133]
根据ni,基于以下表达式计算得到明文m,
[0134][0135]
此外,需要说明的是,本技术该实施例的整体实现中,需多次涉及到蒙哥马利算法模块的调用,为提高计算效率,作为一种优选,本技术中的蒙哥马利算法模块基于位计算的蒙哥马利算法以及结合快速幂来实现;
[0136]
具体的,快速幂部分的输入输出分别为:
[0137]
输入:模为
[0138]
输出:c=ae%n
[0139]
其中,r为a和n的基数,n为a和n的最高总位数,r0=2为e的基数,m 为e的总位数;
[0140]
将快速幂结合蒙哥马利算法,则具体实现为:
[0141]
pow(x,e,n)
[0142]
{c=r,base=x;
[0143]
while(e!=0)
[0144]
{if(e[0]==1)c=montr(c,base,n);
[0145]
c=montr(base,base,n);
[0146]
e整体右移1位}
[0147]
c=montr(c,1,n);
[0148]
return c;}
[0149]
进行优化,本技术中的蒙哥马利算法模块的输入输出分别为
[0150]
输入:模为
[0151]
其中a[n]=a[n+1]=0 b[0]=b[n+1]=0 n[n]=n[n+1]=0
[0152]
预计算:r=rn》max(a,b)
[0153]
其中r=2
k0
,m=r-n[0]’[0154]
输出:
[0155]
具体实现如下,
[0156]
(1)montr(a,b,n)
[0157]
(2)c=0;
[0158]
(3)for i=0 to n:
[0159]
(4)t[i]=(c[0]+a[i]b[0])mod r;
[0160]
(5)q[i]=t[i]
·
m mod r;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
//x
[0161]
(6)d=c[0]+a[i]b[0]+q[i]n[0]+d;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
//y
[0162]
(7)d=d/r;
[0163]
(8)for j=1 to n+1:
[0164]
(9)q=q[i]n[j];
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
//z1
[0165]
(10)d=c[j]+a[i]b[j]+q+d;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
//z2
[0166]
(11)c[j-1]=d mod r;
[0167]
(12)d=d/r;
[0168]
(13)end for
[0169]
(14)end for
[0170]
结合上述实现,本技术中使用的蒙哥马利算法模块的优化主要为四方面:
[0171]
(a)、b为初始b值整体左移一位后,在b[0]补零,使(4)中a[i]b[0]=0 简化了(4)中运算,少做了一次减运算和一次模运算。
[0172]
(b)、在a[n]位补0保证了每次外循环之后结果不超过n,不需要做减法运算。在b[n],n[n+1],n[0]位补0保证了中间结果不溢出。
[0173]
(c)、本技术中n采用了伪梅森素数,即在n中n[s+1]至n[f-1]为0,所以在(9)中只需计算非0位,简化了运算。
[0174]
(d)、外循环与内循环可以并行计算,提高计算效率。
[0175]
进一步的,标记(5)为x运算,(6)为y运算,(9)为z1运算,(10)为z2 运算。根据优化思路设计并行计算结构,该计算结构如附图3所示。
[0176]
进而基于图3所示计算结构,在实际中,可采用图4所示的m
×
m个计算单元的计算阵列的来具体实现该算法模块。
[0177]
本技术的技术方案,具有如下优点:
[0178]
(a)多素数的rsa加密系统,采用自定义多素数的rsa方法,提高了安全性和算法的适应性。
[0179]
(b)采用先用欧式筛法产生的小素数对伪梅森数进行试除,再利用优化后的miller-rabin和solovay-strassen综合算法进行素性检测,并且试除与素性检测并行进行,提高了素性检测的速度。
[0180]
(c)采用欧几里得算法和更相损减术相结合的方法计算最大公约数,最大限度的提高了最大公约数的计算速度。
[0181]
(d)运用非递归扩展欧几里得算法计算逆元,避免了递归方法中的堆栈溢出问题,同时节省了储存空间。
[0182]
(e)采用按位计算的蒙哥马利算法,并且对a
×
b mod n中a,b,n进行相应的修改,再利用伪梅森数的特性,最大程度的降低了算法的复杂性,并简化了相应的硬件结构。
[0183]
在一实施例中,本技术还提出一种数据加密传输系统,该系统包括数据接收方和数据发送方;
[0184]
数据发送方被配置为,接收数据接收方发送的公钥,并基于公钥对明文进行并将
加密得到密文进行发送;
[0185]
数据接收方被配置为,
[0186]
基于多素数rsa算法,根据获取到的密钥生成参数生成私钥和公钥,并将公钥传输给数据发送方,以及在接收到数据发送方发送的密文时,根据私钥对密文进行解密处理,得到明文。
[0187]
该实施例中的数据加密传输系统,数据接收方和数据发送方双方所实现的方法,已在前文的实施例中进行了详细描述,此处就不做详细阐述说明。
[0188]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人员在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1