一种基于全同态加密的隐私集合运算方法及系统

文档序号:32691188发布日期:2022-12-27 18:15阅读:35来源:国知局
一种基于全同态加密的隐私集合运算方法及系统

1.本发明涉及密码技术领域,特别是涉及一种基于全同态加密的隐私集合运算方法及系统。


背景技术:

2.本部分的陈述仅仅是提到了与本发明相关的背景技术,并不必然构成现有技术。
3.隐私集合运算能保证各方输入集合隐私的情况下,完成具体的集合运算操作,可提供“数据可用不可见”的数据流通模式,是目前兼顾数据流通和隐私保护的关键性密码技术,已成为解决当下“数据孤岛”问题的强有力密码工具。
4.隐私集合求并集(private set union,psu)是指,参与方各自拥有一组隐私数据,共同计算集合的并集,并且不泄露其他信息。隐私集合求并在实践中应用广泛,例如两家互联网公司可通过分析联合的ip黑名单和联合漏洞数据进行网络风险评估和管理;或者某机构需要调查居民当前购房以及租房需求情况,可在保证房产中介数据隐私的情况下,通过对房产中介的数据进行隐私集合求并运算。
5.隐私集合求交集的势(private set intersection cardinality,psi-card)是指,参与方各自拥有一组隐私数据,共同计算交集元素的个数,并且不泄露其他任何信息。隐私集合求交集的势在实践中应用广泛,例如在社交网络中,两个用户可以在不泄漏自己好友信息的情况下计算共同好友的数量,计算社交关系重合情况;两个公司可以在不泄漏自己用户信息的情况下计算共同用户的数量,计算目标用户关系重合情况等。
6.隐私集合求交集的和以及势(private set intersection sum with cardinality,psi-sum-card)是指,参与方各自拥有一组隐私数据,共同计算交集元素的和,并且不泄露其他任何信息。隐私集合求交集的和以及势存在一种变体叫做带标签的隐私集合求交集的和以及势(labeled private set intersection sum with cardinality,labeled psi-sum-card)。labeled psi-sum-card是指,参与方各自拥有一组带有标签的隐私数据,共同计算交集元素对应数据的和,并且不泄露其他任何信息。隐私集合求交集的和可在保证交集隐私的情况下,计算交集数据的统计性质,例如可以计算服用某种药物的病人的平均血压,或者居住在某个特定地区的居民的住房拥有率等。
7.目前psu的研究较为丰富,但主要应对于平衡场景,即双方输入的集合尺寸相等的情况。然而,大多数实际应用更符合非平衡场景,即发送方的集合尺寸可能比接收方的集合尺寸小很多,例如,发送方(客户端)可能是一个具有有限的电池、计算能力较弱和存储空间较小的移动设备,而接收方(服务器)是一个大型高端计算设备,而且双方之间的带宽可能受限。现有psu协议应用于非平衡场景并不高效,特别是,他们的通信复杂度至少和大集合尺寸线性相关。因此,构造适用于非平衡场景下的安全高效的psu协议是该领域的重要发展方向。
8.目前psi-card和psi-sum-card的研究较少,而且主要应对于平衡场景,即双方输入的集合尺寸相等的情况。然而,大多数实际应用主要是非平衡场景,即接收方的集合可能
比发送方的集合小很多,例如服务器-客户端(server-client)场景,其中接收方(客户端)拥有小集合,是计算和存储较弱的移动设备;发送方(服务器)拥有大集合,是存储量大的高端计算设备,而且双方之间的带宽可能非常有限。现有psi-card和psi-sum-card协议应用于非平衡场景并不高效,特别是,他们的通信复杂度至少和大集合线性相关,很难实际应用。因此,构造适用于非平衡场景下的安全高效的psi-card和psi-sum-card协议是该领域的重要发展方向。


技术实现要素:

9.为了解决现有技术的不足,本发明提供了一种基于全同态加密的隐私集合运算方法及系统,通信复杂度和集合中元素的长度无关,可适用于非平衡场景。
10.第一方面,本发明提供了一种基于全同态加密的隐私集合运算方法;
11.一种基于全同态加密的隐私集合运算方法,响应于隐私集合运算指令,服务器和客户端之间通过协议进行交互计算,得到集合运算结果;
12.其中,协议为基于层级同态加密技术构造。
13.进一步地,若隐私集合运算指令为隐私集合求并集的指令,服务器和客户端之间通过psu协议进行交互计算,得到集合的并集;
14.psu协议采用基于所述层级同态加密技术构造的基础psu协议,或用布谷鸟哈希、朴素哈希、批量、分窗、分块、paterson-stockmeyer算法和模转换技术对基础psu协议进行优化后,并结合置换矩阵隐私相等测试和不经意传输,的psu优化协议。
15.进一步地,所述置换矩阵隐私相等测试基于置换分享和多点不经意伪随机函数构造。
16.进一步地,所述置换矩阵隐私相等测试基于判定性迪菲赫尔曼假设构造。
17.进一步地,若隐私集合运算指令为隐私集合求交集的势的指令,服务器和客户端之间通过psi-card协议进行交互计算,得到交集元素的个数;
18.psi-card协议采用基于所述层级同态加密技术构造的基础psi-card协议,或用布谷鸟哈希、朴素哈希、批量、分窗、分块、paterson-stockmeyer算法和模转换技术对基础psi-card协议进行优化后的psi-card优化协议。
19.进一步地,响应于隐私集合求交集的和以及势的指令,服务器和客户端之间通过psi-sum-card协议进行交互计算,得到交集的势,以及交集元素的和,或者得到交集元素对应数据的和。
20.进一步地,若服务器和客户端各自拥有一组不带有标签的隐私数据,则所述psi-sum-card协议采用基于所述层级同态加密技术构造的基础psi-sum-card协议,或用布谷鸟哈希、朴素哈希、批量、分窗、分块、paterson-stockmeyer算法和模转换技术对基础psi-sum-card协议进行优化后得到的psi-sum-card优化协议。
21.进一步地,若服务器和客户端各自拥有一组带有标签的隐私数据,则所述psi-sum-card协议采用基础labeled psi-sum-card协议,或用布谷鸟哈希、朴素哈希、批量、分窗、分块、paterson-stockmeyer算法和模转换技术对基础labeled psi-sum-card协议进行优化后的labeled psi-sum-card优化协议。
22.进一步地,所述基础psi-sum-card协议在基础psi-card协议的基础上,使用非交
集元素消除技术,将所有非交集元素转化为0。
23.第二方面,本发明提供了一种基于全同态加密的隐私集合运算系统;
24.一种基于全同态加密的隐私集合运算系统,包括服务器和客户端;
25.所述服务器和客户端响应于隐私集合运算指令,通过协议进行交互计算,得到集合运算结果。
26.与现有技术相比,本发明的有益效果是:
27.本发明的一种基于全同态加密的隐私集合运算方法,其通信量与小集合线性相关,与大集合对数相关。
28.本发明的一种基于全同态加密的隐私集合运算方法,其在通信量与元素长度独立(除ot外)方面:本发明构造的psu协议、psi-card和psi-sum-card协议及其变体,除了ot协议阶段,其他过程的通信复杂度和集合中元素的长度无关;具体而言,双方可以使用相同的抗碰撞哈希函数将各自集合中的元素哈希到小的固定尺寸,然后使用哈希值代替集合元素进行后续的协议计算。
29.本发明的一种基于全同态加密的隐私集合运算方法,其在离线或在线执行方面:在本发明构造的psu协议中,接收方的预处理过程可以完全离线完成,不需要发送方参与,进一步提升应用效率;具体而言,接收方可以提前设定发送方的集合尺寸的上界,然后在本地选择参数并进行预处理计算;随后,在线阶段知道发送方的实际集合尺寸后,接收方可以将具体参数发送给发送方,发送方可以填充双方都知道的相同元素,如

,完成后续协议。
30.本发明的一种基于全同态加密的隐私集合运算方法,其在离线或在线执行方面:在本发明构造psi-card和psi-sum-card协议中,发送方的预处理过程可以完全离线完成,不需要接收方参与,进一步提升应用效率;具体而言,发送方可以提前设定接收方的集合尺寸的上界,然后在本地选择参数并进行预处理计算。随后,在线阶段知道接收方的实际集合尺寸后,发送方可以将具体参数发送给接收方,接收方可以填充

或者其他非集合元素中的符号,然后完成后续协议。
附图说明
31.构成本技术的一部分的说明书附图用来提供对本技术的进一步理解,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。
32.图1为实施例二所述的基础psu协议(省略ot)以及相关优化示意图;
33.图2为实施例二所述的psu协议构造框架图;
34.图3为实施例三所述的基础psi-card协议示意图;
35.图4为实施例三所述的基础psi-sum-card协议示意图;
36.图5为实施例三所述的基础labeled psi-sum-card with small set协议示意图;
37.图6为实施例三所述的基础labeled psi-sum-card with large set协议示意图;
38.图7为实施例三所述的psi-card优化协议示意图;
39.图8为实施例三所述的psi-sum-card优化协议示意图;
40.图9为实施例三所述的labeled psi-sum-card with small set优化协议示意图;
41.图10为实施例三所述的labeled psi-sum-card with large set优化协议示意图。
具体实施方式
42.应该指出,以下详细说明都是示例性的,旨在对本技术提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本技术所属技术领域的普通技术人员通常理解的相同含义。
43.需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本技术的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
44.术语解释:
45.psu协议:
46.参数:发送方拥有集合x,接收方拥有集合y;
47.功能:1.发送方输入集合x={x1…
xn},接收方输入集合y={y1,

,xn};
48.2.给接收方输出x∪t。
49.置换矩阵隐私相等测试(permuted matrix private equality test,pm-peqt):
50.参数:发送方拥有矩阵r

α
×m和矩阵置换π=(πc,πr),接收方拥有矩阵r
α
×m;
51.功能:1.发送方输入矩阵r

α
×m和矩阵置换π=(πc,πr),接收方输入矩阵r
α
×m;
52.2.给接收方输出零一矩阵b
α
×m,对于使用π=(πc,πr)置换后的矩阵r

α
×m和r
α
×m,如果r
π(ij)
=r

π(ij)
,则b
ij
=1,否则b
ij
=0。
53.不经意传输(oblivious transfer,ot)协议:
54.参数:发送方拥有接收方拥有b∈{0,1};
55.功能:1.发送方输入接收方输入b∈{0,1};
56.2.给接收方输出xb。
57.多点不经意伪随机函数(multi-point oblivious pseudorandom function,mp-oprf):
58.参数:伪随机函数:f;接收方拥有
59.功能:1.接收方输入
60.2.随机选择一个伪随机函数的密钥k给发送方;给接收方发送伪随机函数值{fk(x1),

,fk(xn)}。
61.置换分享(permute+share)协议:
62.参数:发送方拥有向量x={x0,

,xn},接收方拥有置换π。
63.功能:1.发送方输入向量x={x0,

,xn},接收方输入置换π;
64.2.选择一组置换分享{s
π(0)


,s
π(n)
}给发送方;给接收方发送一组置换分享{s

π(0)


,s

π(n)
},其中
65.实施例一
66.本实施例提供了一种基于全同态加密的隐私集合运算方法,响应于隐私集合运算指令,服务器和客户端之间通过协议进行交互计算,得到集合运算结果。
67.隐私集合运算指令为隐私集合求并集的指令、隐私集合求交集的势的指令或隐私
集合求交集的和以及势的指令。
68.协议为psu协议、psi-card协议或psi-sum-card协议。psu协议、psi-card协议和psi-sum-card协议均基于层级同态加密技术构造。
69.若隐私集合运算指令为隐私集合求并集的指令,服务器和客户端之间通过psu协议进行交互计算,得到集合的并集;
70.psu协议采用基础psu协议,或采用通过布谷鸟哈希、朴素哈希、批量、分窗、分块、paterson-stockmeyer算法和模转换技术对基础psu协议进行优化后,并结合置换矩阵隐私相等测试和不经意传输,得到的psu优化协议。其中,批量、分窗、分块和模转换为lfhe中常规的优化技术,批量技术来源于2017年发表于proceedings of the 2017 acm sigsac conference on computer and communications security,ccs 2017的论文fast private set intersection from homomorphic encryption,分窗技术来源于2018发表于proceedings of the 2018 acm sigsac conference on computer and communications security,ccs 2018的论文labeled psi from fully homomorphic encryption with malicious security,模转换技术来源于2021发表于ccs’21:2021 acm sigsac conference on computer and communications security的论文labeled psi from homomorphic encryption with reduced computation and communication。
71.若隐私集合运算指令为隐私集合求交集的势的指令,服务器和客户端之间通过psi-card协议进行交互计算,得到交集元素的个数;
72.psi-card协议采用基础psi-card协议,或用布谷鸟哈希、朴素哈希、批量、分窗、分块、paterson-stockmeyer算法和模转换技术对基础psi-card协议进行优化后的psi-card优化协议。
73.响应于隐私集合求交集的和以及势的指令,服务器和客户端之间通过psi-sum-card协议进行交互计算,得到交集的势,以及交集元素的和,或者得到交集元素对应数据的和。
74.若服务器和客户端各自拥有一组不带有标签的隐私数据,则psi-sum-card协议采用基础psi-sum-card协议,或用布谷鸟哈希、朴素哈希、批量、分窗、分块、paterson-stockmeyer算法和模转换技术对基础psi-sum-card协议进行优化后得到的psi-sum-card优化协议。
75.若服务器和客户端各自拥有一组带有标签的隐私数据,则psi-sum-card协议采用基础labeled psi-sum-card协议,或用布谷鸟哈希、朴素哈希、批量、分窗、分块、paterson-stockmeyer算法和模转换技术对基础labeled psi-sum-card协议进行优化后的labeled psi-sum-card优化协议。
76.实施例二
77.本实施例提供了一种基于全同态加密的隐私集合运算方法,响应于隐私集合求并集的指令,服务器和客户端之间通过psu协议进行交互计算,得到集合的并集。
78.在psu协议中,发送方为拥有小集合x={x1,

,xm}的客户端,用s表示;接收方为拥有大集合y={y1,

,yn}的服务器,用r表示;令符号[n]表示为{1,

,n},令符号[m]表示为{1,2,...,m}。
[0079]
psu协议构造思路:首先基于lfhe给出基础psu协议。该协议有着最优的通信复杂,
即与小集合线性相关,但是该协议的同态计算电路深度较深,计算复杂度较高。随后,使用布谷鸟哈希以及lfhe的优化技术对基础psu协议进行优化,设计半-psu协议(省略ot)。然后,结合置换矩阵隐私相等测试(pm-peqt)和不经意传输(ot),给出完整psu协议的通用构造(即psu优化协议)。最后,在实例化方面,分别给出pm-peqt的两种构造:第一种是基于置换分享(permute+share)和多点不经意伪随机函数(mp-oprf)构造;第二种是基于判定性迪菲赫尔曼(decisional diffie-hellman,ddh)假设构造;通过pm-peqt结合现有的高效lfhe和ot的构造,实例化适用于非平衡场景下安全高效的psu协议。
[0080]
基于层级同态加密(lfhe)技术构造基础psu协议,本实施例中,基于lfhe构造基础psu协议如下:
[0081]
(1)s生成fhe的公钥pk和私钥sk,并秘密保存私钥;使用pk加密每一个元素:ci=fhe.enc(pk,xi),i∈[m],并将公钥和密文发送给r;
[0082]
(2)r选择随机值r=[r1,

,rm],根据自己的集合y计算多项式其中,x是函数f的自变量,然后根据全同态加密的性质,对密文ci进行同态计算,获得新的密文ci′
=fhe.enc(pk,ri+f(xi)),i∈[m],并将新的密文ci′
发送给s;
[0083]
(3)s可以解密新的密文ci′
,获得ri′
=ri+f(xi),并将ri′
返回给r;
[0084]
(4)r验证ri′
=ri是否成立,如果成立,令bi=0,否则bi=1;
[0085]
(5)r和s运行不经意传输协议,r输入bi∈{0,1},s输入(

,xi);当bi=1时,r获得xi,否则r获得

,其中,

表示无意义符号,即r获得

,是没有意义的。根据不经意传输的功能,r可获得并集;根据算法可知bi=1对应非交集元素,此时r可获得非交集元素xi,bi=0对应交集元素,r不能获得对应的元素,此时r获得没有意义的


[0086]
因为第2步中r选择随机值对明文进行随机化,s解密结果ri′
不泄漏信息,第3步中s将解密结果返回给r,r可以根据ri和ri′
相等与否,判断f(xi)=0是否成立。如果成立,则说明该位置对应的xi属于交集,但是r并不知道xi对应于f(x)=0哪个根,即无法区分xi对应于y中的哪个元素。此外,如果ri和ri′
不相等,f(xi)≠0泄漏xi的信息,但是这里的泄漏并不影响psu协议的安全性,因为根据psu协议的功能,最后r也是要获得xi。
[0087]
随后,使用布谷鸟哈希(cuckoo hash)、朴素哈希(simple hash)、批量(batching)、分窗(windowing)、分块(partitioning)、paterson-stockmeyer算法、模转换(modulus switching)等技术对基础psu进行优化,降低同态运算电路深度,提升计算效率。具体的基础psu协议(省略ot)和相关优化技术如图1所示,其中,h表示朴素哈希函数,ch表示布谷鸟哈希。
[0088]
本实施例,基于层级全同态加密(lfhe)方案构造基础psu协议,然后对基础协议进行优化,最后使用置换矩阵隐私相等测试(pm-peqt)技术判断置换位置后的元素是否属于交集,并使用不经意传输技术使得接收方获得非交集中的元素。具体框架如图2所示,psu协议通用构造如下:
[0089]
(1)[协议建立阶段]s和r协商全同态加密方案、布谷鸟哈希、朴素哈希、pm-peqt协议和ot协议的参数;
[0090]
(2)[哈希阶段]s使用布谷鸟哈希将集合x的所有元素哈希到xc[i],i∈[mc];r使用
朴素哈希将集合y的所有元素哈希到其中,xc[i]是哈希表,即s使用布谷鸟函数将x哈希到哈希表xc[i]中,包含了mc个位置,每个位置只有一个值;是3个朴素哈希函数将y哈希到哈希表,可以看做一个矩阵,总共b行和mc列,每一列对应相同的哈希值;
[0091]
(3)[r预计算y]
[0092]
(301)r将划分成α个子矩阵y1,

,y
α
,每个子矩阵有b

=b/α行和mc列。第i个子矩阵表示为:yi=[y
i,1


,y
i,b

]
t
,i∈[α],其中,y
i,k
,k∈[b

]表示yi的第k行;其中,α是根据协议自主设置的,属于分块技术,是用于平衡通信量和计算量的优化值,即,将矩阵分割成α块;(302)对于第i个子矩阵的第j行y

i,j
=[y
i,j,1


,y
i,j,b

]
t
,i∈[α],j∈[mc],(为了与y
i,k
区别开,y
i,k
表示第i个子矩阵的第k行,y

i,j
表示第i个子矩阵的第j列),其中y
i,j,k
表示y

i,j
中第k个元素;r根据y

i,j
的所有元素,计算多项式的所有元素,计算多项式可以获得b’次的多项式,其中,y是函数f
i,j
的自变量,a
i,j,k
表示多项式f
i,j
(y)的系数。r选择随机矩阵令系数矩阵a的第i子矩阵的第j列为:a
i,j
=[a
i,j,0


,a
i,j,b

]
t
,i∈[α],j∈[mc],其中a
i,j,0
=r
i,j
+a

i,j,0

[0093]
(303)r使用全同态加密的批量优化技术,即单指令多数据(single instruction multiple data,simd)技术对系数矩阵a进行批量处理,将a的每一行看做长为mc的向量,且每个元素属于群r将每个向量编码为β=mc/n个明文多项式,其中第i子矩阵ai的每一行编码为β个多项式,表示为a

i,j
,i∈[α],j∈[β];
[0094]
(4)[s加密x]
[0095]
(401)s将看做长为mc的向量,且每个元素属于群然后使用simd技术批量编码为β=mc/n个明文多项式,表示为x
′1,

,x

β

[0096]
(402)对于每个批量处理的明文多项式x

,s计算对应的幂数,其中第i.2j个幂数为为
[0097]
(403)s基于全同态加密方案使用自己生成的公钥加密每一个幂数,获得β组密文cj,j∈[β];s发送所有的密文给r;
[0098]
(5)[r同态计算阶段]
[0099]
(501)对于接收到的每组密文,r同态计算出所有幂数的密文,获得cj=[c
j,0


,c
j,b

],j∈[β],其中c
j.k
,0≤k≤b

表示为同态计算的密文,其中,表示第j组明文x

的k次;
[0100]
(502)r同态计算点积:同态计算c

i,j
=c
ja′
i,j
,i∈[α],j∈[β],并对每个密文进行模转换,然后发送模转换后的密文给s;
[0101]
(6)[s解密阶段]s解密所有接收的密文,并将结果解码连接成一个矩阵
[0102]
(7)[pm-peqt阶段]r和s运行pm-peqt协议:r输入矩阵s输入矩阵和置换π=(πc,πr);r获得零一矩阵ba×m,其中b
ij
=1表示r
π(ij)
=r

π(ij)
,否则r
π(ij)
≠r

π(ij)
,i∈[α],j∈[mc];b
ij
表示矩阵b
α
×m中的第i行第j列的元素,r
π(ij)
,r

π(ij)
分别表示矩阵
中的元素(使用置换π置换后的元素);其中,r
π(ij)
=r

π(ij)
,表示和中对应位置是相同的,某列存在相同值时,这说明该列对应的元素属于交集元素;如果某列不存在任何相同值,这说明该列对应的元素不属于交集,即r需要将这个元素通过不经意传输协议(ot)获得该元素;(8)[输出阶段]r检查零一矩阵b
α
×m,对于第j列的所有元素,如果全部b
ij
=0,i∈[α],今bj=1,否则今bj=0(即对于矩阵b
α
×m的整合,如果这个矩阵的某一列全为0,这说明该列对应的位置的元素全部不相同,所以令该列bj为1,表示该列对应的元素属于非交集元素,然后r使用ot选择该列对应的元素);然后r和s运行ot协议:对于每一列j∈[mc],r输入bj,s输入(

,xc[πc(j)]);如果bj=1,r获得xc[πc(j)],否则获得

;最后r输出并集y∪{xc[πc(j)]},对于所有的j∈[mc],其中,πc(j)表示对列j进行πc置换,其中πc是[mc]上的随机置换,可以将j置换为[mc]中的任意值。
[0103]
本实施例使用布谷鸟哈希的填充方法:发送方使用布谷鸟哈希将集合x中|x|个元素哈希到mc个位置,对于双方约定在哈希表中填充

。这样,填充的

可以看做交集元素,不会影响后续并集运算。根据上述psu协议的通用构造,可基于任意ind-cpa安全且具有电路隐私的lfhe、半诚实安全的pm-peqt和ot协议构造半诚实安全psu协议。
[0104]
psu协议的实例化:根据psu协议的通用构造框架,本实施例实例化底层组件包括lfhe、pm-peqt和ot,可构造具体的psu协议。目前满足条件的lfhe方案和ot协议较多,但是缺少pm-peqt的构造。
[0105]
本实施例给出pm-peqt的两种构造:第一种是基于置换分享(permute+share)和多点不经意伪随机函数(mp-oprf)构造;第二种是基于ddh假设构造。具体构造如下:
[0106]
基于permute+share和mp-oprf构造pm-peqt:s拥有矩阵r

α
×m和矩阵置换π=(πc,πr),r拥有矩阵r
α
×m。
[0107]
(1)s和r运行permute+share协议:s输入列置换πc,r输入矩阵r
α
×m的每一列,根据permute+share协议的功能,r获得s获得其中i∈[α],j∈[m];其中,s
π(ij)
和均表示输入值。表示异或操作,对于比特串r1=10101,r2=11001;如果r1=r2,则是全0串。
[0108]
(2)s和r继续运行permute+share协议:s输入行置换πr,r输入矩阵的每一行,根据permute+share协议的功能,r获得s获得其中i∈[α],j∈[m];
[0109]
(3)r获得置换矩阵分享s计算置换矩阵分享其中其中,r
(ij)
表示矩阵r
α
×m的第i行第j列的元素,r
π(ij)
表示使用π置换矩阵r
α
×m后的置换矩阵的第i行第j列元素;r输入s
π
和s运行mp-oprf协议,r获得每个元素的伪随机函数值fk(s
π(ij)
),s获得伪随机函数的密钥k,其中,f表示伪随机函数,k表示伪随机函数的密钥;(4)s使用置换π=(πc,πr)置换矩阵r

α
×m并和s

π
的对应元素进行异或计算其中,r

π(ij)
表示使用置换π=(πc,πr)对矩阵r

α
×m进行置换后的矩阵的元素,s′
π(ij)
表示使用置换π=(πc,πr)对s

π
进行置换后的矩阵的元素,然后使用密钥k计算各元素的伪随机函数值并将所有的伪随机函数值发送给r;
[0110]
(5)r验证是否成立,如果成立,则令b
ij
=1否则b
ij
=0,输出零一矩阵b
α
×m,其中,零一矩阵ba×m的第i行第j列元素表示为b
ij

[0111]
基于ddh假设构造pm-peqt:s拥有矩阵r

α
×m和矩阵置换π=(πc,πr),r拥有矩阵r
α
×m。令是一个阶为q的循环群,群上的ddh问题是困难的,令哈希函数h输出群上随机元素,模拟随机谕言机。
[0112]
(1)r选择随机值计算并发送v
ij
=h(r
ij
)a,i∈[α],j∈[m]给s,其中,表示在群中随机选择随机值a,是标准的数学符号,表示集合{0,1,2,...,q-1};h是哈希函数,h(r
ij
)a表示对矩阵r
α
×m中的元素r
ij
进行哈希运算,并求a次幂;r
ij
表示矩阵r
α
×m的第i行第j列元素;
[0113]
(2)s选择随机值计算v

ij
=h(r

ij
)b和v

ij
=(v
ij
)b,i∈[α],j∈[m],并分别使用置换π=(πc,πr)对v

ij
和v

ij
进行置换,获得v

π(ij)
=π(v

ij
),v

π(ij)
=π(v

ij
);将v

π(ij)
和v

π(ij)
发送给r;其中,r

ij
表示矩阵r

α
×m的第i行第j列元素;
[0114]
(3)r验证v

π(ij)
=(v

π(ij)
)a是否成立,如果成立,则令b
ij
=1否则b
ij
=0,i∈[α],j∈[m],输出零一矩阵b
α
×m。
[0115]
结合现有的lfhe方案、ot协议和pm-peqt的构造,可获得适用于非平衡场景的安全高效的psu协议。
[0116]
离线/在线执行:在本发明构造的psu协议中,接收方的预处理过程可以完全离线完成,不需要发送方参与,进一步提升应用效率。具体而言,接收方可以提前设定发送方的集合尺寸的上界,然后在本地选择参数并进行预处理计算。随后,在线阶段知道发送方的实际集合尺寸后,接收方可以将具体参数发送给发送方,发送方可以填充双方都知道的相同元素,如

,完成后续协议。
[0117]
通信量与元素长度独立(除ot外):本发明构造的psu协议,除了ot协议阶段,其他过程的通信复杂度和集合中元素的长度无关。具体而言,双方可以使用相同的抗碰撞哈希函数将各自集合中的元素哈希到小的固定尺寸,然后使用哈希值代替集合元素进行后续的psu计算,其中发送方需要保存自己的集合元素和哈希值之间的映射关系,并在最后的ot阶段,输入原始集合元素代替对应的哈希值,使得接收方可以获得非交集的原始元素。
[0118]
psu协议的实现和对比:本实施例使用fhe开源库——seal库中的实现的bfv全同态加密方案作为底层lfhe的实例化,使用libote开源库中实现的ot协议作为底层ot协议的实例化;本是私立分别实现了基于permute+share和mp-oprf构造的pm-peqt和基于ddh假设构造的pm-peqt;根据psu协议的通用构造框架分别实现了两个psu协议:
[0119]
psu
ps
:psu协议基于lfhe、pm-peqt和ot构造,其中pm-peqt基于permute+share和mp-oprf设计;
[0120]
psu
ddh
:psu协议基于lfhe、pm-peqt和ot构造,其中pm-peqt基于ddh假设构造;
[0121]
实现环境:本实施例使用intel酷睿处理器,3.00ghz和8gb ram的测试环境执行所有测试实验,并使用linux tc命令模拟网络延迟和带宽。一种局域网环境:10gbps吞吐量,
0.2ms的往返时间(round-trip time,rtt)。两种广域网环境分别为100mbps和10mbps带宽,以及每个都是80ms的rtt。我们设置计算安全参数为128比特和统计安全参数为40比特。
[0122]
本实施例首先测试psu
ddh
和psu
ps
的通信效率和计算效率,其中小集合尺寸分别为2
10
,2
11m
,大集合尺寸分别为2
18
,2
20
,2
22
,10gbps带宽环境,线程数分别为1和4。具体测试数据见表1。根据实验数据显示,本实施例的psu在非平衡场景下非常高效,对于大集合为百万量级的数据,小集合较小(比如数千个)时,psu
ddh
的通信量只有4.57mb,在线计算时间不需要10秒。
[0123]
表1、通信量(mb)和运行时间(s)的测试结果
[0124][0125][0126]
随后,本实施例在相同测试环境下在对比psu
ddh
、psu
ps
、以及当前最快的psu协议(psu1、psu*1和psu*2,psu1和psu*1来源于2022年发表于usenix security2022上的论文shuffle-based private set union:faster and more secure,psu*2来源于2019年发表于asiacrypt2019上的论文scalable private set union from symmetric-key techniques,其中psu
*
表示非标准安全的psu协议。测试环境为:小集合尺寸分别为2
10
,2
11
,大集合尺寸分别为2
18
,2
19
,带宽环境分别为10gbps(0.2ms rtt),100mbps和10mbps(80ms rtt),线程数分别为1和4。具体对比数据见表2。根据对比数据显示,在集合尺寸为(2
10
,2
19
),10gbps单线程的情况下,psu
ddh
比psu的通信效率提高了300倍,计算效率提升了30倍。
[0127]
表2、通信量(mb)和运行时间(s)对比
[0128][0129]
实施例三
[0130]
本实施例提供了一种基于全同态加密的隐私集合运算方法,响应于隐私集合求交集的势的指令,服务器和客户端之间通过psi-card协议进行交互计算,得到交集元素的个数;响应于隐私集合求交集的和以及势的指令,服务器和客户端之间通过psi-sum-card协议进行交互计算,得到交集的势,以及交集元素的和,或者得到交集元素对应数据的和。
[0131]
本实施例基于层级同态加密方案(leveled fully homomorphic encryption,lfhe)给出安全高效的psi-card协议。随后,提出非交集元素消除技术,将非交集元素变成对于0的加密且交集元素加密不变,然后结合lfhe技术,设计安全高效的psi-sum-card协议。本实施例的psi-card和psi-sum-card协议的通信复杂度和小集合线性相关与大集合对数相关。因此,本发明提出的psi-card和psi-sum-card协议高效适用于非平衡应用场景,即服务器-客户端(server-client)场景,其中接收方(客户端)拥有小集合;发送方(服务器)拥有大集合,而且双方之间的带宽非常有限。
[0132]
为了方便,本实施例使用s表示拥有大集合x={x1,

,xn}的发送方(服务器),大集合元素对应的数据集合e={e1,

,en},r表示拥有小集合y={y1,

,ym}的接收方(客户端),小集合元素对应的数据集合d={d1,

,dm},令[n]={1,

,n},[m]={1,

,m};ra×m表示α行m列的矩阵,πc表示矩阵的列置换;加黑的小写字母表示向量,如x。
[0133]
psi-sum-card协议构造思路:首先基于lfhe,使用乘法随机化和随机置换方法构造基础psi-card协议。随后,提出非交集元素消除技术,双方通过额外的一轮交互,构造基础psi-sum-card协议。具体而言:双方运行基础psi-card协议后,接收方r获得交集元素置换后的位置,并不知道具体的交集元素。随后接收方r对交集元素对应位置加密1,对非交集元素对应位置加密0,然后发送方使用lfhe的密文同态乘法,获得交集元素的密文,其他位
置对应0的密文,并使用lfhe的密文同态加法,计算交集元素和的密文发送给接收方,接收方可以使用私钥解密,获得交集元素的和。
[0134]
基于上述思想构造的基础psi-card和psi-sum-card协议有着最优的通信复杂,即和小集合线性相关,但是协议的同态电路深度较深,计算复杂度较高。最后,本实施例对psi-sum-card协议进行优化,获得安全高效的psi-sum-card协议(包括psi-card协议)。
[0135]
基础psi-card协议:基于lfhe技术,使用乘法随机化方法构造基础psi-card协议如下:
[0136]
(1)客户端r生成lfhe的公私钥对(pk,sk),秘密保存私钥sk;然后,使用公钥加密y={y1,

,ym}的每一个元素yi,获得每个元素的密文:ci=fhe.enc(pk,yi),i∈[m]。然后,r将公钥pk和所有的密文ci,i∈[m]发送给服务器s;
[0137]
(2)服务器s对大集合x编码为多项式f,并使用乘法随机化方法进行随机化,基于lfhe技术对密文ci,i∈[m]进行密态计算。具体如下:首先根据集合x={x1,

,xn}计算多项式f,使得然后选择随机值r=[r1,

,rm],使用乘法随机化方法对f进行随机化,随后,对密文ci,i∈[m]进行密态计算rif(ci),获得密文ci′
=fhe.enc(pk,rif(yi)),i∈[m],随后s选择[m]上的随机置换π对m个密文ci′
进行置换获得c

π(i)
,将置换后的密文c

π(i)
发送给客户端r;
[0138]
(3)r接收到所有置换后的密文c

π(i)
,可以使用解密私钥sk解密置换后的密文,获得解密结果r
′i=r
π(i)
f(y
π(i)
),其中如果r
′i=0,表示位置置换后的元素属于交集,否则,位置置换后的元素不属于交集。因此,r可计算解密结果中0的数量,获得交集中元素的个数,即为交集的势|x∩y|。
[0139]
因为第1步中使用了lfhe加密保证了客户端r的集合y元素的安全,第2步中服务器s选择随机值对多项式进行乘法随机化处理,同时选择随机置换对密文进行置换,保证了集合x中元素的安全性。在第3步中r可以解密所有置换后的密文,因为不等于0的位置被s选择的随机数进行了随机化,不会泄漏信息,等于0的位置对应交集元素,但是s选择随机置换可保证r不知道交集元素的信息。基础psi-card协议如图3所示。
[0140]
基础psi-sum-card协议:在基础psi-card协议的基础上,使用非交集元素消除技术,将所有非交集元素转化为0。如此,可以基于lfhe的同态计算技术,计算所有交集元素和的密文,最后客户端r可以使用解密私钥sk解密密文,获得交集元素的和。具体协议的前3步如同基础psi-card协议,后续步骤描述如下:
[0141]
(4)客户端r使用lfhe的公钥pk,对r
′i=0的位置加密bi=1,对r
′i≠0的位置加密bi=0(即,如果r
′i=0,则令符号bi=1,然后再对bi加密;如果r
′i≠0,则令符号bi=0,然后再对bi加密),即r将密文发送给服务器s;
[0142]
(5)s接收到密文后,对步骤(1)中的ci=fhe.enc(pk,yi),i∈[m]使用相同的随机置换π进行置换,获得置换后的密文c
π(i)
。然后,s基于lfhe乘法同态的性质,在密态下计算对应位置密文的乘积随后,对计算后的密文使用加法同态计算交集元素和的密文
并将c
sum
发送给r;
[0143]
(6)r接收到密文c
sum
后,使用私钥sk解密密文,可获得交集元素的和
[0144]
因为第4步中r通过r
′i=0知道哪些位置为交集元素,所以可使用全同态加密lfhe计算1的密文,其他位置计算0的密文;lfhe的安全性保证s无法获得其他信息;第5步中s可以对每个元素对应的密文进行相同的置换,保证位置的对应,然后使用乘法同态可计算交集元素对应位置为交集元素本身的加密,而其他非交集元素对应位置为0的加密,实现了非交集元素消除。最后s基于lfhe的加法同态的性质,进行密态的求和运算,可计算所有交集元素和的密文。第6步r可以解密密文,获得交集元素的和sum。基础psi-sum-card协议如图4所示。
[0145]
基础psi-sum-card协议计算的是集合元素的和,但是对于带有标签的集合运算,即双方对于交集元素的标签(数据)进行求和的运算,无法直接使用psi-sum-card协议获得。因此,本实施例设计基础labeled psi-sum-card协议,可以实现对于交集元素的标签(数据)进行求和运算。然而,在大集合和小集合(集合元素个数比较,元素个数大于设定值的集合是大集合,元素个数小于设定值的集合是小集合)中每个元素(即使元素相同)可能对应不同的标签数据。比如:大集合x={x1,

,xn}对应的标签数据集合e={e1,

,en},小集合y={y1,

,ym}对应的标签数据集合d={d1,

,dm},其中存在交集元素xi=yj,但对应的标签数据可能不同ei≠dj。
[0146]
基础labeled psi-sum-card协议包括关于小集合标签的隐私集合求交集和与势协议和关于大集合标签的隐私集合求交集和与势协议。
[0147]
本实施例首先考虑关于小集合标签的隐私集合求交集和与势协议(labeled psi-sum-card with small set),最终计算的是交集元素对应小集合标签的数据和,即关于d={d1,

,dm}中交集元素对应标签数据和。具体协议如下:
[0148]
基础labeled psi-sum-card with small set协议的前3步与基础psi-card协议相同,后续过程如下:
[0149]
(4)客户端r使用lfhe的公钥pk,对r
′i=0的位置加密bi=1,对r
′i≠0的位置加密bi=0,即此外,r使用lfhe的公钥pk,对每个元素对应的标签数据加密:c
″i=fhe.enc(pk,di),i∈[m],其中元素yi对应于标签数据di;然后r将和c
″i发送给服务器s;
[0150]
(5)s接收到密文和c
″i后,对c
″i使用相同的随机置换π进行置换获得置换后的密文c

π(i)
=π(c
″i);然后,在密态下计算对应位置密文的乘积随后,对密文使用加法同态计算交集元素对应标签数据和的密文:使用加法同态计算交集元素对应标签数据和的密文:并将密文c
sum
发送给r;
[0151]
(6)r接收到密文c
sum
后,使用私钥sk解密密文,可获得所有交集元素对应标签数据的求和
[0152]
基础labeled psi-sum-card with small set协议与基础psi-sum-card协议相比,在第(4)步中,客户端需要按照对应顺序加密小集合元素对应标签数据d={d1,

,dm},生成标签数据密文发送给服务器,服务器可以执行非交集元素(对应标签数据)消除技术,并求交集元素对应标签数据的和。基础labeled psi-sum-card with small set协议如图5所示。
[0153]
基础labeled psi-sum-card with small set协议只能对小集合元素对应的标签数据进行求和,无法对大集合元素对应标签数据求和。因为客户端没有大集合元素对应的标签数据e={e1,

,en},所以无法加密标签数据发送给服务器,后续服务器也无法执行非交集元素消除过程,无法计算大集合元素对应的标签数据和。
[0154]
针对上述问题,本实施例使用以下技术解决。首先计算多项式g,使得对所有的xi∈x满足g(xi)=ei,具体可根据n个点(xi,ei),i∈[n]使用拉格朗日插值公式计算获得:),i∈[n]使用拉格朗日插值公式计算获得:其中依旧使用乘法随机化方法,计算多项式h(x)=g(x)+rf(x),其中因此,如果yj∈x∩y,则存在xj∈x使得yj=xi,即h(yj)=g(xi)+rf(xi)=g(xi)+0=g(xi)=ei,如果是一个随机值。然后,服务器在进行全同态计算过程中,可以分别计算rf(yj)的密文和h(yj)的密文,其中rf(yj)的密文可以置换后传输给客户端解密,用于判断哪些位置为交集,并在对应交集的位置对1加密,另外位置对0加密,发送给服务器后可用于消除非交集元素对应的标签数据。
[0155]
根据上述思路,本实施例构造关于大集合标签的隐私集合求交集和与势协议(labeled psi-sum-card with large set),该协议计算的是交集元素对应大集合标签的数据和,即关于e={e1,

,en}中交集元素对应标签数据和。
[0156]
具体协议前三步类似基础psi-card协议,只是在第(2)步中服务器s基于x={x1,

,xn}和e={e1,

,en}计算多项式h(x)=g(x)+rf(x),其中h(xi)=ei,并根据lfhe的性质,计算密文c
″i=fhe.enc(pk,h(yi)),i∈[m]并保存;后三步类似基础psi-sum-card协议,只是在第(5)步中使用上述的c
″i进行同态计算。详细步骤如下:
[0157]
(1)客户端r生成lfhe的公私钥对(pk,sk),秘密保存私钥sk;然后,使用公钥加密y={y1,

,ym}的每一个元素yi,获得每个元素的密文:ci=fhe.enc(pk,yi),i∈[m]。然后,r将公钥pk和所有的密文ci,i∈[m]发送给服务器s;
[0158]
(2)服务器s对大集合x编码为多项式f,并使用乘法随机化方法进行随机化,对x和e编码为多项式h,基于lfhe技术对密文ci,i∈[m]分别进行密态计算。具体如下:首先根据集合x={x1,

,xn}计算多项式f,使得然后选择随机值r=[r1,

,rm],使用乘法随机化方法对f进行随机化计算rf,并基于x={x1,

,xn}和e={e1,

,en}计算多项式h(x)=g(x)+rf(x),其中h(xi)=ei。随后,在密文状态下,分别根据多项式f和h对密文ci,i∈[m]进行全同态计算,即密态计算rif(ci)和h(ci)=g(ci)+rif(ci),获得密文c
′i=fhe.enc(pk,rif(yi))和c
″i=fhe.enc(pk,h(yi)),i∈[m];s保存c
″i,并选择[m]上的随机置换π对m个密文ci′
进行置换获得c

π(i)
,将置换后的密文c

π(i)
发送给客户端r;
[0159]
(3)r接收到所有置换后的密文c

π(i)
,可以使用解密私钥sk解密置换后的密文,获得解密结果r
′i=r
π(i)
f(y
π(i)
),其中如果r
′i=0,表示位置置换后的元素属于交集,否则,位
置置换后的元素不属于交集。因此,r可计算解密结果中0的数量,获得交集中元素的个数,即为交集的势|x∩y|;
[0160]
(4)客户端r使用lfhe的公钥pk,对r
′i=0的位置加密bi=1,对r
′i≠0的位置加密bi=0,即r将密文发送给服务器s;
[0161]
(5)s接收到密文后,对步骤3)中的密文c
″i=fhe.enc(pk,h(yi)),i∈[m]使用相同的随机置换π进行置换获得置换后的密文c

π(i)
=π(c
″i)。然后,s基于lfhe乘法同态的性质,在密文状态下计算对应位置密文的乘积随后,对计算后的密文使用加法同态计算交集元素和的密文算交集元素和的密文并将csum发送给r;
[0162]
(6)r接收到密文c
sum
后,使用私钥sk解密密文,可获得交集元素的和后,使用私钥sk解密密文,可获得交集元素的和
[0163]
因为对于任意的yj∈x∩y,则存在xj∈x使得yj=xi,即h(yj)=g(xi)+rf(xi)=g(xi)+0=g(xi)=ei,所以h(yj),j∈[m]表示了所有交集元素对应的标签数据ei,其中bi对应h(y
π(i)
),如果y
π(i)
∈x∩y,则bi=1,其他bi=0。因此,表示所有交集元素对应的标签数据的和。基础labeled psi-sum-card with large set协议如图6所示。
[0164]
psi-card优化协议:基础psi-card协议的同态计算电路深度较深,计算复杂度较高。本实施例使用布谷鸟哈希(cuckoo hash)、朴素哈希(simple hash)、批量(batching)、分窗(windowing)、分块(partitioning)、paterson-stockmeyer算法、模转换(modulus switching)等技术对基础psi-card进行优化,降低同态运算电路深度,提升计算效率。具体优化协议如下:
[0165]
(1)服务器s和客户端r首先协商lfhe方案、布谷鸟哈希、朴素哈希的参数;
[0166]
(2)服务器s对大集合x进行预处理,首先使用朴素哈希将集合x的所有元素哈希到该表包含mc列,每一列可以包含b个元素;
[0167]
(3)s将的按照行划分为α块,每块的第j列可表示为x
i,j
,i∈[α],j∈[mc],每块的一列包含b

=b/α个元素,第i块第j列可表示为[x
i,j,1


,x
i,j,b

]
t
。s对每一块各列的元素,计算多项式s选择随机矩阵,并根据上述每块计算出的多项式系数,对应设置系数矩阵a:令系数矩阵a的第i块第j列为a
i,j
=[r
i,jai,j,0


,r
i,jai,j,b

]
t
,i∈[α],j∈[mc];
[0168]
(4)s使用lfhe方案的单指令多数据(single instruction multiple data)优化技术对系数矩阵a进行批量处理,a的每一行可看做包含mc个元素的向量,可编码为β=mc/n个明文多项式,其中第i块的每一行表示为a

i,j
,i∈[α],j∈[β];
[0169]
(5)客户端r处理小集合y,使用布谷鸟哈希将集合y的所有元素哈希到表yc[i],i
∈[mc],可看做长mc的向量,批量编码为β=mc/n个明文多项式,表示为y
′1,

,y

β
。然后,r计算明文多项式y

对应的幂数,其中第i
·2j
个幂数为1≤i≤2
l-1,最后,r使用lfhe公钥加密每一个幂数,获得β组密文cj,j∈[β],并发送给s;
[0170]
(6)服务器s接收所有的密文后,可在密文状态下,全同态计算密文的多项式值。首先s同态计算0至b

所有幂数的密文,获得cj=[c
j,0


,c
j,b

],j∈[β],其中c
j.k
,0≤k≤b

表示为同态计算的密文。然后,s同态计算点积的密文c

i,j
=c
ja′
i,j
,i∈[α],j∈[β],并对每个密文进行模转换。最后,s选择[mc]上的随机置换π,对密文矩阵进行列变换,并将置换后的密文矩阵发送给r;其中,表示第j组明文y

的k次方;
[0171]
(7)r使用解密私钥sk,解密所有接收的密文获得明文矩阵。对于明文矩阵的第i行,如果存在某个位置是0,则令bi=1,否则令bi=0;然后,r计算交集的势
[0172]
本实施例使用布谷鸟哈希的填充方法:接收方使用布谷鸟哈希将集合y中|y|个元素哈希到m个位置,对于哈希表中空的位置填充

或者其他非集合元素中的符号,这样在计算交集的势与交集元素对应的数据(

可对应随机的数据)和时,不会将

算在其中。因为填充非集合元素的符号不会出现在交集中,即r第一次解密时对应的解密结果是非零值,不会计算在交集元素个数中。同时r将所有解密结果是非零值的位置,加密为0,在后续求和时,该位置对应的明文乘积也是0,不会影响交集元素对应数据的和。优化后的psi-card协议如图7所示,其中h表示朴素哈希函数,ch表示布谷鸟哈希,π表示[m]上的置换,作用于密文矩阵是矩阵的列置换。
[0173]
根据psi-card协议的高效优化,本实施例对psi-sum-card协议,labeled psi-sum-card with small set协议,以及labeled psi-sum-card with large set协议进行优化,降低同态运算电路深度,提升计算效率。
[0174]
labeled psi-sum-card优化协议包括labeled psi-sum-card with small set优化协议和labeled psi-sum-card with large set优化协议。
[0175]
psi-sum-card优化协议的前三步完全使用psi-card优化协议,后续步骤和基础psi-sum-card协议相同。具体如图8所示。
[0176]
关于小集合标签的隐私集合求交集和与势的优化协议(labeled psi-sum-card with small set优化协议)的前三步完全使用psi-card优化协议,后续步骤和基础labeled psi-sum-card with small set协议相同。具体如图9所示。
[0177]
关于大集合标签的隐私集合求交集和与势的优化协议(labeled psi-sum-card with large set优化协议)和基础labeled psi-sum-card with small set协议相比,需要按照psi-card优化协议中同态计算多项式rif(yi)的密文的方式,同态计算多项式h(yi)=g(yi)+rif(yi)的密文,但在计算psi-card,以及后续元素消除和求交集对应数据和的部分有着较大区别。具体优化协议如下:
[0178]
(1)服务器s和客户端r首先协商lfhe方案、布谷鸟哈希、朴素哈希的参数;
[0179]
(2)服务器s对大集合x和对应标签集合e进行预处理,首先使用朴素哈希将集合x
的所有元素哈希到该表包含mc列,每一列可以包含b个元素,标签集合e对应填充到
[0180]
(3)s选择随机矩阵然后,s将的分别按照行划分为α块,每块的第j列可表示为x
i,j
,e
i,j
,i∈[α],j∈[mc],每块的一列包含b

=b/α个元素,第i块第j列可表示为[x
i,j,1


,x
i,j,b

]
t
和[e
i,j,1


,e
i,j,b

]
t
。s对x
i,j
每一块各列的元素,计算多项式a
i,j,k
表示多项式f
i,j
(x)的系数;对于x
i,j
,e
i,j
每一块各列的元素,计算多项式g
i,j
(x),使得g
i,j
(x
i,j,k
)=e
i,j,k
,0≤k≤b

;然后计算h
ij
(x)=g
i,j
(x)+r
ijfij
(x)=b
i,j,0
+b
i,j,1
x+

+b
i,j,b
′-1
xb′‑1+b
i,j,b

xb′
。s根据上述每块计算出的多项式系数,对应设置系数矩阵af和ah:令系数矩阵af的第i块第j列为a
fi,j
=[r
i,jai,j,0


,r
i,jai,j,b

]
t
,i∈[α],j∈[mc];令系数矩阵ah的第i块第j列为a
hi,j
=[b
i,j,0


,b
i,j,b

]
t
,i∈[α],j∈[mc];
[0181]
(4)s使用lfhe方案的单指令多数据优化技术对系数矩阵af和ah进行批量处理,af和ah的每一行为mc的向量,可编码为β=mc/n个明文多项式,其中第i块的每一行表示为和i∈[α],j∈[β];
[0182]
(5)客户端r处理小集合y,使用布谷鸟哈希将集合y的所有元素哈希到表yc[i],i∈[mc],可看做长mc的向量,批量编码为β=mc/n个明文多项式,表示为y
′1,

,y

β
。然后,r计算明文多项式y

对应的幂数,其中第i
·2j
个幂数为1≤i≤2
l-1,l表示分窗技术参数,平衡计算量和通信量的参数,可以自己调节设置。最后,r使用lfhe公钥加密每一个幂数,获得β组密文cj,j∈[β],并发送给s;
[0183]
(6)服务器s接收所有的密文后,可在密文状态下,全同态计算密文的多项式值。首先s同态计算0至b

所有幂数的密文,获得cj=[c
j,0


,c
j,b

],j∈[β],其中c
j.k
,0≤k≤b

表示为同态计算的密文。然后s同态计算点积的密文i∈[α],j∈[β],并对每个密文进行模转换。最后,s选择[mc]上的随机置换π,对密文矩阵和进行列变换,并将置换后的密文矩阵发送给r,自己保存密文矩阵其中,表示使用多项式f对应的系数在密态下对密文进行同态计算,表示f(yj)的密文;表示使用多项式h进行密态的同态计算;
[0184]
(7)r使用解密私钥sk,解密置换后的密文矩阵获得明文矩阵。对于所有明文矩阵的位置i∈[α],j∈[mc],对解密结果为0的位置,令b
ij
=1,否则令b
ij
=0;然后,r计算交集的势
[0185]
(8)r使用lfhe的公钥pk,加密b
ij
,即i∈[α],j∈[mc]。r将
发送给服务器s;
[0186]
(9)s接收到密文后,结合步骤(4)中的置换密文矩阵基于lfhe全同态运算性质,在密文状态下计算对应位置密文的乘积,算性质,在密文状态下计算对应位置密文的乘积,其中,步骤(1)计算了α
×
mc个多项式hijx,i∈α,j∈[mc],hi,πj表示使用π对h
ij
(x)进行列置换;总共获得α
×
mc个密文。随后,对计算后的所有密文使用加法同态计算交集对应数据和并将c
sum
发送给r;
[0187]
(10)r接收到密文c
sum
后,使用私钥sk解密密文,可获得交集元素的和后,使用私钥sk解密密文,可获得交集元素的和
[0188]
labeled psi-sum-card with large set优化协议采用与psi-card优化协议相同的布谷鸟哈希填充方法,多项式f和h计算类似基础labeled psi-sum-card with large set,但是密文的全同态计算类似psi-card优化协议。s计算出两个密文矩阵和使用相同列置换,并且发送给r,可由r解密判断哪些列对应交集元素位置,置换后本地保存,对应了大集合标签数据的密文。s在接收到r的密文(该密文对应交集元素位置是加密1,其他位置加密0)后,计算密文乘法,对于非交集元素的位置变成对于0的密文,对于交集元素的位置对应大集合标签数据的密文。然后对所有的密文进行密文加法,计算出关于大集合交集元素对应标签数据的和。具体如图10所示。
[0189]
求交集对应数据的平均值:r知道交集对应数据的和以及交集的势(元素个数),可以计算平均值:sum/|x∩y|;
[0190]
离线/在线执行:在本发明构造psi-card和psi-sum-card协议中,发送方的预处理过程可以完全离线完成,不需要接收方参与,进一步提升应用效率。具体而言,发送方可以提前设定接收方的集合尺寸的上界,然后在本地选择参数并进行预处理计算。随后,在线阶段知道接收方的实际集合尺寸后,发送方可以将具体参数发送给接收方,接收方可以填充

或者其他非集合元素中的符号,然后完成后续协议。
[0191]
协议通信量与元素长度独立:本发明构造psi-card和psi-sum-card协议及其变体的通信复杂度和集合中元素的长度无关。具体而言,双方可以使用相同的抗碰撞哈希函数将各自集合中的元素哈希到小的固定尺寸,然后使用哈希值进行后续的协议计算。
[0192]
实施例四
[0193]
本实施例提供了一种基于全同态加密的隐私集合运算系统;
[0194]
一种基于全同态加密的隐私集合运算系统,包括服务器和客户端;
[0195]
所述服务器和客户端响应于隐私集合运算指令,通过协议进行交互计算,得到集合运算结果。
[0196]
各个组成部分的详细流程在实施例一已经介绍。
[0197]
以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技
术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1