一种基于不经意伪随机秘密共享的超阈值多方隐私集合求交方法

文档序号:31053904发布日期:2022-08-06 10:12阅读:518来源:国知局
一种基于不经意伪随机秘密共享的超阈值多方隐私集合求交方法

1.本发明属于大数据安全领域中的隐私计算安全领域,具体涉及一种基于不经意伪随机秘密共享的超阈值多方隐私集合求交方法。


背景技术:

2.随着互联网大数据时代的到来,数据的产生和存储呈分布式特性。在挖掘数据潜在价值的过程中往往会造成数据隐私泄露等问题。因此实现数据可用不可见,解决数据安全和隐私保护问题迫在眉睫。隐私集合交集(private set intersection,psi)是实现数据隐私保护的一种重要挖掘技术,其允许参与方各自输入私有集合,共同计算集合交集,且不泄露交集以外的其它信息。
3.两方psi协议是一个被广泛研究的隐私计算问题,其构造方法大致可分为基于公钥加密安全框架、基于混淆电路安全框架和基于不经意传输安全框架。目前已实际部署于应用场景中的两方psi协议均采用基于不经意传输安全框架的不经意伪随机函数(oblivious pseudo-random function,oprf)密码学组件实现,因为其在计算复杂度和通信复杂度中表现最优,例如隐私联系人查找,在线广告曝光效率,新冠接触者追踪等。
4.多方psi协议只存在少量的研究,由于通信轮数多、计算复杂度高、参与方合谋等问题导致多方psi协议未能实际部署于应用场景中。现有的多方psi协议中通过星型网络结构增加指定方通信轮数,减少其它参与方通信轮数的方法提高通信效率。通过不经意可编程伪随机函数(oblivious programmable pseudo-random function,opprf)和零共享解决多方合谋问题。
5.超阈值多方psi(over-threshold multi-party psi,ot-mp-psi)是多方psi问题的一个变体。ot-mp-psi具有很多的实际应用场景,例如网络操作中心协作识别常见威胁、药店协作识别购买同一药物危害个人健康等等。kissner等人首次提出该问题,并采用多项式插值及公钥加密安全框架实现,但其通信复杂度随参与方个数呈三次方增长,计算复杂度在公钥计算上呈指数增长。mahdavi等人首先提出可采用现有的多方psi协议实现ot-mp-psi问题,但需要执行次多方psi协议,意味着参与方之间要执行次opprf操作及通信,其在实际部署时也是无法接受的。因此mahdavi等人提出基于公钥加密的oprf组件结合shamir秘密共享(secret sharing,ss)组件构建安全且具有(t,n)重构属性的新密码学组件——不经意伪随机秘密共享(oblivious pseudo-random secret sharing,opr-ss)。密钥持有者通过opr-ss组件为参与方的每个元素在公钥的指数上进行(t,n)零共享,保证密钥持有者不知道元素值且对共享值无法区分。重构方对接收到的集合元素进行(t,n)重构,如果多项式插值结果为0则该元素至少在t个参与方中拥有。基于opr-ss的ot-mp-psi协议具有高效的通信轮数o(1)和通信复杂度o(nmtk),但其计算复杂度仍呈指数增长,且计算过程在公钥指数上进行。
6.通过现有的技术分析,我们可以明确存在以下问题:
7.(1)现有ot-mp-psi协议基于公钥加密安全框架构键,其计算过程在公钥指数上计算且呈指数增长。
8.(2)ot-mp-psi问题要求t个参与方拥有该元素即可恢复元素值,现有密码学组件无法高效完成该功能。
9.为解决以上问题,本发明提出的oppr-ss协议可安全高效的实现ot-mp-psi问题,其通信轮数、通信复杂度、计算复杂度相较于之前的研究均有提升。


技术实现要素:

10.本发明提供一种基于不经意伪随机秘密共享的超阈值多方隐私集合求交方法,其目的在于,涉及安全多方计算框架下的一个特定应用问题:超阈值多方隐私集合求交(over-threshold multi-party private set intersection,ot-mp-psi)。ot-mp-psi是指n个参与方共同计算至少t(t《=n)个参与方拥有共同元素的阈值交集集合,并且保证拥有该元素的参与方才能知晓是否属于阈值交集,对于其它信息一无所知。本发明基于不经意可编程伪随机函数(oblivious programmable pseudo-random function,opprf)和秘密共享(secret sharing,ss)构建新密码学组件——不经意可编程伪随机秘密共享(oblivious rrogrammable pseudo-random secret sharing,oppr-ss),并利用该组件解决ot-mp-psi问题。是一种基于oppr-ss的超阈值隐私集合交集计算方法,可以安全高效快速的实现n个参与方共同计算至少t(t《=n)个参与方拥有共同元素的阈值交集集合,并且保证拥有该元素的参与方才能知晓是否属于阈值集合交集,对于其它信息一无所知。本发明设计的oppr-ss协议可作为单独的密码学组件使用于其它场景。本发明还考虑到参与方因计算能力或通信能力是否受限,设计了ot-mp-psi协议。
11.本发明通过以下技术方案实现上述问题:
12.一种基于不经意伪随机秘密共享的超阈值多方隐私集合求交方法,基于opprf组件和ss组件设计不经意可编程伪随机秘密共享(oppr-ss)协议,该协议结构如下:
13.参数:发送方s,拥有集合y:{y1,...,yn}。接收方r,拥有元素x。oprf函数,okvs函数:fk(
·
),j∈[1,n];
[0014]
输入:接收方输入元素x。
[0015]
优选地,所述不经意可编程伪随机秘密共享协议,英文简称为oppr-ss协议。
[0016]
优选地,所述设计不经意可编程伪随机秘密共享(oppr-ss)协议,包括如下阶段:
[0017]
s1.oprf阶段:
[0018]
接收方r与发送方s执行一次oprf函数:
[0019]
s11.接收方输出oprf值:fk(x);
[0020]
s12.发送方输出oprf函数密钥:k;
[0021]
s2.秘密共享-共享阶段(ss-share):
[0022]
发送方s本地编程元素的秘密共享值:
[0023]
s21.发送方s为其每个元素随机生成t-1个随机值:
[0024]
s22.发送方s为其每个元素构建一个常数项为0的多项式p:
[0025]
s3.hash-to-bin阶段:
[0026]
s31.发送方s使用k个hash函数{h1,...,hk}将集合元素映射到具有b个桶的hash表t1中的k个位置。桶长为b,宽为a;
[0027]
s32.接收方r使用相同的k个hash函数{h1,...,hk}将集合元素通过布谷鸟hash算法映射到布谷鸟hash表t2中;
[0028]
s4.okvs阶段:
[0029]
发送方s基于paxos(probe-and-xor of strings,paxos)为表t1的b个桶分别编码键值对生成不经意键值对数据结构s1c(oblivious key-value stores,okvs),c∈b:
[0030]
s41.发送方s将b个okvs发送给接收方r;
[0031]
s42.输出:接收方r通过布谷鸟hash表t2找到元素x的对应行okvss1c,然后输入x到okvss1c输出s1c(x)。
[0032]
优选地,所述设计不经意可编程伪随机秘密共享协议,还包括正确性分析阶段:
[0033]
如果x=yi,则接收方得到具有(t,n)重构属性的编程值。
[0034]
优选地,所述设计不经意可编程伪随机秘密共享协议,还包括安全性分析阶段:
[0035]
oppr-ss的安全性由oprf组件保证,接收方r输入元素x,由oprf组件保证发送方s不知道元素x的任何信息,发送方s编程键值对为okvs s1c,并将s1c发送给接收方r,由oprf组件保证接收方r不知道密钥k的任何信息,以及编程值中的不涉及元素的任何信息,因此接收方r不能通过s1c推导出发送方s集合元素的任何信息。
[0036]
优选地,通过oppr-ss组件可轻松地构建ot-mp-psi协议,所述ot-mp-psi协议分为两个阶段:
[0037]
(1)共享生成阶段:参与方两两执行oppr-ss协议:假设pi(i∈m)为发送方,pj(j∈m)为接收方,发送方pi为其集合中的每个元素随机生成t-1个随机数,用于构建t阶常数项为0的多项式p以实现所有参与方的元素秘密共享值生成,参与方pj输入集合元素参与方pi输入okvs(k∈n,k
i,j
为参与方pi与pj执行oppr-ss协议时所选择的密钥),参与方pj输出其中m为参与方数量,n为集合大小;
[0038]
(2)重构阶段:参与方pj(j∈m)首先将每个元素收到的m个okvs值相乘得到参与方pj(j∈m)与指定方p1执行opprf协议:参与方pj输入okvs指定方p1输入元素xk,p1和m个参与方执行opprf协议,对于每个元素xk都将收到m个okvs值,对每个元素执行次多项式插值,如果插值结果为0,则xk是超阈值交集元素,且只将该信息返回给拥有该元素的参与方。
[0039]
本发明技术原理:
[0040]
本发明首先考虑到现有的密码学组件是否能解决ot-mp-psi问题。现有的ot-mp-psi协议中,采用基于公钥的oprf以及在其指数上进行秘密共享,其计算复杂度过高。两方psi协议中基于不经意传输(oblivious transfer,ot)的oprf组件相较于基于公钥的oprf
组件具有更佳的效率。但基于ot的oprf组件采用的是对称密钥,其在指数上进行秘密共享是不安全的,且由于多方之间不可避免的通信轮数和参与方合谋等问题,导致不能直接使用oprf组件构建。前人将oprf组件扩展为可编程的伪随机函数(opprf)可解决多方通信轮数多和参与方合谋问题。但opprf组件无法实现编程值具有(t,n)重构属性,因此本发明将oprrf组件和ss组件结合构建新秘密学组件oppr-ss,其能安全且高效的实现元素的(t,n)共享。通过oppr-ss组件可轻松的构建ot-mp-psi协议。
[0041]
本发明有益效果:
[0042]
(1)现有的ot-mp-psi协议基于公钥构建且秘密共享在指数上进行。本发明仅使用对称密钥和秘密共享在常数上进行即可构建,在通信轮数和通信复杂度一致的情况下具有更优的计算效率。
[0043]
(2)本发明构建的oppr-ss组件可作为单独的新密码学组件,其可完成具有安全属性的特定输入产生(t,n)重构属性的特定输出。
附图说明
[0044]
图1为本发明oppr-ss组件的算法流程图。
[0045]
图2为本发明ot-mp-psi协议的算法流程图。
[0046]
图3为本发明的超阈值多方隐私集合求交方法整体流程示意图。
具体实施方式
[0047]
下面结合附图对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
[0048]
实施例1:
[0049]
如图1、3所示,一种基于不经意伪随机秘密共享的超阈值多方隐私集合求交方法,基于opprf组件和ss组件设计不经意可编程伪随机秘密共享(oppr-ss)协议,该协议结构如下:
[0050]
参数:发送方s,拥有集合y:{y1,...,yn}。接收方r,拥有元素x。oprf函数,okvs函数:fk(
·
),j∈[1,n]
[0051]
输入:接收方输入元素x。
[0052]
不经意可编程伪随机秘密共享协议,英文简称为oppr-ss协议。
[0053]
设计不经意可编程伪随机秘密共享(oppr-ss)协议,包括如下阶段:
[0054]
s1.oprf阶段:
[0055]
接收方r与发送方s执行一次oprf函数:
[0056]
s11.接收方输出oprf值:fk(x);
[0057]
s12.发送方输出oprf函数密钥:k;
[0058]
s2.秘密共享-共享阶段(ss-share):
[0059]
发送方s本地编程元素的秘密共享值:
[0060]
s21.发送方s为其每个元素随机生成t-1个随机值:
[0061]
s22.发送方s为其每个元素构建一个常数项为0的多项式p:
[0062]
s3.hash-to-bin阶段:
[0063]
s31.发送方s使用k个hash函数{h1,...,hk}将集合元素映射到具有b个桶的hash表t1中的k个位置。桶长为b,宽为a;
[0064]
s32.接收方r使用相同的k个hash函数{h1,...,hk}将集合元素通过布谷鸟hash算法映射到布谷鸟hash表t2中;
[0065]
s4.okvs阶段:
[0066]
发送方s基于paxos(probe-and-xor of strings,paxos)为表t1的b个桶分别编码键值对生成不经意键值对数据结构s1c(oblivious key-value stores,okvs),c∈b:
[0067]
s41.发送方s将b个okvs发送给接收方r;
[0068]
s42.输出:接收方r通过布谷鸟hash表t2找到元素x的对应行okvs s1c,然后输入x到okvs s1c输出s1c(x)。
[0069]
设计不经意可编程伪随机秘密共享协议,还包括正确性分析阶段:
[0070]
如果x=yi,则接收方得到具有(t,n)重构属性的编程值。
[0071]
设计不经意可编程伪随机秘密共享协议,还包括安全性分析阶段:
[0072]
oppr-ss的安全性由oprf组件保证,接收方r输入元素x,由oprf组件保证发送方s不知道元素x的任何信息,发送方s编程键值对为okvs s1c,并将s1c发送给接收方r,由oprf组件保证接收方r不知道密钥k的任何信息,以及编程值中的不涉及元素的任何信息,因此接收方r不能通过s1c推导出发送方s集合元素的任何信息。
[0073]
实施例2:
[0074]
如图2、3所示,通过oppr-ss组件可轻松地构建ot-mp-psi协议,本实施例通过本发明技术进行简单构建即可实现,本实施例提供的ot-mp-psi协议可分为两个阶段:
[0075]
(1)共享生成阶段:参与方两两执行oppr-ss协议:假设pi(i∈m)为发送方,pj(j∈m)为接收方。发送方pi为其集合中的每个元素随机生成t-1个随机数,用于构建t阶常数项为0的多项式p以实现所有参与方的元素秘密共享值生成。参与方pj输入集合元素参与方pi输入okvs(k∈n,k
i,j
为参与方pi与pj执行oppr-ss协议时所选择的密钥)。参与方pj输出其中m为参与方数量,n为集合大小。
[0076]
(2)重构阶段:参与方pj(j∈m)首先将每个元素收到的m个okvs值相乘得到参与方pj(j∈m)与指定方p1执行opprf协议:参与方pj输入okvs指定方p1输入元素xk。p1和m个参与方执行opprf协议,对于每个元素xk都将收到m个okvs值。对每个元素执行次多项式插值,如果插值结果为0,则xk是超阈值交集元素,且只将该信息返回给拥有该元素的参与方。
[0077]
具体实现过程包括如下参数和步骤:
[0078]
参数:参与方pi(i∈m),m为参与方个数,参与方pi拥有集合n为集合大小,元素域f。
[0079]
共享阶段:
[0080]
输入:发送方pi无输入,接收方pj输入集合元素:输入集合元素:
[0081]
oppr-ss实例生成:
[0082]-发送方pi为其每个元素选择t-1个随机数构建编程值
[0083]-发送方pi与接收方pj执行m个oprf实例,发送方pi输出密钥k
i,j
,接收方pj输出m个oprf值
[0084]-发送方pi本地计算oprf值计算编程值
[0085]-发送方pi本地okvs编码得到不经意键值对数据结构s
i,j
,并将其数据结构发送给接收方pj。
[0086]-接收方pj本地计算oppr-ss值
[0087]-接收方pj将共享阶段每个元素接收的m个oppr-ss值相乘得到
[0088]
重构阶段:
[0089]
输入:发送方pi无输入,接收方p1输入元素域f,i∈[2,m]
[0090]
opprf实例生成:
[0091]-接收方p1和发送方pi执行|f|次oprf实例,发送方pi输出密钥ki,接收方p1输出f个oprf值
[0092]-发送方pi本地okvs编码得到不经意键值对数据结构si,并将其数据结构发送给接收方p1。
[0093]-p1本地计算opprf值
[0094]
超阈值交集计算:
[0095]-p1本地计算
[0096]
for xk,k∈f:
[0097]
for m个opprf值选择t个:
[0098]
if t个相等:
[0099]
多项式插值
[0100]
xk为超阈值交集元素。
[0101]
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其
等效物界定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1