本发明涉及云计算数据安全的,尤其是指一种面向云计算数据安全的快速安全外包计算方法。
背景技术:
1、云计算为数据外包计算提供了灵活方便的服务,计算和存储能力有限的用户可以将其数据外包给云服务器,并对外包的数据进行高效计算。然而,云服务器可能有意或无意地窃取和泄露外包数据,从而导致隐私问题。
2、为了防止数据泄露,用户可以在外包数据之前对其进行加密。一般地,将加密后的数据称为密文。然而,对密文进行计算是相当具有挑战性的,因为传统的密码系统通常无法直接对密文进行计算。安全外包计算是一种平衡数据隐私和数据可用性的技术,该技术可以在不泄露信息的情况下对数据进行计算。由于其优异的特性,安全外包计算为云计算提供了一种很有前途的计算范式。该计算范式可以有效地保护数据安全,目前已经在许多领域中被广泛运用,如隐私保护机器学习训练和隐私保护演化计算。
3、同态加密密码系统可以在密文上实现加法、乘法或同时实现加法和乘法,因此能够使用同态加密密码系统来实现安全的外包计算。目前,基于同态加密密码系统的安全外包计算仍然面临一些问题:
4、1、单纯地基于同态加密密码系统的安全外包计算很难实现非线性运算,例如比较运算。此外,现有的基于同态加密密码系统的安全外包计算不能获得中间结果。在某些应用中,获得中间结果是相当重要的,例如隐私保护行人重识别。
5、2、同态加密密码系统,如同时支持密文加法和乘法的全同态加密,具有高额的存储成本。目前部分安全外包计算方案基于全同态加密,由于全同态加密高额的存储花销,使得这些计算方法无法有效地应用到现实场景中。
6、3、目前的安全外包计算在计算时间和通信花销上存在效率低下的问题。
技术实现思路
1、本发明的目的在于克服现有安全外包计算技术功能受限、支持运算的类型有限、无法获取计算的中间密文结果、密文存储花销大、计算和通信效率低等问题,提出了一种高效、可靠的面向云计算数据安全的快速安全外包计算方法,该方法首先基于具有快速加密和解密能力的paillier加法部分同态加密算法,设计了一种具有快速加密和解密能力的fastpaitd门限密码系统。随后,设计了一种离线-在线计算机制,该机制在离线阶段进行大量加密计算,从而在在线阶段实现高效的安全外包计算,最后,基于fastpaitd门限密码系统和两个不共谋的服务器,设计了一套高效的线性与非线性计算协议。
2、为实现上述目的,本发明所提供的技术方案为:一种面向云计算数据安全的快速安全外包计算方法,该方法基于具有快速加密和解密能力的paillier加法部分同态加密算法设计了一种改进的fastpaitd门限密码系统,在paillier加法部分同态加密算法原有的模数n生成算法n generation、密钥生成算法keygen、加密算法enc和解密算法dec基础上,增加了部分解密算法pdec和门限解密算法tdec,从而允许两个不共谋的云服务器在没有私钥的情况下解密一个密文;
3、该方法的具体实施包括以下步骤:
4、步骤1、系统初始化:数据所有者do初始化fastpaitd门限密码系统,招募两个不共谋的云服务器s0和s1,并把fastpaitd门限密码系统的公钥pk公开,把fastpaitd门限密码系统的部分私钥sk1和sk2分别发送给云服务器s0和s1;其中,s0作为云服务平台,负责存储do上传的加密数据,s1作为计算服务提供商,负责与s0交互执行安全计算协议;
5、步骤2、数据加密阶段:数据所有者do调用fastpaitd门限密码系统的加密算法enc对用于安全外包计算的隐私数据m进行加密,随后,数据所有者do将加密后的数据发送给s0;
6、步骤3、离线阶段:云服务器s0和s1在接收do的公钥和加密的数据后,为提高安全外包计算的执行效率,云服务器s0和s1调用fastpaitd门限密码系统的加密算法enc对用于安全外包计算的随机数和常数进行加密;
7、步骤4、在线阶段:云服务器s0和s1通过交互,联合完成两种安全外包计算,包括安全外包乘法运算smul和安全外包比较运算scmp;所述安全外包乘法运算smul的输入是do上传的两个加密数据和输出是x·y的加密结果其中,x和y代表未经加密的隐私数据;所述安全外包比较运算scmp的输入是do上传的两个加密数据和输出是x和y之间大小比较结果u的加密值其中,当x≥y时,有u=0,当x<y时,有u=1;
8、步骤5、获取安全外包计算最终结果,并进行解密:在在线阶段,云服务器s0收到do发送的数据,根据安全外包计算的具体需求与云服务器s1联合进行一系列smul和scmp运算,最后得到的结果返回给do,do用其私钥sk解密出安全外包计算最终的结果,其中do调用解密算法dec解密得到隐私数据m。
9、进一步,在步骤1中,do执行以下操作:执行密钥生成算法keygen,初始化fastpaitd门限密码系统的公私钥对{pk,sk},并将私钥sk分为两个部分密钥,即sk1和sk2;do将{pk,sk1}发送给云服务器s0,将{pk,sk2}发送给云服务器s1;
10、所述公钥pk=(n,h),其中n=p·q,p和q是大素数,h=-y2βmodn,y是在整数群中的一个随机数,β=(p-1)(q-1)/(4pq),p和q是比p和q小的奇素数;所述私钥sk=α,其中α=p·q;相关参数(n,p,q,p,q)均由模数n生成算法n generation产生;所述sk1和sk2满足sk1+sk2=0mod 2α和sk1+sk2=1mod n,令sk1为一个随机正整数,由中国剩余定理能够得到sk2=((2α)-1modn)·(2α)-sk1+η·2α·n,其中η是一个整数并且满足η≥0;
11、所述相关参数(n,p,q,p,q)满足如下条件:
12、
13、此外,p,q是比特的奇素数,p,q是比特的素数;其中,κ为安全参数,和是与安全参数κ有关的函数;
14、所述模数n生成算法n generation,其计算过程如下:
15、a.选择比特的奇素数p和q,选择比特的奇数p'和q';
16、b.令p=2pp'+1;
17、c.令q=2qq'+1;
18、d.测试p,q,p',q'是否互素,若不是,返回第a步;
19、e.分情况讨论;若p不是素数,q是素数,则重新生成p',直至p是素数并且p,q,p',q'互素;若p是素数,q不是素数,则重新生成q',直至q是素数并且p,q,p',q'互素;若p和q均不是素数,返回第a步;
20、f.输出(n=p·q,p,q,p,q)。
21、进一步,在步骤2中,所述加密算法enc,其加密模型为:
22、enc(pk,m)=(1+n)m·(hrmodn)nmodn2,
23、其中,r是一个比特长度小于或等于私钥sk比特长度的随机数。
24、进一步,在步骤2中,隐私数据m∈[-2l,2l],并且l是取值远小于n的比特长度;fastpaitd门限密码系统规定:当一个数据m小于0时,将其转换为m=n-|m|,并且将明文空间和分别用于非负数和负数。
25、进一步,在步骤3中,在离线阶段,云服务器s0创建大量的元组,云服务器s1也创建大量的元组;云服务器s0在在线阶段计算安全外包计算协议时,将会消耗一个元组;云服务器s1在执行scmp运算时,也会消耗一个元组;消耗掉的元组短期内将不再使用,当元组的数量不足时,云服务器s0和云服务器s1在离线阶段分别对元组和元组进行补充;每一个元组由r1,r2,r3,和组成,每一个元组由和组成,r1,r2,r3和r4均表示随机数,和分别表示r1,r2,-r1·r2,r3+r4,r4,0和1的加密值。
26、进一步,在步骤3中,每个元组中的随机数满足以下性质:
27、
28、其中,σ是一个安全参数。
29、进一步,在步骤4中,smul运算过程包括以下步骤:
30、(1)s0从一个中提取r1,r2,和随后计算和c=xl·y,其中,l是一个共享于云服务器s0和s1之间的长度为130比特的常量,x和y分别是隐私数据x和y的掩码值,c是两个掩码值之间密文形式下的加值;最后使用pdec算法计算c1←pdec(sk1,c),并将(c,c1)发送给s1,其中c1是使用部分私钥sk1对c进行部分解密后得到的密文;
31、(2)s1计算c2←pdec(sk2,c)和l·(x+r1)+y+r2←tdec(c1,c2),随后计算和y+r2=(l·(x+r1)+y+r2)mod l,其中c2是使用部分私钥sk2对c进行部分解密后得到的密文;接下来计算enc(pk,(x+r1)·(y+r2))得到并将发送给s0;
32、(3)s0计算最终能够计算得到加密形式的结果
33、以上计算涉及的pdec和tdec分别为部分解密和联合解密,其计算形式分别为其中i取值为0或者1,m1和m2是分别使用部分私钥sk1和sk2对同一个密文进行部分解密后得到的结果。
34、进一步,在步骤4中,scmp运算过程包括以下步骤:
35、(1)s0从一个元组中提取r3,和其中和分别表示r3+r4,r4和1的加密值;以代表一个数值*的加密值;在接下来的scmp计算过程中,将r3,和分别标记为r1,和随后s0选择一个随机数π∈{0,1};当π=0时,计算此时d为隐私数据x和y相减并添加掩码后的加密值;当π=1时,计算此时d为隐私数据y和x相减并添加掩码后的加密值;随后s0计算d1←pdec(sk1,d),并将(d,d1)发送给s1,其中d1为使用部分私钥sk1对d进行部分解密后得到的结果;
36、(2)s1计算d2←pdec(sk2,d)和d←tdec(d1,d2),其中d2为使用部分私钥sk2对d进行部分解密后得到的结果,d为使用d1和d2进行tdec联合解密后的结果;随后从一个元组中提取出和如果s1令否则令随后将发给s0;μ0为d是否大于的判断,若大于,μ0=0,否则μ0=1;
37、(3)如果π=0,s0令否则,s0令
38、进一步,在步骤5中,所述解密算法dec,其解密模型为:
39、
40、本发明与现有技术相比,具有如下优点与有益效果:
41、1、本发明能够有效解决安全外包计算中数据的隐私泄露问题。具体通过使用两个不共谋的云服务器和所设计的fastpaitd门限密码系统,将具有快速加密和解密能力的paillier加法部分同态加密算法的私钥切分成两个部分私钥并分别分配给两个云服务器,只拥有一个部分私钥并不能成功解密一个密文,因此本发明能够解决现有方案中由单一服务器拥有完整私钥带来的单点安全故障问题。
42、2、本发明解决了现有方案的效率低下、存储花销大的问题。所设计的离线-在线机制,可以提高安全外包计算协议的计算效率。与全同态加密密码系统相比,所设计的fastpaitd门限密码系统具有更小的密文尺寸,从而具有更小的存储花销,进而在执行安全外包计算时具有更高的通信效率。
43、3、本发明解决了安全外包计算实用性的问题。通过设计一种面向云计算数据安全的快速安全外包计算方法,如安全外包乘法运算smul和安全外包比较运算scmp,增加了在密文上的计算方法,由此扩大了安全外包计算的应用范围。此外,与只支持自然数运算的安全外包计算方案相比,本发明通过将负整数映射成为正整数,使得所设计的安全外包计算协议支持在整数域上的运算,从而更具有实用性。进一步地,本发明的安全外包计算协议允许参与计算的双方在计算过程获得解密的中间结果,适用于一些需要获取密文解密中间结果的场景,如垃圾邮件过滤。
1.一种面向云计算数据安全的快速安全外包计算方法,其特征在于,该方法基于具有快速加密和解密能力的paillier加法部分同态加密算法设计了一种改进的fastpaitd门限密码系统,在paillier加法部分同态加密算法原有的模数n生成算法n generation、密钥生成算法keygen、加密算法enc和解密算法dec基础上,增加了部分解密算法pdec和门限解密算法tdec,从而允许两个不共谋的云服务器在没有私钥的情况下解密一个密文;
2.根据权利要求1所述的一种面向云计算数据安全的快速安全外包计算方法,其特征在于,在步骤1中,do执行以下操作:执行密钥生成算法keygen,初始化fastpaitd门限密码系统的公私钥对{pk,sk},并将私钥sk分为两个部分密钥,即sk1和sk2;do将{pk,sk1}发送给云服务器s0,将{pk,sk2}发送给云服务器s1;
3.根据权利要求2所述的一种面向云计算数据安全的快速安全外包计算方法,其特征在于,在步骤2中,所述加密算法enc,其加密模型为:
4.根据权利要求3所述的一种面向云计算数据安全的快速安全外包计算方法,其特征在于,在步骤2中,隐私数据m∈[-2l,2l],并且l是取值远小于n的比特长度;fastpaitd门限密码系统规定:当一个数据m小于0时,将其转换为m=n-|m|,并且将明文空间和分别用于非负数和负数。
5.根据权利要求4所述的一种面向云计算数据安全的快速安全外包计算方法,其特征在于,在步骤3中,在离线阶段,云服务器s0创建大量的元组,云服务器s1也创建大量的元组;云服务器s0在在线阶段计算安全外包计算协议时,将会消耗一个元组;云服务器s1在执行scmp运算时,也会消耗一个元组;消耗掉的元组短期内将不再使用,当元组的数量不足时,云服务器s0和云服务器s1在离线阶段分别对元组和元组进行补充;每一个元组由和组成,每一个元组由和组成,r1,r2,r3和r4均表示随机数,和分别表示r1,r2,-r1·r2,r3+r4,r4,0和1的加密值。
6.根据权利要求5所述的一种面向云计算数据安全的快速安全外包计算方法,其特征在于,在步骤3中,每个元组中的随机数满足以下性质:
7.根据权利要求6所述的一种面向云计算数据安全的快速安全外包计算方法,其特征在于,在步骤4中,smul运算过程包括以下步骤:
8.根据权利要求7所述的一种面向云计算数据安全的快速安全外包计算方法,其特征在于,在步骤4中,scmp运算过程包括以下步骤:
9.根据权利要求8所述的一种面向云计算数据安全的快速安全外包计算方法,其特征在于,在步骤5中,所述解密算法dec,其解密模型为: