应用于RSA解密的安全外包计算方法与流程

文档序号:14683777发布日期:2018-06-12 22:55阅读:359来源:国知局

本发明属于云计算技术领域,具体涉及一种应用于RSA解密过程的安全外包计算方法。



背景技术:

RSA算法是广为应用的公钥加密算法之一。解密阶段需要执行一个模大数的幂运算,这是一个非常消耗计算量的运算。比如1024比特长的RSA解密运算在一下小型设备上大约需要40秒长的时间,为了解决这个问题,很多RSA的变形被提出。这些算法的运行时间比原RSA解密算法的运行时间快2-3倍。但是对于资源受限的设备而言,这样的计算耗费与计算时间仍然是很有负担。为此,我们考虑在不改变RSA解密算法的同时,如何能够加速RSA的解密速度,使得RSA的解密在资源受限的设备上能够被运行。经过分析我们可以看到,在RSA加密算法中RSA的解密如此耗时是有需要计算M=Cdmodn,这里M代表解密后的明文,C代表待解密的密文,d是解密需要的私钥,n是私钥。因此,我们待解决的问题转变成了如何加速模合数n的模幂运算。

近年来,随着云计算技术的不断发展,以及云服务提供商的不断增多,云计算服务越来越深入地走进人们的生活,云计算中的安全外包计算技术也成为人们关心的热点。外包计算从根本上改变了资源部署和服务提供的方式。外包计算使得资源受限制的用户能够将计算量大的计算任务交付给云服务器进行处理。这种新的计算模式减轻了个人计算的负担,避免了用户对本地软硬件和维护的大量投入,用户可远程地将数据存放到云端进行处理,并按需享受云中高质量的应用和服务。在当前云计算技术发展越来越快的今天,外包计算为RSA解密的加速提供了可能。可以考虑将RSA解密外包给云服务器,使得用户本地只需进行少量的计算,从而达到加速RSA解密的目的。

然而,外包计算在为人们带来诸多益处的同时,也不可避免地面临着一些新的安全挑战和问题。第一个问题是如何保证外包计算过程中的数据信息的安全保密问题。在云计算环境下,找到一个完全可信的云服务器是不可能的。云计算服务当前垄断在私人机构(企业)手中,而他们仅仅能够提供商业信用。而任务往往包括一些不能泄露给云服务器的敏感信息。上传的数据中可能包含纳税记录、个人健康档案、公司金融文件或其他敏感信息。一旦数据上传到云端,数据就脱离了用户的物理控制。对云服务提供商来说,数据毫无机密性可言。云端数据管理员对云服务器也有访问控制权限,可以通过数据访问获取数据中包含的信息。另一方面,云端服务器也有可能遭受外部攻击(比如:黑客入侵),同样会导致用户资料和个人隐私的泄露。近年来,一些发生在国际IT巨头公司的云服务安全事故也屡见不鲜,例如:2014年,黑客借助漏洞攻击了iCloud云端,用户的敏感信息遭到泄露,个人隐私收到侵犯。因此,这些数据的保密性是不得不重视的一个问题。为了保护数据的机密性,数据外包之前,用户通常先对敏感数据进行加密。这样云端服务器管理员即使有数据访问权限,实际接触到的也只是数据的密文形式。但数据加密虽然保护了数据的隐私性,却对数据的使用造成了困难。因此如何在保证外包运算高效的基础上实现计算的安全外包是值得考虑的问题。

从应用角度出发,一个有效的安全外包计算协议应该满足3个基本条件:(1)确保用户数据的保密性;(2)确保用户能够验证云计算输出的正确性;(3)确保用户端在这个协议下需要的工作量(包括正确性验证)少于用户独自计算的工作量,否则用户没有必要寻求云的帮助。考虑到以上问题以及要求,在设计如何将模幂运算外包给云服务器时需要充分考虑用户数据的隐私性以及结果的可验证性。考虑到RSA的特殊应用场景,RSA解密算法中的输入包括密文、密钥以及模数,输出包括明文。鉴于密文本身已是加密过得信息,因此外包方案可以不考虑对密文的保护,但是必须考虑对密钥、模数以及明文的保护。

然而当前存在的外包方案存在的问题是,适用于将模幂计算外包的方案,只考虑将指数与底数进行盲化或者拆分,模数直接传递给云服务器。考虑到RSA解密算法中的模数与指数同样重要,而底数作为密文可以再进行处理,因此在设计方案中需要着重考虑对指数与模数的保密性。然而当前的模幂方案只考虑了对底数与指数进行的保护,而没有考虑对模数的保护,这样的方案不适用于RSA解密的场景。因此我们设计了一种能够保护指数与模数,同时能够保护解密后的明文的安全外包计算方法。我们提出的外包方案能够适用于RSA解密的场景中。

本发明专利提出了一个高效的适用于RSA解密的安全外包计算方法。任何用户都可以通过预处理的方式,对数据进行一些预计算处理,将处理过的数据传给云,让云去计算。云端只是知道处理过后的数据,但是不能知道真实数据。当计算结果返回给用户的时候,用户可以快速高效的验证云返回的结果是否正确。提出的安全外包计算方法可以保证数据的隐私性,同时可以高效的实现具有可验证性,避免复杂的验证运算。



技术实现要素:

为解决现有技术中RSA解密过程耗时的问题,本发明提供一种新的应用于RSA解密的安全外包算法,考虑将模大数幂运算外包给云服务器,使得用户只需要执行少量的计算就可以实现RSA的解密过程。因为外包计算的方案需要满足所定义的安全性,也就是说输入输出的隐私性、正确性以及高效可验证性。本方案为了保护RSA解密过程中的指数、模数与解密后的明文,在外包解密运算之后能够减少用户端的计算量,同时也能达到安全性要求。

基于此,本发明提供一种应用于RSA解密的安全外包计算方法,其满足等式M=Cdmodn,

其中,输入值为密文C与私钥d以及模数n,模数n是一个大合数,有p和q两个因子,也就是n=pq,输出值是明文M。

其中,该计算方法具体包括将需要外包的RSA算法的解密运算M=Cdmodn利用中国剩余定理转成下列的方程组:

方程组中Cp=Cmodp,Cq=Cmodq,dp=dmod(p-1),dq=dmod(q-1),

将上述方程组外包给云服务器,并且使用随机选择的元素对输入值与待输出值进行盲化。根据中国剩余定理,可以从Mp与Mq中获得M,同时随机值可以实现输入值与输出值得盲化,保护了信息的隐私性。

其中,所述安全外包算法具体包括五个步骤,具体为:

第一步,预计算,用户端首先计算两个等式

p′=p-1modq

q′=q-1modp

其中,p′、q′分别是p、q的逆元,p′的范围在(0,q-1),q′的范围在(0,p-1);

其次,用户端计算两个等式

dp=dmodp

dq=dmodq;

第二步,问题转化,

选择四个至少Λ比特长度的随机元素r1、r2、r3、r4,Λ是一个安全参数,同时用户需要在[2,11]中选择三个整数t1、t2与k,r1与r2分别用于隐藏dp与dq,r1与r2由用户保存

dp1=dp+r1(p-1)

dq1=dq+r2(q-1)

基于选择的r3、r4、t1、t2与k,用户计算:

dp2=dpt1+k+r3(p-1)

dq2=dqt2+k+r4(q-1);

第三步,计算,用户端向云端服务器发起质询,

云端完成计算后将计算结果返回给用户,计算结果包括Mp、Mp′、Mq和Mq′;

第四步,验证,用户检查下列等式是否成立,

如果上述等式成立,Mpmodp就是Cdmodp的结果,Mqmodq就是Cdmodq的结果。如果不成立,那么云端返回给用户的结果是不正确的;

第五步,恢复,在得到Cdmodp与Cdmodq之后,用户端计算:

M=pp′(Mpmodp)+qq′(Mqmodq)modn

得到明文M。

有益的技术效果

本发明与现有技术相比,具有以下有益效果:

1、该方法能够适用于RSA解密场景,保护了私钥、模数以及明文保密性:

2、该方法在用户端以及云端都有显著的效率优势;

3、使用该方法用户能够以概率1检测到任何错误;

4、该方法只使用了一个云服务器完成,相比较其他方案的两个服务器至多一个恶意的设定更符合实际,也更为安全。

附图说明

图1本发明应用于RSA解密的安全外包算法的流程图。

具体实施方式

在本发明提供的应用于RSA解密的安全外包算法应用主体包括用户和云服务器。用户拥有的是资源受限制的设备,使得用户不能够完成计算量很大的计算任务。而云端拥有近乎无限的计算能源,能为用户提供按需的资源使用权。用户在使用外包计算时,希望外包计算任务m=Cdmodn,但是要保护数据不被用户之外的实体获得,首先对数据进行预处理,然后对问题进行转化。将预处理以及转化之后的数据以及计算任务发送给云服务器。云服务器在接收到用户发送的计算任务与数据之后,按照计算任务的要求进行计算。完成计算之后将计算结果发送给用户。此后,用户对接收的结果进行验证,看结果是否正确,如果通过验证,那么用户对结果进行恢复,从而得到期望的结果。否则输出错误。

系统包含两大组成部分:用户和云服务器。用户拥有资源受限的设备,但是想运行计算量的计算任务,而云端拥有近乎无限的计算能源,能为用户提供按需的资源使用权。

在本发明的方法中,所应用的相关理论如下:

(1)云计算

云计算(Cloud Computing),是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机和其他设备。云计算的最终目的就是使得提供计算资源的云端对于用户来说是个统一的整体,用户不关心也不需要关心云的构成、组建和维护,用户仅仅需要使用云端提供的服务。而且,云端能够提供具有弹性的计算能力和资源,对于个人用户或者那些并不常常需要高性能服务的客户群体来说,他们就不需要投入大量的费用来购买软件和设备去完成很少发生的大批量运算或者资源需求。

(2)安全外包计算

用户将需要本地不能进行的任务,按照一定的原则交给云,云端来进行计算,并且将计算结果返回给用户。云端不能从任务的输入和输出中获得任何有用信息,也就是说对于云而言,不能知道用户计算的是什么,不能知道真实的结果是什么。

(3)中国剩余定理

中国剩余定理(Chinese Remainder Theorem,CRT),是求解一次同余式组的方法。中国剩余定理表示,给定一个整数集合m1,m2,…,mk,如果它们两两互素,那么同余方程组:

x=b1(modm1)

x=b2(modm2)

x=bk(modmk)

有唯一的一个解。

上述方程组的解x可以表示为其中Mi=m/mi,

(4)RSA加密算法

RSA加密算法是使用广泛的公钥加密算法之一。在RSA加密算法中,存在一个公钥一个私钥。公钥用于加密信息,私钥用于解密信息。RSA加密算法的过程可以分为三部分:密钥生成、加密与解密。

密钥生成:

1)选择两个不同的安全素数p和q。p和q分别满足等式p=2p′+1和等式q=2q′+1。等式中p′和q′都是素数;

2)计算n=pq,

3)选择一个整数e作为公钥,公钥的选择需要满足并且

4)针对上一步中选择的公钥,计算相应的私钥d,私钥满足等式

5)公钥是{e,n},私钥是{d,n}。

加密:对于需要加密的信息m,令密文为C,则C=memodn。

解密:对于密文C,需要将其解密为明文信息m,则m=Cdmodn。

基于上述理论,本发明提供一种应用于RSA解密的安全外包计算方法,其表述为:输入值为密文C与私钥d以及模数n。模数n是一个大合数,有p和q两个因子,也就是n=pq。输出值是明文M,满足等式M=Cdmodn。

在该场景中,密文C本身作为一个秘密,可以直接发送给云服务器。d是非常重要的私钥,不可以被其他敌手或者云服务器获得。为了保护RSA解密过程中重要的必须保护p和q两个因子。

该计算方法具体包括将需要外包的RSA算法的解密运算M=Cdmodn利用中国剩余定理转成下列的方程组:

方程组中Cp=Cmodp,Cq=Cmodq,dp=dmod(p-1),dq=dmod(q-1),

将上述方程组外包给云服务器,并且使用随机选择的元素对输入值与待输出值进行盲化。根据中国剩余定理,可以从Mp与Mq中获得M,同时随机值可以实现输入值与输出值得盲化,保护了信息的隐私性。

在该场景中,密文C本身作为一个秘密,可以直接发送给云服务器。d是非常重要的私钥,不可以被其他敌手或者云服务器获得。为了保护RSA解密过程中重要的必须保护p和q两个因子。

该安全外包算法所依托的硬件实体主要包括云端和用户端。其中,云端为用户提供计算资源,用户端把计算任务发送给云端,同时用户端将计算所需的数值盲化后发送给云端。

本发明提供的应用于RSA解密的安全外包算法具体包括五个步骤,具体为:

第一步,预计算,用户端首先计算两个等式

p′=p-1modq

q′=q-1modp

其中,p′、q′分别是p、q的逆元,p′的范围在(0,q-1),q′的范围在(0,p-1);

其次,用户端计算两个等式

dp=dmodp

dq=dmodq;

第二步,问题转化,

选择四个至少Λ比特长度的随机元素r1、r2、r3、r4,Λ是一个安全参数,同时用户需要在[2,11]中选择三个整数t1、t2与k,r1与r2分别用于隐藏dp与dq,r1与r2由用户保存

dp1=dp+r1(p-1)

dq1=dp,+r2(q-1)

基于选择的r3、r4、t1、t2与k,用户计算:

dp2=dpt1+k+r3(p-1)

dq2=dqt2+k+r4(q-1);

第三步,计算,用户端向云端服务器发起质询,

云端完成计算后将计算结果返回给用户,计算结果包括Mp、Mp′、Mq和Mq;

第四步,验证,用户检查下列等式是否成立,

如果上述等式成立,Mpmodp就是Cdmodp的结果,Mqmodq就是Cdmodq的结果。如果不成立,那么云端返回给用户的结果是不正确的;

第五步,恢复,在得到Cdmodp与Cdmodq之后,用户端计算:

M=pp′(Mpmodp)+qq′(Mqmodq)modn

得到明文M。

本专利的正确性可以表述为:

由于可以得到:

与上述过程相似,可以证明:

Mp′modp与Mq′modq是为了验证云服务器的结果是否正确而进行的计算。按照中国剩余定理同余方程组存在唯一解,依靠Mpmodp与Mqmodq,该解表示为M=pp′(Mpmodp)+qq′(Mqmodq)modn。

以下采用实施例和附图来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。

如图1所示,本发明提供的应用于RSA解密的安全外包算法具体包括五个步骤,具体为:

第一步,预计算,用户端首先计算两个等式

p′=p-1modq

q′=q-1modp

其中,p′、q′分别是p、q的逆元,

其次,用户端计算两个等式

dp=dmodp

dq=dmodq;

第二步,问题转化,

选择四个至少Λ比特长度的随机元素r1、r2、r3、r4,Λ是一个安全参数,同时用户需要在[2,11]中选择三个整数t1、t2与k,r1与r2分别用于隐藏dp与dq,r1与r2由用户保存

dp1=dp+r1(p-1)

dq1=dq+r2(q-1)

基于选择的r3、r4、t1、t2与k,用户计算:

dp2=dpt1+k+r3(p-1)

dq2=dqt2+k+r4(q-1);

第三步,计算,用户端向云端服务器发起质询,

云端完成计算后将计算结果返回给用户,计算结果包括Mp、Mp′、Mq和Mq;

第四步,验证,用户检查下列等式是否成立,

如果上述等式成立,Mpmodp就是Cdmodp的结果,Mqmodq就是Cdmodq的结果。如果不成立,那么云端返回给用户的结果是不正确的;

第五步,恢复,在得到Cdmodp与Cdmodq之后,用户端计算:

M=pp′(Mpmodp)+qq′(Mqmodq)modn

得到明文M。

所有上述的首要实施这一知识产权,并没有设定限制其他形式的实施这种新产品和/或新方法。本领域技术人员将利用这一重要信息,上述内容修改,以实现类似的执行情况。但是,所有修改或改造基于本发明新产品属于保留的权利。

以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。

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