一种车载虚拟钥匙通信方法与流程

文档序号:20202928发布日期:2020-03-27 20:49阅读:338来源:国知局
一种车载虚拟钥匙通信方法与流程

技术领域:

本发明属于密码及通信安全技术领域,特别涉及一种车载虚拟钥匙通信方法。



背景技术:

随着社会的快速发展,汽车进入家庭的梦想已成为现实。随着人们日常出行习惯的改变,传统汽车和新能源汽车的智能化程度越来越高。许多制造商已经基于各种方法引入了车辆共享技术。这些技术不依赖于传统的车辆实体钥匙,以软件的形式开锁、锁门、鸣笛、启动发动机等。从而克服了多人合用汽车时配置多个实体钥匙的不便,避免了无法统一管理汽车的隐患。现有的车辆共享技术一般是基于通信运营商的移动数据通信网络。车辆用户不使用车辆终端作为交互载体直接向车辆发送控制指令。当司机想要控制车辆时,车辆终端通过移动数据网络与云管理平台进行通信,并启动应用程序进行具体的指令控制车辆。管理平台在对车辆终端的权利进行判断和管理后,通过移动数据网络将相应的控制指令转发给车辆,实现对车辆的控制。

由于“用车终端、云端管理平台、车辆”之间的交互极度依赖移动数据通信网络,因此用车人通过用车终端操控车辆时,需要在移动数据通信网络良好的情况下才能完成。一旦用车终端或车辆中有一者处于弱网络或者无网络环境中如地下车库等,功能就将大打折扣,甚至无法使用,影响可靠性。目前市场上不断涌现出手机数字钥匙产品,手机数字钥匙取代传统的汽车钥匙无疑将给人们带来更佳的便利性。手机数字钥匙将传统车钥匙的全部功能映射到手机中,通过操作手机钥匙实现开关车门、启停发动机、开启后备箱等功能,而手机数字钥匙的“远程控制车辆”作为部分车钥匙功能,其顺应了互联网时代的发展需要。然而,随着电子智能化程度的加深,系统安全性是设计的基本保障。

针对上述问题,本发明以多角度、全方面的视角阐述了车载虚拟钥匙安心方面的设计方法,有必要提供一种车载虚拟钥匙实现及通信方法。

公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。



技术实现要素:

本发明的目的在于提供一种车载虚拟钥匙通信方法,从而克服上述现有技术中的缺陷。

为实现上述目的,本发明提供了一种车载虚拟钥匙通信方法,包括以下步骤:

s1:结合手机端及车载通信系统的存储、计算资源有限的特点,及其对高安全性的需求,在车载端与手机端之间构造基于多次剩余的完备零知识身份认证协议,建立车载端与手机端之间的相互认证机制,并加入了时间戳以防止重放攻击;

s2:双方进行协商会话密钥,手机端利用elgamal算法生成签名及公私钥对,双方进行交换公钥;

s3:最后同时采用车速值和方向盘角度值的随机特性并提取出来以建立实时密钥更新的车载虚拟钥匙通信方法。

作为本发明的进一步改进,每辆汽车都有自己的虚拟钥匙账号,为了防止重放攻击和假冒攻击的轻易实现,手机端只有进行登录后,方可向车载端进行身份认证;因为有些地方无移动通信信号,手机端与汽车端无法连接到云服务器中,我们采用通过蓝牙形式进行手机与汽车的认证通信。

作为本发明的进一步改进,步骤s1中,在车载端与手机端之间构造基于多次剩余的完备零知识身份认证协议,建立车载端与手机端之间的相互认证机制。认证双方包括车载端与手机端,它向车载端认证自己的身份,认证过程如下:

首先手机端选取矢量y∈zn*:yid≡x(modn),发送手机端id号和x给车载端,其中x为mrn中的一个元素,id为手机端id号的最后一位,n为一个大的奇合数,其中mrn为模整数n的多次剩余集合。重复下列步骤16次:

步骤1.1:手机端选取随机矢量u∈umrn,计算commit=uid(modn),发送时间戳t,commit给车载端;

步骤1.2:车载端验证时间戳t和收到的实际时间t',计算(δt=t'-t)<t以验证时间戳的有效性,其中δt是t'与t的时间差,t是所允许的最大时间延迟,若无效,则拒绝此通信,下同;

步骤1.3:车载端选取challeng∈u{0,1},发送challenge,时间戳t给手机端;

步骤1.4:手机端验证t,如果challenge=0,则计算r=u,如果challenge=1,则发送r=uy(modn),时间戳t给车载端;

步骤1.5:车载端验证t,如果challenge=0,则验证rid(modn)≡commit,如果challenge=1,则验证rid(modn)≡commitx(modn),如果验证失败,车载端拒绝并终止协议。

作为本发明的进一步改进,所述身份认证,认证协议的每一轮中,证明者手机端和验证者车载端需要进行16次交互。非法证明者每轮欺骗成功的概率是1/2,因此一共进行16轮交互认证,成功欺骗的概率降低到2-16

作为本发明的进一步改进,所述身份认证,认证协议的每一轮中,证明者手机端和验证者车载端需要进行五次交互。非法证明者每轮欺骗成功的概率是1/2,因此一共进行16轮交互认证,成功欺骗的概率降低到2-16

作为本发明的进一步改进,s2双方进行协商会话密钥,执行以下协议,包括两轮消息:

步骤2.1:由手机端首先发送给车载端消息message1={idphone,idcar,rand,csij,,t},其中:idphone和idcar分别表示手机端和车载端的身份信息;rand表示由手机端选取的一次性随机数;csij表示由手机端选取的密钥的密文(c,sij,l),其中,加密用e表示,即为用密钥k1加密,其中sij表示密钥k1,k2,表示k2的哈希函数;

步骤2.2:当车载端收到手机端发送的message1后,首先验证t,接着计算密钥sij=(k1,k2),然后判断等式是否成立,如果不成立则丢弃该消息,如果成立,那么车载端知道手机端的身份是合法的;

步骤2.3:车载端验证n值后解密获得密钥sij,构造消息message2发送给手机端message2={idphone,idcar,rand,csij,,t};

步骤2.4:当手机端收到车载端发送的message2后,首先验证t,接着判断rand是否为自己选取的随机数。如果不是,则丢弃该消息,否则导出会话密钥sij,双方会话密钥协商成功。

作为本发明的进一步改进,步骤s2在手机端和车载端之间密钥协商过程完成后,手机端利用elgamal算法生成签名及公私钥对,双方进行互换公钥。通过在该算法中加入一个随机数,使原有算法更加安全。

具体步骤如下:

步骤2.5:车载端产生一个大素数p,α为的一个生成元,手机端的私钥为skphone,通过计算相应的签名公钥pkphone,并用之前的会话密钥加密pkphone发给车载端,其中,表示模p的整数乘法群;

步骤2.6:车载端车载端解密并获得pkphone,随机选择两个互异随机数r和l,通过γ=αlmodp,λ=αrmodp计算得到γ和λ,并将γ和λ保存下来;

步骤2.7:签名明文,利用前两步的结果以及扩展的euclidean算法和模逆算法,通过式子m=(γ+lλ+rδ)mod(p-1)求出δ。在多次取随机数签名的过程中必须避免取相同的随机数,也要避免随机数之间有简单的函数关系;

步骤2.8:手机端丢弃随机数r和l,得出所需公开的密钥为pkphone,私有密钥为skphone,明文m的签名为(γ,λ,δ);

步骤2.9:车载端将(γ,λ,δ)分别发送给认证合法的手机端,手机端利用αm=pkphoneγγλλδmodp验证明文m数字签名的正确性:若相等,则签名无误,车载端用会话密钥和pkphone对pkcar进行加密发送给手机端;若不等,则签名有误或者传输过程错误。

在上述手机端生成签名以及公私钥对的过程中,同一个明文信息m,对于不同的随机数r和l会得到不同的数字签名(γ,λ,δ),并且都能通过签名方案的最后验证,也就是签名的不确定性,进一步提高了安全性。

作为本发明的进一步改进,s3真随机数池在车载端,手机端需要向车载端发起临时会话请求。假设通信手机端已经获得数字证书,临时会话密钥产生步骤如下所示:

步骤3.1:手机端发起临时会话请求其中,msg表示消息,request表示请求,表示用车载端的公钥加密,表示用手机端的私钥加密,即用自己的私钥加密后再用车载端的公钥加密发送给车载端。用车载端的公钥进行加密,只有车载端的私钥能解密,用手机端的私钥加密后,车载端用手机端的公钥解密,能确保消息是从手机端发送的,防止了假冒攻击,保证了消息的安全性;

步骤3.2:车载端收到msg(request,pkphone,idphone,idcar),消息后,验证其真实性,若真,则在随机数池里获取n组56位的随机数r1和r2,并且产生与随机数相对应的8位序列号number,number是为了标识产生的随机数,然后用自己的私钥加密随机数和number再用对方的公钥加密发送给对方;

步骤3.3:手机端解密对方发送来的随机数和number,然后根据相同的序列号,各自计算因此得到了64位的临时会话密钥sessionk,sessionk前8位为序列号,后56位为加密密钥。

作为本发明的进一步改进,所述s3得到临时会话密钥sessionk,就可以在手机端和车载端之间信息传输进行加密,在每次通信时,都需要向车载端请求下一次的真随机数,在一次通信结束后,临时会话密钥也将丢弃,下次通信时生成新的临时会话密钥。

作为本发明的进一步改进,所述s3从车速单元和方向盘单元中周期性提取数据组合成随机数放入随机数池中。在目前的研究中,随机数分为伪随机数和真随机数,其中伪随机数被证明具有周期性,即可被预测性,难以确保加密信息的安全。而真随机数是一组具有统计无偏性和不可预测性的值,因此具有良好的保密性。真随机数可以是自然界的物理熵源。车速和方向盘角度随机变化过程和提取生成真随机数,具体步骤如下所示:

(1)利用示波器采集车载车速单元的车速值,设置示波器的采集周期为2s,因为该周期既保证了有用数据不严重丢失,又保证了合适的变化量。

(2)将示波器得到的采样值利用模数转换器adc转换成数字序列,其中根据不同环境设置不同阈值,通过比较采样值与阈值的高低来产生数字信号0或1。

(3)为了使数字序列服从均匀分布和具有良好的统计特性,将得到的数字信号进行后处理。为了提高效率,采用简单的级联异或链和哈希函数相结合的方法来进行后处理操作,将处理后的数据即最终随机数存入随机数池中,等待车内电子控制单元的提取。

附图说明:

图1为本发明一具体实施方式中总架构示意图;

图2为本发明一具体实施方式中身份认证协议示意图;

图3为本发明一具体实施方式中会话密钥协商示意图;

图4为本发明一具体实施方式中生成签名及公私密钥对、双方进行互换公钥示意图;

图5为本发明一具体实施方式中请求临时会话密钥示意图;

图6为本发明一具体实施方式中随机数的获取示意图。

具体实施方式:

下面对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。

除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。

参图1所示,新型车载虚拟钥匙通信协议架构,其中包括基于多次剩余的完备零知识身份认证协议、双方进行协商会话密钥、手机端生成签名及公私密钥对、双方互换公钥、手机端向车载端请求临时会话密钥。

该方法具体为:

基于多次剩余的完备零知识身份认证协议:

首先手机端选取矢量y∈zn*:yid≡x(modn),发送手机端id号和x给车载端,其中x为mrn中的一个元素,id为手机端id号的最后一位,n为一个大的奇合数,其中mrn为模整数n的多次剩余集合。重复下列步骤16次:

步骤1.1:手机端选取随机矢量u∈umrn,计算commit=uid(modn),发送时间戳t,commit给车载端;

步骤1.2:车载端验证时间戳t和收到的实际时间t',计算(δt=t'-t)<t以验证时间戳的有效性,其中δt是t'与t的时间差,t是所允许的最大时间延迟,若无效,则拒绝此通信,下同;

步骤1.3:车载端选取challeng∈u{0,1},发送challenge,时间戳t给手机端;

步骤1.4:手机端验证t,如果challenge=0,则计算r=u,如果challenge=1,则发送r=uy(modn),时间戳t给车载端;

步骤1.5:车载端验证t,如果challenge=0,则验证rid(modn)≡commit,如果challenge=1,则验证rid(modn)≡commitx(modn),如果验证失败,车载端拒绝并终止协议;

如图3所示,双方进行协商会话密钥:

步骤2.1:由手机端首先发送给车载端消息message1={idphone,idcar,rand,csij,,t},其中:idphone和idcar分别表示手机端和车载端的身份信息;rand表示由手机端选取的一次性随机数;csij表示由手机端选取的密钥的密文(c,sij,l),其中,加密用e表示,即为用密钥k1加密,其中sij表示密钥k1,k2,表示k2的哈希函数;

步骤2.2:当车载端收到手机端发送的message1后,首先验证t,接着计算密钥sij=(k1,k2),然后判断等式是否成立,如果不成立则丢弃该消息,如果成立,那么车载端知道手机端的身份是合法的;

步骤2.3:车载端验证n值后解密获得密钥sij,构造消息message2发送给手机端message2={idphone,idcar,rand,csij,,t};

步骤2.4:当手机端收到车载端发送的message2后,首先验证t,接着判断rand是否为自己选取的随机数。如果不是,则丢弃该消息,否则导出会话密钥sij,双方会话密钥协商成功。

如图4所示,在车载端与手机端之间密钥协商过程完成后,手机端利用elgamal算法生成签名及公私钥对。通过在该算法中加入一个随机数,使原有算法更加安全,手机端生成签名及公私密钥对,双方进行互换公钥:

步骤2.5:车载端产生一个大素数p,α为的一个生成元,手机端的私钥为skphone,通过计算相应的签名公钥pkphone,并用之前的会话密钥加密pkphone发给车载端,其中,表示模p的整数乘法群;

步骤2.6:车载端车载端解密并获得pkphone,随机选择两个互异随机数r和l,通过γ=αlmodp,λ=αrmodp计算得到γ和λ,并将γ和λ保存下来;

步骤2.7:签名明文,利用前两步的结果以及扩展的euclidean算法和模逆算法,通过式子m=(γ+lλ+rδ)mod(p-1)求出δ。在多次取随机数签名的过程中必须避免取相同的随机数,也要避免随机数之间有简单的函数关系;

步骤2.8:手机端丢弃随机数r和l,得出所需公开的密钥为pkphone,私有密钥为skphone,明文m的签名为(γ,λ,δ);

步骤2.9:车载端将(γ,λ,δ)分别发送给认证合法的手机端,手机端利用αm=pkphoneγγλλδmodp验证明文m数字签名的正确性:若相等,则签名无误,车载端用会话密钥和pkphone对pkcar进行加密发送给手机端;若不等,则签名有误或者传输过程错误。

在上述手机端生成签名以及公私钥对的过程中,同一个明文信息m,对于不同的随机数r和l会得到不同的数字签名(γ,λ,δ),并且都能通过签名方案的最后验证,也就是签名的不确定性,进一步提高了安全性。

如图5示,手机端向车载端请求临时会话密钥:

步骤3.1:手机端发起临时会话请求其中,msg表示消息,request表示请求,表示用车载端的公钥加密,表示用手机端的私钥加密,即用自己的私钥加密后再用车载端的公钥加密发送给车载端。用车载端的公钥进行加密,只有车载端的私钥能解密,用手机端的私钥加密后,车载端用手机端的公钥解密,能确保消息是从手机端发送的,防止了假冒攻击,保证了消息的安全性;

步骤3.2:车载端收到msg(request,pkphone,idphone,idcar),消息后,验证其真实性,若真,则在随机数池里获取n组56位的随机数r1和r2,并且产生与随机数相对应的8位序列号number,number是为了标识产生的随机数,然后用自己的私钥加密随机数和number再用对方的公钥加密发送给对方;

步骤3.3:手机端解密对方发送来的随机数和number,然后根据相同的序列号,各自计算因此得到了64位的临时会话密钥sessionk,sessionk前8位为序列号,后56位为加密密钥。

如图6所示,随机数的获取:

从车速单元和方向盘单元中周期性提取数据组合成随机数放入随机数池中。在目前的研究中,随机数分为伪随机数和真随机数,其中伪随机数被证明具有周期性,即可被预测性,难以确保加密信息的安全。而真随机数是一组具有统计无偏性和不可预测性的值,因此具有良好的保密性。真随机数可以是自然界的物理熵源。车速和方向盘角度随机变化过程和提取生成真随机数,具体步骤如下所示:

(1)利用示波器采集车载车速单元的车速值,设置示波器的采集周期为2s,因为该周期既保证了有用数据不严重丢失,又保证了合适的变化量。

(2)将示波器得到的采样值利用模数转换器adc转换成数字序列,其中根据不同环境设置不同阈值,通过比较采样值与阈值的高低来产生数字信号0或1。

(3)为了使数字序列服从均匀分布和具有良好的统计特性,将得到的数字信号进行后处理。为了提高效率,采用简单的级联异或链和哈希函数相结合的方法来进行后处理操作,将处理后的数据即最终随机数存入随机数池中,等待车内电子控制单元的提取。

前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1