掌桥专利:专业的专利平台
掌桥专利
首页

密钥协商方法、装置、电子设备和存储介质

文献发布时间:2023-06-19 10:27:30


密钥协商方法、装置、电子设备和存储介质

技术领域

本申请实施例涉及车辆技术领域,尤其涉及一种密钥协商方法、装置、电子设备和存储介质。

背景技术

通过车端与云端在握手过程中,协商加密密钥,并采用加密密钥对车端与云端之间传输的数据进行加密,是防止数据传输过程中被篡改和提高数据安全性的一种有效措施。

现有技术中,通过车端将其支持的所有类型的协议版本的信息和加密算法的信息发送给云端,云端从基中选择一种协议版本和一种加密算法,并将最终端选择的结果反馈给车端,车端和云端再依据最终选定协议版本和加密算法进行密钥协商。

然而,现有技术中,车端和云端的密钥协商过程中涉及到证书签发、信息交换等内容,会产生大量的数据交互、数据下载等,导致耗费较多的网络流量和时间,影响用户的使用体验。

发明内容

本申请实施例提供一种密钥协商方法、装置、电子设备和存储介质,以解决现有技术中存在的流量和时间消耗较多的问题。

第一方面,本申请实施例提供一种密钥协商方法,应用于车端,所述方法包括:

向云端发送指定的目标加密算法信息;

当接收到所述云端发送的预设的响应信息时,根据所述目标加密算法信息,与所述云端进行密钥协商。

可选地,所述目标加密算法信息至少包括目标椭圆曲线算法和目标签名算法;在与所述云端进行密钥协商之前,所述方法还包括:

根据所述目标椭圆曲线算法和所述目标签名算法,与所述云端进行身份验证。

可选地,所述车端上预先存储有车端原始私钥和车端硬件识别码;所述根据所述目标椭圆曲线算法和所述目标签名算法,与所述云端进行身份验证,包括:

根据所述目标椭圆曲线算法,生成车端临时公钥和车端临时私钥;

根据所述目标签名算法,采用所述车端原始私钥,对由车端随机数、所述车端硬件识别码和所述车端临时公钥构成的车端数据进行签名,得到车端数据签名;

将所述车端随机数、所述车端临时公钥和所述车端数据签名发送给所述云端,供所述云端对车端的身份进行验证。

可选地,所述车端上还预先存储有车端原始公钥;所述方法还包括:

与所述云端进行原始公钥交换,得到云端原始公钥;

在接收到云端随机数、云端临时公钥和云端数据签名时,根据所述云端原始公钥,对所述云端数据签名进行验证。

可选地,所述目标加密算法信息还包括目标加密套件;所述根据所述目标加密算法信息,与所述云端进行密钥协商,包括:

与所述云端进行密钥协商,得到与所述目标加密套件匹配的密钥。

可选地,所述与所述云端进行密钥协商,得到与所述目标加密套件匹配的密钥,包括:

根据车端临时私钥和云端临时公钥,生成第一迪菲-赫尔曼密钥;

根据所述第一迪菲-赫尔曼密钥、车端临时公钥、所述云端临时公钥、车端随机数、云端随机数和车端硬件识别码,采用密钥演生函数,生成第一协商密钥、第一加解密密钥和第一初始化向量;

根据所述第一协商密钥、所述车端临时公钥、所述云端临时公钥、所述车端随机数、所述云端随机数和所述车端硬件识别码,采用校验函数,生成第一校验值;

若接收到的云端发送的第二校验值与所述第一校验值一致,则将所述第一加解密密钥和所述第一初始化向量,确定为所述车端的加解密密钥。

第二方面,本申请实施例提供一种密钥协商方法,应用于云端,所述方法包括:

接收车端发送的指定的目标加密算法信息;

当确定选择所述目标加密算法信息对应的目标加密算法时,向所述车端发送预设的响应信息;

根据所述目标加密算法信息,与所述车端进行密钥协商。

可选地,所述目标加密算法信息至少包括目标椭圆曲线算法和目标签名算法;在与所述车端进行密钥协商之前,所述方法还包括:

根据所述目标椭圆曲线算法和所述目标签名算法,与所述车端进行身份验证。

可选地,所述云端上预先存储有云端原始公钥、云端原始私钥和车端硬件识别码;所述根据所述目标椭圆曲线算法和所述目标签名算法,与所述车端进行身份验证,包括:

与所述车端进行原始公钥交互,得到车端原始公钥;

根据所述目标椭圆曲线算法,生成云端临时公钥和云端临时私钥;

根据所述目标签名算法,采用所述云端原始私钥,对由云端随机数、所述车端硬件识别码和所述云端临时公钥构成的云端数据进行签名,得到云端数据签名;

根据所述车端原始公钥,对接收到的车端数据签名进行验证;

当对所述车端数据签名验证通过后,将所述云端随机数、所述云端临时公钥和所述云端数据签名发送给所述车端。

可选地,所述目标加密算法信息还包括目标加密套件;所述根据所述目标加密算法信息,与所述车端进行密钥协商,包括:

与所述车端进行密钥协商,得到与所述目标加密套件匹配的密钥。

可选地,所述与所述车端进行密钥协商,得到与所述目标加密套件匹配的密钥,包括:

根据云端临时私钥和车端临时公钥,生成第二迪菲-赫尔曼密钥;

根据所述第二迪菲-赫尔曼密钥、所述车端临时公钥、云端临时公钥、车端随机数、云端随机数和车端硬件识别码,采用密钥演生函数,生成第二协商密钥、第二加解密密钥和第二初始化向量;

根据所述第二协商密钥、所述车端临时公钥、所述云端临时公钥、所述车端随机数、所述云端随机数和所述车端硬件识别码,采用校验函数,生成第二校验值;

若接收到的车端发送的第一校验值与所述第二校验值一致,则将所述第二加解密密钥和所述第二初始化向量,确定为所述云端的加解密密钥。

第三方面,本申请实施例提供一种密钥协商装置,包括:

第一处理模块,用于向云端发送指定的目标加密算法信息;

第二处理模块,用于当接收到所述云端发送的预设的响应信息时,根据所述目标加密算法信息,与所述云端进行密钥协商。

第四方面,本申请实施例提供一种密钥协商装置,包括:

第一处理模块,用于接收车端发送的指定的目标加密算法信息;当确定选择所述目标加密算法信息对应的目标加密算法时,向所述车端发送预设的响应信息;

第二处理模块,用于根据所述目标加密算法信息,与所述车端进行密钥协商。

第五方面,本申请实施提供一种车端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述第一方面所述的密钥协商方法。

第六方面,本申请实施例提供一种云端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述第二方面所述的密钥协商方法。

第七方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的密钥协商方法。

第八方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第二方面所述的密钥协商方法。

本申请实施例提供的密钥协商方法、装置、电子设备和存储介质,通过向云端发送目标加密算法信息,当接收到云端发送的预设的响应信息时,根据目标加密算法信息,与云端进行密钥协商,减少了密钥协商过程中,车端与云端之间交互的数据量,减少了流量消耗和协商所需的时间,有利于提高用户使用体验。

附图说明

图1为本申请实施例的提供的密钥协商系统的结构示意图;

图2为本申请实施例一提供的密钥协商方法的流程示意图;

图3为本申请实施例二提供的密钥协商方法中身份验证阶段的流程示意图;

图4为本申请实施例三提供的密钥协商方法中密钥协商阶段的流程示意图;

图5为本申请实施例四提供的密钥协商装置的结构示意图;

图6为本申请实施例五提供的密钥协商装置的结构示意图;

图7为本申请实施例六提供的一种车端的结构示意图;

图8为本申请实施例七提供的一种云端的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。

本申请技术方案的主要思路:基于现有技术中存在的技术问题,本申请实施例提供一种密钥协商的技术方案,一方面,通过预先在车端灌装车端原始公钥,省去了现有技术中在密钥协商过程中由云端签发原始公钥的过程。另一方面,在密钥协调过程的握手阶段,通过控制车端仅能向云端发送预先指定的加密方式、签名算法、协议版本等信息,云端响应后,两者建立加密通道,而不需要车端将其支持的所有类型的加密方式的信息和协议版本信息都发给云端。通过上述两个方面的改进,减少了密钥协商过程所需传输的数据量,节约了时间和流量消耗,提高了用户使用体验。

图1为本申请实施例的提供的密钥协商系统的结构示意图,如图1所示,本实施例中密钥协调系统包括云端和车端,其中,云端可以为服务器,车端可以为车内的电子设备,云端与车端之间可以通过网络(如5G网络)进行通信连接,在车端使用数字钥匙的情况下,每次车端与云端断开连接后,再次连接前需要重新进行密钥的协调。

实施例一

图2为本申请实施例一提供的密钥协商方法的流程示意图,本实施例的方法可以由本申请实施例所提供的密钥协商装置执行,该装置可以由软件和/或硬件的方式来实现,并可集成于服务器以及智能终端等电子设备中。如图2所示,本实施例的密钥协商方法包括:

S101、向云端发送目标协议版本信息和目标加密算法信息。

本步骤中,为减少密钥协商过程中云端与车端之间的数据流,车端将指定的目标协议版本信息和指定的目标加密算法信息发送给云端,相应地,云端接收目标协议版本信息和目标加密算法信息。

其中,目标协议版本信息,即指定的目标协议的版本信息,本实施例中,车端与云端之间采用传输层安全(transport layer security,TLS)协议进行通信,相应地,目标协议版本信息即使用的TLS协议的版本信息。可选地,目标协议版本信息为TLS1.3。

加密算法信息,即指定的目标加密算法的信息,本实施例中,目标加密算法信息中包括目标加密套件、目标椭圆曲线算法和目标签名算法。其中,目标加密套件即指定的加密套件,加密套件是加解密算法的集合,例如,某加密套件的名称为TLS_AES_128_GCM_SHA256,TLS为协议,AES_128_GCM为批量加密算法,SHA256为散列算法,是用于规定对车端与云端之间传输的数据进行加密的方法;目标椭圆曲线算法即指定的椭圆曲线算法,椭圆曲线算法是用于生成临时公私钥对的算法;目标签名算法即指定的签名算法,是用于对车端与云端之间传输的数据进行签名的算法。

示例性地,本实施例中目标协议版本信息和目标加密算法信息如表1所示。

表1

可以理解的是,本步骤中可以根据事先根据车端与云端支持的协议的版本和加密算法的情况和应用场景需求,事先选定一种协议版本和一种加密算法分别作为目标协议和目标加密算法,当需要与云端进行密钥协商时,只需要将选的目标协议版本信息和目标加密算法信息发送给云端即可,有效减少了车端与云端的数据流,减少流量消耗。

可选地,本实施例中,也可以采用随机算法,每次从候选协议版本中选取一种作为目标协议版本,从候选加密算法中选取一种作为目标加密算法。

S102、当确定选择目标协议版本信息对应的目标协议和目标加密算法信息对应的目标加密算法时,向车端发送预设响应信息。

本步骤中,在云端接收到车端发送的目标协议版本信息和目标加密算法信息时,云端确定是否选目标协议版本信息对应的目标协议和目标加密算法对应的目标加密算法,当确定选择目标协议版本信息对应的目标协议和目标加密算法信息对应的目标加密算法,向车端发送预设响应信息,其中,预设响应信息为确认使用车端发送的目标协议版本对应的目标协议和目标加密算法信息对应的加密算法的信息。可选地,本步骤中预设响应信息为包括目标协议版本信息和目标加密算法信息的响应信息。相应地,车端接收包括目标协议版本信息和目标加密算法信息的响应信息。

可以理解的是,云端向车端发送的响应信息中同时包括选择的目标协议和目标加密算法的信息,即预设响应信息,当云端不选择目标协议版本信息对应的目标协议和/或目标加密算法信息对应的目标加密算法时,则响应信息中仅包括目标加密算法信息或目标协议版本信息或两者都不包括,示例性地,若云端选择目标协议版本信息对应的目标协议而不选择目标加密算法信息对应的目标加密算法,则车端接收到的响应信息中只包括目标协议版本信息,若云端既不选择目标协议版本信息对应的目标协议,也不选择目标加密算法信息对应的目标加密算法,则车端接收的响应信息的内容为空。此时,车端需要重新确定目标协议版本信息和/或目标加密算法信息,并将再次确定的目标协议版本信息和/或目标加密算法信息发送给云端,完成协议版本与加密算法的协商。

需要说明的是,若车端向云端发送的信息仅为指定的目标加密算法信息,则预设响应响应信息为包括目标加密算法信息的响应信息。

上述S101-S102即为车端与云端之间的握手过程,本实施例中,由于握手过程中车端只需要向云端发送目标协议版本信息和目标加密算法信息,与现有技术中,将车端支持所有协议版本的信息和加密算法的信息均发送给云端相比,数据量大大减小,有效减少了握手阶段所需的时间和所耗费的流量,有利于提高用户体验。

S103、根据目标协议版本信息和目标加密算法信息,进行密钥协商。

本步骤中,在S102之后,车端与云端,根据目标协议版本信息和目标加密算法信息进行密钥协商。具体地,车端与云端,根据目标协议版本信息对应的目标协议约定的通信规则进行通信,根据目标椭圆曲线算法和目标签名算法,进行身份验证;在身份验证通过后,进行密钥协商,得到与目标加密套件匹配的密钥。

其中,目标协议约定的通信规则即为车端与云端通信必须遵守的规则,如哪些信息需要加密、哪些信息不需要加密、准许采用的加密算法等。

身份验证,密钥协商之前需要完成的重要步骤,只有身份验证通过才能保证密钥协商过程的安全。

密钥协商,即生成符合目标加密套件规定的加解密算法的密钥的过程。

本实施例中,通过向云端发送目标协议版本信息和目标加密算法信息,目标加密算法信息中包括目标加密套件、目标椭圆曲线算法和目标签名算法,当接收到云端发送的包括所述目标协议版本信息和目标加密算法信息的响应信息时,根据目标协议版本信息和目标加密算法信息,与云端进行密钥协商,减少了密钥协商过程中,车端与云端之间交互的数据量,减少了流量消耗和协商所需的时间,有利于提高用户使用体验。

实施例二

身份验证作为密钥协商的一个重要阶段,对于协商的密钥的安全性至关重要,下面将一个具体的实施例,对身份验证的过程加以说明,示例性地,图3为本申请实施例二提供的密钥协商方法中身份验证阶段的流程示意图,在实施例一的基础上,如图3所示,本实施例中,根据目标椭圆曲线算法和目标签名算法,进行身份验证,包括:

S201、将车端原始公钥发送给云端。

本步骤中,车端从车端原始公钥(vehicle.raw.PK)的存储位置中读取车端原始公钥,并将读取到的车端原始公钥的数据发送给云端,相应地,云端接收车端原始公钥。其中,车端原始公钥即为车端身份公钥,是车端在出厂前写入车端中。

可以理解的是,为避免证书签发过程中产生的数据量,本实施例中,预先将车端原始公钥、车端原始私钥以及车端硬件识别码存储到车端中,如在车端出厂前,将车端原始公钥、车端原始私钥以及车端硬件识别码的数据写入到车端的内存中,即预先为车端颁发证书,这样在进行身份验证时,车端只需要从内存中提取所需的证书信息即可,而不需要与车端进行信息交互,因此,进一步节约了时间,并减少了流量消耗。

S202、将云端原始公钥发送给车端。

本步骤中,云端从云端原始公钥(server.raw.PK)的存储位置中读取云端原始公钥,并将读取到的云端原始公钥的数据发送给车端,相应地,车端接收云端原始公钥。其中,云端原始公钥即为云端身份公钥,是云端在出厂前写入云端中。

可以理解的是,上述S201-S202即为车端与云端的原始公钥交换过程,交换的结果时,彼此都获得了对端的原始公钥。

S203、根据目标椭圆曲线算法,生成车端临时公钥和车端临时私钥。

本步骤中,车端采用握手过程中协商的目标椭圆曲线算法,如secp256r1,生成车端临时公钥(vehicle.ep.PK)和车端临时私钥(vehicle.ep.SK),其中,车端临时公钥和车端临时私钥构成车端临时公私钥对。

S204、根据目标签名算法,采用车端原始私钥,对由车端随机数、车端硬件识别码和车端临时公钥构成的车端数据进行签名,得到车端数据签名。

本步骤中,车端先将车端随机数、车端硬件识别码和S203中生成的车端临时公钥按一定格式组合到一个文件中,得到车端数据,再根据握手过程中协商的目标签名算法,采用车端原始私钥对车端数据进行签名,得到车端数据签名。

可选地,在执行本步骤之前,车端先通过随机数生成器生成车端随机数。

可选地,本步骤中采用的目标签名算法为ecdsa_secp256r1。

S205、将车端随机数、车端临时公钥和车端数据签名发送给云端。

本步骤中,在S204之后,车端将车端随机数、车端临时公钥和车端数据签名按照目标协议约定的规则发送给云端,相应地,云端接收车端随机数、车端临时公钥和车端数据签名。

S206、根据目标椭圆曲线算法,生成云端临时公钥和云端临时私钥。

本步骤中,云端也采用握手过程中协商的目标椭圆曲线算法(与车端采用的椭圆曲线算法相同),生成云端临时公钥(server.ep.PK)和云端临时私钥(server.ep.SK),其中,云端临时公钥和云端临时私钥构成云端临时公私钥对。

S207、根据目标签名算法,采用云端原始私钥,对由云端随机数、车端硬件识别码和云端临时公钥构成的云端数据进行签名,得到云端数据签名。

本步骤中,类似地,云端先将云端随机数、车端硬件识别码和S206中生成的云端临时公钥按照一定的格式组合到一个文件中,得到云端数据,再根据握手过程中协商的目标签名算法(与车端采用的签名算法相同),采用云端原始私钥对云端数据进行签名,得到云端数据签名。

可选地,在执行本步骤之前,云端先通过随机数生成器生成云端随机数。

可以理解的是,本实施例中的云端也预先存储有云端原始公钥、云端原始私钥和车端硬件识别码。

可以理解的是,上述步骤S206-S207与S203-S205之间不存在先后关系,S206-S207可以在S203-S205之后执行,也可以在S203-S205之前执行,还可以与S203-S205并列执行。

S208、根据车端原始公钥,对车端数据签名进行验证。

本步骤中,云端在接收到车端发送的车端数据签名以后,根据S201中得到的车端原始公钥,对车端数据签名进行验证,以实现对车端的身份的验证。

本步骤中,若对车端数据签名验证通过,说明对车端的身份验证通过,则云端继续执行S209,若验证不通过,说明对车端的身份验证不通过,则云端断开与车端的连接。

S209、当对车端数据签名验证通过后,将云端随机数、云端临时公钥和云端数据签名发送给车端。

本步骤中,当云端对车端数据签名验证通过后,将云端随机数、云端临时公钥和云端数据签名发送给车端,相应地,车端接收云端随机数、云端临时公钥和云端数据签名。

S210、根据云端原始公钥,对云端数据签名进行验证。

本步骤中,在S209之后,车端根据S202中得到云端原始公钥,对云端数据签名进行验证,实现对云端的身份验证,若验证通过,则说明云端的身份验证,即车端与云端相互的身份验证通过,表明车端和云端的身份都是可以信任的,可以进行密钥的协商过程,若验证不通过,则车端断开与云端的连接。

本实施例上,通过上述技术方案,实现了车端与云端的身份相互认证和密钥协商阶段中所需的数据的交换,为后续的密钥协商阶段提供了安全保障和数据基础。并且,本实施例中,通过预先将车端原始公钥、车端原始私钥等数据存储在车端,避免了证书颁发过程产生的数据量,减少了身份验证阶段所需要的流量和时间,进而提高了整个密钥协商过程所需的流量和时间,提升了用户使用满意度。

实施例三

车端与云端的身份验证通过后,就进入了密钥协商阶段,下面将以一个具体的实施例对密钥协商阶段加以说明,示例性地,图4为本申请实施例三提供的密钥协商方法中密钥协商阶段的流程示意图,如图4所示,在上述实施例二的基础上,本实施例中,与云端进行密钥协商,得到与目标加密套件匹配的密钥,包括:

S301、根据车端临时私钥和云端临时公钥,生成第一迪菲-赫尔曼密钥。

本步骤中,车端根据车端临时私钥和云端临时公钥,采用椭圆曲线迪菲-赫尔曼(elliptic curve Diffie–Hellman,ECDH)密钥交换算法,生成第一迪菲-赫尔曼密钥(Diffie–Hellman key,简称DHkey)。

S302、根据第一迪菲-赫尔曼密钥、车端临时公钥、云端临时公钥、车端随机数、云端随机数和车端硬件识别码,采用密钥演生函数,生成第一协商密钥、第一加解密密钥和第一初始化向量。

本步骤中,车端以车端临时公钥、云端临时公钥、车端随机数、云端随机数、车端硬件识别码以及S301中生成的第一迪菲-赫尔曼密钥,采用密钥演生函数生成第一协商密钥、第一加解密密钥和第一初始化向量,第一协商密钥用于与云端进行校验,第一加解密密钥和第一初始化向量即为使用目标加密套件中算法对车端发送对云端的数据进行加密所使用的密钥。

可选地,本实施例中,密钥演生函数是预先基于SHA256算法构建的一种密钥推导函数,示例性地,假设密钥演生函数用f5表示,以Secret、N1、N2、A1、A2和E作为自变量,以Mackey、Enckey和IV表示函数值,则密钥演生函数的定义如下:

根据上述密钥演生函数的定义,将第一迪菲-赫尔曼密钥(作为密钥演生函数中的Secret)、车端临时公钥(作为密钥演生函数中的N1)、云端临时公钥(作为密钥演生函数中的N2)、车端随机数(作为密钥演生函数中的A1)、云端随机数(作为密钥演生函数中的A2)和车端硬件识别码(作为密钥演生函数中的E)代入密钥演生函数中计算,就可以得到第一协商密钥(对应通过密钥演生函数求得的Mackey的值)、第一加解密密钥(对应通过密钥演生函数求得Enckey的值)和第一初始化向量(对应通过密钥演生函数求得的IV的值)。

S303、根据第一协商密钥、车端临时公钥、云端临时公钥、车端随机数、云端随机数和车端硬件识别码,采用校验函数,生成第一校验值。

本步骤中,在S302之后,车端根据第一协商密钥、车端临时公钥、云端临时公钥、车端随机数、云端随机数和车端硬件识别码,采用校验函数,生成第一校验值。

可选地,本实施例中,校验函数是基于hmac_sha256算法构建的一种函数,示例性地,假设校验函数用f6表示,以Secret、N1、N2、A1、A2和E作为自变量,则校验函数的定义如下:

相应地,本步骤中,通过将第一协商密钥(作为校验函数中的Secret)、车端临时公钥(作为校验函数中的N1)、云端临时公钥(作为校验函数中的N2)、车端随机数(作为校验函数中的A1)、云端随机数(作为校验函数中的A2)和车端硬件识别码(作为校验函数中的E)代入校验函数中计算,就可以得到第一校验值。

S304、将第一校验值发送给云端。

本步骤中,将车端将通过S303计算得到的第一校验值发送给云端,相应地,云端从车端接收第一校验值。

S305、根据云端临时私钥和车端临时公钥,生成第二迪菲-赫尔曼密钥。

本步骤中,云端根据云端临时私钥和车端临时公钥,生成第二迪菲-赫尔曼密钥,其具体实现方式与S301中类似,此处不再赘述。

S306、根据第二迪菲-赫尔曼密钥、车端临时公钥、云端临时公钥、车端随机数、云端随机数和车端硬件识别码,采用密钥演生函数,生成第二协商密钥、第二加解密密钥和第二初始化向量。

本步骤中,云端根据第二迪菲-赫尔曼密钥、车端临时公钥、云端临时公钥、车端随机数、云端随机数和车端硬件识别码,采用与S302中相同的密钥演生函数,生成第二协商密钥、第二加解密密钥和第二初始化向量。

可选地,本步骤中,通过将第二迪菲-赫尔曼密钥(作为密钥演生函数中的Secret)、车端临时公钥(作为密钥演生函数中的N1)、云端临时公钥(作为密钥演生函数中的N2)、车端随机数(作为密钥演生函数中的A1)、云端随机数(作为密钥演生函数中的A2)和车端硬件识别码(作为密钥演生函数中的E)代入S302中定义的密钥演生函数中,通过计算就可以得到第二协商密钥(对应通过密钥演生函数求得的Mackey的值)、第二加解密密钥(对应通过密钥演生函数求得的Enckey的值)和第二初始化向量(对应通过密钥演生函数求得的IV的值)。

S307、根据第二协商密钥、车端临时公钥、云端临时公钥、车端随机数、云端随机数和车端硬件识别码,采用校验函数,生成第二校验值。

本步骤中,云端根据第二协商密钥、车端临时公钥、云端临时公钥、车端随机数、云端随机数和车端硬件识别码,采用与S303中相同的校验函数,生成第二校验值。

可选地,本步骤中,通过将第二协商密钥(作为校验函数中的Secret)、车端临时公钥(作为校验函数中的N1)、云端临时公钥(作为校验函数中的N2)、车端随机数(作为校验函数中的A1)、云端随机数(作为校验函数中的A2)和车端硬件识别码(作为校验函数中的E)代入S303中定义的校验函数中,并通过计算就可以得到第二校验值

S308、将第二校验值发送给车端。

本步骤中,云端将通过S307计算得到的第二校验值发送给车端,相应地,车端从云端接收第地校验值。

可以理解的是,上述步骤S305-S308与S301-S304之间不存在先后关系,即S305-S308可以在S301-S304之后执行,也可以在S301-S304之前执行,还可以与S301-S304并列执行。

S309、若第二校验值与第一校验值一致,则将第一加解密密钥和第一初始化向量,确定为车端的加解密密钥。

本步骤中,车端比较计算得到的第一校验值与从云端接收到的第二校验值是否一致,若一致,将第一加解密密钥和第一初始化向量,确定为车端与云端进行信息交互时,车端使用的加解密密钥,若不一致,则断开与云端的连接,本次密钥协商不成功,需要重新进行密钥的协商。

S310、若第一校验值与第二校验值一致,则将第二加解密密钥和第二初始化向量,确定为云端的加解密密钥。

本步骤中,云端比较计算得到的第二校验值与从车端接收到的第一校验值是否一致,若一致,则将第二加解密密钥和第二初始化向量,确定为云端与车端进行信息交互时,云端使用的加解密密钥,若不一致,则断开与车端的连接,本次密钥协商不成功,需要重新进行密钥的协商。

本实施例中,通过上述技术方案,实现了车端与云端的密钥协商,通过自定义密钥演生函数进行密钥计算,并通过校验函数对计算得到的密钥进行验证,提高了协商得到的密钥的可用性和可靠性。

实施例四

图5为本申请实施例四提供的密钥协商装置的结构示意图,如图5所示,本实施例中密钥协商装置10包括:

第一处理模块11和第二处理模块12。

第一处理模块11,用于向云端发送指定的目标加密算法信息;

第二处理模块12,用于当接收到所述云端发送的预设响应信息时,根据所述目标加密算法信息,与所述云端进行密钥协商。

可选地,所述目标加密算法信息至少包括目标椭圆曲线算法和目标签名算法;第二处理模块12还用于:

根据所述目标椭圆曲线算法和所述目标签名算法,与所述云端进行身份验证。

可选地,所述车端上预先存储有车端原始私钥和车端硬件识别码;第二处理模块12具体用于:

根据所述目标椭圆曲线算法,生成车端临时公钥和车端临时私钥;

根据所述目标签名算法,采用所述车端原始私钥,对由车端随机数、所述车端硬件识别码和所述车端临时公钥构成的车端数据进行签名,得到车端数据签名;

将所述车端随机数、所述车端临时公钥和所述车端数据签名发送给所述云端,供所述云端对车端的身份进行验证。

可选地,所述车端上还预先存储有车端原始公钥;第一处理模块12还用于:

与所述云端进行原始公钥交换,得到云端原始公钥;

在接收到云端随机数、云端临时公钥和云端数据签名时,根据所述云端原始公钥,对所述云端数据签名进行验证。

可选地,所述目标加密算法信息还包括目标加密套件;第二处理模块12具体用于:

与所述云端进行密钥协商,得到与所述目标加密套件匹配的密钥。

可选地,第二处理模块12具体用于:

根据车端临时私钥和云端临时公钥,生成第一迪菲-赫尔曼密钥;

根据所述第一迪菲-赫尔曼密钥、车端临时公钥、所述云端临时公钥、车端随机数、云端随机数和车端硬件识别码,采用密钥演生函数,生成第一协商密钥、第一加解密密钥和第一初始化向量;

根据所述第一协商密钥、所述车端临时公钥、所述云端临时公钥、所述车端随机数、所述云端随机数和所述车端硬件识别码,采用校验函数,生成第一校验值;

若接收到的云端发送的第二校验值与所述第一校验值一致,则将所述第一加解密密钥和所述第一初始化向量,确定为所述车端的加解密密钥。

本实施例所提供的密钥协商装置可执行上述方法实施例中车端侧的密钥协商方法,具备执行方法相应的功能模块和有益效果。本实施例的实现原理和技术效果与上述方法实施例类似,此处不再一一赘述。

实施例五

图6为本申请实施例五提供的密钥协商装置的结构示意图,如图6所示,本实施例中密钥协商装置20包括:

第一处理模块21和第二处理模块22。

第一处理模块21,用于接收车端发送的指定的目标加密算法信息;当确定选择所述目标加密算法信息对应的目标加密算法时,向所述车端发送预设响应信息;

第二处理模块22,用于根据所述目标加密算法信息,与所述车端进行密钥协商。

可选地,所述目标加密算法信息至少包括目标椭圆曲线算法和目标签名算法;第二处理模块22具体用于:

根据所述目标椭圆曲线算法和所述目标签名算法,与所述车端进行身份验证。

可选地,所述云端上预先存储有云端原始公钥、云端原始私钥和车端硬件识别码,第二处理模块22具体用于:

与所述车端进行原始公钥交互,得到车端原始公钥;

根据所述目标椭圆曲线算法,生成云端临时公钥和云端临时私钥;

根据所述目标签名算法,采用所述云端原始私钥,对由云端随机数、所述车端硬件识别码和所述云端临时公钥构成的云端数据进行签名,得到云端数据签名;

根据所述车端原始公钥,对接收到的车端数据签名进行验证;

当对所述车端数据签名验证通过后,将所述云端随机数、所述云端临时公钥和所述云端数据签名发送给所述车端。

可选地,所述目标加密算法信息还包括目标加密套件,第二处理模块22具体用于:

与所述车端进行密钥协商,得到与所述目标加密套件匹配的密钥。

可选地,第二处理模块22具体用于:

根据云端临时私钥和车端临时公钥,生成第二迪菲-赫尔曼密钥;

根据所述第二迪菲-赫尔曼密钥、所述车端临时公钥、云端临时公钥、车端随机数、云端随机数和车端硬件识别码,采用密钥演生函数,生成第二协商密钥、第二加解密密钥和第二初始化向量;

根据所述第二协商密钥、所述车端临时公钥、所述云端临时公钥、所述车端随机数、所述云端随机数和所述车端硬件识别码,采用校验函数,生成第二校验值;

若接收到的车端发送的第一校验值与所述第二校验值一致,则将所述第二加解密密钥和所述第二初始化向量,确定为所述云端的加解密密钥。

本实施例所提供的密钥协商装置可执行上述方法实施例中云端侧的密钥协商方法,具备执行方法相应的功能模块和有益效果。本实施例的实现原理和技术效果与上述方法实施例类似,此处不再一一赘述。

实施例六

图7为本申请实施例六提供的一种车端的结构示意图,如图7所示,该车端30包括存储器31、处理器32及存储在存储器上并可在处理器上运行的计算机程序;所述处理器32执行所述计算机程序实现前述任一方法实施例中车端侧的密钥协商方法。

实施例七

图8为本申请实施例七提供的一种云端的结构示意图,如图8所示,该云端40包括存储器41、处理器42及存储在存储器上并可在处理器上运行的计算机程序;所述处理器42执行所述计算机程序实现前述任一方法实施例中云端侧的密钥协商方法。

需要说明的是,在上述实施例六和实施例七中,处理器的数量可以是一个或多个,图7和图8中以一个处理器为例;处理器、存储器可以通过总线或其他方式连接,图7和图8中以通过总线连接为例。

存储器作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请实施例中的第一处理模块和第二处理模块对应的程序指令/模块。处理器通过运行存储在存储器中的软件程序、指令以及模块,从而车端/云端的各种功能应用以及数据处理,即实现上述的密钥协商方法。

存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网格连接至车端/云端。上述网格的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

实施例八

本申请实施例八还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在由计算机处理器执行时用于执行上述任一方法实施例中车端侧的技术方案。

实施例九

本申请实施例九还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在由计算机处理器执行时用于执行上述任一方法实施例中云端侧的技术方案。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本申请可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网格设备等)执行本申请各个实施例所述的方法。

值得注意的是,上述密钥协商装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。

注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。

相关技术
  • 信道密钥一致性协商方法、装置、电子设备及存储介质
  • 密钥协商方法、装置、电子设备和存储介质
技术分类

06120112550415