本文基于隐雨隐私计算实训营的课程,【隐私计算实训营 第4期】隐语PIR功能及使用介绍 第6讲_哔哩哔哩_bilibili
目录
01 隐语实现PIR总体介绍
02 Index PIR-SealPIR介绍
1、多个数据pack到一个HE Plaintext
2、查询向量压缩到一个密文
3、多维查询,减少查询向量
4、支持多个查询(Multi/Batch Query)
03 Keyword PIR-Labeled PSI介绍
1、CLR17通过CuckooHash降低插值多项式的次数
2、CLHR18引入OPRF避免信息泄露
3、CMCD+21一系列改进
4、隐语label PSI的主要工作
01 隐语实现PIR总体介绍
PIR根据服务器数量可以分为:
PIR根据查询类型可以分为:
隐语目前所支持的PIR方式:
- Single Server Index PIR: SealPIR
- Single Server Keyword PIR: Labeled PIR
隐语PIR调用的接口
02 Index PIR-SealPIR介绍
之前有提到过SealPIR的主要贡献是:
- 多个数据pack到一个HE Plaintext:查询的db_index转换为plaintext_index
- 查询向量压缩到一个密文:显著减少通信量,server端可通过计算expand得到查询密文向量
- 支持多维查询:2维查询将数据转换为n∗ n的矩阵,减少expand计算量
- 支持多个查询:使用cuckoo hash支持同时进行多个查询
下面,详细的针对每一点做出解释。
1、多个数据pack到一个HE Plaintext
2、查询向量压缩到一个密文
3、多维查询,减少查询向量
(1)sqrt(n) ∗ sqrt(n)的矩阵𝑀,其中sqrt(n) ≤ 8192
(2)𝑉_𝑐是密文查询列向量,𝐴_𝑐 =𝑀 ∗ 𝑉_𝑐,𝐴_𝑐是sqrt(n) ∗ 1的密文列向量
(3)将𝐴_𝑐中每个密文拆分为𝐹份,得到sqrt(n) ∗ 𝐹的明文矩阵𝐴𝑆_𝑐
(4)𝑉_𝑟是密文查询行向量,𝐴𝑆_𝑐^T ∗ 𝑉_𝑟,得到𝐹 ∗ 1的密文向量
(5)客户端收得到𝐹个密文向量,解密后,将其组合成密文 Enc(𝑀[𝑟,𝑐]),再次解密得到𝑀[𝑟,𝑐]
4、支持多个查询(Multi/Batch Query)
03 Keyword PIR-Labeled PSI介绍
[CLR17] https://eprint.iacr.org/2017/299.pdf
[CLHR18] https://eprint.iacr.org/2018/787.pdf
[CMCD+21] https://eprint.iacr.org/2021/1116.pdf
1、CLR17通过CuckooHash降低插值多项式的次数
2、CLHR18引入OPRF避免信息泄露
3、CMCD+21一系列改进
4、隐语label PSI的主要工作
- 以微软的开源代码功能为核心
- OPRF采用隐语自身的实现,支持的ecc曲线包括:FourQ,Secp256k1,SM2
- Label的自动填充
- 增加了服务的预处理结果保存功能,可以支持离线和查询(多次)两个阶段