Page 445 - 《软件学报》2026年第2期
P. 445
924 软件学报 2026 年第 37 卷第 2 期
(Aut i ||Token) (10)
EAutToken i = E sp i
U 计算 D(EAutToken i ) 获得 Aut i 和 Token, 验证等式 e(Aut i ,P) = e(H (Token),PK i ) 是否成立; 若等式成立, 则
t
Aut i 有效; 否则, U 拒绝该操作. 收到 个有效证书签名 (用 {Aut 1 ,Aut 2 ,...,Aut t } 表示) 后, U 计算封装后的证书签名
Aut u , 检查等式 e(Aut u ,P) = e(H (Token),PK) 是否成立; 若等式不成立则协议终止; 否则, U 接受 Aut u , 如公式 (11)
计算设备证书.
Cert D = {Token,Aut u } (11)
设备授权成功 (获取设备证书) 后, 用户可以通过授权设备在 App 和云存储服务器进行登录和使用. 用户在云
存储服务器上的登录与其在 App 的登录步骤类似, 出于简洁性的考量, 以下只具体展示用户在 A i (i = 1,2,...,n) 登
录的具体步骤.
,
U 使用设备 D 通过客户端联系 A i 的后端服务器进行登录请求, A i 为客户端生成唯一的会话标识 ID S D 获取
ID S 后生成一个随机的账户 ID D 创建一个证书
客户端的 字符串 ID a 以及一个短效的账户密钥对 (K a ,S a ). 随后,
签名请求 (certificate signing request, CSR), 其中包含 Sig (ID a ,K a ) D 计算 Sig (CS R) 并将 CSR、 Sig (CSR) 及
,
S a S D S D
Cert D 发送给 .
A i
A i 验证 D 是否有权获取 Cert D 中列出的用户名的证书, 并同时拥有 S D 和 S a ; 若验证失败, 则 A i 拒绝该操作;
,
否则, A i 将 ID a 与该用户名关联起来, 并返回一个账户证书 Sig (Cert a ) Cert a 中列出了 ID a 和 K a .
k i
若为首次登录, D 生成用于与 A i 会话的短效密钥对 (K S ,S S ), 生成会话证书 Cert S , 证书包含 ID S 、 A i 的域名以
,
,
及 K S D 向 A i 发送 Cert a Sig (Cert S ) 和 Sig (ID S ) 请求登录. A i 将 K S 与 U 的账户关联, 随后只允许来自证明其
S a S S
拥有 S S 的 D 登录.
若不为首次登录, D 需查找其用于 A i 的会话密钥对 (K S ,S S ), 通过计算 Sig (ID S ) 来证明其拥有 S S 以完成
S S
登录.
用户数据的外包存储由发送数据的 App ( A S A S ∈ {A 1 ,A 2 ,...,A n }) 完成.
,
首先, U 为其授权设备 D 从 Z 中随机选取用于陷门计算的私钥 α, 如公式 (12) 计算对应的公钥, 给定 U 的使
∗
p
用数据的数据文件 data 及其关键词 , E K R (data) 并发送至云存储服务器 .
C
w A S 计算
Q D = αP ∈ G (12)
RetriSerKw(σ w ,w) → sd w : 强化关键词算法. A i (i = 1,2,...,n) 执行分布式秘密共享协议得到其子密钥 sk i = s i ,
.
′
∗
子公钥 PSK i = PS i , 计算得到相应的公钥 PKS = PS A S 均匀一致地选择 β ∈ Z , 计算 w = β· H (w), 由于 A S 在
p
′
A i (i = 1,2,...,n) 中, 故 A S 可以根据公式 (13) 使用其子密钥计算一个对 w 的签名.
′
Sig (w ) = σ S = sk S ·w ′ (13)
sk S
{
随后, A S 随机选择其余 t −1 个 App 的集合 T = A i 1 ,A i 2 ,...,A i t−1 } , A S < T , 将 w 发送给 . 收到 w 后, A k (k = i 1 ,
′
′
T
i 2 ,...,i t−1 ) 根据公式 (14) 计算其对 w 的签名并将 σ k 发送给 A S A S 验证等式 e(σ k ,P) = e(w ,PSK k ) 是否成立; 若验
,
′
′
证失败, A S 拒绝 σ k ; 否则, A S 在本地存储 σ k .
′
Sig (w ) = σ k = sk k ·w ′ (14)
sk k
A S 共需要接收到 个有效签名 { } { } 计算盲化后
t (用 σ i 1 ,σ i 2 ,...,σ i t−1 表示), 使用 t 个有效签名 σ i 1 ,σ i 2 ,...,σ i t−1 ,σ S
σ , 如公式 (15) 去盲化后得到封装签名.
∗
的封装签名
w
−1
σ w = β ·σ ∗ (15)
w
A S 计算验证等式 e(σ w ,P) = e(H (w),PSK) 是否成立; 若等式不成立, 则 σ w 计算错误; 否则, A S 可根据公式 (16)
计算强化关键词.
sd w = F 2 (h(σ w ),w) (16)
∗
A S 随机选取 χ ∈ Z , 根据公式 (17)、(18) 计算强化关键词的密文并将 发送给 C.
C sd w
p
τ = e(H 1 (sd w ),χQ D ) (17)

