用于安全多方计算的私有数据求交集的方法及验证方法技术

技术编号:19938373 阅读:36 留言:0更新日期:2018-12-29 06:34
本发明专利技术提供一种用于安全多方计算的私有数据求交集及验证的方法,包括:被求交集方根据求交集方的私有数据集对应的位数组以及得到该位数组所使用的哈希函数,从自己的私有数据集中过滤出第一集合;求交集方根据被求交集方的私有数据集对应的位数组以及得到被求交集方的私有数据集对应的位数组所使用的哈希函数,从自己的私有数据集中过滤出第二集合;求交集方根据第一集合对应的位数组以及得到第一集合对应的位数组所使用的哈希函数,从自己的私有数据集中过滤出第三集合,作为参与双方私有数据集的交集;以及,根据所述第二集合和第三集合判断被求交集方是否存在作假行为。本发明专利技术的求交集结果准确性较高,并且求交集过程安全高效。

【技术实现步骤摘要】
用于安全多方计算的私有数据求交集的方法及验证方法
本专利技术涉及网络安全领域,更具体地,涉及用于安全多方计算的私有数据求交集的方法,以及对求交集过程中提供的数据的真实性进行验证的方法。
技术介绍
安全多方计算(SMC)是一组互不信任的参与方之间保护隐私的协同计算问题,两方私有数据求交集是SMC的一个重要研究方向,其中涉及两个参与方P1和P2,拥有数量分别为m1和m2的私有数据集M1和M2,每个参与方在数据保密的情况下计算与另一个参与方的私有数据集的交集。目前,两方私有数据求交集广泛应用于:两个安全机构希望在不透露其他嫌疑人信息的情况下求出嫌疑人名单的交集;两家商业公司想对彼此拥有的客户列表进行交集运算从而进行对应的商业活动,但是不泄漏自己的其他客户信息等等。现有的两方私有数据求交集的方法主要利用了BloomFilter(即布隆过滤器)技术,方法包括:想要计算私有数据交集的参与方请求对方的BloomFilter,对方通过加密通信等方式发送其BloomFilter,想要计算私有数据交集的参与方利用对方的BloomFilter过滤自己的私有数据集,从而得出与对方私有数据的交集。其中,每次计算交集都需要求交集方发送请求并且需要被求交集方返回其BloomFilter,这导致数据传输冗余;在求交集时仅进行一次过滤,得到的粗略交集误差比较大,影响了结果的准确性,并且可能削弱参与双方的信任程度以及合作的利益关系;此外,求交集方无法对被求交集方提供的数据的真实性进行验证,这样也会影响结果的准确性。
技术实现思路
为克服上述现有技术中存在的缺陷,根据本专利技术的一个实施例,提供一种用于安全多方计算的私有数据求交集的方法,其中参与双方为求交集方和被求交集方,所述方法包括:步骤11)求交集方经由哈希计算将自己的私有数据集转换成位数组,作为求交集方当前的位数组;步骤12)被求交集方根据所述求交集方当前的位数组以及得到所述求交集方当前的位数组所使用的哈希函数,从自己的私有数据集中过滤出第一集合,并且经由哈希计算将所述第一集合转换成位数组;步骤13)求交集方根据第一集合对应的位数组以及得到所述第一集合对应的位数组所使用的哈希函数,从自己的私有数据集中过滤出第三集合,所述第三集合为参与双方私有数据集的交集。上述方法中,步骤11)还包括:参与双方利用基数统计算法获得用于计算各自的私有数据集的基数的注册器;以及步骤12)包括:步骤121)被求交集方根据所述求交集方当前的位数组以及得到所述求交集方当前的位数组所使用的哈希函数,从自己的私有数据集中过滤出第一集合;步骤122)被求交集方比较参与双方私有数据集交集的基数估计值与所述第一集合的基数,在两者差值在一个预定范围内的情况下,被求交集方经由哈希计算将所述第一集合转换成位数组;其中,根据求交集方和被求交集方各自的注册器计算参与双方私有数据集交集的基数估计值。上述方法中,步骤11)包括:参与双方利用Hyperloglog算法获得用于计算各自的私有数据集的基数的注册器;以及在步骤12)中,计算参与双方私有数据集交集的基数估计值包括:根据求交集方的注册器和被求交集方的注册器构造参与双方私有数据集并集的注册器;由求交集方的注册器得到求交集方的私有数据集的基数,由被求交集方的注册器得到被求交集方的私有数据集的基数,并且由参与双方私有数据集并集的注册器得到参与双方私有数据集并集的基数;根据所述求交集方的私有数据集的基数、所述被求交集方的私有数据集的基数以及所述参与双方私有数据集并集的基数得到参与双方私有数据集交集的基数估计值。上述方法中,步骤11)包括:求交集方使用哈希函数对自己的私有数据集构造布隆过滤器,作为求交集方当前的布隆过滤器;以及步骤12)包括:被求交集方根据构造所述求交集方当前的布隆过滤器所使用的哈希函数对自己的私有数据集中的数据进行哈希计算,根据哈希计算结果查找所述求交集方当前的布隆过滤器中的对应位置,并且根据查找结果判断该数据是否包含在第一集合内。上述方法还可以包括:步骤14)在达到预定的重复次数前,求交集方比较所述参与双方私有数据集交集的基数估计值与所述第三集合的基数,在两者差值在一个预定范围内的情况下,求交集方经由哈希计算将所述第三集合转换成位数组,作为求交集方当前的位数组并且返回步骤12)。上述方法中,步骤11)还包括:参与双方在智能合约中约定各自需要使用的哈希函数,并且将智能合约部署到区块链上;参与双方将各自的注册器注册到区块链并得到全网共识认证,并且求交集方将求交集方当前的位数组注册到区块链并得到全网共识认证。以及,步骤12)还包括:被求交集方将所述第一集合对应的位数组注册到区块链并得到全网共识认证。根据本专利技术的一个实施例,还提供一种私有数据求交集中的数据真实性验证方法,其中求交集方为验证方并且被求交集方为被验证方,所述方法包括:步骤21)求交集方经由哈希计算将自己的私有数据集转换成位数组,作为求交集方当前的位数组;被求交集方经由哈希计算将自己的私有数据集转换成位数组,作为被求交集方当前的位数组;步骤22)求交集方根据所述被求交集方当前的位数组以及得到所述被求交集方当前的位数组所使用的哈希函数,从自己的私有数据集中过滤出第二集合;被求交集方根据所述求交集方当前的位数组以及得到所述求交集方当前的位数组所使用的哈希函数,从自己的私有数据集中过滤出第一集合,并且经由哈希计算将所述第一集合转换成位数组;步骤23)求交集方根据第一集合对应的位数组以及得到所述第一集合对应的位数组所使用的哈希函数,从自己的私有数据集中过滤出第三集合,所述第三集合为参与双方私有数据集的交集;步骤24)根据所述第二集合和第三集合判断被求交集方是否存在作假行为。上述方法中,步骤21)还包括:参与双方利用基数统计算法获得用于计算各自的私有数据集的基数的注册器,创建各自的私有数据集的梅克尔树得到各自的梅克尔根;步骤22)包括:步骤221)求交集方根据所述被求交集方当前的位数组以及得到所述被求交集方当前的位数组所使用的哈希函数,从自己的私有数据集中过滤出第二集合;被求交集方根据所述求交集方当前的位数组以及得到所述求交集方当前的位数组所使用的哈希函数,从自己的私有数据集中过滤出第一集合;步骤222)被求交集方比较参与双方私有数据集交集的基数估计值与所述第一集合的基数,在两者差值在一个预定范围内的情况下,被求交集方经由哈希计算将所述第一集合转换成位数组;其中,根据求交集方和被求交集方各自的注册器计算参与双方私有数据集交集的基数估计值;以及,步骤24)包括:步骤241)求交集方判断所述第二集合是否包含所述第三集合,如果不包含,则执行步骤242),否则执行步骤243);步骤242)求交集方选取属于所述第三集合并且不属于所述第二集合的数据a,将数据a以及数据a的梅克尔路径发送至区块链,由区块链判断被求交集方是否存在作假行为;步骤243)求交集方从所述第三集合中选取一个或多个数据,将所述一个或多个数据中的每个数据经由哈希计算得到的哈希结果发送至区块链,区块链通知被求交集方在规定时间内返回与所述哈希结果对应的数据和该数据的梅克尔路径,如果被求交集方没有在规定时间内返回则区块链判定被求交集方存在作假行为,如果被求交集方在规定时间内本文档来自技高网...

【技术保护点】
1.一种用于安全多方计算的私有数据求交集的方法,其中参与双方为求交集方和被求交集方,所述方法包括:步骤11)求交集方经由哈希计算将自己的私有数据集转换成位数组,作为求交集方当前的位数组;步骤12)被求交集方根据所述求交集方当前的位数组以及得到所述求交集方当前的位数组所使用的哈希函数,从自己的私有数据集中过滤出第一集合,并且经由哈希计算将所述第一集合转换成位数组;步骤13)求交集方根据第一集合对应的位数组以及得到所述第一集合对应的位数组所使用的哈希函数,从自己的私有数据集中过滤出第三集合,所述第三集合为参与双方私有数据集的交集。

【技术特征摘要】
1.一种用于安全多方计算的私有数据求交集的方法,其中参与双方为求交集方和被求交集方,所述方法包括:步骤11)求交集方经由哈希计算将自己的私有数据集转换成位数组,作为求交集方当前的位数组;步骤12)被求交集方根据所述求交集方当前的位数组以及得到所述求交集方当前的位数组所使用的哈希函数,从自己的私有数据集中过滤出第一集合,并且经由哈希计算将所述第一集合转换成位数组;步骤13)求交集方根据第一集合对应的位数组以及得到所述第一集合对应的位数组所使用的哈希函数,从自己的私有数据集中过滤出第三集合,所述第三集合为参与双方私有数据集的交集。2.根据权利要求1所述的方法,其中,步骤11)还包括:参与双方利用基数统计算法获得用于计算各自的私有数据集的基数的注册器;以及步骤12)包括:步骤121)被求交集方根据所述求交集方当前的位数组以及得到所述求交集方当前的位数组所使用的哈希函数,从自己的私有数据集中过滤出第一集合;步骤122)被求交集方比较参与双方私有数据集交集的基数估计值与所述第一集合的基数,在两者差值在一个预定范围内的情况下,被求交集方经由哈希计算将所述第一集合转换成位数组;其中,根据求交集方和被求交集方各自的注册器计算参与双方私有数据集交集的基数估计值。3.根据权利要求2所述的方法,其中,步骤11)包括:参与双方利用Hyperloglog算法获得用于计算各自的私有数据集的基数的注册器;以及在步骤12)中,计算参与双方私有数据集交集的基数估计值包括:根据求交集方的注册器和被求交集方的注册器构造参与双方私有数据集并集的注册器;由求交集方的注册器得到求交集方的私有数据集的基数,由被求交集方的注册器得到被求交集方的私有数据集的基数,并且由参与双方私有数据集并集的注册器得到参与双方私有数据集并集的基数;根据所述求交集方的私有数据集的基数、所述被求交集方的私有数据集的基数以及所述参与双方私有数据集并集的基数得到参与双方私有数据集交集的基数估计值。4.根据权利要求1所述的方法,其中步骤11)包括:求交集方使用哈希函数对自己的私有数据集构造布隆过滤器,作为求交集方当前的布隆过滤器;以及步骤12)包括:被求交集方根据构造所述求交集方当前的布隆过滤器所使用的哈希函数对自己的私有数据集中的数据进行哈希计算,根据哈希计算结果查找所述求交集方当前的布隆过滤器中的对应位置,并且根据查找结果判断该数据是否包含在第一集合内。5.根据权利要求2-4中任一项所述的方法,还包括:步骤14)在达到预定重复次数前,求交集方比较所述参与双方私有数据集交集的基数估计值与所述第三集合的基数,在两者差值在一个预定范围内的情况下,求交集方经由哈希计算将所述第三集合转换成位数组,作为求交集方当前的位数组并且返回步骤12)。6.根据权利要求2-4中任一项所述的方法,其中,步骤11)还包括:参与双方在智能合约中约定各自需要使用的哈希函数,并且将智能合约部署到区块链上;参与双方将各自的注册器注册到区块链并得到全网共识认证,并且求交集方将求交集方当前的位数组注册到区块链并得到全网共识认证;以及步骤12)还包括:被求交集方将所述第一集合对应的位数组注册到区块链并得到全网共识认证。7.一种私有数据求交集中的数据真实性验证方法,其中求交集方为验证方并且被求交集方为被验证方,所述方法包括:步骤21)求交集方经由哈希计算将自己的私有数据集转换成位数组,作为求交集方当前的位数组;被求交集方经由哈希计算将...

【专利技术属性】
技术研发人员:孙毅张珺李康裴奇王鑫
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1