隐私计算实训营第四期第7节:PIR实战
同 PSI 实战一样,本笔记侧重于过程。上一期 PSI 实战已经涉及一部分内容,本笔记侧重于不同部分。
1、创建节点,上传文件
创建节点(分别命名为 guest 和 server)后,向 guest 上传 pir_query.csv,向 server 上传 pir_server_setup.tar, server_secret_key.bin 与 source_data.csv (该文件来源于上节求交数据)。与上一节不同,我们首先要对数据进行预处理:将 pir_server_setup.tar 解压为目录;创建 tmp 文件夹并将 server_secret_key.bin 置入其中。文件预处理代码如下:
# 将上传的 .tar 形式的目录解压
import tarfile
import os
from pathlib import Path
work_path = os.getcwd()
tar_path = f'{work_path}/pir_server_setup.tar'
extract_path = work_path
os.makedirs(extract_path, exist_ok=True)
# 打开 .tar 文件
with tarfile.open(tar_path, 'r') as tar:
# 解压所有文件到指定目录
tar.extractall(path=extract_path)
# 将密钥文件移动到 /tmp 目录下
import shutil
import os
work_path = os.getcwd()
os.makedirs(f'{work_path}/tmp', exist_ok = True)
shutil.move(f'{work_path}/server_secret_key.bin', f'{work_path}/tmp')
2、初始化 SecretFlow 与 SPU 。
该部分与 PSI 完全相同,不再讲解
3、预处理数据
调用 spu.pir_setup 对 source_data.csv 进行预处理,预处理结果保存在 pir_server_setup 目录下。运行结果如下:

注意预处理需要 两端同时进行(见右上角)。从运行结果可以看出,预处理的计算复杂度很高,处理 800,000 行的数据需要耗时数分钟。此外,预处理的空间复杂度也很高,经测试,如果没有将 server_secret_key 置于一个 tmp 目录下,执行时会出现空间超限(MLE)。笔者推测是由于预处理执行时需要存放临时文件导致。
4、进行查询操作
有了前面的铺垫之后,就可以正式进行 PIR 了。

PIR查询执行完成后,我们可以在 guest 的文件列表找到输出结果。

5、本地验证结果
与 PSI 类似,PIR 的执行结果需要本地验证。下载 pir_result.csv 并打开后,我意外发现里面是一个空表。

这表明没有查询到任何结果。随后,我复制 pir_query.csv 中所查询的 uid,用文本编辑器的查找替换功能查找了这个 uid 字符串,发现这个 uid 确实没有在源文件中出现。说明本次 PIR 输出结果正确。
事实上, PIR 的日志也反映了这一结果。这使我确信 PIR 运行正确。

至此,PIR 实验进行完毕。
相关推荐
隐私信息检索Private Information Retrieval
例如,在某些PIR方案中,为了提高隐私保护的强度,可能会牺牲一定的查询速度,反之亦然。此外,由于PIR研究仍然在发展过程中,很多方法在实际应用中的性能还需要进一步验证和优化。
基于可信计算的PIR (2006年)
本文主要探讨了"基于可信计算的PIR(Private Information Retrieval,私有信息获取)"这一主题,发表于2006年的第32卷第23期的计算机工程领域。私有信息获取是一种关键的
pir:具有多对数带宽和亚线性时间的可伪伪随机集和私人信息检索
综上所述,这个主题涉及了隐私保护技术、带宽优化和时间复杂度的降低,这些都是现代云计算和大数据环境中的重要考虑因素。PIR的研究不仅有助于保护个人隐私,也有助于推动分布式计算和数据安全领域的进步。
使用天花板安装的PIR传感器进行人类日常活动识别
然而,基于视觉的方法存在一些局限性,例如隐私问题、光照变化的影响以及需要大量计算资源。因此,使用PIR传感器作为替代方案,可以在不侵犯隐私的情况下连续监测人类活动。
隐私计算与数据要素运营解决方案42页PPT.pptx
隐私计算与数据要素运营解决方案是一个针对数据安全和价值流动的重要领域,它旨在加速数据要素的价值释放和再创造,通过整合隐私计算技术来保护敏感信息的同时促进数据的有效利用。此方案的核心内容包括:1.



