基于可交换弱伪随机函数的隐私集合求并方法及系统

文档序号:29169306发布日期:2022-03-09 04:30阅读:388来源:国知局
基于可交换弱伪随机函数的隐私集合求并方法及系统

1.本发明涉及密码技术领域,特别是涉及基于可交换弱伪随机函数的隐私集合求并方法及系统。


背景技术:

2.本部分的陈述仅仅是提到了与本发明相关的背景技术,并不必然构成现有技术。
3.随着信息技术的飞速发展,当今社会已经进入“大数据”时代。数据已经成为推动整个社会发展的必要的生产要素和生产资料。对数据的采集、管理、交易、分析等业务也正在成长为巨大的新兴市场。发展数字经济面临的首要难题是数据的共享开放,不同系统、不同组织之间出于法律、法规、政策方面的原因和数据隐私保护方面的考虑,数据共享开放程度较低,进而带来了数据孤岛问题——海量的数据相互阻隔,难以进一步融合碰撞释放潜能。因此,如何在隐私保护的前提下实现机密数据的计算,是兼具重大理论和实际意义的问题。
4.隐私计算成为当下突破数据孤岛问题的一个突破口。特别的,隐私计算中的安全多方计算(mpc,secure multi-party computation)作为平衡隐私保护和数据共享的一项关键密码技术,在效率和安全性两方面均具有显著的优势。本发明为安全多方计算中的特例——隐私集合求并(psu,private set union),即参与方各自拥有一组隐私数据,共同计算集合的并集,并且不泄露其他任何信息,特别包括各元素是否属于交集这一信息。隐私集合求并在实践中应用广泛,典型应用举例如下:
5.1.网络风险联合防范。多家机构的网路管理部门拥有各自沉淀的ip黑名单和漏洞列表,利用psu技术,他们可以在不泄漏彼此私有数据的前提下完成ip黑名单和漏洞列表的并集,有效的提升对网络风险的防范。
6.2.隐私数据库全连接。例如多家汽车销售公司为打造联合销售网络,利用psu技术,在不泄漏匹配名单的前提下,对各自拥有的客户列表联合求并,实现共同发展。
7.据发明人了解,目前半诚实模型下的两方隐私集合求并最优协议为kolesnikov等人于2019年在亚洲密码学年会上提出的,其核心构造模块为逆向隐私成员测试(rpmt,reverse private membership test),但该协议无论在通信还是计算上均未达到线性复杂度。


技术实现要素:

8.为了解决现有技术的不足,本发明提供了基于可交换弱伪随机函数的隐私集合求并方法及系统;
9.第一方面,本发明提供了基于可交换弱伪随机函数的隐私集合求并方法;
10.基于可交换弱伪随机函数的隐私集合求并方法,从发送端而言,包括:
11.在密钥空间中随机选取第一秘钥,根据第一秘钥计算出第二集合,将第一集合中的每个元素输入到第一伪随机函数,得到第三集合,将第三集合中的元素进行处理得到第
四集合,将第四集合与第二集合一起发送给接收端;
12.其中,所述第一集合,是由接收端在密钥空间中随机选取第二秘钥,并根据第二秘钥计算得到的;
13.根据不经意传输协议、输入消息和从向量中选择的比特,得到发送端和接收端双方的并集;
14.其中,所述向量,是由接收端将第二集合中的每个元素输入到第二伪随机函数中,得到第五集合;在第四集合中依次对第五集合中的元素进行查询,根据是否查询到结果,设定元素值,进而得到的。
15.第二方面,本发明提供了基于可交换弱伪随机函数的隐私集合求并方法;
16.基于可交换弱伪随机函数的隐私集合求并方法,从接收端而言,包括:
17.在密钥空间中随机选取第二秘钥,根据第二秘钥计算出第一集合,将第一集合发送给发送端;
18.接收第二集合和第四集合;其中,第二集合,是由发送端在密钥空间中随机选取第一密钥,并根据第一密钥计算得到的;其中,第四集合,是由发送端将第一集合中的每个元素输入到第一伪随机函数中,计算出第三集合,然后对第三集合的元素进行处理得到的;
19.将第二集合中的每个元素输入到第二伪随机函数中,得到第五集合;在第四集合中依次对第五集合中的元素进行查询,根据是否查询到结果,设定元素值,进而得到一个向量;
20.调用不经意传输协议,输入从向量中选择的比特,得到发送端和接收端双方的并集。
21.第三方面,本发明提供了基于可交换弱伪随机函数的隐私集合求并方法;
22.基于可交换弱伪随机函数的隐私集合求并方法,包括:
23.接收端在密钥空间中随机选取第二秘钥,根据第二秘钥计算出第一集合,将第一集合发送给发送端;
24.发送端在密钥空间中随机选取第一秘钥,根据第一秘钥计算出第二集合,将第一集合中的每个元素输入到第一伪随机函数,得到第三集合,将第三集合中的元素进行处理得到第四集合,将第四集合与第二集合一起发送给接收端;
25.接收端将第二集合中的每个元素输入到第二伪随机函数中,得到第五集合;在第四集合中依次对第五集合中的元素进行查询,根据是否查询到结果,设定元素值,进而得到一个向量;
26.发送端和接收端均调用不经意传输协议,发送端输入消息,接收端输入从向量中选择的比特,接收端得到发送端和接收端双方的并集。
27.第四方面,本发明提供了基于可交换弱伪随机函数的隐私集合求并系统;
28.基于可交换弱伪随机函数的隐私集合求并系统,包括:发送端和接收端;
29.接收端,在密钥空间中随机选取第二秘钥,根据第二秘钥计算出第一集合,将第一集合发送给发送端;
30.发送端,在密钥空间中随机选取第一秘钥,根据第一秘钥计算出第二集合,将第一集合中的每个元素输入到第一伪随机函数,得到第三集合,将第三集合中的元素进行处理得到第四集合,将第四集合与第二集合一起发送给接收端;
31.接收端,将第二集合中的每个元素输入到第二伪随机函数中,得到第五集合;在第四集合中依次对第五集合中的元素进行查询,根据是否查询到结果,设定元素值,进而得到一个向量;
32.发送端和接收端,均调用不经意传输协议,发送端输入消息,接收端输入从向量中选择的比特,接收端得到发送端和接收端双方的并集。
33.第五方面,本发明还提供了一种电子设备,包括:
34.存储器,用于非暂时性存储计算机可读指令;以及
35.处理器,用于运行所述计算机可读指令,
36.其中,所述计算机可读指令被所述处理器运行时,执行上述第一、二或三方面所述的方法。
37.第六方面,本发明还提供了一种存储介质,非暂时性地存储计算机可读指令,其中,当所述非暂时性计算机可读指令由计算机执行时,执行第一、二或三方面所述方法的指令。
38.第七方面,本发明还提供了一种计算机程序产品,包括计算机程序,所述计算机程序当在一个或多个处理器上运行的时候用于实现上述第一、二或三方面所述的方法。
39.与现有技术相比,本发明的有益效果是:
40.本发明基于可交换弱伪随机函数(commutative weak prf)和不经意传输(ot,oblivious transfer)提出了一种新的可证明安全的两方隐私集合求并通用设计,并给出了具体的实例化协议。我们的发明设计具有以下突出优势:(1)通信和计算复杂度达到理论最优,均为线性的渐进复杂度;(2)易于实现,且实际的通信量为已知协议中最低,特别适用于物联网等网络带宽受限的环境。
附图说明
41.构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
42.图1为实施例一的dh-psu协议双方交互过程;
43.图2为实施例一的以bloom过滤器优化后的dh-psu协议。
具体实施方式
44.应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
45.需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
46.另外,为了便于清楚描述本发明实施例的技术方案,在本发明实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
47.在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
48.本实施例所有数据的获取都在符合法律法规和用户同意的基础上,对数据的合法应用。
49.实施例一
50.本实施例提供了基于可交换弱伪随机函数的隐私集合求并方法;
51.基于可交换弱伪随机函数的隐私集合求并方法,从发送端而言,包括:
52.s101:在密钥空间中随机选取第一秘钥,根据第一秘钥计算出第二集合,将第一集合中的每个元素输入到第一伪随机函数,得到第三集合,将第三集合中的元素进行处理得到第四集合,将第四集合与第二集合一起发送给接收端;
53.其中,所述第一集合,是由接收端在密钥空间中随机选取第二秘钥,并根据第二秘钥计算得到的;
54.s102:根据不经意传输协议、输入消息和从向量中选择的比特,得到发送端和接收端双方的并集;
55.其中,所述向量,是由接收端将第二集合中的每个元素输入到第二伪随机函数中,得到第五集合;在第四集合中依次对第五集合中的元素进行查询,根据是否查询到结果,设定元素值,进而得到的。
56.进一步地,所述根据第一秘钥计算出第二集合,具体是,对发送端输入值采用哈希函数进行处理得到第一哈希值,对第一哈希值和第一秘钥采用第一伪随机函数进行处理,得到第二集合中的元素。
57.进一步地,所述将第三集合中的元素进行处理得到第四集合,采用元素随机置换的方式将第三集合中的元素进行处理得到第四集合,或者,将第三集合中的元素逐个插入过滤器中得到第四集合。
58.进一步地,所述过滤器,为bloom过滤器、cuckoo过滤器或者真空过滤器。
59.实施例二
60.本实施例提供了基于可交换弱伪随机函数的隐私集合求并方法;
61.基于可交换弱伪随机函数的隐私集合求并方法,从接收端而言,包括:
62.s201:在密钥空间中随机选取第二秘钥,根据第二秘钥计算出第一集合,将第一集合发送给发送端;
63.s202:接收第二集合和第四集合;
64.其中,第二集合,是由发送端在密钥空间中随机选取第一密钥,并根据第一密钥计算得到的;
65.其中,第四集合,是由发送端将第一集合中的每个元素输入到第一伪随机函数中,计算出第三集合,然后对第三集合的元素进行处理得到的;
66.s203:将第二集合中的每个元素输入到第二伪随机函数中,得到第五集合;在第四集合中依次对第五集合中的元素进行查询,根据是否查询到结果,设定元素值,进而得到一个向量;
67.s204:调用不经意传输协议,输入从向量中选择的比特,得到发送端和接收端双方的并集。
68.进一步地,所述根据第二秘钥计算出第一集合,具体是指:
69.对接收端输入值采用哈希函数进行处理得到第二哈希值;
70.对第二哈希值和第二秘钥采用第二伪随机函数进行处理,得到第一集合中的元素。
71.进一步地,所述对第三集合的元素进行处理得到的,具体采用元素随机置换的方式将第三集合中的元素进行处理得到第四集合,或者,将第三集合中的元素逐个插入过滤器中得到第四集合。
72.进一步地,所述过滤器,为bloom过滤器、cuckoo过滤器或者真空过滤器。
73.实施例三
74.本实施例提供了基于可交换弱伪随机函数的隐私集合求并方法;
75.基于可交换弱伪随机函数的隐私集合求并方法,包括:
76.s301:接收端在密钥空间中随机选取第二秘钥,根据第二秘钥计算出第一集合,将第一集合发送给发送端;
77.s302:发送端在密钥空间中随机选取第一秘钥,根据第一秘钥计算出第二集合,将第一集合中的每个元素输入到第一伪随机函数,得到第三集合,将第三集合中的元素进行处理得到第四集合,将第四集合与第二集合一起发送给接收端;
78.s303:接收端将第二集合中的每个元素输入到第二伪随机函数中,得到第五集合;在第四集合中依次对第五集合中的元素进行查询,根据是否查询到结果,设定元素值,进而得到一个向量;
79.s304:发送端和接收端均调用不经意传输协议,发送端输入消息,接收端输入从向量中选择的比特,接收端得到发送端和接收端双方的并集。
80.进一步地,所述将第三集合中的元素进行处理得到第四集合,采用元素随机置换的方式将第三集合中的元素进行处理得到第四集合,或者,将第三集合中的元素逐个插入过滤器中得到第四集合。
81.进一步地,所述过滤器,为bloom过滤器、cuckoo过滤器或者真空过滤器。
82.示例性地,令密钥空间为{0,1}m,基于可交换弱伪随机函数和不经意传输的两方隐私集合求并通用设计构造如下:
83.参数:
84.·
令哈希函数h:{0,1}
*

{0,1}
l
为密码学哈希函数(在安全性证明中将作为随机谕言机),f:{0,1}m×
{0,1}
l

{0,1}
l
为弱伪随机函数。
85.输入:
86.·
发送者输入集合x={x1,
……
,xn}。
87.·
接收者输入集合y={y1,
……
,yn}。
88.输出:
89.·
接收者输出x∪y。
90.协议:
91.(11)接收者在密钥空间中随机选取一秘钥k2,计算将集合y

发给发送者。
92.(12)发送者在密钥空间中随机选取一秘钥k1,计算并将y

中的每个元素输入即计算将集合y

中的元素随机置换,得γ(y

),然后将集合γ(y

)和x

一起发送给接收者。
93.(13)接收者同样将x

中的每个元素输入即计算依次对x

中的元素x
″i在集合γ(y

)中进行查寻,若存在,则设定ei=1,否则设定ei=0,由此接收者可以得到一个n元0/1向量
94.(14)双方调用单边ot(one-sided ot)协议,发送者输入消息{(xi,

)}
i∈[n]
,接收者输入选择比特{ei}
i∈[n]
,接收者得到集合x-x∩y。
[0095]
(15)接收者输出集合x∪y。
[0096]
下面发明人基于ddh假设实例化上述通用设计(后文简称该实例化协议为dh-psu协议,如图1所示)。
[0097]
参数:
[0098]
·
公共输入:阶为p的群密钥空间为
[0099]
·
令哈希函数为密码学哈希函数。
[0100]
·
取弱伪随机函数fk(x)=xk,其中
[0101]
输入:
[0102]
·
发送者输入集合x={x1,
……
,xn}。
[0103]
·
接收者输入集合y={y1,
……
,yn}。
[0104]
输出:
[0105]
·
接收者输出x∪y。
[0106]
协议:
[0107]
(21)接收者在密钥空间中随机选取一秘钥b,计算y

={h(y1)b,
……
,h(yn)b},将集合y

发给发送者。
[0108]
(22)发送者在密钥空间中随机选取一秘钥a,计算x

={h(x1)a,
……
,h(xn)a},并将y

中的每个元素输入fa(
·
),即计算y

={(y
′1)a,
……
,(y
′n)a|y
′i∈y

},将集合y

中的元素随机置换,得γ(y

),然后将集合γ(y

)和x

一起发送给接收者。
[0109]
(23)接收者同样将x

中的每个元素输入fb(
·
),即计算x

={(x
′1)b,
……
,(x
′n)b|x
′i∈x

},依次对x

中的元素x
″i在集合γ(y

)中进行查寻,若存在,则设定ei=1,否则设定ei=0,由此接收者可以得到一个n元0/1向量
[0110]
(24)双方调用单边ot(one-sided ot)协议,发送者输入消息{(xi,

)}
i∈[n]
,接收者输入选择比特{ei}
i∈[n]
,接收者得到集合x-x∩y。
[0111]
(25)接收者输出集合x∪y。
[0112]
上述协议基于判定性diffie-hellman困难性假设,在半诚实模型下可证明安全。该协议的通信和计算复杂度均与参与方的集合大小线性相关。
[0113]
发明人研究发现,若在协议第二步将随机置换操作替换为高级数据结构(如bloom
过滤器、cuckoo过滤器、真空过滤器等),可进一步降低本协议的通信和计算开销。下面以bloom过滤器为例,展示优化后的协议(如图2所示):
[0114]
协议:
[0115]
(31)接收者在密钥空间中随机选取一秘钥b,计算y

={h(y1)b,
……
,h(yn)b},将集合y

发给发送者。
[0116]
(32)发送者在密钥空间中随机选取一秘钥a,计算x

={h(x1)a,
……
,h(xn)a},并将y

中的每个元素输入fa(
·
),即计算y

={(y
′1)b,
……
,(y
′n)b|y
′i∈y

},将集合y

中的元素逐个插入bloom过滤器,得到过滤器d,然后将过滤器d和集合x

一起发送给接收者。
[0117]
(33)接收者同样将x

中的每个元素输入fb(
·
),即计算x

={(x
′1)b,
……
,(x
′n)b|x
′i∈x

},依次对x

中的元素x
″i在过滤器d中进行查寻,若存在,则设定ei=1,否则设定ei=0,由此接收者可以得到一个n元0/1向量
[0118]
(34)双方调用单边ot(one-sided ot)协议,发送者输入消息{(xi,

)}
i∈[n]
,接收者输入选择比特{ei}
i∈[n]
,接收者得到集合x-x∩y。
[0119]
(35)接收者输出集合x∪y。
[0120]
发明人编程实现了上述以bloom过滤器优化后的dh-psu协议,在不同集合大小情况下测试了此方案的实际运行时间和通信大小。编程语言为c++,开发测试环境为2.6ghz intel cpu和16gb内存的macbook pro,网络环境为gigabit lan。为保证安全性,集合中每个元素取为128比特长。具体数据如下表所示。
[0121]
1.表1.优化后dh-psu的计算和通信复杂度
[0122]
集合大小(个)时间(s)通信量(mb)2
12
0.450.472
16
5.37.42
20
86.9117.6
[0123]
实施例四
[0124]
本实施例提供了基于可交换弱伪随机函数的隐私集合求并系统;
[0125]
基于可交换弱伪随机函数的隐私集合求并系统,包括:发送端和接收端;
[0126]
接收端,在密钥空间中随机选取第二秘钥,根据第二秘钥计算出第一集合,将第一集合发送给发送端;
[0127]
发送端,在密钥空间中随机选取第一秘钥,根据第一秘钥计算出第二集合,将第一集合中的每个元素输入到第一伪随机函数,得到第三集合,将第三集合中的元素进行处理得到第四集合,将第四集合与第二集合一起发送给接收端;
[0128]
接收端,将第二集合中的每个元素输入到第二伪随机函数中,得到第五集合;在第四集合中依次对第五集合中的元素进行查询,根据是否查询到结果,设定元素值,进而得到一个向量;
[0129]
发送端和接收端,均调用不经意传输协议,发送端输入消息,接收端输入从向量中选择的比特,接收端得到发送端和接收端双方的并集。
[0130]
进一步地,所述将第三集合中的元素进行处理得到第四集合,采用元素随机置换的方式将第三集合中的元素进行处理得到第四集合,或者,将第三集合中的元素逐个插入
过滤器中得到第四集合。
[0131]
进一步地,所述过滤器,为bloom过滤器、cuckoo过滤器或者真空过滤器。
[0132]
实施例五
[0133]
本实施例还提供了一种电子设备,包括:一个或多个处理器、一个或多个存储器、以及一个或多个计算机程序;其中,处理器与存储器连接,上述一个或多个计算机程序被存储在存储器中,当电子设备运行时,该处理器执行该存储器存储的一个或多个计算机程序,以使电子设备执行上述实施例一、二或三所述的方法。
[0134]
应理解,本实施例中,处理器可以是中央处理单元cpu,处理器还可以是其他通用处理器、数字信号处理器dsp、专用集成电路asic,现成可编程门阵列fpga或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0135]
存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据、存储器的一部分还可以包括非易失性随机存储器。例如,存储器还可以存储设备类型的信息。
[0136]
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。
[0137]
实施例一、二或三中的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
[0138]
本领域普通技术人员可以意识到,结合本实施例描述的各示例的单元及算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0139]
实施例六
[0140]
本实施例还提供了一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成实施例一、二或三所述的方法。
[0141]
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1