车联网中支持动态操作的密钥协商协议*
2020-07-03周天祺杨惠杰
周天祺, 杨惠杰, 沈 剑,2
1. 南京信息工程大学 江苏省网络监控工程中心, 南京210044
2. 鹏城实验室 网络空间安全研究中心, 深圳518000
1 背景
车载自组网(Vehicular Ad Hoc Networks, VANETs)[1,2]是物联网的重要应用. 一般来说, VANETs主要由车载单元(On Board Unite, OBU), 路边单元(Road Side Unit, RSU) 和可信机构(Trusted Authority, TA) 组成. VANETs 可以为导航、交通预测、测速等各种车辆应用提供平台. 随着人工智能技术的快速发展,无人驾驶以及更多的车载应用将进一步推动VANETs 的发展和应用. 然而,除了VANETs所具备的优点和所提供的各种实际应用之外, 安全性和效率仍然是VANETs 中备受关注的两大问题[3,4].例如, 在导航的过程中, 对于交通事故或者道路拥堵等需要及时响应的信息, 需要VANETs 做出及时的信息发布, 确保相关车辆能够及时反应, 合理规划路线. 此外, 安全的信息传输也是VANETs 系统中需要考虑的重要问题, 如果消息的传输被攻击者恶意地修改或者删除, 将会给用户的行驶带来不便甚至引起严重的后果. 另一方面, 随着人工智能技术的发展, 无人驾驶对网络环境的安全和效率提出了更高的需求. 除了对机器学习技术的改进和完善, VANETs 环境的安全和效率将是无人驾驶技术普及的重要制约因素. 在这些要求下, 密钥协商协议作为一种重要的密码学原语[5,6]可以为VANETs 环境中的安全通信提供有力保障. 此外, 用户数量动态变化的VANETs 环境会面临频繁的密钥更新操作, 因此设计良好的方案不仅要考虑会话密钥的生成, 还要需要考虑高效的密钥更新机制.
在本文中, 针对传统密钥协商协议通信轮数偏高、密钥更新效率较低等问题, 我们利用对称平衡不完全区组设计(Symmetric Balanced Incomplete Block Design, SBIBD) 和不可区分混淆技术, 提出了一种支持高效密钥更新和动态特性的VANETs 密钥协商协议. SBIBD 是组合设计领域中的一种重要技术, 具有良好的平衡和对称的特性, 在实验对比设计中可用于样本的对比组合检测从而得到最优选择[7]. 本文对SBIBD 的结构特性进行研究, 将其特性应用于密钥协商的通信模型, 有效降低密钥协商过程中的通信开销. 然而, SBIBD 的构建一般需要较大的计算开销, 为了解决该问题, 我们进一步研究SBIBD 构造方案,提出了基于移位寄存器的构造方案, 有效降低了构建该结构的计算开销. 另一方面, 针对密钥更新问题, 我们采用目前最新的不可区分混淆技术[8], 设计基于不可区分混淆的高效密钥更新方案. 混淆技术最早是在软件领域为了实现版权保护而提出的, 其核心思想是对代码进行混淆, 使得用户只能以黑盒的方式访问程序. 在密码学领域, 混淆技术的提出则是起源于安全多方计算问题, 即如何在不公开自己秘密值的情况下与他人进行计算并最终得出计算结果. 之后, 电路混淆和不可区分混淆的概念相继被提出. 在本文中, 密钥更新是根据之前的会话密钥计算新的会话密钥的过程, 为了保证该过程的安全性和高效性, 借助混淆技术来设计更新算法.
1.1 相关工作
针对VANETs 动态变化的特性, 文献[9] 提出了一种结合AODV 和DSDV 协议的路由算法, 从而平衡了移动状态VANETs 网络的传输效率和分组投递率. 文献[10] 对端系统、管系统、云系统中的VANETs 进行了详细讨论,并介绍了VANETs 中的两种重要通信方式,即车辆与车辆之间的通信(Vehicle to Vehicle, V2V) 和车辆与路边单元间的通信(Vehicle to Roadside, V2R). 文献[9] 和[10] 都致力于VANETs 网络的路由协议研究. 另一方面, 文献[11] 研究了VANETs 网络体系结构, 并分析了相关的关键技术. 然而, 上述工作并没有详细讨论VANETs 中存在的安全问题. 文献[12] 设计了一种电子车牌采集的安全方案, 解决了物理车牌在实际使用中存在的伪造、套牌、遮挡等安全问题, 为电子车牌的进一步推广提供了思路. 同时, 文献[13,14] 针对VANETs 中的隐私和安全问题进行研究. 文献[13] 详细分析了现有的VANETs 隐私保护方案, 指出平衡身份认证与用户匿名是VANETs 隐私保护方案的研究重点. 文献[14] 借助数字签名技术提出了一种基于代理签名簇的VANETs 隐私保护框架. 然而, 以上方案都存在认证效率低的问题. 为了实现VANETs 中的安全数据共享, 方案[15] 提出了一种支持RSU 数据下载的安全数据共享方案. 但是, 它只支持RSUs 和OBUs 之间的数据共享并且该方案需要大量的存储空间. 文献[16] 提出了一种基于地理位置的数据聚合方案, 该方案致力于最小化聚合数据的通信开销. 尽管如此,它还是会遭受数据包冲突和并且需要更长的通信时延. 此外, 针对物联网环境中的安全问题, 人们提出了许多研究工作[17-19], 这些工作可以作为保证VANETs 安全的参考.
1.2 本文工作
本文针对VANETs 中安全高效的通信需求, 提出了一种新的密钥协商协议. 本方案主要考虑适用于多方安全的密钥协商, 本文协议具有良好的安全性和高效性, 能够为VANETs 安全高效的通信提供保障.为了在动态VANETs 中实现安全高效的密钥协商, 本文提出了基于移位寄存器的SBIBD 构造, 基于该结构设计了安全多方密钥协商方案. 此外, 通过设计不可区分混淆算法, 提出了安全高效的密钥更新算法. 本文的贡献总结如下.
(1) 设计SBIBD 构造方案. 通过利用移位寄存器本文提出了基于移位寄存器的SBIBD 构造方案.通过使用移位寄存器, 该方案显著降低了SBIBD 构造的复杂性. 此外, 基于MapReduce 分布式计算模型给出了SBIBD 的构建方案, 该方案能很好地支持VANETs 中大规模的并行计算, 进一步提升SBIBD 结构的构造效率.
(2) 多用户间安全密钥协商. 为了保证VANETs 中安全高效的通信信道, 设计多用户间的密钥协商协议, 得到多用户间的会话密钥. 采用SBIBD 结构将有效降低密钥生成的通信开销. 此外, 多用户间相同的会话密钥可以有效支持安全通信的高效性, 即利用生成的相同会话密钥进行对称加密的时间开销将大大低于公钥加密的时间开销. 针对协议可能面临的实际安全威胁, 本文还给出了密钥生成阶段的威胁模型, 并基于现有的密码学困难性问题和安全的密码学方案证明本文协议是安全的.
(3) 实现动态环境下的高效密钥更新. 在VANETs 中, 利用不可区分混淆的概念实现密钥的高效更新. 在这种资源受限的环境中, 通过重新启动协议来更新会话密钥是一种资源消耗和不现实的做法. 在资源受限的环境下, 为了实现密钥的高效更新, 本文创新性地在VANETs 中采用了不可区分混淆技术. 此外, 为了保证密钥更新的安全, 本文给出了密钥更新阶段的威胁模型并基于安全的密码学原语证明更新操作的安全性.
(4) 对协议进行模拟和对比实验分析. 本文利用PBC 密码学库对本文协议进行模拟实验, 基于C 语言和PBC 密码学库实现了本文协议. 通过多次运行协议得到平均运行时间作为协议的时间开销.此外, 实践了同类型VANETs 环境下的密钥协商协议并与本文协议进行对比分析.
本文的结构如下. 第2 节介绍了一些预备知识. 第3 节介绍了系统模型. 第4 节详细介绍了本文协议. 第5 节进行安全性和性能分析. 第6 节对本文进行总结.
2 预备知识
2.1 BLS 签名
BLS 签名算法是目前公认的安全签名算法, 算法流程如下:
(1) 初始化: 选取循环群G1和G2, G1中的生成元为g, 双线性映射: G1×G1→G2, 密码学哈希函数H :{0,1}∗→G1. 选取, 计算P =gs. 其中, 私钥为s, 公钥为P.
(2) 签名: 利用私钥对消息M 进行签名得到σ =H(M)s.
基于CDH 困难性问题, BLS 签名算法具备选择消息攻击下的存在性不可伪造安全.
2.2 RSA 加密算法
RSA 算法是一种安全的加密算法, 其最原始的算法如下:
(1) 初始化选取两个大素数p, q, 计算n = p×q, 选取与φ(n) 互素的数e, 其中φ(n) 是n 的欧拉函数. 利用扩展的欧几里得算法计算e 的逆d 满足ed ≡1(mod((p −1)(q −1)). 最终得到公钥为(e,n), 私钥为(d,n).
(2) 加密: 利用公钥e, 对消息M 进行加密得到密文C=Me.
(3) 解密: 利用私钥d, 对密文进行解密得到明文M =Cd=(Me)d.
RSA 算法的安全性基于大数的因数分解难解性问题, 基于该难解性问题对RSA 加密得到的密文进行分析的难度等同于因数分解问题的难度. 然而, 为了满足加密算法最基础的安全需求, 即选择明文攻击下的语义安全, 原始的RSA 算法还需进行修改, 一种可行的安全RSA 加密算法如下所示:
(1) 初始化选取两个大素数p, q, 计算n = p×q, 选取与φ(n) 互素的数e, 其中φ(n) 是n 的欧拉函数. 利用扩展的欧几里得算法计算e 的逆d 满足ed ≡1(mod((p −1)(q −1)). 最终得到公钥为(e,n), 私钥为(d,n).
(3) 解密: 利用私钥d, 对密文进行解密得到明文M=(H(r)⊕M)⊕H((re)d).
上述改进算法通过在原始算法的基础上引入随机数r, 使得改进的RSA 算法能够满足公钥加密体制中的最基本安全需求: 在选择明文攻击下的语义安全. 此外, 只要选取合适长度的素数, 该算法就能为真实各类型应用提供不同程度的安全性保证.
2.3 混淆技术
混淆的概念起源于计算机领域, 即代码混淆. 混淆的目的是为了保护软件的安全和防止逆向工程. 在计算机领域, 模糊处理通过混淆代码, 使代码不可识别, 同时保持代码的原始功能, 保证了程序的安全性.攻击者无法从混淆的代码中获取原始代码. 在密码学中, 混淆的概念最早由Barak 等人于2001 年提出.它显示了一般程序不可能实现的黑盒安全性[20]. 之后, 为了达到实用的混淆, 他们给出了一个较弱的概念——不可区分混淆. 定义1 描述了不可区分混淆的概念.
定义1(不可区分混淆) 对于两个功能相同的电路C 和C′, 不可区分混淆器IO 可以使这两个电路混淆, 从而满足条件IO(C)≈polyIO(C′). 其中, “≈poly” 表示着C 和C′的混淆在多项式上是不可区分的[21].
2.4 移位寄存器
在数字电路中, 移位寄存器是一种顺序器件, 它将输入端的数据移动或移位到输出端. 输入和输出操作能支持并行和串行的方式. 在每个时钟周期内, 寄存器中的数据将从最高有效位(Most Significant Bit,MSB) 顺序移位到最低有效位(Least Significant Bit, LSB).
2.5 平衡不完全区组设计
定义2(平衡不完全区组设计)设V 为v 阶的集合,则簇B 由集合V 中的v 阶子集组成. 如果V 的每一个元素在B 中恰好出现x 次, 则簇B 是平衡不完全区组设计(Balanced Incomplete Block Design,BIBD). 其中, B 的每一个子集称为一个区组. 此外, 如果簇B 中的子集的数目等于v , 并且每个元素出现的数目x 等于子集的阶k, 则该簇是对称平衡不完全区组设计(Symmetric Balanced Incomplete Block Design, SBIBD). 特别是, SBIBD 中的参数是(b,v,k,r,λ). 其中, b 是区组的数目, v 是元素的数目. 对于SBIBD, 我们有以下条件b = v, k = r 和v = k2+k+1. 其中, k 是B 中元素的个数, 并且k 是一个质数[22]. 图1 中是一个v = 7 的区组设计, 其中每个元素分别用不同颜色标注. 由图1 可以清晰地看出SBIBD 结构平衡对称的特性, 即每个元素的出现次数和每个区组的元素个数相同, 集合的元素个数和区组的个数相同.
在实践中, BIBD 和SBIBD 结构由于其独特的特性, 被广泛应用于实验设计中以实现高效的对比实验的目的.
图1 SBIBD 结构Figure 1 Example of SBIBD structure
3 系统模型与SBIBD 结构
3.1 系统模型
VANETs 通常由三个实体组成: 路边单元(RSU)、车载单元(OBU) 和可信机构(TA). RSU 和TA之间的信道被认为是安全的, 它们是具有高带宽和低错误率的有线通信信道. 此外, RSU 之间的信道也是安全的. 另一方面, OBUs 的通信信道是IEEE 802.11p 定义的无线信道, 其中普遍使用的是5.9 ghz 专用短程通信(Dedicated Short Range Communication, DSRC).
在系统模型中,TA 与RSUs 之间的信道和RSUs 与RSUs 之间的信道是安全可靠的有线链路,OBUs与OBUs 之间的信道和OBUs 与RSUs 之间的信道是无线的、不安全的链路. 一般来说, 有线链路的传输速率比无线链路快, 有线链路的错误率比无线链路低. 此外, TA 和RSUs 的计算和存储能力都强于OBUs. 因此, 在所提出的密钥协商协议中, 会话密钥的计算由RSUs 执行, 然后将密钥传输到其控制范围的OBU.
3.2 威胁模型
协议的威胁模型由敌手A 和挑战者C 之间进行的下列交互游戏构成. 其中挑战者C 是攻击困难性问题或者现有公认的安全方案的攻击者, 敌手A 是攻击本文所设计的密钥协商协议的攻击者. 在不同的游戏中, 挑战者C 的目的是对协议进行不同程度的攻击. 在游戏中, 挑战者C 首先构建一个模拟的方案,敌手A 则与挑战者C 进行交互. 之后利用挑战者C 的回答, 敌手A 尝试对所设计的密钥协商协议进行攻击. 最终, 利用游戏的交互, 将敌手A 对密钥协商协议的攻击能力规约到挑战者C 对困难性问题或者现有公认的安全方案的攻击能力, 从而得出悖论.
3.2.1 子密钥的安全性
子密钥安全性由敌手A 和挑战者C 之间游戏GS模拟
3.2.2 会话密钥安全性
会话密钥安全性由敌手A 和挑战者C 之间游戏GC模拟
3.2.3 密钥更新安全性
会话密钥安全性由敌手A 和挑战者C 之间游戏GU模拟
3.3 SBIBD 结构
本文利用SBIBD 结构保证安全高效的VANETs 通信. 具体来说, VANETs 中OBUs 密钥协商的消息交互方式和后续VANETs 的通信拓扑结构都是基于SBIBD. 因此, 本节将详细介绍SBIBD 结构. 以图2 所示的SBIBD 结构为例, 根据SBIBD 的定义, 集合V 有7 个元素, 区组的数目也等于7. 其次, 每个块包含3 个元素, 每个元素出现3 次. 值得注意的是, 在所提出的方案中为了实现降低通信冗余, 一个特殊的SBIBD 结构被给出(如图2). 在该结构中, 每对集合V 中的元素同时出现在区组中的次数为一次. 具备这种特殊特性的SBIBD 结构也可以称为一个(v,k+1,1)-设计, 其中v 表示元素和区组的数目,k+1 表示每个区组包含的元素个数和元素在所有区组中出现的次数, λ 表示每对元素的出现次数. 其中,k 是一个素数, λ = 1, v = k2+k+1. 此外, 如图2 所示, 根据SBIBD 的转换[22], 可以得到适用于密钥协商的SBIBD 结构.
图2 转换的SBIBD 结构Figure 2 Transformed SBIBD structure
4 方案设计
4.1 SBIBD 构建
本节给出了基于移位寄存器的SBIBD 构建方案. 特别地, 针对VANETs 环境下可能处理大规模数据的情况, 为了进一步提升构建效率, 本节基于MapReduce 分布式计算模型详细说明了该构建的具体实现.MapReduce 是一种用于大规模数据集并行运算的编程模型. VANETs 中OBU 和RSU 数量的增加都可能会导致大规模数据的处理, 一方面可能需要构建较大的SBIBD 结构, 另一方面由于RSU 和OBU 组成的网络数量增多, 可能会需要构建大量的SBIBD 结构. 因此, 本节基于MapReduce 分布式计算模型实现SBIBD 结构的构建. 图3 展示了在MapReduce 模型下SBIBD 构建任务的划分细节. 首先, 将任务分解为多个小任务. 之后, 进行Map 操作, 即将小任务并行地进行处理得到中间结果. 最后, 进行Reduce 操作对中间结果进行处理, 即将已完成的小任务合并成大任务从而完成一个或多个完整SBIBD 构建任务.
图3 MapReduce 模型下SBIBD 构建任务细节Figure 3 Construction of SBIBD structure in MapReduce framework
为了展示该构建方案的可行性, 图4 展示了一个具体的SBIBD 结构构建例子, 其k = 7, v = 56. 为了便于对结构的描述, (v,k+1,1)-设计被分成从0 到k 的k+1 个单元, 每个单元的对应的标号分别为0 到k. 第一个单元包含k+1 个区组, 而其他单元包含k 个区组, 该结构的构造具体步骤如下.
(1) 第一个单元的构造: 第一单元是k+1 阶的方阵. 该方阵第一列元素全为0, 第二列到最后一列的元素为1 至k −1 递增的顺序按行排列. 第一个单元的构建可以通过循环完成, 不参与并行处理.
(2) 剩余k 个单元第一二列的构建: 第一列元素全为该单元的标号k, 第二列元素为k+1+row, 其中k 是SBIBD 的结构参数, row 是该元素所在的行号. 该构建可以通过循环完成, 不参与并行处理.
(3) 第二单元剩余k −1 列的构建: 每一列元素加上等长的大小为k 的向量构成下一列. 对于k =7,v = 56 的结构, 第二单元剩余k −1 列如图4 中顶层的结构所示. 该结构是SBIBD 并行构建的基础结构.
(4) 剩余单元剩余k −1 列的构建: 将第二单元剩余k −1 列发布为k −1 个任务, 在Map 阶段对每个任务进行不同长度的k −1 次循环移位得到中间结果. 该循环移位过程由图4 第二行中的黑色虚线表示, 生成的中间结果由图4 第二行表示. 最后, 进行Reduce 操作, 将中间结果合并得到最后的计算结果, 完成并行处理操作. 该结果由图4 第三行表示.
图4 MapReduce 模型下SBIBD 构建例子Figure 4 Example of SBIBD construction
4.2 密钥生成
本节基于所构建的SBIBD 结构, 提出了基于(v,k + 1,1)-设计的密钥协商协议, 该协议可以保证VANETs 的通信安全. 具体的密钥协商过程描述如下.
(2) 每个OBU 使用轻量级安全的公钥加密算法Enc() 对其秘密密钥s 进行加密, 并将加密的密文C =EncPR(s) 发送给RSU. 其中, PR是RSU 的公钥.
(3) 每个RSUi对接收到的密文C 进行解密, 得到OBUs 的s, 并将所有s 聚合为S. 其中, i 代表RSU 的编号.
(4) 根据构造的(v,k+1,1)-设计, 对于每个区组Bi, 用Bi中的k 个元素表示RSU 的索引号. 这k个RSUs 使用RSUi的公钥对各自聚合的密钥值进行加密, 并将密文发送给RSUi. 同时, 根据(v,k+1,1)-设计的性质, 元素i 被包含在k+1 个区组中. 因此, 这些k 区组(块i 除外) 的索引号表示该RSU 需要以加密格式将从第三步获得的k 个S 发送给RSUi. 这样, 所有RSUs 共享彼此聚合的OBUs 的秘密值, 并最终构成最终的会话密钥S =∏Si.
(5) 每个RSU 计算最终的会话密钥S =∏Si, 并将密钥分发给其范围内的OBUs.
4.3 密钥更新
在实践中, VANETs 的结构经常发生变化, VANETs 的动态特性和资源约束特性要求支持有效的密钥更新. 本文方案不需要重新启动协议完成密钥更新操作. 重新启动协议是更新会话密钥最为直接简单方法, 但该方法需要相对较高的通信和计算开销, 并且更重要的因素是无法要求用户在密钥更新过程中处于在线状态. 因此, 在所提出的方案中采用不可区分混淆的技术来解决上述问题. 密钥更新的详细过程描述如下所示.
4.3.1 用户加入
4.3.2 用户退出
为了实现OBU 的高效退出操作, 同时保证未退出OBUs 的安全性, 群组的会话密钥也需要被更新.此外, OBU 的撤销操作应该以一种高效的方式执行, 以适应资源受限和动态的VANETs. 为了实现高效的密钥更新, 本文采用了不可区分混淆和撤销列表相结合的方法. 密钥更新的具体实现如算法1 所示.
Algorithm 1: 密钥更新算法Input: Session key: S, Signature: h(update,ti)S, Identity: ID Output: Updated session key S∗1 发布密钥更新请求(update,ti)2 建立撤销列表Rev_List 3 设计密钥更新算法:4 1) 输入: 会话密钥S, 签名h(update,ti)S, 身份信息ID 5 2) 根据身份信息ID 对应的公钥验证签名, 判断下列等式是否成立e(g,h(update,ti)S) = e(h(update,ti),gS)7 3) 查找ID 是否在撤销列表Rev_List, 如果不在则执行密钥更新操作8 4) 密钥更新生成会话密钥S∗= PRG(S)9 5) 输出: S∗10 混淆密钥更新算法:11 1) 输入: 会话密钥S, 签名h(update,ti)S, 身份信息ID 12 (下述步骤2)、3)、4) 为混淆程序, 只能以黑盒方式访问)13 2) 根据身份信息ID 对应的公钥验证签名, 判断下列等式是否成立14 e(g,h(update,ti)S) = e(h(update,ti),gS)15 3) 查找ID 是否在撤销列表Rev_List, 如果不在则执行密钥更新操作16 4) 密钥更新生成会话密钥S∗= PRG(S)17 5) 输出: S∗18 发布密钥更新混淆程序19 所有用户利用混淆程序进行密钥更新6
在密钥更新阶段, 首先由某个用户发布密钥更新请求, 生成该轮更新的公共参数(update,ti), 其中update 是更新的原因以及该轮更新的标识符, ti是发布更新请求时刻的时间戳. 此外, 该用户根据撤销的用户构建用户撤销列表Rev_List 用于更新的验证阶段. 之后, 可信第三方TA 或者可信用户基于BLS签名算法[23]和伪随机数生成器PRG 构建密钥更新算法, 并用不可区分混淆将密钥更新程序混淆. 在算法1 中混淆程序为混淆密钥更新算法中的2)、3)、4), 表示该部分只能以黑盒的方式进行访问. 最后, 发布该混淆程序, 在获取密钥更新混淆程序之后, 群组内所有用户都可以利用混淆程序生成新的会话密钥. 3.2节给出了针对该更新阶段的威胁模型, 形式化定义了攻击者具备的能力. 之后, 在5.1 节安全性分析中, 将给出相应的安全性证明.
5 安全和性能分析
本节对本文协议进行了安全性和性能分析. 针对所定义的威胁模型进行了相应的安全性分析, 并利用PBC 密码学库进行模拟和对比. 具体分析如下所示.
5.1 安全分析
本协议在密钥协商阶段的安全性基于非对称加密算法RSA 的安全性, RSA 是学术界和工业界公认的安全加密算法. 为了保证算法的安全性需要选取1024 位随机数种子, 之后, 由该随机种子生成长度为128位的公私钥对.
定义 3(敌手优势) 在游戏GS, GC和GU中, 敌手A 的优势分别被定义为advantageGS(k),advantageGC(k) 和advantageGU(k), 由于在每个游戏中敌手都能以至少1/2 的概率猜测正确, 为了能表现出敌手对协议的攻击能力, 即赢得游戏的概率, 敌手的优势被定义如下
定理1如果对于可忽略的ε 有advantageGS<ε 和advantageGC<ε, 则所提出的方案能保证安全的密钥协商.
证明:假设有一个敌手A 以不可忽视的优势赢得了游戏GS, 那么挑战者C 就能够破坏RSA 加密算法Enc() 的语义安全. 由于GS的定义完全遵循加密方案的语义安全的定义. 因此, 如果RSA 加密算法是语义安全的, 那么任何一个敌手都不能以不可忽视的优势赢得游戏GS. 否则, 将与RSA 加密算法Enc() 的语义安全相违背. 另一方面, 游戏GC模拟已知的会话密钥攻击. 由于在所提出的方案中, 子密钥在每一个会话中都是独立选择的, 因此将前一个会话密钥透露给敌手并不影响当前会话的安全性. 即使A可以访问Reveal() 寓言机, 他/她也无法以不可忽视的优势赢得游戏GC.
定理2如果对于可忽略的ε 有advantageGU<ε, 则所提出的方案能保证密钥更新阶段的安全性.
证明:假设有一个敌手A 以不可忽视的优势赢得了游戏GU, 那么挑战者C 就能够完成下列任意类型的攻击: 1) 以不可忽略的优势ε1攻破BLS 签名算法[23]在选择消息攻击下的存在性不可伪造; 2) 以不可忽略的优势ε2破坏不可区分混淆的不可区分性; 3) 以不可忽略的优势ε2预测伪随机数生成器PRG的输出. 如果敌手A 能够以不可忽视的优势ε 赢得了游戏, 意味着挑战者C 利用敌手A 的能力能够成功攻击上述三种安全密码学方案的其中一种. 由于实际上, 挑战者无法对BLS 签名方案[23], 不可区分混淆以及伪随机数生成器PRG 进行任何有效的攻击. 因此, 如果所利用的密码学方案是安全的, 那么任何一个敌手都不能以不可忽视的优势赢得游戏GU. 否则, 将与上述密码学方案的安全相违背.
此外, 本文提出的密钥协商协议还具备以下安全特性.
(1) 会话密钥的前后向安全性: 后向安全性保证了OBU 退出之后后续通信的安全性, 而前向安全性则保护了OBU 加入之前的会话安全性. 所提出协议的密钥更新能够保证协议的前后向安全性.具体来说, 当OBU 加入时, RSU 会更新会话密钥, 从而保证群组通信的前向安全性. 并且, 会话密钥通过混淆程序IOupdate进行更新, 从而能够保证协议的后向安全性. 显然, 由于被撤销的OBU 持有先前的会话密钥, 因此不能保证撤销用户退出后的前向安全性.
(2) 抵抗中间人攻击: 在密钥协商阶段, 子密钥的加密是使用接收者的公钥进行加密, 解密操作只有使用接收者的私钥才能完成. 在密钥更新阶段, 运行不可区分混淆程序需要通过签名的验证, 只有合法的用户才能通过验证. 因此, 本文协议能够抵抗中间人攻击.
(3) 抵抗去同步攻击: 去同步攻击指攻击者阻塞或者截取了用户在密钥更新阶段的信息交互从而阻碍密钥的更新操作, 使得一方完成了更新而另一方无法完成更新. 在本文协议中, 密钥更新阶段的不可区分混淆程序是公开的, 每个合法的群组用户都能够获取到该程序, 之后进行身份认证, 认证通过即可进行密钥更新. 因此本文协议能够抵抗去同步攻击.
5.2 性能分析
本节中我们将所设计的协议与同类型车联网下的密钥协商协议[24,25] 进行模拟实验对比. 模拟实验采用的环境是虚拟机VMware® Workstation 15 Pro 下运行的Ubuntu 12.04.5 LTS 操作系统. 其中,主机的配置为Intel(R) Core(TM) i7-10510U CPU @1.80 GHz 2.3 GHz, 运行内存8.00 GB, 基于X64处理器. 设置的虚拟运行内存为2 G, 硬盘内存为20 G, 处理器个数为1 个. 实验中利用C 语言进行代码编写, 使用的编译器是Ubuntu 系统自带的gcc 编译器. 在代码编写过程中主要使用Pairing-Based Cryptography(PBC) Library 版本号为pbc-0.5.14.
5.2.1 密钥协商阶段对比试验分析
钥协商阶段, 本文提出的协议基于RSA 算法进行加密传输每个OBU 的子会话密钥, 协议[24,25] 则采用传统的Diffie-Hellman[26]进行密钥协商. 图5 展示了本文协议与协议[24,25]在密钥协商阶段每个用户所需的计算时间开销对比. 由图5 可以看出本文协议在密钥协商阶段所需的计算开销低于协议[24,25].
图5 密钥协商阶段对比试验分析Figure 5 Comparison of key agreement phase
5.2.2 密钥更新阶段对比实验分析
密钥更新阶段, 本文协议基于BLS 签名和不可区分混淆进行密钥更新, 而协议[24,25] 则需要再次运行协议才能实现密钥更新. 图6 展示了本文协议与协议[24,25] 在密钥更新阶段每个用户所需的计算时间开销对比. 由图6 可以看出本文协议在密钥更新阶段随着用户增加只需要常数级计算开销, 而协议[24,25]所需的计算开销高于本文协议并且随着用户数量的增加而增加.
6 总结
针对VANET 资源受限环境下的安全高效密钥协商问题, 本文提出了一种基于SBIBD 结构的VANETs 密钥协商协议. 特别地, 基于移位寄存器, 提出了区组设计结构的构建方案, 并且为了支持VANETs 环境可能面临的大规模数据处理情况, 基于MapReduce 分布式计算模型给出了SBIBD 结构的具体构建方案, 从而支持高效的密钥生成. 此外, 利用不可区分混淆技术, 本文设计了高效的密钥更新操作, 实现了动态VANETs 的高效密钥更新. 在安全性方面, 本文对密钥生成和密钥更新阶段的威胁模型进行了详细地定义并给出了对应的安全性分析. 在性能分析方面, 本文基于PBC 库对本文协议进行模拟并于相关工作进行对比研究. 安全性分析和性能分析表明所提出的方案能够提供较高的安全性和运行效率,适用于资源受限的VANET 环境.
图6 密钥更新阶段对比试验分析Figure 6 Comparison of key update phase