1817 字
9 分钟
Note(Manuscript) for "Device-Enhanced Secure Cloud Storage with Keyword Searchable Encryption and Deduplication"
2025-02-23

Paper reference:

  1. Device-Enhanced Secure Cloud Storage with Keyword Searchable Encryption and Deduplication | SpringerLink
  2. Secure Communications over Insecure Channels Based on Short Authenticated Strings | SpringerLink

Bin-linear Map#

“Suppose that G is an additive group of prime order p and GT is a multiplicative group of the same order. A bilinear map e : G × G → GT has the following three properties” (Jiang et al., 2024, p. 400)

Suppose ee is a map, e(param[] elements) is a function call.

  • Bio-linearThis means that e respects the group operations in both groups, i.e., it is linear in both arguments. The exponents a and b act multiplicatively on the map.

  • e(Q,R)1,for  all  Q,RG,QRe(Q,R) \neq 1, for\; all\; Q,R∈G, Q \neq R, where 1 denotes UNIT Element in Multiplicative Group.

  • e is effective to calcutale.

MLE#

不用说懂得都懂

SAS-MA#

Including 2 channels:

“commitment“ is more alike a Hash sign of Message m for authentication.

Threat Model#

cln. “secure against an honest-but-curious cloud server, compromised key servers, and man-in-the-middle adversaries” (Jiang et al., 2024, p. 403)

Construction#

phase 1.#

ParaGen:#

  • KS*n , 0<t<n : threshold

  • 素数p阶加法群G,生成元P;p阶乘法群GT

  • e双线性映射:e: G × G -> GT

  • Hash functions

    • H: *->G
    • h1: G&*->K(secure para.)
    • h2: GT->K
    • h3: *->K
    • h4: G&*->Zp*
  • 对称加密 SEnc\SDec

  • PKEnc\PKDec

ServerSecretGen:#

KS 进行分布式密钥生成,产生α和β, and ones for their own.

KS_i owns αi & βi.

pk: V=α*P , Q=β*P and Vi Qi for KS_i of their own.

“the key servers perform the distributed secret generation algorithm illustrated in Algorithm 1 twice to create two secrets α and β that are shared among them. Each key server KSi (i ∈ [n]) owns the secret shares αi and βi. The public keys V = α · P , Q = β · P and the public shares Vi = αi · P , Qi = βi · P for i ∈ [n] are published.” (Jiang et al., 2024, p. 403)

运行算法两次得到的α和β分别用于File M和Keyword kw的签名

Algorithm 1:#

实质是分布式密钥协商算法:

The public key PK is shared and available, while each server only knows its own private share.

prepare(input): 安全参数K, 大素数p, KS index 1~n, threshold t.

P是 Zp*的生成元

  1. for every KSiKS_i: , bi,0$Zpb_{i,0} \xleftarrow{\text\$} Z^*_p   fi(x)=polyx:bi,(0 t)f_i(x) = poly_x: b_{i,(0~t)}

  2. for every KSiKS_i: 计算bi,(0 t1)Pb_{i,(0~t-1)} \cdot P  并公开,send fi(j)f_i(j)  to every KSjKS_j now, for all KSiKS_i  owns all KS’s b(index),(range:t)Pb_{(index),(range: t)} \cdot P> bi,iPb_{i,i} \cdot P :目的是盲化bib_i

    threshold参数在polyxpoly_x上体现,只需要t个KS协作即可完成认证

  3. all trusted KS verifies: fj(para:index)P==n=0t1inbj,nf_j(para: index)\cdot P == \sum_{n=0}^{t-1}{i^n \cdot b_{j,n}}> 确保得到的bib_iKSiKS_i所声明的一致(在KS群中保持一致,不可能存在一个腐败的KS,除非所有KS都欺骗Server)

  4. KSiKS_i: 计算 si=q=1nfq(para:i)s_i = \sum_{q=1}^n{f_q(para:i)}
    PKiPK_i = siPs_i \cdot P \\升阶(群内)盲化

  5. for all KS: 协商获得 pk: PK=q=1nbq,0PPK=\sum_{q=1}^{n}{b_{q,0} \cdot P}

OUTPUT:

PK | {PKi  for  every  KSiPK_i \; for\; every\; KS_i}

({si}\{s_i\} are stored inside KS as secure key)

si,  αi,  βis_i,\; α_i,\; β_i

use PKi(aka.  Vi  Qi)  to  verify  sign  σiPK_i (aka. \; V_i \; Q_i)\; to \; verify \; sign \; σ'_i

ReceiverKeyGen:#

k∈Zp* randomly (在device D中储存)

γ=h4(kH(pw)pw),Γ=γP\gamma = h_4(k \cdot H(pw) || pw ) , \Gamma = \gamma \cdot P

(“the password-derived public key Γ” )

γ是私钥,Γ是公钥  used in PKEnc\PKDec

phase 2.#

MLEKey & sdk(server-derived key) Gen:#

prepare: File M and its Keywords {w_j} T=|{wj}|

  1. r  and  {rj}$Zp  ,  T={rj}r' \; and \; \{r_j\} \xleftarrow{\text{\$}} Z^*_p \;,\; T=|\{r_j\}|

    M=rH(M)M’ = r’ \cdot H(M)    文件HASH盲化
    wj=rjH(wj)w’_j=r_j \cdot H(w_j)   Keyword hash盲化

  2. 共享 M’ 与 {wj}\{w’_j\} with All KS

  3. for KSiKS_i: Sign “the signatures σi=αiM  and  δi,j=βiwj  for  j=1,2,,T.σ'_i = α_i \cdot M' \; and \; δ_{i',j} = β_i · w'_j \; for \; j = 1, 2, · · · , T . These signatures will be transmitted to S”

  4. Server verifies signs

    e(σi,P)==e(M,Vi)  and  e(δi,j,P)==e(wj,Qi)e(σ’_i,P)==e(M’,Vi)\; and \; e(δ’_{i,j},P) ==e(w’_j,Q_i)

补充知识:

BLS签名的基本步骤#

  1. 密钥生成

    • 选择一个椭圆曲线群 G 和双线性映射e

      e:G×GGTe: G \times G \rightarrow G_T
    • 生成私钥xZqx \in \mathbb{Z}_q(一个随机数,q 是群的阶)。

    • 计算公钥 P=xGP = x \cdot G ,其中 G 是基点。

  2. 签名生成

    • 对消息 m 进行哈希处理,得到 H(m),这里 H(m)是一个映射到椭圆曲线的点。

    • 使用私钥 x对 H(m) 进行签名:签名

      σ=xH(m)\sigma = x \cdot H(m)
  3. 签名验证

    • 验证者首先计算 H(m) 并得到消息的哈希值。

    • 使用公钥 P 和签名 σ 进行验证:检查是否满足以下等式:

      e(σ,G)=e(H(m),P)e(\sigma, G) = e(H(m), P)
    • 如果该等式成立,则签名是有效的,否则无效。

  4. 正确性验证(双线性):

    σ=xH(m)\sigma = x \cdot H(m)
P=xGP = x \cdot G e(σ.G)=e(H(m),G)xe(\sigma.G) = e(H(m),G)^x e(H(m),P)=e(H(m),G)xe(H(m),P) = e(H(m),G)^x

拉格朗日插值(Lagrange Interpolation)#

是一种多项式插值方法,用于通过已知的离散数据点(xi,yix_i, y_i​)构建一个多项式,该多项式通过这些数据点。具体来说,给定 n+1 个数据点 (x0,y0),(x1,y1),,(xn,yn)(x_0, y_0), (x_1, y_1), \dots, (x_n, y_n),拉格朗日插值通过构造一个多项式 L(x),使得:

L(xi)=yi,i=0,1,,nL(x_i) = y_i, \quad \forall i = 0, 1, \dots, n

拉格朗日插值公式为:

L(x)=i=0nyii(x)L(x) = \sum_{i=0}^{n} y_i \cdot \ell_i(x)

其中,i(x)\ell_i(x) 为第 i 个基拉格朗日多项式,其定义为:

i(x)=0jnjixxjxixj\ell_i(x) = \prod_{\substack{0 \leq j \leq n \\ j \neq i}} \frac{x - x_j}{x_i - x_j}

这意味着每个基多项式  elli(x)ell_i(x)xix_i 处为1,其他数据点处为0。最终,L(x) 就是通过所有数据点的加权组合。


Encryption#

  1. 使用MLE Key ekMek_M对称加密M:

    CM=SEnc(ekM,M).C_M = SEnc(ek_M,M).
  2. Γ是用户的pw-derived pk,公钥加密MLE KEY:

    CekM=PKEnc(Γ,ekM)C_{ek_M} = PKEnc(\Gamma,ek_M)
  3. 加密server-derived keywords , ξj 从Zp*中随机选取:

    Csdkwj=(ξjP,h2(τj))C_{sdk_wj} = (\xi_j \cdot P, h_2(\tau_j)) where,τj=e(H(sdkwk,ξjΓ))where, \tau_j = e(H(sdk_{w_k},\xi_j \cdot \Gamma))

OUT SOURCE: CMC_M , C(ekM)C_(ek_M), C(sdkwj){C_(sdk_wj)} for j∈[T]

De-duplication#

package:

LR:=(IndM,CeKM,{Csdkwj})L_R := (Ind_{M^*}, C_{eK_{M^*}}, \{C_{sdk_{w^*_j}}\} ) LG={IndM,XM,CM}  where,XM=h3(Cm)L_G =\{ Ind_M*, X_M*, C_M*\} \; where, X_M* = h_3(C_m*)

phase 3. Data Access#

R: Key Recovery (SAS-MA)#

input:pwoutput:privatekey  γinput: pw \quad output: private-key \; \gamma

  1. Client  interact with Device:

    rZp,  z{0,1}K,  Rc{0,1}tr ∈ Z^*_p , \; z∈\{0,1\}^K, \; R_c ∈ \{0,1\}^{t'} 盲化pw=rH(pw),  Com=h3(pwRcz)盲化 pw'=r \cdot H(pw), \; Com=h_3(pw' || R_c||z)

    pw  and  ComDpw'\; and \;Com → D

    D:RD{0,1}tClientD: R_D ∈ \{0,1\}^{t'} → Client C:ΦC=RCRD  send  (RC,z)  to  DC: \Phi_C = R_C \oplus R_D \; send\; (R_C,z) \;to \;D

    在SAS信道中(C TO D):

    ΦC=RCRD\Phi_C = R_C \oplus R_D

    D 计算 checksum

    ΦD=RCRD  ==ΦC\Phi_D =R_C \oplus R_D \; == \Phi_C

    检查承诺

    Com==h3(pwRCZ)Com == h_3(pw'||R_C||Z)

    成功则进行(实质是一个同态加密,pw经过盲化,只传输并操作pw’,C拥有盲化因子, k是Device拥有的私钥)并 send to C:

    v=kpwv'= k \cdot pw'

    C 解盲化并得到私钥γ

    v=r1v  and  privatekey  γ=h4(vpw)v=r^{-1} \cdot v' \; and \; private-key \; \gamma = h_4(v||pw)

    即得到私钥 γ=h4(kH(pw)pw)\gamma = h_4(k \cdot H(pw) || pw )

input:  keyword  winput:\; keyword \;w^*
  1. Client interacts with KS to blinds w*, r*∈Zp*

    W=rH(w)    KSW^* = r^* \cdot H(w^*) \;→ \; KS
  2. For  KSiKS_i :

    ξi=βiW  C\xi'_i = \beta_i \cdot W^* \; → C
  3. Client Check  * threshold by:

    e(ξi,P)=e(W,Qi)e(\xi'_i,P) = e(W^*,Q_i)

    then computes:

    ξ=r1nLλnξn\xi = r^{*-1} \sum_{n∈L}\lambda_n \xi'_n

    computes server-derived kw:

    sdkw=h1(ξw)sdk_{w*} = h_1(\xi||w^*)
  4. Tsdkw=γH(sdkw)T_{sdk_{w^*}} = \gamma \cdot H(sdk_{w^*})  send to CS

  5. query LRL_R for Csdkw=(A,B)C_{sdk_w} =(A,B)
    verify h2(e(Tsdkw,A))==Bh_2(e(T_{sdk_{w^*}},A)) == B, where A is randomly selected by CS
    send (enc)MLE Key CekMC_{ek_M}  (and CMC_M ?) to C

Decryption#

ekM=PKDec(γ,CekM)MLE  Keyek_M = PKDec(\gamma,C_{ek_M}) → MLE \; Key

decrypts  M=SDec(ekM,CM)decrypts \; M=SDec(e_{k_M},C_M)

Security Proof#

定理1. 如果使用盲BLS签名和SAS-MA,则DULCET是抗中间人攻击的#

“Theorem 1. Assuming the blind BLS signature is of blindness and the short authentication string message authentication (SAS-MA) is secure, DULCET prevents a man-in-the-middle adversary A (e.g., CS∗) from learning the receiver R’s password-derived private key γ and password pw.” (Jiang et al., 2024, p. 407)

security provided by:

privatekey:  γ=h4(vpw)private-key: \; \gamma = h_4(v||pw) v=kH(pw)v= k \cdot H(pw) where  k$Zp  in  trusted  devicewhere \; k \xleftarrow{\text{\$}} Z^*_p \; in \; trusted \; device

Blinded BLS signature & SAS-MA 保证k只在device中派生,不在任何信道中显式传输,对于一个外部敌手只能获得公钥并通过DGA来匹配pw:

publickey:  Γ=γPpublic-key: \; \Gamma = \gamma \cdot P

·

定理2. 对于所有PPT敌手,DULCET是不可预测的#

“Theorem 2. DULCET is of unpredictability if for any PPT adversary A, the advantage of A winning the unpredictability experiment is negligible.” (Jiang et al., 2024, p. 408)

在分布式密钥协商中,敌手最多能收集到t-1个子密钥(threshold t)

ExpA,DULCETUDP(1λ)Exp^{UDP}_{A,DULCET}(1^{\lambda})#

阅读量:0
Note(Manuscript) for "Device-Enhanced Secure Cloud Storage with Keyword Searchable Encryption and Deduplication"
https://blog.twlmgatito.cn/posts/note-for-sas-ma-cloud-storage-system/
本文同步发布于 博客园、CSDN等技术论坛 微信公众号仅与WPF Develops官方合作 转载请保留所有信息
作者
TwilightLemon
发布于
2025-02-23
许可协议
CC BY-NC-SA 4.0