笔记内容来自多本书籍、学术资料、白皮书及ChatGPT等工具,经由自己阅读后整理而成。
(一)PIR的介绍
匿踪查询,即隐私信息检索(Private InformationRetrieval,PIR),是安全多方计算中非常实用的一门技术与应用,可以用来保护用户的查询隐私,进而也可以保护用户的查询结果。其目标是保证用户向数据源方提交查询请求时,在查询信息不被感知与泄漏的前提下完成查询。即对于数据源方来说,「只知道有查询到来,但是不知道真正的查询条件、也就不知道对方查了什么」。
(二)PIR的方法
目前常见的PIR方案实现有三类,分别是:
-
基于不经意传输(Oblivious Transfer,OT)的 PIR 实现
-
基于同态加密的 PIR 实现
一般采用 Paillier 加法半同态加密算法,这里简述下 Paillier 算法的三个重要特点:
- 可以实现两个密文加法计算;
- 可以实现一个密文与一个明文相乘;
- 由于加密时用到随机数,所以相同的明文、相同的密钥,可以产生很多个不同的密文,这些不同的密文解密后都能得到相同的原始明文。
(注:已知查询元素的位置)
-
基于 keyword 的 PIR 实现
以上所述的基于不经意传输的 PIR 与基于同态加密的 PIR 方案,是需要检索用户提前感知被检索数据在数据库中位置(索引号),这块可以通过隐私求交的方式实现。在实际的应用中,查询时一般是不知道其位置信息的,而是根据关键词进行查询,此类方案又称 keyword PIR,可以利用 Paillier 同态加密+拉格朗日插值多项式实现。
如果要分析各个方案的性能,那么在计算开销上,由于同态加密计算开销大于 RSA 计算开销,所以基于 OT 的 PIR 方案的计算开销会更有优势;在通信开销上,如果服务端每条明文数据都较长,如数千字节,则基于同态加密的 PIR 方案和基于 keyword 的 PIR 方案通信开销较小。
(三)PIR应用场景问题
现有的隐私信息检索,可主要分为两大类:信息论的隐私信息检索协议(Information-Theoretic PIR)和计算安全的隐私信息检索协议(Computional PIR),主要的应用场景有:
- 病患想通过医疗系统查询其疾病的治疗药物,如果以该疾病名为查询条件,医疗系统将会得知该病人可能患有这样的疾病,从而导致病人的隐私被泄露,通过隐私信息检索可以避免此类泄露问题。
- 在域名、专利的申请过程中,用户需要首先向相关数据库提交自己申请的域名或专利信息以查询是否已存在,但又不想让服务提供方知晓自己的申请名称,从而被其抢先注册。
- 在证券市场中,某用户想查询某个股票信息,但又不能将自己感兴趣的股票泄露给服务方从而影响股票价格和自己的偏好。
10月份新开了一个GitHub账号,里面已放了一些密码学,隐私计算电子书资料了,之后会整理一些我做过的、或是我觉得不错的论文复现、代码项目也放上去,欢迎一起交流!Ataraxia-github