可搜索加密:DVSSE方案


论文名称:《Dynamic Verifiable Encrypted Keyword Search Using Bitmap Index and Homomorphic MAC》
多关键字 模糊搜索 可验证
动态更新 安全性 复杂度
CKA2 + CMA $O(M)$

注:M: Total number of Keywords

0、基础概念

Honest But Curious Cloud Service Provider (HBC-CSP):诚实但好奇的云服务提供商

  • 安全地存储加密数据并诚实执行搜索操作。它试图从系统中学习存储数据的任何有用信息,但不会偏离协议。

Semi Honest But Curious Cloud Service Provider(SHBC-CSP):半诚实但好奇的云服务提供商

  • 诚实地存储加密数据,它试图从系统中学习存储数据的任何有用信息,并尝试以隐蔽的方式偏离协议。
  • 我们认为这个强大的SHBC-CSP对手可能会自私地操纵搜索结果以节省其计算或下载带宽

1、方案简介

本文考虑了在 SHBC-CSP 存在的情况下的 SSE。在 SHBC-CSP 面前为 SSE 定义了一个新的安全概念,设计了两个新的 SSE 方案,并在提议的安全概念中正式证明了它们的安全性。动态可验证加密关键字搜索(DVSSE)是据我们所知的第一个既动态又可验证的 SSE 方案。

本文贡献:

  • 分析了 SHBC-CSP 存在下加密关键字搜索的安全性,并提供了一种新的安全模型来处理这种现实对手。

  • [6]中提出的方案缺乏验证检索结果正确性的规定。因此,Hwang等人的IND-CKA2安全方案在SHBC-CSP存在的情况下是不安全的。

  • 我们提出了两种新方案,在SHBC-CSP存在的情况下进行加密关键字搜索,并在新提出的安全模型中证明其安全性。

  • 我们的第一个方案是对[6]中提出的现有基于位图的加密关键字搜索的改进。尽管此方案提供了搜索结果可验证性,但它无法动态更新。

  • 我们的第二种方案提供了位图的机密性,支持动态更新和搜索结果可验证性,这是避免访问模式泄漏所必需的。为了实现动态更新和搜索结果的可验证性,我们利用复合残差设计了一种新的同态MAC。

2、安全性

DynamicIND-CKA2-security

Setup :C 生成 DVSSE 方案的密钥K,设置系统参数Params。A选择一个文档集合F,生成F中存在的关键字W的列表,并选择一个关键字W *∈W并将其交给c。c生成F的安全索引I并将其返回给A.C选择位b R←{0,1}。如果b=0,C设置实际加密位图x *(对应于w *)。如果b=1,C在加密位图的范围内随机选择x *。

Training Phase:

A 被允许查询以下预言机,其限制是 A 不能对 w * 进行任何预言机查询

OSearchT oken(w): Returns search token τs.

• OAddT oken(f ): Returns add token τa.

• ODeleteT oken(f ): Returns delete token τd.

• OV erif y(T ag,x,id(w)): Returns Accept or Reject.

• OBitmapDecryption(x): Returns Bm(w).

Challenge Phase:

C 将 id(w∗) 提供给 A

Guess:

A 输出一个位b ‘,如果x *对w *对应的位图进行加密,则b ‘为0,否则输出1。

如果对于所有概率多项式时间对手 A,该方案是 IND-CKA2 安全的,则存在一个可忽略的函数 negl(.) 使得:

P r[DV SSEIND-CKA2A (κ) → (b = b′)] ≤ 1 2 + negl(κ)

3、具体实现

方案一:VSSE

consists five algorithms $(KeyGen, BuildIndex, SearchToken, Search, Verify)$

KeyGen(κ)

Choose three cryptographic MAC’s defined as follows:

  • $H_1 : {0, 1}^κ × {0, 1}^∗ → {0, 1}^κ$

  • $H_2 : {0, 1}^κ × {0, 1}^∗× {0, 1}^κ → {0, 1}^κ$

  • $H_3 : {0, 1}^κ × {0, 1}^n × {0, 1}^κ → {0, 1}^κ$

Where, the first inputs are cryptographic keys.

Output the key $K = <K_1, K_2, K_e, K_h〉 \stackrel{R}← {0,1}^κ$

BuildIndex(F, K)

$P:{0,1}^k × {0,1}^ω → {0,1}^{l_w}$ be a pseudo-random function where $ω = |w_i|$ and $l_w = |id(w_i)|$ for wi ∈ W;

the keyword identifier id(wi) is computed by a pseudo-random function P.

  • Building the search table $T_s$:

    For all $i ∈ [w]$,

  1. compute $id(w_i) = P(K_1, w_i)$
  2. generate $id(F(w_i))$
  3. make the bitmap $B_m(w_i)$ where $B_m(w_i)[j]$ = 1 for all $j ∈ id(F(w_i))$
  4. choose random $r_i ← {0,1}^r$ and compute $x_i = h_i ⊕ B_m(w_i)$ where $h_i = H(K_{w_i}||r_i)$ and $K_{w_i} =P(K_2, w_i)$
  5. store $(key, value) = (id(w_i), x_i||r_i)$
  • Building the file table $T_f$ :

​ For all $j ∈ id(F)$, where $f ≤ m$

  1. compute $c_j ← SKE.Enc_{K_e} (f_j)$
  1. store $(key, value) = (j, c_j)$
  • output the index $I = (T_s, T_f)$.

方案二:DVSSE


文章作者: 简简
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 简简 !
评论
填上邮箱会收到评论回复提醒哦!!!
 上一篇
可搜索加密:B-SSE方案 可搜索加密:B-SSE方案
论文名称:《Encrypted Keyword Search Mechanism Based on Bitmap Index for Personal Storage Services》 地址:https://ieeexplore.ie
2022-12-12
下一篇 
Java-JUC Java-JUC
JUC是java.util.concurrent包的简称,在Java5添加,目的就是为了更好的支持高并发任务。让开发者进行多线程编程时减少竞争条件和死锁的问题!
2022-12-06
  目录