采用加法同态加密方法进行安全计算双方持有数和的指数的方法

文档序号:7868485阅读:348来源:国知局
专利名称:采用加法同态加密方法进行安全计算双方持有数和的指数的方法
技术领域
本发明属于安全多方计算领域,特别涉及安全两方计算领域,具体涉及一种采用同态加密技术,设计出在不泄漏任何个人隐私信息的前提下,两参与方合作求所持数据之和的t次幂的方法。
背景技术
安全多方计算技术的发展使得人们可以在不泄漏个人私有信息的前提下,合作去完成一系列有意义的计算。为保护隐私数据挖掘以及其他数据处理技术的发展奠定了坚实的基础。Yao在文献“How to generate and exchange secrets”中首次提出了安全两方计算的概念,并且设计出了第一个安全两方比较协议-百万富翁协议。该协议使得两个参与方能够在不泄露个人输入的情况下,比较出两方所持有数据的大小关系。他同时在该文献中指出,任何安全两方的计算协议,均可以通过电路门实现。随后,O. Goldreich将安全两方计算技术推广到了多方情况,并且给出了安全模型以及形式化的安全性证明方法。尽管任何安全多方计算协议均可通过电路门的方法实现,但由于通信和计算复杂度过高,导致这种实现方法的效率极低。因而,对于特定的安全多方计算问题,仍需要设计出特定的协议来高效完成。到目前为止,学者们已经设计出包括安全比较协议、安全两方求除、安全两方求集合的交、安全两方求集合的并,以及点积协议在内的诸多安全多方计算基础协议。这些高效协议的产生,为很多大型的保护隐私协议的设计奠定了基础。然而,目前仍有一些基础的安全多方计算问题尚未得到妥善的解决。而这些问题的解决与否直接关系着一部分大型保护隐私协议能否得以解决。比如,安全两方根号运算是安全计算欧几里德距离的必要子协议;高效的安全两方求倒数协议可应用于安全两方求除协议,并使得除法协议的效率得到明显的提升。因而,给出这两个问题的解决方案十分必要。

发明内容
本发明目的在于给出一个通用的安全两方求指数协议。此协议可以安全、高效的完成安全两方对于求任何次幂的运算。一种采用加法同态加密方法进行安全计算双方持有数和的指数的方法,其特征在于所述方法中安全计算的参与方为A方和B方,A方持有的数为a, B方持有的数为b,且满足a+b>0,双方持有数和的指数为c+d= (a+b)',其中t为任意实数,c为随机数;所述方法包括以下步骤(I) B方以加法同态加密方法产生密钥对(E,D ),并进行加密计算得到E (b),将E(b)以及公钥E发送给A方;(2) A方接收B方的E (b)和公钥E后,通过加法同态加密方法进行加密计算获得E (pa) * E(b)p,将 E(pa) * E(b)p 发送给 B 方;
(3)B方接收A方的E(pa) * E (b)p后,利用私钥D对E (pa) *E(b)p进行解密得到pa+pb,然后进行加密运算得到E ((pa+pb) ^,并将E ((pa+pb) ^发送给A方;(4) A方接收B方的E((pa+pb) t)后,通过加法同态加密方法进行加密计算获得I二 (E ((pa+pb) ”)1/pt -k E (_c),将 y 发送给 B 方;(5)B方接收A方的y后,利用私钥D对y进行解密得到d=D (7);而六方获得(;其中P为随机产生的随机数P,P不为零;z=p_t。优选的,所述方法中t=0. 5或I。优选的,所述方法中加法同态加密方法为通过加法同态加密系统生成加法同态加密密钥对(E, D),且满足 E (m) * E (n) =E (m+n)以及 E (ms) =E (m)s,则 D (E (m) * E (η)) =m+n 以及 D (E (m)s) =ms。
本发明技术方案将两个参与方分别称为A方和B方。问题的形式化定义如下A方和B方分别持有数a和b,满足a+b>0。他们希望通过合作计算以和的形式共享a+b的t次方(其中t为非零参数)。具体来说,协议目的是在不泄漏参与方任何输入信息的前提下,A方和B方分别得到数值c和d,满足K+dMa+br。本发明主要基于加法同态加密系统。此系统由Paillier在文献iiPublic-KeyCryptosystems Based on Composite Degree Residuosity Classes,,中提出。假设A方产生加法同态加密密钥对(E,D),此加密系统满足E (m) * E (n) =E (m+n)以及E(ms)=E(m)s,即有,D(E(m) * E (η)) =m+n以及D (E (m)s) =ms。这一加密系统的产生对安全多方计算技术的发展起到了极大的促进作用。本发明采用同态加密技术,设计出在不泄漏任何个人隐私信息的前提下,两参与方合作求所持数据之和的t次幂的方法。方法具体包括两大部分两参与方合作计算,使得一方产生随机数,另一方得到此随机数与他们两方所持有数据之和的乘积;两参与方利用前面得到的结果继续合作计算,使得他们所持数据之和的t次幂以和的形式共享在二人手中。其特征在于所述方法具体包括以下步骤记两参与方分别为A方和B方,记所持数据分别为a和b。(I)首先,A方产生一个大于O的随机数P和一随机数r。B方产生加法同态加密密钥对(E,D),并且将加密后的数值E (b)以及公钥E发送给A方。然后,A方计算E(pa) * E(b)p,并将计算结果发送给B方。最后,B方利用私钥D对E(pa) *E(b)p进行解密,得到pa+pb。(2)首先,B方计算E((pa+pb)t),并将计算结果发送给A方。然后,A方计算(E((pa+pb)t))1/pt * E(-r),并将计算结果发送给B方。最后,A方将r作为输出C。B方利用私钥D对(E( (pa+pb) t))1/pt * E(-r)进行解密,并将解密结果作为输出d。所述方法中将两参与方所持数据的和以积的形式共享在二人手中,这样就将计算两参与方所持数据之和的t次幂问题转化为了计算两参与方所持数据之积的t次幂,而此时所需计算的结果等于两参与方新持有数据分别求t次幂后再求乘积。两参与方可安全计算所持数据的任意次方(即t可取任意实数)。本发明的方法一方利用加密而另一方利用加入随机数来分别保护己方隐私数据不被泄漏,而所需通信复杂度极低。安全方面从本发明技术方案可以看出,只需分析两参与方能否通过接收到的另一方所发送的信息来推断出其私有数据信息,若不能,则可说明方法是安全的。首先分析参与方A方的私有信息a是否会泄漏。A方在步骤2和步骤4中向B方发送了信息。步骤2中,B方通过对收到信息进行解密运算,得到pa+pb的值。由于存在随机数P的保护,B方无法得知关于A方私有数据a的任何信息。步骤4中,B方得到数据(E( (pa+pb) t))1/pt *E(-r),进行解密后得到(a+b)t-r。此时同样存在一个随机数!■对A方的私有数据a进行保护,B方依然无法得知关于a的任何信息。因而,A方的安全性得到了保证。接下来分析参与方B方的私有信息是否会泄漏。B方给A方发送信息发生在步骤I和步骤3中。由于B方发送给A方的信息都是通过公钥E加密后的密文,而A方又无法得到私钥D,基于密码学的安全理论,A方将不会得到关于B方私有数据b的任何信息。因而,B方的安全性也得到了保证。综上所述,本发明无任何隐私信息泄漏,是具有安全保证的。效率方面假设所使用的密钥长度为K位,完成整个协议所需要的通信量为2K+K+K+K=5K位。可见,本发明的方法效率极高。
本发明的突出的实质性特点和显著地进步主要体现在本发明可以使得两个参与方安全、高效的计算出两个数的任意次幂,计算结果以和的形式共享在这两个参与方手中。这为大型的保护隐私数据处理技术奠定了基础,同时也会为设计出更高效的安全多方计算协议提供了必要的技术手段。该发明提供了一种高效的安全两方合作计算协议,该协议可以高效的计算出两参与方所持数据之和的t次幂(其中t可取不为零的任意实数),并使得计算结果以和的形式共享在两个参与方手中。假设两参与方所持数据分别为a和b,该协议的具体实施方案包括以下两个阶段首先,其中一方随机产生一大于零的数P,双方采用同态加密技术计算,使得另一方得到P(a+b)的值。随后,两参与方分别采用p_t以及(P (a+b)) 1乍为输入,再次采用同态加密技术计算,使得两参与方以和的形式共享(a+b)\该发明满足密码学中的安全性定义,因而,安全性极高。另外,可以通过灵活修改该发明中t的值来完成不同的应用。例如,取t=_l时,该发明可用于设计高效的安全两方求除协议;取t=0. 5时,该发明可用于欧几里德距离的安全计算。


下面结合附图及实施例对本发明作进一步描述图I为本发明采用加法同态加密方法进行安全计算双方持有数和的指数的方法的流程图。
具体实施例方式以下结合具体实施例对上述方案做进一步说明。应理解,这些实施例是用于说明本发明而不限于限制本发明的范围。实施例中采用的实施条件可以根据具体厂家的条件做进一步调整,未注明的实施条件通常为常规实验中的条件。实施例假设公司A有员工200人,年生产总值为1000万元。公司B有员工300人,年生产总值为2000万元。两公司希望在不泄漏本方任何私有信息的前提下,与对方合作得出人均年生产总值的数目。本实施例的具体实施步骤如下(I)利用本发明使得两公司可以以加法秘密分享的方式分享两公司总人数的倒数值。具体实施步骤如下步骤一 A方产生一个大于O的随机数p=10和一随机数r=0. 01。B方产生加法同态加密密钥对(E,D),并且将加密后的数值E (300)以及公钥E发送给A方。步骤二 A方计算E (10 * 200) * E (300)1°,并将计算结果发送给B方。步骤三B方利用私钥D对E (10 * 200) * E (300)10进行解密,得到5000。
步骤四B方计算E (1/5000),并将计算结果发送给A方。步骤五A方计算¢(1/5000))1° * E (-0.01),并将计算结果发送给B方。步骤六A方输出O. 01。B方利用私钥D对(E (1/5000)10 * E (-0.01))进行解密,得到-O. 0098。(2)两公司利用点积协议计算出人均年生产总值的数目。具体步骤如下A公司此时知道年生产总值为1000万元,两公司总人数倒数的一部分为O. 01 ;B公司此时知道年生产总值为2000万元,两公司总人数倒数的一部分为-O. 0098.双方需要计算的值为(1000+2000)* (O. 01+ (-0. 0098))=1000 * O. 01+2000 *(-0. 0098) +2000 * O.01+1000 * -O. 0098 ;双方可以独立计算出前两个乘积的值,后来个乘积的值可通过一步点积协议得出。因而,在本发明的基础下,两公司很容易得到人均生产总值的数目为6万元。本发明还可以用来安全实现两点之间的欧几里德距离协议,使得两个参与方(A方和B方)以和的形式共享此距离值。随后,将利用本发明设计出高效的安全两方求除法的协议,同样使得除法结果以和的形式共享在两个参与方手中。假设A方持有点a (a1; · · ·,an),B方持有点b (b1; . . . , bn).他们希望在不泄漏个人私有信息的前提下,合作计算出点a和点b之间的欧几里德距离,并使得结果以和的方式共享在二人手中。具体实施方案如下点a和点b之间的欧几里德距尚<&/( ,5) -b})2 + ... + (an -bn)2,我们来观察根号下的任何一项(afbi)2, i=l,...,n。由于(Si-IDi) 2=&/-23九+13 ,A方和B方可分别独立计算出Y和bj的值,而他们又可以通过点积协议来计算假设A方得到Ui,B方得到Vi,满足Ujvi=-ZaiIDi. A方和B方分别计算a/++和!^+Vi的值,从而达到以和的形式来共享(ai-bi)2的目的。两参与方只需将自己所持有的根号下每一项的部分相加,即可以和的形式共享两点之间的欧几里德距离平方值。接下来双方可使用持有的欧几里德距离平方值的分量作为输入,来执行本发明所设计的安全两方求指数协议(令t=0. 5),从而可以以和的形式共享点a和点b的欧几里德距离。假设A方持有数值a,c; B方持有数值b,d。他们希望在不泄漏个人隐私信息的情况下,以和的形式共享(a+b)/(c+d)的值。具体实施方案如下两个参与方先分别使用c和d做为输入,令参数t=_l,运行本发明的安全求指数协议,可以以和的形式共享I/ (c+d)的值。假设A方得到e,B方得到f,满足e+f = I/(c+d)。原问题将转换为求(a+b) (e+f)的值。(a+b) (e+f) =ae+af+be+bf,由于A方和B方可分别独立计算出ae和bf的值,他们只需运行一次点积协议,以和的形式共享af+be即可。假设协议所使用的密钥长度为K位,计算此安全求除问题的通信复杂度为O (K)。可见,利用本发明设计出来的安全求除协议效率极高。由此可见,本发明具有实质性技术特点和显著的技术进步,其应用前景非常广阔。
上述实例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人是能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所做的等效变换或修饰,都应涵盖在本发明的保护范围之内。
权利要求
1.一种采用加法同态加密方法进行安全计算双方持有数和的指数的方法,其特征在于所述方法中安全计算的参与方为A方和B方,A方持有的数为a, B方持有的数为b,且满足a+b>0,双方持有数和的指数为c+d= (a+b)',其中t为任意实数,c为随机数;所述方法包括以下步骤 (DB方以加法同态加密方法产生密钥对(E,D),并进行加密计算得到E(b),将E(b)以及公钥E发送给A方; (2)A方接收B方的E(b)和公钥E后,通过加法同态加密方法进行加密计算获得E (pa)* E(b)p,将 E(pa) *E(b)p 发送给 B 方; (3)B方接收A方的E(pa)* E(b)p后,利用私钥D对E(pa) *E(b)p进行解密得到pa+pb,然后进行加密运算得到E ((pa+pb) ^,并将E ((pa+pb) ^发送给A方; (4)A方接收B方的E((pa+pb)t)后,通过加法同态加密方法进行加密计算获得I二 (E ((pa+pb) ”)1/pt -k E (_c),将 y 发送给 B 方; (5)B方接收A方的y后,利用私钥D对y进行解密得到d=D (y);而々方获得c ;其中P为随机产生的随机数P,P不为零;ζ=ρ'
2.根据权利要求I所述的方法,其特征在于所述方法中t=0.5或I。
3.根据权利要求I所述的方法,其特征在于所述方法中加法同态加密方法为通过加法同态加密系统生成加法同态加密密钥对(E,D),且满足E(m) *E(n)=E(m+n)以及E (ms) =E (m)s,贝丨J D (E (m) * E (n)) =m+n 以及 D (E (m)s) =ms。
全文摘要
本发明提供了一种采用加法同态加密方法进行安全计算双方持有数和的指数的方法,可以高效的计算出两参与方所持数据之和的t次幂(其中t可取不为零的任意实数),并使得计算结果以和的形式共享在两个参与方手中。假设两参与方所持数据分别为a和b,该协议的具体实施方案包括以下两个阶段首先,其中一方随机产生一大于零的数p,双方采用同态加密技术计算,使得另一方得到p(a+b)的值。随后,两参与方分别采用p-t以及(p(a+b))t作为输入,再次采用同态加密技术计算,使得两参与方以和的形式共享(a+b)t。该方法满足密码学中的安全性定义,安全性极高。另外,可以通过灵活修改该发明中t的值来完成不同的应用。
文档编号H04L9/32GK102970143SQ201210536698
公开日2013年3月13日 申请日期2012年12月13日 优先权日2012年12月13日
发明者黄刘生, 李璐, 杨威 申请人:中国科学技术大学苏州研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1