基于多项式表示的隐私保护集合交集计算方法与系统与流程

文档序号:17928153发布日期:2019-06-15 00:34阅读:284来源:国知局
基于多项式表示的隐私保护集合交集计算方法与系统与流程

本发明涉及计算机网络通信数据安全和隐私保护领域,尤其涉及基于多项式表示的隐私保护集合交集计算方法与系统。



背景技术:

随着移动互联网和物联网技术的进一步发展,我们的生活越来越来方便快捷,不管是吃穿住行,我们都可以通过手机获取相关信息,但是在快捷便利的生活当中我们也存在一些问题。例如,当我们出去旅游时,大家都会利用手机去搜索附近旅游景点位置、酒店信息以及美食信息等等。但是我们获取信息的同时,我们自身的位置信息以及其他数据被其他人获取,这就可能造成个人隐私数据的泄露问题。另外,在手机上,我们可以找到附近相同兴趣的朋友,但是在我们获取相同兴趣的时候,个人其他兴趣爱好信息也可能会被别人获取,这也是隐私数据泄露的问题。此外,在大数据时代的今天,数据共享是一种必然的趋势。从表面上看,数据共享就是充分利用公共的数据信息挖掘并获取到有用信息,这必然存在一个数据隐私的问题。在大数据隐私保护中,安全多方计算是常用的技术手段。

安全多方计算(securemulti-partycomputation,smc):在一组参与者都有各自的秘密输入x1,x2,x3,...,xn,通过联合计算某个多项式函数f(x1,...,xn,r)=(y1,...,yn)。计算输出的y1,...,yn就是各参与者得到的秘密输出值。安全多方计算是解决分布式环境下多个参与方共同完成加密计算的一种技术。安全多方计算的特点是让用户可以在特定的实际应用场景下完成保密计算任务,而不泄露用户私有信息,常见应用包括数值比较,保密数据查询、保密数据挖掘、保密集合计算等。

本申请发明人在实施本发明的过程中,发现现有的方法至少存在如下问题:

目前隐私保密计算集合交集的方法主要有以下几类,基于不经意多项式、基于不经意伪随机方程、基于盲签名、基于bloomfilter。一方面,在过去的隐私保护集合交集计算协议中,一般是基于半诚实模型甚至是恶意模型,有些传统的隐私保护集合交集计算协议的安全性不够高,参与者能够通过一些多余计算得到除交集外的多余元素信息。



技术实现要素:

有鉴于此,本发明提供了基于多项式表示的隐私保护集合交集计算方法与系统,用以解决或者至少部分解决现有技术中存在的安全性较低的技术问题。

为了解决上述的技术问题,本发明第一方面提供了基于多项式表示的隐私保护集合交集计算方法,应用于参与请求的双方用户a、b,且参与方a持有第一集合,参与方b持有第二集合,所述方法包括以下步骤:

步骤s1:参数的初始化设置,参数包括参与方b生成的构造向量、参与方b根据第二集合构造的第二集合多项式以及参与方a根据第一集合构造的第一集合多项式;

步骤s2:参与方b向参与方a发送消息数据,其中,消息数据中包括构造向量、第一消息表示向量和第二消息表示向量,其中,第一消息表示向量由参与方b根据第一随机数集和第二集合多项式获得集,第二消息表示向量由参与方b根据第一随机数集、基于第二随机数集生成的第一随机多项式获得;

步骤s3:参与方a基于参与方b发送的消息数据向参与方b返回加密后的消息数据,其中,加密后的消息数据由参与方a基于第三随机数集生成第二随机多项式后,再根据第二随机多项式和第一集合多项式生成;

步骤s4:集合交集判决式计算,包括:参与方b基于第一随机数集和构造向量计算获得集合交集判决多项式;

步骤s5:集合交集计算,参与方b根据构造向量和集合交集判决多项式,获得集合交集。

在一种实施方式中,步骤s1具体包括以下子步骤:

步骤s1.1:参与者b生成一个构造向量其中,构造向量包含从fp有限域中随机获取2d+1个非零值xi,其中,d为正整数,

步骤s1.2:参与者a根据第一集合sa构造第一集合多项式ρa(x),其中,(a1,a2,...,an)表示集合sa的元素;

步骤s1.3:参与者b根据第二集合sb构造第二集合多项式ρb(x),其中,(b1,b2,...,bn)表示集合sb的元素。

在一种实施方式中,步骤s2的具体包括以下子步骤:

步骤s2.1:参与方b产生第一随机数集zib,其中,k(i)是一个随机种子;

步骤s2.2:参与方b产生第二随机数集rjb,其中,k(b)是一个随机种子,然后根据生成的第二随机数集rjb生成第一随机多项式γb(x),其中,

步骤s2.3:参与方b利用第一随机数集zib对根据第二集合生成的第二集合多项式ρb(x)进行乘法运算,得到第一消息表示向量oi,其中,oi=ρb(xi)·zib

步骤s2.4:参与方b再利用第一随机数集zib对生成的第一随机多项式γb(x)进行乘法运算,得到第二消息表示向量ei,ei=γb(xi)·zib

步骤s2.5:参与方b发送消息数据给参与方a,其中,消息数据中包括向量向量和向量

在一种实施方式中,步骤s3具体包括以下子步骤:

步骤s3.1:参与方a产生第三随机数集其中,k(a)是一个随机种子,

步骤s3.2:根据生成的第三随机数集生成第二随机多项式γa(x),其中,

步骤s3.3:根据生成的第二随机多项式γa(x)和第一集合多项式ρa(x),生成加密后的消息数据ci,其中,ci=ei·ρa(xi)+oi·γa(xi);

步骤s3.4:参与方a将加密后的消息数据传输给参与方b,完成一次交互。

在一种实施方式中,步骤s4具体包括以下子步骤:

步骤s4.1:参与方b接收到参与方a发送的加密后的消息数据后,利用(zib)-1得到中间向量其中,向量包括2d+1个元素,yi=ci·(zib)-1

步骤s4.2:参与方b利用(xi,yi)得到集合交集判决多项式其中,

在一种实施方式中,步骤s5具体包括:

步骤s5.1:参与方b根据构造向量中xi的值,判断是否为0;若等于0,将其元素放置在集合i中;否则将元素放置集合i'中;

步骤s5.2:输出集合交集i。

基于同样的发明构思,本发明第二方面提供了基于多项式表示的隐私保护集合交集计算系统,应用于参与请求的双方用户a、b,且参与方a持有第一集合,参与方b持有第二集合,所述系统包括:

参数初始化模块,用于进行参数的初始化设置,参数包括参与方b生成的构造向量、参与方b根据第二集合构造的第二集合多项式以及参与方a根据第一集合构造的第一集合多项式;

消息数据发送模块,用于参与方b向参与方a发送消息数据,其中,消息数据中包括构造向量、第一消息表示向量和第二消息表示向量,其中,第一消息表示向量由参与方b根据第一随机数集和第二集合多项式获得,第二消息表示向量由参与方b根据第一随机数集、基于第二随机数集生成的第一随机多项式获得;

加密后的消息数据返回模块,用于参与方a基于参与方b发送的消息数据向参与方b返回加密后的消息数据,其中,加密后的消息数据由参与方a基于第三随机数集生成第二随机多项式后,再根据第二随机多项式和第一集合多项式生成;

集合交集判决式计算模块,用于进行集合交集判决式计算,包括:参与方b基于第一随机数集和构造向量计算获得集合交集判决多项式;

集合交集计算模块,用于进行集合交集计算,参与方b根据构造向量和集合交集判决多项式,获得集合交集。

在一种实施方式中,参数初始化模块具体用于执行以下子步骤:

步骤s1.1:参与者b生成一个构造向量其中,构造向量包含从fp有限域中随机获取2d+1个非零值xi,其中,d为正整数,

步骤s1.2:参与者a根据第一集合sa构造第一集合多项式ρa(x),其中,(a1,a2,...,an)表示集合sa的元素;

步骤s1.3:参与者b根据第二集合sb构造第二集合多项式ρb(x),其中,(b1,b2,...,bn)表示集合sb的元素。

基于同样的发明构思,本发明第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被执行时实现第一方面的所述的方法。

基于同样的发明构思,本发明第四方面提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面的所述的方法。

本发明相比现有技术,具有如下的优点和有益效果:

本发明提供的交集计算方法,涉及到两个参与者(参与者a和b,将参与者b作为发起通话者,a作为回应者),参与者双方含有自己属性的集合(第一集合和第二集合),双方的属性集合不被对方获取,参与者双方通过安全多方计算,得到集合交集,进而获取双方共有属性。此方法利用多项式的性质进行计算,首先,参与者双方进行初始化;发起通话方结合随机数构成的多项式,加密自己的属性集合发送给回应者a;回应者a接受数据信息同样利用随机数构成的多项式,再次加密参与者双方数据发送给a;通过安全双方计算,获取集合交集。利用多项式的性质,基于多项式表示的隐私保护集合交集计算方法可以使用在多方数据安全通信。该方法中,交集计算复杂程度高,难以计算,加大了破解的难度,同时,随机数构造的多项式能够进一步提供可靠的安全性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的一种基于多项式表示的隐私保护集合交集计算方法的流程图;

图2为图1中所示方法的具体应用示意图;

图3为本发明实施例的一种基于多项式表示的隐私保护集合交集计算系统的功能模块的结构框图;

图4为本发明实施例的一种计算机可读存储介质的结构框图;

图5为本发明实施例的一种计算机设备的结构框图。

具体实施方式

本发明提供了一种基于多项式表示的隐私保护集合交集计算方法与系统,从而达到加大破解难度,提高安全性的技术效果。

为了达到上述技术效果,本发明的总体思路如下:

本发明公开了一种基于多项式表示的隐私保护集合交集计算方法与系统,此方法涉及到两个参与者,分别为发起通话者b和回应者a;参与者双方含有自己属性的集合,双方的属性集合不被对方获取,参与者双方通过安全多方计算,得到集合交集,进而获取双方共有属性。此方法利用多项式的性质进行计算,首先,参与者双方进行初始化;发起通话方结合随机数构成的多项式,加密自己的属性集合发送给回应者a;回应者a接受数据信息同样利用随机数构成的多项式,再次加密参与者双方数据发送给a;通过安全双方计算,获取集合交集。利用多项式的性质,基于多项式表示的隐私保护集合交集计算方法可以使用在多方数据安全通信。此方法,计算复杂程度高,难以计算;同时,随机数构造的多项式能够提供可靠的安全性。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

本发明提供了一种基于多项式表示的隐私保护集合交集计算方法,应用于参与请求的双方用户a、b,且参与方a持有第一集合,参与方b持有第二集合,请参见图1,该方法包括以下步骤:

首先执行步骤s1:参数的初始化设置,参数包括参与方b生成的构造向量、参与方b根据第二集合构造的第二集合多项式以及参与方a根据第一集合构造的第一集合多项式。

具体来说,构造向量由会话发起方构造,在本实施方式中,将参与方b作为会话发起方,当然,在其他实施方式中,可以将参与方a作为会话发起方。

具体地,步骤s1具体包括以下子步骤:

步骤s1.1:参与者b生成一个构造向量其中,构造向量包含从fp有限域中随机获取2d+1个非零值xi,其中,d为正整数,

步骤s1.2:参与者a根据第一集合sa构造第一集合多项式ρa(x),其中,(a1,a2,...,an)表示集合sa的元素;

步骤s1.3:参与者b根据第二集合sb构造第二集合多项式ρb(x),其中,(b1,b2,...,bn)表示集合sb的元素。

具体来说,参与者b为会话的发起方,会构造一个向量用于后续的集合交集的计算。然后,参与者a和b分别利用自身的属性集合,构造出第一集合多项式和第二集合多项式。

然后执行步骤s2:参与方b向参与方a发送消息数据,其中,消息数据中包括构造向量、第一消息表示向量和第二消息表示向量,其中,第一消息表示向量由参与方b根据第一随机数集和第二集合多项式获得,第二消息表示向量由参与方b根据第一随机数集、基于第二随机数集生成的第一随机多项式获得。

具体地,步骤s2的具体包括以下子步骤:

步骤s2.1:参与方b产生第一随机数集zib,其中,k(i)是一个随机种子;

步骤s2.2:参与方b产生第二随机数集rjb,其中,k(b)是一个随机种子,然后根据生成的第二随机数集rjb,生成第一随机多项式γb(x),其中,

步骤s2.3:参与方b利用第一随机数集zib,对根据第二集合生成的第二集合多项式ρb(x)进行乘法运算,得到第一消息表示向量oi,其中,oi=ρb(xi)·zib

步骤s2.4:参与方b再利用第一随机数集zib对生成的第一随机多项式γb(x)进行乘法运算,得到第二消息表示向量ei,ei=γb(xi)·zib

步骤s2.5:参与方b发送消息数据给参与方a,其中,消息数据中包括向量向量和向量

具体来说,第一随机多项式为一个d次随机多项式,主要作用是为了混淆集合多项式ρb(x),从而达到数据传输保密的效果。

接着执行步骤s3:参与方a基于参与方b发送的消息数据向参与方b返回加密后的消息数据,其中,加密后的消息数据由参与方a基于第三随机数集生成第二随机多项式后,再根据第二随机多项式和第一集合多项式生成。

具体地,步骤s3具体包括以下子步骤:

步骤s3.1:参与方a产生第三随机数集其中,k(a)是一个随机种子,

步骤s3.2:根据生成的第三随机数集生成第二随机多项式γa(x),其中,

步骤s3.3:根据生成的第二随机多项式γa(x)和第一集合多项式ρa(x),生成加密后的消息数据ci,其中,ci=ei·ρa(xi)+oi·γa(xi);

步骤s3.4:参与方a将加密后的消息数据传输给参与方b,完成一次交互。

具体来说,第二随机多项式为一个d次随机多项式,主要作用是为了混淆集合多项式ρa(x),从而生成密文消息,达到数据传输保密的效果。

接下来执行步骤s4:集合交集判决式计算,包括:参与方b基于第一随机数集和构造向量计算获得集合交集判决多项式。

具体地,步骤s4具体包括以下子步骤:

步骤s4.1:参与方b接收到参与方a发送的加密后的消息数据后,利用(zib)-1得到中间向量其中,向量包括2d+1个元素,yi=ci·(zib)-1

步骤s4.2:参与方b利用(xi,yi)得到集合交集判决多项式其中,

具体来说,本发明中的向量包括构造向量中间向量和第一消息表示向量和第二消息表示向量其中,构造向量中间向量的主要作用是求出集合交集,第一消息表示向量和第二消息表示向量是对会话发起者发送的消息数据的表示。

接着执行步骤s5:集合交集计算,参与方b根据构造向量和集合交集判决多项式,获得集合交集。

具体地,步骤s5.1:参与方b根据构造向量中xi的值,判断是否为0;若等于0,将其元素放置在集合i中;否则将元素放置集合i'中;

步骤s5.2:输出集合交集i。

为了更清楚地说明本发明提供的集合交集的计算方法,下面通过一个具体的示例予以说明,请参见图2,a和b分别表示响应方和发起方,参与者a持有a集合、参与者b持有b集合,集合多项式ρa(x)表示集合a中的集合元素,集合多项式ρb(x)表示集合b中的集合元素,其中二者的交互过程详见图2。

总体来说,本发明提供的集合交集的计算方法,可以通过结合交集的计算使得请求双方进行验证和交互,提高了安全性。

本发明是可以通过具体的推到过程证明来该方法的完整性和正确性的,并且此方法是可以充分利用的。此方法既能保证参与双方获取想要的信息,也能保证各自数据不被泄露。这种保证双方数据不被泄露的前提下,计算出参与双方数据集合的交集,参与双方只能得到两者的交集。相对传统的隐私保护方法,基于多项式表示的隐私保护集合交集计算方法,对于还原多项式,求出多项式的系数在一定程度是不可行的,本发明实现了可操作性和可行性,另外通过随机数构造多项式进一步增加了该方法安全性。

基于同一发明构思,本申请还提供了与实施例一中的一种基于多项式表示的隐私保护集合交集计算方法对应的系统,详见实施例二。

实施例二

本实施例提供了一种基于多项式表示的隐私保护集合交集计算系统,基于多项式表示的隐私保护集合交集计算系统,应用于参与请求的双方用户a、b,且参与方a持有第一集合,参与方b持有第二集合,请参见图3,所述系统包括:

参数初始化模块301,用于进行参数的初始化设置,参数包括参与方b生成的构造向量、参与方b根据第二集合构造的第二集合多项式以及参与方a根据第一集合构造的第一集合多项式;

消息数据发送模块302,用于参与方b向参与方a发送消息数据,其中,消息数据中包括构造向量、第一消息表示向量和第二消息表示向量,其中,第一消息表示向量由参与方b根据第一随机数集和第二集合多项式获得,第二消息表示向量由参与方b根据第一随机数集、基于第二随机数集生成的第一随机多项式获得;

加密后的消息数据返回模块303,用于参与方a基于参与方b发送的消息数据向参与方b返回加密后的消息数据,其中,加密后的消息数据由参与方a基于第三随机数集生成第二随机多项式后,再根据第二随机多项式和第一集合多项式生成;

集合交集判决式计算模块304,用于进行集合交集判决式计算,包括:参与方b基于第一随机数集和构造向量计算获得集合交集判决多项式;

集合交集计算模块305,用于进行集合交集计算,参与方b根据构造向量和集合交集判决多项式,获得集合交集。

在一种实施方式中,参数初始化模块301具体用于执行以下子步骤:

步骤s1.1:参与者b生成一个构造向量其中,构造向量包含从fp有限域中随机获取2d+1个非零值xi,其中,d为正整数,

步骤s1.2:参与者a根据第一集合sa构造第一集合多项式ρa(x),其中,(a1,a2,...,an)表示集合sa的元素;

步骤s1.3:参与者b根据第二集合sb构造第二集合多项式ρb(x),其中,(b1,b2,...,bn)表示集合sb的元素。

在一种实施方式中,消息数据发送模块302具体用于执行以下子步骤:

步骤s2.1:参与方b产生第一随机数集zib,其中,k(i)是一个随机种子;

步骤s2.2:参与方b产生第二随机数集ejb,其中,k(b)是一个随机种子,然后根据生成的第二随机数集rjb生成第一随机多项式γb(x),其中,

步骤s2.3:参与方b利用第一随机数集zib对根据第二集合生成的第二集合多项式ρb(x)进行乘法运算,得到第一消息表示向量oi,其中,oi=ρb(xi)·zib

步骤s2.4:参与方b再利用第一随机数集zib对生成的第一随机多项式γb(x)进行乘法运算,得到第二消息表示向量ei,ei=γb(xi)·zib

步骤s2.5:参与方b发送消息数据给参与方a,其中,消息数据中包括向量向量和向量

在一种实施方式中,加密后的消息数据返回模块303具体用于执行以下子步骤:

步骤s3.1:参与方a产生第三随机数集其中,k(a)是一个随机种子,

步骤s3.2:根据生成的第三随机数集生成第二随机多项式γa(x),其中,

步骤s3.3:根据生成的第二随机多项式γa(x)和第一集合多项式ρa(x),生成加密后的消息数据ci,其中,ci=ei·ρa(xi)+oi·γa(xi);

步骤s3.4:参与方a将加密后的消息数据传输给参与方b,完成一次交互。

在一种实施方式中,集合交集判决式计算模块304具体用于执行以下子步骤:

步骤s4.1:参与方b接收到参与方a发送的加密后的消息数据后,利用(zib)-1得到中间向量其中,向量包括2d+1个元素,yi=ci·(zib)-1

步骤s4.2:参与方b利用(xi,yi)得到集合交集判决多项式其中,

在一种实施方式中,集合交集计算模块305具体用于执行以下子步骤:

步骤s5.1:参与方b根据构造向量中xi的值,判断是否为0;若等于0,将其元素放置在集合i中;否则将元素放置集合i'中;

步骤s5.2:输出集合交集i。

由于本发明实施例二所介绍的系统,为实施本发明实施例一基于多项式表示的隐私保护集合交集计算方法所采用的系统,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该系统的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的系统都属于本发明所欲保护的范围。

实施例三

基于同一发明构思,本申请还提供了一种计算机可读存储介质400,请参见图4,其上存储有计算机程序411,该程序被执行时实现实施例一中的方法。

由于本发明实施例三所介绍的计算机可读存储介质,为实施本发明实施例一中基于多项式表示的隐私保护集合交集计算所采用的计算机可读存储介质,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机可读存储介质的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的计算机可读存储介质都属于本发明所欲保护的范围。

实施例四

基于同一发明构思,本申请还提供了一种计算机设备,请参见图5,包括存储器501、处理器502及存储在存储器上并可在处理器上运行的计算机程序503,所述处理器执行所述程序时实现实施例一中所述的方法。

由于本发明实施例四所介绍的计算机设备,为实施本发明实施例一中基于多项式表示的隐私保护集合交集计算方法所采用的计算机设备,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机设备的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的计算机设备都属于本发明所欲保护的范围。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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