具有隐私保护的分布式云数据库中聚合查询的多阶段协议-多级分离查询处理(MSQP)协议
ElGamal密码系统、多级分离查询处理(MSQP)协议
1、介绍
当多个数据库所有者希望通过创建分布式云数据库以协作方式使用其单独的云数据库时,可能需要创建并维护一个具有隐私保护的超大型分布式云数据库,但不允许共享其个人中包含的机密数据数据库。
例如,大量的记录可以存储在一个分布式数据库中,该数据库结合了来自不同医院甚至几个不同国家的数据。这种类型的数据库可以由世界卫生组织管理,并且可以是巨大的。未经患者法律许可,可能会阻止不同的医院重新分配其数据存储。在数据库所有者位于不同国家的情况下,其中一些国家可能已制定法律,要求将患者的机密数据存储在实际位于同一国家的数据中心中。其他国家将来可能会考虑引入类似的隐私法。对于包含不同公司的置信度商业数据的大型云数据库,可能会出现类似情况。同样,这可能为不愿共享其客户信息的几个在线交易站点的协作带来好处。结合来自不同地区的患者数据来分析大型数据集的能力可以改善医学数据的统计分析结果(参见[3],[4])。重要的是,必须在整个非常大的分布式云数据库中发布对某些聚合查询的答案,尤其是因为统计查询可以帮助改善疾病的预测和患者的治疗质量(参见[5])。数据库所有者可能需要以某种方式回答客户提出的汇总统计查询,就像来自所有数据库的所有记录都包含在单个公共数据库中一样。但是,法律要求不允许数据库所有者将其患者的记录转移到其他实体。因此,必须保护机密数据的隐私。同时,由于分布式数据库可能非常大,因此计算期间的通信成本必须最小。
采用多级分离查询处理(MSQP)协议,该协议采用具有分裂密钥的同态加密
统计查询私有处理的新颖的MSQP协议。MSQP协议的参与者是数据库所有者,他们代表官方注册实体,并且没有匿名参与者。因此,很自然地假设数据库所有者是诚实的。例如,数据库所有者可能是不同的医院,这绝对是诚实的,甚至他们可能并不好奇。这就是为什么在MSQP协议中,我们可以将所有数据库所有者视为诚实但好奇的参与者,因为在任何情况下,由于法律要求,都必须保护数据的机密性,以防止所有参与者的好奇心。
7.1 。具有用于MSQP协议的分割密钥的密码系统
在MSQP协议中,数据库所有者使用同态加密来安全地组合其计算的辅助结果。MSQP可以使用满足以下规定的属性(P1)和(P2)的任何密码系统。本节仅介绍可用于描述MSQP协议的密码系统的一般符号和属性。满足所要求的性能(P1)和(P2)密码系统的两个例子在章节中给出 5次预赛的ElGamal加密方案的,6多部分的ElGamal密码系统。
MSQP协议使用具有一个公共密钥的密码系统 pk 所有参与者都知道,并拆分了秘密密钥 ski, i∈[1:d],在哪里 [1:d] 表示的所有整数的集合 1 至 d。在MSQP协议中,秘密解密密钥ski 仅数据库所有者知道 Di。所有秘密密钥的集合表示为sk。公钥pk只需要所有数据库所有者知道;客户或外部人员不应将其告知。因此,当选择特定的密码系统时,数据库所有者可以使用它们之间的安全加密通信来共享公共密钥。这使得数据库所有者可以轻松地在彼此之间共享公共密钥。
对于纯文本 t,其加密表示为 E(t,pk)。给定密文 c,使用密钥对其进行解密 ski 用表示 D(c,ski)。的解密c通过依次应用所有拆分键来执行以下操作:
密码系统的以下属性至关重要。
- (P1)拆分键的属性。使用所有拆分的秘密密钥进行的解密必须正确还原原始明文
(P2)广义同态性质。对于任何k明文 ,给定产品
解密算法(1)必须恢复其明文的总和:
在这种情况下,我们也可以说密码系统满足广义加法同态性质。
7.2 。MSQP协议的阶段
MSQP协议使用一台查询服务器 问。该协议的各个阶段在图2中进行了描述。数据流在图3中示出。
在下面的第7.5节的算法1中提供了MSQP协议步骤的一般说明 。算法1中提供了应用MEC的协议步骤的更多详细信息
Stage 1. The client submits a query (f, B), where fand B are defined in Section 7.3. The query serverQ represents f in the form (4). Each database ownerprocesses data separately and submits l encryptedresults of auxiliary intermediate calculations. Thenumber l is a constant determined by (4).
第一阶段.客户端提交一个查询(f,B),其中fand B在7.3节中定义。查询服务器Q在表单(4)中表示f。每个数据库所有者分别处理数据并提交对辅助中间计算结果进行加密的结果。数字l是由(4)决定的常数。
Stage 2. Homomorphic encryption with split keys isused to combine the encrypted results from Stage 1into l auxiliary statistics over the whole database.
第二阶段:使用带有分裂密钥的同态加密将第一阶段的加密结果合并为整个数据库的l个辅助统计数据。
Stage 3. A predetermined function h is applied toobtain the final useful result f(B(D)) in (4) from theauxiliary statistics calculated in Stage 2.
第3阶段:应用预定函数h,从第2阶段中计算的辅助统计量中得到最终有用的结果f(B(D))in(4)。
(图2。MSQP协议的阶段。)
(图3。MSQP协议的数据流程图,用于计算和返回查询结果)
7.3 。查询样本并在MSQP协议中记录
主要功能的选择 F当客户端通过指示请求哪个统计信息作为查询样本的输出传达查询时,进行查询。对于众所周知的统计数据,用户足以表明该术语。另一方面,用户也很容易提交数学表达式作为要在查询输出中使用的公式。
通过指定条件为查询选择的记录集称为查询样本或查询集。属于查询样本的记录也称为样本记录。为了选择查询样本,客户端可以使用各种逻辑运算符,通过指定要保留的属性不等式来组合记录中属性的条件,并使用布尔运算符来组合这些条件。然后,数据库所有者可以将条件应用于其数据库部分,以选择查询样本中的记录部分。
假设每条记录a的分布式数据库包含n属性,在哪里n是一个正整数。我们假定所有属性都是数字,因为分类属性也可以编码为数字。表示记录中存储的属性a通过
要选择分布式数据库中的记录样本,每个查询都使用布尔表达式。表示为所有布尔表达式的集合。可以通过以下两个规则来归纳定义此集合。
表2。数据库所有者,子样本及其记录。
在整个过程中,我们考虑使用布尔表达式的查询。它选择存储在数据库中的记录。表示为
查询样本,即整个分布式数据库中满足条件的所有记录的集合B。让
是样本中的记录数S。
最后,假设数据库的每个记录都包含 n数值属性,可用于计算感兴趣的统计信息,作为用户的查询输出。对于j∈[1:m],表示存储在记录中的属性。这些属性在表2中表示。
7.4 。类K MSQP协议的功能
本文提出的加密和通信协议可处理大量有用的功能。我们用K。
定义主类 K,我们考虑样本 S 的 m 记录 a1,…,am 与 n表2中列出的属性,其中对于 i∈[1:m]。表示为K 所有统计资料的类别 F(S)=f(B(D)),可以为样本定义 S使用公式。
哪里 ℓ 是一个正整数, h=h(x1,…,xℓ) 是具有的功能 ℓ 论据 h1(x1,…,xn),…, hℓ(x1,…,xn) 与功能 n 每个参数,和 ai=(ai1,…,ain)。这意味着F 是一个功能 h 参数等于函数之和 h1,…,hℓ 单个记录,其中每个总和都包含在样本所有记录的整个集合中。
从定义可以明显看出 K大。为了表明K包含许多重要的,众所周知的和有用的统计信息,我们在表3中给出一些示例,并在7.6节中提供详细说明 。请注意,表3包含几个最重要和最有用的统计信息。
从定义可以得出,如果 φ 是...的任意函数 k 变量和 φ1,…,φk∈K,然后是复合函数 φ(φ1,…,φk) 也属于 K。
(算法1中介绍了使用公式(4)中的数据库记录和函数符号表示的MSQP协议的步骤)
MSQP协议的阶段1在算法1的第1行和第2行中进行了说明。每个数据库所有者 Du, u∈[1:d],分别处理其数据并提交中间计算的加密结果 E(suj,pk), j∈[1:ℓ],到服务器 Q。
MSQP协议的第2阶段在算法1的第3至6行中进行了说明。使用带分割密钥的同态加密将第1阶段的结果组合为辅助中间统计数据 wd=(s1,…,sℓ) 在整个聚合数据库中。
MSQP协议的阶段3在算法1的第7至9行中进行了说明。预定功能 h 用于获得最终的有用结果 f(B(D))=h(s1,…,sℓ) 从辅助统计的中间结果 wd 在第2阶段中通过替换来计算 (s1,…,sℓ)进入 (4)。
MSQP协议的条件和过程保证了一个好奇而诚实的数据库所有者无法获得对其他参与数据库所有者的数据库中任何机密数据的了解。