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
   398   399   400   401   402   403   404   405   406   407   408