可搜索加密概念
可搜索加密技术一般分为对称可搜索加密(Searchable Symmetric Encryption, SSE)和非对称可搜索加密(Asymmetric Searchable Encryption, ASE),非对称可搜索加密目前一般又称为公钥可搜索加密(Public Key Encryption With Searching, PEKS)。两者有不同的应用场景和构造方式。
- 对称可搜索加密一般考虑单用户使用的情况, 相当于建立个人加密云盘, 依赖对称加密算法进行方案构造。
- 公钥可搜索加密一般考虑多用户使用的场景例如邮件系统或者多人文件共享系统, 主要依赖公钥加密算法进行构造。
可搜索加密种类
- 基于对称加密的可搜索加密:这种方法使用对称加密算法,例如AES(高级加密标准),对用户的数据进行加密。在搜索时,用户将搜索关键字通过加密算法进行加密,然后将加密后的搜索关键字与加密的数据进行比较,以找到匹配的结果。
- 基于公钥加密的可搜索加密:这种方法使用公钥加密算法,例如RSA(Rivest-Shamir-Adleman),结合哈希函数和陷门(Trapdoor)函数,对用户的数据进行加密。在搜索时,用户使用私钥生成陷门函数,将搜索关键字通过哈希函数和陷门函数进行加密,然后将加密后的搜索关键字与加密的数据进行比较,以找到匹配的结果。
- 基于同态加密的可搜索加密:这种方法使用同态加密算法,例如Paillier同态加密算法,对用户的数据进行加密。在搜索时,用户将搜索关键字通过同态加密算法进行加密,然后将加密后的搜索关键字与加密的数据进行比较,以找到匹配的结果。同态加密技术允许在加密状态下执行计算操作,因此可以在不解密数据的情况下进行搜索和查询。
- 基于零知识证明的可搜索加密:这种方法使用零知识证明协议,例如ZK-SNARKs(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge),对用户的数据进行加密。在搜索时,用户使用零知识证明协议向服务器证明搜索关键字是否存在于加密的数据中,从而找到匹配的结果,而不泄露搜索关键字的明文信息。
- 代理可搜索加密(Proxy Re-Encryption Searchable Encryption):这种技术结合了代理重加密(Proxy Re-Encryption)和可搜索加密,允许第三方代理对加密数据进行重新加密,以便其他用户进行搜索和查询,同时保持数据的隐私性。
- 基于属性的可搜索加密(Attribute-Based Searchable Encryption):这种技术将用户的数据和搜索关键字与属性相关联,用户可以通过匹配属性而不是明确的搜索关键字来搜索和查询数据。它在许多场景中可以应用于对数据的属性进行隐私保护的同时实现搜索功能。
- 可验证可搜索加密(Verifiable Searchable Encryption):这种技术允许用户验证搜索结果的正确性,确保搜索结果没有被篡改或伪造。它使用陷门函数和证明机制来验证搜索结果的完整性和正确性。
- 结构保护的可搜索加密(Structure-Preserving Searchable Encryption):这种技术旨在保护数据的结构信息,允许在加密状态下对数据进行搜索和查询,同时保持数据结构的完整性。它通常适用于具有层次结构或组织结构的数据集,如文档集合或数据库。
- 可排序可搜索加密(Order-Preserving Searchable Encryption):这种技术允许在加密状态下对数据进行排序和比较操作,以便支持基于排序的搜索和查询。它通常应用于需要对加密数据进行范围查询或排序操作的场景,如数据库查询。
- 多关键字可搜索加密(Multi-Keyword Searchable Encryption):这种技术允许用户在加密数据中同时搜索多个关键字,以获取匹配的结果。它通常适用于需要在数据集中进行复杂的多关键字搜索的场景,如文档检索系统。
可搜索加密分类
对称可搜索加密(SSE):
- 基于对称加密的可搜索加密
- 代理可搜索加密
非对称可搜索加密(ASE)/公钥可搜索加密(PEKS):
- 基于公钥加密的可搜索加密
- 基于同态加密的可搜索加密
- 基于零知识证明的可搜索加密
- 基于属性的可搜索加密
- 可验证可搜索加密
- 结构保护的可搜索加密
- 可排序可搜索加密
- 多关键字可搜索加密