Page 403 - 《软件学报》2026年第2期
P. 403
882 软件学报 2026 年第 37 卷第 2 期
分析结果.
3.3 威胁模型
CS 的 RC 是可
在系统模型中, 我们假设云服务器 TEE、密钥分发中心 KDC、数据拥有者 DO 以及研究中心
信的, 边缘服务器 ES 是诚实且好奇的, 即 ES 会诚实地执行协议, 却可能试图获取密文中包含的敏感信息. 而 CS
存储部分和外部敌手是不可信的. 换句话说, 敌手通过观察 DO 与 ES、 ES 与 CS、 RC 与 CS 和 RC 与 ES 之间的
通信获得传输信息, 并企图通过篡改密文信息破坏数据完整性来获取明文信息. 此外, 边缘服务器之间也可能会对
彼此上传的数据好奇. 因此, 还需假设所有实体之间不会共谋. 本节定义安全性需求如下.
(1) 正确性: 方案中每个算法都正确地执行, 密文的分析结果将永远能被研究中心正确验证与解密;
(2) 机密性: 除数据拥有者本身和 TEE 之外, 在不知道密钥的前提下, 边缘服务器、云服务器存储部分、外部
敌手等实体都无法根据密文数据得到有关明文数据的任何消息, 且云服务器和边缘服务器只能得到对应的密文聚
合结果;
(3) 完整性: 云服务器的 TEE 和边缘服务器应该检测待聚合的密文数据是否被篡改.
3.4 方案详细描述
(1) 初始化阶段
假设系统存在 n 个边缘服务器 ES i , 每个边缘服务器下存在 β 个数据拥有者 DO i j , j = 1,...,β, 一个云服务器
.
CS、一个研究中心 RC 和一个密钥分发中心 KDC KDC 为每个实体生成为唯一的身份标识. 其中, id ES i 代表第 i
个边缘服务器的身份标识, id DO i j 代表第 i 个 ES i 下第 j 个数据拥有者的身份标识, id CS 代表云服务器的身份标识,
id RC 代表研究中心的身份标识. 详细步骤如下.
1) KDC 根据输入的安全参数 λ, 采用 ODMT-BGN 算法中 KeyGen 算法生成的公钥 mpk 1 和私钥 (s 1 , s 2 ), 其中
,
′
mpk 1 = (G 1 ,G 2 ,g 1 ,u 1 ,u 2 ,u 3 ,e,N ) s 1 = p 1 p 2 p 3 和 s 2 = p 0 p 2 p 3 .
2) KDC 再根据安全参数 λ 生成另一个双线性映射 ˜ e : G 1 ×G 1 → G 2 , 其中, 循环群 G 1 , G 2 的阶均为大素数 q 且
δ
λ
∗
q > 2 , g 是群 G 1 的生成元, g t 是群 G 2 的生成元. 然后, KDC 选取一个随机数 δ ← Z 作为主密钥, 并计算 y = g ,
q
, ), y). 此外, ∗ H 2 : {0,1} → G 1 .
∗
W = ˜e(H 1 (id RC ), y) W i = ˜e(H 1 (id ES i KDC 设置两个抗碰撞哈希函数 H 1 : {0,1} → G 1 和
δ
δ
δ
随后, KDC 再分别为 CS 、 RC、 ES i 及 DO i j 生成私钥 sk CS = H 1 (id CS ) , sk RC = H 1 (id RC ) , sk i = H 1 (id ES i ) 和 sk i j =
δ
) .
H 1 (id DO i j
λ
3) KDC 根据安全参数 λ 再生成一个乘法循环群 G 3 的阶为大素数 q, 且 q > 2 g 3 是群 G 3 生成元, KDC 随机选
,
∗
取随机数 α i ← Z ,1 ⩽ i ⩽ n. 同时, KDC 为每个 ES i 选取一个对应的聚合密文索引标签 i ∈ {1,...,n} 并设置授权标签
q
S = {1,...,n}. 此外, H : {0,1} → G 3 .
∗
集合为 KDC 设置一个抗碰撞哈希函数
′
4) 最后, KDC 发布系统公共参数 mpk 1 = (G 1 ,G 2 ,g 1 ,u 1 ,u 2 ,u 3 ,e,N ) mpk 2 = (G 1 ,G 2 ,g,g t ,H 1 ,H 2 , ˜e,y,q,W i ,W) 和
,
,
,
.
mpk 3 = (G 3 ,g 3 ,H,q,S ) KDC 将 {sk RC , s 1 , s 2 ,id RC } {sk i ,α i ,id ES i } {sk CS ,id CS } 和 {sk i j ,id DO i j } 分别发给对应的 RC 、
ES i 、 CS 和 DO i j , 其中 1 ⩽ i ⩽ n, 1 ⩽ j ⩽ β . 特别地, RC 通过安全信道将 {s 1 , s 2 } 共享到 CS 的 TEE 中.
(2) 密文数据上传阶段
m 2
i j
m i j
1) ← Z N ′ , 并用 ODMT-BGN = u u u ∈ G 1 .
r i j
DO i j 选取一个随机数 r i j 算法对 m i j 进行加密, 得到密文 c i j 1 2 3
2) ∗ = (σ i j ,1 , σ i j ,2 ) = (g ,
w i j
q
DO i j 选取一个随机数 w i j ← Z , 利用签名私钥 sk i j 对密文 c i j 进行签名, 得到签名 σ i j
w i j 的时间戳.
) ), 其中 代表每个
sk i j · H 2 (c i j ||t i j t i j DO i j
3) 每个 将这些可验证的数据信息 }, 1 ⩽ i ⩽ n, 1 ⩽ j ⩽ β 发送给对应的 ES i .
ψ i j = {c i j ,σ i j ,t i j ,id DO i j
DO i j
(3) 边聚合验证与密文数据上传阶段
∗
1) 每个 ES i 接收辖区内所有 发送的 , 并对所有 执行公式 (5) 的批量验证, 其中 ← Z .
DO i j ψ i j ψ i j ς i j q
( ∏ ) ( ∏ ) ∏
β β β ( )
˜ e g, (σ i j ,2 ) ς i j = ˜e y, )) ς i j ˜ e σ i j ,1 ,(H 2 (c i j ||t i j )) ς i j (5)
j=1 j=1 (H 1 (id DO i j j=1
如验证未通过, 则表明至少有一个 DO i j 的 ψ i j 在传输过程中被替换或篡改. 因此, ES i 需要对每个 DO i j 的 ψ i j

