本发明涉及数据挖掘和图像处理技术领域,尤其涉及一种基于同态加密和多项式计算的子图匹配方法。
背景技术:
图作为一种数据结构能够简洁有力地刻画出普遍事物间的联系,因此基于图的数据挖掘与管理技术无论在学术研究还是工业应用上都享有重要的地位。这其中最基本的任务是如何在图数据集中找到给定的查询图,也就是子图匹配问题。对于正在蓬勃发展的图数据库,生物信息学和社会网络分析等领域而言,一个高效的子图匹配算法的重要性不言而喻。子图匹配的数学基础是图论中经典的子图同构问题,,一个著名的np问题。可想而知,设计高效的子图匹配算法面临着相当巨大大的挑战。目前,子图匹配算法的研究工作主要有两个问题。其一是针对一张边数较多的图如何进行有效的过滤,其二是如何选择顶点搜索顺序来加快子图同构搜索的速度。特别是后者是近年来子图匹配研究的焦点。
子图同构是精确模式匹配的一种重要且非常一般的形式。子图同构是许多重要图形问题的常见推广,包括找到哈密顿路径、集团、匹配、周长和最短路径。子图同构的变化也被用来模拟诸如分子结构比较,集成电路测试,微程序控制器优化,机器人运动规划,语义网络检索,多面体对象识别等各种实际问题。
在图论中,子图同构问题定义为,给定两个图g和h,确定是否存在子图g′∈g,使得g′与h同构。子图同构问题已被广泛研究。由于图形数据结构已广泛应用于工业的各个领域,因此该问题可用在许多应用程序中,可以使用图形数据结构存储和管理信息,并且有一组丰富的图形算法可用于解决不同的问题。可用于解决不同应用领域中的许多计算任务,例如化学信息学,计算机视觉领域和数据挖掘领域。
在模式匹配研究中,在数据集成(dataintegration)和服务互操作性(serviceinteroperability)研究中,模式匹配(schemamatching)起着非常重要的作用。它主要用来识别元数据(metadata)或模型的对应关系。例如,国内外很多大型的比较购物网站(comparisonshoppingwebsite),如雅虎、shopping、bizrate、一淘网和比购网等,可以从多个独立的在线商店(onlinestore)中整合商品信息,为用户提供价格比较和评价分析功能。每一个独立在线商店的商品目录以及层次关系都可以用图结构表示,图匹配算法可以用来解决对不同在线商店进行信息整合时出现的模式匹配问题。在医学领域,脑电图信号记录了神经元(neuron)的活动过程,用来描述快速的大脑活动,也可以转化为图结构。我们从脑电波的时频图(time-frequencymap)中提取能量脉冲,将其表示为图的顶点。若某个脉冲与前一个或下一个脉冲的时间间隔在一定范围内,就用边将它们连接起来。对这样的两个图进行匹配,可以比较脑电图信号在延迟性(latency)、频率(fre-quency)、能量(energy)以及活跃区域(activatedareas)等方面的差异,进而比较两个大脑皮层的活动。在图像和视频领域中,每个图像或者视频中的每个帧(frame)都可以用图结构表示。在图像中,用户感兴趣的对象可以用边界框(boundingbox)表示。对象之间有多种空间关系(spatialrelation),如重叠(overlap)、包含(contain)和相接(meet)等。在二维空间上,这种空间关系高达169种。对于每个图像,我们可以构建一个区域邻接图(regionadjacencygraph,rag),图中每个点表示一个对象,边表示对象间的空间关系。对两个区域邻接图进行匹配,可以帮助我们提取多个图片或一系列视频镜头集合中的相似对象。
技术实现要素:
本发明要解决的技术问题是针对上述现有技术的不足,提供一种用于隐私保护的子图匹配方法,用于解决子图同构问题中的子图匹配问题。
为解决上述技术问题,本发明所采取的技术方案是:一种基于同态加密和多项式计算的子图匹配方法,包括两个角色,验证者pa和证明者pb,以及验证者pa的图ga和证明者pb的图gb,具体包括以下步骤:
步骤1、验证者pa运行密钥生成算法(pk,sk)←keygen(1k)生成密钥,生成的密钥包括公钥和私钥,验证者pa将公钥发送给证明者pb,验证者pa将自己的图的每个顶点标记为域<v中的值;验证者pa的paillier密码系统的公钥包含一个大数n,要求n能够满足使得从明文域均匀生成的元素在域<v中表示元素的概率可忽略不计;
步骤2、验证者pa构造多项式p(x),并使用paillier密码系统加密多项式的系数获得密文,然后将密文发送给证明者pb,具体方法为:
步骤2.1、验证者pa构造多项式p(x),多项式定义为
步骤2.2、验证者pa使用paillier密码系统加密c中的所有元素,并获得密文
步骤3、证明者pb使用paillier密码系统的同态性质,求多项式p(x)的值,并将其加密为单个密文,然后将密文发送给验证者pa,具体方法为:
步骤3.1、在接收到
步骤3.2、证明者pb同态地将所有密文
步骤4、验证者pa运行paillier密码系统的解密函数
步骤5、验证者pa构造自己持有的图的度为非零的所有顶点集合v′a,并构造一组多项式对,之后通过paillier密码系统加密指定条件下的v′a中的顶点和多项式的系数,最后将密文发送给证明者pb,具体方法为:
步骤5.1、验证者pa构造集合v′a,v′a满足顶点ai的邻居集合
步骤5.2、对于每个顶点a′j∈v′a,j=1,2,…,g,验证者pa构造一组多项式对{(f1(x),g1(y)),…,(fg(x),gg(y))},fj(x)被定义为fj(x)=(x-a′j),gj(y)被定义为
步骤5.3、验证者pa在paillier密码系统下,加密1≤i′≤g条件下的a′i′和βi′,加密后得到
步骤6、验证者pa构造包含满足
步骤7、证明者pb构造集合v′b,并计算多项式fi(b′j)和gi(bk),然后通过同态加密获得单个密文,将密文整合到集合中生成v′b集合中元素数量的密文集合,最后将密文集合发送给验证者pa,具体方法为:
步骤7.1、在接收
步骤7.2、对于所有i′∈[1,g]和所有k∈[1,h],证明者pb同态地计算多项式fi′(b′k),并且将结果同态地乘以非零随机数γ;然后,证明者pb选取所有满足bk′∈n(b′k)的顶点作为输入,同态地计算多项式gi′(bk′),并将每个结果同态地乘以非零随机数γ;然后,证明者pb将所有先前的结果同态地加在一起并获得单个密文
步骤7.3、证明者pb将所有的
步骤8、如果步骤4中的r不为0,则证明者pb的图不是验证者pa的子图,即
采用上述技术方案所产生的有益效果在于:本发明提供的一种基于同态加密和多项式计算的子图匹配方法,参与方法的双方是验证者pa和证明者pb,双方都拥有隐私的图结构数据,在联合执行方法之后,验证者pa只会知道证明者pb的图是否是验证者pa图的子图。该方法基于paillier密码系统和不经意的多项式计算,保证了数据安全,并且保证了数据的隐私性。在子图匹配期间,任意一方都不会获得有关另一方图数据的有用信息。
附图说明
图1为本发明实施例提供的进行子图匹配的两个角色示意图;
图2为本发明实施例提供的一种基于同态加密和多项式计算的子图匹配方法的流程图;
图3为本发明实施例提供的的paillier加密系统生成公钥和私钥方法的流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本实施例以图1所示的验证者和证明者为例,使用本发明的基于同态加密和多项式计算的子图匹配方法验证证明者的图是否为验证者的子图;
一种基于同态加密和多项式计算的子图匹配方法,如图1所示,包括两个角色,验证者pa和证明者pb,以及验证者pa的图ga和证明者pb的图gb,如图2所示,具体包括以下步骤:
步骤1、验证者pa运行密钥生成算法(pk,sk)←keygen(1k)生成密钥,生成密钥的流程如图3所示,生成的密钥包括公钥和私钥,验证者pa将公钥发送给证明者pb,验证者pa将自己的图的每个顶点标记为域<v中的值;验证者pa的paillier密码系统的公钥包含一个大数n,要求n能够满足使得从明文域均匀生成的元素在域<v中表示元素的概率可忽略不计;
步骤2、验证者pa构造多项式p(x),并使用paillier密码系统加密多项式的系数获得密文,然后将密文发送给证明者pb,具体方法为:
步骤2.1、验证者pa构造多项式p(x),多项式定义为
步骤2.2、验证者pa使用paillier密码系统加密c中的所有元素,并获得密文
步骤3、证明者pb使用paillier密码系统的同态性质,求多项式p(x)的值,并将其加密为单个密文,然后将密文发送给验证者pa,具体方法为:
步骤3.1、在接收到
步骤3.2、证明者pb同态地将所有密文
步骤4、验证者pa运行paillier密码系统的解密函数
步骤5、验证者pa构造自己持有的图的度为非零的所有顶点集合v′a,并构造一组多项式对,之后通过paillier密码系统加密指定条件下的v′a中的顶点和多项式的系数,最后将密文发送给证明者pb,具体方法为:
步骤5.1、验证者pa构造集合v′a,v′a满足顶点ai的邻居集台
步骤5.2、对于每个顶点a′j∈v′a,j=1,2,…,g,验证者pa构造一组多项式对{(f1(x),g1(y)),…,(fg(x),gg(y))},fj(x)被定义为fj(x)=(x-a′j),gj(y)被定义为
步骤5.3、验证者pa在paillier密码系统下,加密1≤i′≤g条件下的a′i′和βi′,加密后得到
步骤6、验证者pa构造包含满足
步骤7、证明者pb构造集合v′b,并计算多项式fi(b′j)和gi(bk),然后通过同态加密获得单个密文,将密文整合到集合中生成v′b集合中元素数量的密文集合,最后将密文集合发送给验证者pa,具体方法为:
步骤7.1、在接收
步骤7.2、对于所有i′∈[1,g]和所有k∈[1,h],证明者pb同态地计算多项式fi′(b′k),并且将结果同态地乘以非零随机数γ;然后,证明者pb选取所有满足bk′∈n(b′k)的顶点作为输入,同态地计算多项式gi′(bk′),并将每个结果同态地乘以非零随机数γ;然后,证明者pb将所有先前的结果同态地加在一起并获得单个密文
步骤7.3、证明者pb将所有的
步骤8、如果步骤4中的r不为0,则证明者pb的图不是验证者pa的子图,即
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。