该文章转载自本人的知乎专栏,有兴趣的小伙伴可以来我的专栏学习更多相关知识,包含了同态加密、安全多方计算、机器学习和联邦学习、近世代数等。下面是我的知乎文章首页,可以点专栏去查看确定方向的文章。所有相关文章都会在我的知乎专栏首发。
https://www.zhihu.com/people/an-quan-xiao-qi/posts
喜欢我的创作的朋友,别忘了去知乎关注我哦,我在知乎等你~
Abstract
数据共享在大数据分析、经济学和医学研究等许多领域已经变得至关重要,但当数据敏感时,仍然很难实现。 事实上,分享个人信息需要个人的无条件同意,或者往往由于隐私和安全原因而被简单地禁止。 在本文中,我们提出了Drynx,一个分布式的系统,用于分布式数据集的隐私意识 (privacy-conscious) 统计分析。 Drynx依赖于一组计算节点来实现诸如标准差或极值等统计数据的计算,以及对敏感和分布式数据的机器学习模型的训练和评估。为了确保数据机密性和数据提供者的隐私,Drynx结合了交互协议、同态加密、正确性的零知识证明和差异隐私。 它能够对输入数据和系统的所有计算进行有效和分布式的验证,从而在一个强大的对抗性模型中提供可审计性,在这种模型中,任何实体都不需要单独被信任。 Drynx是高度模块化、动态化和可并行化的。 我们的评估表明,它能够在不到 2 2 2 秒的时间内在 12 12 12个数据提供者之间分布的数据集( 12 12 12个特征和 60 60 60万条记录)上训练Logistic回归模型。 计算分布在 6 6 6个计算节点之间,Drynx允许在不到 22 22 22秒内验证查询执行的正确性。
Index Terms
decentralized system, distributed datasets, privacy, statistics, machine learning, homomorphic encryption, zero-knowledge proofs, differential privacy.
分布式系统,分布式数据集,隐私,统计,机器学习,同态加密,零知识证明,差分隐私。
I. INTRODUCTION
为了得到有意义的结果,统计和机器学习分析往往需要大量的数据。 虽然数据存储和计算成本多年来有所下降(特别是由于低成本和强大的云计算解决方案),但共享这些数据仍然很麻烦。 每天生成大量数据,以跟踪个人的行为、健康、购物习惯、兴趣、政治和宗教观点[1],但隐私问题和道德/法律限制往往禁止或阻碍分享个人和敏感数据。 在欧洲,自2018年5月起生效的新的数据保护条例(GDPR) [2]要求:
- 个人数据的收集和使用只能在征得当事人同意的情况下进行;
- 数据在共享之前必须匿名或加密。
这导致了一个难题,特别是在人口、金融和卫生等领域,为了促进研究,数据必须共享,但它们也需要得到保护,以确保个人的基本隐私权。 跨境数据共享更具挑战性,因为各国之间的立法可能是不同的,迫使公司在地理上调整自己的隐私措施。
多个例子表明,即使可以共享数据,数据的集中也会产生严重后果,甚至影响到数亿人[3],[4];在Equifax事件[4]中,超过 1.43 1.43 1.43亿消费者(约占美国人口的 40 % 40\% 40%)的个人信息(包括社会安全号码和信用卡信息)被泄露。 集中式解决方案会受到多种威胁,因为中央数据库存储着来自多个相互不信任的来源的数据,对可能的攻击者来说是一个高价值的目标,同时容易导致单点故障风险。
现有的安全数据库解决方案[5]、[6]、[7]、[8]、[9]通常会在查询引擎之上增加一个加密层,或者专门关注 data-release 的隐私,例如,使用差分隐私。然而,这些解决方案大多有很大的性能开销,或者仍然是完全集中式的,因此要么有单点故障,要么在查询执行过程中不保护数据。
在这种情况下,分散的数据共享系统[10]、[11]、[12]、[13]、[14]引起了相当大的兴趣,是关注隐私的大数据分析的关键促成因素。通过分布式存储和计算,从而避免单点故障,这些系统能够实现数据共享,并最小化集中解决方案所产生的风险。 然而,其中许多系统依赖诚实且好奇或完全可信的第三方假设,如果要共享的数据是高度敏感、有价值、有影响力或私人的,这些假设可能无法提供足够的保证。其他具有更强威胁模型的解决方案,例如UnLynx[16],在它们支持的计算中受到限制,例如只支持求和。 此外,这些解决方案都没有考虑计算实体和数据提供者都可能是恶意的。
改进和使用UnLynx中引入的一些技术,我们提出了Drynx,这是一个可操作的、去中心化的和安全的系统,它使查询者能够计算统计函数,并对托管在不同来源的数据(即分布式数据集)上的机器学习模型进行训练和评估。Drynx确保数据机密性、数据提供者(DPs)隐私,并保护个人数据不受最终结果发布所产生的潜在推论的影响,即确保差分隐私。它还提供了计算的正确性。 最后,它确保了 strong outliers,无论是由DPs恶意输入还是错误输入,都不能影响超过一定限度的结果,我们通过结果鲁棒性来表示这一点。这些保证是在一个强大的对抗性模型中确保的,其中没有实体必须单独可信,系统的一小部分实体可能是恶意的。Drynx依赖于交互式协议、同态加密、零知识正确性证明和分布式差分隐私。它是可扩展的、动态的和模块化的。任何实体都可以在任何时候离开或加入系统,Drynx提供的安全特性或属性可以根据应用的不同而强制执行,例如,差分隐私。
本文我们做出以下贡献:
-
我们提出了Drynx,一种高效、模块化和并行的系统,它在分布式数据集上保护隐私的统计查询以及机器学习回归模型的训练和评估。
-
我们提出了一个系统,提供数据机密性和个人隐私,即使在一个强大的敌手面前。 它确保计算的正确性,保护数据提供者的隐私,并保证查询结果的健壮性。
-
我们提出了使查询执行具有充分和轻量级可审计性的技术。 Drynx依赖于一种新的高效分布式解决方案来存储和验证查询有效性、计算正确性和输入数据范围的证明。 我们通过使用区块链来举例和评估这个解决方案的实现。
-
我们提出并实现了一个高效、模块化和多功能的查询执行pipeline
-
引入了Collective Tree Obfuscation,这是一种新的分布式协议,它能够对加密数据进行集体和可验证的混淆;
-
提出了多种数据编码技术,能够对同态加密数据的高级统计数据进行分布式计算。 我们提出了新的编码,并对以前引入的私有聚合编码进行了改进和调整,使其符合我们的框架和安全模型;
-
将现有的输入范围验证的零知识方案适应我们的安全模型;
-
提出了在UnLynx[16]中引入的密钥交换协议的新结构,提高了其性能和能力。
-
据我们所知,Drynx是唯一提供上述安全和隐私保障的操作系统。 drynx实现可在www.github.com/ldsec/drynx中下载和适用。
II. RELATED WORK
基于隐私保护的数据共享和可信硬件解决方案的集中式系统通常需要一个实体,即一个中心实体或一个硬件提供者被信任,这容易导致单点故障问题 [8]、[17]、[18]、[19]。 尽管这些系统可以比分布式系统更有效率,但它们往往需要集中或外包数据存储,这违反了规定,或难以实现[21],可能不适合敏感数据。 在Drynx中,我们通过分布式数据存储、计算和正确性验证来避免这些问题,从而有效地分配信任。
为了在分布式数据集上执行查询和计算统计,多个去中心化的解决方案[10]、[12]、[14]、[22]、[23]、[24],[25]依赖于具有高表达能力的技术,如秘密共享和混淆电路。 这些解决方案通常在它们提供的计算中是灵活的,但通常假设(a)计算方诚实但好奇;(b)没有串通或两方模型。 此外,它们没有提供一种方法来检查系统中进行的计算。 虽然他们可能有效地分配信任,但当数据或计算的统计数据高度敏感时,他们强烈的诚实假设是有风险的。Bater等[10]实现了对一组不信任的数据提供者所托管的数据集的各种SQL查询的评估,但数据提供者和计算实体都是可信的,以遵循协议。Corrigan-Gibbs和Boneh[26]提出Prio,只要 n n n 中的一个计算实体是诚实的便能确保隐私,但在涉及的当事人都是诚实但好奇的情况下,它只保证最终结果的健壮性。 此外,Prio并不能防止各计算方相互勾结。
依赖同态加密[11]、[13]、[16]、[27]、[28]的系统往往在其提供的功能上受到限制(例如,仅限于和)。 与不太安全的同行相比,他们表现出高性能的开销,或者仍然依赖诚实但好奇的计算方。 在我们以前的工作中,我们提出了UnLynx[16],一个去中心化的系统,它能够在分布式数据集上计算(仅)和,并确保DPs的隐私和数据机密性。 UnLynx假设DPs是诚实但好奇的,与Drynx不同,它不能保证最终结果的健壮性。 此外,UnLynx没有为可审计性提供实用的解决方案。 在这项工作中,我们展示了如何克服这些限制,并提供了一个系统,使多个操作的安全计算能够适应一个更强的威胁模型。
对于以保护隐私的方式[13]、[27]、[30]、[31]、[32]、[33]、[34]、[35]和[36]对分布式数据的机器学习模型进行训练,提出了多种解决方案。 Mohassel和Zhang[30]提出了一种两方解决方案,即Secure ML;它能够训练特定的模型,例如线性回归。 Boura等人[31]提出了一种依赖于Logistic回归函数的新的和更灵活的近似的解决方案,但需要假设计算方是诚实但好奇的。Nikolaenko等人[27]和Juvekar等人[32]将同态加密和混淆电路相结合,分别进行脊(岭)回归和神经网络推理。 Aono等人[33]和Kim等人[13]依赖于同态加密来训练一个近似的Logistic回归函数。 zheng等人[36]将同态加密和分布式凸优化相结合,在他们的系统中称为Helen,以便协同训练线性模型。 最近,基于联合学习(依赖于差分隐私和边缘计算)的多种解决方案被提出[24],[37],[38],[39],[40],[41],[42]。 这些解决方案旨在保护生成的模型不受推理攻击[43],[44]。其中一些工作[37],[39]假设一个可信方持有数据,训练机器学习模型,并执行噪声添加,以实现差分隐私保证。 其他工作[24]、[29]、[38]、[45],[46]提出分布式设置的解决方案,其中双方在训练集全局模型的不受信任服务器的帮助下交换不同的私有模型参数。 这些方法在计算上是有效的,但通常需要很高的隐私预算来获得一个有用的集体模型(由于噪声的增加);因此,目前尚不清楚它们在实际[47]中实现了什么隐私保护。 为此,一些工作试图通过将差分隐私与同态加密[40]、[41]或多方计算技术[42]相结合,在分布式设置中获得更有用的模型。然而,大多数这些解决方案都是针对给定的操作而专门定制、参数化和优化的 (例如梯度下降),如果用于不同的操作需要重新设计。 最后,它们假设一个较弱的威胁模型,具有诚实但好奇的计算方,与Drynx不同,它们不能验证计算的正确性和结果的鲁棒性。
III. BACKGROUND
我们介绍了Drynx的主要组件和两个示例用例。 我们描述了用于分配信任和工作负载的加密工具。 我们介绍了我们用来实现我们的解决方案的区块链,以确保Drynx的正确性和可审计性。 最后,我们引入了差分隐私和verifiable shuffle 的概念,这是我们确保个人隐私的解决方案的核心。
A. Use Cases
我们展示了Drynx在医疗部门的效用,因为它是一个典型的例子,其中隐私是最重要的,数据共享是必要的。 最近,出现了多项举措,以实现个性化医疗的承诺,并应对医疗数据[48]、[49]、[50]日益数字化所带来的挑战。 在这种情况下,在保护患者隐私的同时共享高度敏感的医疗数据的能力正变得至关重要。 我们说明了Drynx在涵盖大多数医疗数据共享场景的两个特定设置中的可能使用:
- 医院数据共享(HDS),其中多家医院能够对其患者数据集进行统计计算和机器学习模型的训练(例如,[50]、[51]);
- 个人数据共享(PDS),其中一家医疗机构通过直接计算来自于人们的可穿戴设备中收集的数据(例如,[52]、[53])来进行研究,例如关于心脏问题的研究)。
B. ElGamal Homomorphic Encryption
Drynx需要一个加法同态的密码系统,我们选择依靠椭圆曲线ElGamal(ECEG)[54],它可以有效地使用零知识去证明其正确性[55]。 然而,Drynx的功能不受此选择的约束,可以与其他密码系统一起实现。 在有限域中,ECEG依赖于计算离散对数的困难问题;在这种情况下, Z p \mathbb Z_p Zp的椭圆曲线子群, p p p是一个大素数。 消息 m ∈ Z p m∈\mathbb Z_p m∈Zp的加密是 E Ω ( b ) = ( r B , m B + r Ω ) E_Ω(b)=(rB,mB+rΩ) EΩ(b)=(rB,mB+rΩ),其中 r r r是 Z p \mathbb Z_p Zp中的随机数, B B B是椭圆曲线 G G G上的基点, Ω Ω Ω为公钥。 符号表载于附录A。 加法同态性质表明,对于消息 m 1 , m 2 m_1,m_2 m1,m2和任意标量 α , β \alpha, \beta α,β,有 E Ω ( α m 1 β m 2 ) = α E Ω ( m 1 ) + β E Ω ( m 2 ) E_Ω(αm_1βm_2)=αE_Ω(m_1)+\beta E_Ω(m_2) EΩ(αm1βm2)=αEΩ(m1)+βEΩ(m2)。 为了解密密文 ( r B , m B + r Ω ) (rB,mB+rΩ) (rB,mB+rΩ),相应私钥 ω ( Ω = ω B ) ω(Ω=ωB) ω(Ω=ωB)的持有者将 r B rB rB和 ω ω ω相乘得到 ω ( r B ) = r Ω ω(rB)=rΩ ω(rB)=rΩ,进一步得到 m B = m B + r Ω − ω ( r B ) mB=mB+rΩ-ω(rB) mB=mB+rΩ−ω(rB)。 然后将结果 m B mB mB映射回 m m m,例如,通过使用哈希表。 Drynx依赖于定点表示来加密floating values。
C. Zero-Knowledge Proofs
普遍可验证的零知识证明(ZKPs)可用于确保计算完整性和证明加密数据在给定范围内。在Drynx中,我们选择使用Camenisch和Stadler介绍的关于离散对数的一般陈述的证明来验证计算完整性。这些证明使验证者能够检验证明者知晓公共值 Y 1 = y 1 B Y_1=y_1B Y1=y1B和 Y 2 = y 2 B Y_2=y_2B Y2=y2B的离散对数 y 1 y_1 y1和 y 2 y_2 y2,并且它们满足以下线性方程,
A 1 y 1 + A 2 y 2 = A , ( 1 ) A_1y_1+A_2y_2=A,\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (1) A1y1+A2y2=A, (1)
其中 A , A 1 , A 2 A,A_1,A_2 A,A1,A2是 G G G上的公共点。这是在没有透露任何关于 y 1 y_1 y1或 y 2 y_2 y2的信息的情况下完成的。
输入范围验证是依靠Camenisch和Chaabouni[56]提出的证明来完成的,通过这些证明,我们可以证明一个秘密信息 m m m位于给定范围 [ 0 , u l ) [0,u^l) [0,ul)内,其中 u u u和 l l l为整数,但不透露 m m m。并通过使用这些数字上的验证者签名对 u \rm u u- a r y \rm ary ary数字进行承诺。创建的 l l l个承诺向验证者证明 m ∈ [ 0 , u l ) m∈[0,u^l) m∈[0,ul)。我们在算法1中提出了这个适应我们框架的证明。最后,这两种证明都可以通过FiatShamir启发式[57]使之成为非交互式。
D. Interactive Protocols
交互式协议可以用来在多个计算节点 C N s CNs CNs之间分配计算和信任。在Drynx中,每个 C N i CNi CNi拥有一个私钥-公钥对 ( k i , K i ) (k_i,K_i) (ki,Ki),其中 k i k_i ki 是 Z p \mathbb Z_p Zp中的一个均匀随机标量, K i = k i B K_i =k_iB Ki=kiB是 G G G上的一个点。collective 公钥为 K = Σ i = 1 # C N K i K=\Sigma_{i=1}^{\#CN}K_i K=Σi=1#CNKi。 相应的私钥 k = Σ i = 1 # C N k i k=\Sigma_{i=1}^{\#CN}k_i k=Σi=1#CNki。永远不会被重构,从而使加密的信息成为只有在所有 C N CN CN参与的情况下,才可以通过使用 k k k来解密。攻击者必须侵入所有的 C N CN CN,才能解密消息。如第五节所示,为了产生预期的结果,Drynx协议需要所有 C N CN CN的参与。
E. Blockchains
区块链通常是一个公共的、只可追加的账本,由一组节点分布式维护,作为一个不可改变的账本[58],59]。其主要应用于加密货币[59],[60],但也用于其他领域,例如:医疗[61]。数据被捆绑成区块,这些区块通过维护节点的共识[62],[63]进行验证,每个区块包含一个指针(即指向前一个有效区块的加密哈希)、一个时间戳、一个nonce和应用特定的数据,这些区块的链条构成了区块链。
F. Differential Privacy
差分隐私是由Dwork[64]提出的一种在统计数据集上报告结果的隐私保护方法。该方法保证在数据集 D S DS DS上计算的给定随机统计量 M ( D S ) = R \mathcal M(DS)=R M(DS)=R,在邻近数据集 D S ′ DS' DS′上计算时,如果与 D S DS DS完全不同的元素,则表现相似。更正式地讲, ( ϵ , δ ) (\epsilon,δ) (ϵ,δ)-差分隐私[65]定义为 Pr [ M ( D S ) = R ] ≤ exp ( ϵ ) ⋅ Pr [ M ( D S ′ ) = R ] + δ \operatorname{Pr}[\mathcal{M}(D S)=R] \leq \exp (\epsilon) \cdot \operatorname{Pr}\left[\mathcal{M}\left(D S^{\prime}\right)=R\right]+\delta Pr[M(DS)=R]≤exp(ϵ)⋅Pr[M(DS′)=R]+δ,其中 ϵ , δ \epsilon,δ ϵ,δ是隐私参数∶它们越接近0,隐私级别越高。在函数 f ( D S ) f(DS) f(DS)的输出中加入噪声,可以从平均数为0、标度为 Δ f ϵ \frac {\Delta f}\epsilon ϵΔf的 Laplace 分布中提取噪声,其中 Δ f \Delta f Δf为原实值函数 f f f的敏感度,定义为 △ f = m a x D , D ′ ∣ ∣ f ( D S ) − f ( D S ′ ) ∣ ∣ 1 △f={\rm max}_{D,D'}||f(DS)-f(DS')||_1 △f=maxD,D′∣∣f(DS)−f(DS′)∣∣1.也有人提出了其他机制,如依靠高斯分布[66],[67]。
G. Verifiable Shuffles
为了从噪声值的公共列表中随机选择一个值,并确保差异隐私,我们依赖于verifiable shuffle [68]、[69]、[70]、[71]。我们实现并使用了由Neff[69]描述的基于ElGamal的verifiable shuffle。 该协议以 X \mathcal X X ElGamal对 ( C 1 , i , C 2 , i ) (C_{1,i},C_{2,i}) (C1,i,C2,i)为输入,输出 ( C ‾ 1 , i , C ‾ 2 , i ) (\overline C_{1,i},\overline C_{2,i}) (C1,i,C2,i),使得对于所有 1 ≤ i ≤ χ , ( C ˉ 1 , i , C ˉ 2 , i ) = ( C 1 , v ( i ) + r v ( i ) ′ ′ B , C 2 , v ( i ) + r v ( i ) ′ ′ Ω ) 1 \leq i \leq \chi,\left(\bar{C}_{1, i}, \bar{C}_{2, i}\right)=\left(C_{1, v(i)}+r_{v(i)}^{\prime \prime} B, C_{2, v(i)}+r_{v(i)}^{\prime \prime} \Omega\right) 1≤i≤χ,(Cˉ1,i,Cˉ2,i)=(C1,v(i)+rv(i)′′B,C2,v(i)+rv(i)′′Ω),其中 r v ( i ) ′ ′ r''_{v(i)} rv(i)′′是重新随机化因子, υ υ υ是 permutation, Ω Ω Ω是公钥。 υ υ υ用于改变ElGamal对的顺序, r v ( i ) ′ ′ r''_{v(i)} rv(i)′′用于修改加密消息 m m m的密文的值,使其解密仍然输出 m m m。因此,不知道解密密钥 v v v和 r v ( i ) ′ ′ r''_{v(i)} rv(i)′′的敌手无法将任何密文 ( C ‾ 1 , i , C ‾ 2 , i ) (\overline C_{1,i},\overline C_{2,i}) (C1,i,C2,i)与密文 ( C 1 , i , C 2 , i ) (C_{1,i},C_{2,i}) (C1,i,C2,i)联系起来。Neff [68,69]提供了一种方法来证明这样的shuffle是正确的,即存在permutation v v v和重新随机化因子 r i , j ′ ′ r''_{i,j} ri,j′′,有 o u t p u t = S H U F F L E v , r i , j ′ ′ ( i n p u t ) output=SHUFFLE_{v,r_{i,j}''}(input) output=SHUFFLEv,ri,j′′(input),而不显示任何关于 v v v或 r i , j ′ ′ r''_{i,j} ri,j′′的内容。这是通过使用 honest-verifier 零知识证明来实现的。
IV. SYSTEM OVERVIEW
在本节中,我们描述了系统和威胁模型,然后介绍了Drynx的功能和安全需求。
A. System Model
系统模型如图1所示。为了简单起见,我们在这里描述了Drynx中的逻辑角色,在第八节中我们讨论了一个物理节点可以同时扮演多个角色的事实。查询者 Q Q Q可以在 D P s DPs DPs所持有的分布式数据集上执行统计查询和机器学习模型的训练和评估。 C N s CNs CNs共同处理系统中的计算;也就是说,从 Q Q Q的角度来看,它们模拟一个中央服务器,并为她的查询提供答案。 验证节点 ( V N s ) (VNs) (VNs)的作用是提供可审计性;它们集体验证查询执行并永久存储相应的证明。 它们使审计员,例如 Q Q Q或外部实体,能够轻松地验证(审计)查询执行的正确性。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8HQL68Ol-1610589285376)(C:\Users\crypt\AppData\Roaming\Typora\typora-user-images\image-20210112125158266.png)]
Fig. 1: A querier Q Q Q, Data Providers D P i DP_i DPi , Computing Nodes C N i CN_i CNi and Verifying Nodes V N i V N_i VNi.
在Drynx的典型工作流中,查询由querier Q Q Q定义,然后广播到 C N s CNs CNs和 D P s DPs DPs。 在将结果发送到 Q Q Q之前, D P s DPs DPs用它们的加密响应回答,然后由 C N s CNs CNs集体聚合和处理。 我们假设使用的数据格式在不同的 D P s DPs DPs之间是足够均匀的,并且 D P s DPs DPs能够解释查询,例如,有一个共同的属性本体,并且查询语言在系统设置期间是一致的。
在 H D S HDS HDS场景( S e c t i o n I I I \rm Section\ III Section III- A A A节)中,该系统模型的实例化将以 C N CN CN作为大学的特征,这些大学希望使研究人员( Q Q Q)能够计算由多家医院( D P s DPs DPs)持有的数据)。 虚拟国家可以是独立的或政府机构,确保数据保护条例得到遵守。
我们假设系统的拓扑结构和公共信息,例如公钥,是所有实体都知道的。 认证和授权超出了本文的范围,我们在 S e c t i o n V I I I \rm Section\ VIII Section VIII中简要讨论了它们。
B. Threat Model
我们假设一个强大的威胁模型
- Queriers. 它们被认为是恶意的,因为它们可以尝试从查询结束结果,或通过与系统中的其他实体串通来推断有关DP的信息。
- Computing Nodes. 我们考虑一个AnyTrust模型[72],这意味着所有Drynx的安全和隐私保证( S e c t i o n I V Section\ IV Section IV- D D D)都得到了保证,只要至少有一个 C N s CNs CNs是诚实的(或简单的诚实)。
- Data Providers. D P DP DP被认为是恶意的,因为它们可以尝试对查询产生不正确的答案,以便对最终结果进行偏差。 它们还可以与其他节点串通,以推断有关其他 D P s DPs DPs或查询结束结果的信息。
- Verifying Nodes. 我们假设 V N s VNs VNs的阈值数是诚实的。 这个阈值,例如, f h = 2 f + 1 f_h=2f+1 fh=2f+1 out of f t = 3 f + 1 f_t=3f+1 ft=3f+1(其中 f t f_t ft是 V N s VNs VNs的数目)是根据共识算法来定义的[62, 63],用于确保校样验证结果的正确性和不可变。
C. Functional Requirements
Drynx允许在分布式数据集上计算可编码操作族中的任何操作。 可编码操作可以分为两部分: D P s DPs DPs的局部计算和集体聚合。 在集体部分中,计算是在加密数据上执行的,因此受到使用的加密方案中的同态限制,例如加法和/或乘法。 D P s DPs DPs的计算在本地执行,因此不受限制。
Definition 1. 在 N N N个 D P s DPs DPs之间计算的可编码操作 f f f 被定义为:
f ( r ‾ ) ≡ π ( { ρ ( r i ‾ ) } i = 1 N ) f(\overline r)\equiv \pi(\{\rho(\overline {r_i}) \}^N_{i=1}) f(r)≡π({ρ(ri)}i=1N),
其中编码 ρ ρ ρ为
ρ ( r i ‾ ) ≡ ( V i , c i ) ρ(\overline {r_i})≡(\mathbf{V_i},c_i) ρ(ri)≡(Vi,ci),
其中 V i = [ v i , 1 , . . . , v i , d ] \mathbf{V_i}=[v_{i,1},...,v_{i,d}] Vi=[vi,1,...,vi,d]是在一组 c i = ∣ r i ‾ ∣ c_i=|\overline {r_i}| ci=∣ri∣记录上计算的 d d d值的向量,其中 ∣ . ∣ |.| ∣.∣代表基数。 r ‾ \overline r r是所有分布式数据集记录的集合, r i ‾ \overline {r_i} ri是属于 D P i DP_i DPi的记录集, π π π是编码 ρ ρ ρ输出的多项式组合。 编码被定义为每个 D P i DP_i DPi的子集 r i ‾ \overline {r_i} ri上的局部计算函数。 还可以将可编码操作表示为递归函数:
f k ( r ˉ ) ≡ π ( { ρ ( r ˉ i , f k − 1 ( r ˉ ) ) } i = 1 N ) f_{k}(\bar{r}) \equiv \pi\left(\left\{\rho\left(\bar{r}_{i}, f_{k-1}(\bar{r})\right)\right\}_{i=1}^{N}\right) fk(rˉ)≡π({ρ(rˉi,fk−1(rˉ))}i=1N)
在Drynx中,对于任何特定的操作 f f f,每个 D P i DP_i DPi创建一个在其记录集 r i ‾ \overline {r_i} ri上计算的编码 ρ ρ ρ。 然后, π π π分两部分执行: C N s CNs CNs首先聚合所有 D P s DPs DPs的编码输出 Σ i = 1 N \Sigma^{N}_{i=1} Σi=1N,如果需要,则查询者对汇总结果进行后处理 π π π。(例如,如果 π π π涉及在同态加密下 C N s CNs CNs不可执行的信息保存操作)。
我们在这里给出了 Definition 1 的实例化,它允许计算平均值,在 Section VII 中,我们展示了如何实例化编码,以便能够计算:和、计数、频率计数、平均值、方差、标准差、余弦相似度、min/max、AND/OR和集合交集/联合,以及线性和Logistic回归模型的训练和评估。
例如,如果 Q Q Q想计算多个医院多个患者的平均 ( f ) (f) (f)心率 ( H D S HDS HDS ( S c e c t i o n I I I \rm Scection\ III Scection III- A A A),每个医院( D P i DP_i DPi)用每个患者心率的编码( h : ρ ( r i ‾ ) ≡ ( [ Σ j = 1 c i h i , j ] , c i ) h:\rho(\overline{r_i} )\equiv ([\Sigma^{c_i}_{j=1}h_{i,j}], c_i) h:ρ(ri)≡([Σj=1cihi,j],ci)。 然后,这些编码(同态)被添加到所有医院, Q Q Q可以(解和)通过使用 π = Σ i = 1 N v i , 1 / Σ i N c i π=\Sigma^{N}_{i=1}v_{i,1}/\Sigma^{N}_{i}c_i π=Σi=1Nvi,1/ΣiNci来计算全局平均值。我们在这里指出,虽然 ρ ρ ρ和 π π π依赖于应用程序,但工作流对于所有可能的操作都是常见的。
最后,在Drynx中,审计员可以有效地审计一个查询的执行。此外,可审计性所需的证明也会被生成,它们的生成不会影响查询运行时间。
D. Security Requirements
Drynx必须确保:
- Data confidentiality. 数据输入必须随时保密, 只有 Q Q Q能看到查询答案。
- D P s ’ DPs’ DPs’ privacy. 没有任何实体能够推断出关于一个 D P DP DP或任何个人将其数据存储在 D P DP DP数据库中的信息。
- Query Execution Correctness. 当满足结果鲁棒性和计算正确性要求时,我们认为查询执行是正确的: 1 ) 1) 1) 结果的稳健性, 查询结果受到保护,不受 D P s DPs DPs恶意或错误输入的强异常值的影响。 2 ) 2) 2) 计算的正确性, 由 C N s CNs CNs进行的任何计算都是正确执行的。
V. DRYNX DESIGN
为了克服现有工作中的局限性,满足上一节提出的要求,我们提出了一种新的系统模型,通过引入 V N s VNs VNs来实现查询的可审计性。 此外,Drynx在一个更强的威胁模型中提供了多个功能,它依赖于编码本地计算结果的 D P s DPs DPs,这些结果被证明在一定范围内。它通过控制 D P s DPs DPs的结果在这些预定义的范围内来限制对 D P s DPs DPs的信任。 我们提出了一个系统,它仍然是通用的和实用的,同时在一个比现有工作更强大的威胁模型中运行。 我们现在讨论这个系统的设计。
在Drynx的安全设计( S e c t i o n V \rm Section V SectionV- A A A节)中,我们展示了如何构建Drynx以满足其所有安全要求:
- 在 V V V- A 1 A1 A1节中,我们介绍了一个简单的查询执行 pipeline,以实现Drynx的功能并保护数据的机密性。
- 在 V V V- A 2 A2 A2节中,我们建立在先前引入的查询执行 pipeline 的基础上,并通过引入neutral encoding的新概念来解释如何确保 D P s DPs DPs的隐私。 这使 D P DP DP能够私下选择是否回答查询。 我们还解释了Drynx如何处理按位操作并维护 D P s DPs DPs的隐私。 最后,我们引入了分布式差分隐私,用于确保没有实体从查询结束结果中输入有关单个 D P DP DP或个人的信息。
- 在 V V V- A 3 A3 A3节中,我们展示了如何通过依赖一组 V N s VNs VNs以有效的方式提供可审计性。 我们描述了Drynx如何通过利用范围证明来确保结果的鲁棒性,以及如何通过依赖正确性证明来验证所有Drynx的计算。
在Drynx的优化设计(( S e c t i o n V \rm Section V SectionV- B B B节)中,我们讨论了如何优化Drynx的性能:
- 在 V V V- B 1 B1 B1节中,我们介绍了Drynx的完整查询执行 pipeline。 我们展示了如何同时运行查询执行和验证的多个部分,从而优化了Drynx的运行时长。
- 在 V V V- B 2 B2 B2节中,我们通过启用查询执行的概率验证来引入安全性和性能之间的权衡。
A. Drynx Security Design
我们提出了Drynx核心安全架构。
V-A1 Data Confidentiality:
首先,我们引入了一个保密的分布式数据共享系统(图2),它可以运行与Drynx相同的操作,但只满足一个安全要求:数据机密性。
我们描述了查询执行协议,并勾勒出该系统的机密性证明。 然后,我们描述了如何增强这种结构,以满足Drynx的其他安全要求,而不破坏数据机密性。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Om9Ye01m-1610589285380)(C:\Users\crypt\AppData\Roaming\Typora\typora-user-images\image-20210113102344151.png)]
Fig. 2: Confidential System Query Execution.
-
Initialization. 每个 C N i 、 D P i CNi、DPi CNi、DPi和 Q i Qi Qi 生成自己的密钥对 ( k i , K i ) (ki,Ki) (ki,Ki)。 然后将 C N ′ s CN's CN′s的公钥相加,以创建 K K K,即 C N s CNs CNs的公共集体密钥,用于加密所有处理的数据。
-
Query. Q Q Q制定了通过 C N s CNs CNs向 D P s DPs DPs清楚地广播的查询。 虽然querier可以直接与 D P s DPs DPs通信,但我们的选择简化了系统内的通信方案和同步,因为 C N s CNs CNs必须知道查询并接收 D P s DPs DPs输入,以便在其余步骤中执行计算。 查询定义操作、计算操作的属性、参与的 D P DP DP和(可选的)过滤条件。drynx独立于查询语言工作。我们用一个类似SQL的查询来说明它的用途,以计算由 n n n个 D P s DPs DPs持有数据的患者的平均心率:SELECT average heartrate ON DP1*,…, DPn* WHERE patientstate = ‘hypertensive’。
-
**Retrieval & Encoding. ** D P s DPs DPs通过以下 ρ ρ ρ计算它们的本地答案,这是在操作编码中定义的(Define 1)。 为此,他们首先在本地检索相应的数据。
-
Encryption**.** D P s DPs DPs在 K K K下加密编码的响应,并将相应的密文发送回 C N s CNs CNs。
-
Collective Tree Aggregation (CTA). C N s CNs CNs通过执行依赖 UnLynx[16] 中定义的 Collective Aggregation 协议的 C T A CTA CTA协议来聚合所有 D P s DPs DPs的响应。 C N s CNs CNs被组织成一个树结构,使得每个 C N CN CN等待接收来自其子代的聚合结果,并在将结果传递给自己的父代之前它们进行总结。
-
Collective Tree Key Switching (CTKS). C N s CNs CNs将在 K K K下加密的聚合结果集体转换为在 Q Q Q的公钥 K ′ K' K′下加密的相同结果,而无需解密。该协议 (Protocol 1) 是UnLynx[16]中提出的Key Switching 新结构。从概念上讲,每个 C N CN CN部分地解密 m m m(即step 2中计算中的 ( C 1 ) k i (C_1)k_i (C1)ki),并用 Q Q Q的公钥 K ′ K' K′(即step 2中计算中的 + α i K ′ +\alpha_i K' +αiK′)重新加密它。我们通过改变密文的转换方式和在树结构中组织 C N CN CN来提高 C T K S CTKS CTKS的效率,从而减少其执行时间。 在这种结构中,多个 C N CN CN可以并行执行它们的本地操作(3个标量乘法和1个加法), C T A CTA CTA需要 # C N − 1 \#CN-1 #CN−1聚合和节点之间的通信。 我们在表 I I \rm II II中显示了所有Drynx协议的计算复杂度。
-
Decryption. Q Q Q解密并解码查询结果。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kk6AlhmR-1610589285381)(C:\Users\crypt\AppData\Roaming\Typora\typora-user-images\image-20210113111544673.png)]
Security Arguments. 我们表明,只要一个 C N CN CN是诚实的,控制剩余 C N s CNs CNs、 D P s DPs DPs和 Q Q Q的敌手就无法破坏数据机密性。 在不失去一般性的情况下,我们假设至少有一个 D P DP DP是诚实的,因为只有在这种情况下能在敌手存在的情况下保护数据。我们通过依赖 “ real/ideal ” 的模拟范式来勾画证明[73],并表明对手不能区分“real”世界实验,其中对手被赋予 “real” 数据 (由诚实的 D P s DPs DPs发送),以及 “ideal” 世界实验,对手被赋予由模拟器生成的随机数据。 可以看出, D P s DPs DPs发送的加密数据在被 Q Q Q的公钥聚合和重新加密( C T K S CTKS CTKS)之前从未被解密。 因此,由于密码系统的语义安全性,敌手无法区分 simulation 和 real 实验。 可以看出,在端到端查询执行过程中,数据机密性得到了保证:
在检索和编码中, D P DP DP只对其本地数据进行操作,任何恶意方都看不到外部数据。 在加密中, D P s DPs DPs用 K K K加密它们的响应,这些响应在 C T A CTA CTA中被聚合,仍然处于加密状态。 除非所有 C N CN CN串通,否则无法解密(求和)密文。然而,这是不可能的,因为它们遵循AnyTrust模型。 最后,在 C T K S CTKS CTKS(Protocol 1)中,密文从 K K K转换为 Q Q Q的公钥,使得 Q Q Q可以解密:
- 在 C T K S CTKS CTKS步骤: 1 − 3 1-3 1−3. 密文是在 K K K下加密的,因此如果没有所有 C N CN CN的串通,就不能解密。
- 在 C T K S CTKS CTKS步骤: 4 4 4。 密文总是 ( C ~ 1 , C ~ 2 ) = ( r ~ B , m B + r ~ K ′ ) (\tilde C_1,\tilde C_2)=(\tilde rB,mB+\tilde rK') (C~1,C~2)=(r~B,mB+r~K′),其中 r ~ = Σ i = 0 t α i , 0 ≤ t ≤ # C N \tilde r=\Sigma^t_{i=0}α_i, 0\leq t\leq \# CN r~=Σi=0tαi,0≤t≤#CN,并且只有当 t t t个 C N CN CN与 Q Q Q相勾结时才能解密,其中 Q Q Q是消息的预期接收者。
**V-A2 DPs’ Privacy: **
Drynx通过确保 ( a ) (a) (a) 每个 D P DP DP可以私下决定是否回答查询来保护 D P s DPs DPs和个人的隐私; ( b ) (b) (b) 只有操作编码定义的操作结果被披露给 Q Q Q; ( c ) (c) (c) 没有任何实体可以推断出关于单个 D P DP DP或个人的信息。
a ) a) a) Neutral Response: 如果 D P DP DP确定查询可能危及其隐私,则可以选择不响应,也可以选择以neutral response回答,从而隐藏其拒绝参与查询而 distorting 的查询结果。 为此,我们定义了neutral response:
Definition 2. D P i DPi DPi通过 ρ ( r i ‾ ≡ ( O , 0 ) ) \rho(\overline {r_i} \equiv (\mathbf O,0)) ρ(ri≡(O,0))定义其响应编码(Definition 1)来发送neutral response,其中 O \mathbf O O是 neutral 向量,使得 W + O = W \mathbf W+\mathbf O=\mathbf W W+O=W, W \mathbf W W是任何编码向量; c i = 0 c_i=0 ci=0,因为 D P i DP_i DPi对 0 0 0个记录进行计算。
在 S e c t i o n V I I \rm Section VII SectionVII中,我们描述了如何为每个列出的编码生成 neutral 响应。
Security Arguments. 不响应查询的 D P DP DP会向其他实体建议此查询对其太敏感。 D P s DPs DPs的响应总是加密的,由于底层密码系统的不可区分性,neutral 响应与non-netural响应是不可区分的,从而有效地隐藏了 D P DP DP的拒绝。
b ) b) b) Privacy-Preserving Bit-wise Operations: 在Drynx中, D P s DPs DPs的响应是通过可用的加法同态来求和的;如果这些响应是二进制的,那么和的结果比操作结果更容易泄漏到 Q Q Q中。 例如,当 O R OR OR操作在一组 D P DP DP上执行时, Q Q Q应该只知道答案是真 ( 1 ) (1) (1)还是假 ( 0 ) (0) (0)。 然而,如果 D P s DPs DPs的响应被简单地聚合, Q Q Q得到了回答 “ 1 ” “1” “1”和 “ 0 ” “0” “0”的 D P s DPs DPs的数量。 为了克服这一问题,我们提出了 Collective Tree Obfuscation ( C T O CTO CTO)协议,详见 Protocol 2。 对于按位操作, C T O CTO CTO在查询执行的步骤 C T A CTA CTA和 C T K S CTKS CTKS之间运行。 在 C T O CTO CTO中, C N s CNs CNs通过将密文与随机密钥相乘来集体混淆密文。
C T O CTO CTO允许在Drynx中保持隐私位操作,因为 " 1 " "1" "1"被混淆为一个随机值,而 " 0 " "0" "0"被保留。 要知道操作的结果, Q Q Q只检查最终值是否为 " 0 " "0" "0"。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6qC2nG3X-1610589285384)(C:\Users\crypt\AppData\Roaming\Typora\typora-user-images\image-20210113130539863.png)]
Security Arguments. Protocol 2 不会暴露 m m m的机密,并且确实 obliviously 和statistically 混淆了 m m m。机密性依赖于密码系统的语义安全性,因为 m m m在整个协议执行过程中仍然是加密的。 在 Z p \mathbb Z_p Zp中 m m m的乘法盲化由 s ⋅ m s·m s⋅m定义,其中 s s s是 Z p \mathbb Z_p Zp中的一个秘密标量值。 CTO协议的输出是 ( Σ s i ) ⋅ m (\Sigma s_i)·m (Σsi)⋅m的加密。我们可以通过分离诚实的 C N s h CNs\ h CNs h 和恶意的 C N s e : ( ∑ i ∈ h s i + ∑ i ∈ e s i ) ⋅ m = ( ∑ i ∈ h s i ) ⋅ m + ( ∑ i ∈ e s i ) ⋅ m CNs\ e: \left(\sum_{i \in h} s_{i}+\sum_{i \in e} s_{i}\right) \cdot m=\left(\sum_{i \in h} s_{i}\right) \cdot m+\left(\sum_{i \in e} s_{i}\right) \cdot m CNs e:(∑i∈hsi+∑i∈esi)⋅m=(∑i∈hsi)⋅m+(∑i∈esi)⋅m的 contributions 来重写 ( Σ s i ) ⋅ m (\Sigma s_i)·m (Σsi)⋅m (由我们的AnyTrust模型假设可知,至少有一个诚实的 C N CN CN)。即使敌手知道 ( ∑ i ∈ e s i ) ⋅ m \left(\sum_{i \in e} s_{i}\right) \cdot m (∑i∈esi)⋅m, ( ∑ i ∈ h s i ) \left(\sum_{i \in h} s_{i}\right) (∑i∈hsi)也会导致 Z p \mathbb Z_p Zp中 m m m的乘法盲化。
c ) c) c) Distributed Differential Privacy: Drynx依赖于Unlynx[16]中引入的 Collective 差分隐私(CDP)协议,以确保差分隐私,并防止从查询结果中推断一些 D P DP DP “和/或” 个人的信息。 为了完整起见,我们简要介绍了CDP(Protocol 3),并请参阅[16]以获得更多细节。 参数的选择取决于应用程序的隐私策略,超出了本文的范围。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hg3wLCn9-1610589285385)(C:\Users\crypt\AppData\Roaming\Typora\typora-user-images\image-20210113132004595.png)]
Security Arguments. 我们观察到,噪声值的列表是可验证的从差分隐私参数生成的,并且所有 C N s CNs CNs都私下shuffle 这些值。 在UnLynx[16]中详细分析了该协议的安全性。
V-A3 Query Execution Correctness
我们首先描述Drynx如何通过对查询执行正确性进行有效的验证来提供可审计性。 后者是通过保证结果的鲁棒性和计算正确性来实现的。第一个是通过将 D P s DPs DPs的值限制在一个特定的范围内(通过范围证明)来确保的,第二个是通过对所有 C N s CNs CNs计算使用 Z K P ZKP ZKP来确保的。
a ) a) a) Auditability: 为了为查询验证提供有效的解决方案,Drynx依赖于一组 V N s VNs VNs,这些 V N s VNs VNs与查询的执行并行,并在不影响其运行时的情况下验证查询的正确性。在每次操作之后, Q Q Q、 C N s CNs CNs和 D P s DPs DPs创建正确的计算或值范围的证明,它们用私钥签名(以提供身份验证)。 他们的签名证明被发送给所有的 V N s VNs VNs。 这使得查询的高效执行成为可能,因为证明创建和验证是独立于它执行的。
为了实现这一解决方案,我们可以依赖于 V N s VNs VNs的分布式体系结构,并且可以通过使用块链(即证明块链)来提供完整性和不可变性。这使查询及其验证结果都能够公开和不可变的存储。此外,它还能够对查询的正确性进行高效和轻量级的验证。审计员,例如 Q Q Q,只需请求与查询对应的块,验证 V N s VNs VNs签名并检查查询验证结果。我们在 Protocol 4 中详细介绍了这一点,并在 Figure 3 中描绘了一个证明块链的示例。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ejdwz1Xp-1610589285387)(C:\Users\crypt\AppData\Roaming\Typora\typora-user-images\image-20210113165205679.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8ZVKx0t5-1610589285388)(C:\Users\crypt\AppData\Roaming\Typora\typora-user-images\image-20210113165226918.png)]
Fig. 3: Proof blockchain. Each block contains Query ID and content, and each V N’s query-proofs map. RP stands for range proof.
Security Arguments. 如果一个实体信任 V N s VNs VNs的阈值 f h f_h fh,它可以通过检查证明块中的相应块来验证查询的正确执行。验证者可以检查 f h f_h fh个节点是否同意证明的正确性。 为每个查询创建一个块,即使证明是错误的,从而使任何实体能够确定哪些当事人参与了错误计算的查询。否则,由于所有的证明都是可验证的,并由所有的 V N s VNs VNs存储,审计员,不信任 V N s VNs VNs的 f h f_h fh,可以从其中的一个子集请求证明,并自行检查证明。
b ) b) b) Results Robustness: 如果查询器在 D P s DPs DPs值上定义了具有范围边界的查询,则要求 D P s DPs DPs按照 A l g o r i t h m 1 \mathbf{ Algorithm\ 1} Algorithm 1中详细说明的算法创建范围证明。该算法是通过适应Camenisch等人为了建议AnyTrust模型提出的 [ 0 , u l ) [0,u^l) [0,ul)范围证明。 在该算法中,prover,即DP,在base- u u u中写入其秘密值 m m m,并通过在这些 digits 上使用 C N I S CNIS CNIS的签名提交给 u u u-ary digits (算法1中的 A i , b A_{i,b} Ai,b)。 l l l创造的承诺完成了证据。 为了使该算法适应AnyTrust模型, D P DP DP必须通过组合所有 C N s CNs CNs的签名 (即 Z i , A i , b Z_i,A_{i,b} Zi,Ai,b),计算多个证明元素,即 c , V i , j , a i , j c, V_{i,j}, a_{i,j} c,Vi,j,ai,j。 这确保 D P DP DP至少使用一个 C N CN CN的签名,而且它不知道其潜在的 secret。 [56]中的相同变换可用于将证明推广到任何范围 [ b l , b u ) [b_l,b_u) [bl,bu)。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ut08Sj8B-1610589285389)(C:\Users\crypt\AppData\Roaming\Typora\typora-user-images\image-20210113165349208.png)]
Security Arguments. 范围证明的正确性和零知识性质都得到了Camenisch等人的证明 [56]。这些证明在AnyTrust 模型中是普遍可验证的和合理的。 后者来自一个事实,即依赖于 C N s CNs CNs secret 的元素 x i x_i xi被计算为所有公共签名的组合。 由于至少有一个 C N i CNi CNi是诚实但好奇的,其中一个 x i x_i xi是未知的(没有揭示)给DP(prover)。
c ) c) c) Computation Correctness: 为了确保查询执行的正确性, C N CN CN执行的每个计算都必须被证明是正确的。
- Collective Tree Aggregation. C N s CNs CNs提供了可能聚合的输入密文和由此产生的构成 Z K P ZKP ZKP的密文。
- Collective Tree Obfuscation. 在 S e c t i o n I I I \rm Section\ III Section III- C C C节中, C N s CNs CNs通过依赖表达公式 ( 1 ) (1) (1)来产生混淆证明。每个 C N i CNi CNi通过 s i s_i si乘以 C C C获得混淆的密文 ( C 1 ′ , C 2 ′ ) (C'_1,C'_2) (C1′,C2′)与 (a) C 1 ′ = s i C 1 C'_1=s_iC_1 C1′=siC1和 (b) C 2 ′ = s i C 2 C'_2=s_iC_2 C2′=siC2。对于这两个方程, y 1 = s i y_1=s_i y1=si是离散对数,我们有公共值 A = C 1 ′ , A 1 = C 1 A=C'_1,A_1=C_1 A=C1′,A1=C1代表 (a), A = C 2 ′ , A 1 = C 2 A=C'_2,A_1=C_2 A=C2′,A1=C2代表(b),这构成了证明。
- Collective Differential Privacy. 在该协议中,每个 C N CN CN依次执行 N e f f s h u f f l e \rm Neff \ shuffle Neff shuffle,并产生 S e c t i o n I I I \rm Section III SectionIII- G G G节中描述的相应的正确性 Z K P ZKP ZKP。 此证明基本包含输入和输出列表、公钥加密密文和承诺值。
- Collective Tree Key Switching. 在 S e c t i o n I I I \rm Section III SectionIII- C C C节中, C N s CNs CNs通过公式 ( 1 ) (1) (1)来创建 Z K P ZKP ZKP,其中我们分别有 y 1 = K i , y 2 = α i y_1=K_i,y_2=α_i y1=Ki,y2=αi即 k i B = K i k_iB=K_i kiB=Ki和 α i B α_iB αiB的离散对数。 K i , α i B , A = w i , 2 , A 1 = − r B K_i,α_iB, A=w_{i,2},A_1=-rB Ki,αiB,A=wi,2,A1=−rB和 A 2 = K ′ A_2=K' A2=K′都被公开,不泄露任何关于潜在的 secret 的信息。
Security Arguments. 我们依赖的证明是 universally 可验证和零知识。 它们不会影响数据机密性,超出从已证实的事实本身可以推断的范围。
B. Drynx Optimized Design
在描述如何优化查询验证的性能之前,我们介绍了Drynx的最终查询执行管道。
V-B1 Full Query Execution Pipeline
我们在 Figure 4 中显示了 Drynx 的完整 pipeline。 查询执行和验证同时执行,查询执行的多个步骤可以并行执行。 C N s CNs CNs 在 C T A CTA CTA中汇总每个 D P DP DP的响应,一旦他们收到它。 在汇总所有结果之后,必须添加 C D P CDP CDP产生的噪声。 然而,如果预先定义了差分隐私参数,则可以独立于其他步骤执行此协议,甚至可以预计算。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6ZMMGUEz-1610589285389)(C:\Users\crypt\AppData\Roaming\Typora\typora-user-images\image-20210113174501578.png)]
Fig. 4: Drynx’s complete optimized query-execution. Arrows represent causal links. Steps without direct links can be executed independently and dashed steps are optional.
V-B2 Probabilistic Query Verification
为了提高查询验证的性能,我们启用了 V N s VNs VNs对证明的概率验证。我们表明,这种策略仍然允许验证器以较高的概率检测行为不端的实体,但大大提高了性能(见 S e c t i o n I X \rm Section\ IX Section IX)。特定操作的证明 (例如,一组密文 S S S的 C T K S CTKS CTKS)可以有多个子证明 (例如,一个密文 C ∈ S C∈S C∈S的 C T K S CTKS CTKS)。 如果一个或多个子证明是不正确的,则一个证明被认为是不正确的。我们介绍了两个阈值 T T T和 T s u b T_{sub} Tsub,它们分别定义了验证单个证明和子证明的概率。 我们修改 protocol 4 中描述的查询执行步骤2中的 V N s VNs VNs操作,方法是添加基于 T T T和 T s u b T_{sub} Tsub的概率验证。 每个 V N VN VN存储它收到的所有证明。 然后,它生成一个随机值 r ∈ [ 0 , 1 ] r∈[0,1] r∈[0,1];如果 r < T r<T r<T,则开始对子证明进行概率验证。对于每个子证明,应用相同的方法,使用 T s u b T_{sub} Tsub。
Security Arguments. 概率验证不一定会损害系统的安全级别,因为每个证明的验证都是由每个 V N VN VN冗余完成的。用概率 p v e r = 1 − ( 1 − T ) N V N p_{ver}=1-(1-T)^{N_{VN}} pver=1−(1−T)NVN验证证明,其中 N V N N_{VN} NVN是 V N VN VN的数目,并用概率 p v e r s u b = 1 − ( ( 1 − T ) + T ( 1 − T s u b ) ) N V N p_{{ver}_{sub}}=1-((1-T)+T(1-T_{sub}))^{N_{VN}} pversub=1−((1−T)+T(1−Tsub))NVN验证证明。 证明或子证明被至少 f h f_h fh节点验证的概率为
P f h = ∑ i = f h N V N ( N V N i ) p i ( 1 − p ) N V N − i P_{f_{h}}=\sum_{i=f_{h}}^{N_{V N}}\left(\begin{array}{c} N_{V N} \\ i \end{array}\right) p^{i}(1-p)^{N_{V N}-i} Pfh=∑i=fhNVN(NVNi)pi(1−p)NVN−i
其中 p p p是 p v e r p_{ver} pver(用于证明)或 p v e r s u b p_{ver_sub} pversub(用于子证明)。 例如,如果 N V N = 7 N_{VN}=7 NVN=7, T = 1 T=1 T=1和 T s u b = 0.3 T_{sub}=0.3 Tsub=0.3,则所有证明都至少部分验证,每个子证明都由 f h = 5 V N s f_h=5VNs fh=5VNs验证, P f h P_{f_h} Pfh为 98.48 % 98.48\% 98.48%。 因此,每个子证明都由具有高概率的 V N s VNs VNs的至少 f h f_h fh验证。 由于 honesty 假设,子证明至少由一个诚实的 V N VN VN验证,概率很高。 此外,阈值 T T T和 T s u b T_{sub} Tsub可以被设置为任意降低一个子验证不被至少一个诚实节点验证的概率。因此,如果参与验证的所有 V N s VNs VNs都同意结果,审计员知道证明是正确的,否则它可以选择只信任一些 V N s VNs VNs,或者提取所有的证明并验证它们本身,因为所有的证明都是普遍可验证的。例如,审计员可以选择只验证未经她信任的任何 V N s VNs VNs检查的 proofs 。
部分验证,每个子证明都由 f h = 5 V N s f_h=5VNs fh=5VNs验证, P f h P_{f_h} Pfh为 98.48 % 98.48\% 98.48%。 因此,每个子证明都由具有高概率的 V N s VNs VNs的至少 f h f_h fh验证。 由于 honesty 假设,子证明至少由一个诚实的 V N VN VN验证,概率很高。 此外,阈值 T T T和 T s u b T_{sub} Tsub可以被设置为任意降低一个子验证不被至少一个诚实节点验证的概率。因此,如果参与验证的所有 V N s VNs VNs都同意结果,审计员知道证明是正确的,否则它可以选择只信任一些 V N s VNs VNs,或者提取所有的证明并验证它们本身,因为所有的证明都是普遍可验证的。例如,审计员可以选择只验证未经她信任的任何 V N s VNs VNs检查的 proofs 。