我们将大数据存储在云服务器上,为了保护数据隐私,通常会选择先将数据加密后再上传。可搜索加密(Searchable Encryption)研究如何在密文上进行关键字搜索,分为对称可搜索加密(Searchable Symmetric Encryption)和公钥可搜索加密(Public-key Encryption with Keyword Search,PEKS)。
虽然对称可搜索加密比较快,但在多用户数据共享方面,公钥可搜索加密的应用场景比对称可搜索加密更为广阔。双线性对(Bilinear Pairing)作为构造PEKS的常用工具,本文将贴出其相应开源函数库Pairing-based cryptography library (pbc library,链接)的python版本示例(pypbc), 目标是方便大家在做学术研究工程实验时能够对pypbc进行快速入门。 (注: 本文代码以2004年Boneh等人的方案为示例,仅面向研究人员,入门请结合该论文方案;因方案不能抵抗关键字猜测攻击,不保证商用安全性)
实验环境
pypbc 基于