探索APSI:C++实现的非对称性私有集交集库
项目地址:https://gitcode.com/microsoft/APSI
项目介绍
APSI(Asymmetric PSI)是一个基于C++的库,实现了基于eprint.iacr.org/2021/1116描述的非对称私有集交集协议。该库针对两种模式提供功能:无标签的PSI和有标签的PSI,可以满足不同场景下的隐私保护需求。
在无标签模式下,两个持有私人数据集的参与者可以不泄露其他信息的情况下找到共同的元素。而在有标签模式中,查询者不仅可以发现匹配的元素,还能获取与之相关的信息,如同保密的键值存储中的批量查询功能。
APSI区分发送者和接收者的角色,通常适用于服务器作为发送者,多个客户端作为独立接收者的场景,例如在服务器上托管一个查找表,而多个客户需要隐私地查询记录。
项目技术分析
APSI的核心是使用了同态加密技术,特别是微软的SEAL库实现的BFV加密方案。同态加密允许在不解密的情况下直接对加密数据进行计算,结果仍保持加密状态,只有拥有秘钥的一方才能解密。SEAL库支持批处理操作,使得在大规模数据上执行计算成为可能。
噪声预算 是同态加密中一个关键概念,表示每个密文能够承受的计算次数。初始噪声预算是有限的,随着乘法运算的增加会消耗殆尽,一旦耗尽,密文就无法正确解密。因此,通过调整加密参数来平衡计算能力和安全性至关重要。
项目及技术应用场景
- 在线隐私查询服务:如健康记录数据库或财务信息平台,用户可以在不暴露自身信息的情况下确认其记录是否存在于服务器的数据库中。
- 匿名数据分析:企业可利用APSI在保留用户隐私的前提下,分析用户行为和偏好。
- 安全的协作研究:科研机构之间可以在不共享原始数据的情况下找出共享的研究成果。
项目特点
- 非对称性:适应不同的数据规模,一方可以拥有大量数据,另一方只需查询少量记录。
- 批量处理:使用SEAL库的批处理能力提高计算效率。
- 灵活的加密参数:允许用户根据场景调整以优化性能与安全之间的平衡。
- 命令行接口:提供了方便的CLI工具供开发者快速测试和部署。
无论是对隐私保护有严格要求的应用场景,还是希望利用加密计算提升安全性的开发人员,APSI都提供了一个强大且实用的解决方案。立即尝试这个库,开启你的隐私保护之旅吧!