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 假设.

