视频链接:第6讲:隐语PIR介绍及开发实践丨隐私计算实训营 第1期_哔哩哔哩_bilibili
具体内容如下:
一、隐语实现PIR总体介绍
隐匿查询(Private Information Retrieval PIR)定义:用户查询服务端数据库中的数据,但是服务端不知道用户查询的是哪些数据。在query 场景中,有一个 client 发送 query,有 server 回复结果。从抽象角度,可以试图保护两类情况,其一是server数据的安全性,其二是client query的安全性。根据现实中不同的 client 以及 server 的假设,可以把协议进行分类。
PIR 场景中的实体有 client 以及 server,并且 client 向 server 发送了一个需要保护隐私的 query ,server 向 client 返回一个 query 的最终结果。
PIR按照服务器数量分类,有单服务器方案(Single Server)和多服务器方案(Multi-Server),按照查询类型分类,可以分为Index PIR和Keyword PIR。目前隐语支持的PIR有:Single Server Index PIR : SealPIR和Single Server Keyword PIR : Labeled PSI。
隐语PIR实现位置在SPU的代码库,底层依赖YACL的密码库,在上层的封装即secretflow中的接口有pir_setup、pir_query和pir_mem_query(基于内存)。
二、Index PIR-SealPIR介绍
目前隐语Index PIR是基于SealPIR,它是基于BFV的同态方案。SealPIR的主要贡献是把多个数据pack到一个HE Plaintext(同态明文多项式),查询向量压缩到一个密文,支持多维查询,减少查询向量以及多个查询。
三、Keyword PIR- Labeled PSI介绍
这个方案的基本原理是使用两个插值多项式,一个匹配多项式,一个Label插值多项式。核心思想是点值表示得到插值多项式系数表示。Keyword PIR也使用了BFV方案,其明文编码方式使用了BatchEncode,支持SIMD即每个位置的数据支持基于位置上的加法和乘法。
四、隐语PIR后续计划
包含三部分,一是PIR一些SOTA协议的跟踪,主要是提升PIR的性能;二是PIR的调用框架,主要是对PSI/PIR的代码库进行独立,三是PIR的产品化,包括产品需求进一步的深入了解和落地方案的设计。