首页 / 专利库 / 电脑编程 / 量子计算 / 基于身份秘密共享和联盟链的抗量子计算车联网方法及系统

基于身份秘密共享和联盟链的抗量子计算车联网方法及系统

阅读:856发布:2020-05-15

专利汇可以提供基于身份秘密共享和联盟链的抗量子计算车联网方法及系统专利检索,专利查询,专利分析的服务。并且本 申请 涉及一种基于身份秘密共享和联盟链的抗 量子计算 车联网方法及系统,在相互通信的车联网成员与联盟链成员之间,所述车联网成员多个OBU以及RSU,所述联盟链成员包括客户端成员以及服务端成员,各方均配置有密钥卡,所有密钥卡均存储有己方私钥、 服务器 公钥以及公钥池,所述服务端密钥卡中的公钥池存储有与所有联盟链成员一一对应的公钥单元,所述客户端密钥卡中的公钥池存储有己方的公钥单元以及与所述服务端成员一一对应的公钥单元,所述公钥单元中存储有用于获取相关公钥的公钥随机数,所述RSU可为客户端成员,用本方法能够提高对用户ID信息即用户隐私的保护。,下面是基于身份秘密共享和联盟链的抗量子计算车联网方法及系统专利的具体信息内容。

1.基于身份秘密共享和联盟链的抗量子计算车联网方法,其特征在于,实施在相互通信的车联网成员与联盟链成员之间,所述车联网成员包括多个OBU以及RSU,所述联盟链成员包括客户端成员以及服务端成员,各方均配置有密钥卡,所有密钥卡均存储有己方私钥、服务器公钥以及公钥池,所述服务端密钥卡中的公钥池存储有与所有联盟链成员一一对应的公钥单元,所述客户端密钥卡中的公钥池存储有己方的公钥单元以及与所述服务端成员一一对应的公钥单元,所述公钥单元中存储有用于获取相关公钥的公钥随机数,所述RSU可为客户端成员;
所述抗量子计算车联网方法包括:
其中一个RSU为User,基于联盟链和身份秘密共享对所述OBU进行车辆注册,并与服务端成员对所述OBU的身份标识进行秘密共享。
2.根据权利要求1所述的抗量子计算车联网方法,其特征在于,联盟链成员中包括提供相应服务的User、Endorser、Orderer及Committer,所述抗量子计算车联网方法具体包括:
User向Endorser提出交易;
Endorser收到User提出的交易并相应执行,再向User发送交易应答;
User接收交易应答后,制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后进行相应操作,并将生成相应的交易通知发送给User;
User接收交易通知后相应验证。
3.根据权利要求2所述的抗量子计算车联网方法,其特征在于,所述其中一个RSU作为RSU Client基于联盟链和身份秘密共享对所述OBU进行车辆注册,并与服务端成员对所述OBU的身份标识进行秘密共享具体包括:
多个所述Endorser中分别存储有服务器私钥基于秘密共享方式生成的服务器私钥分量;
User向Endorser提出交易,根据所述OBU的身份标识进行秘密共享,得到多组身份标识分量,根据多组所述身份标识分量以及多个Endorser的身份标识生成分量信息,根据其中一组身份标识分量以及OBU公钥生成身份信息,将所述分量信息以及身份信息写入交易信息中;
多个Endorser收到User提出的交易,将所述身份信息进行存储,并根据所述OBU公钥以及服务器私钥分量生成多个OBU私钥分量,并将所述OBU私钥分量以及分量信息写入交易应答中,再向User发送交易应答;
User接收交易应答后,从通过验证的多个交易应答中获取OBU私钥分量,并制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后进行相应操作,并将生成相应的交易通知发送给User;
User接收交易通知后,根据多个所述OBU私钥分量基于秘密共享的方式得到OBU私钥,并向OBU颁发密钥卡以完成车辆注册。
4.根据权利要求3所述的抗量子计算车联网方法,其特征在于,所述User颁发的OBU密钥卡中包括:OBU身份标识、公钥、私钥以及分量信息,其中公钥包括OBU公钥和服务器公钥。
5.根据权利要求4所述的抗量子计算车联网方法,其特征在于,所述抗量子计算车联网方法还包括基于联盟链和身份秘密共享对OBU进行匿名认证,所述匿名认证包括:
在同一个RSU覆盖范围内具有用于通信的群密钥;
所述OBU向所在覆盖范围内的RSU提出认证,所述OBU根据己方身份标识分量、公钥以及储存身份标识分量的Endorser身份标识进行加密计算,得到第一密文,根据所述第一密文以及OBU身份标识进行签名,得到第二密文,并将所述第一密文以及第二密文写入认证内容中;
所述RSU为User,所述User向Endorser提出交易,生成多个化名的组合,并根据多个所述化名组合以及群密钥进行计算,并对结果进行加密,得到第三密文,并将所述第三密文写入所述交易中;
多个Endorser收到User提出的交易,经相应解密后,根据所述化名组合以及群密钥进行计算,得到化名的公钥,并根据所述化名公钥基于秘密共享理论和服务器私钥分量生成多个化名私钥分量,并将所述化名私钥分量以及身份标识分量进行组合生成化名信息,并对化名信息进行加密得到第四密文,将所述第四密文写入交易应答中,再向User发送交易应答;
User接收交易应答后,对所述第四密文进行相应解密获得化名信息,并制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后,根据读出操作集以及写入操作集进行相应执行,并将生成相应的交易通知发送给User以及与本交易相关的Endorser;
User接收交易通知后相应验证后,获得化名私钥;
多个Endorser接收交易通知相应进行验收后,清除存储在本地的所述OBU的身份信息。
6.根据权利要求5所述的抗量子计算车联网方法,其特征在于,所述OBU匿名认证通过后,还包括对所述OBU进行身份标识更新,所述身份标识更新包括:
User向Endorser提出交易,取新的部分身份标识,生成所述OBU的新身份标识,根据所述新身份标识进行秘密共享,得到多组新身份标识分量,根据多组所述新身份标识分量以及多个Endorser的身份标识生成新分量信息,根据所述根据新身份标识生成OBU的新公钥,根据其中一组身份标识分量以及新公钥生成新身份信息,将所述新分量信息以及新身份信息写入交易信息中;
多个Endorser收到User提出的交易,将所述新身份信息进行存储,并根据所述新公钥以及服务器私钥分量生成多个OBU的新私钥分量,并将所述新私钥分量以及新分量信息写入交易应答中,再向User发送交易应答;
User接收交易应答后,从通过验证的多个交易应答中获取新私钥分量,并制作背书并将背书发送给Orderer;
Orderer收到背书后,经排序再发送给Committer;
Committer收到背书后进行相应操作,并将生成相应的交易通知发送给User;
User接收交易通知后,根据多个所述新私钥分量基于秘密共享的方式得到OBU的新私钥,并将所述新部分身份标识、新私钥、新分量信息、群密钥、化名以及化名私钥进行加密,得到更新信息,并根据所述更新信息发送至OBU。
7.根据权利要求6所述的抗量子计算车联网方法,其特征在于,所述OBU接收到所述更新信息后,进行相应解密,根据所述新部分身份标识、新私钥、新分量信息进行相应更新,并利用所述群密钥存储、化名以及化名私钥在所述RSU覆盖范围内进行通信。
8.根据权利要求2所述的抗量子计算车联网方法,其特征在于,当联盟链成员进行交互的过程中,消息发送方均利用各自的私钥进行签名,接收方均根据消息发送方的公钥进行相应解密。
9.基于身份秘密共享和联盟链的抗量子计算车联网系统,其特征在于,包括相互通信的相互通信的车联网成员与联盟链成员之间,所述车联网成员多个OBU以及RSU,所述联盟链成员包括客户端成员以及服务端成员,各方均配置有密钥卡,所有密钥卡均存储有己方私钥、服务器公钥以及公钥池,所述服务端密钥卡中的公钥池存储有与所有联盟链成员一一对应的公钥单元,所述客户端密钥卡中的公钥池存储有己方的公钥单元以及与所述服务端成员一一对应的公钥单元,所述公钥单元中存储有用于获取相关公钥的公钥随机数,所述RSU可为客户端成员;
所述联盟链成员包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现权要要求1-8所述的基于身份秘密共享和联盟链的抗量子计算车联网方法。

说明书全文

基于身份秘密共享和联盟链的抗量子计算车联网方法及系统

技术领域

[0001] 本申请涉及安全通信技术领域,特别是涉及一种基于身份秘密共享和联盟链的抗量子计算车联网方法及系统。

背景技术

[0002] 链是一种全新的分布式基础架构与计算范式,利用有序的链式数据结构存储数据,利用共识算法更新数据,利用密码学技术保障数据安全。在基于区块链的交易中,确保交易的数据安全和客户的隐私是区块链能够进一步发展的必要条件。为此,密码学技术尤其是公钥密钥学在区块链中得到了广泛的应用。而联盟链是区块链的一个分支,所以它本身也是一个分布式的,去中心化的公共数据库,跟其他链的区别就是它是针对特定群体的成员和有限的第三方,其内部指定多个预选节点为记账人,其共识过程受到预选节点控制的区块链。
[0003] 车载自组织网络(VANET,vehicular ad hoc network)是一种利用无线局域网技术,以车辆和路边单元作为网络节点,为车与车(V2V)、车与路边单元(V2R)之间提供通信服务而创建的移动网络。VANET是无线Mesh网络的一种应用,无线Mesh网络融合了无线局域网和自组织网络(ad hoc)的优势,是一种大容量、高速率、覆盖范围广的网络。同时无线Mesh网络的分层拓扑结构能够提供可靠传输,具备可扩展性好、前期投资低等特性,是无线宽带接入的理想解决方案。
[0004] 正如大多数人所了解的,量子计算机在密码破解上有着巨大潜。当今主流的非对称(公钥)加密算法,如RSA加密算法,大多数都是基于大整数的因式分解或者有限域上的离散对数的计算这两个数学难题。他们的破解难度也就依赖于解决这些问题的效率。传统计算机上,要求解这两个数学难题,花费时间为指数时间(即破解时间随着公钥长度的增长以指数级增长),这在实际应用中是无法接受的。而为量子计算机量身定做的秀尔算法可以在多项式时间内(即破解时间随着公钥长度的增长以k次方的速度增长,其中k为与公钥长度无关的常数)进行整数因式分解或者离散对数计算,从而为RSA、离散对数加密算法的破解提供可能。
[0005] 现有技术存在的问题:
[0006] 1.OBU的ID如果公开,可能会造成车主信息泄露。如果ID在多个位置被记录,则可以实现ID追踪,某些应用场景下属于严重的信息泄露。
[0007] 2.给OBU颁发对称密钥,由于对称密钥无法进行可靠的数字签名,因此对身份识别不利。
[0008] 3.给OBU颁发非对称密钥对,并对私钥进行数字签名,该方式由于检验数字签名时公钥需要公开,不能抵抗量子计算。
[0009] 4.给OBU颁发非对称密钥的私钥,并将公钥存在服务器,则可以抵抗量子计算,但由于服务器处的公钥由ID或类似ID的公钥指针随机数所识别,因此ID或公钥指针随机数必须公开,造成用户信息泄露。
[0010] 5.整个车联网系统最重要的单元是TA,万一其存储信息被盗取,或者被DOS攻击,可能造成严重后果。发明内容
[0011] 基于此,有必要针对上述技术问题,提供一种至少解决其中一个技术问题的基于身份秘密共享和联盟链的抗量子计算车联网方法及系统。
[0012] 一种基于身份秘密共享和联盟链的抗量子计算车联网方法,实施在相互通信的车联网成员与联盟链成员之间,所述车联网成员多个OBU以及RSU,所述联盟链成员包括客户端成员以及服务端成员,各方均配置有密钥卡,所有密钥卡均存储有己方私钥、服务器公钥以及公钥池,所述服务端密钥卡中的公钥池存储有与所有联盟链成员一一对应的公钥单元,所述客户端密钥卡中的公钥池存储有己方的公钥单元以及与所述服务端成员一一对应的公钥单元,所述公钥单元中存储有用于获取相关公钥的公钥随机数,所述RSU可为客户端成员;
[0013] 所述抗量子计算车联网方法包括:
[0014] 其中一个RSU为User,基于联盟链和身份秘密共享对所述OBU进行车辆注册,并与服务端成员对所述OBU的身份标识进行秘密共享。
[0015] 可选的,联盟链成员中包括提供相应服务的User、Endorser、Orderer及Committer,所述抗量子计算车联网方法具体包括:
[0016] User向Endorser提出交易;
[0017] Endorser收到User提出的交易并相应执行,再向User发送交易应答;
[0018] User接收交易应答后,制作背书并将背书发送给Orderer;
[0019] Orderer收到背书后,经排序再发送给Committer;
[0020] Committer收到背书后进行相应操作,并将生成相应的交易通知发送给User;
[0021] User接收交易通知后相应验证。
[0022] 可选的,所述其中一个RSU作为RSU Client基于联盟链和身份秘密共享对所述OBU进行车辆注册,并与服务端成员对所述OBU的身份标识进行秘密共享具体包括:
[0023] 多个所述Endorser中分别存储有服务器私钥基于秘密共享方式生成服务器私钥分量;
[0024] User向Endorser提出交易,根据所述OBU的身份标识进行秘密共享,得到多组身份标识分量,根据多组所述身份标识分量以及多个Endorser的身份标识生成分量信息,根据其中一组身份标识分量以及OBU公钥生成身份信息,将所述分量信息以及身份信息写入交易信息中;
[0025] 多个Endorser收到User提出的交易,将所述身份信息进行存储,并根据所述OBU公钥以及服务器私钥分量生成多个OBU私钥分量,并将所述OBU私钥分量以及分量信息写入交易应答中,再向User发送交易应答;
[0026] User接收交易应答后,从通过验证的多个交易应答中获取OBU私钥分量,并制作背书并将背书发送给Orderer;
[0027] Orderer收到背书后,经排序再发送给Committer;
[0028] Committer收到背书后进行相应操作,并将生成相应的交易通知发送给User;
[0029] User接收交易通知后,根据多个所述OBU私钥分量基于秘密共享的方式得到OBU私钥,并向OBU颁发密钥卡以完成车辆注册。
[0030] 可选的,所述User颁发的OBU密钥卡中包括:OBU身份标识、公钥、私钥以及分量信息,其中公钥包括OBU公钥和服务器公钥。
[0031] 可选的,所述抗量子计算车联网方法还包括基于联盟链和身份秘密共享对OBU进行匿名认证,所述匿名认证包括:
[0032] 在同一个RSU覆盖范围内具有用于通信的群密钥;
[0033] 所述OBU向所在覆盖范围内的RSU提出认证,所述OBU根据己方身份标识分量、公钥以及储存身份标识分量的Endorser身份标识进行加密计算,得到第一密文,根据所述第一密文以及OBU身份标识进行签名,得到第二密文,并将所述第一密文以及第二密文写入认证内容中;
[0034] 所述RSU为User,所述User向Endorser提出交易,生成多个化名的组合,并根据多个所述化名组合以及群密钥进行计算,并对结果进行加密,得到第三密文,并将所述第三密文写入所述交易中;
[0035] 多个Endorser收到User提出的交易,经相应解密后,根据所述化名组合以及群密钥进行计算,得到化名的公钥,并根据所述化名公钥基于秘密共享理论和服务器私钥分量生成多个化名私钥分量,并将所述化名私钥分量以及身份标识分量进行组合生成化名信息,并对化名信息进行加密得到第四密文,将所述第四密文写入交易应答中,再向User发送交易应答;
[0036] User接收交易应答后,对所述第四密文进行相应解密获得化名信息,并制作背书并将背书发送给Orderer;
[0037] Orderer收到背书后,经排序再发送给Committer;
[0038] Committer收到背书后,根据读出操作集以及写入操作集进行相应执行,并将生成相应的交易通知发送给User以及与本交易相关的Endorser;
[0039] User接收交易通知后相应验证后,获得化名私钥;
[0040] 多个Endorser接收交易通知相应进行验收后,清除存储在本地的所述OBU的身份信息。
[0041] 可选的,所述OBU匿名认证通过后,还包括对所述OBU进行身份标识更新,所述身份标识更新包括:
[0042] User向Endorser提出交易,取新的部分身份标识,生成所述OBU的新身份标识,根据所述新身份标识进行秘密共享,得到多组新身份标识分量,根据多组所述新身份标识分量以及多个Endorser的身份标识生成新分量信息,根据所述根据新身份标识生成OBU的新公钥,根据其中一组身份标识分量以及新公钥生成新身份信息,将所述新分量信息以及新身份信息写入交易信息中;
[0043] 多个Endorser收到User提出的交易,将所述新身份信息进行存储,并根据所述新公钥以及服务器私钥分量生成多个OBU的新私钥分量,并将所述新私钥分量以及新分量信息写入交易应答中,再向User发送交易应答;
[0044] User接收交易应答后,从通过验证的多个交易应答中获取新私钥分量,并制作背书并将背书发送给Orderer;
[0045] Orderer收到背书后,经排序再发送给Committer;
[0046] Committer收到背书后进行相应操作,并将生成相应的交易通知发送给User;
[0047] User接收交易通知后,根据多个所述新私钥分量基于秘密共享的方式得到OBU的新私钥,并将所述新身份标识、新公私钥、新分量信息、群密钥、化名以及化名私钥进行加密,得到更新信息,并根据所述更新信息发送至OBU。
[0048] 可选的,所述OBU接收到所述更新信息后,进行相应解密,根据所述新部分身份标识、新私钥、新分量信息进行相应更新,并利用所述群密钥存储、化名以及化名私钥在所述RSU覆盖范围内进行通信。
[0049] 可选的,当联盟链成员进行交互的过程中,消息发送方均利用各自的私钥进行签名,接收方均根据消息发送方的公钥进行相应解密。
[0050] 本发明还提供了一种基于身份秘密共享和联盟链的抗量子计算车联网系统,包括相互通信的相互通信的车联网成员与联盟链成员之间,所述车联网成员多个OBU以及RSU,所述联盟链成员包括客户端成员以及服务端成员,各方均配置有密钥卡,所有密钥卡均存储有己方私钥、服务器公钥以及公钥池,所述服务端密钥卡中的公钥池存储有与所有联盟链成员一一对应的公钥单元,所述客户端密钥卡中的公钥池存储有己方的公钥单元以及与所述服务端成员一一对应的公钥单元,所述公钥单元中存储有用于获取相关公钥的公钥随机数,所述RSU可为客户端成员;
[0051] 所述联盟链成员包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述基于身份秘密共享和联盟链的抗量子计算车联网方法。
[0052] 上述基于身份秘密共享和联盟链的抗量子计算车联网方法及系统,通过将区块链架构用于车联网,去掉了容易受到拒绝服务攻击并丧失服务能力的中心化服务器TA,从而使得车联网的可用性和抗攻击性能得到提高;由于去掉了集中掌握用户ID信息的TA,用户ID使用秘密共享的方式存放于区块链中,没有一个RSU能够单独掌控用户的ID信息,因此降低了TA被妥协后ID信息被暴露的险,大大提高了对用户ID信息即用户隐私的保护。附图说明
[0053] 图1为一个实施例中抗量子计算车联网系统的结构示意图;
[0054] 图2为一个实施例中服务端密钥卡的内部结构图;
[0055] 图3为一个实施例中客户端密钥卡的内部结构图。

具体实施方式

[0056] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0057] 为了更好地描述和说明本申请的实施例,可参考一幅或多幅附图,但用于描述附图的附加细节或示例不应当被认为是对本申请的发明创造、目前所描述的实施例或优选方式中任何一者的范围的限制。
[0058] 应该理解的是,除非本文中有明确的说明,各步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0059] 在中一个实施例中,提供了一种基于身份秘密共享和联盟链的抗量子计算车联网方法,实施在相互通信的车联网成员与联盟链成员之间,所述车联网成员多个OBU以及RSU,所述联盟链成员包括客户端成员以及服务端成员,各方均配置有密钥卡,所有密钥卡均存储有己方私钥、服务器公钥以及公钥池,所述服务端密钥卡中的公钥池存储有与所有联盟链成员一一对应的公钥单元,所述客户端密钥卡中的公钥池存储有己方的公钥单元以及与所述服务端成员一一对应的公钥单元,所述公钥单元中存储有用于获取相关公钥的公钥随机数,所述RSU可为客户端成员。
[0060] 如图1所示,联盟链由区块链服务和区块链客户端组成,其中的每一个成员都配备有密钥卡。车联网系统包括多个OBU和RSU,没有TA。其中部分RSU具有联盟链服务功能,部分RSU具有联盟链客户端功能,部分RSU同时具有服务器和客户端的功能。所有的RSU都可以作为认证客户端,即具有对车辆认证请求提交联盟链的功能,称为。其中,部分RSU同时还是注册客户端,即具有车辆注册及密钥卡颁发功能,称为REG Client。
[0061] 如图2和图3所示,本实施例中联盟链服务端和客户端的密钥卡中包含服务器公钥PKS、各自的私钥和公钥随机数池(也称为公钥池),服务端公钥池中有所有联盟链服务端和客户端对应的公钥单元,客户端公钥池中有客户端自己的公钥单元和所有联盟链服务端对应的公钥单元。对于所有的密钥卡,可以根据ID在密钥卡中找到对应的公钥单元从而得到R,并且公钥随机数R与该用户公钥PK的对应关系如下:PK=H(ID||R)。本实施例中的车辆也拥有密钥卡,密钥卡中保存有车辆的身份、公钥和私钥等,具体见后文所述,但没有密钥池。所有联盟链服务端和客户端密钥卡均为某组织颁发,车辆密钥卡由车辆注册时的REG Client所颁发。
[0062] 在本实施例中,基于的密码学是基于身份的公钥密码学。服务器的私钥为SKS,服务器的公钥为PKS=SKS*P;客户端的公钥为PK=H(ID||R),其中ID为客户端对应的ID值,R为客户端对应的公钥随机数,H为哈希函数,客户端的私钥为SK=SKS*PK。
[0063] 本发明中SKS是通过秘密共享进行分布式存储的,由其中的N个Endorser组成基于ID密码学的分布式密钥生成服务。下面简单介绍秘密共享的原理和流程。
[0064] 从素数阶q的有限域GF(q)中随机选取N个不同的非零元素x1,x2,…,xN,分配给参与者Pi(i=1,2,…,N)。把SKS作为共享的秘密信息,从GF(q)中选取t-1个元素a1,a2,…,a(t-1),构造多项式 则有SKSi=f(xi)(1≤i≤N)。在本发明中,参与者Pi就是被选中的N个Endorser,而被选取的参数xi也就是这N个Endorser对应的公钥随机数REi。(xi,SKSi)作为参与者Pi的影子秘密,即将(xi,SKSi)用安全的方式分别拷贝给N个Endorser。
[0065] 从N个Endorser中获取任意t个影子秘密可以得到SKS,具体步骤如下。根据公式可以求得t个拉格朗日参数λi,因而可以根据公式SKS=f(0)=∑λi*SKSi求得SKS。
[0066] 在本实施例中,对车辆的ID进行了秘密共享,得到的分量为IDi,但与上述对SKS进行秘密共享不同之处在于,对车辆ID进行秘密共享时只选择了N个Endorser中的n个(n>=t)作为参与者。
[0067] 在本实施例中,联盟链成员还包括相应的区块链服务,每个服务有1个或多个ID。区块链服务包括Peer服务,Order服务等。其中Peer服务分为Committer和Endorser;Order服务由多个Orderer组成。联盟链所有成员均带有Committer功能,保存有区块链数据,Endorser还存有智能合约,智能合约运行于密钥卡内。
[0068] 下文设User Client,Endorser,Orderer,Committer的标记如下:
[0069] 1)ID分别为IDU,IDE,IDO,IDC。可以根据ID找到对应的公钥池单元[0070] 2)公钥分别为PKU,PKE,PKO,PKC
[0071] 3)私钥分别为SKU,SKE,SKO,SKC
[0072] 在本实施例中,其中一个RSU为User,基于联盟链和身份秘密共享对所述OBU进行车辆注册,并与服务端成员对所述OBU的身份标识进行秘密共享。
[0073] 具体的,联盟链成员中包括提供相应服务的User、Endorser、Orderer及Committer,所述抗量子计算车联网方法具体包括:
[0074] User向Endorser提出交易;
[0075] Endorser收到User提出的交易并相应执行,再向User发送交易应答;
[0076] User接收交易应答后,制作背书并将背书发送给Orderer;
[0077] Orderer收到背书后,经排序再发送给Committer;
[0078] Committer收到背书后进行相应操作,并将生成相应的交易通知发送给User;
[0079] User接收交易通知后相应验证。
[0080] 具体的,所述其中一个RSU作为RSU Client基于联盟链和身份秘密共享对所述OBU进行车辆注册,并与服务端成员对所述OBU的身份标识进行秘密共享具体包括:
[0081] 多个所述Endorser中分别存储有服务器私钥基于秘密共享方式生成服务器私钥分量;
[0082] User向Endorser提出交易,根据所述OBU的身份标识进行秘密共享,得到多组身份标识分量,根据多组所述身份标识分量以及多个Endorser的身份标识生成分量信息,根据其中一组身份标识分量以及OBU公钥生成身份信息,将所述分量信息以及身份信息写入交易信息中;
[0083] 多个Endorser收到User提出的交易,将所述身份信息进行存储,并根据所述OBU公钥以及服务器私钥分量生成多个OBU私钥分量,并将所述OBU私钥分量以及分量信息写入交易应答中,再向User发送交易应答;
[0084] User接收交易应答后,从通过验证的多个交易应答中获取OBU私钥分量,并制作背书并将背书发送给Orderer;
[0085] Orderer收到背书后,经排序再发送给Committer;
[0086] Committer收到背书后进行相应操作,并将生成相应的交易通知发送给User;
[0087] User接收交易通知后,根据多个所述OBU私钥分量基于秘密共享的方式得到OBU私钥,并向OBU颁发密钥卡以完成车辆注册。
[0088] 再本实施例中,所述User颁发的OBU密钥卡中包括:OBU身份标识、公钥、私钥以及分量信息,其中公钥包括OBU公钥和服务器公钥。
[0089] 进一步的,所述抗量子计算车联网方法还包括基于联盟链和身份秘密共享对OBU进行匿名认证,所述匿名认证包括:
[0090] 在同一个RSU覆盖范围内具有用于通信的群密钥;
[0091] 所述OBU向所在覆盖范围内的RSU提出认证,所述OBU根据己方身份标识分量、公钥以及储存身份标识分量的Endorser身份标识进行加密计算,得到第一密文,根据所述第一密文以及OBU身份标识进行签名,得到第二密文,并将所述第一密文以及第二密文写入认证内容中;
[0092] 所述RSU为User,所述User向Endorser提出交易,生成多个化名组合,并根据多个所述化名组合以及群密钥进行计算,并对结果进行加密,得到第三密文,并将所述第三密文写入所述交易中;
[0093] 多个Endorser收到User提出的交易,经相应解密后,根据所述化名组合以及群密钥进行计算,得到化名的公钥,并根据所述化名公钥基于秘密共享理论和服务器私钥分量生成多个户名私钥分量,并将所述化名私钥分量以及身份标识分量进行组合生成化名信息,并对化名信息进行加密得到第四密文,将所述第四密文写入交易应答中,再向User发送交易应答;
[0094] User接收交易应答后,对所述第四密文进行相应解密获得化名信息,并制作背书并将背书发送给Orderer;
[0095] Orderer收到背书后,经排序再发送给Committer;
[0096] Committer收到背书后,根据读出操作集以及写入操作集进行相应执行,并将生成相应的交易通知发送给User以及与本交易相关的Endorser;
[0097] User接收交易通知后相应验证后,获得化名私钥;
[0098] 多个Endorser接收交易通知相应进行验收后,清除存储在本地的与所述OBU的身份信息。
[0099] 进一步的,所述OBU匿名认证通过后,还包括对所述OBU进行身份标识更新,所述身份标识更新包括:
[0100] User向Endorser提出交易,,取新的部分身份标识,生成所述OBU的新身份标识,根据所述新身份标识进行秘密共享,得到多组新身份标识分量,根据多组所述新身份标识分量以及多个Endorser的身份标识生成新分量信息,根据所述根据新身份标识生成OBU的新公钥,根据其中一组身份标识分量以及新公钥生成新身份信息,将所述新分量信息以及新身份信息写入交易信息中;
[0101] 多个Endorser收到User提出的交易,将所述新身份信息进行存储,并根据所述新公钥以及服务器私钥分量生成多个OBU的新私钥分量,并将所述新私钥分量以及新分量信息写入交易应答中,再向User发送交易应答;
[0102] User接收交易应答后,从通过验证的多个交易应答中获取新私钥分量,并制作背书并将背书发送给Orderer;
[0103] Orderer收到背书后,经排序再发送给Committer;
[0104] Committer收到背书后进行相应操作,并将生成相应的交易通知发送给User;
[0105] User接收交易通知后,根据多个所述新私钥分量基于秘密共享的方式得到OBU的新私钥,并将所述新部分身份标识、新私钥、新分量信息、群密钥、化名以及化名私钥进行加密,得到更新信息,并根据所述更新信息发送至OBU。
[0106] 在本实施例中,所述OBU接收到所述更新信息后,进行相应解密,根据所述部分新身份标识、新私钥、新分量信息进行相应更新,并利用所述群密钥存储、化名以及化名私钥在所述RSU覆盖范围内进行通信。
[0107] 在本实施例中,当联盟链成员进行交互的过程中,消息发送方均利用各自的私钥进行签名,接收方均根据消息发送方的公钥进行相应解密。
[0108] 就各步骤细节进一步描述抗量子计算抗量子计算车联网的具体流程如下所示:
[0109] 一.车辆注册及ID秘密共享
[0110] 步骤1:Client提出交易。
[0111] 设有车辆A,A到REG Client处注册,提供车辆的真实身份IDVA。
[0112] Client取随机数IDRA作为随机数密钥,根据公式IDA=IDVA||IDRA计算得到A的身份为IDA。Client按照策略选择N个Endorser中的n个(n>=t)作为参与者,对IDA进行秘密共享,得到多组分量并和Endorser的ID组合起来,得到∑IDEi||(xi,IDAi),这里的xi也就是IDEi对应的公钥随机数REi,以下xi均与此类似。
[0113] Client根据IDE从密钥卡中取出RE并计算PKE=H(IDE||RE)得到Endorser的公钥,取随机数KU并对其做基于ID密码学的加密。根据公式gU=e(PKE,PKS)可以计算得到参数gU。取随机数r,计算UU=rP,UV=KU⊕H2((gU)r),进而可以得到加密密文
[0114] Client用哈希函数H作用于IDA得到的A的公钥PKA,将PKA和某个ID分量IDAi组合得到PKA||IDAi,命名为M1i,再用KU对称加密M1i得到{M1i}KU。取出Client和Endorser的公钥指针随机数RU和RE,结合密文,得到UU||UV||{M1i}KU,命名为txdata;继而得到{UU-H(timestamp||RU||RE)}||UV||{M1i}KU,命名为txdata’。这里H(timestamp||RU||RE)作为UU的偏移量,该偏移量需要密钥卡中的公钥池的参与才能计算得到,没有密钥卡的其他方即使是量子计算机也无法破解被偏移量保护的数据。
[0115] Client向Endorser发送交易tx,而tx由proposal、txdata’和clientSig组成,即tx={proposal,txdata’,clientSig}。其中proposal包括IDU、链码chaincodeID(即使用智能合约函数的编号)、txPayload(即函数的参数)和时间戳timestamp,即proposal={IDU,chaincodeID,txPayload,timestamp}。
[0116] 将proposal和txdata组合起来得到proposal||txdata,对其进行基于ID密码学的签名。Client取随机数r,得到签名参数h=H1(proposal||txdata,r*PKU)。则可以得到proposal||txdata的签名clientSig=SIGN(proposal||txdata,SKU)=(r*PKU,(r+h)*SKU),其中SKU为Client的私钥。
[0117] 由于公钥随机数RU不公开,敌方无法得到PKU;因此敌方无法通过r*PKU和PKU得到随机数r。由于签名的对象带有加密的txdata,因此无法被敌方所知,因此敌方无法通过签名的对象得到h。由于敌方无法得到r和h,因此敌方无法通过(r+h)*SKU得到SKU。综上所述,公开的数字签名能抵抗敌方量子计算机对基于身份的公钥密码学的攻击。
[0118] Client将tx即{{IDU,chaincodeID,txPayload,timestamp},{UU-H(timestamp||RU||RE)}||UV||{M1i}KU,(r*PKU,(r+h)*SKU)}发送给Endorser。
[0119] 步骤2:Endorser执行交易。
[0120] Endorser收到交易后,取出{{IDU,chaincodeID,txPayload,timestamp},{UU-H(timestamp||RU||RE)}||UV||{M1i}KU,(r*PKU,(r+h)*SKU)}中各个部分。
[0121] Endorser从密钥卡中取出RU和RE,计算H(timestamp||RU||RE),对{UU-H(timestamp||RU||RE)}加上H(timestamp||RU||RE),得到UU||UV||{M1i}KU即txdata,从而得到签名clientSig的对象proposal||txdata。Endorser根据PKU=H(IDU||RU)计算得到PKU,然后用PKU来验证签名clientSig。要验证该签名,根据《An Identity-Based Signature from Gap Diffie-Hellman Groups》的数字签名验证理论,只需要验证(P,PKS,r*PKU+h*PKU,(r+h)*SKU))是一个有效的Diffie-Hellman元组。
[0122] 验证签名成功之后,Endorser判断IDU是否具有车辆注册的权限,根据HASH(PKA)读取区块链数据并判断车辆是否已经注册(存在即表示已经注册),判断timestamp与本地时间的差异是否位于合理范围内,如果判断都通过,则Endorser认可该交易tx,否则Endorser不认可该交易。
[0123] 步骤3:Endorser发送交易应答。
[0124] Endorser根据解密结果得到的和{M1i}KU,接着对也进行解密。取己方私钥SKE,根据公式KU=UV⊕H2(e(SKE,UU))计算得到原文KU。然后用KU对{M1i}KU进行对称解密得到M1i,即PKA||IDAi,并将PKA||IDAi存入本地安全区域。
[0125] Endorser对proposal作哈希运算得到tid,生成tran-proposal包含{IDE,tid,chaincodeID,txPayload,readset,writeset}。如果Endorser认可该交易tx的话,将readset赋值为空,将writeset赋值为HASH(PKA);如果Endorser不认可该交易tx的话,则readset和writeset的值为无效值。
[0126] 计算SKA的秘密共享分量:取出本地保存的服务器私钥分量SKSi,根据公式SKAi=SKSi*PKA计算得到分量SKAi,也将该分量称为M2i。取随机数KE作为加密密钥对M2i进行加密得到{M2i}KE,再用步骤1中的方法用PKU对KE进行基于ID密码学的加密,可以计算得到密文(EU,EV),得到组合EU||EV||{M2i}KE,即rtxdata。计算H(timestamp||RE||RU)作为偏移量,进而得到组合{EU-H(timestamp||RE||RU)}||EV||{M2i}KE,为rtxdata’。Endorser使用SKE按照步骤1中的签名方法对tran-proposal||rtxdata作基于ID密码学的签名,得到SIGN(proposal||rtxdata,SKE),即epSig。
[0127] Endorser将tran-proposal、rtxdata’和epSig组合起来得到{tran-proposal,rtxdata’,epSig},并将其赋值给交易应答rtx,然后将rtx发送给Client。
[0128] 步骤4:Client发送加密后的背书到Orderer。
[0129] Client收到交易应答{tran-proposal,rtxdata’,epSig}后,筛选出被Endorser认可的交易,并且按照步骤2中的方法先恢复rtxdata即EU||EV||{M2i}KE,得到签名epSig的对象tran-proposal||rtxdata,然后使用公钥PKE验证该签名。接着按照步骤3中的解密方法用SKU对(EU,EV)进行解密,将得到的KE作为密钥再对{M2i}KE进行解密,从而得到原文M2i即SKAi。
[0130] Client收到多个交易应答并分别验证通过后,将解密得到的多个SKAi保存在本地安全区域。然后将筛选得到的rtx组成一个集合∑rtx即背书etx,发送至Orderer。
[0131] 步骤5:Orderer加密并发送排序后的etx集合到Committer。
[0132] Orderer积累到一定数量的etx后,对etx进行排序。在达到block的最大大小或者达到超时时间后,Orderer将序列号seqno、上个联盟链区块的哈希值prevhash、∑etx组合起来,可以得到etx集合={seqno,prevhash,∑etx}。Orderer将etx集合发送给所有的Committer。
[0133] 步骤6:每个Committer验证交易,并更新世界状态。
[0134] 每个Committer收到etx集合后,根据背书策略对etx集合进行验证,包括对读写操作集进行检查、对数字签名进行验证等。对数字签名的验证流程参考步骤4中对epSig的验证。检查完成后,Committer对本地的联盟链数据库进行读写操作集的实际执行(读写操作集检查失败的交易除外),并记录每一笔交易的交易结果到区块链中,并更新本地的世界状态。完成后即表示Committer执行完毕。
[0135] 步骤7:Committer发送交易通知。
[0136] Committer发送交易通知给Client。取Client的公钥随机数RU并计算H(timestamp||RC||RU),将其与通知结果result(success或者failure)结合得到result||H(timestamp||RC||RU),再按照步骤1中的方法使用Committer的私钥SKC对result||H(timestamp||RU)进行签名,得到committerSig=SIGN(result||H(timestamp||RU),SKC)。然后将result、tid、committerSig组合来起到得到ntx={tid,result,committerSig}。Committer将组合ntx发送给Client。
[0137] Client收到ntx后,得到{tid,result,committerSig}中的各个部分。计算H(timestamp||RC||RU)并与result结合得到result||H(timestamp||RC||RU),按照步骤2中的方法使用Committer的公钥PKC来验证签名committerSig。验证签名成功之后,取出result查看其值,如果result的值是success,则根据秘密共享的理论计算:和SKA=∑λi*SKAi,从而得到私钥SKA。推导过程:SKA=
SKS*PKA=(∑λi*SKSi)*PKA=∑λi*(SKSi*PKA)=∑λi*SKAi。颁发的密码卡包含IDA||PKA||SKA||∑{IDEi||IDAi}||PKS,至此车辆注册完成;如果result的值是failure,则表示车辆注册失败。
[0138] 二.车辆匿名认证
[0139] 匿名认证的目地是:获得联盟链认证,获取新的化名、化名对应的私钥和车辆当前所在的本RSU覆盖区域的群密钥GK_RSU。其中各RSU有各自的群密钥;群密钥是可更新的,例如一天更新一次。本RSU覆盖区域可以超过本RSU无线信号覆盖区域,到达无线信号覆盖区域之外。例如规定某RSU无线信号覆盖区域以及该RSU附近的某个小区的并集为该RSU覆盖区域。在RSU无线信号覆盖区域才可以进行车辆与RSU之间的认证;在RSU无线信号覆盖区域之外的RSU覆盖区域,可以进行车辆之间的群组通信,即车辆根据定位得知当前所在的RSU覆盖区域,然后根据认证后获得的本RSU覆盖区域的群密钥进行群组通信。
[0140] 步骤1:Client提出交易
[0141] 1.1车辆A到RSU Client范围内,向Client提出认证
[0142] A取出IDA的秘密共享分量IDAi,对PKA||IDAi作哈希运算得到HASH(PKA||IDAi),对(timestamp,IDAi)作MAC运算得到MAC(timestamp,IDAi),再将两者组合起来得到HASH(PKA||IDAi)||MAC(timestamp,IDAi),命名为MACi,又将MACi和对应的IDEi组合起来得到IDEi||MACi。按照这样的方法得到多组IDEi||MACi,即∑{IDEi||MACi},命名为M1_0。
[0143] 将M1_0、timestamp和IDA组合起来得到M1_0||timestamp||IDA,再对其作基于ID密码学的签名。A取随机数r,可得到签名参数h=H1(M1_0||timestamp||IDA,r*PKA)。则可以得到M1_0||timestamp||IDA的签名SIGN(M1_0||timestamp||IDA,SKA)=(r*PKA,(r+h)*SKA),并将签名命名为M1_1。A将M1_0||timestamp||M1_1的组合命名为M1。A将M1发送给RSU Client。
[0144] 由于生成公钥PKA的IDA不公开,敌方无法得到PKA;因此敌方无法通过r*PKA和PKA得到随机数r。由于签名对象中也含有IDA,因此无法被敌方所知,因此敌方无法通过签名的对象得到h。由于敌方无法得到r和h,因此敌方无法通过(r+h)*SKA得到SKA。综上所述,公开的数字签名能抵抗敌方量子计算机对基于身份的公钥密码学的攻击。
[0145] 1.2Client提出交易
[0146] Client分拆M1为M1_0||timestamp||M1_1,并分拆M1_0为多组{IDEi||MACi}。
[0147] Client取多个ALIAS作为A的化名,并对化名进行组合得到∑{ALIAS},再将∑{ALIAS}和本RSU覆盖区域的群密钥GK_RSU组合起来得到GK_RSU||∑{ALIAS},并命名为M2。
[0148] Client根据IDE从密钥卡中取出RE并计算PKE=H(IDE||RE)得到Endorser的公钥,取随机数KU并对其做基于ID密码学的加密。根据公式gU=e(PKE,PKS)可以计算得到参数gU。r
取随机数r,计算UU=rP,UV=KU⊕H2((gU) ),进而可以得到加密密文。Client又用KU加密M2得到{M2}KU,取与第i个Endorser即IDEi所对应的MACi,得到组合UU||UV||{M2}KU||MACi,即为txdata。取出Client和Endorser的公钥指针随机数RU和RE,计算H(timestamp||RU||RE)作为偏移量,对txdata作偏移得到{UU-H(timestamp||RU||RE)}||UV||{M2}KU||MACi,即为txdata’。
[0149] 将proposal和txdata组合起来得到proposal||txdata,按照步骤1.1中的方法对其进行基于ID密码学的签名,可以得到proposal||txdata的签名clientSig=SIGN(proposal||txdata,SKU)=(r*PKU,(r+h)*SKU)。
[0150] 由于公钥随机数RU不公开,敌方无法得到PKU;因此敌方无法通过r*PKU和PKU得到随机数r。由于签名的对象带有加密的txdata,因此无法被敌方所知,因此敌方无法通过签名的对象得到h。由于敌方无法得到r和h,因此敌方无法通过(r+h)*SKU得到SKU。综上所述,公开的数字签名能抵抗敌方量子计算机对基于身份的公钥密码学的攻击。
[0151] Client向Endorser发送交易tx,而tx由proposal、txdata’和clientSig组成,即tx={proposal,txdata’,clientSig}。其中proposal包括IDU、链码chaincodeID(即使用智能合约函数的编号)、txPayload(即函数的参数)和时间戳timestamp。
[0152] Client将tx即{{IDU,chaincodeID,txPayload,timestamp},{UU-H(timestamp||RU||RE)}||UV||{M2}KU||MACi,(r*PKU,(r+h)*SKU)}发送给Endorser。
[0153] 步骤2:Endorser执行交易。
[0154] Endorser收到交易后,取出{{IDU,chaincodeID,txPayload,timestamp},{UU-H(timestamp||RU||RE)}||UV||{M2}KU||MACi,(r*PKU,(r+h)*SKU)}中各个部分。
[0155] Endorser从密钥卡中取出RU和RE,计算H(timestamp||RU||RE),对{UU-H(timestamp||RU||RE)}加上H(timestamp||RU||RE),得到UU||UV||{M2}KU即txdata,从而得到签名clientSig的对象proposal||txdata。
[0156] Endorser根据PKU=H(IDU||RU)计算得到PKU,然后用PKU来验证签名clientSig。要验证该签名,根据《An Identity-Based Signature from Gap Diffie-Hellman Groups》的数字签名验证理论,只需要验证(P,PKS,r*PKU+h*PKU,(r+h)*SKU))是一个有效的Diffie-Hellman元组。
[0157] 验证签名成功之后,Endorser判断IDU是否具有车辆匿名认证的权限;判断timestamp与本地时间的差异是否位于合理范围内;解析MACi得到HASH(PKA||IDAi)||MAC(timestamp,IDAi),根据HASH(PKA||IDi)搜索本地公钥ID列表并找到对应的PKA||IDAi,并取出IDAi,对timestamp作MAC运算得到MAC(timestamp,IDAi),来判断该消息认证码是否正确;根据HASH(PKA)读取区块链数据,来判断车辆是否已经注册(存在即表示已经注册)。如果判断都通过,则Endorser认可该交易tx,否则Endorser不认可该交易。
[0158] 步骤3:Endorser发送交易应答。
[0159] Endorser根据解密得到的和{M2}KU,用己方私钥SKE对进行解密,根据公式KU=UV⊕H2(e(SKE,UU))计算得到原文KU。然后用KU对{M2}KU进行解密得到M2,即GK_RSU||∑{ALIAS}。
[0160] 用函数H1作用于ALIAS||GK_RSU得到H1(ALIAS||GK_RSU),将其作为ALIAS的公钥即APK,ALIAS的私钥为ASK,APK和ASK的关系为ASK=SKS*APK。Endorser根据秘密共享的理论,计算ASK的分量ASKi=SKSi*APK,再将组合ASKi||IDAi命名为M3i。取随机数KE,按照步骤1中的加密方法用PKU对KE进行基于ID密码学的加密,得到密文(EU,EV),得到组合EU||EV||{M3i}KE即rtxdata,进而对rtxdata做偏移得到组合{EU-H(timestamp||RE||RU)}||EV||{M3i}KE即rtxdata’。
[0161] Endorser对proposal作哈希运算得到tid,生成tran-proposal包含{IDE,tid,chaincodeID,txPayload,readset,writeset}。如果Endorser认可该交易tx的话,将readset赋值为HASH(HASH(PKA)),将writeset赋值为空;如果Endorser不认可该交易tx的话,则readset和writeset的值为无效值。
[0162] Endorser使用SKE按照步骤1中的签名方法对tran-proposal||rtxdata作基于ID密码学的签名,得到SIGN(proposal||rtxdata,SKE),即epSig。
[0163] Endorser将tran-proposal、rtxdata’和epSig组合起来得到{tran-proposal,rtxdata’,epSig},并将其赋值给交易应答rtx,然后将rtx发送给Client。
[0164] 步骤4:Client发送加密后的背书到Orderer。
[0165] Client收到交易应答{tran-proposal,rtxdata’,epSig}后,筛选出被Endorser认可的交易,并按照步骤2中的方法先恢复rtxdata即EU||EV||{M3i}KE,再使用公钥PKE对proposal||rtxdata的签名epSig进行验证。然后按照步骤3中的解密方法对(EU,EV)进行解密得到KE,并用KE对{M3i}KE进行解密得到原文M3i即ASKi||IDAi,并保存在本地安全区域。
[0166] 根据得到的多个IDAi和秘密共享的理论,计算和IDA=∑λi*IDAi,得到IDA,再用函数H1作用于IDA得到公钥PKA。用PKS和PKA验证M1即M1_
0||timestamp||M1_1中的M1_1部分,取出M1_1即签名SIGN(M1_0||timestamp||IDA,SKA),其值为(r*PKA,(r+h)*SKA)。要验证该签名,根据《An Identity-Based Signature from Gap Diffie-Hellman Groups》的数字签名验证理论,只需要验证(P,PKS,r*PKA+h*PKA,(r+h)*SKA))是一个有效的Diffie-Hellman元组,上面计算得到的PKS和PKA参与计算。数字签名验证通过,则RSU Client对车辆认证通过。
[0167] Client收到多个交易应答并分别验证通过后,将筛选得到的rtx组成一个集合∑rtx即背书etx,发送至Orderer。
[0168] 步骤5:Orderer加密并发送排序后的etx集合到Committer。
[0169] Orderer积累到一定数量的etx后,对etx进行排序。在达到block的最大大小或者达到超时时间后,Orderer将序列号seqno、上个联盟链区块的哈希值prevhash、∑etx组合起来,可以得到etx集合={seqno,prevhash,∑etx}。Orderer将etx集合发送给所有的Committer。
[0170] 步骤6:每个Committer验证交易,并更新世界状态。
[0171] 每个Committer收到etx集合后,根据背书策略对etx集合进行验证,包括对读写操作集进行检查、对数字签名进行验证等。对数字签名的验证流程参考步骤4中对epSig的验证。检查完成后,Committer对本地的联盟链数据库进行读写操作集的实际执行(读写操作集检查失败的交易除外),并记录每一笔交易的交易结果到区块链中,并更新本地的世界状态。完成后即表示Committer执行完毕。
[0172] 步骤7:Committer发送交易通知
[0173] 7.1 Committer发送交易通知
[0174] Committer发送交易通知给Client、Endorser。取Client的公钥随机数RU并计算H(timestamp||RC|RU),将其与通知结果result(success或者failure)结合得到result||H(timestamp||RC||RU),再按照步骤1.1中的方法使用Committer的私钥SKC对result||H(timestamp||RC||RU)进行签名,得到committerSig=SIGN(result||H(timestamp||RC||RU),SKC)。然后将result、tid、committerSig组合来起到得到ntx={tid,result,committerSig}。Committer将组合ntx发送给Client、与本交易相关的Endorser。
[0175] 7.2 Client、与本交易相关的Endorser收到交易通知
[0176] Client收到ntx后,得到{tid,result,committerSig}中的各个部分。计算H(timestamp||RC||RU)并与result结合得到result||H(timestamp||RC||RU),按照步骤2中的方法使用Committer的公钥PKC来验证签名committerSig。验证签名成功之后,取出result查看其值,如果result的值是success,则根据秘密共享的理论计算:和ASK=∑λi*ASKi,从而得到ALIAS的私钥ASK;如果
result的值是failure,则表示流程失败。
[0177] 与本交易相关的Endorser收到ntx后,用同样方式验证数字签名并查看result。如果result的值是success,则清除本地存储的PKA||IDAi。
[0178] 7.3 Client提交ID更新交易
[0179] 首先是Client提出交易。Client取随机数IDRA’作为新的随机数密钥,根据公式IDA’=IDVA||IDRA’计算得到新的ID值,即IDA’。Client按照策略选择多个Endorser作为Ei’,对IDA'进行秘密共享,得到多组新的分量并和Endorser的ID组合起来,得到新的∑IDEi’||(xi,IDAi’)。根据公式PKA’=H1(IDA’)计算得到新的公钥PKA’,将PKA’||IDAi’加密后通过联盟链流程发送给Endorser。
[0180] Endorser计算HASH(PKA’)并将其存入联盟链记录中,对得到的密文进行解密后得到PKA’||IDAi’并存入Endorser中的安全存储区域。将readset的值赋值为空,将writeset的值赋值为HASH(PKA’),计算新的SKA’的秘密共享分量,根据公式SKAi’=SKSi*PKA’计算得到分量SKAi’并对其进行加密,然后将结果返回给Client。
[0181] Client收到消息后解密得到SKAi’,根据秘密共享的理论计算:和SKA’=∑λi*SKAi’从而得到新的私钥SKA’。
[0182] 7.4 Client发送交易结果
[0183] Client将组合IDRA’||SKA’||∑{IDEi’||IDAi’}||GK_RSU||∑(ALIAS||ASK)命名为M4_0,然后取随机数KA,对KA用PKA进行基于ID密码学的加密得到(AU,AV)。又对M4_0和IDA做MAC运算,得到MAC(M4_0,IDA),用KA对M4_0||MAC(M4_0,IDA)进行加密得到{M4_0||MAC(M4_0,IDA)}KA。然后得到组合{AU-H(IDA||timestamp)}||AV||{M4_0||MAC(M4_0,IDA)}KA并将其发送给车辆A。
[0184] 7.5车辆收到交易结果
[0185] A收到消息中的{AU-H(IDA||timestamp)}||AV||{M4_0||MAC(M4_0,IDA)}KA后,取出其中的各个部分。首先计算H(IDA||timestamp),对{AU-H(IDA||timestamp)}加上H(IDA||timestamp),从而得到(AU,AV),并对其用SKA进行解密得到KA,然后用KA解密{M4_0||MAC(M4_0,IDA)}KA得到M4_0和MAC(M4_0,IDA)。计算M4_0的MAC值并和MAC(M4_0,IDA)进行对比,如果相等的话就说明验证成功,然后可以得到M4_0即IDRA’||SKA’||∑{IDEi’||IDAi’}||GK_RSU||∑(ALIAS||ASK)中的各个部分。A将本地IDRA更新为IDRA’,将本地SKA更新为SKA’,将本地∑{IDEi||IDAi}更新为∑{IDEi’||IDAi’},并且存储GK_RSU||∑(ALIAS||ASK)用于后续RSU范围内的通信,至此车辆的匿名认证完成。
[0186] 三.车辆匿名广播消息和验证匿名广播消息
[0187] A在匿名广播消息的时候,设将要广播的消息为BMSG,令组合ALIAS||BMSG||timestamp为MB_0,用私钥ASK对MB_0||GK_RSU做基于ID密码学的签名得到SIGN(MB_0||GK_RSU,ASK),将其和MB_0组合得到MB_0||SIGN(MB_0||GK_RSU,ASK)并命名为MB。A将MB发送出去即完成车辆的匿名广播消息。
[0188] 由于生成公钥的部分信息GK_RSU不公开,敌方无法得到PKA;因此敌方无法通过r*PKA和PKA得到随机数r。由于签名对象中含有群组密钥GK_RSU,因此无法被敌方所知,因此敌方无法通过签名的对象得到h。由于敌方无法得到r和h,因此敌方无法通过(r+h)*SKA得到SKA。综上所述,公开的数字签名能抵抗敌方量子计算机对基于身份的公钥密码学的攻击。
[0189] 接收方验证来自A的匿名广播消息的时候,解析MB_0得到ALIAS||BMSG||timestamp,取出本地的群组密钥GK_RSU并将其和MB中的MB_0组合成MB_0||GK_RSU,然后用公钥APK=H1(ALIAS||GK_RSU)来验证MB中的签名SIGN(MB_0||GK_RSU,ASK),验证成功则表明该化名ALIAS及广播消息BMSG有效。
[0190] 上述基于身份秘密共享和联盟链的抗量子计算车联网方法,使用使用密钥卡存储公钥随机数和私钥,其中公钥随机数存储在密钥卡的公钥池中。密钥卡是独立的硬件隔离设备,被恶意软件或恶意操作窃取密钥的可能性大大降低。由于量子计算机无法得到用户公钥,于是也无法得到对应的私钥。另外,本发明中,基于公私钥的抗量子计算签名和加密也保证了所传输消息及密钥自身的安全性,即使在量子计算机存在的情况下,也难以被推导出私钥。因此该方案不容易被量子计算机破解。
[0191] 本方法中将基于ID密码学中的ID改为了公钥随机数的形式,并对签名消息中加入了秘密使得实际签名消息无法被敌方得到,使得数字签名具有很高的抗量子计算安全性。
[0192] 同时,本方法在流程中的不同场合用到了偏移量,这些偏移量都需要密钥卡中的公钥池的参与才能计算得到,没有密钥卡的其他方将无法破解这些被偏移量保护的数据。偏移量的使用对数据进行了加密,使得传输过程更加安全,具有抗量子计算的特性;并且该加密方式比普通加密方式的计算量更小,因此避免了使用普通加密方式来抵抗量子计算机的攻击,降低了各方的设备负担。
[0193] 本方法将区块链架构用于车联网,去掉了容易受到拒绝服务攻击并丧失服务能力的中心化服务器TA,从而使得车联网的可用性和抗攻击性能得到提高;由于去掉了集中掌握用户ID信息的TA,用户ID使用秘密共享的方式存放于区块链中,没有一个RSU能够单独掌控用户的ID信息,因此降低了TA被妥协后ID信息被暴露的风险,大大提高了对用户ID信息即用户隐私的保护。
[0194] 在一个实施例中,提供了一种计算机设备,即基于身份秘密共享和联盟链的抗量子计算车联网系统,该计算机设备可以是终端,其内部结构可以包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现上述抗量子计算抗量子计算车联网方法。该计算机设备的显示屏可以是液晶显示屏或者电子显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0195] 其中一实施例中,提供了一种基于身份秘密共享和联盟链的抗量子计算车联网系统,包括相互通信的相互通信的车联网成员与联盟链成员之间,所述车联网成员多个OBU以及RSU,所述联盟链成员包括客户端成员以及服务端成员,各方均配置有密钥卡,所有密钥卡均存储有己方私钥、服务器公钥以及公钥池,所述服务端密钥卡中的公钥池存储有与所有联盟链成员一一对应的公钥单元,所述客户端密钥卡中的公钥池存储有己方的公钥单元以及与所述服务端成员一一对应的公钥单元,所述公钥单元中存储有用于获取相关公钥的公钥随机数,所述RSU可为客户端成员;
[0196] 所述联盟链成员包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述的基于身份秘密共享和联盟链的抗量子计算车联网方法。
[0197] 以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0198] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明的保护范围应以所附权利要求为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈