一种面向网联车与路边单元通信的安全连接方法

文档序号:25894618发布日期:2021-07-16 20:06阅读:96来源:国知局
一种面向网联车与路边单元通信的安全连接方法

1.本发明涉及车联网信息安全领域,具体地,涉及一种在网联车与路边单元通信开始通信之前建立安全连接的方法,该方法是在商密(sm)密码算法的基础上实现的。


背景技术:

2.随着移动互联网、汽车电子和移动通信等领域技术的发展,车联网逐渐成为当前的研究热点。车联网中,网联车需要经常与外界实体进行通信,网联车与路边单元之间的通信是常见的通信场景。在这类通信场景中,为了避免信息被第三方窃取,用户往往有保密通信的需求,通过数据加密可以满足保密通信需求。对称密码的加密、解密速度较快,但是需要以安全、可靠的方式预先协商对称密钥;非对称密码不需要进行密钥协商,但是加密、解密速度较慢。在应用中组合使用对称密码和非对称密码,可以取得较好的效果。同时,目前常用的国外密码算法可能存在后门,会危及网联车与路边单元通信的信息安全。


技术实现要素:

3.本发明的目的是提供一种基于商密密码算法的安全连接方法,以保护车联网中网联车和路边单元通信场景下的信息安全。
4.为实现上述目的,本发明提供一种基于sm2和sm4密码算法的安全连接方法,该方法包括:发起方生成sm2密钥对,并将公钥嵌入handshake_msg1消息发送给响应方;响应方检查handshake_msg1消息的新鲜度,然后生成sm4密钥key,并对key进行加密,将密文嵌入handshake_msg2消息发送给发起方;发起方检查handshake_msg2消息的新鲜度,解密消息得到响应方生成的密钥key,然后使用key对相关内容进行加密得到handshake_msg3消息,发送给响应方;响应方检查handshake_msg3消息的新鲜度,在消息新鲜的情况下,双方建立起安全通信连接。
附图说明
5.附图是用来提供对本发明的进一步理解,并构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。
6.在附图中,图1是根据本发明的实施方式提供的一种面向网联车与路边单元通信的安全连接方法的流程图。
具体实施方式
7.以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
8.图1是根据本发明的实施方式提供的一种面向网联车与路边单元通信的安全连接方法的流程图。图1中的发起方和响应方是网联车或路边单元,在网联车向路边单元请求建立通信时,网联车是发起方,路边单元是响应方;在路边单元向网联车请求建立通信时,路
边单元是发起方,网联车是响应方。
9.如图1所示,本发明的实施方式提供的一种面向网联车与路边单元通信的安全连接方法包括:
10.s100,发起方生成sm2密钥对(sk,pk)、32bit不重数nonce1和毫秒级时间戳timestamp1。密钥对(sk,pk)中,sk是私钥,pk是公钥。不重数nonce1是一个32bit的随机数。时间戳timestamp1指示了发起方执行步骤s100的时刻。
11.s102,发起方生成handshake_msg1消息,然后发送给响应方。handshake_msg1消息由发起方在步骤s100中生成的公钥pk、不重数nonce1和时间戳timestamp1三部分组成,如式(1)所示。发起方发送handshake_msg1消息表示它请求建立通信。
12.handshake_msg1={pk,nonce1,timestamp1}
ꢀꢀꢀ
(1)
13.s104,响应方检查handshake_msg1消息的新鲜度。响应方接收到handshake_msg1消息后,即收到了发起方的通信请求,响应方根据不重数nonce1和时间戳timestamp1进检查此消息是否新鲜。
14.s106,如果handshake_msg1消息新鲜,转至步骤s108,否则转至步骤130。
15.s108,响应方生成sm4密钥key、32bit不重数nonce2和毫秒级时间戳timestamp2。key的长度为128bit。不重数nonce2是一个32bit的随机数。时间戳timestamp2指示了响应方执行步骤s108的时刻。
16.s110,响应方使用pk加密key,得到密文c
key
。在响应方接收到handshake_msg1之后便得到了公钥pk,响应方采用sm2密码加密算法对key进行加密得到其密文c
key
,如式(2)所示。
17.c
key
=sm2.enc(key,pk)
ꢀꢀꢀ
(2)
18.s112,响应方生成handshake_msg2消息,然后发送给发起方。handshake_msg2消息由响应方在步骤s108中生成的不重数nonce2、时间戳timestamp2和在步骤s100中得到的密文c
key
三部分组成,如式(3)所示。
19.handshake_msg2={nonce2,timestamp2,c
key
}
ꢀꢀꢀ
(3)
20.s114,发起方检查handshake_msg2消息的新鲜度。发起方接收到handshake_msg2消息后,根据不重数nonce2和时间戳timestamp2检查handshake_msg2消息的新鲜度。
21.s116,如果handshake_msg2消息新鲜,转至步骤s118,否则转至步骤130。
22.s118,发起方解密密文c
key
,得到sm4密钥key。在接收到handshake_msg2消息之后,发起方使用私钥sk,采用sm2密码解密算法对密文c
key
进行解密,得到响应方生成的sm4密钥密钥key,如式(4)所示。
23.key=sm2.dec(c
key
,sk)
ꢀꢀꢀ
(4)
24.s120,发起方32bit不重数nonce3和毫秒级时间戳timestamp3,并使用sm4密码算法对它们进行加密。不重数nonce3是一个32bit的随机数。时间戳timestamp3指示了发起方执行步骤s120的时刻。发起方使用密钥key和sm4密码算法对不重数nonce3和时间戳timestamp3进行加密,得到密文c
nonce3
、c
timestamp3
,如式(5)、式(6)所示。
25.c
nonce3
=sm4.enc(nonce3,key)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
26.c
timestamp3
=sm4.enc(timestamp3,key)
ꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
27.s122,发起方生成handshake_msg3消息,然后发送给响应方。handshake_msg3消息
由发起方在步骤s120中生成的密文c
nonce3
和密文c
timestamp3
组成,如式(7)所示。
28.handshake_msg3={c
nonce3
,c
timestamp3
}
ꢀꢀꢀ
(7)
29.s124,响应方解密handshake_msg3消息,检查其新鲜度。响应方接收到handshake_msg3消息后,使用key和sm4解密算法对其进行解密,得到不重数nonce3和时间戳timestamp3,如式(8)、式(9)所示。响应方根据不重数nonce3和时间戳timestamp3检查handshake_msg3消息的新鲜度。
30.nonce3=sm4.dec(c
nonce3
,key)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
31.timestamp3=sm4.dec(c
timestamp3
,key)
ꢀꢀꢀꢀꢀꢀꢀꢀ
(9)
32.s126,如果handshake_msg3消息新鲜,转至步骤s128,否则转至步骤s130。
33.s128,响应方接受发起方的通信请求,双方建立安全通信连接。发起方和响应方通过互相发送handshake_msg消息,协商出了sm4密钥key,建立了安全通信连接。在后续的通信中,双方使用key对通信内容进行加密、解密,实现了对信息安全的保护。
34.s130,建立通信连接失败。在handshake_msg消息不新鲜的情况下,双方不能建立通信连接。
35.根据本发明的一种实施方式,该方法还包括:在检查消息新鲜度时,需要对消息中的不重数和时间戳进行检查。如果接收到的消息中的不重数在时间段t
nonce
内曾经出现过,则此消息不新鲜,时间段t
nonce
为不重数的记录期。如果接收到的消息中的时间戳timestamp与接收到消息的时刻t
rec
的差值大于t
threshold
,则此消息不新鲜,t
threshold
是差值的最大值。t
nonce
和t
threshold
应根据实际情况灵活设置。
36.以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术范围构思之内,可以对本发明的技术方案进行多种简单变形,这些简单变形均属于本发明的保护范围。
37.另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通多任何合适的方式进行组合。为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
38.此外,本发明的各种不同实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1