可搜索加密——学习记录

可搜索加密概念

可搜索加密技术一般分为对称可搜索加密(Searchable Symmetric Encryption, SSE)和非对称可搜索加密(Asymmetric Searchable Encryption, ASE),非对称可搜索加密目前一般又称为公钥可搜索加密(Public Key Encryption With Searching, PEKS)。两者有不同的应用场景和构造方式。

  • 对称可搜索加密一般考虑单用户使用的情况, 相当于建立个人加密云盘, 依赖对称加密算法进行方案构造。
  • 公钥可搜索加密一般考虑多用户使用的场景例如邮件系统或者多人文件共享系统, 主要依赖公钥加密算法进行构造。

可搜索加密种类

  1. 基于对称加密的可搜索加密:这种方法使用对称加密算法,例如AES(高级加密标准),对用户的数据进行加密。在搜索时,用户将搜索关键字通过加密算法进行加密,然后将加密后的搜索关键字与加密的数据进行比较,以找到匹配的结果。
  2. 基于公钥加密的可搜索加密:这种方法使用公钥加密算法,例如RSA(Rivest-Shamir-Adleman),结合哈希函数和陷门(Trapdoor)函数,对用户的数据进行加密。在搜索时,用户使用私钥生成陷门函数,将搜索关键字通过哈希函数和陷门函数进行加密,然后将加密后的搜索关键字与加密的数据进行比较,以找到匹配的结果。
  3. 基于同态加密的可搜索加密:这种方法使用同态加密算法,例如Paillier同态加密算法,对用户的数据进行加密。在搜索时,用户将搜索关键字通过同态加密算法进行加密,然后将加密后的搜索关键字与加密的数据进行比较,以找到匹配的结果。同态加密技术允许在加密状态下执行计算操作,因此可以在不解密数据的情况下进行搜索和查询。
  4. 基于零知识证明的可搜索加密:这种方法使用零知识证明协议,例如ZK-SNARKs(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge),对用户的数据进行加密。在搜索时,用户使用零知识证明协议向服务器证明搜索关键字是否存在于加密的数据中,从而找到匹配的结果,而不泄露搜索关键字的明文信息。
  5. 代理可搜索加密(Proxy Re-Encryption Searchable Encryption):这种技术结合了代理重加密(Proxy Re-Encryption)和可搜索加密,允许第三方代理对加密数据进行重新加密,以便其他用户进行搜索和查询,同时保持数据的隐私性。
  6. 基于属性的可搜索加密(Attribute-Based Searchable Encryption):这种技术将用户的数据和搜索关键字与属性相关联,用户可以通过匹配属性而不是明确的搜索关键字来搜索和查询数据。它在许多场景中可以应用于对数据的属性进行隐私保护的同时实现搜索功能。
  7. 可验证可搜索加密(Verifiable Searchable Encryption):这种技术允许用户验证搜索结果的正确性,确保搜索结果没有被篡改或伪造。它使用陷门函数和证明机制来验证搜索结果的完整性和正确性。
  8. 结构保护的可搜索加密(Structure-Preserving Searchable Encryption):这种技术旨在保护数据的结构信息,允许在加密状态下对数据进行搜索和查询,同时保持数据结构的完整性。它通常适用于具有层次结构或组织结构的数据集,如文档集合或数据库。
  9. 可排序可搜索加密(Order-Preserving Searchable Encryption):这种技术允许在加密状态下对数据进行排序和比较操作,以便支持基于排序的搜索和查询。它通常应用于需要对加密数据进行范围查询或排序操作的场景,如数据库查询。
  10. 多关键字可搜索加密(Multi-Keyword Searchable Encryption):这种技术允许用户在加密数据中同时搜索多个关键字,以获取匹配的结果。它通常适用于需要在数据集中进行复杂的多关键字搜索的场景,如文档检索系统。

可搜索加密分类

对称可搜索加密(SSE):

  1. 基于对称加密的可搜索加密
  2. 代理可搜索加密

非对称可搜索加密(ASE)/公钥可搜索加密(PEKS):

  1. 基于公钥加密的可搜索加密
  2. 基于同态加密的可搜索加密
  3. 基于零知识证明的可搜索加密
  4. 基于属性的可搜索加密
  5. 可验证可搜索加密
  6. 结构保护的可搜索加密
  7. 可排序可搜索加密
  8. 多关键字可搜索加密

  • 28
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Linux下的磁盘加密技术有很多种,其中比较常用的是LUKS(Linux Unified Key Setup)。LUKS是Linux下磁盘加密的一种标准,它可以对整个磁盘或者分区进行加密,保护数据的隐私性和安全性。 LUKS的工作原理是,在磁盘上创建一个加密容器,所有数据都保存在这个容器内部,容器本身是通过一个密钥进行加密的。在使用磁盘前,需要输入这个密钥进行解密,才能访问容器内部的数据。 下面是在Linux下使用LUKS对磁盘进行加密的步骤: 1. 创建一个空的分区或整个磁盘,可以使用fdisk或parted命令进行分区操作。 2. 使用cryptsetup命令对分区或整个磁盘进行加密操作,如下所示: ```shell $ sudo cryptsetup luksFormat /dev/sda1 ``` 这个命令会提示输入加密密码,确认后会将/dev/sda1这个分区进行加密加密完成后需要使用下面的命令来打开该加密分区: ```shell $ sudo cryptsetup luksOpen /dev/sda1 my_encrypted_partition ``` 这个命令会提示输入加密密码,输入正确的密码后,会将/dev/sda1解密并挂载到/my_encrypted_partition目录下。 3. 格式化解密后的分区,可以使用mkfs.ext4或其他格式化命令: ```shell $ sudo mkfs.ext4 /dev/mapper/my_encrypted_partition ``` 4. 挂载解密后的分区: ```shell $ sudo mount /dev/mapper/my_encrypted_partition /mnt/my_encrypted_partition ``` 至此,整个加密分区已经成功挂载到/mnt/my_encrypted_partition目录下了。 5. 卸载并关闭加密分区: ```shell $ sudo umount /mnt/my_encrypted_partition $ sudo cryptsetup luksClose my_encrypted_partition ``` 以上就是使用LUKS对磁盘进行加密的基本步骤。需要注意的是,在使用LUKS加密分区时,一定要妥善保管好加密密码,否则数据将无法访问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值