基于同态加密和秘密共享技术的隐私保护区间操作设计
摘要
本文介绍了基于半诚实模型的整数区间上多种操作的两方协议,这些协议具有隐私性。具体而言,本工作提出了用于确定两个区间是否重叠、计算重叠的边界和重叠大小,以及在重叠区域内选择随机子区间的新型协议。这些协议分别基于同态加密和秘密共享这两种基本的安全多方计算技术进行设计。此外,本文还对新开发的协议进行了全面的性能评估。
关键词 :隐私性,安全多方计算,区间操作,同态加密,秘密共享
引言
隐私保护区间操作的核心作用已在文献中得到广泛认可:例如,用于私密执行范围查询(如[5])或私密判断某个整数是否落在特定区间内(如[28])的协议,是实现加密数据搜索(如[5,32])、设计隐私保护在线分析系统(如[1,34])以及进行私有信息检索(如[17])的关键构建模块。然而,现有文献中的隐私保护区间协议仅限于对单个区间进行操作,因此无法应用于需要对两个区间执行操作的众多场景。这包括以区间形式表示时间范围的调度应用(如[11,24]),以及在端口和IP地址范围区间上运行的分布式入侵检测系统(如[21,22])。
作为主要贡献,本文提出了实现两个区间上隐私保护操作的协议。具体而言,本工作提出了用于判断两个区间是否重叠、计算重叠区间的边界、计算(仅)重叠宽度的协议,以及确定重叠部分是否至少达到某个大小,并在重叠区域内采样一个随机子区间。
由于整数区间本质上是整数集合,因此可以使用现有的集合操作协议(例如[12,15])来实现上述部分区间操作。然而,区间具有一种特殊结构,即它们包含由明确定义的最大值和最小值限定的连续整数。利用这种结构,我们可以设计出计算、通信和轮复杂度均为 O(1)的高效协议,也就是说,这些复杂度与区间中元素数量无关。而对于实现隐私保护集合操作的协议来说,这是不可能的,因为它们的复杂度至少随输入集合中的元素数量 k线性增长,其计算和通信开销至少为 O(k)(参见[12,15])。
新型协议被设计为安全多方计算 (SMPC) 协议,并已证明能够抵御半诚实(即被动)敌手。迄今为止,多种SMPC方法共存,包括秘密共享和同态加密。然而,这两种方法在实现相同功能的协议性能方面几乎从未被比较过(例外是[33]和[26],它们同样比较了在半诚实模型下安全的某些特定协议在这两种方法下的实现)。因此,作为本文的第二个贡献,讨论了新型协议在两种SMPC方法下的实现,并对这些协议进行了详细的性能比较。
本文的其余部分安排如下。第2节介绍了本文中使用的定义和符号。接着,第3节介绍了区间操作的现有和新型构建模块。第4节详细讨论了区间操作协议。第5节提供了性能分析。最后,第6节讨论了结论和未来工作。
2. 预备知识
2.1. 符号和定义
s ←$ S
表示 s从 S中均匀随机选取。
Nu={1,..., u}
指小于或等于 u ∈ N的自然数集合。
V[j]
表示向量 V的第 j个元素。参与协议执行的所有参与方的索引集记为 P,其中 i ∈ P。对于两方协议,设
P:={A, B}
。此外,令 λ表示空字符串。闭合整数区间
I=[l, u]
(下文简称为区间)定义为关于 的全序集,包含所有满足
l n u
(
l, u, n ∈ N
)的正整数。给定两个区间
IA
和
IB
,其重叠区间
IA ∩ IB
记为
I o=[lo , uo]
。对于一个区间
I=[l, u]
,该区间的宽度等于
u−l
。若一个函数比任何多项式的倒数衰减得更快,则称该函数为negl:
定义1 (可忽略的). 一个函数 negl : N → R 被称为 negl,如果对于每个正多项式 p(·),都存在一个 n′,使得对所有 n> n′ 都有 negl(n)< 1 p(n)。
语义安全针对具有加密函数
E pk(·)
和公钥/私钥对(pk, sk)的非对称密码系统的选择明文攻击(等价于IND‐CPA)可通过以下实验ExpIND-CPA[19]来定义:
基于同态加密的提出协议的初步版本包含在丹尼尔·迈耶的论文中。
- 挑战者 C生成一个随机密钥对(pk, sk)。
- 一个给定 pk的多项式时间概率敌手A选择两个等长的明文消息 m0和 m1,并将m0和 m1发送给 C。
-
C在给定 pk的情况下选择
b ←${0, 1}并返回Epk(mb)。 -
在已知
Epk(mb)、 m0、 m1和 pk的情况下, A试图确定满足 b′= b的 b′ ∈{0, 1}并输出 b′。 - 若b′= b成立,则实验的输出为1,否则为0。
定义2 (语义安全)。
对于一个具有安全参数 s 的非对称密码系统,如果不存在任何对手 A 能够以显著大于 12, 的概率获得实验输出 1,则该密码系统在选择明文攻击下是 语义安全 的,即满足
Pr[Exp IND-CPA= 1] 1 2+ negl(s)
。
2.2. 秘密共享
A(τ, ι)门限秘密共享方案允许将一个秘密 s(目前假设 s为一个整数)分布给 ι方,使得任意至少包含 τ方的子组可以通过拉格朗日插值重构 s,而任何大小为 τ − 1或更小的子组都无法获得关于秘密 s的任何信息。存在多种此类门限秘密共享方案(例如,[3,6,31])。
基于秘密共享的协议使用 Shamir 秘密共享方案 [31],该方案基于多项式插值。秘密
s ∈ Zp
的持有者(其中 p 是素数,被称为安全性参数)在 Zp 上生成一个关于
a1,..., aτ−1 ←$ Z p
的随机多项式
q(x)= s+ a1x+ ···+ aτ−1x τ−1
,其次数为 τ − 1,并确定 s 的 ι个共享
s1,..., sι
为
si:= q(i)
。参与方 Pi 获得共享
si
。共享
s
表示 s 的共享向量
s:=(s1,..., sι)
。
给定两个共享
a
、
b
,可以对相应的两个秘密
a、b ∈ Zp
执行隐私保护加法、减法和乘法。由于 Shamir 秘密共享方案的线性性,两个共享的加法和减法(记为
a+ b
和
a − b
)可以按份额计算,其中每个参与方 Pi 对其自身的份额进行操作,并分别计算
ai+ bi
和
ai − bi
。类似地,一个公开已知的常数
c ∈ Z p
可以与一个秘密
a ∈ Z p
的共享进行加法、减法或乘法运算,分别记为
a+ c
、
a−c
和
a· c
,其中每个参与方 Pi 在本地分别计算
ai+ c
、
ai − c
和
ai · c
。与加法和减法不同,两个共享
a
和
b
的乘法运算(记为
a· b
)需要至少
2(τ −1)+1
个参与方进行交互。在两方设置中,这意味着在对两个共享进行乘法运算时必须引入一个额外参与方(详见 [7])。该额外参与方的引入方式与 SMPC 框架 SEPIA[8] 的参与方设置保持一致,该框架区分输入对等方和隐私对等方(见第 5 节)。此外,还可以对一个共享
s
进行重共享,记为
Rnd(s)
:设
q(x)
是定义在 Zp 上、由
s
唯一确定的次数为 τ − 1 的多项式。那么,
Rnd(s)
计算出 s 的另一个共享,该共享唯一确定一个在 Zp 上具有相同次数的新多项式
q ′ (x)
,其系数从 Zp 中均匀随机采样得到,使得
q(0)= q ′ (0)= s
(见 [4])。
2.3. 同态加密
所有基于同态加密的隐私保护协议都使用一种加法同态密码系统,该系统对选择明文攻击是语义安全的,并且存在(2, 2)阈值变体。下文讨论Paillier密码系统的一种(τ, ι)阈值变体 [14,30],其满足这些要求,并在本文中广泛使用:
对于两方情形,其中
P={A, B}
,设
A:= 1, B:= 2
。
密钥生成。
选择一个比特长度为 k 的
N= p · q
,其中 p 和 q 为安全素数(即存在素数 p′ 和 q′,使得
p= 2p′+1
和
q= 2q′+1
), k 为安全参数。设
N′= p′q′
、
β ←$ Z∗ N
、
(a, b) ←$ Z∗ N× Z∗ N
,以及
g=(1+ N)a· bN mod N2
。私钥
βN′
通过 Shamir 的 (τ, ι) 秘密共享方案 [31] 在 ι 个参与方之间进行共享。
每个参与方所拥有的公钥相同,由 g、 N 和
= L(gN ′β)= aN′β mod N
组成,其中
L(x)=(x −1)/N
。
加密。
要加密 明文空间 P:= ZN 中的消息 m,选取
r ←$ Z∗ N
并计算
c=E(m):= gmrN mod N2
,其中 c 是 密文空间 C:= Z∗ N2 中的一个元素。
门限解密。 一个密文 c 可由一组 τ 方 Pi′(i′ ∈ P′ ⊆ P,|P′| = τ)共同解密,其中每一方持有 一个秘密份额:
D(τ,ι)(c)= L(∏ i′∈P′ c 2μP ′ 0,i′ i′ mod N2) · 1 42 mod N
,
其中
= ι!
,
ci′= c2si′
是参与方 Pi′ 使用其秘密份额 si′ 对 c 进行部分解密所计算出的结果,且
μP ′ 0 ,i′= ·∏i′′ ∈P′\{i′} i′′ i′′−i′
。
明文空间 P构成加法群
(ZN,+)
,密文空间 C构成乘法群
(Z∗ N2,·)
。令
m, m1, m2 ∈ P
和
κ ∈ N\{0}
。Paillier ((τ, ι)阈值) 密码系统支持 同态加法,记为
E(m1)+h E(m2):= E(m1)· E(m2)= E(m1+ m2)
,以及同态标量乘法,记为
E(m)×h κ:=(E(m))κ= E(κ · m)
。一个密文
E(m)
可以通过计算
E(m)+h E(0)
进行随机化,表示为
Rnd(E(m))
。此外,
E(m1)−h E(m2)
表示
E(m1)·(E(m2)) −1= E(m1 −m2)
,其中
E(m2) −1
是
E(m2)
在 C 中的乘法逆元。下文中,
E(·)
和
D(·)
始终分别指代 (2, 2) 阈值 Paillier 的加密函数 和解密函数。为方便起见,共享私钥和公钥(由双方共同持有)在符号中被省略。
2.4. 针对半诚实的对手的安全性
本文考虑半诚实、非自适应、计算能力受限的对手[16]。半诚实对手控制一组被攻陷的参与方,这些参与方会正确地执行协议,但与诚实的参与方不同,可能会记录所有生成的随机数据和接收到的消息。对于非自适应对手而言,在一次协议执行过程中,被攻陷的参与方集合是固定的。假设底层通信信道是可信的,即信道可以被监听,但传输的数据能够抵抗篡改。在两方协议的场景中,对手最多只能控制一方参与方。
包含隐私性和正确性的安全性正式定义需要定义术语compu-tational indistinguishability:
定义 3 (计算不可区分性)。 设 U为一个可数集,且 X={Xu}u∈U、 Y={Yu}u∈U为两个概率集合。称 X与 Y是计算上不可区分的,记作X c ≡ Y,如果对于任意概率多项式时间区分器 D 和每一个 u ∈ U,均存在一个可忽略函数negl,使得
∣ ∣ Pr[D(1 u , X u)= 1]− Pr[D(1 u , Y u)= 1] ∣ negl(u)
, 其中 D(1 u , X u) 表示 D在输入值根据 X选择的情况下,在 u上以多项式时间运行 u .
设
F:{0, 1}∗ ×{0, 1}∗ →{0, 1}∗ ×{0, 1}∗,(xA, xB) →(oA, oB)
为一个两方功能,其中 Pi提供私有输入 xi并获知输出 oi(i ∈{A, B})。3设 π 是实现功能 F 的一个两方协议。当在 输入
(xA, xB)
和安全参数 k 上执行 π 时, Pi 的视图为
VIEW π i(k, xA, xB)=(k, xi, r˚i, mi,1,..., mi,n)
,其中
r˚i
表示 Pi 的内部随机带,
mi,j
表示在协议 π 执行过程中接收到的第 j 条消息。协议 π 在输入
(xA, xB)
和安全参数 k 上的输出称为
OUTPUTπ(k, xA, xB)=(OUTPUTπ A(k, xA, xB),OUTPUTπ B(k, xA, xB))
。
定义4 (关于半诚实的对手的安全性 [16])。 协议 π安全地,即正确且私密地,在存在半诚实敌手的情况下计算功能 F,如果存在两个概率算法 Si,其在安全参数 k 的多项式时间内运行,满足 i ∈{A, B}
{(Si(1 k, xi, Fi(xA, xB)), F(xA, xB))}xA,xB,k c ≡{(VIEWπ i(k, xA, xB), OUTPUTπ(k, xA, xB))}xA,xB,k
.
在下文中,假设安全参数 k已隐式给出且足够大。为方便起见,在后续讨论中省略安全参数。Si被称为模拟器。Si模拟在输入 xi和 Fi(xA, xB)上生成一个与VIEWπ i(xA, xB)在计算上不可区分的视图,其生成的模拟值用方括号 〈·〉括起来,以区分模拟值和实际协议执行过程中出现的值。除非另有说明,Si设置〈xi〉:= xi。注意,诚实方的模拟器由相应协议隐式确定。
为了便于对实现功能 F 的协议 π 进行安全性证明,其中 π 由一组有限的子协议 ρ1,…, ρn 构成,这些子协议在半诚实模型下安全地计算功能 g1,…, gn,可以应用 顺序组合定理 [9],该定理指出:如果 π′ 在半诚实模型下安全地计算 F,其中 π 的子协议调用被替换为对可信第三方调用 以计算 g1,…, gn,那么 π 在半诚实模型下安全地计算 F。在此上下文中,顺序 意味着可信方的调用是顺序进行的(而非并发地)。
为了证明协议的安全性,本文按照 [2] 中的方法分两步进行。首先,需要证明
{F(xA, xB)}xA ,x B c ≡{OUTPUT π (xA, xB)}xA ,x B
。此步骤称为 正确输出分布 (COD)。第二步则证明,在考虑双方给定输出的前提下,某一方 Pi 的 VIEWπ i 可以被模拟,使得 VIEWπ i 与其对应的模拟视图在计算上不可区分,这被称为 正确视图分布 (CVD)。如果 π 的输出使用语义安全密码系统(如 Paillier)加密,则还需证明解密输出值的分布在计算上与根据功能定义 F 所规定的解密输出分布不可区分。此步骤称为 解密输出的正确分布 (CDDO)。注意,此步骤对于确保 π 的正确性是必要的,而它并未被定义 4 所涵盖,因为
{F(xA , x B)}xA ,x B c ≡{OUTPUT π (xA , x B)}xA , x B
并不意味着当 π 提供加密输出时 π 的正确性。
要引用具体的功能 F 或协议 π,使用模板 Fa pp name 和 π a pp name ,其中 π a pp name 是 name 所描述的待计算功能的 Fa pp name 的实现
app ∈{S, H}
表示底层的SMPC方法(H表示同态加密, S表示秘密共享)。符号(o) ← F(x)表示在基于同态加密的协议中,所有参与方具有共同的(加密的)输入和输出。对于基于秘密共享的协议,则使用符号(o) ← F(xA, xB)代替(oA, oB) ← F((xAA, xBA),(xAB, xBB))。除非另有说明,对于基于同态加密的协议,输入整数是 P中的元素,而对于基于秘密共享的协议,输入整数是 Zp中的元素。为了实现新型协议的可模拟性,要求在基于同态加密的协议中,每个子协议返回一个随机化输出;在基于秘密共享的协议中,每个子协议返回一个重新共享的输出。这可以通过使用第2.2节和2.3节中为秘密共享和同态加密引入的Rnd(·)操作来实现:在提供协议输出之前调用Rnd(·)可确保加密或共享的输出独立于协议输入。因此,子协议的输出可以通过从相应域均匀采样随机值来模拟。
3. 构建模块
本节回顾了一些作为新型隐私保护区间协议构建模块的功能。首先,介绍了文献中已知的用于比较和选择的整数操作功能。接着,本节提出了两种二元运算。其中一种新功能是一种构建模块,可高效计算两次独立的异或操作,并将结果与一个与操作相结合。
3.1. 比较与选择操作
以下三种功能的共同点在于它们都描述了对私有输入值进行小于操作,但在输出方式上有所不同。
定义5 (F S SCLT(安全比较(SC)小于(LT))) . 设 PA持有整数 vA, PB持有整数vB作为它们的私有输入。那么,功能 F S SCLT 由(bout) ← F S SCLT(vA, vB)给出,其中bout=(boutA, boutB) 是 bout ∈{0, 1}的一个共享, bout表示vA< vB是否成立。
定义6 (F H SC-SO LT(安全比较(SC)小于(LT)且具有共享输出(SO))) . 设 P A持有整数 v A, P B持有整数 v B作为其私有输入。则功能 F H SC-SO LT 由(oA , o B) ← F H SC-SO LT (vA , v B)给出,其中 o A ←${0, 1}和 o B ∈{0, 1}满足 o A ⊕ o B表示 v A < v B是否成立(若 v A < v B则为 o A ⊕ o B= 1,否则为 o A ⊕ o B= 0)。
定义7 (F H IS-LT-SCOT(输入对称 (IS) 小于 (LT) 强条件不经意传输 (SCOT))) . 设 P A 持有一个整数 v A 和一个密文 s A= E(vA),并设 P B 持有一个整数 v B 和一个密文 s B= E(vB)。那么,功能 F H IS-LT-SCOT 由 (so , λ) ← F H IS-LT-SCOT((vA , s A),(vB , s B))给出,其中 s o 在 v A < v B 成立时是 v A 的一个新加密,否则 s o 是 v B 的一个新加密。
基于小于操作的功能,可以很容易地推导出相应的大于(GT)、小于或等于(LTE)以及大于或等于(GTE)的变体。例如,对于F S SC LT ,对应的变体如下:
F S SC GT (vA , v B):= F S SC LT (vB , v A)
、
F S SC LTE (vA , v B):= F S SC LT (vA , v B+ 1)
和
F S SC GTE (vA , v B):= F S SC LT (vB , v A+ 1)
。
一种协议,
π S SCLT
,实现了 F S SCLT,该协议在半诚实模型下是安全的,已在[10]中提出。实现功能 F H SC-SOLT和 F H IS-LT-SCOT的协议已在[36]和[13],中分别被提出并证明在半诚实模型下是安全的。需要注意的是,[36]中的协议与[25]中提出的协议不同,因为它允许比较加密值,而无需任何一方知道对应的明文。第4.4节和4.5节中提出的新协议利用了这一特性。
一种附加功能,称为
F H CRSi∗
,能够从给定的数据条目集合中选择满足特定条件的随机数据条目。一种实现该功能的基于同态加密的协议已在[35]中提出,并在半诚实模型下被证明是安全的。
定义8 (F H CRSi ∗(条件(C)随机(R)选择(S))) . 设 PA和 PB均持有长度为 n的 m向量E(Li)=(E(li,1),…, E(li,n)),其元素为整数li,j(i ∈ Nm, j ∈ Nn)。令 E(Li∗)为加密的二进制指示向量,并令{E(L1),…, E(Lm)}{E(Li∗)}为数据向量(i∗ ∈ Nm)。则功能 F H CRSi ∗由((E(v1),…, E(vm))) ← F H CRSi ∗((E(L1),…, E(Lm)))给出,其中E(vi)= Rnd(E(li,j ∗))(i ∈ Nm),且 j ∗ ←${j ∈ Nn: li∗,j= 1}假设 |{j ∈ Nn: li∗,j= 1}| 1。
类似地,可以基于文献中已知的不经意洗牌和条件交换协议(例如 [20,37])作为基本构建模块,参照 [35] 中提出的协议,构造一种在共享向量而非加密向量上操作的 F H CRS i ∗ 的秘密共享变体。
3.2. 二元运算
以下描述二元运算的两个功能可作为基于同态加密的SMPC协议中的构建模块。
定义9 (F H XOR(异或(XOR))) . 设 PA持有比特 b ∈{0, 1}, PB持有比特 b′ ∈{0, 1}。则功能 F H XOR由(E(b ⊕ b′)) ← F H XOR(b, b′)给出。
定义 10 (F H XAX(异或‐与‐异或)) 。 设 PA 包含两个比特 bA, b′ A ∈{0, 1},且设 PB 包含两个比特 bB, b′ B ∈{0, 1}。则功能 F H XAX 由 (λ, E(bout)) ← F H XAX((bA , b′ A),(bB , b′ B)) 给出,其中 bout=(bA ⊕ b B) ∧(b′ A ⊕ b′ B)。
在设计实现功能 F H XAX的协议时(见协议 1),关键是要注意到 (bA ⊕ b B) ∧(b′ A ⊕ b′ B)的计算 可以写成
(bA ⊕ b B) ∧(b′ A ⊕ b′ B)
=(bA −2 · bA · bB+ b B)·(b ′ A −2 · b ′ A · b ′ B+ b ′ B)
= b A · b ′ A + b A · b ′ A ·(−2 · b ′ B)+ b A · b ′ B + b A · b ′ A ·(−2 · bA)+ b A · b ′ A · 4 · bB · b ′ B + b A ·(−2 · bB)· b ′ B + b ′ A · bB+ b ′ A ·(−2 · bB)· b ′ B + b B · b ′ B (1)
引理1。 设 P A 包含两位 b A 、 b ′ A ∈{0, 1},且 P B 包含两位 b B 、 b ′ B ∈{0, 1}。则协议π H XAX 在半诚实模型中安全地计算功能 F H XAX 。
协议1π XHAX用于计算 E((bA ⊕ bB)∧(b′ A ⊕ b′ B))
| PA: bA, b′ A | PB: bB, b′ B |
|---|---|
| 1. ebA= E(bA), eb′ A= E(b′ A) | |
| 2. ebA·b′ A= E(bA · b′ A) | |
| 3. ebA·b′ A −−−−−−−−−−−−−−−−−−−−−−→ eb′ A ,, | |
| 4.e(bA⊕bB)∧(b′ A⊕b′ B)= ebA·b′ A +h ebA·b′ A ×h(−2 · b′ B) B +h ebA·b′ A ×h(−2·bB) +h ebA·b′ A×h(4·bB·b′ B) +h ebA ×h(−2 · bB · b′ B) +h eb′ A ×h bB +h eb′ A ×h(−2 · bB · b′ B) +h E(bB · b′ B)+h E(0) | |
| 5.输出 λ | 6.输出e(bA⊕bB)∧(b′ A ⊕b′ B) |
表1 模拟器 SB forπXAX
SB的输入: xB=(bB, b′ B), FB= E((bA ⊕ bB)∧(b′ A ⊕ b′ B))
SB:
- 选择 〈ebA〉,〈eb′ A 〉,〈ebA·b′ A 〉 ←$ C. 〉,〈eb ′ A 〉,〈ebA·b ′ A 〉)。
- 选择 〈r1〉,〈r2〉 ←$ Z ∗ N 。
-
设置 〈r˚B〉:=(〈r1〉,〈r2〉)。
SB 的输出:(〈xB〉,〈r˚B〉,〈mB,1〉)
证明. (CDDO.) 由公式(1)直接可得, π H XAX的解密输出对应于(bA ⊕ bB) ∧(b′ A ⊕ b′ B),因此分布正确。 (COD.) 由于e (bA ⊕b B)∧(b ′ A ⊕b ′ B )在协议1的步骤4最后一次同态加法中被随机化,且底层密码系统是语义安全的,因此分布{F H XAX(xA, xB)}xA ,x B和{OUTPUT π H XAX(xA, xB)}xA ,x B在计算上不可区分,其中 xA=(bA, b′ A)和xB=(bB, b′ B)。 (CVD.) 由于 P A在参与 π H XAX期间未从 P B接收到任何消息,因此只需构造一个模拟器SA,该模拟器生成的记录在给定各方输出的条件下与VIEWπ H XAX A 计算上不可区分,其仅需模拟 P A为计算 b A、 b′ A 和(bA · b′ A)的加密而生成的三个随机数即可。在构造模拟器 SB(见表1)时,需要模拟(ebA , e b ′ A , e b A ·b ′ A )以及 Z ∗ N 中由 P B用于计算密文 E(bB · b′ B)和 E(0)的随机数(参见步骤4, 协议1)。类似于 SA,可通过对 Z ∗ N 中均匀随机选取两个值来模拟P B加密所使用的随机数。由于底层密码系统是语义安全的, SB 只需从 C中均匀随机选择三个元素即可模拟所学习到的消息。在各方输出的条件下(P A 没有任何输出),VIEWπ H XAX B 与 SB 的输出计算上不可区分。
4. 两个区间的隐私性保护操作
利用上述构建模块,以下提出了针对两个私有区间 IA(由 PA提供)和 IB(由 PB提供) 的各种操作的新型隐私保护协议,这两个区间的可能排列方式如图1所示。显然,前四个协议 (见第4.1–4.4节)的计算、通信和轮次复杂度为 O(1)(对于固定的安全参数)。关于在重叠 区间内采样随机子区间的协议复杂度将在第4.5节中更详细地讨论。对于每个操作,均形式化了 相应的功能,并提出了基于同态加密的协议以及基于秘密共享的协议。基于同态加密的协议及 其安全证明将被详细讨论。基于秘密共享的协议通过描述如何修改相应的基于同态加密的协议 来呈现。第一个基于秘密共享的协议提供了详细的安全性证明,而其他协议的安全性证明仅简 要概述,可参照第一个证明类似地完成。
4.1. 区间重叠测试
定义11 (Fapp TIO(测试(T)区间(I)重叠(O))) . 设 PA和 PB分别包含区间 IA和 IB。那么,功能F H TIO由 (E(bout), λ) ← F H TIO(IA, IB)给出,功能 F S TIO由(bout) ← F S TIO(IA, IB)给出,其中 bout ∈{0, 1}表示 IA ∩ IB = ∅是否成立。
为了设计实现 Fapp TIO的协议,关键在于认识到两个区间 IA、 IB发生重叠当且仅当
lA< uB ∧ lB< uA
(参见图1)。基于这一观察,实现 Fapp TIO的协议的主要思想是利用安全 比较,并以保护隐私性的方式对比较结果进行逻辑与操作的计算。
实现 F H TIO的协议。 基于门限同态加密并实现 F H TIO的协议必须确保任何参与方都无法获知两次 所需比较操作的中间结果。因此,采用一种提供共享输出的安全比较协议(见第 3节),使得 每个参与方的输出比特可在后续协议步骤中使用,而不会泄露比较结果(见协议 2)。为了得到最终结果 E(bout),需将来自 π H SC-SOLT(lA, uB)和 π H SC-SOGT (uA, lB)的共享输出比特按 bout=(bA,0⊕bB,0)∧(bA,1⊕bB,1)进行组合。这可通过利用协议 π H XAX以隐私保护的方式实现(见 第 3节)。
协议实现 F S TIO。 基于秘密共享的协议的特性允许采用更直接的方法来设计 F S TIO 的协议。首先,双方共同计算 (b0) ←π S SCLT (lA, uB) 和 (b1) ← π S SCLT (uA, lB)。然后通过计算 bout=b0 · b1 将结果合并,构成协议输出。注意,无需对 bout 进行重新共享以获得独立于输入份额的输出份额,因为该要求已由乘法操作满足。
协议2π THIO用于检查 IA ∩ IB?= ∅
| PA: IA=[lA, uA] | PB: IB=[lB, uB] |
|---|---|
| 1. (bA,0, bB,0) ←π SHC-SOLT(lA, uB) | |
| 2. (bA,1, bB,1) ←π SHC-SOGT(uA, lB) | |
| 3. (E(bout), λ) ←π XHAX((bA,0, bA,1),(bB,0, bB,1)) | |
| 4.输出 E(bout) | 5.输出 λ |
表2 模拟器 SA用于π THIO
SA 的输入: xA= IA=[lA, uA], FA= E(bout)
SA:
- 选择 〈bA,0〉,〈bA,1〉 ←${0, 1} 并设置 〈mA,1〉:= 〈bA,0〉 和 〈mA,2〉:= 〈bA,1〉。
- 集合 〈mA,3〉:= 〈E(bout)〉:= E(bout)
-
集合 〈r˚A〉:= λ。
SA 的输出:(〈xA〉,〈r˚A〉,〈mA,1〉,〈mA,2〉,〈mA,3〉)
定理 1. 设 PA 和 PB 分别持有区间 IA 和 IB。那么,
4. 两个区间的隐私性保护操作(续)
4.2. 计算重叠区间的边界
定义12 (Fapp OI(重叠(O)区间(I))) . 设 PA和 PB分别表示区间 IA和 IB。则功能 F H OI由 ((E(x), E(y)), λ) ← F H OI(IA, IB)给出,功能 F S OI由(x, y) ← F S OI(IA, IB)给出,其中 x= lo和 y= uo当 IA ∩ IB = ∅成立时成立,否则为 x= y= 0。
为了设计实现 Fapp OI的协议,首先必须确定IA和 IB的相对对齐方式如何影响重叠的位置 (参见图1)。假设 Io = ∅,区间的相对对齐方式仅由lA与 lB之间的关系以及uA与 uB之间的 关系决定。因此, Io的精确边界可推导如下:
lA< lB ∧ uA< uB ⇒ lo= lB ∧ uo= uA (cf. Fig. 1(e)),
lB< lA ∧ uB< uA ⇒ lo= lA ∧ uo= uB (cf. Fig. 1(b)),
lA< lB ∧ uB< uA ⇒ lo= lB ∧ uo= uB (cf. Fig. 1(d)),
lB< lA ∧ uA< uB ⇒ lo= lA ∧ uo= uA (cf. Fig. 1(c)).
从公式(2)–(5)可以得出的关键结论是 lo= max(lA, lB)和 uo=min(uA, uB)。
实现 F H OI 的协议。 π H IS-GT-SCOT 和 F H IS-LT-SCOT 来计算 I o 的加密边界。然而,如果 I o= ∅, P A 不得获知关于 P B 的区间边界的任何信息。因此,各方首先在 I A 和 I B 上调用 F H TIO 的实现,以确定 E(bout),其中 bout 表示区间是否重叠,并将该密文用于后续计算(见协议3)。需要注意的是,在 I A 和 I B 不重叠的情况下,直接解密 E(bout) 并中止是不够的。否则, P B 将得知不存在重叠,这超出了根据定义12 所允许 P B 获知的信息量。相反, P A 将 E(bout) 发送给 P B,然后双方使用同态标量乘法分别计算 E(l ′ A)、 E(u ′ A) 和 E(l ′ B )、E(u ′ B )(参见协议3)。结果,如果 bout= 0,则值 l ′ A 、 l ′ B 、 u ′ A 和 u ′ B 将相等零,同样地重叠部分也不会向 P B 泄露结果。在 bout= 1的情况下, l′ A、l′ B、 u′ A和 u′ B在标量乘法下保持不变,并返回 Io的正确加密边界。
协议3π OHI用于计算 Io= IA ∩ IB
| PA: IA=[lA, uA] | PB: IB=[lB, uB] |
|---|---|
| 1. (E(bout), λ) ←π THIO(IA, IB) | |
| 2. E(bout) −−−−−−−−−−−→ | |
| 3. E(l′ A)= E(bout)×h lA+h E(0) | 4. E(l′ B)= E(bout)×h lB+h E(0) |
| 5. E(u′ A)= E(bout)×h uA+h E(0) | 6. E(u′ B)= E(bout)×h uB+h E(0) |
| 7. (E(lo), λ) ←π IHS-GT-SCOT((lA, E(l′ A)),(lB, E(l′ B))) | |
| 8. (E(uo), λ) ←π IHS-LT-SCOT((uA, E(u′ A)),(uB, E(u′ B))) | |
| 9.输出 (E(lo), E(uo)) | 10.输出 λ |
表3 模拟器 SA forπ OHI
SA的输入: xA= IA=[lA, uA], FA=(E(lo), E(uo))
SA:
- 选择 〈E(bout)〉 ←$ C 并设置 〈mA,1〉:= 〈E(bout)〉。
- 设置 〈mA,2〉:= 〈E(lo)〉:= E(lo)。
- 设置 〈mA,3〉:= 〈E(uo)〉:= E(uo)。
-
设置 〈r˚A〉:= λ。
SA 的输出:(〈xA〉,〈r˚A〉,〈mA,1〉,〈mA,2〉,〈mA,3〉)
实现协议 F S OI。 协议 π S OI可以按如下方式实现。首先,在 IA 和 IB 上计算 F S TIO,以获得一个共享位 bout,用于指示 Io = ∅。 bout 用于计算 l′ A = lA· bout、 l′ B = lB· bout、 u′ A = uA· bout 和 u′ B = uB· bout。接下来,双方计算 bl ← π S SCLT (l′ A , l′ B ) 和 bu ← π S SCLT (u′ A , u′ B ) 的共享比较结果,这些结果将用于协议输出的联合计算: lo= Rnd (l′ A · bl+ l′ B ·(1 −bl)),uo= Rnd(u′ A · bu+ u′ B ·(1 − bu))。
定理2. 设 P A和 P B分别持区间 I A和 I B。则协议 π H OI( π S OI)在半诚实模型中安全地计算功能 F H OI(F S OI)。
证明. (π H OI.) (CDDO.) 解密输出的分布的正确性由公式(2)–(5)得出的结论直接可得,且如果 I A ∩I B= ∅则 l′ A = u′ A = l′ B = u′ B = 0因此 l o= u o= 0如定义12所述。 (COD.) 关于π H OI的输出分布正确的论点与针对 π H TIO所提出的相同。 (CVD.) 首先考虑 PA 被破坏的情况。通过应用序列组合定理,只需让 SA (见表 3)模拟 E(bout)、 E(lo) 和 E(uo) 。由于 E(lo) 和 E(uo) 是 SA 的输入部分,因此只需模拟 E(bout),这可以通过从 C均匀随机。在各方输出的条件下(P B 没有输出),VIEW π H OIA在计算上与S A 的输出不可区分。对于 P B 被破坏的情况, S B 必须模拟 E(bout),这可以按照 SA的情况进行。此外, 〈E(bout)〉与 PA的输出相吻合,因为它们之间不存在可计算关系。 (π S OI.) (COD.) COD 源于 π H OI 的安全性证明,因为 π S OI 的实现遵循了 π H OI 的设计。 (CVD.) CVD 的推导与 π H TIO 的论证相同:通过应用顺序组合定理,模拟器只需模拟子协议调用的输出,包括乘法和再分享操作。由于这些值经过重新分享,彼此独立,因此可以通过从 Zp 中均匀采样随机元素来模拟。
4.3. 计算区间重叠的宽度
定义13 (Fapp WIO(区间(I)重叠(O)的宽度(W))) . 设 PA和 PB分别持有区间 IA和 IB。则功能 F H WIO由 (E(ω), λ) ← F H WIO(IA, IB)给出,功能 F S WIO由(ω) ← F S WIO(IA, IB)给出,其中 ω= |Io| = |IA ∩ IB|。
实现的协议 F H WIO。 协议 π H WIO(见协议 4)规定双方首先通过调用 π H OI(IA, IB)来计算 Io的加密边界 E(lo)和 E(uo),其中只有 PA获知结果。接着, PA计算 Io的加密宽度: E(ω)= E(uo)−h E(lo)。
协议实现 F S WIO。 首先计算 (lo, uo) ← F S OI(IA, IB),然后执行本地减法 ω= uo − lo,其中 ω 构成协议输出。
定理3. 设 PA和 PB分别持有区间 IA和 IB。那么,协议π H WIO(π S WIO)在半诚实模型中安全地计算功能 F H WIO(F S WIO)。
证明. (π H WIO.) (CDDO.) 显然, π H WIO的解密输出分布正确,因为 IA ∩ IB的宽度源自重叠区间的边界之差,而这些边界由π H OI提供。 (COD.) 由于 E(lo)和 E(uo)是 I o边界的最新加密,因此 E(bout)可被视为bout的最新加密,且独立于 π H WIO的输入。 (CVD.) 在 PA被攻破的情况下, SA首先选择 〈E(lo)〉 ←$ C然后计算 〈E(uo)〉为 〈E(lo)〉+h E(ω)以模拟 E(lo)、 E(uo)和 E(ω)在 π H WIO中的关系(参见表 4)。通过应用顺序组合定理并利用底层密码系统是语义安全的这一事实,可得出模拟视图在计算上不可区分于 VIEWπ H WIO A (以各方的输出为条件)。在 PB被攻破的情况下, SB只需输出 〈xB〉和一条空的随机带以模拟 VIEWπ H WIO B 。 (π S WIO.) (COD.) 由于 π S WIO 的设计与 π H WIO 的设计相同,COD 直接源于 π H WIO 的安全性。 (CVD.) 模拟 Pi( i ∈{A, B}) 的 VIEW 的过程与 π H WIO 类似: Si 选择 〈l o i〉 ←$Z p 并计算 〈uo i〉 为 〈l o i〉+ ω i 。从 Zp 中均匀随机地选择 〈l o i〉 可确保 〈uo 〉 在 Zp 中也是均匀分布的。关于 Si 的输出与 VIEWπ S WIO i 计算上不可区分的论证,与 π S OI 的情况相同。
协议4π WHIO用于计算 ω= |IA ∩ IB|
| PA: IA=[lA, uA] | PB: IB=[lB, uB] |
|---|---|
| 1. ((E(lo), E(uo)), λ) ←π OHI(IA, IB) | |
| 2. E(ω)= E(uo)−h E(lo) | |
| 3.输出 E(ω) | 4.输出 λ |
表4 模拟器 SA forπ WHIO
SA的输入: xA= IA=[lA, uA], FA= E(ω)
SA:
- 选择 〈E(lo)〉 ←$ C 并设置 〈mA,1〉:= 〈E(lo)〉。
- 计算 〈mA,2〉:= 〈E(uo)〉= 〈E(lo)〉+h E(ω)。
-
设置 〈r˚A〉:= λ。
SA 的输出:(〈xA〉,〈r˚A〉,〈mA,1〉,〈mA,2〉)
4.4. 确定重叠宽度是否超过阈值
定义14 (Fapp TWIO) 。 设 PA持有区间 IA , PB持有 IB和阈值 ω。则功能 F H TWIO由 (E(bout), λ) ← F H TWIO(IA,(IB,ω))给出,功能(bout) ←F S TWIO((IA, ω),(IB, ω)),其中 bout 表示 |Io| ω是否成立。
实现的协议 F H TWIO。 首先,双方共同执行 π H WIO,使得 PA获得重叠区间 Io的加密宽度 E(ωo)。其次,双方执行 (oA, oB) ← π H SC-SOGTE(E(ωo), E(ω))的操作,随后共同计算 π H XOR(oA, oB),其返回一个加密比特给 PA,用以指示是否 |IA ∩ IB| ω(见协议 5)。
实现F S TWIO的协议。 类似于 F H TWIO,可以通过首先执行 π S WIO(IA, IB)来计算 ωo的共享,从而构造出实现功能 F S TWIO的协议。接着,通过调用(bout) ← π S SCGTE (ωo, ω)检查ωo ω。后 一子协议的结果是一个表示比较结果的共享位,该共享位构成该协议的输出。
定理4. 设P A和 P B分别持有区间 I A和 I B,以及宽度 ω。则协议π H TWIO(π S TWIO)在半诚实模型中安全地计算功能 F H TWIO(F S TWIO)。
证明. (π H TWIO .) (CDDO.) 显然, bout= o A ⊕ o B表示 |IA ∩ I B| = ω0 w。因此, bout根据定义14正确分布。 (COD.) π S TWIO的输出分布正确的论证与 π H TI情况下的论证相同 O . (CVD.)SA模拟一个被破坏方 PA的方法在表 5中给出。由于底层密码系统是语义安全的,且 oA在 {0, 1}中均匀分布,并且独立于π H SC-SO GTE 的输入, E(ωo)和 o A可以从其相应域中均匀随机选取。通过应用顺序组合定理,模拟视图在计算上不可区分与VIEW π H TWIO A (在各方输出的条件下)。 S B 仅选择 〈oB 〉 ←${0, 1}。由于协议输出是 b out 的一个新加密,因此在 〈bout〉 和 E(bout)。在各方输出的条件下, SB的输出与VIEWπ THWIO B是计算上不可区分的。 (π S TWIO的设计与π H TWIO相同(对于π S TWIO,协议5的步骤2和步骤3一致),COD直接由 π H TWIO的安全性得出。 (CVD.) π S TWIO的正确视图分布与 π S TIO的论证相同:根据顺序组合定理,对于 Si(i ∈ P)而言,模拟一个被破坏方 Pi只需选择〈ωoi〉 ←$ C并设置 〈bouti〉:= bouti,因为在 π S TWIO ωo和 bout中二者相互独立。
协议5π THWIO用于检查 |IA ∩ IB| ? ω
| PA: IA=[lA, uA] | PB: IB=[lB, uB],ω |
|---|---|
| 1. (E(ωo), λ) ←πW HIO(IA, IB) | |
| 2. (oA, oB) ←π SHC-SOGTE(E(ωo), E(ω)) | |
| 3.(E(bout)) ←π H XOR(oA, oB) | |
| 4.输出 E(bout) | 5.输出 λ |
表5 模拟器 SA forπ THWIO
SA的输入: xA= IA=[lA, uA], FA= E(bout)
SA:
- 选择 〈E(ω0)〉 ←$ C 并设置 〈mA,1〉:= 〈E(ω0)〉。
- 选择 〈oA〉 ←${0, 1} 并设置 〈mA,2〉:= 〈oA〉。
- 设置 〈mA,3〉:= 〈E(bout)〉= E(bout)
-
设置 〈r˚A〉:= λ。
SA 的输出:(〈xA〉,〈r˚A〉,〈mA,1〉,〈mA,2〉,〈mA,3〉)
4.5. 计算重叠内的随机子区间
定义15 (F app RSI(随机子区间选择)) 。 设 PA和 PB分别持有区间 IA和IB。此外,令 ω = 0和 ωmax = 0为公开已知的阈值,使得ω |IA ∩ IB| ωmax。则功能 F H RSI由 ((E(lr), E(ur)), λ) ← F H RSI(IA, IB)给出,功能 F S RSI由(lr, ur) ← F S RSI(IA, IB)给出,其中[lr, ur]是宽度为ω的 I o的一个随机选择的子区间。
提出了一种基于同态加密的协议,其实现 F H RSI的通信与计算复杂度为 (ω 2 ) (ω 2 )(固定安全参数下),其中 ω := ωmax −ω+ 1,该方案出自[13]。以下提出一种新的实现F H RSI的协议,其通信与计算复杂度为(ω)。核心思想是加密所有可能的区间宽度,然后利用功能 FCRS i ∗ 的实现(见第3节)来随机选择一个左区间边界 l r,使得当 u r被设置为 l r+ ω时, I r=[lr , u]是 I o的一个随机子区间。需要注意的是,条件随机选择的通信复杂度主导了 π H RSI 和 π S RSI 的通信复杂度。基于同态加密的条件随机选择(π H CRS 2 )具有(ω)量级的通信复杂度,而基于秘密共享的条件随机选择变体(包括π S CRS 2 )的通信复杂度为(ω logω)[35]。
实现 F H RSI的协议。 在实现功能 F H RSI的协议 π H RSI中(见协议6),双方首先通过调用π H OI(IA, IB)和PA来计算 Io= IA∩ IB的边界E(lo)和 E(uo),并由PA获知计算结果。随后, PA创建一个加密向量 E(L1),其中包含从0到ωmax−ω的所有整数的加密值,接着计算一个密文 E(),满足 = uo−lo−ω(参见步骤3,协议6),并将计算结果发送给 PB。在步骤5中,双方生成一个加密指示器向量E(L2),其中包含密文 E(L2[i])(1 i ωmax −ω+ 1), L2[i]用于指示 L1[i] 。 为了生成 E(L2[i])的各项,双方调用π H SC-SOLTE(E(L1[i]), E()),并通过协议 π H XOR隐秘地组合各自的私有输出比特。下一步,双方执行协议π H CRS2((E(L1), E(L2)))以获得(E(v1), E(v2)),其中 v1是从 [0,]中均匀随机选择的一个元素,且 v2= 1,因为假设存在至少宽度为ω的重叠(参见定义15)。 为了得到Ir的有效左右边界, PA计算 E(lr)= E(v1)+h E(lo)和 E(ur)= E(lr)+h E(ω)。所得区间 Ir=[lr, ur]是Io和 |Ir| = ω的一个子区间。最后, PA输出(E(lr), E(ur))。
实现该协议的 F S RSI。 一个基于秘密共享的协议,用于实现 F S RSI,可以类似地构造,如同 π H RSI。与调用实现 F S SC-SOLTE的协议不同,基于秘密共享的协议只需利用 π S SCLTE对 F S SCLTE的实现即可。在协议 6的步骤5中调用的不经意异或操作可以省略,因为与 π H CRS2不同, π S CRS2是对共享进行操作。
定理5. 设 PA和 PB分别持有区间 IA和 IB,且 ω和 ωmax为公开已知的阈值,满足 ω |IA ∩ IB| ωmax。则协议 π H RSI(π S RSI(F S
证明. (π H RSI.) (CDDO.) 在协议6的步骤2–5中,构造了两个加密向量 E(L1), E(L2),使得E(L1) 包含[lo, uo]所有可能区间宽度的加密值,而 E(L2)包含布尔值,每个值指示E(L1)中对应项的明文是否在 N中。对 E(L1), E(L2)应用 π H CRS2 ,得到一对(E(v1), E(v2)),其中 E(v1)是从 N中均匀随机选取的加密整数, E(v2)是值为1的加密指示器。将加密的下区间边界计算为 E(lr)= E(v1)+h E(lo),上区间边界计算为E(ur)= E(lr)+h E(ω),从而得到一个从[lo, uo] 中均匀随机选择的加密子区间,使得lr和 ur的分布符合定义15的规定。 (COD.) T正确输出分布π H RSI源于π H RSI的输出值这一事实 是新鲜因的为加 E密(v1)和 E(lo)是 v1和 lo的新鲜加密,所以 lr和 ur的选项 (CVD.) 首先考虑 PA 被攻破的情况。 SA(见表6)需要模拟 PA 的随机带 r˚A、一次对 π H OI 的调用、 ω 次对 π H SC-SO LTE 和 π H XOR 的调用,以及一次对 π H CRS 2 的调用。根据 π H OI、 π H SC-SO LTE 、π H XOR 的构造方式以及底层密码系统是语义安全的这一事实,可知在每次调用 π H SC-SO LTE 时,I A、 E(lo)、 E(uo)、 E(L1)、 E(L2) 与 PA 的输出 oA 之间不存在可计算关系。因此,可以通过从 Z ∗ N 中均匀随机选择 ω+ 1 个值来模拟 PA 的随机带,其中 ω 个值在协议6的步骤2中隐式用于构建 π H CRS 2 ,另一个值用于计算 ω 的加密(协议6的步骤3)。通过应用顺序组合定理,对于 SA 而言,只需如上所述,从各自对应的域中均匀随机选择 〈E(lo)〉 、 〈E(uo)〉 、每个 〈oA〉 以及 〈E(L2)〉 的条目,即可模拟 PA 对 π H OI 、 π H SC-SO LTE 和 π H XOR 的输出。为了模拟 π H CRS 2 的输出, S A 必须考虑 E(lo) 、 E(v1) 与 E(lr) 在 π H RSI 中的关系: 〈E(v1)〉 必须被模拟为 E(lr) − h〈E(lo)〉 。
协议6π RHSI,用于从 IA ∩ IB中选择一个宽度为ω的随机 子区间
| PA: IA,ω,ωmax | PB: IB,ω,ωmax |
|---|---|
| 1. ((E(lo), E(uo)), λ) ←π OHI(IA, IB) | |
| 2. E(L1)=(E(0),…, E(ωmax −ω)) | |
| 3. E()= E(uo)−h E(lo)−h E(ω) | |
| 4. E(L1) E() −−−−−−−−−−−−−−→, | |
| 5.对于 i= 1到ωmax −ω+ 1执行 (oA, oB) ←π SHC-SOLTE(E(L1[i]), E()) (E(L2[i])) ←π XHOR(oA, oB) | |
| 6. ((E(v1), E(v2)), λ) ←π HCRS2((E(L1), E(L2))) | |
| 7. E(lr)= E(v1)+h E(lo) | |
| 8. E(ur)= E(lr)+h E(ω) | |
| 9.输出 (E(lr), E(ur)) | 10.输出 λ |
表6 模拟器 SA 对于 π RHSI 的 描述
SA 的输入: xA= IA=[lA, uB], FA=(E(lr), E(ur)),ω,ωmax
SA:
- 选择 〈E(lo)〉,〈E(uo)〉 ←$ C 并设置 〈mA,1〉:= 〈E(lo)〉, 〈mA,2〉:= 〈E(uo)〉。
- 选择 〈ri〉 ←$ Z ∗ N(i ∈ Nω +1) 并设置 〈r〉:= 〈r1〉 ‖ ··· ‖ 〈rω+1〉, 〈r˚A〉:= 〈r〉。
- 对于 i= 1到ω: 3.1. 选择 〈oA〉 ←${0, 1},设置 〈mA,3,i〉:= 〈oA〉。 3.2 选择 〈E(L2[i])〉 ←$ C,设置 〈mA,4,i〉:= 〈E(L2[i])〉。
- 设置 〈mA ,3〉:= 〈mA,3,1〉 ‖ ··· ‖ 〈mA,3,ω 〉和 〈mA ,4〉:= 〈mA,4,1〉 ‖ ··· ‖ 〈mA,4,ω 〉。
- 计算 〈E(v1)〉= E(lr) −h 〈E(lo)〉,设置 〈mA,5〉:= 〈E(v1)〉。
-
选择 〈E(v2)〉 ←$ C并设置 〈mA,6〉:= 〈E(v2)〉。
SA的输出:(〈xA〉,〈r˚A〉,〈mA,1〉,…,〈mA,6)〉
相比之下, E(v2)可以被模拟为〈E(v2)〉 ←$ C。在各方输出的条件下,VIEWπ H RSI A 与 SA的输出是 计算上不可区分的。反过来, SB选择 〈E(L1)〉 ←$ C、 〈E()〉 ←$ C,每个〈oB〉 ←${0, 1}以及 〈E(L2[i])〉 ←$ C(i ∈ N ω ) 。由于 P B的视图与 P A的输出之间不存在计算关系,因此 SB的输出在计算上与VIEWπ H RSI B 不可区分(以各方的输出为条件)。 (π S S π H RSI的设计相同(对于 π S 6的步骤5中的两条指令一致)。因此,π S π H RSI的安全性。 (CVD.) 对于 π S RSI ,被破坏方视图的模拟遵循与 π H RSI 相同的论证过程。所获得的共享份额彼此独立,因此可以通过从 Zp 中均匀采样来进行模拟。至于 π H RSI ,唯一的例外是 v1、 l r 和 l o 之间的相关性,这可以通过 Si(i ∈ P) 模拟为 〈v1i〉= l r i −〈l o i〉 。
5. 性能评估
本节全面评估了新型隐私保护的两方区间操作在运行时间(协议执行持续时间)和网络性能(协议执行期间通信的累积比特数)方面的表现。性能评估的目标是确定协议输入参数(同态加密情况下的密钥长度,秘密共享情况下的域大小)以及实现方法对性能的影响。基于同态加密的协议是在[27],中介绍的SMC‐MuSe框架的扩展基础上实现的,而基于秘密共享的协议则使用SEPIA框架实现[8]。SMC‐MuSe框架[27]采用Java实现,利用Paillier密码系统,并提供针对多集的隐私保护操作。本文作者扩展了该框架以支持标准数据类型,并实现了在安全多方计算(SMPC)环境中有用的基本功能,例如安全的位和整数运算以及不经意传输。 SMC‐MuSe支持Paillier密码系统的任意密钥长度。SEPIA是一个基于Java的框架,采用 Shamir的秘密共享方案。除了提供一组基本的隐私保护算术操作外,SEPIA还允许实现新的构建模块。SEPIA的一个特定特点是其区分两种类型的参与方:输入对等方和隐私对等方。输入对等方仅向隐私对等方提供先前已共享的输入数据,而隐私对等方执行实际的计算步骤并计算输出结果,再将结果返回给输入对等方。与SMC‐MuSe不同,SEPIA仅限于处理最多64位的整数。
首先,性能测试旨在全面评估两种SMPC方法,以分别实现隐私保护区间操作。同时,还比较了这两种方法在区间边界预期比特大小方面的运行时间和网络性能。鉴于实现环境和设置的不同,本评估并非用于得出某一种方法优于另一种方法的普遍性结论。
5.1. 测试环境
同态加密区间协议的实现设置包含两个各自运行单方的过程,而基于秘密共享并通过 SEPIA实现的协议则需要两个输入对等方和三个隐私对等方,因为每种新型协议中都需要进行共享值的乘法运算(参见第2.2节的讨论)。对于这两种实现变体,通信均通过TCP/IP回环接口进行。所有测试均在一台配备2.93 GHz Intel i7处理器、16 GB内存并运行Ubuntu Linux 14.04的Dell OptiPlex 980上执行。
影响基于同态加密的协议性能的关键输入参数是密钥长度。基于秘密共享的协议的性能取决于域大小,而域大小又决定了可用作协议输入的整数区间边界的最大位大小(与支持边界量级达到密钥长度的同态加密变体相比,该值相对较低)。因此,SEPIA 中实现的协议针对 32、 48 和 64 位的不同域大小进行了评估。 两种方法的直接比较基于输入区间的边界比特长度。更准确地说,对于分别低于32、48和64位的区间边界,其性能将基于秘密共享的协议的结果与基于同态加密的协议在2048位固定密钥大小下的结果进行了比较。5 对于固定的密钥长度/域大小,区间边界可以从相应的明文空间/域中任意选择,而不会影响协议性能。对于每个测试实例,均对40次协议执行结果取平均值。
5.2. 测量结果与讨论
图2(以及图3)中展示的图表显示了 π H TIO、 π H OI、 π H WIO和π H TWIO(以及π S TIO、π S OI、π S WIO和 π S TWIO)的实现中,密钥长度(以及域大小)与运行时间以及网络性能之间的相关性。对于π H RSI和π S RSI的性能评估(见图4)还考虑了参数ω,该参数会影响这两个协议的计算与通信复杂度。在图3中,还额外绘制了基于2048位密钥的同态加密对应方案的运行时间 (以及通信流量),以便对两种SMPC方法进行比较。
区间边界的最大允许位长度。请注意,由于协议π H OI和π H WIO(以及π S OI和π S WIO)具有相似性, 它们的性能几乎相同。
运行时间。 基于同态加密的协议 π H TIO, π H OI, π H TWIO在1024和2048位密钥长度下的运行时间低于7.5秒。协议 π H TIO甚至可在约100毫秒内完成。将密钥长度从2048位增加到4096位会使运行时间增加八倍。基于秘密共享的相应协议的运行时间介于6.5到33秒之间,具体取决于底层的域大小。域大小翻倍会导致运行时间增加约1.7倍。在支持的区间边界比特长度方面,比较基于同态加密的协议(固定2048位密钥长度)与基于秘密共享的对应协议,结果表明π H TIO,π H OI, π H WIO和π H TWIO的运行速度明显更快(见图3,左图)。在64位区间边界时测得最大差异,其中 π H TWIO比π S TWIO快约4.4倍。
从给定的私有重叠区间随机计算子区间的操作比其他所述区间操作更为复杂。其π S RSI的运行时间根据和底层域大小的不同,范围从20秒到4.5分钟。需要注意的是,对于 ω,域大小对协议运行时间的影响较小,如图4所示。但对于π H RSI,该结论不成立,其运行时间范围为4秒至5小时(超过1小时的运行时间仅出现在4096位密钥和ω> 27的情况下)。比较π H RSI(固定2048位密钥长度)和π S ω 4协议π S 度显著更快(见图4)。这一结果的原因在于,用于子协议π S CRS i ∗ 中的向量洗牌实现(以私有计算 v1和 v2)基于矩阵乘法,而矩阵乘法得益于SEPIA并行化一组独立的份额乘法的特性(见[8])。这种优势的程度随着ω 的增大而增加,因为{v58}决定π S CRS i ∗ 中的矩阵维度。
网络性能。 对于 π H TIO 、 π H OI 、 π H WIO 和 π H TWIO ,累积的数据量在4到93千字节之间(取决于协议和密钥大小),而相应的基于秘密共享的协议需要700千字节到3.5兆字节(取决于协议和域大小)。 π H RSI 和 π S RSI 的实现所涉及的通信数据量要大得多:具体取决于输入参数上, π H RSI

289

被折叠的 条评论
为什么被折叠?



