首页> 中国专利> 一种分布式计算中基于密码学的除法协议构造方法

一种分布式计算中基于密码学的除法协议构造方法

摘要

本发明公开了一种分布式计算中基于密码学的除法协议构造方法,属于信息安全领域,本方法为:1)参与计算的每个成员独立地选取一随机数,并发送该随机数的共享值到所有参与方进行本地混合运算,以获得一个公共随机共享值;2)各成员使用公共随机共享值对输入秘密值b的共享进行随机化,并共同重构出b的随机化值;3)每个成员检验b的随机化结果是否可逆,如可逆则求出b随机化值的逆元,然后利用公共随机共享值对该逆元进行去随机化得到秘密值b逆的共享;4)每个成员利用得到的秘密值b逆的共享以及秘密值a的共享执行乘法协议,获得a/b的共享;5)每个成员通过彼此交换所得a/b的共享,重构出真实的计算结果。本发明具有高效性、容错性和安全性的特点。

著录项

  • 公开/公告号CN101729554A

    专利类型发明专利

  • 公开/公告日2010-06-09

    原文格式PDF

  • 申请/专利权人 北京大学;

    申请/专利号CN200910222922.6

  • 申请日2009-11-13

  • 分类号

  • 代理机构北京君尚知识产权代理事务所(普通合伙);

  • 代理人余功勋

  • 地址 100871 北京市海淀区颐和园路5号北京大学

  • 入库时间 2023-12-18 00:14:16

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-01-04

    未缴年费专利权终止 IPC(主分类):H04L29/06 授权公告日:20130529 终止日期:20151113 申请日:20091113

    专利权的终止

  • 2013-05-29

    授权

    授权

  • 2010-08-11

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20091113

    实质审查的生效

  • 2010-06-09

    公开

    公开

说明书

技术领域:

本发明涉及了一种安全多方计算中的除法计算协议,对于分布式系统中数据的安全处理,特别是安全多方数据处理,提供了一种高效的支持,且该方法具有很好的安全性;此方法可以应用到诸如容错计算、分布式计算、网络计算等领域。

背景技术:

随着计算机技术以及互联网技术的迅猛发展,大量事务已经由传统的运行方式逐渐转变到网络运行模式下,并且诱发了一些新型计算形式的出现。分布式计算是将不同区域、不同功能的计算机系统通过网络联合在一起,协作完成一些复杂的事务,从而利用网络的便捷性避免了繁琐的交通往来。这种计算形式已经在电子商务、电子政务、网上交易、甚至军用网络中进行应用,并且逐渐改变了人们的生活方式和工作模式。

随着分布式计算环境的出现与发展,各种安全问题也暴露了出来,这不仅包括病毒、木马、黑客等传统攻击形式,而且,由于越来越多的核心业务采用分布式计算模式进行处理,因此,它也吸引了大量的内部犯罪以及具有相当计算机能力和分析能力的人员进行非法活动,以获取各种利益。而采用“堵漏洞、筑高墙、防外攻”等传统被动防御技术,对网络攻击的防御以及对抗的效果并不很理想,因此,需要采用一种新的安全方式以适应这种新型分布式计算模式的需要。安全多方计算就是这样一种分布式环境下的主动防御技术,它以现代密码学、安全协议构造技术为基础,通过对数据在加密形式下进行计算,以达到较高安全性的目的。近年来,安全多方计算已经越来越为安全领域所关注,并逐渐被一些高安全性计算事务所采用。

安全多方计算考虑的是一群互不相信的成员,希望利用本地输入,正确地计算某个公共的函数值,同时使得每个人的输入尽可能的私密,这种计算方式非常适宜于网络环境中多个成员共同进行计算以及广泛应用的分布式计算。更严格地讲,安全多方计算协议要解决的问题可以描述如下:n名互不相信的参与者(P1,P2,…,Pn),希望共同计算某个约定的函数y=f(x1,x2,…,xn),每个参与者Pi提供函数的一个输入xi,出于安全考虑,要求参与者提供的输入对其他人保密,最终,忠实成员获得y。A.C.Yao于1982年最早提出了两方安全计算协议。之后,Goldreich等提出了可以计算任意函数的基于密码学安全模型的安全多方计算协议,证明了存在被动攻击者时n-Secure的协议是存在的;存在主动攻击时(n-1)-Secure的协议是存在的;D.Chaum,C.Crepeau和I.Damgard中对信息论安全模型下的安全多方计算进行了研究,证明了在被动攻击下(n-1)-Secure的协议是存在的,在主动攻击下的协议是存在的。此后,许多学者在如何提高安全多方计算协议的效率,如何对安全多方计算进行形式化的定义,如何对通用的安全多方计算协议进行剪裁使之能更有效地适用于不同的应用环境,新的安全多方计算协议的构造方法,安全多方计算敌手结构的定义等方面进行了研究。

对于安全多方计算的安全性要求,可以考虑这样一个情景:在一个简单网络商品销售中,参与者包括:购买者、销售商、银行,购买者提供购买信息和电子货币、销售商接收购买信息并请求银行进行货币转账、银行将货币转账到销售商、再由销售商发送产品给购买者。这是一个典型的安全多方计算的应用场景,在这一过程中,各参与者的输入信息需要保护隐私,例如,购买者的电子货币及金额、销售商销售记录、银行账户信息就是隐私信息,需要进行保密;同时,该销售过程是三方通过计算将用户的电子货币中扣除购买商品金额,将该资金转账到销售商,并将剩余电子货币返还购买者,这一计算过程要求保证计算结果的正确性。由此可知,一个安全多方计算的基本安全要求包括两部分:

1、保证各计算参与方输入秘密的隐私性;

2、保证分布式计算结果的正确性;

同时,作为一种实用系统还要保证系统计算的高效率性。

如前所述,安全多方计算的研究在逐步深化,汇聚了众多的研究热点,产生了许多新的概念,诸如(可验证的)秘密分享,拜占庭协议,电话掷币协议,健忘传输,私密信息检索等等,这些概念和思想解决了密码学研究中的一些问题,丰富了密码学的研究,同时也已经应用到了包括网络传输在内的其他学科研究中。正如一般的代数运算关注于加减乘除计算,多方安全计算同样关注于新的环境下的加减乘除运算,同时需要关注计算的安全性和高效性,本发明主要解决安全多方计算中的除法问题。

本发明以另一专利申请为基础,该专利申请号为:200810111190.9,名称为《一种具有容错功能的密码学分布式计算与分步检验方法》。在本发明中,我们提出了一种高效的、并行的代数运算框架与协议。相对于加法和乘法协议,除法协议需要解决数据的求逆问题,同时,整个过程需要满足隐私性的要求,因此,对于除法协议需要有更多的变化和处理过程。本发明在上一个乘法协议的基础上,设计了一种安全、高效的除法计算协议。

发明内容:

本发明的目的是提供一种分布式计算中基于密码学的除法协议构造方法,使得安全多方数据处理过程高效而准确,既提高了效率,同时又保证了安全性和一致性。同时,本方法利用了申请号为:200810111190.9,名称为《一种具有容错功能的密码学分布式计算与分步检验方法》中的乘法协议,可以实现对于信息传输的检错和纠错的处理,使得整个过程的正确性得到保证。

本发明的技术方案为:

一种分布式计算中基于密码学的除法协议构造方法,其中a、b为有限域下输入的秘密值,参与计算成员每人获得一份a与b的秘密共享值,其步骤为:

1)参与计算的每个成员独立地选取一随机数,并发送该随机数的共享值到所有参与方,各成员对得到的共享值在本地进行混合运算,以获得一个公共随机共享值;

2)各成员分别使用上述公共随机共享值对输入秘密值b的共享进行随机化,并共同重构出秘密值b的随机化值;

3)每个成员检验得到的秘密值b的随机化结果是否可逆,如可逆则求出秘密值b随机化值的逆元,然后利用公共随机共享值对该逆元进行去随机化,并得到秘密值b逆的共享;如果不可逆则返回步骤1);

4)每个成员利用得到的秘密值b逆的共享以及秘密值a的共享执行乘法协议,获得a/b的共享;

5)每个成员通过彼此交换上一步骤所得a/b的共享,重构出真实的计算结果。

进一步的,所述步骤1)中,每个成员随机的选取一随机值。

进一步的,所述步骤2)中,每个成员首先对秘密值b的共享进行随机化,得到b的共享随机化结果值;然后利用Lagrange插值公式重构出秘密值b的随机化值。

进一步的,所述步骤3)中,每个成员利用欧几里得算法计算秘密值b随机化值的逆元。

进一步的,所述步骤5)中,每个成员利用Lagrange插值公式对彼此交换所得a/b的共享进行重构,得到真实的计算结果。

本发明是基于分布式数据或秘密共享基础上的,所谓数据共享或秘密共享是指将如何将秘密分发到一组成员手中,只有指定的成员组合才能重构出秘密,而其他成员或成员之间无法恢复出秘密的一种安全技术。这种指定的成员组合被称为“访问结构”。本发明特点在于,能够对处于共享状态的数据进行计算。同时,本发明并不限制具体的“数据共享方法”与“访问结构”。

本发明认为任何复杂的安全多方计算任务可分解为一系列简单的安全多方代数运算,这些计算包括数值之间的加、减、乘、除,对于每个这种简单代数运算保持计算安全的情况,才能保证整个安全多方计算安全。在申请号为:200810111190.9,名称为《一种具有容错功能的密码学分布式计算与分步检验方法》的技术文件中给出了加法、减法和乘法协议,本发明主要解决安全多方计算中的除法协议,本发明方法的流程如图1所示,具体而言,本发明对于每个除法运算分为下面5个阶段:

对任意有限域下的输入的秘密值a与b,N名成员每人获得一份a与b的秘密共享值,通过下面协议希望共同计算等式a/b。在申请号为:200810111190.9,名称为《一种具有容错功能的密码学分布式计算与分步检验方法》的技术文件中阐述了上述共享值的生成算法,或者上述共享值的可由该发明中的分布式计算结果获得。

●第1步,预处理阶段:

每个成员独立地选取一个随机数r,并发送该值的共享值到所有参与方,各成员对得到的共享值在本地进行混合运算,以获得一个公共随机共享值Si

●第2步,随机化阶段:

各成员分别使用上述公共随机共享值Si对输入数值b的共享进行随机化,并共同重构出b的随机化结果的值;

●第3步,检验和求逆阶段:

每个成员检验得到的秘密值b的随机化结果是否可逆,如可逆则求出秘密值b随机化值的逆元,然后利用公共随机共享值对该逆元进行去随机化,并得到秘密值b逆的共享;

●第4步,乘法执行阶段:

每个成员利用得到的秘密值b逆共享以及秘密值a共享执行乘法协议,获得a/b的共享;

●第5步,重构阶段:

每个成员通过彼此交换上一步骤所得共享,重构出真实的计算结果。

本发明的一个特点在于,通过参与计算的每个成员随机选定一个随机值,实现了对于秘密值b的隐藏,整个计算过程中始终没有泄露秘密值b的信息,实现了安全多方计算的隐私性,同时通过引入随机值并没有带来庞大的计算负担,又保证了协议的有效性,整个协议的复杂性与申请号为:200810111190.9,名称为《一种具有容错功能的密码学分布式计算与分步检验方法》专利申请中的复杂性相若。

本发明的另一个特点在于,参与计算的成员执行的同步性。参加计算的每名成员所执行的计算过程是一样的,并保证上述步骤在各成员内部独立执行,有效地实现了运算的协调。

本发明的另一个特点在于,整个协议的执行过程中数据传输量很少,除了在第1阶段中各成员需要进行一次数据交换之外,除法协议的数据交换次数和乘法协议的数据交换次数相同。本发明所采用的计算只涉及整数或有限域内的随机数选择、加法、乘法、幂运算,其中涉及到的幂运算可分解为有限次的加法和乘法运算,实现简单,整个协议的计算复杂性较低。

本专利的另一个特点在于,该协议具有可验证的功能,协议结束之后,每个成员可以验证计算结果的正确性。由于本发明继承了申请号为:200810111190.9,名称为《一种具有容错功能的密码学分布式计算与分步检验方法》专利申请中的乘法协议,因此本发明可以实现在每一步的执行中实现验证。

本发明的积极效果

综上所述,本发明的方法和协议实现了算法的高效性、容错性和协议的安全性。在一般代数(包括加、减、乘、除)运算过程中,本发明克服了传统的算法中需要考虑拜占庭一致性协议执行的通信量巨大,算法效率低下的问题;本发明的另一特点在于提出了乘除运算的降阶方法;在验证阶段,本发明实现了对运算每个步骤正确性的检验;在秘密分享阶段,本发明采用了可验证的秘密分享体制,从而在秘密的分享之初便实现了算法正确性和合法性。

附图说明

图1是本发明中安全多方计算除法协议执行的流程图。

图2是本发明中分布式算法执行的示意图。

具体实施方式:

下面结合具体的实施例和示意图对本发明中的除法协议构造方法做进一步的描述。

在安全多方计算的条件下,传统的计算方法建立在拜占庭一致协议之上,成员之间通信量较大,我们的计算建立在线性秘密共享之上。

线性共享与重构:在域Gq中,给定一个秘密值s,发送者随机选取t-1(t≤n)个随机数(r1,r2,…,rt-1),构成方程fs(x)=s+r1x+…+rt-1xt-1。对于安全多方计算中的任意成员Pi(其中i∈[1,n],n为成员总数),具有身份标识IDi,那么,该成员所获得秘密s的共享值为ci=fs(IDi)。如果有m(m≥t)名成员希望由他们所具有的共享{s1,s2,…,sm}恢复出原始秘密值s,那么可求解出s=Σi=1mrisi,其中ri=Σj=1,jinj/(j-i),称(r1,r2,…,rn)为一个重组向量。

通常的多方计算:在域Gq中,给定两个秘密值a,b,分别通过两个t-1次多项式fa(x),fb(x)被分成分享片段a1,a2,…,an和b1,b2,…,bn,其中每个成员Pi具有ai,bi,i=1,2,...,n,成员希望计算a+b和ab。根据多项式的性质,fa(x)和fb(x)的和为:

fa+b(x)=fa(x)+fb(x)=(a+b)+γ1x+…+γt-1xt-1

fa(x)和fb(x)的乘积为:

fab(x)=fa(x)fb(x)=ab+λ1x+…+λ2(t-1)x2(t-1)

Lagrange插值公式允许我们可以分别通过t和(2t-1)个不同的共享决定fa+b(x)和fab(x)。但是,为了计算连续性的需要,希望保持多项式的次数不变。

在除法协议中,我们利用申请号为:200810111190.9,名称为《一种具有容错功能的密码学分布式计算与分步检验方法》专利申请中给出的乘法协议来执行,这样可以实现更高的安全性和更高的效率。下面我们具体描述安全多方计算中的除法协议:

可验证的除法协议

任务描述:每个成员Pi拥有秘密值a,b(b≠0)的分享ai,bi,需要计算c=a*b-1的值。本发明的具体处理过程如图2所示。

预处理阶段:

1、每个成员Pi(i=1,2,...,n)随机选择一个随机数ri,将ri的分享rij发送给Pj(j=1,2,...,n);

2、每个成员Pi(i=1,2,...,n)收到一组(r1i,r2i,…,rni)之后,本地计算公共随机共享值si=Σk=1nrik;

随机化阶段:

3、每个成员Pi(i=1,2,...,n)计算ti=si*bi,即对秘密值b的共享进行随机化,得到b的共享随机化结果值ti

4、利用Lagrange插值公式重构出b的随机化值t=r*b,其中r=Σk=1nrk;

检验和求逆阶段:

5、而后检验t是否为0(即t是否可逆),如果t为0(不可逆),则返回步骤1重新执行,否则执行步骤6;

6、每个成员Pi(i=1,2,...,n)利用欧几里得算法计算t-1

7、每个成员Pi(i=1,2,...,n)计算秘密值b逆的共享di=t-1*ri

乘法执行阶段:

8、每个成员利用申请号为:200810111190.9,名称为《一种具有容错功能的密码学分布式计算与分步检验方法》中的乘法协议计算乘法,输入为((a1,a2,...,an),(d1,d2,…,dn)),得到a*d的分享片段;

重构阶段:

9、最后每个成员利用Lagrange插值公式,重构出的结果就是c=a*b-1的值。

关于该除法协议,我们给出一个简短的示例,在示例中取定n=3,p=17,

任务描述:每个成员Pi拥有a=3,b=8的分享(a1,a2,a3)=(7,13,4),(b1,b2,b3)=(8,12,3)需要计算c=a*b-1的值,其中fa(x)=3+3x+x2,fb(x)=8+15x+2x2不为Pi所知。

1、假设成员P1的分享多项式为f1(x)=5+2x+x2,成员P2的分享多项式为f2(x)=7+5x+x2,P3的分享多项式为f3(x)=11+9x+3x2,其中r1=5,r2=7,r3=11,这样我们有(r11,r12,r13)=(8,13,3),(r21,r22,r23)=(13,4,14),(r31,r32,r33)=(6,7,14),而后每个成员Pi(i=1,2,3)将rij发送给Pj(j=1,2,3);

2、对于i,k=1,2,3,成员Pi(i=1,2,3)收到rki之后,本地计算si=Σk=13rki,这样得到(s1,s2,s3)=(10,7,14);

3、成员Pi(i=1,2,3)选定(b1,b2,b3)=(8,12,3),计算得到(t1,t2,t3)=(12,16,8);

4、利用Lagrange插值公式重构出t=r*b=6*8=14;

5、由于t不为0,进入6;

6、各成员Pi(i=1,2,3)利用扩展的欧几里得算法计算t-1=b-1*r-1=11;

7、每个成员Pi(i=1,2,3)计算di=t-1*ri,因此得到(d1,d2,d3)=(4,9,2);

8、而后调用申请号为:200810111190.9,名称为《一种具有容错功能的密码学分布式计算与分步检验方法》中的乘法协议计算乘法计算,输入为((7,13,4),(4,9,2)),得到分享片段(1,10,4);

9、最后利用Lagrange插值公式,重构出的结果就是c=11的值,同时已验证a*b-1=3*8-1=3*15=11,因此我们的协议给出了正确的值。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号