车联网可信状态数据证明方法与流程

文档序号:30969982发布日期:2022-08-02 18:39阅读:262来源:国知局
车联网可信状态数据证明方法与流程

1.本发明涉及车联网技术领域,特别涉及一种车联网可信状态数据证明方法。


背景技术:

2.随着交通工具的现代化和汽车数量的急剧增加,车辆事故也不断增加。车辆事故发生后,需要采集车辆行驶状态数据等,根据状态数据来判断车辆事故发生的真正原因,因此,状态数据的真实性就显得尤为重要。
3.现有技术中,公开号cn111245966 a“一种基于区块链架构的车联网信息共享方法”提出了车联网信息共享激励方法,激励汽车主动共享信息,车辆用户可以被动接收其余车辆的信息,但无法保证接受信息的可靠性、真实性,共享的信息依旧存在被篡改、被攻击的可能性。公开号cn111464980 a“一种车联网环境下基于区块链的电子取证装置及取证方法”提出了车辆信息由路测单元rsu采集,交管部门和rsu设备为共识节点,保存数据并写入区块链中,该设计模型将区块数据的广播和共识功能放入rsu设备中,严重增加了rsu设备的工作负载,当大规模安装rsu设备后,会面临rsu设备的数据处理速度慢、网络吞吐量不足等严峻问题。


技术实现要素:

4.本发明提供了一种车联网可信状态数据证明方法,其目的是为了使可信状态数据具有真实性、不可篡改性等特点,在现有车载单元obu硬件能力下,该证明方法能够满足大规模的实际应用。
5.为了达到上述目的,本发明提供了一种车联网可信状态数据证明方法,包括:步骤1,采集车辆状态数据,对所述车辆状态数据签名后打包发送至车辆企业的数据处理平台;步骤2,所述数据处理平台验证所述车辆状态数据是否符合预设条件,将符合预设条件的数据构建merkle tree,并保存所述merkle tree中所有的哈希运算路径,将包含merkle tree根哈希值和签名信息的数据包广播给所有的共识节点;步骤3,所述共识节点根据所述数据包构建相应的merkle tree结构,并使用merkle tree结构中所有的节点数据生成新的区块,利用共识算法将区块写入区块链中;步骤4,在所述区块链中根据根哈希值的摘要值,查询其是否在相应区块的merkle tree叶子结点参数中,若存在,证明数据可信。
6.其中,所述步骤1包括:每辆车都有对应的用于数字签名的密钥对;当车辆正常驾驶时,车载单元obu定期采集车辆状态数据;当车辆行驶状态异常时,车载单元obu立即采集车辆状态数据;其中,表示车辆状态数据,用私钥对状态数据的摘要值进行签名,得到签名数据;
将状态数据、签名数据、车辆唯一标识和时间戳打包成车辆数据,发送至车辆企业的数据处理平台。
7.其中,所述步骤2包括:车辆企业持有用于对企业数据包进行签名的密钥对;接收到车辆数据后,用车辆的签名公钥计算验签数据,计算车辆数据包中摘要值,比较和是否一致,若一致,则说明数据包来源可信,未被篡改过;根据时间周期,将本时间段内接收到的所有车辆数据构建成一个merkle tree结构,车辆状态数据的摘要值是merkle tree的叶子节点,所有叶子节点两两相互哈希运算得到摘要值是子节点,以此类推得到merkle tree的根哈希值,merkle tree的构建过程为运算路径,车辆企业将保存merkle tree中所有的哈希运算路径;使用私钥对根哈希值进行签名,得到签名数据,将签名数据、根哈希值、车辆企业唯一标识和时间戳打包为数据包广播给所有的共识节点。
8.其中,所述步骤3包括:接收到企业数据,对所述企业数据进行验签操作,使用企业的签名公钥计算验签数据,判断验签数据 和数据包中是否一致,若一致,则说明车辆企业数据包可信,未被篡改过;根据时间周期,将本时间段内接收到的所有企业数据包,从中取出所有的根哈希值,对每一个根哈希值取摘要值来构建一个merkle tree结构,摘要值作为merkle tree结构的叶子节点,所有叶子节点两两相互哈希运算得到摘要值是子节点,得到一个完整的merkle tree结构,使用merkle tree结构中所有的哈希值生成区块;块头包含常见的时间戳信息、区块体摘要信息、区块编号、父区块的摘要值信息,区块体由merkle tree结构中所有的哈希数据构成;共识节点遵循共识算法进行投票,选取leader节点将区块数据写入区块链中,其余节点同步数据。
9.其中,还包括:车辆发生事故后,车辆企业出示车辆行驶的状态数据和其签名数据。
10.其中,具体包括:对签名数据验签,比较验签数据和状态数据的摘要值是否一致,若一致,则说明数据来源可靠,未被篡改;验签成功后,计算状态数据所属车辆数据包的摘要值,查询摘要值对应的merkle tree运算路径;车辆数据包的摘要值是merkle tree的叶子节点,其运算路径是叶子节点两两哈希得到子节点哈希值,子节点两两哈希得到上一层子节点哈希值,类推得到merkle tree的根哈希值;
当由车辆数据包的摘要值作为叶子节点,向上查询对应子节点的哈希值,最终查询到车辆数据包merkle tree中的根哈希值;计算的摘要值,查询该摘要值是否在区块链中作为某一个区块的merkle tree叶子节点存在,倘若能找到指定区块且摘要值能查询到merkle tree叶子节点的运算路径,说明车辆企业提供的车辆数据是可信的,状态数据具有真实性。
11.本发明的上述方案有如下的有益效果:本发明的车联网可信状态数据证明方法将联盟链技术用于车联网中车辆状态数据的证明,具有信任力的国家机构或具有检测资质的第三方企业担任共识节点的身份,所有的共识节点通过投票的方式选出leader节点,由leader节点将区块数据提交到区块链中,其余节点同步数据,大大提高了共识效率,保证数据的时效性,同时为数据提供了一定的公信力,解决了当前车辆事故中车辆状态数据的不可信的问题。将车辆状态数据的merkle tree根哈希值写入区块链中,用区块链技术保障了车辆可信状态数据的完整性和不可篡改性,解决了现如今车辆事故中车辆状态数据的易篡改性。提供了车辆状态数据的验证过程,在不泄露其余车辆隐私的情况下,找到merkle tree的根哈希值,最终查询到区块链中具体区块信息,验证了车辆状态数据的真实性、可靠性。车辆车载单元obu只采集车辆状态数据,不充当共识节点,避开了obu设备运算能力不足、网络吞吐量低等硬件缺点,更适用于实际场景的大规模使用。
12.本发明的其它有益效果将在随后的具体实施方式部分予以详细说明。
附图说明
13.图1是本发明的车联网可信状态数据证明方法的整体架构图。
14.图2是本发明的车辆终端和车辆企业端之间的信息流程图。
15.图3是本发明的车辆企业端和可信机构节点之间的信息流程图。
16.图4是本发明的可信机构节点接收车辆企业数据的共识过程流程图。
17.图5是本发明的车辆可信状态数据验证的流程图。
18.图6是本发明的merkle tree数据存储结构。
具体实施方式
19.为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
20.在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
21.在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是锁定连接,也可以是可拆卸连接,或一体地连接;可
以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
22.此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
23.如图1所示,本发明的实施例提供了一种车联网可信状态数据证明方法,设计架构主要分四层:第一层是生产数据基础层,主要涉及车载单元obu,负责车辆行驶状态的采集,并将所采集的状态数据签名后发送给生产车辆的厂家,第二层是数据转发层,充当角色的是各汽车企业,车企在接收到车辆的状态数据时,对数据进行确认性校验,将车辆数据包的哈希值按照merkle tree的结构保存,得到merkle tree的根哈希值,企业将保存merkle tree所有的运算路径,随后将该值封装进车企数据包广播给共识节点,第三层是数据共识层,由具有可信力的国家机构或具有车辆事故鉴定能的企业组成,节点对企业数据进行校验,校验成功后,计算数据包中根哈希值参数的摘要值来构建merkle tree结构,用merkle tree结构中所有的哈希数据生成新的区块,所有节点遵循raft共识算法将区块写入区块链中,第四层是状态数据验证层,企业提供车辆状态数据和签名信息,找到状态数据对应的merkle tree的运算路径,定位merkle tree根哈希值的摘要值在区块链中所属区块的merkle tree叶子节点,并查询到该摘要值对应叶子节点的merkle tree运算路径,最终即可证明车辆状态数据是可信的。
24.本发明使用超级账本hyperledger fabric来搭建联盟链,选用raft作为共识算法。
25.如图2所示,车辆状态分正常和非正常两种,正常状态时,每一个时间周期提交一次状态数据,非正常状态时,立即提交当前车辆的状态数据,例如刹车失灵等。车辆包含一对公私钥,用于对采集的状态数据进行签名操作。
26.车辆状态正常时,时间周期内车载单元obu将采集车辆状态数据,时间周期的大小可自行选定,本案例采纳6分钟作为一个间隔;车辆状态非正常时,车载单元obu将立即采集车辆状态数据。使用私钥对状态数据进行签名,得到签名数据。我们用代表为车辆唯一标识,通常用车牌号表示;用代表当前状态数据时间戳,时间戳由时间服务器提供。因此,车辆数据包可表示为,将其发送至车辆所属企业。
27.如图3所示,车辆企业在接收到车辆发过来数据后,先验签数据的真伪性。使用车辆的公钥计算验签数据,随后计算数据包中状态数据的摘要值,比较和是否一致,一致说明数据是真实的,未被篡改过。
28.车辆企业将时间周期内接收到的所有车辆数据构建merkle tree的结构进行存储如图6所示,采用间隔时间2分钟。车辆企业将2分钟内的所有车辆数据摘要值作为merkle tree结构的叶子节点,摘要值和数据构成一对一的映射表;叶子节点两两向上哈希,得到新的“子哈希”,如图6中节点和节点运算得到;如果
是叶子节点奇数,最后一个叶子节点对自身直接做运算操作,如图6中运算得到;不同的子哈希向上运算,得到新的“子哈希”,以此类推,最终得到该merkle tree结构中的根哈希值,我们将merkle tree的构建过程称为“运算路径”,如图6中车辆数据的运算路径可表示为的运算路径可表示为。merkle tree映射表数据和运算路径由车辆企业自行保存。
29.车辆企业在发送数据包之前需要对根哈希值做签名操作,使用企业自身的私钥来签名,得到签名数据,将签名数据、根哈希值、企业唯一标识和时间戳构成数据包广播给所有的共识节点。
30.如图4所示为共识层,共识节点通常是具有交通事故鉴定资质的第三方单位或官方机构,能为状态数据提供一定的公信力,共识节点将时间周期内接收的所有企业数据经过一定条件生成一个区块,这里我们将时间周期定位5分钟。
31.时间周期内,到当共识层节点接收到来自车辆企业的广播数据时,节点首先使用车辆企业的公钥对签名数据进行验签操作,验签数据为,比较验签数据和企业数据包中根哈希值参数是否一致,相同则说明数据包未被篡改。
32.时间周期内,取出所有签名数据验证成功的企业数据包,从中取出每一个根哈希值参数,计算每一个参数的摘要值,使用这些摘要值构建一个merkle tree结构,摘要值作为结构的叶子节点,叶子节点两两哈希得到子节点数据,以此类推,最终得到一个完整的merkle tree结构,叶子结点到根哈希值的运算过程称为叶子节点的运算路径。
33.构建完merkle tree结构后,所有的节点依据raft共识算法,首先选举其中一个节点担任leader角色,剩余节点担任follower角色,leader节点具有完全的权利管理记账,leader节点在接收到车辆企业端的记账请求后,生成新区块,区块由区块头和区块体构成。区块头一般包含父区块的摘要值、区块体数据的摘要值、当前区块生成的时间戳、区块编号等信息,区块体参数由merkle tree结构中所有的哈希数据组成。leader节点将区块写入区块链中,随后,担任follower角色的节点同步新的区块链。如果leader节点失效或和其他节点失去联系,所有的共识节点会重新投票选举,得到大于等于的票数的节点便能充当leader角色。
34.如图5所示,当车辆发生事故后,车辆企业出示车辆行驶的状态数据,此时需要验证该状态数据的真实性。车辆企业出示车辆行驶状态数据,该状态数据在车辆数据包中作为一个参数存在。使用该数据包中签名数据参数做验签操作,验证车辆状态数据在产生的时候是否被篡改。验签数据为,比较该值和状态数据的摘要值是否相同,数值相同则证明车辆状态数据的来源可信,未被篡改。
35.查询车辆数据包的摘要值对应的merkle tree运算路径,找到对应merkle tree结构的根哈希值。数据包的摘要值作为merkle tree结构中的叶子节点,车辆企业有保存所有merkle tree的运算路径,找到该摘要值对应的叶子节点的运算路径,例如,即可找到该merkle tree结构的根哈希值。
36.根据已找到的根哈希值,计算其摘要数据,由摘要数据查询区块链数据,找是否有区块数据的merkle tree叶子节点参数包含该摘要数据,如果能查询详细区块信息且摘要数据有符合merkle tree的运算路径,则证明企业提供的车辆状态数据是可信的、未被车辆企业篡改,具有真实性。
37.本发明的车联网可信状态数据证明方法将联盟链技术用于车联网中车辆状态数据的证明,具有信任力的国家机构或具有检测资质的第三方企业担任共识节点的身份,所有的共识节点通过投票的方式选出leader节点,由leader节点将区块数据提交到区块链中,其余节点同步数据,大大提高了共识效率,保证数据的时效性,同时为数据提供了一定的公信力,解决了当前车辆事故中车辆状态数据的不可信的问题。将车辆状态数据的merkle tree根哈希值写入区块链中,用区块链技术保障了车辆可信状态数据的完整性和不可篡改性,解决了现如今车辆事故中车辆状态数据的易篡改性。提供了车辆状态数据的验证过程,在不泄露其余车辆隐私的情况下,找到merkle tree的根哈希值,最终查询到区块链中具体区块信息,验证了车辆状态数据的真实性、可靠性。车辆车载单元obu只采集车辆状态数据,不充当共识节点,避开了obu设备运算能力不足、网络吞吐量低等硬件缺点,更适用于实际场景的大规模使用。
38.以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1