具有可控泄露的隐私保护动态对称可搜索加密
崔树杰,蒙纳士大学,澳大利亚宋相福,山东大学,中国穆罕默德· 里兹万·阿沙尔,史蒂文·D·高尔布莱思,和乔瓦尼·拉塞洛,
奥克兰大学,新西兰
可搜索加密(SE)是一种允许云服务提供商在加密数据集上进行搜索而不会获知查询和记录内容的 技术。近年来,已提出许多SE方案来保护外包数据。然而,大多数方案会泄露敏感信息,攻击者仍 可通过发起基于泄露的推理攻击(例如计数攻击和文件注入攻击)推断出查询和记录的内容。
在本研究中,我们首先定义了可搜索加密数据库中的泄露,并分析了现有基于泄露的攻击是如何 利用这些泄露的。其次,我们提出了一种隐私保护多云环境下的动态对称可搜索加密方案,用于关系 型数据库(P‐McDb)。P-McDb具有最小泄露,不仅确保了查询和记录的机密性,还保护了搜索、 交集以及大小模式。此外,P-McDb确保了数据库的前向和后向隐私。因此,P-McDb能够抵抗现有的 基于泄露的攻击,例如主动文件/记录注入攻击。我们给出了安全定义和分析,以说明P-McDb如何隐 藏上述模式。最后,我们实现了P-McDb的原型,并使用TPC‐H基准数据集进行了测试。我们的评估 结果表明,用户在搜索410万条记录时,可在2.16秒内获取所需记录。
CCS概念: •安全与隐私数据库与存储安全;加密数据的管理与查询;
可搜索加密,动态,可控泄露,多云
ACM引用格式:
崔树杰、宋相福、穆罕默德·里兹万·阿沙尔、史蒂文·D·高尔布莱思和乔瓦尼·拉塞洛。2021年。具有可控 泄露的隐私保护动态对称可搜索加密。ACMTrans. Priv.Secur.24,3,第18篇文章(2021年4月),35页。
https://doi.org/10.1145/3446920
*这项工作是最初发表于IEEE第10届国际云计算会议论文集(CLOUD’17)题为“P‐McDb:使用多云加密数据 库的隐私保护搜索”的工作的扩展,作者为崔树杰、穆罕默德·里兹万·阿沙尔、史蒂文·D·高尔布莱思和乔瓦尼·拉 塞洛[22]。作者地址:S.Cui,蒙纳士大学,澳大利亚墨尔本;电子邮件:shujie.cui@monash.edu;X. Song,山东大学,中国济南市舜华路1800号;电子邮件:bintasong@gmail.com;M.R.Asghar、S.D Galbraith和G.Russello,奥克兰大学,新西兰奥克兰王子街38号;电子邮件:{r.asghar,s.galbraith, g.russello}@auckland.ac.nz。允许出于个人或教学目的复制本作品的数字或纸质副本,但前提是不得出于盈利 或商业利益进行复制或分发,且所有副本均须保留此声明及首页上的完整引用信息。若作品组件的版权属于 ACM以外的其他方,则必须尊重其版权。允许注明出处的摘要使用。如需以其他方式复制、重新发布、上传至服 务器或再分发到列表中,必须事先获得特定许可和/或支付费用。请向permissions@acm.org申请权限。©2021 AssociationforComputingMachinery。2471‐2566/2021/04‐ART18$15.00htt p s://doi.or g /10.1145/3446920
ACM隐私与安全汇刊,第24卷,第3期,文章18。出版日期:2021年4月。
本文档由funstory.ai的开源PDF翻译库BabelDOCv0.5.10(http://yadt.io)翻译,本仓库正在积极的建设当中,欢迎star和关注。
1 引言
云计算是一种成功的范式,为企业和个人提供了几乎无限的数据存储和计算能力,且成本 极具吸引力。然而,由于存在安全问题,将医疗、社交和财务信息等敏感数据上传到公共 云环境仍然是一个具有挑战性的问题。特别是,一旦这些数据集及相关操作被上传到云环 境,租户就必须信任云服务提供商(CSPs)。然而,由于可能存在云基础设施漏洞[35], 配置错误[70],以及外部攻击[73],,数据可能被泄露或损坏。可搜索加密(SE)是一种有 效的方法,允许组织将其数据库和搜索操作外包给不可信的CSPs,同时不损害记录和查询 的机密性。
自从宋等人[64],开创性的可搜索加密论文发表以来,大量研究工作致力于探索具有灵 活功能和更好性能的SE方案[7, 23, 60, 63]。这些方案在不同模型下基于各种密码学假设被 证明是安全的。然而,最近的一系列研究表明,这些方案仍然容易受到推断攻击的影响, 恶意云服务提供商可以通过以下方式恢复查询和记录的内容:(i)直接从加密数据库中观察 数据,(ii)在用户访问数据库时了解查询和结果,和/或(iii)向数据库中注入恶意数据。
从加密数据库中,云服务提供商可能获知数据的频率信息。在搜索操作中,云服务提供商 能够获知访问模式,即针对给定查询返回给用户的记录,以及搜索结果之间的交集。云服务提 供商还可以通过比较加密查询或匹配的数据来推断两个或多个查询是否等价,这被称为搜索模 式。最后但同样重要的是,云服务提供商可以简单地记录每次查询返回的匹配记录或文件数量, 这被称为大小模式。自伊斯拉姆等人(IKK)[40],发起研究以来,许多近期工作[8, 16, 25, 32– 34, 42, 45, 46, 49, 51, 52, 76, 78]表明,此类泄漏可被利用以获取敏感信息并攻破方案。例如, Naveed等人[52]仅通过频率分析就恢复了CryptDB中超过60%的数据[60]。
当一个可搜索加密方案支持插入和删除操作时,被称为动态SE方案。如果动态SE方案 不支持前向隐私和后向隐私属性,则可能会泄露额外的信息。缺乏前向隐私意味着云服务 提供商可以获知新插入的数据或更新的数据是否与先前执行的查询相匹配。缺少后向隐私 意味着云服务提供商可以获知已删除的数据是否与新查询相匹配。1支持前向和后向隐私是 限制云服务提供商收集数据随时间演变的情况相关信息能力的基础。
本文研究了针对关系型数据库的泄漏和攻击2并提出了一种隐私保护多云环境下的动态 SSE方案用于数据库(P-McDb)。P-McDb实现了类似不经意RAM(ORAM)的安全性, 但无需使用ORAM,而是在每次查询后不经意地对被搜索记录进行洗牌和重新随机化。 P-McDb能有效抵御基于泄露的攻击。我们的关键技术是使用三个云服务器,且任意两个服 务器之间不共谋:其中一个服务器存储数据并执行搜索操作,另外两个服务器负责管理数 据库的重新随机化和洗牌,以保护交集模式。拥有所有服务器访问权限的用户可以执行加 密搜索,而不会泄露搜索、交集或大小模式。在更新数据库时,P-McDb还确保了前向和后 向隐私。我们给出了针对诚实但好奇的对手的安全性完整证明,并展示了P-McDb如何有效 隐藏这些模式。
1本文对后向隐私的定义比参考文献中定义的第一型后向隐私更强。[ 14 ] 2在本文其余部分,我们使用术语数据库来指代 关系型数据库。
2 符号和定义
在本节中,我们对搜索、交集和大小模式以及前向和后向隐私给出形式化定义。在此之前, 我们在表1中定义了本文使用的符号。
表1. 符号和描述
| 符号 | 符号 | 符号 | 符号 | 描述 |
|---|---|---|---|---|
| e | e | e | e | 数据元素 |
| taд | taд | taд | taд | 一个标记记录是real还是虚拟的标志 |
| rcdid=(数据元素id,1,...,数据元素id,F) | rcdid=(数据元素id,1,...,数据元素id,F) | rcdid=(数据元素id,1,...,数据元素id,F) | rcdid=(数据元素id,1,...,数据元素id,F) | 第id条包含F个属性/字段的记录 |
| 数据库={rcd1,…,rcdN} 数据库(数据元素)={rcdid|数据元素 ∈rcdid} | 数据库={rcd1,…,rcdN} 数据库(数据元素)={rcdid|数据元素 ∈rcdid} | 数据库={rcd1,…,rcdN} 数据库(数据元素)={rcdid|数据元素 ∈rcdid} | 数据库={rcd1,…,rcdN} 数据库(数据元素)={rcdid|数据元素 ∈rcdid} | 包含N条记录的数据库 |
| 包含e的记录在数据库中 | ||||
| 包含e的记录在数据库中 | ||||
| O(e)= | |数据库(e)| | O(e)= | |数据库(e)| | |
| 数据元素e在数据库DB中的出现次数 | ||||
| Uf= ∪{eid,f} | Uf= ∪{eid,f} | Uf= ∪{eid,f} | Uf= ∪{eid,f} | 字段f中不同元素的集合 |
| U={U1,...,UF} | U={U1,...,UF} | U={U1,...,UF} | U={U1,...,UF} | DB中的所有不同元素 |
|
e∗
Ercdid=(数据元素 ∗ |
e∗
Ercdid=(数据元素 ∗ |
e∗
Ercdid=(数据元素 ∗ |
e∗
Ercdid=(数据元素 ∗ | 加密元素 |
|
身份 ,
1,…,数据元 素 ∗身份 , F,标记记录 是真实或虚 |
身份 ,
1,…,数据元 素 ∗身份 , F,标记记录 是真实或虚 |
身份 ,
1,…,数据元 素 ∗身份 , F,标记记录 是真实或虚 |
身份 ,
1,…,数据元 素 ∗身份 , F,标记记录 是真实或虚 | 第id个加密记录 |
| 拟的标志∗ EDB=(Ercd1,…) | 拟的标志∗ EDB=(Ercd1,…) | 拟的标志∗ EDB=(Ercd1,…) | 拟的标志∗ EDB=(Ercd1,…) | 加密数据库 |
| 身份) 选择查询=(f,数据元素) | 身份) 选择查询=(f,数据元素) | 身份) 选择查询=(f,数据元素) | 身份) 选择查询=(f,数据元素) | 选择查询 |
| Q.f | Q.f | Q.f | Q.f | 感兴趣字段的身份 |
| Q.e | Q.e | Q.e | Q.e | 感兴趣的关键词 |
| 加密查询=(f, e∗) | 加密查询=(f, e∗) | 加密查询=(f, e∗) | 加密查询=(f, e∗) | 加密的查询 |
| EDB(加密查询),EDB(选择查询),或SR | EDB(加密查询),EDB(选择查询),或SR | EDB(加密查询),EDB(选择查询),或SR | EDB(加密查询),EDB(选择查询),或SR | 选择查询的搜索结果 |
我们说当Ercd匹配EQ时,EQ(Ercd)= 1成立。因此,搜索结果EDB(EQ) = { id | id= 1} ErcdEQ(Ercd)。
本文的贡献可以总结如下:
我们提供了针对关系型数据库的泄露定义,并回顾了现有攻击如何利用这些泄漏来恢复查询和记 录。
我们提出了一种隐私保护的DSSE数据库P-McDb,该数据库保护搜索、交集和大小模 式,并实现前向和后向隐私,从而确保防范基于泄露的攻击。
• P-McDb将大部分存储、通信和计算开销转移至云服务提供商。在P-McDb中,用户只 需加密查询并解密搜索结果,使得该方案也适用于资源受限设备的访问。
•我们给出了针对诚实但好奇的对手的完整安全性证明,并展示了P-McDb如何有效隐藏这些模式并抵 抗基于泄露的攻击。
最后,我们实现了P-McDb的原型,并通过在TPC‐H数据集上评估其性能来展示其实际效率。
本文的其余部分组织如下。在第2节中,我们定义了符号。在第3节中,我们介绍了 SE方案中的泄漏级别,并回顾了基于泄露的攻击。第4节对P-McDb进行了概述。解决方案 细节见第5和6节。在第7节中,我们分析了P-McDb的安全性。第8节报告了P-McDb的性能。 相关工作在第9节中给出。最后,我们在第10节中总结本文。
3 泄露与攻击
3.1 泄露定义
在参考文献[16],中,Cash等人根据加密文件的方法和支撑加密搜索的数据结构,为加密 文件集合定义了四种不同的泄露轮廓级别。我们不能直接将这些定义应用于数据库,因为 文件的结构与数据库中记录的结构不同。具体而言,文件是由按语义顺序排列的相关词语 组成的集合,并通过一组关键词进行标记以便搜索;而记录则由具有预定义属性的一组关 键词构成。此外,一个关键词在文件中可能出现多次,不同关键词的出现次数也可能不同; 而在记录中,某个属性的关键词通常仅出现一次。受参考文献[16],中定义的泄露级别的 启发,我们在本节中提出了针对加密数据库的基于层次的泄露定义。具体而言,我们使用 术语泄漏来指代云服务提供商可以直接从加密数据库中获取的数据信息,以及用户访问数 据库时关于查询和结果的信息。
对于数据库而言,最简单的可搜索加密方案是使用保性加密(PPE)对记录和查询同时进行加密, 例如确定性加密(DET)。在基于DET的方案中,例如CryptDB[60](其中记录仅由PPE层保护)、 DBMask[63],和Cipherbase[4],,相同的数据在加密后具有相同的密文。云服务提供商只需比较相 应的密文,即可高效地检查每条记录是否与查询匹配。然而,在执行任何查询之前,云服务提供商可 以直接从数据库的密文中获知数据分布,即不同元素的数量以及每个元素的出现次数。形式上,我们 说如果对于每个数据库中的数据元素e∗和数据元素e具有相同的出现次数,即O(e)= O(e∗),则该数据 元素e ∈ U的数据分布被泄露。我们将此泄露轮廓集合定义为 L3:
• L3={O(e)}e∈U.
第二类用于数据库的SE使用语义安全原语对数据进行加密,但仍使用DET加密来加密查询。 通过这样做,可以保护数据分布,并且云服务提供商仍能通过对DET查询重复随机化,然后将 其与随机化的数据进行比较,从而高效地搜索加密数据库,如参考文献[36], Arx[58],以及大多 数带关键词的公钥加密系统(例如参考文献[9]和BlindSeer[28])中所采用的方法。然而,在 执行查询后,云服务提供商仍可能获知交集和大小模式。由于查询采用了DET加密,搜索模式 也会发生泄漏。给定一个q次查询Q=(Q1,…, Qq)序列,我们将其泄漏轮廓定义为:
• L2={|DB(Qi)|,{EDB(Qi) ∩ EDB(Qj), Qi ? = Qj}Qj ∈Q}Qi ∈Q .
请注意在执行查询后,基于PPE的数据库还会泄露包含在 L2中的配置文件。
一种更安全的可搜索加密方案利用ORAM[31, 68]或结合同态加密(HE)[30, 55]与 不经意数据检索来隐藏搜索和交集模式。然而,在这些方案中,云服务提供商仍然可以得 知执行查询后返回给用户的记录数量,即通信量。根据参考文献[42],基于同态加密和基 于ORAM的SE方案在云服务提供商与用户之间具有固定的通信开销。具体而言,云服务提 供商发送给用户的消息长度与匹配查询的记录数量成正比。基于这一观察,云服务提供商 仍可推断出大小模式。由于使用了不经意操作,关键词之间的共现率受到保护。然而,如 计数攻击中所述[16],攻击者仍可利用具有唯一结果大小的部分查询。基于同态加密和基 于ORAM的SE方案中泄露的配置文件可总结如下:
表2. 针对加密数据库的泄露轮廓与攻击总结
| 泄漏 | 方案 | 攻击 |
|---|---|---|
| L3 | CryptDB[60] DBMask[63] Cipherbase[4] Monomi[72] Seabed[56] | 频率分析攻击 IKK攻击 计数攻击 记录注入攻击 |
| L2 |
Asghar等人[7] 盲视系统[28, 57] Arx[58]
PPQED[62] | IKK攻击 计数攻击 记录注入攻击 |
| L1 | PPQED a[62] SisoSPIR[39] | 计数攻击 |
• L1={|数据库(选择查询i) | }选择查 询i ∈选择查询.
3.2 针对安全加密方案的攻击
近年来,针对SE方案的基于泄露的攻击在文献中得到了广泛研究。其中一部分攻击,例如 参考文献[32, 33, 42, 45, 46, 49, 51, 76],利用了特定于范围、k‐最近邻或排序查询的泄露信息。 本工作聚焦于简单的等值查询,因此我们仅考虑适用于等值查询的攻击。表2总结了面向 关系型数据库的现有可搜索加密方案及其适用的攻击。接下来,我们将说明现有的基于泄 露的攻击如何恢复数据和查询。具体而言,对于每种攻击,我们分析其利用的泄漏、所需 的知识、攻击过程及其后果。
3.2.1 频率分析攻击
在参考文献[52],中,Naveed等人描述了一种针对基于PPE的安全 加密方案的攻击,云服务提供商可通过分析泄露的频率信息(即数据分布)来恢复加密记录。 要成功实施此攻击,云服务提供商除了需要加密数据库外,还需要一些辅助信息,例如应用背 景、公开可用的统计数据以及目标数据库的先前版本。在基于PPE的安全加密方案中,加密数 据库的频率信息与明文数据库的频率信息相同。通过将泄露的频率信息与相关应用的已获取统 计数据进行比较,云服务提供商可以恢复存储在加密数据库中的数据元素。在参考文献[52],中, Naveed等人在使用CryptDB对真实电子医疗记录进行评估时,恢复了超过60%的记录。我们 强调,此攻击不需要任何查询或与用户的交互。具有泄漏轮廓(即基于PPE的数据库),如 CryptDB和DBMask的加密数据库,容易受到此类攻击的影响。
3.2.2 IKK攻击
Islam等人提出的IKK攻击[40]是首个利用交集模式泄漏的攻击。 IKK攻击的目标是恢复加密文件集合系统中的加密查询,即恢复搜索关键词的明文。注意, 该攻击也可用于恢复加密数据库中的查询,因为它并未利用文件集合特有的泄漏信息。在 此攻击中,云服务提供商需要知道数据集中可能的关键词以及任意两个关键词出现在同一 文件中的预期概率(即共现概率)。˜形式上,云服务提供商猜测m个潜在关键词,并构建 一个m ×m矩阵C,其元素为每对关键词的共现概率。云服务提供商通过观察 加密查询所揭示的交集模式。具体而言,通过检查任意两个查询是否匹配相同的文件,可以重 构出包含任意两个搜索关键词的文件数量(即共现率)。假设云服务提供商观察到n次查询, 它构建一个n ×n矩阵C,其中包含它们的共现率。通过使用模拟退火技术[44],˜,云服务提供商 可以找到C与C之间的最佳匹配,并将加密关键词映射到猜测值。在[40], Islam等人利用安然 邮件数据集发起了IKK攻击[27]并以特定词汇规模恢复了80%的查询。具有泄露轮廓L2或 L1的 加密关系型数据库,例如Arx[58],盲视系统[57],和PPQED[62],也容易受到IKK攻击。
3.2.3 文件注入攻击和记录注入攻击
文件注入攻击[78]是一种针对加密文件集合的主 动攻击,也被称为选择性文档攻击,参见文献[16]。文件注入攻击试图通过利用加密文件存 储中的交集模式来恢复加密查询。最近,Abdelraheem等人[1]将该攻击扩展到加密数据 库,并将其定义为记录注入攻击。与IKK攻击和计数攻击(将在第3.2.4节中讨论)相比, 该攻击所需的辅助知识更少:云服务提供商仅需知道系统的关键词全集。在文献[78],中, 张等人提出了首个具体的文件注入攻击,并表明通过少量注入文件即可揭示加密查询。具 体而言,在此攻击中,云服务提供商(作为主动攻击者)向用户发送由其选择的关键词组 成的文件(例如电子邮件),用户对其加密并上传至云服务提供商,这些文件称为注入文 件。若没有其他文件同时上传,则云服务提供商可以轻松确定每个注入文件的存储位置。 此外,云服务提供商可以检查哪些注入文件与后续查询匹配。当拥有足够多具有不同关键 词组合的注入文件时,云服务提供商可通过检查搜索结果来恢复查询中包含的关键词。具 有 L2或 L3泄露轮廓的加密数据库易受到此类攻击。尽管一些研究工作[3, 14, 18, 82]确保 了前向和后向隐私,但由于交集模式的泄漏,它们仍然容易受到文件注入攻击。也就是说, 在搜索之后,攻击者仍能获知先前插入查询与当前查询搜索结果之间的交集。
3.2.4 计数攻击和关系计数攻击
Cash等人[16]提出了计数攻击,旨在基于交集和大小模 式的泄漏,在文件存储系统中恢复加密查询。在参考文献[2],中,Abdelraheem等人已将此 攻击应用于数据库,并将其命名为关系计数攻击。与IKK攻击场景类似,假设云服务提供商 (CSP)知道一个m ×m˜ ˜矩阵C,其中其条目C[w i,wj]表示关键词w i和wj在 目标数据集中的共现率。为了提高攻击效率和准确性,假设CSP知道每个关键词w在目标数据 集中的匹配文件数量count(w)。CSP通过统计每个加密查询所匹配的文件数量来实施计数攻击。 对于一个加密查询,如果其匹配文件的数量是唯一的且等于已知的count(w),则被搜索的关键 词必为w。然而,如果查询EQ的结果大小不唯一,则所有满足count(w)= |EDB(EQ)| 的关键词 都可能是候选词。回想一下,CSP可以构建另一个矩阵C,该矩阵基于交集模式的泄漏,表示任 意两个查询˜之间的观测共现率。通过比较C与C,可以减少具有非唯一结果大小的查询的候选词 范围。在成功恢复足够多的查询后,就有可能确定EQ的关键词。在参考文献[16],中,Cash等 人在安然邮件数据集上测试了计数攻击,并成功恢复了几乎所有的查询。对于泄露轮廓超过 L1 的数据库安全增强(SE)方案,容易受到此类攻击的影响。
3.2.5 重构攻击
上述攻击主要旨在恢复查询。相反,重构攻击 [32, 33, 42, 45, 46, 49, 51, 76]旨在重构数据库。在基于ORAM的 系统中,例如Ishai等人提出的SisoSPIR,[39],大小和交集模式被隐藏。不幸的是, Kellaris等人[42]指出,基于ORAM的系统在云服务提供商和用户之间具有固定的通信开 销,其中从云服务提供商发送给用户作为查询结果的消息长度与匹配该查询的记录数量成 正比。也就是说,对于一个查询Q,从云服务提供商发送给用户的通信量大小为 α |DB(Q) | + β,其中 α和 β是两个常数。理论上,通过提供两组(查询,结果)对,云服务提供商 可以推导出α和 β,并进而推断其他查询的结果大小。在参考文献[42],中,Kellaris等人 提出了利用通信量泄露的重构攻击,该攻击能够重构支持范围查询的加密数据库中的属性 名称。在此攻击中,云服务提供商只需在攻击前了解底层的查询分布。他们的实验表明, 在一定数量的查询之后,所有属性都可以在几秒钟内被恢复。由于本文专注于等值查询, 因此我们在此不提供该攻击的详细信息。然而,在恢复每个查询的大小模式后,云服务提 供商也可以对等值查询发起计数攻击。具有 L1泄露轮廓的SE方案容易受到此攻击。
4 P‐McDb 概述
在本研究中,我们提出了P-McDb,一种基于多云的DSSE方案,用于可抵抗上述基于泄露 的攻击的数据库。具体而言,我们的方案不仅隐藏了数据库的频率信息,还保护了大小、 搜索和交集模式。它在涉及插入和删除查询时也确保了前向和后向隐私。与现有可搜索加 密方案相比,P-McDb具有最小泄露,低于上述定义的L1。在本节中,我们定义了系统和 威胁模型,并从高层角度说明了在P-McDb中使用的技术。
4.1 系统模型
接下来,我们定义系统模型以描述P-McDb中涉及的实体,如图1所示:
•管理员:管理员负责数据库的建立和维护、用户管理,以及访问控制策略的制定和部署。
•用户:用户可以根据部署的访问控制策略发出插入、选择、删除和更新查询,以读写 数据库。P-McDb允许多个用户读写数据库。
•存储与搜索服务(SSS):它提供加密数据存储,执行加密查询,并将匹配记录返回给用 户。
•索引与证明服务(IWS):它存储索引信息,并向SSS提供证明(或搜索令牌)以检索数据。
•重新随机化和Shuffle服务(RSS):每次查询执行后,它会重新随机化并Shuffle搜索到的记 录,以实现交集模式的隐私保护。
SSS、IWS和RSS各自部署在由不同云服务提供商管理的基础设施上。根据Flexera发布 的最新报告,[29],组织平均使用超过三个公共云服务提供商,这表明基于多云的方案对大 多数组织是可行的。云服务提供商必须确保它们之间任意两者存在双向通信。
4.2 威胁模型
我们假设管理员是完全可信的。所有用户仅被假定为能够安全地存储其密钥和数据。 托管SSS、IWS和RSS的云服务提供商被建模为诚实但好奇的。更具体地说,他们会根据协 议规范诚实地执行用户请求的操作。然而,如上述基于泄露的攻击中所述,他们出于好奇会试 图通过以下方式获取记录和查询的知识:(1)分析外包数据,(2)分析执行查询时泄露的信息, 以及(3)注入恶意记录。此外,如同先前使用多个云服务提供商的研究中所假设的那样 [38, 62, 67],我们也假设云服务提供商之间不会共谋。换句话说,我们假设攻击者只能攻破一个 云服务提供商。在实际中,可以考虑任何三家处于竞争关系的云服务提供商,例如Amazon S3、GoogleDrive和MicrosoftAzure,因为他们不太可能共谋以获取客户信息。
我们假设已采取安全性机制来确保数据完整性以及系统的可用性,如文献中所考虑的那样 [47, 81]。访问策略的规范不在本文的范围之内,但文献中介绍的方法[5, 7]可用于P-McDb。
4.3 方法概述
P-McDb旨在隐藏搜索、访问和交集模式。P-McDb还实现了后向隐私和前向隐私。接下来,我们将 概述我们的方法。
为了保护搜索模式,P-McDb将查询与随机数进行异或操作,使得相同的查询在加密后呈现 不同形式(即加密查询是语义安全的)。云服务提供商仍可能通过观察交集模式来推断搜索模 式。具体而言,如果两次查询返回相同的记录,云服务提供商便可推断这两次查询是等价的。 为解决此问题,在每次执行查询后,我们会对被搜索记录的位置进行Shuffle操作,并对其密文 进行重新随机化,使其无法被追踪。通过这种方式,即使执行与之前等价的查询,云服务提供 商看到的也是一组新的被搜索和返回的记录,从而无法轻易推断出搜索和交集模式。
另一种泄漏形式是大小模式,即使在洗牌和重随机化之后,云服务提供商仍可获知执 行查询后返回的记录数量。此外,云服务提供商可以从大小模式中推测出搜索模式。具体 而言,匹配不同数量记录的查询必定不同,而匹配相同数量记录的查询可能是等价的。为了 保护大小模式,我们引入了一些虚拟记录,这些虚拟记录与真实记录完全相同,并且能 够匹配查询。因此,每次查询的搜索结果都将包含一定数量的虚拟记录,使得云服务提供 商难以识别某次查询实际返回的真实记录数量。
为了打破大小模式与搜索模式之间的关联,我们的策略是确保所有查询匹配的记录数量始终相同。通 过这样做,由于两者之间不存在固定的对应关系,因此通信量中的大小模式也得到了保护。最直接的方法 算法1:RcdEnc(rcd, taд)
1:种子←${0, 1}λ
2: n←伪随机函数k2(种子),其中n= n1 ‖… ‖nf ‖… ‖nF+1, |nf | = |e | 且 |nF+1 | = |H | + λ
3:对于每个数据元素ef ∈ rcd执行
4: e∗ f← ENCk1(ef) ⊕ nf
5:如果taд=real则
6: S←${0, 1}λ
7: taд∗←(Hk1(S)‖S) ⊕ nF+1
8:否则
9: taд∗←${0, 1}|H |+λ 10:返回Ercd=(e∗ 1,…, e∗ F, taд∗)和(种子, n)
是将每个字段中的所有数据元素通过虚拟记录填充至相同的出现次数。这种策略提供了较强的安全 性保证,但可能会引入大量虚拟记录,并导致最差的搜索时间和存储开销。为了优化P-McDb的性能, 如参考文献[12, 24],中所做的那样,我们采用一种可配置填充机制,即将数据库在逻辑上划分为多 个组,并仅将同一组内的数据填充至相同的出现次数。通过这种方式,对同一组内值进行的查询将 始终匹配相同数量的记录,从而云服务提供商无法推断其搜索模式。这里我们澄清一点:如果查询 的搜索结果属于不同的组,则云服务提供商仍然可以判断这些查询是不同的。
P-McDb还实现了前向和后向隐私。我们的策略是使用随机数对记录进行盲化,并在每次查 询执行后用新的随机数对其进行重新随机化。只有包含当前随机数的查询才能匹配记录。这样, 即使恶意的云服务提供商尝试使用先前执行的查询,也无法匹配数据集中的记录,从而确保前 向隐私。类似地,已删除的记录(带有旧的随机数)将无法与新发出的查询匹配,因为它们使 用的随机数不同。
我们方案的详细信息和算法将在下一节中讨论。
5 解决方案细节
在本节中,我们给出设置、搜索和更新数据库的详细信息 se.
5.1 初始化
系统由管理员通过基于安全参数 λ生成密钥k1和k2来设置。k1仅用户知晓,用于保护查询 和记录免受云服务提供商的窥探。k2用于节省存储空间,由用户和IWS共同知晓。管理员 还定义了P‐McDb中使用的密码学原语。
我们假设初始数据库DB不为空。管理员对DB进行初始化。大致来说,管理员通过某 种方法将DB划分为若干组,将同一组中的元素通过虚拟记录填充至相同的出现次数,并加 密每条记录。为了清晰起见,此处我们假设只有一个组,且每个字段f ∈[1, F]中的所有元 素均已通过虚拟记录填充至相同的出现次数(定义为τf)。特别地,虚拟记录是无意义的 项。考虑到它们应能匹配查询,管理员使用U中的真实值来构造虚拟记录。因此,真实记 录和虚拟记录均表示为rcd=(e1,…,eF),其中ef ∈ Uf。填充后,每条记录rcd附加一个 taд以标记其为真实或虚拟。数据库的分组和填充细节见第6节。此处,我们给出记录加密 的具体细节。
RcdEnc(rcd, tag) →(Ercd,seed,n)。对于记录加密,
有三个要求:(R1)为保护大小和搜 索模式,加密后的real记录和虚拟记录应 无法被云服务提供商区分;(R2)加密记录应是语义安全的,以隐藏数据库的频率信息; (R3),由于用户无需解密返回的虚拟记录,因此他们应能够轻松过滤虚拟记录。算法1, RcdEnc,展示了记录加密的详细过程。
为满足要求1,P‐McDb以相同方式加密真实记录和虚拟记录。为满足要求2,P‐McDb使 用随机数对记录进行加密。具体而言,如算法1的第1行和第2行所示,首先采样一个种子,并通 过伪随机函数(PRF){0, 1}λ ×{0, 1}λ→{0, 1}∗生成随机数n= n1 ‖... ‖ nf ‖... ‖nF+1。然后, 通过计算e∗ f← ENCk1(ef) ⊕ nf对每个数据元素ef进行加密(第4行),其中Enc: {0, 1}∗ ×{0, 1}λ→{0, 1}∗为确定性对称加密原语,例如AES‐ECB。使用nf一方面可确保语义安 全性,另一方面可确保P‐McDb的前向和后向隐私性(如第5.3节所述)。e∗ f将用于加密搜索 和数据检索。
考虑到云服务提供商是不可信的,我们不能以明文形式标记真实记录和虚拟记录。相 反,我们使用密钥哈希值来实现R3。具体来说,如第7行和第9行所示,如果记录是真实的, 则taд∗通过密钥哈希函数H生成:{0, 1}∗ ×{0, 1}λ→{0, 1}∗和密钥k1,;否则,taд∗为一个随 机比特串。拥有k1,的用户可以通过检查密钥哈希值来高效地过滤掉虚拟记录 taдl ? = Hk1(taдr), where taдl || taдr← taд∗ ⊕ nF+1.
加密后,每条加密记录Ercd=(e∗ 1 ,…,e∗ F ,taд∗)和(种子,n)对分别发送到SSS和IWS。在表3中, 我们以员工表(即表3(a))为例,分别展示了每个云服务提供商上的存储,如表3(c)和表3(d)所示。我 们将存储在SSS中的Ercd集合称为EDB,将存储在IWS中的(种子,n)对集合称为NDB3。 此外,IWS还包含GDB(表3(b)),用于存储每个组的组信息。具体而言,对于每个组, IWS存储属于该组的记录的索引、其元素的集合以及其元素的出现次数。回顾一下,此处我们 考虑每个字段中的所有元素都属于一个组。因此,SSS在每次查询时会搜索EDB中的所有记录, 而IWS在GDB中仅为每个字段存储Uf 和τf。由于IWS是不可信的,管理员使用语义安全原 语ENC:{0, 1} ∗ ×{0, 1} λ→{0, 1} ∗和k1, 对每个(Uf,τf)对进行加密,即(U ∗←,k1) f ENC τ f (U{v13},{v14})。GDB将在插入新记录时用于生成虚拟记录,具体细节见第5.5节。 为了减少IWS上的存储开销,N DB可以仅存储种子,并在需要时通过计算PRFk 2(seed)来恢复随机数。而保存随机 数则会降低其计算开销。在本文的其余部分,我们假设N DB包含(seed,nonce)对。
5.2 选择查询
在本研究中,我们专注于仅包含单个相等性谓词的简单查询。具有多个谓词的复杂查询可 以通过在用户侧发出多个简单查询并组合其结果来实现。为了支持范围查询,可以采用参 考文献[6]中使用的技术。
执行选择查询时,P-McDb需要用户、SSS和IWS之间的协作。具体细节如算法2所 示,Query(Q) → SR,该算法包含四个部分:QueryEnc、NonceBlind、Search和RcdDec。
查询加密(Q)→(加密查询, η)(第3行–4行)。用户首先使用Q=(f,e)和查询加密对查询 进行加密。我们并不旨在保护搜索字段,因此用户不会加密Q.f。感兴趣的关键词Q.e被加 密为EQ.e∗,通过计算ENCk 1(Q.e) ⊕ η(第3行),其中 η是随机采样的随机数,使得EQ.e∗具 有语义安全。最后,用户将EQ=(f,e∗)发送至SSS,将(Q.f,η)发送至IWS。
如算法1和2所示,我们有 EQ.e ∗ ← Enck1(Q.e) ⊕ η e ∗ f ← Enck1(ef) ⊕ n f . 由于随机数 η和nf的存在,EQ.e∗和e∗ f∈ Ercd均是语义安全的。此处的挑战在于如何高 效地检查EQ.e∗与e∗ Q.f之间的相等性,而这种相等性无法通过直接比较其密文来实现。我 们的解决方案利用了高效的异或操作。由于ENC是确定性的,如果Q.e=eQ.f,则Enck1 (Q.e)=Enck1(eQ . f)且Enck1(Q.e) ⊕Enc k 1(eQ.f)= 0。因此,如果Q.e= e Q . f ,则我们有 EQ.e ∗ ⊕ e ∗ Q . f ⇒ Enc k 1 (Q.e) ⊕ η ⊕ Enc k 1 (e Q . f ) ⊕ n Q . f ⇒ η ⊕ n Q . f . 基于这一观察,我们的解决方案是让IWS为每条记录生成一个证明(即搜索令牌)w← H ′(η ⊕ nQ.f),然后SSS只需验证H ′(EQ.e∗ ⊕ e∗ Q.f) =? w。此处H′:{0, 1}∗→{0, 1}λ是一个哈 希函数。通过使用H ′,一方面减少了IWS与SSS之间的通信开销,另一方面,SSS无法从e∗ f中移除nf,从而保持了e∗ f的语义安全性。具体细节如下所述。
NonceBlind(Q.f, η)→EN(第5—12行)。给定(Q.f,η),IWS使用NonceBlind为搜索生成证据 EN。对于每个(seedid,nid) ∈NDB,其中nid=n1‖... ‖nQ.f ‖... ‖nF+1且|nQ.f | = |η|,IWS生成 EN(id)=(w id,tid)(第8–11行)。具体而言,w id=H ′(nQ.f ⊕ η)且tid= η ⊕ seedid。w id将被SSS用 于搜索,而tid将被用户用于解密结果。最后,IWS向SSS发送一系列(w id,tid)对(即,EN)。
搜索(EQ,EN)→ SR(第13—18行)。SSS遍历数据库,并在EN的辅助下查找与EQ匹配 的记录。具体而言,对于每条记录Ercdid=(e∗id,1,…,e∗id,F,taд∗id),SSS检查H′(e∗ id,EQ.f⊕EQ.e∗)=?w id是否成立(第16行)。SSS将每个匹配的记录EDB(id)及其对应的 EN(id).t作为搜索结果SR发送给用户,即EDB(EQ)。
RcdDec(SR)→记录集(第19—25行)。要解密一个加密记录Ercd,需要同时拥有密钥k1和随机 数n。所有用户都拥有k1,,但只有发起查询的用户知道 η,并能够通过计算PRFk2(t ⊕ η)来恢 复n(第21行)。有了n后,用户可以检查每条返回的记录是真实记录还是虚拟记录(第24行), 并通过计算Deck1(Ercd ⊕ n)来解密每条真实记录(第25行),其中Dec 是Enc的逆运算。
5.3 洗牌与重随机化
为了实现类似ORAM的安全性保证,即保护交集模式,P-McDb执行类似ORAM的操作, 即在每次查询后对被搜索记录进行Shuffle和重新随机化。与ORAM构造不同,P-McDb是 动态的,并支持多用户访问。4因此,Shuffle和重新随机化操作仅在云服务提供商IWS和 RSS之间进行。具体细节如算法3所示,包括PreShuf f le和Shuf f le。
算法3:Shuffle(NDB,EDB) 1:IWS:PreShuffle()2:NN ← ∅ 3:r $ ←{0, 1} λ,NDB← π r(N DB)4:对于每个(seedid ,n id) ∈ NDB执行5:seed′ id$ ←{0, 1} λ 6:n′ id ← PRFk2(seed ′ id)7:N DB(身份证)←(seed ′ id,n′ id) 8 ′ id 9 ← id ⊕ :NN (id)nn:将(r,NN)发送给RSS。 10: RSS: Shu f f le(EDB, r, N N)11: EDB ← π r( EDB)12:for每个Ercd id ∈ EDB do13:Ercd id ← Ercd id ⊕ NN(id) 14:将EDB发送给SSS。
PreShuff le()→(r, N N).在P-McDb中,通过更新随机数对被搜索记录进行重新随机化。回想一 下,e ∗由于随机数的存在而具有语义安全。然而,IWS存储了随机数。 4ORAM构造要求用户存储数据。动态操作使得在多个用户之间同步存储的数据变得不切实际。
如果IWS能够访问加密记录,则可以通过移除随机数来观察确定性加密的记录。为了防止 泄漏,P-McDb不允许IWS访问任何记录,并引入RSS对记录进行Shuffle和重新随机化。 然而,IWS仍需要对NDB进行Shuffle,并通过执行PreShuffle来生成用于重随机化的新随 机数。具体而言,如算法3第1–9行所示,IWS首先使用伪随机置换(PRPP) π和随机密钥r对N DB进行Shuffle,该操作可通过参考文献[53]中提出的方法实现。为了重新随机化记录,IWS为每 条记录采样一个新的种子seed′,并生成一个新的随机数n′。为确保记录将使用存储在NDB中相 应的新随机数进行盲化,IWS为RSS生成NN=(n ⊕n′,…)(第8行)。随后,IWS使用新值更 新存储在NDB(id)中的种子和随机数。最后,将(r,NN)发送给RSS。
Shuff le(EDB, r, N N)→ EDB.搜索后,SSS将被搜索记录EDB发送给RSS。给定r,RSS首先使用 π对 EDB进行Shuffle操作,然后通过计算Ercdid ⊕N N(id)重新随机化每条记录(第13行)。具体操作如 下: (Enck1(rcdid) ⊕ nid) ⊕(n′ id ⊕ nid)= Enck1(rcdid) ⊕ n′ id. 也就是说,Ercdid使用NDB(id)中存储的最新随机数n′进行盲化。最后,重新随机化并洗牌后的记录 EDB 被发送回SSS。
通过使用新随机数对已搜索的记录进行重新随机化,P-McDb实现了前向和后向隐私。 回顾一下,搜索操作需要证明wid(算法2第18行),该证明只能由IWS使用最新的随机数 nid和 η生成。如果没有正确的证明,SSS无法在最新数据库上重复之前的查询,也无法在 已删除的记录上执行新查询。
备注。我们承认P-McDb在云服务提供商之间进行搜索和洗牌时存在较大的通信开销, 该开销与数据库大小成线性关系。可以通过将数据库划分为多个组,并且每次查询仅对一 组记录进行搜索和洗牌来优化此问题。我们在第6节中给出了详细信息。
5.4 用户撤销
如第5.2节所述,在过滤虚拟记录并恢复返回的真实记录时,需要同时使用k1和随机数n(或种 子)。洗牌后,(种子,n)仅由IWS掌握。因此,在没有IWS和SSS协助的情况下,用户仅凭k1 无法恢复记录。因此,在用户撤销机制中,我们只需在IWS和SSS上维护一个被撤销用户列表 即可。一旦某个用户被撤销,管理员会通知IWS和SSS将该用户加入各自的被撤销用户列表中。 当接收到查询请求时,IWS和SSS会首先检查该用户是否已被撤销。如果已撤销,则拒绝该查 询请求。即使被撤销的用户与SSS或IWS中的任意一方合谋,也无法获得搜索结果,因为此类 操作需要发起查询的用户、IWS和SSS三方共同协作才能完成。
5.5 数据库更新
P-McDb允许用户在引导后更新数据库。更新后,相关元素的出现次数可能会发生变化。为 了有效保护搜索模式,如第4.3节所述,应确保同一组内的元素始终具有相同的出现次数。 P-McDb通过更新虚拟记录来实现这一点。
插入查询。 在P-McDb中,插入查询也由用户、IWS和SSS协同完成。这里的挑战在于如 何生成虚拟记录,以确保同一组中的元素始终具有相同的出现次数。假设要插入的真实记 录为rcd=(e1 ,...,eF)。答案取决于ef ∈ U f 是否成立,即rcd是否引入新 元素。如果在EDB中ef ∈ Uf,则ef的当前出现次数O(ef)必须为τ f。插入rcd后,O(ef)将自动 增加至 τ f + 1。在这种情况下,生成的虚拟记录也应将Uf中其他元素的出现次数增加至 τ f + 1。 为实现这一点,对于U f \中每个不等于ef的元素,应插入一条包含该元素的虚拟记录,这意味 着字段f需要 γ f = |U f | − 1条虚拟记录。如果e f 属于Uf,则在EDB中O(ef)为= 0。插入后, 虚拟记录应将O(ef)增加至τ f,这需要在字段f中插入 γ f = τ f − 1条包含ef的虚拟记录。插入真 实记录的详细过程如算法4所示。
首先,用户使用RcdEnc加密真实记录,并得到(Ercd,seed,n)(算法4的第2行)。 下一步是生成虚拟记录(第4–19行)。如上所述,为了确定如何生成虚拟记录,用户需要 知道e f ∈ Uf。为此,用户从GDB中获取(Uf,τf)∗并对每个字段进行解密。通过检查e f ∈ Uf,用户即可得知 γ f的值,即字段f所需虚拟记录的数量。为确保所有字段都被正确填充, 应生成M= max{γ f }1≤f ≤ F条虚拟记录。如前所述,应为虚拟记录分配哪个值也取决于e f ∈ Uf。具体而言,若e f Uf,则将ef赋给字段f中的γ f条虚拟记录;否则,将Uf \ef中的 γ f个元素赋给 γ f条虚拟记录。如果M −γ f > 0,则其余虚拟记录在字段f中被赋值为“ NULL”。此外,如果e f Uf,则用户将ef加入Uf,否则用户更新 τ f。最后, 更新后的(Uf,τf)对被重新加密,生成的虚拟记录也使用RcdEnc进行加密(第22–24行)。 所有加密记录都被发送到SSS并添加到EDB中(第27‐32行)。 所有(种子,n)对以及(Uf,τf)∗都被发送到IWS,并相应地插入到NDB和GDB中(第33–37行)。 最后,为了保护交集模式,将在IWS和RSS之间对涉及的组执行洗牌和重新随机化操作。
删除查询。 处理删除查询是直接的。用户不会从数据库中移除记录,而是通过将其taд∗替 换为随机字符串,将记录设置为虚拟。这样,相关元素的出现次数保持不变。此外,搜索 结果的正确性也得到保证。然而,仅更新匹配记录的标签会导致向RSS泄漏删除查询的交 集模式。具体而言,RSS可以维护数据库的最新视图,并在被搜索记录发送回进行洗牌时 检查哪些记录的标签被修改。为了避免此类泄漏,在P-McDb中,用户会为每次删除查询修 改所有被搜索记录的标签。具体来说,SSS将匹配记录的标识符以及所有被搜索记录的标 签返回给用户。对于匹配的记录,用户直接将其标签更改为随机字符串;而对于每个未匹 配的记录,用户首先检查其是real还是虚拟,然后按照算法1生成适当的新标签。同样地, 在更新所有标签后,IWS和RSS之间执行预混洗和Shuffle算法。
然而,如果系统从不删除记录,则数据库将迅速增长。为了避免这种情况,管理员会 定期检查每个组中的元素是否全部包含在至少一条虚拟记录中。如果是,则对于该组中的 每个元素,管理员将包含该元素的一条虚拟记录的相应字段更新为“NULL”。这样一来, 同一组中所有元素的出现次数都会减少,但仍保持相同。当虚拟记录仅由“NULL”组成 时,管理员会将其从数据库中移除。
更新查询。 在P-McDb中,更新查询可以通过删除包含旧元素的记录并插入包含新元素的新记 录来执行。
6 数据库分组与填充
在本节中,我们给出了一种对数据库进行分组和填充的方法。
组生成。 如前所述,插入虚拟记录是保护大小和搜索模式所必需的,而对数据进行分组旨在减少所 需虚拟记录的数量。 确实,将数据划分为组也可以减少需要搜索的记录数量。仅对同一组内的数据填充至 相同的出现次数可能会导致组信息的泄漏。特别是,SSS可以通过大小模式得知记录和查 询是否处于同一组中。考虑到执行查询后组信息不可避免地会泄漏,P-McDb允许SSS提前 获知组信息,并针对每次查询仅搜索一组记录而非整个数据库。这样做可以在不泄露额外 信息的情况下更高效地处理查询。然而,在这种情况下,SSS需要知道每次查询应搜索哪 一组记录。鉴于SSS仅能获取加密的记录和查询,该组应由管理员和用户确定。P-McDb使 用伪随机函数GE:{0, 1} ∗ ×{0, 1} k→{0, 1} ∗将数据划分为组。字段f 中具有相同д ← GEs 1 (e)值的元素属于同一组,而(f,д)即为组标识符。这样,管理员和用户只需执行GE即可轻 松获知记录和查询的组标识符。
实现GE函数会影响搜索模式的安全级别。设 λ ′表示一个组中包含的不同元素的数量。由于 同一组中的元素将具有相同的出现次数,因此涉及这些元素的查询(定义为the queriesin the 相同组)将匹配相同数量的记录。然后,对手无法从它们的大小模式中分辨出它们的搜索模 式。形式上,对于任何两个匹配相同记录数量的查询,它们涉及相同关键词的概率为 1 λ′。 因此, λ′也表示搜索模式的安全级别。给定 λ′,GE的实现应确保每个组包含至少 λ′个不 同元素。例如,管理员可以通过计算e的组标识符来生成LSBb(Hs1(e)),其中LSBb获取其输入 的最低有效b位。为了确保每个组包含至少 λ′个不同元素,b可以更小。
算法5的第2至9行展示了对DB进行分组的详细过程。形式上,我们将组(f,д)定义为(ILf, д,Uf,д, τ f,д),其中ILf,д存储该组中记录的标识符(第26行),Uf,д是该组中不同元素的集 合(第6行),而τ f,д=max{O(e)|e ∈Uf,д}是用于填充的出现阈值(第7行)。由于组信息将 被存储在云服务提供商处,因此(Uf,д, τ f,д)使用密钥k1和ENC加密为(Uf,д, τ f,д)∗。在表4 中,我们展示了将表格划分为多个组时GDB的一个示例。
注意,如果初始数据库为空,则管理员可以为每个字段预先定义一个可能的Uf,并以 相同的方式对其元素进行分组。在这种情况下,引导后每个组的IL= ∅和 τ= 0。
虚拟记录生成。 确定组后,下一步是生成虚拟记录。生成虚拟记录的详细过程见算法5的 第10–19行。具体而言,管理员首先需要知道填充所需的虚拟记录数量。由于管理员将把 每个元素在U f ,д中的出现次数填充至 τ f ,д, τ f ,д − O(e),因此每个e ∈ U f ,д都需要O(e)个虚拟 记录。 假设字段f中有W组,则填充字段f总共需要 Σ f =∑ W i=1∑ e ∈ U f ,д i( τ f ,д i − O(e))条虚拟记录。对 于包含多个字段的数据库,不同字段可能需要不同数量的虚拟记录。假设 Σ max = max{Σ1 ,..., Σ F}。为确保 所有字段都可以被适当填充,需要 Σmax虚拟记录。然而,对于字段f, Δf= Σmax − Σf虚拟记 录将是冗余的。管理员在字段f中为其分配一个无意义的字符串,例如“NULL”。加密后, “NULL”将与其他元素无法区分。因此,云服务提供商无法区分真实记录与虚拟记录。注意, 用户和管理员仍可使用“NULL”搜索记录。在本研究中,我们不考虑带有合取谓词的查询, 因此也不考虑将元素对填充至相同的出现次数。填充后,每条记录rcd都会附加一个taд以标记 其是真实记录还是虚拟记录。管理员还会对虚拟记录和真实记录进行Shuffle。
将数据库划分为多个组时,需要修改RcdEnc、Query、Shuffle和Insert算法。具体 而言,RcdEnc还会为每个ercd生成дf ← GEk1(ef),并输出Grcd=(д1,,…,дF)。在算法 2中,用户还需计算д← GEk1(Q.e),并向IWS发送(EQ.f,EQ.д,η)。在NonceBlind中, IWS仅针对组(EQ.f,EQ.д)生成证据,而非整个数据库。更具体地说,IWS首先获取IL← GDB(EQ.f,EQ.д),然后为IL索引的记录生成(w,t)对。此外,IWS还将IL发送给SSS,随 后SSS仅在IL索引的记录上进行搜索。另外,在Shuffle阶段,仅对IL索引的记录进行洗牌 和重新随机化。对于插入查询,用户只需填充相关组中的元素,而非整个数据库。类似地, 对于删除查询,用户只需更新被搜索记录的标签。
7 安全分析
在本节中,我们首先分析P-McDb中的泄漏。其次,我们证明了模式以及前向和后向隐私受到针 对云服务提供商的保护。
7.1 P‐McDb的泄漏
给定一个初始数据库DB和一组查询序列Q,可以定义泄露给P‐McDb中每个云服务提供商的信息为: L={LSetup(DB),{LQuery(Qi) or LUpdate(Qi)}Qi ∈ Q}, 其中LSetu p 、 L Qu er y 和 LU p date分别表示在系统设置、执行查询和更新数据库时泄露的配置文件。具体 而言, LU p date可能是 LInsert或LDelete。接下来,我们分析每个阶段每个云服务提供商所了解的具体 信息。
LSetu p .在系统初始化阶段,对于初始数据库DB,如算法1所示,SSS获得加密数据库EDB, IWS获得随机数信息NDB。在此阶段,没有数据发送给RSS。由于采用了语义安全的加密,云服务提供商在此阶 段只能获知数据库的大小信息。考虑到云服务提供商默认可以获知其接收的每个数据元素的长度,例如 |e ∗|、 ||taд ∗|以及 λ和 |w|,因此我们未将不同数据元素的长度包含在泄露轮廓中。此外,我们也将已知上下文从泄露信 息中排除。ACM隐私与安全汇刊,第24卷,第3期,文章18。出版日期:2021年4月。 具有可控泄露的隐私保护动态对称可搜索加密18:19 配置文件,例如字段数量F、字段类型和字段长度。形式上,SSS、IWS和RSS所学习到的 来自数据库 的泄漏可分别定义为: LSSS Setup(DB)={|EDB| } LI WS Setup(DB)={|NDB| } LRSS Setup(DB)=∅.
LQuery 。在处理查询时,如算法2和算法3中所述,SSS获得加密查询EQ和证据EN。基 于这些信息,SSS可以在EDB上进行搜索并得到搜索结果SR。经过洗牌后,SSS还从RSS 获取洗牌后的记录EDB。IWS仅从用户处获得(Q.f,η)。RSS获得被搜索记录EDB、密钥r 以及用于洗牌和重新随机化的新随机数NN。总之,从{EQ,EN,SR,EDB}、(Q.f,η)以及{ EDB,r,NN}中,三个云服务提供商分别获知 LSSS Query(Q)={Q.f,τQ.f}, whereτQ.f= |SR| LI WS Query(Q)={Q.f} LRSS Query(Q)={|EDB| }.
LUpdate .如第5.5节所述,在插入真实记录时,用户生成M个虚拟记录,使用RcdEnc对真实记录和 虚拟记录进行加密,并将其发送给SSS。RSS仅执行洗牌操作。因此,每个云服务提供商所学到的 LInsert(Q)为 LSSS Insert(Q)={M} LI WS Insert(Q)={M,{| Uf | }1≤f ≤F} LRSS Insert(Q)=LRSS Query(Q).
删除查询在P-McDb中作为选择查询执行,因此针对每个云服务提供商有 LDelete= LQuery。 注意,SSS和IWS均可根据 |Uf | 和 |(Uf,τf)∗|分别判断插入查询是否引入了不属于U的新元素。 最重要的是, LSSS={|EDB|,{Qi.f,τQi .f}Qi ∈Q , M} LI WS={|NDB|,{| U f | }1≤f ≤F ,{Qi.f}Qi ∈Q , M} LRSS ={|EDB| }. 组信息的泄漏。当数据库被划分为组时,组信息也会暴露给云服务提供商。P-McDb仅保护 同一组内查询的大小、搜索和交集模式。具体而言,在初始化阶段,IWS还会获得GDB,从中 得知组数 |GDB| 以及每组的记录标识符ILf ,д。在处理搜索查询时,IWS还会从用户处获取每个 查询的组标识符(f,д)。SSS获得组的索引列表ILf ,д。RSS获得用于洗牌的记录组。因此,这 三个云服务提供商都知道每次查询所搜索的是哪个组,以及被搜索组中包含哪些记录和多少条 记录。对于插入查询,云服务提供商也知道哪个组获得了新记录和新元素。
我们认为,与使用搜索、交集和大小模式相比,利用组信息推断记录和查询内容要困 难得多。为了防止攻击者从组信息中推断出更多内容,一方面,组函数GE应独立于明文数 据和数据分布来定义;另一方面,如前所述,我们应确保每个组包含大量不同元素。
接下来,我们考虑数据库仅包含一个组的情况,并分析P-McDb在一个组内的安全性保证。
7.2 安全性证明
鉴于针对每个云服务提供商的上述泄露定义,在本部分中,我们证明了攻击者通过攻破云 服务提供商csp(其中csp ∈{SSS,IWS,RSS})无法获取超出Lcsp的信息。显然,攻击者无 法从 Lcsp推断出查询的搜索、交集和大小模式以及前向和后向隐私。因此,证明P-McDb仅 向csp泄露 Lcsp,表明P-McDb保护了这些模式并确保了前向和后向隐私。
为了证明P‐McDb确实仅向云服务提供商泄漏 Lcsp,我们采用典型的真实世界与理想世界 范式[14, 17, 41]进行论证。其思路如下:首先,我们假设云服务提供商被一个概率多项式时间 (PPT)的诚实但好奇的敌手 A所攻破,该敌手像云服务提供商一样诚实地执行协议,但试图 通过分析接收到的消息和注入恶意记录来获取更多信息。其次,我们构建两个实验:RealΠA(λ) 和IdealΠA,S,L(λ),其中 Π表示P‐McDb。在RealΠA(λ)中,发送给 A的所有消息均按照 P‐McDb中的规定生成;而在IdealΠA,S,L(λ)中,所有消息均由一个仅能访问 Lcsp的概率多项式 时间(PPT)模拟器 S生成。也就是说, S确保在Ideal A,Lcsp,ΠA(S)中,L只能从接收到的消 息中学习到λ所定义的信息。在此游戏中, A选择一个初始数据库,触发初始化,并自适应地 发起其选择的查询、插入和删除查询。作为响应,调用RealΠA(λ)或IdealΠA,S,L(λ)来处理数据 库和查询。基于接收到的消息, A判断这些消息是由RealΠA(λ)还是IdealΠA,S,L(λ)生成的。如 果 A无法以不可忽略的优势进行区分,则表明RealΠA(λ)与IdealΠA,S,L(λ)具有相同的泄露轮廓。
需要注意的是, A可能利用插入查询注入恶意记录。
定义6 。我们称该动态SSE方案相对于泄漏函数Lcsp对云服务提供商csp是 L‐自适应安 全的,如果对于任何提出多项式数量查询的PPT攻击者,存在一个PPT模拟器 S,使得 RealΠA(λ)和IdealΠA,S,L(λ)以可忽略的概率negl(λ)不可区分。
定理1. 如果PRF是安全的,那么 π是一个安全的PRP,且H ′是一个随机预言机, P-McDb是一个针对SSS的L-自适应安全的动态SSE方案。
证明. 为了论证安全性,如参考文献[14, 17, 41],中所述,我们通过一系列游戏来进行 证明。证明从RealΠA(λ)开始,即真实协议本身,随后构建一系列游戏,每个游戏与前一个 游戏仅有轻微差异,并证明它们是不可区分的。最终我们到达最后一个游戏IdealΠA,S(λ), 该游戏由模拟器 S根据定义的泄漏轮廓LSSS进行模拟。利用不可区分性的传递性,我们得 出结论:RealΠA(λ)与IdealΠA,S(λ)不可区分,从而完成证明。由于RcdDec与云服务提供商无 关,因此在这些游戏中被省略。
游戏G1 :与RealΠA(λ)相比, G1中的区别在于RcdEnc和PreShuffle算法中的PRF被 替换为一个映射Nonce。具体而言,如算法6和8所示,对于每个未使用的种子(种子长度 足够长),生成一个长度为F |e| + |taд∗| 的随机字符串作为随机数,存储在Nonce中,并 在之后重复使用。这意味着所有n都是均匀且独立的字符串。在这种情况下,RealΠA(λ)与 G1之间的对抗性区分优势恰好等于真正随机函数与PRF之间的区分优势。因此,这种更改 使得RealΠA(λ)与G1之间产生了可忽略差异,即 |Pr[Real Π A(λ)= 1]− Pr[G1 = 1]| ≤ negl(λ), 其中Pr[G= 1]表示 A接收到的消息由 G生成的概率。
游戏G2 :从 G1到 G2,w id被替换为一个随机字符串,而不是通过H ′生成。然而,必 须确保 A在EDB上搜索后能获得τ f条匹配的记录,因为这是 A所知道的泄漏信息,其中τ f 是搜索字段的出现阈值。为了实现这一点,实验随机选取τ f个证明并设置其值。具体而言, 如算法7所示,实验首先随机选择一组记录标识符I,其中 |I| = τ f 。其次,对于每个标识符 id ∈I,实验设置w id← H′(


1760

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



