1 匿踪查询PIR的定义
Private Information Retrieval
PIR是"Private Information Retrieval"的缩写,中文通常翻译为“私有信息检索”。它是一种密码学技术,允许用户从数据库或服务器检索信息,同时不透露他们想要检索的具体信息。换句话说,PIR技术允许用户以隐私保护的方式查询数据,使得服务器无法得知用户查询的具体内容。
PIR的工作原理
在传统的信息检索过程中,用户向服务器发送查询请求,服务器根据请求返回相应的数据。然而,这种方法会暴露用户的查询意图。PIR技术则通过以下方式保护用户的隐私:
- 加密查询:用户发送一个加密的查询请求到服务器,服务器无法解密该请求来得知查询的具体内容。
- 加密响应:服务器对整个数据库或部分数据库进行加密处理,然后将加密的数据发送给用户。
- 解密响应:用户使用自己的私钥或其他方法解密收到的数据,从中提取出他们所需的信息。
2 PIR分类
- 根据Server的数量
根据Server数量分为Single-server PIR、Two-server PIR
Single-server PIR:
最适合真实世界的场景。实用性、安全性更好,但相对于其他PIR,更慢。可能使用了比较重的加密原语例如同态 FHE
Two-server PIR:
现实场景比较少。例如 不是同一个组织,但拥有同一个数据库。优点是效率比较高,基于DPF原语。 - 根据如何索取信息来分类
根据如何索取信息分为Index PIR、Keyword PIR
Index PIR:
client知道数据在哪里,再发起请求。
Keyword PIR:
client不知道数据在哪里,根据关键字keyword来发起请求。
3 PIR技术简介
3.1 一个简单的示例方案
基于同态加密,实现简单,但通信复杂度过高,现实不可接受。
3.2 基于HE的PIR
基于同态的PIR,基于Fan-Vercauteren FV全同态协议,协议支持加法、乘法。实现思路:
(1) Server将数据库里所有数据转换为HE明文。
(2) Client基于Index创建一个加密的查询。
(3) Server计算查询和HE明文,返回给Client
(4) Client解密查询结果
问题是计算量和通信量太大。
SealPIR 对效率进行了大幅的改进。
(1) Server把多个数据打包到一个HE明文,减少了做计算的数量,提升了效率。
(2) 把查询压缩为一个单独的密文,在Server上做解压expanede。
(3) 支持多维的查询
(4) Server上支持cucoo hash,所以多个查询可以一次完成
经过优化,在百万级的数据,client的一个查询,在秒级可以完成,对比Single-server来说,效率大幅提升。
3.3 基于DPF的PIR
DPF(Distributed Point Function)是一种密码学技术,它允许在分布式设置中计算点函数。点函数是一个简单的函数,它将输入映射到一个固定的输出,除了一个特定的点之外,对于所有其他输入,函数的输出都是零。DPF 允许在不泄露任何关于非目标点函数值的信息的情况下,安全地计算点函数。
以下是 DPF 的一些关键特性:
- 隐私性:DPF 允许两个或多个参与方共同计算点函数,而不泄露任何关于输入或输出的信息,除非这些信息是公开的。
- 分布式:DPF 的计算是分布式的,意味着输入数据可以分布在多个参与方之间,而每个参与方只能知道自己的部分输入。
- 安全性:DPF 的安全性通常基于密码学假设,如计算假设或信息论假设,确保即使是在恶意模型下,参与方的隐私也能得到保护。
- 功能:DPF 可以用于实现各种密码学应用,如安全的多方计算(SMPC)、私有信息检索(PIR)、安全函数评估等。
DPF 的工作原理通常涉及以下步骤:
- 密钥生成:生成一对公共和私有密钥。公共密钥用于加密查询,而私有密钥用于解密查询结果。
- 查询生成:一个参与方(查询者)使用公共密钥生成一个查询,该查询指定他们想要计算的点函数的目标点。
- 查询加密:查询者在不知道目标点的情况下,生成一个加密的查询,并将其发送给持有输入数据的参与方(数据持有者)。
- 计算和响应:数据持有者使用加密的查询和自己的私有输入数据计算点函数,并生成一个响应,该响应仅包含目标点的函数值。
- 解密响应:查询者使用私有密钥解密响应,得到目标点的函数值,而不会泄露任何其他信息。