2022年8月15日 作者 zeroheart

加密后的数据如何检索

这个是一个细分的问题,大概方案如下

1.大厂的方案

使用分词,分词后的密文来检索,这个方式会大大增加密文的长度。

大厂方案详情备注
京东宙斯开发者中心 | 常用文档AES加密方式
拼多多拼多多 开放平台AES加密方式
阿里巴巴+淘宝阿里安全开放平台-阿里聚安全开放平台-文档中心
(29条消息) 加密字段的模糊检索_来吧来吧一起研究的博客-CSDN博客_加密字段模糊查询
  • 参考:https://mp.weixin.qq.com/s/HHIq0_O7hEHrrkbyK3IWMA
  • 淘宝密文字段检索方案:https://open.taobao.com/docV3.htm?docId=106213&docType=1
  • 阿里巴巴文字段检索方案:https://jaq-doc.alibaba.com/docs/doc.htm?treeId=1&articleId=106213&docType=1
  • 拼多多密文字段检索方案:https://open.pinduoduo.com/application/document/browse?idStr=3407B605226E77F2
  • 京东密文字段检索方案:https://jos.jd.com/commondoc?listId=345v

2.朴素的方案,sql引擎增加解密的支持,解密串查询。不适用于非对称的算法

3.其他的一些思路

  • 数据库中字符数据的模糊匹配加密方法:https://www.jiamisoft.com/blog/6542-zifushujumohupipeijiamifangfa.html

这里提到的Hill密码处理和模糊匹配加密方法FMES可以重点看看.

  • 一种基于BloomFilter的改进型加密文本模糊搜索机制研究:http://kzyjc.cnjournals.com/html/2019/1/20190112.htm
  • 支持快速查询的数据库如何加密:https://www.jiamisoft.com/blog/5961-kuaisuchaxunshujukujiami.html
  • 基于Lucene的云端搜索与密文基础上的模糊查询:https://www.cnblogs.com/arthurqin/p/6307153.html

基于Lucene的思路就跟我们上面介绍的常规做法二类似,对字符进行等长度分词,将分词后的结果集加密后存储,只不过存储的db不一样,一个是关系型数据库,一个是es搜索引擎。

云存储中一种支持可验证的模糊查询加密方案http://jeit.ie.ac.cn/fileDZYXXXB/journal/article/dzyxxxb/2017/7/PDF/160971.pdf