2022年8月15日
加密后的数据如何检索
这个是一个细分的问题,大概方案如下
1.大厂的方案
使用分词,分词后的密文来检索,这个方式会大大增加密文的长度。
大厂 | 方案详情 | 备注 |
---|---|---|
京东 | 宙斯开发者中心 | 常用文档 | AES加密方式 |
拼多多 | 拼多多 开放平台 | AES加密方式 |
阿里巴巴+淘宝 | 阿里安全开放平台-阿里聚安全开放平台-文档中心 |
- 参考: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