Page 465 - 《软件学报》2026年第2期
P. 465

944                                                        软件学报  2026  年第  37  卷第  2  期


                                                ,
                    4)  VMC i  选择   y i,k ∈ Z , 计算   Y i,k =y i,k P py i,k =(y i,k + sk i · H 1 (Addr i,k ,X i,k ,Y i,k ,P Pub-i )) mod q 和  cpy i,k = py i,k ⊕ H 3 (sk i X i,k ),
                                    ∗
                                    q
                 返回部分公钥和加密后的部分私钥            (Y i,k ,cpy i,k ) 对给  V i,k .
                    5) 收到消息后,   V i,k  解密得   py i,k = cpy i,k ⊕ H 3 (sk i X i,k ), 生成完整私钥  SK i,k = (x i,k , py i,k ) 和完整公钥  PK i,k = (X i,k ,Y i,k ).
                 此外,   V i,k  可以通过检查等式  Y i,k = H 1 (Addr i,k ,X i,k ,Y i,k ,P Pub-i )P Pub-i + py i,k P 是否成立来判断收到密钥的正确性;
                    6)   VMC i  为   V i,k  生成初始信誉值  RS i,k , 上传  < Addr i,k ,PK i,k ,RS i,k > 到区块链, 并返回最新的  CT i  给  V i,k .

                              n       n−      …                          …
                              h  (Seed )  h  1 (Seed )  h i+ 2 (Seed )  h i+ 1 (Seed )  i ( h Seed )  h 2 (Seed )  h 1 (Seed )
                                              …                          …
                                CT     CT          CT      CT     CT          CT      CT
                                 1       2           i− 1    i      i+ 1        n− 1    n
                                                  …                          …
                              0 T    1 T    2 T          i T − 1  i T   i T + 1     n T − 1  n T
                                                图 3 反向哈希链生成信誉票证

                  4.3   加密签名
                    为了同时保证消息的机密性、完整性和身份认证, 当车辆                    V i,k  (发送者) 给邻车  (接收者, 来自不同的域) 发送
                 共享信息   m i  时, 需要对  m i  进行签名和加密, 具体执行步骤如下.
                    1)   V i,k  选择随机数  l i,k ∈ Z , 计算  L i,k = l i,k P β i,k = H 2 (X i,k ,Y i,k ,K i,k ,m i ,t i ) C 1 = L i,k ⊕CT i  和  C 2 = m i ⊕CT i , 其中  t i  表
                                                    ,
                                                                        ,
                                       ∗
                                       q
                 示时间戳. 然后生成签名       σ i,k = l i,k +(x i,k +cy i,k )β i,k .
                    2)   V i,k  发送  {Addr i,k ,C 1 ,C 2 ,σ i,k ,t i } 给接收者.
                  4.4   解密验证
                    为了确保消息的完整性以及消息来源的可靠性, 接收者需要对消息进行解密并验证签名的正确性, 具体执行
                 步骤如下.
                                                                   t i  的有效性, 若时间戳无效, 则丢弃该消息, 否则
                    1) 收到消息   {Addr i,k ,C 1 ,C 2 ,σ i,k ,t i } 后, 接收者首先检查时间戳
                 执行下一步.
                    2) 接收者使用    CT i  分别计算  L i = CT i ⊕C 1  和  m i = CT i ⊕C 2  获得   L i,k  和  m i .
                                                    β i,k = H 2 (X i,k ,Y i,k ,L i,k ,m i ,t i ), 然后验证公式  (1) 是否成立, 若成立, 则说
                    3) 接收者计算    α i,k = H 1 (Addr i,k ,X i,k ,Y i,k ) 和
                 明消息完整且来源可靠, 接收消息, 否则拒绝.

                                                                                                      (1)
                                              σ i,k P = L i,k +β i,k (X i,k +Y i,k )+α i,k β i,k P Pub-i
                  4.5   信誉值更新
                    车辆可以根据接收消息的有用性为其评价, 并将反馈结果发送给                      VMC. VMC  调用部署在区块链上的算法          1
                 所示的信誉值更新合约, 更新车辆的信誉值.
                    此外, 为了鼓励车辆积极参与评价反馈, 可以设置激励机制, 如: 参与评价反馈可以获得额外信誉值、信誉值
                 高于某个阈值的车辆可以享受车险优惠或修理优惠等.
                  5   安全性证明与分析

                    在本节中, 对本文方案做了形式化的安全性证明和非形式化的安全性分析                         (每个区域的算法相同, 证明和分析
                 方法也相同, 故以一个区域为例进行证明).
                  5.1   安全性证明
                    定理   1. 在基于  ECDLP  假设和   ROM  的帮助下, 若敌手      A I  能在概率多项式时间内, 以不可忽略的优势
                 ε ⩾ 10(q s +1)(q s +q 2 )/2  赢得游戏  1 (假设最多进行  q i  次  H i  询问,   q s  次签名询问), 则挑战者  C  能在概率多项式时间
                                  k
                 内, 以不可忽略的优势      1/(9q 1 q 2 ) 解决  ECDLP  假设.
   460   461   462   463   464   465   466   467   468   469   470