《电子技术应用》
您所在的位置:首页 > 通信与网络 > 设计应用 > 新的同态加密方法——基于Paillier和RSA 密码体制的代理重加密
新的同态加密方法——基于Paillier和RSA 密码体制的代理重加密
2016年微型机与应用第07期
段淑敏,殷守林,张燕丽,王学颖
(沈阳师范大学 科信软件学院,辽宁 沈阳 110034)
摘要: 同态加密是一种加密形式,它允许特定类型的计算对密文进行加密,解密时对明文执行匹配结果的操作可以获得一个加密的结果,当对位于远程服务器上的数据做计算时,云供应商有必要访问原始数据并解密。为满足企业信息的数据和算法的私密性需求,数据加密方法与防篡改硬件技术被使用。公开加密数据的计算上,隐私的建立成为必要条件。此时同态加密方法被使用且提出一种基于Paillier和RSA密码体制的代理重加密技术。同态加密是一种无需解密即可在加密数据上进行计算的方法,与在原始数据上计算能够获得相同的结果,并通过使用代理重加密技术防止被选择的密文受攻击。
Abstract:
Key words :

  段淑敏,殷守林,张燕丽,王学颖

  (沈阳师范大学 科信软件学院,辽宁 沈阳 110034)

  摘要同态加密是一种加密形式,它允许特定类型的计算对密文进行加密,解密时对明文执行匹配结果的操作可以获得一个加密的结果,当对位于远程服务器上的数据做计算时,云供应商有必要访问原始数据并解密。为满足企业信息的数据和算法的私密性需求,数据加密方法与防篡改硬件技术被使用。公开加密数据的计算上,隐私的建立成为必要条件。此时同态加密方法被使用且提出一种基于Paillier和RSA密码体制的代理重加密技术。同态加密是一种无需解密即可在加密数据上进行计算的方法,与在原始数据上计算能够获得相同的结果,并通过使用代理重加密技术防止被选择的密文受攻击。

  关键词云计算;同态加密;代理重加密技术;数据安全

0引言

  同态加密广泛用于支持简单聚合,对加密数据的数值计算以及私人信息检索。同态加密理论的突破产生了全同态加密[1],能够计算加密数据的任意函数。同态加密通常被认为是一种在加密数据基础上解决数据库查询问题的关键方式。用于处理更复杂结构数字数据和算法的隐私性需求呈指数形式增加,这正好平行于通信网络及其设备的增长和它们能力的增长。为了数据的安全存储和访问,当前技术提供了几种保证数据隐私的方法如数据加密[23]和防篡改硬件[4]等。然而,当私有数据使用同态加密公开计算或者修改函数、算法时,它们仍然可以执行,隐私也可得到确保。使用同态加密的系统可以计算与加密数据。

  数据在发送到服务器端之前将会被加密,但是客户端面临一些问题,因为服务提供商需要执行对数据的计算来回应客户端的请求,因此客户端必须在执行所需计算之前给服务器提供密钥来解密数据,这可能会影响存储在云端的数据保密性。同态加密可以执行加密数据的操作而无需解密[56]。提出这种方法的目的是解决托管在云计算中的数据安全问题。本文主要研究同态加密的应用对于云计算的安全性,尤其在没有解密的情况下执行加密数据计算的可能性。

1云计算

  云计算[7]是一个模型,能够方便、按需访问可配置的网络计算资源共享池(如网络、服务器、存储应用程序和服务),可以快速地配置工作环境,并能以消耗最小的管理工作或服务与提供商交互发布。关于云计算流量、安全和资源管理有很多问题,可以通过多种方式,在数据、网络和存储上保证云安全。同态加密方法给数据提供更加安全的保护[7],因为不涉及密钥的管理。使用代理重加密技术防止被选择的密文受到攻击,所以该系统比现有系统更安全。

  1.1新定义

  通过云计算概念,对其给出新定义:对于可计算的信息技术模型由所有的信息技术组件构成包括硬件[8]、软件、网络以及服务等,以便开发和通过因特网或者专用网络云服务传递。这个定义在云计算中对于数据没有安全定义。云供应商,如IBM、谷歌和亚马逊在他们的云平台中使用虚拟化,在同一台服务器中,它们可以共用存储空间,也可以处理并发企业的虚拟化。

  1.2云计算结构模型

  云计算系统可以分为两部分:前端和后端。前端实现用户与服务器交互,后端是服务器提供给用户数据,服务器和客户端之间的网络为中间件。图1为云基本体系结构。

  

001.jpg

2同态加密

  同态加密指的是在加密过程中纯文本和密文都被看作具有等效的代数函数。同态加密允许服务器在不知道原始明文情况下做加密数据的操作。数据保护基本流程如图2所示。

002.jpg

  同态加密允许在加密的数据上执行复杂的数学运算而无需原始数据。对于明文X1和X2以及对应的密文Y1和Y2,基于同态加密方案,已知Y1和Y2,就可以直接计算出X1ΘX2的值。密码系统的乘法同态或者加法同态取决于运算符号Θ是乘还是加[910]。

  以下重点介绍乘法同态加密。

  一个同态加密方案是乘法的(其中m是明文的个数),如果:

  Enc(xy)=Enc(x)Enc(y)

  Enc(∏mi=1mi)=∏mi=1Enc(mi)

  RSA加密系统过程:

  第一步:密钥产生KeyGen(p,q)

  ①输入:p,q∈P

  ②计算:n=p×q,φ(n)=(p-1)(q-1)

  ③选择一个数e使Gcd(e,φ(n))=1,确定一个d使e×d≈1modφ(n)。

  ④输出:(pk,sk)

  公钥:pk=(e,n);私钥:sk=(d)

  第二步:加密Enc(m,pk)

  ①输入:m∈Zn

  ②计算:c=memodn

  ③输出:c∈Zn

  第三步:解密Dec(c,sk)

  ①输入:c∈Zn

  ②计算:m=cdmodn

  ③输出:m∈Zn

  假设有两个密码C1和C2,而且:

  C1=me1modn

  C2=me2modn

  C1C2=me1me2modn=(m1m2)emodn

  因此,RSA密码系统找到乘法同态加密的属性,但是不符合好的安全概念,原因是:假设两个密钥C1和C2以及相对应的信息m1和m2:

  C1=me1modn

  C2=me2modn

  发送器把密钥对(C1,C2)发送到云服务器上,服务器根据客户要求执行计算并发送加密之后的密文(C1×C2)到客户。如果攻击者拦截了这两个使用相同密码加密的密钥,那么将会解密两个客户之间交流的全部信息,因为同态加密是乘法的,也就说密码的积等于积的密码。

3新系统设计

  为防止密文信息从CCA泄露,提出了使用Paillier和RSA密码体制的代理重加密算法[1112]。在同态加密体制中数据由私钥加密,公钥只有客户端有。再次通过代理重加密算法获得每次随机密钥生成的密码数据,如果攻击者获得一个密钥,那么还需要另外一个不同于此的密钥解密数据[1316]。即使攻击者得到了这些数据,也不能在客户机和服务器之间解密得到明文。所以新系统比现有系统提供了更安全的保障。

  3.1代理重加密算法

  第一步:密钥产生KeyGen(p,q)

  ①选择两个素数p,q

  ②计算n=p·q和φ(n)=(p-1)(q-1)

  选择数e使gcd(e,φ(n))=1

  ③确定一个d使e×d=1modφ(n)

  ④代理公钥由Rpk=(e,n)产生,代理私钥由Rsk=d产生。

  第二步:加密Enc(c,Rpk)

  令m是即将加密的消息,且m∈Zn

  计算密文:Rc=m·e modn

  第三步:解密Dec(Rc,Rsk)

  密文:c∈Zn

  计算消息:M=c·d modn

  3.2基于Paillier算法提出的代理重加密

  第一步:产生密钥。

  ①随机选择两个比较大且相互独立的素数p,q。令(pq,(p-1)(q-1))=1

  ②计算n=pq和λ=1cm(p-1,q-1)

  ③选择随机整数g,使g∈Z*n2

  ④通过下面计算判断模块化的乘法逆元素是否存在,来确定n及划分g的顺序:

  μ=(L(aλmodn2))-1modn

  其中函数L被定义为L(u)=u-1/n

  ⑤公钥密钥为(n,g),私钥密钥为(λ,μ)

  第二步:加密Enc(m,pk)

  ①令m是要被加密的消息且m∈Zn

  ②随机选择r,使r∈Zn*

  ③计算密文:c=gm·nrmodn2

  第三步:代理重加密

  ①计算公钥和私钥(Rsk,Rpk)

  ②重加密密文由Paillier算法生成并发送公钥(Rpk)到云服务器

  第四步:解密Dec(c,sk)

  ①密文c∈Zn*

  ②计算消息:

  m=L(cλmodn2)/L(gλmodn2)modn

  3.3基于RSA算法提出的代理重加密

  第一步:产生密钥。

  ①选择两个素数p,q,计算n=pq和φ(n)=(p-1,q-1)

  ②选择整数e,使gcd(e,φ(n))=1

  ③确定d使e·d=1modφ(n)

  ④公钥由(e,n)产生,私钥由(d)产生

  第二步:加密Enc(m,pk)

  ①令m是要被加密的消息且m∈Zn

  ②计算密文:c=memodn

  第三步:代理重加密

  ①计算公钥和私钥(Rsk,Rpk)

  ②重加密密文由RSA算法生成并发送公钥(Rpk)到云服务器

  第四步:解密Dec(c,sk)

  ①密文c∈Zn

  ②计算消息:m=cdmodn

4结论

  本文使用同态加密技术在云端提供安全服务。同态加密是一个新的安全概念,能够在不知道原始数据情况下对加密的数据提供计算结果,保证了数据的机密性。基于代理重加密算法,首次提出了RSA和Paillier同态加密算法,可有效防止密文受到选择性密文文本攻击。因此,这个系统比现有系统更安全。在以后的工作中,可以通过减少密钥的大小来提高工作效率,并且也可以为其他同态加密方案进行代理。基于全同态加密云计算安全也是一个新的安全概念,也将是以全同态加密应用为基准的。

参考文献

  [1] 陈智罡,王箭,宋新霞. 全同态加密研究[J].计算机应用研究, 2014(6):16241631.

  [2] 冯朝胜,秦志光,袁丁. 云数据安全存储技术[J]. 计算机学报,2015(1):150163.

  [3] 张泽普,李国刚.基于OHNN和驱动表的公钥加密算法[J].微型机与应用,2013,32(12):4850,53.

  [4] 段国云,陈浩,黄文,等. 一种Web程序防篡改系统的设计与实现[J]. 计算机工程,2014(5):149153.

  [5] 刘天华,殷守林,李航. 一种新的在线社交网络的隐私保护方案[J]. 电子技术应用,2015,41(4):122124,128.

  [6] TIAN M, HUANG L. Certificateless and certificatebased signatures from lattices[J]. Security & Communication Networks, 2015, 8(8):15751586.

  [7] 韦茜,王晨,李星毅,等.基于RSA算法的快递信息隐私保护应用[J].电子技术应用,2014,40(7):5860.

  [8] 殷守林,刘天华,李航. 基于模拟退火算法的卡尔曼滤波在室内定位中的应用研究[J]. 沈阳师范大学学报(自然科学版),2015(1):8690.

  [9] 陈智罡,宋新霞,张延红.基于BinaryLWE噪音控制优化的全同态加密方案与安全参数分析[J].四川大学学报(工程科学版),2015(2):7581.

  [10] 李超良,刘琴,谢永明,等.基于同态加密的物联网隐私保护计算方案[J].计算机工程与应用,2015(6):2226.

  [11] 刘东升,樊沛,张亮. 云计算环境下数据安全防护探讨[J]. 信息安全与通信保密,2015(1):8789,94.

  [12] 周德华. 代理重加密体制的研究[D].上海:上海交通大学,2013.

  [13] 蓝才会,王彩芬,屈宜丽. 基于身份的单向多用的代理重加密方案[J]. 计算机应用研究,2014(8):24772480,2484.

  [14] 钱萍,吴蒙.同态加密隐私保护数据挖掘方法综述[J].计算机应用研究,2011(5):16141617,1622.

  [15] 李少鲲.标准模型下可证安全的无证书全同态加密体制[J].计算机应用,2015(2):387392,406.

  [16] 张祖莲,王命全,李景林,等.一种自定义动态密钥预防DDoS攻击的算法鄢[J].微型机与应用,2013,32(20):7779,86.