本发明车载组网技术领域,尤其涉及一种车载自组网认证方法、系统、移动终端及存储介质。
背景技术:
车载网全称是车载自组织网络(vanet,vehiclead-hocnetwork),是移动自组织网络(manet,mobileadhocnetwork)的在交通方面的具体应用。自组织网络是一种分布式网络,顾名思义,“自己组织”、“自由组织”的网络,具有多跳,无中心,不固定的特点。车载网作为特殊的移动自组织网路也有以上特点,不同的是此类网络以车辆作为通信节点,车辆的踪迹不定,移动性强,车流量也会随时大幅度改变,在车辆高速行驶过程中,节点之间的通信时间转瞬即逝,车载网内的通信方式也有多种,所以车载网的网络结构是千变万化的,所面对的问题也是和平常的移动自组织网络大相径庭。
车载网由三部分组成:车载通信单元(obu,on-boardunit),路侧单元(rsu,roadsideunit),可信任中心(ta,trustauthority)。为了区分每辆车的身份,用户向ta注册,ta为车辆颁发认证证书,标明各个车辆的身份,其中就包括属于用户自己的账号密码。
现有的车载组网过程中,车载网抗伪造攻击能力低下,进而导致车载组网整体安全性较低,降低了用户的使用体验。
技术实现要素:
本发明实施例的目的在于提供一种车载自组网认证方法、系统、移动终端及存储介质,旨在解决现有的车载组网过程中,由于车载网抗伪造攻击能力低下,所导致的用户使用体验低下的问题。
本发明实施例是这样实现的,一种车载自组网认证方法,所述方法包括:
生成循环群,对车辆用户进行身份验证,并对身份验证合格的所述车辆用户分配匿名身份;
根据所述循环群生成车辆用户公钥,并根据所述车辆用户公钥计算所述车辆用户的私钥;
获取所述车辆用户中的待发送消息,并根据所述待发送消息、所述车辆用户公钥和所述私钥生成车辆用户的签名;
根据所述车辆用户的签名在不同所述车辆用户之间进行组网认证。
更进一步的,所述根据所述车辆用户的签名在不同所述车辆用户之间进行组网认证的步骤包括:
将发送端车辆对应的所述车辆用户的签名发送至接收端车辆,并对发送的所述车辆用户的签名进行签名验证;
若所述车辆用户的签名验证失败,则指示所述接收端车辆拒绝接收所述车辆用户的签名;
若所述车辆用户的签名验证成功,则指示所述接收端车辆接收所述车辆用户的签名。
更进一步的,所述生成循环群的步骤之后,所述方法还包括:
对所述循环群进行抽取,得到系统私钥,并根据所述系统私钥计算系统公钥;
设置hash函数,所述hash函数包括第一函数、第二函数和第三函数;
第一函数=h0:{0,1}*→g1,所述第二函数=h1:{0,1}*→zq*,所述第三函数=h2:{0,1}*→zq*。
更进一步的,所述对身份验证合格的所述车辆用户分配匿名身份的步骤包括:
对所述循环群进行抽取,并根据抽取到的数值、所述循环群和所述系统公钥计算所述匿名身份;
将计算到的所述匿名身份对对应身份验证合格的所述车辆用户进行分配。
更进一步的,所述根据抽取到的数值、所述循环群和所述系统公钥计算所述匿名身份所采用的计算公式为:
其中,θi是所述抽取到的数值,
更进一步的,所述根据所述循环群生成车辆用户公钥,并根据所述车辆用户公钥计算所述车辆用户的私钥所采用的计算公式为:
did=s·h1(id)
ci=did+s·h1(id,pid)
其中,s是所述循环群中随机选取的数值,pid是所述车辆用户公钥,ci是所述汽车私钥。
更进一步的,所述根据所述待发送消息、所述车辆用户公钥和所述私钥生成车辆用户的签名所采用的计算公式为:
h=gr
g=l(x,x)
r=h2(mi||id||h||pid)
l=r·x+r·ci
所述车辆用户的签名为:η=(r,l);
其中,mi是所述待发送消息,id是所述车辆用户的身份id。
本发明实施例的另一目的在于提供一种车载自组网认证系统,所述系统包括:
匿名身份分配模块,用于生成循环群,对车辆用户进行身份验证,并对身份验证合格的所述车辆用户分配匿名身份;
私钥计算模块,用于根据所述循环群生成车辆用户公钥,并根据所述车辆用户公钥计算所述车辆用户的私钥;
签名生成模块,用于获取所述车辆用户中的待发送消息,并根据所述待发送消息、所述车辆用户公钥和所述私钥生成车辆用户的签名;
组网认证模块,用于根据所述车辆用户的签名在不同所述车辆用户之间进行组网认证。
本发明实施例的另一目的在于提供一种存储介质,其存储有上述的移动终端中所使用的计算机程序,该计算机程序被处理器执行时实现上述的车载自组网认证方法的步骤。
本发明实施例,通过对车辆用户进行身份验证,有效的对车辆用户起到了身份检测的效果,提高了不同车辆用户之间组网认证的准确性,通过对身份验证合格的车辆用户分配匿名身份,有效的保障了不同车辆用户之间的匿名认证,通过获取车辆用户中的待发送消息,并根据待发送消息、车辆用户公钥和私钥生成车辆用户的签名,有效的提高了不同车辆用户之间组网认证的安全性,进而提高了车辆用户的使用体验。
附图说明
图1是本发明第一实施例提供的车载自组网认证方法的流程图;
图2是本发明第二实施例提供的车载自组网认证方法的流程图;
图3是本发明第三实施例提供的车载自组网认证系统的结构示意图;
图4是本发明第四实施例提供的移动终端的结构示意图;
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。因此,以下对在附图中提供的本发明的实施方式的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一
请参阅图1,是本发明第一实施例提供的车载自组网认证方法的流程图,包括步骤:
步骤s10,生成循环群,对车辆用户进行身份验证,并对身份验证合格的所述车辆用户分配匿名身份;
其中,该循环群生成在可信任中心ta中,可信任中心ta生成有两个q阶循环群g1和g2,g1为加法循环群,g2为乘法循环群,x和x为g1的两个生成元;
具体的,该步骤中,所述生成循环群的步骤之后,所述方法还包括:
对所述循环群进行抽取,得到系统私钥,并根据所述系统私钥计算系统公钥,其中,在循环群内随机选取一个整数s作为系统私钥,系统私钥为ssys=s,并生成系统公钥psys=s·x,可信任中心ta将系统私钥保密,并公开系统公钥;
设置hash函数,所述hash函数包括第一函数、第二函数和第三函数;
第一函数=h0:{0,1}*→g1,所述第二函数=h1:{0,1}*→zq*,所述第三函数=h2:{0,1}*→zq*。
可选的,该步骤中,所述生成循环群的步骤之后,所述方法还包括:
获取所述车辆用户提供的用户姓名、联系方式等个人信息,针对获取到的用户姓名、联系方式等个人信息进行分配账号
该步骤中,获取车辆用户输入的分配账号和口令,当检测到车辆用户输入的分配账号和口令与车载防篡改装置tpd中存储的信息一致时,则判定该车辆用户的身份验证合格,若不一致,则判定该车辆用户的身份验证不合格。
进一步地,该步骤中,所述对身份验证合格的所述车辆用户分配匿名身份的步骤包括:
对所述循环群进行抽取,并根据抽取到的数值、所述循环群和所述系统公钥计算所述匿名身份,其中,在q阶循环群内任意选取
将计算到的所述匿名身份对对应身份验证合格的所述车辆用户进行分配;
其中,所述根据抽取到的数值、所述循环群和所述系统公钥计算所述匿名身份所采用的计算公式为:
其中,θi是所述抽取到的数值,
步骤s20,根据所述循环群生成车辆用户公钥,并根据所述车辆用户公钥计算所述车辆用户的私钥;
具体的,该步骤中,所述根据所述循环群生成车辆用户公钥,并根据所述车辆用户公钥计算所述车辆用户的私钥所采用的计算公式为:
did=s·h1(id)
ci=did+s·h1(id,pid)
其中,s是所述循环群中随机选取的数值(秘密值),pid是所述车辆用户公钥,ci是所述汽车私钥。
步骤s30,获取所述车辆用户中的待发送消息,并根据所述待发送消息、所述车辆用户公钥和所述私钥生成车辆用户的签名;
该步骤中,所述根据所述待发送消息、所述车辆用户公钥和所述私钥生成车辆用户的签名所采用的计算公式为:
h=gr,其中r是随机选取的整数,g=l(x,x);
g=l(x,x)
r=h2(mi||id||h||pid)
l=r·x+r·ci(公式一)
所述车辆用户的签名为:η=(r,l);
其中,mi是所述待发送消息,id是所述车辆用户的身份id。
步骤s40,根据所述车辆用户的签名在不同所述车辆用户之间进行组网认证。
本实施例,通过对车辆用户进行身份验证,有效的对车辆用户起到了身份检测的效果,提高了不同车辆用户之间组网认证的准确性,通过对身份验证合格的车辆用户分配匿名身份,有效的保障了不同车辆用户之间的匿名认证,通过获取车辆用户中的待发送消息,并根据待发送消息、车辆用户公钥和私钥生成车辆用户的签名,有效的提高了不同车辆用户之间组网认证的安全性,进而提高了车辆用户的使用体验。
实施例二
请参阅图2,是本发明第二实施例提供的车载自组网认证方法的流程图,用于对第一实施例中的步骤s40作进一步细化,包括步骤:
步骤s41,将发送端车辆对应的所述车辆用户的签名发送至接收端车辆,并对发送的所述车辆用户的签名进行签名验证;
其中,首先计算:
a1=l(l,x)l(h1(id),psys+pid)-r
当且仅当a1=h时,则该车辆用户的签名的签名验证合格,否则接收端车辆拒绝接收该户签名。
步骤s42,若所述车辆用户的签名验证失败,则指示所述接收端车辆拒绝接收所述车辆用户的签名;
步骤s43,若所述车辆用户的签名验证成功,则指示所述接收端车辆接收所述车辆用户的签名;
具体的,本实施中,双线性对(bilinearpairing),也叫双线性映射。定义两个素数q阶的加法循环群g1和g2,一个素数q阶的乘法循环群gt,设这三个群中存在一种映射关系l:g1×g2→gt,具有以下几个性质:
1.双线性:
2.非退化性:
3.可计算性:
此映射关系中,当g1=g2时,则该双线性映射是对称的。在本专利中所讨论的方案凡双线性映射均是对称型的双线性映射,即一种映射关系为l:g1×g1→gt,该映射关系除了以上的性质,还有具有一种性质:
对称性:
本实施例的验证计算步骤包括:
a1=l(l,x)l(h1(id),psys+pid)-r(公式二)
将公式一代入公式二:
a1=l(r·x+r·ci,x)l(h1(id),psys+pid)-r(公式三)
由映射关系l的性质1可将公式三式整理为:
a1=l(r·x,x)l(ci,x)rl(h1(id),psys+pid)-r(公式四)
将ci=did+s·h1(id,pid),psys=s·x,pid=s·x代入公式四可得:
a1=l(x,x)rl((did+s·h1(id,pid)),x)rl(h1(id),s·x+s·x)-r(公式五)
将did=s·h1(id)代入,并且根据h1函数的定义可得:
a1=l(x,x)rl((s·h1(id)+s·h1(id)),x)rl(h1(id),s·x+s·x)-r
根据结合律整理公式五可得:
a1=l(x,x)rl((s+s)·h1(id),x)rl(h1(id),(s+s)·x)-r
其中l(x,x)=g
a1=grl((s+s)·h1(id),x)rl(h1(id),(s+s)·x)-r
再根据l的性质1可得:
a1=grl(h1(id),x)(s+s)·rl(h1(id),x)-(s+s)·r
即:a1=gr=h
车辆用户的签名的正确性成立。
在随机预言机模型和离散对数问题(dlp)、diffie-hellman难题(cdhp,computationaldiffie-hellmanproblem)困难性假设下,a可以替换任意用户的公钥,但是没有办法获得系统的主密钥以及用户的部分私钥,改进方案可以抵抗a的自适应选择消息攻击的存在性伪造;
假设:假设攻击者c是一个cdhp的挑战者,攻击者c当
1.设置参数:挑战者c设置psys=a·x,生成系统参数:
params={l,g1,g2,x,psys,pid,g,h1,h2},并发送给a,a可以适应性的执行询问。
2.询问相关参数
h1询问:挑战者c维护列表l1,列表格式为(id,pid,α,h1(id)),刚开始该列表为空。若a最多执行
h2询问:c维护列表l2,列表格式为(m,id,h,p,r),该列表初始化为空。当a询问h2(mi‖idi||hi||pi)时,c随机选择
did询问:若idi=idj,c终止询问;否则检查l1找到(idi,αi,h1(idi)),计算di=αipsys并将di返回给a。若未询问过h1(idi,pi),则首先执行h1(idi,pi)询问。
pid询问c维护列表k1,列表格式为(id,s,pid),该列表开始为空。a对idi进行公钥询问时,c首先检查k1,若k1中有一项(idi,si,pi),则c返回pi给a;否则,c随机选择
pid替换询问:当c接到a将用户idi的公钥(idi,pi)替换为(idi,pi′)时,c检查k1找到(idi,si,pi),并设置si=⊥,pi=pi′。
秘密值询问:当c接到a用户idi的秘密值询问时,c检查k1找到(idi,si,pi)。若si=⊥,说明用户idi的公钥已经被替换,返回⊥;否则c将si返回给a。
签名询问:当a请求用户idi对消息mi进行签名询问时,c随机选择
3.证明
a输出一个伪造签名(m*,η*=(r,l),id*,p*)。若id*≠idj,c终止询问;反之,由forking引理[17]可知:c对a哈希重放后选择一个哈希函数h2′,可以得到一个新的伪造签名(m*,σ*′=(r′,l′),id*,p*)。并且它们满足l=r·x+r·ci和l′=r·x+r′·ci,所以sh1(id)=abx=(1+β)-1·(r-r′)-1(l-l′),这与cdhp的困难性相矛盾。
本实施例,通过随机预言机模型和dlp、cdhp困难性问题,反证证实本实施例可以抵抗a的自适应选择消息攻击的存在性伪造,在认证过程中采用了方案签名过程中进行了1次幂运算,2次标量乘运算和1次加法运算,计算成本较低,方案执行效率可行,本实施例采用的是一种无证书的匿名身份认证,可以有效抵抗伪造攻击。
实施例三
请参阅图3,是本发明第三实施例提供的车载自组网认证系统100的结构示意图,包括:匿名身份分配模块10、私钥计算模块11、签名生成模块12和组网认证模块13,其中:
匿名身份分配模块10,用于生成循环群,对车辆用户进行身份验证,并对身份验证合格的所述车辆用户分配匿名身份;
其中,匿名身份分配模块10还用于:对所述循环群进行抽取,得到系统私钥,并根据所述系统私钥计算系统公钥;
设置hash函数,所述hash函数包括第一函数、第二函数和第三函数;
第一函数=h0:{0,1}*→g1,所述第二函数=h1:{0,1}*→zq*,所述第三函数=h2:{0,1}*→zq*。
可选的,该匿名身份分配模块10还用于:对所述循环群进行抽取,并根据抽取到的数值、所述循环群和所述系统公钥计算所述匿名身份;
将计算到的所述匿名身份对对应身份验证合格的所述车辆用户进行分配。
进一步地,所述根据抽取到的数值、所述循环群和所述系统公钥计算所述匿名身份所采用的计算公式为:
其中,θi是所述抽取到的数值,
私钥计算模块11,用于根据所述循环群生成车辆用户公钥,并根据所述车辆用户公钥计算所述车辆用户的私钥;
其中,所述根据所述循环群生成车辆用户公钥,并根据所述车辆用户公钥计算所述车辆用户的私钥所采用的计算公式为:
did=s·h1(id)
ci=did+s·h1(id,pid)
其中,s是所述循环群中随机选取的数值,pid是所述车辆用户公钥,ci是所述汽车私钥。
签名生成模块12,用于获取所述车辆用户中的待发送消息,并根据所述待发送消息、所述车辆用户公钥和所述私钥生成车辆用户的签名;
其中,所述根据所述待发送消息、所述车辆用户公钥和所述私钥生成车辆用户的签名所采用的计算公式为:
h=gr
g=l(x,x)
r=h2(mi||id||h||pid)
l=r·x+r·ci
所述车辆用户的签名为:η=(r,l);
其中,mi是所述待发送消息,id是所述车辆用户的身份id。
组网认证模块13,用于根据所述车辆用户的签名在不同所述车辆用户之间进行组网认证;
其中,组网认证模块13还用于:将发送端车辆对应的所述车辆用户的签名发送至接收端车辆,并对发送的所述车辆用户的签名进行签名验证;
若所述车辆用户的签名验证失败,则指示所述接收端车辆拒绝接收所述车辆用户的签名;
若所述车辆用户的签名验证成功,则指示所述接收端车辆接收所述车辆用户的签名。
本实施例,通过对车辆用户进行身份验证,有效的对车辆用户起到了身份检测的效果,提高了不同车辆用户之间组网认证的准确性,通过对身份验证合格的车辆用户分配匿名身份,有效的保障了不同车辆用户之间的匿名认证,通过获取车辆用户中的待发送消息,并根据待发送消息、车辆用户公钥和私钥生成车辆用户的签名,有效的提高了不同车辆用户之间组网认证的安全性,进而提高了车辆用户的使用体验。
实施例四
请参阅图4,是本发明第四实施例提供的移动终端101,包括存储设备以及处理器,所述存储设备用于存储计算机程序,所述处理器运行所述计算机程序以使所述移动终端101执行上述的车载自组网认证方法。
本实施例还提供了一种存储介质,其上存储有上述移动终端101中所使用的计算机程序,该程序在执行时,包括如下步骤:
生成循环群,对车辆用户进行身份验证,并对身份验证合格的所述车辆用户分配匿名身份;
根据所述循环群生成车辆用户公钥,并根据所述车辆用户公钥计算所述车辆用户的私钥;
获取所述车辆用户中的待发送消息,并根据所述待发送消息、所述车辆用户公钥和所述私钥生成车辆用户的签名;
根据所述车辆用户的签名在不同所述车辆用户之间进行组网认证。所述的存储介质,如:rom/ram、磁碟、光盘等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元或模块完成,即将存储装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施方式中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。
本领域技术人员可以理解,图3中示出的组成结构并不构成对本发明的车载自组网认证系统的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,而图1-2中的车载自组网认证方法亦采用图3中所示的更多或更少的部件,或者组合某些部件,或者不同的部件布置来实现。本发明所称的单元、模块等是指一种能够被所述目标车载自组网认证系统中的处理器(图未示)所执行并功能够完成特定功能的一系列计算机程序,其均可存储于所述目标车载自组网认证系统的存储设备(图未示)内。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。