可搜索加密技术 - 学习笔记(一)

  由于种种原因,本来应该是准备其他事情的我最近又开始看可搜索加密技术。结果发现两三个月前看的内容都被我忘得差不多了,果然“好记性不如烂笔头”,更何况我的记性还不好qwq。因此,还是打算将学到的东西记录下来,所以有了这篇简陋的笔记。

引言

  • 为什么需要可搜索加密技术?

  其实,这个问题的答案是显而易见的。现在隐私泄露问题备受关注,大家肯定都希望自己的信息以密文的形式上云,而不是以明文的形式上云。但是这就会有个问题,如果需要对数据进行搜索,那怎么办?总不能把云上所有的加密数据都下载下来,然后对其一一解密,再进行搜索吧。如果真是这样,效率显然会很低。因此,可搜索加密技术应运而生。

  • 什么是可搜索加密技术?
  可搜索加密技术是搜索技术和加密技术的结合。可搜索加密能够实现将用户的数据进行特殊的加密后上传到云服务器上, 并且可以实现根据关键字进行检索的功能, 有些可搜索加密方案更能实现范围查询或布尔查询等高级检索功能。在方便用户使用的过程中, 也保护了文件的隐私安全[1]。
  • 可搜索加密技术的分类:
  目前, 可搜索加密技术一般分为对称可搜索加密(Searchable Symmetric Encryption, SSE)和非对称可搜索加密(Asymmetric Searchable Encryption, ASE),非对称可搜索加密目前一般又称为公钥可搜索加密(Public Key Encryption With Searching, PEKS)。两者有不同的应用场景和构造方式[1]。
  对称可搜索加密一般考虑单用户使用的情况, 相当于建立个人加密云盘, 依赖对称加密算法进行方案构造。
  公钥可搜索加密一般考虑多用户使用的场景例如邮件系统或者多人文件共享系统, 主要依赖公钥加密算法进行构造
 

关于 “ 非对称可加密 ” 的那些事

  2004年,Boneh等[2]将公钥加密应用到可搜索加密中,基于BDH(BilinearDiffie-Hellman)困难问题假设,首次提出了非对称可搜索加密(PEKS)的概念,其主要目的是为了解决“多对一”的多用户邮件模型。例如Bob,Carol等多人向Alice发送邮件,这些邮件通过Alice的公钥进行加密,Alice可以根据私钥在邮件系统中进行关键字搜索并解密邮件内容并保证邮件服务器对内容一无所知。PEKS算法描述如下:

  定义1 一个PEKS系统由如下四个多项式时间的算法组成:

  (这里就偷个懒,直接放我在word打好的截图,(#^.^#))

  实际上,Boneh等人的PEKS方案可以视为在加密文件后附上加密的关键字清单,用户可以通过私钥和Test算法与所检索关键字进行匹配,以此进行关键字的搜索。随后2006年Byun[3]发现当前PEKS方案存在安全隐患:由于关键字空间远小于密钥空间,敌手可以通过离线关键字猜测攻击轻松破解PEKS体制。随后,这一安全性问题由Tang等人[4]提出注册关键字得以解决。

  由于我主要看的是对称可搜索加密,就不再展开说了,感兴趣的可以自己找来看看。

 

关于 “ 对称可加密 ” 的那些事

  2000 年, 对称可搜索加密由 Song 等[5]第一次提出, 用来解决“一对一”单用户进行云存储模型的方案, 即主要应用场景是个人用户将数据加密存储于云服务器, 并能在之后对加密数据进行检索。这是可搜索加密的概念被首次提出,这为后面的研究奠定了基础。
  • 可搜索加密的构建方法:
  SSE 的构建方法一般分为基于存储结构基于索引两种方式。(我主要看的是基于索引的)
  基于存储结构的 SSE 方案[5-7]的构建方法一般通过特殊的加密手段将数据存储于特定的位置。例如 Song 等人[5]的方案是应用流密码加密将密文在服务器内进行线性存储, 而 Naveed 等人[7]的方案是利用伪随机函数和伪随机序列生成器将文件加密并“随机”分配到特定的随机位置, 只有拥有随机生成器“种子”的用户能准确找到文件的位置。然而, 基于存储结构构建 SSE 方案的效率往往比较低, 在搜索时需要服务器对整个存储器进行线性扫描并依次进行匹配, 而且对服务器的存储拓扑进行了严格要求。因此,基于索引构建 SSE 方案是目前公认的主流方法, 绝大多数方案都是基于索引来构造的。
  基于索引的构建方法的优势在于不需要特定的加密手段和存储结构, 并且在搜索时有很高的效率, 其主要流程可以描述如下:  
  1. 用户选择安全通用的对称加密算法SKE例如AES, 对数据文件加密, 保存密钥;
  2. 用户根据文件内容构建索引结构, 保证索引内容与加密文件可以进行“链接”;
  3. 将索引结构进行特殊加密, 和加密的数据文件一起发送给服务器;
  4. 服务器存储加密索引和加密文件, 等待用户发送陷门进行操作。
  如上所述, 这一类型的SSE构建方法中, 不同方案的核心在于第 2 步的索引结构的建立以及密文与索引进行“链接”的方式, 以及第 3 步对索引结构的特殊加密。而用户加密文件的手段使用的对称加密算法 SKE 和服务器存储文件的方式都是可选的, 具有灵活性。虽然基于索引的 SSE 相较于基于存储结构的 SSE 方案需要额外的索引构建过程, 以及额外存放索引的存储代价, 但是在效率上, 基于索引的SSE 方案具有非常大的优势, 这在应用层面上决定了基于索引来构建 SSE 方案是最佳的[1]。
  在文献[1]中参考 Curtmola 等[8]第一次正式定义的 SSE 的算法框架(一算法框架是基于索引的) 给出了其定义。定义如下:

  定义2 SSE

  一个单用户的 SSE 方案的参与者包含一个用户和一个服务器, 假设Δ是关键字字典,D⊆2Δ是文件集合, 用户希望将文件集合 D 存储于服务器上, 并且服务器可以提供对字典Δ的搜索服务,一个基于索引的对称可搜索加密体制是指一个多项式时间算法的集合 SSE=(Gen, Enc, Trpdr, Search, Dec)如下:
  K←Gen(1λ):一个密钥生成的概率算法, 通过用户运行以建立系统, 以安全参数λ作为输入, 输出密钥 K。
  (I,c)← Enc(K,D): 由用户运行的一个概率加密算法, 以密钥K 和文件集合D = (D1,...,Dn)为输入, 生成一个安全索引 I 和一系列密文 c = (c1,...cn).
  t ← Trpdr(K,w):由用户运行的一个确定性算法,根据希望检索的关键字w及密钥K作为输入,输出一个陷门t。
  X ← Search(I,t): 由服务器运行的一个确定性算法,根据索引I 和陷门t 来查找文件集 D 中含有关键字w的文件,并返回文件标识符集合X
  Di ← Dec(K,ci): 由用户运行的一个确定性算法, 根据X中标识符得到对应密文, 用密钥K进行解密输出最终明文文件。
 
  之后, Kamara[9]在Curtmola[8]的方案上稍加改进, 增加了方案动态性以支持添加文件或删除文件的操作, 根据这两篇文章的工作, 可以把对称可搜索加密过程简化为归为以下 4 个步骤:
  步骤 1. 建立和密钥生成过程: 用户对文件集合进行某种特殊加密后上传至服务器并生成密钥和加密数据库;
  步骤 2. 陷门生成过程: 用户根据密钥和将要检索的内容生成特定陷门, 分为生成检索陷门和生成更新陷门, 并都上传给服务器;
  步骤 3. 检索过程: 用户提交陷门, 由服务器根据陷门对加密数据库进行安全搜索和返回结果, 用户收到密文后解密得到最终结果;
  步骤 4. 更新过程: 对于支持动态更新的可搜索加密, 可以通过将加密文件和更新陷门上传到服务器进行文件添加或删除操作, 注意添加操作和删除操作是区分开来的。
 
  // 到饭点了,先不往下写了,溜了溜了~

参考文献

[1] 刘文心,高莹.对称可搜索加密的安全性研究进展[J].信息安全学报,2021,6(02):73-84.
[2] Boneh D, Crescenzo G, Ostrovsky R, et al. Public key encryption with keyword search[C]. Proceedings of Eurocrypt 2004, Interlaken, Switzerland, 2004. 506-522.
[3] Byun J W, Rhee H S, Park H A, et al. Off-Line Keyword Guessing Attacks on Recent Keyword Search Schemes over Encrypted Data[M]. Lecture Notes in Computer Science. Springer Berlin Hei delberg, 2006: 75-83. 
[4] Tang Q, Chen L Q. Public-Key Encryption with Registered Keyword Search[M]. Public Key Infrastructures, Services and Applications. Berlin, Heidelberg: Springer Berlin Heidelberg, 2010:163-178. 
[5] Song D X, Wagner D, Perrig A. Practical Techniques for Searches on Encrypted Data[C]. SP '00: The 2000 IEEE Symposium on Security and Privacy. 2000: 44-55.
[6] Chang Y C, Mitzenmacher M. Privacy Preserving Keyword Searches on Remote Encrypted Data[J]. Applied Cryptography and Network Security, 2005: 442-45. DOI:10.1007/11496137_30. 
[7] Naveed M, Prabhakaran M, Gunter C A. Dynamic Searchable Encryption via Blind Storage[C]. SP '14: The 2014 IEEE Symposium on Security and Privacy. 2014: 639-654. 
[8] Curtmola R, Garay J, Kamara S, et al. Searchable Symmetric Encryption: Improved Definitions and Efficient Constructions[J].Journal of Computer Security, 2011, 19(5): 895-934. 
[9] Kamara S, Papamanthou C, Roeder T. Dynamic Searchable Symmetric Encryption[C]. The 2012 ACM conference on Computer and communications security - CCS '12, 2012: 965-976. 
 
posted @ 2021-07-17 17:30  不爱学习的Shirley  阅读(7392)  评论(2编辑  收藏  举报